diff --git a/.gitattributes b/.gitattributes index c9cf4a7d9cd0..25303e742a76 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ src/clientversion.cpp export-subst +src/CMakeLists.txt export-subst diff --git a/CMakeLists.txt b/CMakeLists.txt index 280a61f12acb..788f0adfc946 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,9 +80,6 @@ if(CMAKE_VERSION VERSION_LESS 4.2 AND CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NO set(CMAKE_INSTALL_NAME_TOOL "${CMAKE_COMMAND} -E true") endif() enable_language(CXX) -set(MIN_CLANG_DOCS "doc/dependencies.md#compiler") -set(MIN_GCC_DOCS "doc/dependencies.md#compiler") -set(MIN_MSVC_DOCS "doc/build-windows-msvc.md") set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -153,11 +150,7 @@ string(APPEND CMAKE_CXX_COMPILE_OBJECT " ${APPEND_CPPFLAGS} ${APPEND_CXXFLAGS}") string(APPEND CMAKE_CXX_CREATE_SHARED_LIBRARY " ${APPEND_LDFLAGS}") string(APPEND CMAKE_CXX_LINK_EXECUTABLE " ${APPEND_LDFLAGS}") -#============================= -# C++ Feature Detection -#============================= -# In case the compiler is not GCC, Clang or MSVC this provides extra checks -# which verify that some features are available in the standard library. +# Check required C++ toolchain features early. include(CheckCXXFeatures) check_cxx_features() diff --git a/cmake/module/CheckCXXFeatures.cmake b/cmake/module/CheckCXXFeatures.cmake index b3760a7ee46b..fde630e30d09 100644 --- a/cmake/module/CheckCXXFeatures.cmake +++ b/cmake/module/CheckCXXFeatures.cmake @@ -4,7 +4,7 @@ include_guard(GLOBAL) -#Checks for C++ features required to compile Bitcoin Core. +# Checks for C++ features required to compile Bitcoin Core. include(CheckCXXSourceCompiles) @@ -33,10 +33,8 @@ function(check_cxx_features) "Compiler lacks Class Template Argument Deduction (CTAD) for aggregates.\n" "This C++ feature is required for src/util/overloaded.h.\n" "You are probably using an old compiler version\n" - "The recommended compiler versions can be checked in:\n" - " - GCC -> ${MIN_GCC_DOCS}\n" - " - Clang -> ${MIN_CLANG_DOCS}\n" - " - MSVC -> ${MIN_MSVC_DOCS}\n" + "The recommended compiler versions can be checked in\n" + "doc/dependencies.md#compiler.\n" ) endif() diff --git a/cmake/script/GenerateBuildInfo.cmake b/cmake/script/GenerateBuildInfo.cmake index d3ee2eb06210..62773a3a5439 100644 --- a/cmake/script/GenerateBuildInfo.cmake +++ b/cmake/script/GenerateBuildInfo.cmake @@ -5,7 +5,7 @@ macro(fatal_error) message(FATAL_ERROR "\n" "Usage:\n" - " cmake -D BUILD_INFO_HEADER_PATH= [-D SOURCE_DIR=] -P ${CMAKE_CURRENT_LIST_FILE}\n" + " cmake -D BUILD_INFO_HEADER_PATH= -D GIT_EXECUTABLE= [-D SOURCE_DIR=] -P ${CMAKE_CURRENT_LIST_FILE}\n" "All specified paths must be absolute ones.\n" ) endmacro() @@ -28,72 +28,69 @@ else() set(WORKING_DIR ${CMAKE_CURRENT_SOURCE_DIR}) endif() -set(GIT_TAG) -set(GIT_COMMIT) -if(NOT "$ENV{BITCOIN_GENBUILD_NO_GIT}" STREQUAL "1") - find_package(Git QUIET) - if(Git_FOUND) +set(GIT_TAG "") +set(GIT_COMMIT "") +if(GIT_EXECUTABLE) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree + WORKING_DIRECTORY ${WORKING_DIR} + OUTPUT_VARIABLE IS_INSIDE_WORK_TREE + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + if(IS_INSIDE_WORK_TREE) + # Clean 'dirty' status of touched files that haven't been modified. + execute_process( + COMMAND ${GIT_EXECUTABLE} diff + WORKING_DIRECTORY ${WORKING_DIR} + OUTPUT_QUIET + ERROR_QUIET + ) + execute_process( - COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree + COMMAND ${GIT_EXECUTABLE} describe --abbrev=0 WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE IS_INSIDE_WORK_TREE + OUTPUT_VARIABLE MOST_RECENT_TAG OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) - if(IS_INSIDE_WORK_TREE) - # Clean 'dirty' status of touched files that haven't been modified. - execute_process( - COMMAND ${GIT_EXECUTABLE} diff - WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_QUIET - ERROR_QUIET - ) - execute_process( - COMMAND ${GIT_EXECUTABLE} describe --abbrev=0 - WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE MOST_RECENT_TAG - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - ) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-list -1 ${MOST_RECENT_TAG} + WORKING_DIRECTORY ${WORKING_DIR} + OUTPUT_VARIABLE MOST_RECENT_TAG_COMMIT + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) - execute_process( - COMMAND ${GIT_EXECUTABLE} rev-list -1 ${MOST_RECENT_TAG} - WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE MOST_RECENT_TAG_COMMIT - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - ) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse HEAD + WORKING_DIRECTORY ${WORKING_DIR} + OUTPUT_VARIABLE HEAD_COMMIT + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + execute_process( + COMMAND ${GIT_EXECUTABLE} diff-index --quiet HEAD -- + WORKING_DIRECTORY ${WORKING_DIR} + RESULT_VARIABLE IS_DIRTY + ) + + if(HEAD_COMMIT STREQUAL MOST_RECENT_TAG_COMMIT AND NOT IS_DIRTY) + # If latest commit is tagged and not dirty, then use the tag name. + set(GIT_TAG ${MOST_RECENT_TAG}) + else() + # Otherwise, generate suffix from git, i.e. string like "0e0a5173fae3-dirty". execute_process( - COMMAND ${GIT_EXECUTABLE} rev-parse HEAD + COMMAND ${GIT_EXECUTABLE} rev-parse --short=12 HEAD WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE HEAD_COMMIT + OUTPUT_VARIABLE GIT_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) - - execute_process( - COMMAND ${GIT_EXECUTABLE} diff-index --quiet HEAD -- - WORKING_DIRECTORY ${WORKING_DIR} - RESULT_VARIABLE IS_DIRTY - ) - - if(HEAD_COMMIT STREQUAL MOST_RECENT_TAG_COMMIT AND NOT IS_DIRTY) - # If latest commit is tagged and not dirty, then use the tag name. - set(GIT_TAG ${MOST_RECENT_TAG}) - else() - # Otherwise, generate suffix from git, i.e. string like "0e0a5173fae3-dirty". - execute_process( - COMMAND ${GIT_EXECUTABLE} rev-parse --short=12 HEAD - WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE GIT_COMMIT - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - ) - if(IS_DIRTY) - string(APPEND GIT_COMMIT "-dirty") - endif() + if(IS_DIRTY) + string(APPEND GIT_COMMIT "-dirty") endif() endif() endif() diff --git a/doc/build-osx.md b/doc/build-osx.md index f1287c4a7f22..fe3adf1354a0 100644 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -16,7 +16,9 @@ macOS comes with a built-in Terminal located in: ### 1. Xcode Command Line Tools The Xcode Command Line Tools are a collection of build tools for macOS. -These tools must be installed in order to build Bitcoin Core from source. +Version 16.2 (or higher) of these tools must be +[installed](https://developer.apple.com/documentation/xcode/installing-the-command-line-tools) +in order to build Bitcoin Core from source. To install, run the following command from your terminal: diff --git a/doc/dependencies.md b/doc/dependencies.md index e687d127a21e..dded02b9c4b4 100644 --- a/doc/dependencies.md +++ b/doc/dependencies.md @@ -8,10 +8,12 @@ them using [depends](/depends/README.md). Bitcoin Core requires one of the following compilers. -| Dependency | Minimum required | +| Toolchain | Minimum required | | --- | --- | | [Clang](https://clang.llvm.org) | [17.0](https://github.com/bitcoin/bitcoin/pull/33555) | | [GCC](https://gcc.gnu.org) | [12.1](https://github.com/bitcoin/bitcoin/pull/33842) | +| [Xcode CLT](/doc/build-osx.md) | [16.2](https://github.com/bitcoin/bitcoin/pull/33932) | +| [MSVC](/doc/build-windows-msvc.md) | [18.3](https://github.com/bitcoin/bitcoin/pull/33861) | ## Required diff --git a/doc/release-notes-32220.md b/doc/release-notes-32220.md new file mode 100644 index 000000000000..c25271571554 --- /dev/null +++ b/doc/release-notes-32220.md @@ -0,0 +1,9 @@ +### Build System + +- The undocumented `BITCOIN_GENBUILD_NO_GIT` environment variable is no longer + required and has been removed. The build system now automatically detects + when it is being built from a source archive or as a subproject of a git-aware + parent project and skips git metadata fetching. + + Users who need to disable git execution explicitly can still do so by + configuring with `-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON`. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7bfa5a89bcfa..9e59533eccdd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -37,9 +37,15 @@ if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) endif() +set(IS_SOURCE_TARBALL FALSE) +# git will expand the next line to "set(IS_SOURCE_TARBALL TRUE)" inside archives: +#$Format:%nset(IS_SOURCE_TARBALL TRUE)$ +if(NOT IS_SOURCE_TARBALL AND PROJECT_IS_TOP_LEVEL) + find_package(Git QUIET) +endif() add_custom_target(generate_build_info BYPRODUCTS ${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h - COMMAND ${CMAKE_COMMAND} -DBUILD_INFO_HEADER_PATH=${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h -DSOURCE_DIR=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR}/cmake/script/GenerateBuildInfo.cmake + COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -DBUILD_INFO_HEADER_PATH=${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h -DSOURCE_DIR=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR}/cmake/script/GenerateBuildInfo.cmake COMMENT "Generating bitcoin-build-info.h" VERBATIM ) diff --git a/src/crypto/sha256_arm_shani.cpp b/src/crypto/sha256_arm_shani.cpp index 2eaa66558a13..d22900300de7 100644 --- a/src/crypto/sha256_arm_shani.cpp +++ b/src/crypto/sha256_arm_shani.cpp @@ -40,7 +40,7 @@ alignas(uint32x4_t) static constexpr std::array K = namespace sha256_arm_shani { void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks) { - uint32x4_t STATE0, STATE1, ABEF_SAVE, CDGH_SAVE; + uint32x4_t STATE0, STATE1, ABCD_SAVE, EFGH_SAVE; uint32x4_t MSG0, MSG1, MSG2, MSG3; uint32x4_t TMP0, TMP2; @@ -51,8 +51,8 @@ void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks) while (blocks--) { // Save state - ABEF_SAVE = STATE0; - CDGH_SAVE = STATE1; + ABCD_SAVE = STATE0; + EFGH_SAVE = STATE1; // Load and convert input chunk to Big Endian MSG0 = vreinterpretq_u32_u8(vrev32q_u8(vld1q_u8(chunk + 0))); @@ -186,8 +186,8 @@ void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks) STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0); // Update state - STATE0 = vaddq_u32(STATE0, ABEF_SAVE); - STATE1 = vaddq_u32(STATE1, CDGH_SAVE); + STATE0 = vaddq_u32(STATE0, ABCD_SAVE); + STATE1 = vaddq_u32(STATE1, EFGH_SAVE); } // Save final state @@ -235,7 +235,7 @@ void Transform_2way(unsigned char* output, const unsigned char* input) /* Padding processed in the 3rd transform (byteswapped). */ alignas(uint32x4_t) static constexpr std::array FINAL = {0x80000000, 0, 0, 0, 0, 0, 0, 0x100}; - uint32x4_t STATE0A, STATE0B, STATE1A, STATE1B, ABEF_SAVEA, ABEF_SAVEB, CDGH_SAVEA, CDGH_SAVEB; + uint32x4_t STATE0A, STATE0B, STATE1A, STATE1B, ABCD_SAVEA, ABCD_SAVEB, EFGH_SAVEA, EFGH_SAVEB; uint32x4_t MSG0A, MSG0B, MSG1A, MSG1B, MSG2A, MSG2B, MSG3A, MSG3B; uint32x4_t TMP0A, TMP0B, TMP2A, TMP2B, TMP; @@ -488,10 +488,10 @@ void Transform_2way(unsigned char* output, const unsigned char* input) STATE1B = vaddq_u32(STATE1B, TMP); // Transform 2: Save state - ABEF_SAVEA = STATE0A; - ABEF_SAVEB = STATE0B; - CDGH_SAVEA = STATE1A; - CDGH_SAVEB = STATE1B; + ABCD_SAVEA = STATE0A; + ABCD_SAVEB = STATE0B; + EFGH_SAVEA = STATE1A; + EFGH_SAVEB = STATE1B; // Transform 2: Rounds 1-4 TMP = vld1q_u32(&MIDS[0]); @@ -638,10 +638,10 @@ void Transform_2way(unsigned char* output, const unsigned char* input) STATE1B = vsha256h2q_u32(STATE1B, TMP2B, TMP); // Transform 2: Update state - STATE0A = vaddq_u32(STATE0A, ABEF_SAVEA); - STATE0B = vaddq_u32(STATE0B, ABEF_SAVEB); - STATE1A = vaddq_u32(STATE1A, CDGH_SAVEA); - STATE1B = vaddq_u32(STATE1B, CDGH_SAVEB); + STATE0A = vaddq_u32(STATE0A, ABCD_SAVEA); + STATE0B = vaddq_u32(STATE0B, ABCD_SAVEB); + STATE1A = vaddq_u32(STATE1A, EFGH_SAVEA); + STATE1B = vaddq_u32(STATE1B, EFGH_SAVEB); // Transform 3: Pad previous output MSG0A = STATE0A; diff --git a/src/dbwrapper.cpp b/src/dbwrapper.cpp index 3743d4348203..7f6c10beae31 100644 --- a/src/dbwrapper.cpp +++ b/src/dbwrapper.cpp @@ -150,7 +150,6 @@ static leveldb::Options GetOptions(size_t nCacheSize) // on corruption in later versions. options.paranoid_checks = true; } - options.max_file_size = std::max(options.max_file_size, DBWRAPPER_MAX_FILE_SIZE); SetMaxOpenFiles(&options); return options; } @@ -229,16 +228,23 @@ CDBWrapper::CDBWrapper(const DBParams& params) DBContext().syncoptions.sync = true; DBContext().options = GetOptions(params.cache_bytes); DBContext().options.create_if_missing = true; - if (params.memory_only) { + DBContext().options.max_file_size = params.max_file_size; + assert(!(params.testing_env && params.memory_only)); + if (params.testing_env) { + DBContext().options.env = params.testing_env; + } else if (params.memory_only) { DBContext().penv = leveldb::NewMemEnv(leveldb::Env::Default()); DBContext().options.env = DBContext().penv; - } else { + } + if (!params.memory_only) { if (params.wipe_data) { LogInfo("Wiping LevelDB in %s", fs::PathToString(params.path)); leveldb::Status result = leveldb::DestroyDB(fs::PathToString(params.path), DBContext().options); HandleError(result); } - TryCreateDirectories(params.path); + if (!params.testing_env) { + TryCreateDirectories(params.path); + } LogInfo("Opening LevelDB in %s", fs::PathToString(params.path)); } // PathToString() return value is safe to pass to leveldb open function, diff --git a/src/dbwrapper.h b/src/dbwrapper.h index 51775ee63655..edbe69cef14b 100644 --- a/src/dbwrapper.h +++ b/src/dbwrapper.h @@ -20,6 +20,10 @@ #include #include +namespace leveldb { +class Env; +} // namespace leveldb + static const size_t DBWRAPPER_PREALLOC_KEY_SIZE = 64; static const size_t DBWRAPPER_PREALLOC_VALUE_SIZE = 1024; static const size_t DBWRAPPER_MAX_FILE_SIZE{32_MiB}; @@ -45,6 +49,12 @@ struct DBParams { bool obfuscate = false; //! Passed-through options. DBOptions options{}; + //! If non-null, use this as the leveldb::Env instead of the default. + //! Caller retains ownership. + leveldb::Env* testing_env = nullptr; + //! Maximum LevelDB SST file size. Larger values reduce the frequency + //! of compactions but increase their duration. + size_t max_file_size = DBWRAPPER_MAX_FILE_SIZE; }; class dbwrapper_error : public std::runtime_error diff --git a/src/kernel/bitcoinkernel.cpp b/src/kernel/bitcoinkernel.cpp index 9ec51351c439..b174795c31fa 100644 --- a/src/kernel/bitcoinkernel.cpp +++ b/src/kernel/bitcoinkernel.cpp @@ -1338,19 +1338,20 @@ int btck_chainstate_manager_process_block( return result ? 0 : -1; } -int btck_chainstate_manager_process_block_header( +btck_BlockValidationState* btck_chainstate_manager_process_block_header( btck_ChainstateManager* chainstate_manager, - const btck_BlockHeader* header, - btck_BlockValidationState* state) + const btck_BlockHeader* header) { try { auto& chainman = btck_ChainstateManager::get(chainstate_manager).m_chainman; - auto result = chainman->ProcessNewBlockHeaders({&btck_BlockHeader::get(header), 1}, /*min_pow_checked=*/true, btck_BlockValidationState::get(state), /*ppindex=*/nullptr); - return result ? 0 : -1; + auto state = btck_BlockValidationState::create(); + bool result{chainman->ProcessNewBlockHeaders({&btck_BlockHeader::get(header), 1}, /*min_pow_checked=*/true, btck_BlockValidationState::get(state))}; + assert(result == btck_BlockValidationState::get(state).IsValid()); + return state; } catch (const std::exception& e) { LogError("Failed to process block header: %s", e.what()); - return -1; + return nullptr; } } diff --git a/src/kernel/bitcoinkernel.h b/src/kernel/bitcoinkernel.h index 577c4c0a329a..6ce65a04378d 100644 --- a/src/kernel/bitcoinkernel.h +++ b/src/kernel/bitcoinkernel.h @@ -29,7 +29,15 @@ #endif #endif -/* Warning attributes */ +/** + * BITCOINKERNEL_WARN_UNUSED_RESULT is a compiler attribute used to indicate + * that ignoring a function's return value is almost certainly a bug. + * + * It is used in cases such as a resource leak (e.g. an owning handle returned + * by a *_create or *_copy function), or when the returned value is itself an + * error/status code. It is not used merely because discarding the result is + * wasteful, e.g. on getters or predicates. + */ #if defined(__GNUC__) #define BITCOINKERNEL_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) #else @@ -601,7 +609,7 @@ BITCOINKERNEL_API btck_Transaction* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transa * passed back through the writer callback. * @return 0 on success. */ -BITCOINKERNEL_API int btck_transaction_to_bytes( +BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_to_bytes( const btck_Transaction* transaction, btck_WriteBytes writer, void* user_data) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -612,7 +620,7 @@ BITCOINKERNEL_API int btck_transaction_to_bytes( * @param[in] transaction Non-null. * @return The number of outputs. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_count_outputs( +BITCOINKERNEL_API size_t btck_transaction_count_outputs( const btck_Transaction* transaction) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -624,7 +632,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_count * @param[in] output_index The index of the transaction output to be retrieved. * @return The transaction output */ -BITCOINKERNEL_API const btck_TransactionOutput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get_output_at( +BITCOINKERNEL_API const btck_TransactionOutput* btck_transaction_get_output_at( const btck_Transaction* transaction, size_t output_index) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -636,7 +644,7 @@ BITCOINKERNEL_API const btck_TransactionOutput* BITCOINKERNEL_WARN_UNUSED_RESULT * @param[in] input_index The index of the transaction input to be retrieved. * @return The transaction input */ -BITCOINKERNEL_API const btck_TransactionInput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get_input_at( +BITCOINKERNEL_API const btck_TransactionInput* btck_transaction_get_input_at( const btck_Transaction* transaction, size_t input_index) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -645,7 +653,7 @@ BITCOINKERNEL_API const btck_TransactionInput* BITCOINKERNEL_WARN_UNUSED_RESULT * @param[in] transaction Non-null. * @return The number of inputs. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_count_inputs( +BITCOINKERNEL_API size_t btck_transaction_count_inputs( const btck_Transaction* transaction) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -654,7 +662,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_count * @param[in] transaction Non-null. * @return The nLockTime value. */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get_locktime( +BITCOINKERNEL_API uint32_t btck_transaction_get_locktime( const btck_Transaction* transaction) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -664,7 +672,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get * @param[in] transaction Non-null. * @return The txid. */ -BITCOINKERNEL_API const btck_Txid* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get_txid( +BITCOINKERNEL_API const btck_Txid* btck_transaction_get_txid( const btck_Transaction* transaction) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -675,16 +683,15 @@ BITCOINKERNEL_API const btck_Txid* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transac * * @param[in] tx Non-null, the transaction to validate. * @param[out] validation_state Non-null, previously created with - * btck_tx_validation_state_create. Reset on - * entry (any prior contents are overwritten) - * and updated in-place with the validation - * result before this function returns. + * btck_tx_validation_state_create. + * Overwritten in-place with the validation + * result. * @return 1 if valid, 0 if invalid. * @note Only btck_TxValidationResult_UNSET and * btck_TxValidationResult_CONSENSUS are * reachable via this function. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_check( +BITCOINKERNEL_API int btck_transaction_check( const btck_Transaction* tx, btck_TxValidationState* validation_state) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -788,7 +795,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_script_pubkey_verify * passed back through the writer callback. * @return 0 on success. */ -BITCOINKERNEL_API int btck_script_pubkey_to_bytes( +BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_script_pubkey_to_bytes( const btck_ScriptPubkey* script_pubkey, btck_WriteBytes writer, void* user_data) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -824,7 +831,7 @@ BITCOINKERNEL_API btck_TransactionOutput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_ * @param[in] transaction_output Non-null. * @return The script pubkey. */ -BITCOINKERNEL_API const btck_ScriptPubkey* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_output_get_script_pubkey( +BITCOINKERNEL_API const btck_ScriptPubkey* btck_transaction_output_get_script_pubkey( const btck_TransactionOutput* transaction_output) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -833,7 +840,7 @@ BITCOINKERNEL_API const btck_ScriptPubkey* BITCOINKERNEL_WARN_UNUSED_RESULT btck * @param[in] transaction_output Non-null. * @return The amount. */ -BITCOINKERNEL_API int64_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_output_get_amount( +BITCOINKERNEL_API int64_t btck_transaction_output_get_amount( const btck_TransactionOutput* transaction_output) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -965,7 +972,7 @@ BITCOINKERNEL_API btck_ChainParameters* BITCOINKERNEL_WARN_UNUSED_RESULT btck_ch * @param[in] chain_parameters Non-null. * @return The btck_ConsensusParams. */ -BITCOINKERNEL_API const btck_ConsensusParams* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_parameters_get_consensus_params( +BITCOINKERNEL_API const btck_ConsensusParams* btck_chain_parameters_get_consensus_params( const btck_ChainParameters* chain_parameters) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1080,7 +1087,7 @@ BITCOINKERNEL_API void btck_context_destroy(btck_Context* context); * @param[in] block_tree_entry Non-null. * @return The previous block tree entry, or null on error or if the current block tree entry is the genesis block. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_get_previous( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_block_tree_entry_get_previous( const btck_BlockTreeEntry* block_tree_entry) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1098,7 +1105,7 @@ BITCOINKERNEL_API btck_BlockHeader* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_ * @param[in] block_tree_entry Non-null. * @return The block height. */ -BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_get_height( +BITCOINKERNEL_API int32_t btck_block_tree_entry_get_height( const btck_BlockTreeEntry* block_tree_entry) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1107,7 +1114,7 @@ BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry * @param[in] block_tree_entry Non-null. * @return The block hash. */ -BITCOINKERNEL_API const btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_get_block_hash( +BITCOINKERNEL_API const btck_BlockHash* btck_block_tree_entry_get_block_hash( const btck_BlockTreeEntry* block_tree_entry) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1118,7 +1125,7 @@ BITCOINKERNEL_API const btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_bl * @param[in] entry2 Non-null. * @return 1 if the block tree entries are equal, 0 otherwise. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_equals( +BITCOINKERNEL_API int btck_block_tree_entry_equals( const btck_BlockTreeEntry* entry1, const btck_BlockTreeEntry* entry2) BITCOINKERNEL_ARG_NONNULL(1, 2); /** @@ -1128,7 +1135,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_equ * @param[in] height The height of the requested ancestor. * @return The ancestor at the given height. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_get_ancestor( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_block_tree_entry_get_ancestor( const btck_BlockTreeEntry* block_tree_entry, int32_t height) BITCOINKERNEL_ARG_NONNULL(1); @@ -1179,6 +1186,8 @@ BITCOINKERNEL_API void btck_chainstate_manager_options_set_worker_threads_num( * @param[in] wipe_block_tree_db Set wipe block tree db. Should only be 1 if wipe_chainstate_db is 1 too. * @param[in] wipe_chainstate_db Set wipe chainstate db. * @return 0 if the set was successful, non-zero if the set failed. + * @note When a wipe is set, the caller must invoke @ref btck_chainstate_manager_import_blocks + * on the resulting chainstate manager before using it for anything else. */ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_options_set_wipe_dbs( btck_ChainstateManagerOptions* chainstate_manager_options, @@ -1233,9 +1242,9 @@ BITCOINKERNEL_API btck_ChainstateManager* BITCOINKERNEL_WARN_UNUSED_RESULT btck_ * known cumulative proof of work. * * @param[in] chainstate_manager Non-null. - * @return The btck_BlockTreeEntry. + * @return The btck_BlockTreeEntry, or null if no block headers have been loaded. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_get_best_entry( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_chainstate_manager_get_best_entry( const btck_ChainstateManager* chainstate_manager) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1243,13 +1252,11 @@ BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT bt * * @param[in] chainstate_manager Non-null. * @param[in] header Non-null btck_BlockHeader to be validated. - * @param[out] block_validation_state The result of the btck_BlockHeader validation. - * @return 0 if btck_BlockHeader processing completed successfully, non-zero on error. + * @return The btck_BlockValidationState containing validation result, or null on error. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_process_block_header( +BITCOINKERNEL_API btck_BlockValidationState* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_process_block_header( btck_ChainstateManager* chainstate_manager, - const btck_BlockHeader* header, - btck_BlockValidationState* block_validation_state) BITCOINKERNEL_ARG_NONNULL(1, 2, 3); + const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1, 2); /** * @brief Triggers the start of a reindex if the wipe options were previously @@ -1303,7 +1310,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_p * @param[in] chainstate_manager Non-null. * @return The chain. */ -BITCOINKERNEL_API const btck_Chain* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_get_active_chain( +BITCOINKERNEL_API const btck_Chain* btck_chainstate_manager_get_active_chain( const btck_ChainstateManager* chainstate_manager) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1314,7 +1321,7 @@ BITCOINKERNEL_API const btck_Chain* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chains * @return The block tree entry of the block with the passed in hash, or null if * the block hash is not found. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_get_block_tree_entry_by_hash( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_chainstate_manager_get_block_tree_entry_by_hash( const btck_ChainstateManager* chainstate_manager, const btck_BlockHash* block_hash) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -1385,12 +1392,13 @@ typedef uint32_t btck_BlockCheckFlags; * optional POW and merkle-root checks. Use * btck_BlockCheckFlags_BASE to run only the base * checks. - * @param[in,out] validation_state Non-null, previously created with - * btck_block_validation_state_create and updated - * in-place with the validation result. + * @param[out] validation_state Non-null, previously created with + * btck_block_validation_state_create. + * Overwritten in-place with the validation + * result. * @return 1 if the btck_Block passed the checks, 0 otherwise. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_check( +BITCOINKERNEL_API int btck_block_check( const btck_Block* block, const btck_ConsensusParams* consensus_params, btck_BlockCheckFlags flags, @@ -1402,7 +1410,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_check( * @param[in] block Non-null. * @return The number of transactions in the block. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_count_transactions( +BITCOINKERNEL_API size_t btck_block_count_transactions( const btck_Block* block) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1413,7 +1421,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_count_trans * @param[in] transaction_index The index of the transaction to be retrieved. * @return The transaction. */ -BITCOINKERNEL_API const btck_Transaction* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_get_transaction_at( +BITCOINKERNEL_API const btck_Transaction* btck_block_get_transaction_at( const btck_Block* block, size_t transaction_index) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1446,7 +1454,7 @@ BITCOINKERNEL_API btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_ge * passed back through the writer callback. * @return 0 on success. */ -BITCOINKERNEL_API int btck_block_to_bytes( +BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_to_bytes( const btck_Block* block, btck_WriteBytes writer, void* user_data) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -1508,7 +1516,7 @@ BITCOINKERNEL_API void btck_block_validation_state_destroy( * @param[in] chain Non-null. * @return The current height. */ -BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_get_height( +BITCOINKERNEL_API int32_t btck_chain_get_height( const btck_Chain* chain) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1520,7 +1528,7 @@ BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_get_height * @return The block tree entry at a certain height in the currently active chain, or null * if the height is out of bounds. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_get_by_height( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_chain_get_by_height( const btck_Chain* chain, int32_t block_height) BITCOINKERNEL_ARG_NONNULL(1); @@ -1532,7 +1540,7 @@ BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT bt * @return 1 if the block_tree_entry is in the chain, 0 otherwise. * */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_contains( +BITCOINKERNEL_API int btck_chain_contains( const btck_Chain* chain, const btck_BlockTreeEntry* block_tree_entry) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -1571,7 +1579,7 @@ BITCOINKERNEL_API btck_BlockSpentOutputs* BITCOINKERNEL_WARN_UNUSED_RESULT btck_ * @param[in] block_spent_outputs Non-null. * @return The number of transaction spent outputs data in the block spent outputs. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_spent_outputs_count( +BITCOINKERNEL_API size_t btck_block_spent_outputs_count( const btck_BlockSpentOutputs* block_spent_outputs) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1583,7 +1591,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_spent_outpu * @param[in] transaction_spent_outputs_index The index of the transaction spent outputs within the block spent outputs. * @return A transaction spent outputs pointer. */ -BITCOINKERNEL_API const btck_TransactionSpentOutputs* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_spent_outputs_get_transaction_spent_outputs_at( +BITCOINKERNEL_API const btck_TransactionSpentOutputs* btck_block_spent_outputs_get_transaction_spent_outputs_at( const btck_BlockSpentOutputs* block_spent_outputs, size_t transaction_spent_outputs_index) BITCOINKERNEL_ARG_NONNULL(1); @@ -1615,7 +1623,7 @@ BITCOINKERNEL_API btck_TransactionSpentOutputs* BITCOINKERNEL_WARN_UNUSED_RESULT * @param[in] transaction_spent_outputs Non-null * @return The number of spent transaction outputs for the transaction. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_spent_outputs_count( +BITCOINKERNEL_API size_t btck_transaction_spent_outputs_count( const btck_TransactionSpentOutputs* transaction_spent_outputs) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1628,7 +1636,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_spent * transaction spent outputs. * @return A coin pointer. */ -BITCOINKERNEL_API const btck_Coin* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_spent_outputs_get_coin_at( +BITCOINKERNEL_API const btck_Coin* btck_transaction_spent_outputs_get_coin_at( const btck_TransactionSpentOutputs* transaction_spent_outputs, size_t coin_index) BITCOINKERNEL_ARG_NONNULL(1); @@ -1660,7 +1668,7 @@ BITCOINKERNEL_API btck_TransactionInput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_t * @param[in] transaction_input Non-null. * @return The transaction out point. */ -BITCOINKERNEL_API const btck_TransactionOutPoint* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_input_get_out_point( +BITCOINKERNEL_API const btck_TransactionOutPoint* btck_transaction_input_get_out_point( const btck_TransactionInput* transaction_input) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1669,7 +1677,7 @@ BITCOINKERNEL_API const btck_TransactionOutPoint* BITCOINKERNEL_WARN_UNUSED_RESU * @param[in] transaction_input Non-null. * @return The nSequence value. */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_input_get_sequence( +BITCOINKERNEL_API uint32_t btck_transaction_input_get_sequence( const btck_TransactionInput* transaction_input) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1699,7 +1707,7 @@ BITCOINKERNEL_API btck_TransactionOutPoint* BITCOINKERNEL_WARN_UNUSED_RESULT btc * @param[in] transaction_out_point Non-null. * @return The output index. */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_out_point_get_index( +BITCOINKERNEL_API uint32_t btck_transaction_out_point_get_index( const btck_TransactionOutPoint* transaction_out_point) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1709,7 +1717,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_out * @param[in] transaction_out_point Non-null. * @return The txid. */ -BITCOINKERNEL_API const btck_Txid* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_out_point_get_txid( +BITCOINKERNEL_API const btck_Txid* btck_transaction_out_point_get_txid( const btck_TransactionOutPoint* transaction_out_point) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1740,7 +1748,7 @@ BITCOINKERNEL_API btck_Txid* BITCOINKERNEL_WARN_UNUSED_RESULT btck_txid_copy( * @param[in] txid2 Non-null. * @return 0 if the txid is not equal. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_txid_equals( +BITCOINKERNEL_API int btck_txid_equals( const btck_Txid* txid1, const btck_Txid* txid2) BITCOINKERNEL_ARG_NONNULL(1, 2); /** @@ -1780,7 +1788,7 @@ BITCOINKERNEL_API btck_Coin* BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_copy( * @param[in] coin Non-null. * @return The block height of the coin. */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_confirmation_height( +BITCOINKERNEL_API uint32_t btck_coin_confirmation_height( const btck_Coin* coin) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1789,7 +1797,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_confirmati * @param[in] coin Non-null. * @return 1 if the coin is a coinbase coin, 0 otherwise. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_is_coinbase( +BITCOINKERNEL_API int btck_coin_is_coinbase( const btck_Coin* coin) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1799,7 +1807,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_is_coinbase( * @param[in] coin Non-null. * @return A transaction output pointer. */ -BITCOINKERNEL_API const btck_TransactionOutput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_get_output( +BITCOINKERNEL_API const btck_TransactionOutput* btck_coin_get_output( const btck_Coin* coin) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1827,7 +1835,7 @@ BITCOINKERNEL_API btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_ha * @param[in] hash2 Non-null. * @return 0 if the block hashes are not equal. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_hash_equals( +BITCOINKERNEL_API int btck_block_hash_equals( const btck_BlockHash* hash1, const btck_BlockHash* hash2) BITCOINKERNEL_ARG_NONNULL(1, 2); /** @@ -1896,7 +1904,7 @@ BITCOINKERNEL_API btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_he * @param[in] header Non-null btck_BlockHeader * @return Previous btck_BlockHash */ -BITCOINKERNEL_API const btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_prev_hash( +BITCOINKERNEL_API const btck_BlockHash* btck_block_header_get_prev_hash( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1905,7 +1913,7 @@ BITCOINKERNEL_API const btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_bl * @param[in] header Non-null btck_BlockHeader * @return Block timestamp (Unix epoch seconds) */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_timestamp( +BITCOINKERNEL_API uint32_t btck_block_header_get_timestamp( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1914,7 +1922,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_ge * @param[in] header Non-null btck_BlockHeader * @return Difficulty target (compact format) */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_bits( +BITCOINKERNEL_API uint32_t btck_block_header_get_bits( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1923,7 +1931,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_ge * @param[in] header Non-null btck_BlockHeader * @return Block version */ -BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_version( +BITCOINKERNEL_API int32_t btck_block_header_get_version( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1932,7 +1940,7 @@ BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get * @param[in] header Non-null btck_BlockHeader * @return Nonce */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_nonce( +BITCOINKERNEL_API uint32_t btck_block_header_get_nonce( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /** diff --git a/src/kernel/bitcoinkernel_wrapper.h b/src/kernel/bitcoinkernel_wrapper.h index 3b3f5009fd59..ff7899d1d69a 100644 --- a/src/kernel/bitcoinkernel_wrapper.h +++ b/src/kernel/bitcoinkernel_wrapper.h @@ -1005,7 +1005,9 @@ class BlockValidationState : public Handle& pubkeys, secp256k1_musig_keyagg_cache& keyagg_cache) { + if (pubkeys.empty()) { + return false; + } + // Parse the pubkeys std::vector secp_pubkeys; std::vector pubkey_ptrs; diff --git a/src/test/bip328_tests.cpp b/src/test/bip328_tests.cpp index 9fffa00b6b0d..630771d5b6a4 100644 --- a/src/test/bip328_tests.cpp +++ b/src/test/bip328_tests.cpp @@ -89,6 +89,12 @@ BOOST_AUTO_TEST_CASE(valid_keys) } } +BOOST_AUTO_TEST_CASE(empty_pubkey_list) +{ + const std::optional aggregate_pubkey{MuSig2AggregatePubkeys({})}; + BOOST_CHECK(!aggregate_pubkey.has_value()); +} + BOOST_AUTO_TEST_CASE(invalid_key) { std::vector test_vectors = { diff --git a/src/test/fuzz/CMakeLists.txt b/src/test/fuzz/CMakeLists.txt index ebb51b08c4aa..feaaab49efb3 100644 --- a/src/test/fuzz/CMakeLists.txt +++ b/src/test/fuzz/CMakeLists.txt @@ -39,6 +39,7 @@ add_executable(fuzz crypto_hkdf_hmac_sha256_l32.cpp crypto_poly1305.cpp cuckoocache.cpp + dbwrapper.cpp decode_tx.cpp descriptor_parse.cpp deserialize.cpp diff --git a/src/test/fuzz/dbwrapper.cpp b/src/test/fuzz/dbwrapper.cpp new file mode 100644 index 000000000000..13fff136aeef --- /dev/null +++ b/src/test/fuzz/dbwrapper.cpp @@ -0,0 +1,325 @@ +// Copyright (c) The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + +/** + * A leveldb::Env that wraps a memenv and captures scheduled background + * work (compaction) instead of dispatching to a real thread. The fuzz + * harness calls RunOne() or DrainWork() at fuzzer-chosen points to + * execute it, giving deterministic control over when compaction + * interleaves with foreground operations. + * + * Deadlock prevention: LevelDB's MakeRoomForWrite blocks on a condition + * variable when the previous immutable memtable is still awaiting compaction, + * or when the L0 file count hits kL0_StopWritesTrigger. Since both conditions + * can only be resolved by the (deferred) background work, the harness drains + * all pending work before every write to avoid a single-threaded deadlock. + * Callers must also DrainWork() before destroying the CDBWrapper, since the + * leveldb destructor waits for any pending background work to complete. + * + * The same reasoning rules out exercising DBOptions::force_compact under + * this env, because CompactRange(nullptr, nullptr) blocks waiting for + * background work that is queued on the (blocked) foreground thread. The + * sibling dbwrapper_threaded target covers that path. + */ +class DeterministicEnv final : public leveldb::EnvWrapper +{ + using WorkFunction = void (*)(void*); + + struct Work { + WorkFunction function; + void* arg; + }; + + std::deque m_queue; + +public: + explicit DeterministicEnv(leveldb::Env* base) : EnvWrapper(base) {} + + void Schedule(WorkFunction function, void* arg) override + { + m_queue.push_back({function, arg}); + } + + /** Execute one pending background task. The task may schedule a + * successor which is left pending for a later call. */ + bool RunOne() + { + if (m_queue.empty()) return false; + const Work work{m_queue.front()}; + m_queue.pop_front(); + work.function(work.arg); + return true; + } + + /** Execute pending background tasks until none remain. */ + void DrainWork() { while (RunOne()) {} } +}; + +constexpr size_t MAX_VALUE_LEN{4096}; +constexpr uint8_t MAX_VALUE_MULTIPLIER{8}; +constexpr size_t WRITE_BATCH_HEADER{12}; // See kHeader in db/write_batch.cc + +/** Mirror of CDBWrapper::OBFUSCATION_KEY, the fixed key under which leveldb + * stores the obfuscation metadata entry when obfuscation is enabled. */ +const std::string OBFUSCATION_KEY{"\000obfuscate_key", 14}; + +/** Generate a deterministic value from key and size. The fuzz input picks + * a 16-bit length (up to MAX_VALUE_LEN) and an 8-bit multiplier so that a + * small amount of fuzz input can produce a wide range of value sizes. */ +std::vector MakeValue(uint16_t key, uint32_t size) +{ + std::vector v(size); + std::iota(v.begin(), v.end(), static_cast(key ^ (key >> 8))); + return v; +} + +/** Equivalent to leveldb::BytewiseComparator() on 2-byte little-endian + * serialized uint16_t keys, while keeping the oracle keyed by uint16_t. */ +struct LevelDBBytewiseU16Cmp { + bool operator()(uint16_t a, uint16_t b) const { return internal_bswap_16(a) < internal_bswap_16(b); } +}; + +/** key → value-size map ordered by LevelDB's bytewise comparator. */ +using Oracle = std::map; + +struct FailUnserialize { + template + void Unserialize(Stream&) { throw std::ios_base::failure{"always fail"}; } +}; + +uint16_t ConsumeKey(FuzzedDataProvider& provider) { return provider.ConsumeIntegral(); } +uint32_t ConsumeValueSize(FuzzedDataProvider& provider) +{ + const uint16_t len{provider.ConsumeIntegralInRange(0, MAX_VALUE_LEN)}; + const uint8_t multiplier{provider.ConsumeIntegralInRange(1, MAX_VALUE_MULTIPLIER)}; + return static_cast(len) * multiplier; +} + +/** Verify that the DB iterator matches the oracle, handling the obfuscation + * metadata entry (stored under a non-uint16_t key) when obfuscation is on. */ +void VerifyIterator(CDBWrapper& dbw, const Oracle& oracle, + bool obfuscate, std::optional seek_key = std::nullopt) +{ + const std::unique_ptr it{dbw.NewIterator()}; + auto oracle_it{seek_key ? oracle.lower_bound(*seek_key) : oracle.begin()}; + if (seek_key) { + it->Seek(*seek_key); + } else { + it->SeekToFirst(); + } + for (; it->Valid(); it->Next()) { + uint16_t db_key; + assert(it->GetKey(db_key)); + if (oracle_it != oracle.end() && db_key == oracle_it->first) { + std::vector db_value; + assert(it->GetValue(db_value)); + assert(db_value == MakeValue(db_key, oracle_it->second)); + ++oracle_it; + } else { + assert(obfuscate); + std::string key_str; + assert(it->GetKey(key_str)); + assert(key_str == OBFUSCATION_KEY); + } + } + assert(oracle_it == oracle.end()); +} + +template +void TestDbWrapper(FuzzedDataProvider& provider, + leveldb::Env* testing_env, + DrainWorkFn drain_work, + RunOneFn run_one, + bool allow_force_compact) +{ + SeedRandomStateForTest(SeedRand::ZEROS); + + const bool obfuscate{provider.ConsumeBool()}; + + const auto make_db{[&](DBOptions options = {}) { + return std::make_unique(DBParams{ + .path = "dbwrapper_fuzz", + .cache_bytes = provider.ConsumeIntegralInRange(64 << 10, 1_MiB), + .obfuscate = obfuscate, + .options = options, + .testing_env = testing_env, + .max_file_size = provider.ConsumeBool() + ? DBWRAPPER_MAX_FILE_SIZE + : provider.ConsumeIntegralInRange(1_MiB, 4_MiB), + }); + }}; + std::unique_ptr dbw{make_db()}; + + // Oracle: key → value size. Content is reconstructed via MakeValue(). + Oracle oracle; + + LIMITED_WHILE(provider.ConsumeBool(), 1'000) + { + CallOneOf( + provider, + // --- Mutations --- + [&] { + const auto key{ConsumeKey(provider)}; + const auto size{ConsumeValueSize(provider)}; + drain_work(); + dbw->Write(key, MakeValue(key, size), /*fSync=*/provider.ConsumeBool()); + oracle[key] = size; + }, + [&] { + const auto key{ConsumeKey(provider)}; + drain_work(); + dbw->Erase(key, /*fSync=*/provider.ConsumeBool()); + oracle.erase(key); + }, + [&] { + CDBBatch batch{*dbw}; + std::map batch_writes; + std::set batch_erases; + const auto fill{[&] { + LIMITED_WHILE(provider.ConsumeBool(), 20) + { + const auto key{ConsumeKey(provider)}; + if (provider.ConsumeBool()) { + const auto size{ConsumeValueSize(provider)}; + batch.Write(key, MakeValue(key, size)); + batch_writes[key] = size; + batch_erases.erase(key); + } else { + batch.Erase(key); + batch_erases.insert(key); + batch_writes.erase(key); + } + } + }}; + fill(); + if (provider.ConsumeBool()) { + assert(batch.ApproximateSize() >= WRITE_BATCH_HEADER); + batch.Clear(); + assert(batch.ApproximateSize() == WRITE_BATCH_HEADER); + batch_writes.clear(); + batch_erases.clear(); + fill(); + } + drain_work(); + dbw->WriteBatch(batch, /*fSync=*/provider.ConsumeBool()); + for (const auto& [k, v] : batch_writes) oracle[k] = v; + for (const auto& k : batch_erases) oracle.erase(k); + }, + [&] { + drain_work(); + dbw.reset(); + DBOptions options{}; + if (allow_force_compact && provider.ConsumeBool()) { + options.force_compact = true; + } + dbw = make_db(options); + VerifyIterator(*dbw, oracle, obfuscate); + }, + // --- Reads --- + [&] { + const auto key{ConsumeKey(provider)}; + std::vector value; + const bool found{dbw->Read(key, value)}; + if (const auto it{oracle.find(key)}; it != oracle.end()) { + assert(found && value == MakeValue(key, it->second)); + } else { + assert(!found); + } + }, + [&] { + const auto key{ConsumeKey(provider)}; + assert(dbw->Exists(key) == oracle.contains(key)); + }, + [&] { + uint16_t key{}; + if (!oracle.empty() && provider.ConsumeBool()) { + auto it{oracle.begin()}; + std::advance(it, provider.ConsumeIntegralInRange(0, oracle.size() - 1)); + key = it->first; + } else { + key = ConsumeKey(provider); + } + FailUnserialize wrong_type; + assert(!dbw->Read(key, wrong_type)); + }, + [&] { + const auto seek_key{provider.ConsumeBool() + ? std::optional{ConsumeKey(provider)} + : std::nullopt}; + VerifyIterator(*dbw, oracle, obfuscate, seek_key); + }, + // --- Stats --- + [&] { + assert(dbw->IsEmpty() == (oracle.empty() && !obfuscate)); + }, + [&] { + const auto [k1, k2]{std::minmax({ConsumeKey(provider), ConsumeKey(provider)}, LevelDBBytewiseU16Cmp{})}; + const size_t estimate_size{dbw->EstimateSize(k1, k2)}; + if (k1 == k2) assert(estimate_size == 0); + }, + [&] { + (void)dbw->DynamicMemoryUsage(); + }, + // --- Compaction control (no-op when run_one is no-op) --- + [&] { + run_one(); + }); + } + + VerifyIterator(*dbw, oracle, obfuscate); + drain_work(); +} + +} // namespace + +FUZZ_TARGET(dbwrapper, .init = [] { static auto setup{MakeNoLogFileContext<>()}; }) +{ + FuzzedDataProvider provider{buffer.data(), buffer.size()}; + + const auto memenv{std::unique_ptr{leveldb::NewMemEnv(leveldb::Env::Default())}}; + DeterministicEnv det_env{memenv.get()}; + TestDbWrapper( + provider, &det_env, + [&] { det_env.DrainWork(); }, + [&] { return det_env.RunOne(); }, + /*allow_force_compact=*/false); +} + +FUZZ_TARGET(dbwrapper_threaded, .init = [] { static auto setup{MakeNoLogFileContext<>()}; }) +{ + FuzzedDataProvider provider{buffer.data(), buffer.size()}; + + const auto memenv{std::unique_ptr{leveldb::NewMemEnv(leveldb::Env::Default())}}; + TestDbWrapper( + provider, memenv.get(), + /*drain_work=*/[] {}, + /*run_one=*/[] { return false; }, + /*allow_force_compact=*/true); +} diff --git a/src/test/kernel/block_data.h b/src/test/kernel/block_data.h index f4d693c03837..c033c27635f4 100644 --- a/src/test/kernel/block_data.h +++ b/src/test/kernel/block_data.h @@ -7,211 +7,211 @@ #include #include inline constexpr std::array REGTEST_BLOCK_DATA { -"0000002006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f295badc0bdd9a2bc0955d12f337491eae4c87ba4660078c0156310284d47c6ff9a242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a629da61ccd6c9de14dd22d4dcf06ac4b98828801fb58275af1ed2c89e361b79677daedb5fc7781c5907a88133cd461b4865e9a4881fecfb362304ad1806acf3a7242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020621716dbbd2d4109ecf95e3ad14f2e205cc2dc52e286e127009b8941d255495a16bb39e1ed66dcf600fd7eabd1b8ee77ec894a77c2eac0dcc3ef2a4400707f56a7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204b272fa0400818325978161031fed250a9d9713471c9b99be3d10e2350bfd632ccf33dfd714ce243a48150fcf6281ac3563de5418112606ee2cc09632f1ea406a8242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000200e99bd4968d4c5e58887c3a6f1b5e3830eed6aed635a1d7275b0361d9d69c24394c11b2414977058cb5ff828a13c1e28b342bb947c47f8b1fc1c8886c6355e03a8242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000206fe9a1ea5c1b6cb5f0a2139cb187ed8c3477378f92838999f107f912de0bf92b4d7385d0a84e58f7f8d8d58e6aecff0928b0c8fc13009ab0faae02650f9726eca8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000207dd73a995a00c5babb1d3084216e607775a03b985ae25926daad86307b04235713e113fa98f8656fa83b8f91124a8f988ab826138358cbc3a9be9216be0194d8a8242d66ffff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204f6b4fdd4e99aa10a724cbeddefe323f0042f4a3f6e3bd057fd4bd7a5b3ded6f710365157ed17e65cdfd6e4a0ee0c73cfb582cb14dbb879db7465682fedb6868a9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205b86722a8356305226f236b66d49447b771236d91a768cf9bc0773addfcd1a3e203d91dd647210a031046cfccd099edba94b5cb0203ab1e7c208158c1c04d7eea9242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020bc72fce0ab3196fd3b49be9cf4669700f9aa66cf257f046dcef175bb78a079219f52575cd5c0c93b5b37cf9377230c0f4dd62069fcc6ddab1a0cf35ec1c440eea9242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f9e09a49780b8e3ae1b5e0da63887e81528cede0a052fc0ce7e7fe44ad09ee4b676a90f97480ef4e447335f1b9376c944381fb06d69b778a47248e5760dedf62a9242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208bfac22a1b801218b55cbd1a36c86ba707d495b52d968fe24a89ef430c6f9c05419a2754a90f35ebf699288adfc71568252fedf46a2b731c2cc787d55e44e3dea9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020da91c8b0a3772de6a794c9bd40cf7c1f8b21fac91f99490e7d995d7d0bd52a4f69ad11d9c347c0bf88430b128b39f27b954ffcd48bc38501eba0a99dffb7969ba9242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203956d8b72a0b1c7c1d4368095f6c1db60573c50827830b648ad2d6741d41947c48e9d057ff732602042bb46933568292bd57e76761273b7af178baf926cebe60aa242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000209c4249925fa49bddcd6f0917f8c6444d899d2d958c65e33da450e25687d46c4a8efcab0bcce7a6b22485598a2eb928092262c95f2ea233beab343044013269ddaa242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002057d9cf496a6ad859d1ea07872d5252a23bbb538bc7d1b08c8d9f0974a85e5e02b3db6b3f80920bbe3b22af1be2e9aaadcf80a154efaaffdbe490dfacb4d3a451aa242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff026000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b6fc1a61f7be52633d0a4b4c4c19f771f10bee3fc56588432391c5e97b776f738ad2ba58d06082ebd00d230f18adc6ff1b93a1d3174ae38a06182420b42fdc3faa242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d85d1bf880c7990a81b9e0267b68a228b48cb64845a580143e82bd663d0a0978185fd95f0baa50fb47a74aa8cef8c1399c293494b43012d63d964105bf0093fbaa242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002068ffadd19d0280c45ed8f0b7590dd75fed9c1009e0475d4668a40d2e143bab669b7092044a52f2177565d265abe12345db9fe2547dc3e3cb383b448da633b1b4aa242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002097dc68fc9d81183e84448af957c1465f569cac8fb65c074c845d64f19bd554104171f67fbd239999b74fdceee35ccc71fc59ef34ae332dfd14552a5d8acb54fcab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fa4af9a0fc0b0e9a0ea56ef4057a1a63e28af0df0899331bb075e539ec56ed679c4c2ad7a53ca7b1f3b7ef31bf7d585f1ad9511bdf22079b91b0037506b12489ab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000202d10953dee9089d3920de4d1b7493724d70356df3c857c7d68ad4b2d806ffa4cc7871c5ea175f0eeed32fed65ad39aff543ff56da564b92513d293c81ed49110ab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fb21d2eff50f7ca1bdd3cc0723ea65ee398360126353f003d6cb3ccdedb6280ac6f409e9aa8debfb95a59e6ecb9af657726d9ddcd0bd1f1ac24a8eafb9b94714ab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205f4c345ddef72b4ef5058caeacc0700a66cc39ea3c1a2a18c317648cabf8dc402cc83f2d67a467a8717aa1879c41c5677f480ccbec5a8e8016f1f9ccd56aafc0ab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020310433ad6123b7d5d9abb3bbac99aa342bbfd500226fb0716aff55f3699f353f95c43168d3378b7887a2d1a24743cf657c91539d417366f27be40cdc63a601d3ab242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020bfc0947de2b6ade4585380f94beeaeccef09260f0f1dbb8c7dabad11eb32c97e4b029e0f3109e37889b0eced5a40e1b9194df469883750646d0acb8145a4b287ac242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203b8193f8ff6a02b88cd464cffda63591cb1786b15b9e8258f60327f63993da034d96fa8c632da473f2abcd001184d1812709ed52e9c2585308b28743ab7508e1ac242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204f79cf2c133c2cc73bd1b961cf050c05151f0eddfcc3697285fb9a7a6ea1a755f6e0ae2538360972f3e0c31d87776219377f2c1652ed388e29dba79997119346ac242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d9c3964f9739a489aec83b9d91e0491348ddc3496aeaed7d36cc80b4d3df73455c30e26ad3209af4fb1594a0425254b96c1d9bef301b3e144f56019afef54fbeac242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b90e7f5b1147bc7acec7273f9a257dce321f9d6cf585f65155e6c59290e6247f65b6adb2f6b7d66e9302a37f0becd2cfc3db5eafdc280085b08a1d087f558109ac242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b22d487dd491c29e60fc3e8ba3dd959c5ff05848a2af269a009a683c1c22c5618eb631e42ba03c2e5b37d623a4c1c32771a7a3b603031767002f9c4c843f1cf9ac242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002034685fbc27dee9ddf76106dd351ecf20a89c536d020ae5b8164e53b1de2eef03a9c2bde79aea6556b7ff42c0db3ee63b15b19f036578a40be5e29a4e563dc949ad242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020969d6801100c0cff27957f003d5994bb6fc3e80537273412c2375cbc59edfb1462def50ab47b73e04189b9314b32f18b23c21363bbb1700bde5d6f2da8d7dac7ad242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002060121e480f5e68740e4ad5e35e43a9af8f3eb909dfe7a80b861af047f3cf2931c46fdbbf4a9811813d7ef66ca70a89a93f377aec9e42f8c7bd13d20dc42ef4e6ad242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000209aa005700a68ccfdfc158c9be0d62b0ebd757634407c2480c905758f803cf95392df59ab811f3f6a5b3b2fd508b15029971cba8c76ab5aadd215baee41c1ad56ad242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002011d5aa6137f48aa4a2d029beed939afced99ef19ab01bf0aeab4d88b999cfa513daa30f857b99deb57009b0a2cf5d37180dae06571b8d97deb3877f4e4b488d1ad242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020596ceadcb769b05d2b7fca9dee997da1a32952c0601a787cb8e23f2d3311976fff761af1a0911827c1fee0c638f4675b54146a3f17ad65f3228b6328a59e572aad242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020cac001eb2c15d3867146858d9b620735c9943430c966ff7b43bad91e7f45b509420bac972f1288b190117f815de318c305b4882e7bc8e00c3806b456d7bc9706ae242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205ff85ba1a9bca61ebaa89e99126a41c976ce9024c9c6ea0c1d97fccb5ecbcd48e4ff003414a88179becf0daefd0565b6648da3fa8b1e9862fb7254d6cbc92b43ae242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d3e4f3325a799d70e469c418e7fce0f325c52be2ee1c190b84ff5b39d567dd2c4d34d12f298026a275ef66faf05c083d36200208e06ef39df4de88faaf51a8a0ae242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002005e0364263bb17cb112c7a6b49807abc56766ca9f33fce8e4d4e1a87d2497518814aa83fb0c65f975b273b20c3283dfd5d0d92e0d744627e70e816693704b452ae242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000209de0116300caca1392ccb3afdbe22c0ba403795c7e68d29b0e032ac720d72b322160702e162edb0da7f535d46fc0e608879a1b6d8a3784f18332c7aa7bad2e9dae242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002035420343ac819c9d40e6e0bd55957637aed404fa2ed236f78b1d4b61fb277602e40ee1a3a4f5764d49f9b352a2e181ebe4ae767e0058d38fdebaf88e7da4e9e1ae242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020ec89afed1c02ee80c9004de715b1a1394474a122b327770b000dcb7c29b7282f1ba36b2e0780bd43225698622c3c48a9ab99dec79445d3e7bc8d5ae8133576ebaf242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d5d5ff8551565d2217e6f20d0eace67ce50337b42f7168bcac7e87d4156b2446cd3d8d5d7ff930c84a26e685b99c22c60e5a0bbe57001b01e9b4a2a696480a3baf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d9ec6348ab3f33d8bb73506326da559802ab477437422a00b3a1199b504bc55bf5425b45c0026fec9c3e2e16e800aa75a220a27848c373ace3c20a18a34fea52af242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020c5e4baf7aa27a6d5147063ebccb77e381b0a16939d7982507701d3a3b3e88b1ea7660119cb01238504850c2528b3b371cd1f5895da5e620fc0a044836257bf64af242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002009254406ac2f1028ea8eb2693b2cdb1fea047cb349d7b270b91ead7af5014e04b71fdcf9152e76b76c1808877df7bb8e379536d46a289fbce9a99b201fd61868af242d66ffff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d17eb50ed977c27229578a938313b3d86679668181a4e01732cb52f95c116508f755809aaf681a5c0f7839f65813aa6fc171b2e5dcd87f35b13b49b5639016aeaf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020100d4bdda8d6187537d88e810ce2aadf581802775bb74a9acecb6958c75de5251f5b24d57fc19c7f73451a559f0758188af4ab7be72ecb22996be0225b0fb099b0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020c3333013d49f646c18537154844d37f81871444b3fce3a68f6e165d7095546115937b90ed72637588e4184942469a3ca1bf183fa65b9c2785b4592ea609c8b59b0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002017e241077f8cd618734503d66c0ce828b7d1add601903160a3ae1531b8ea1e4ce69c66d64563657224548f7ecfd7ed3571fd5f6976205ec806d72f9aad95d352b0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fa40c6e3a15a659ef582ad24f4a2c0a1c801978da4b573a528bfb0fb73c3cf121796631d479c9fa6f6bcc0c5c1f0cc91e10ebb56e3b6c2b867c0052d0924432cb0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b356e0e5bcd4f6454ed9e6f1adf91b466723b45963b02dcecf2e89c0d1045a24d453cc476a5662964ce6eecddb78efb40e1616223d4c7fd54f6ca84abdc87e02b0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020ad91fd99ff639b89af585c3b8708062a48ad19660400d204ef099c2d66d1ca57b0349eb1a161d04fc8222cfbc02b8a1ab964abc5744f2cd726b8baaef1abcc4db0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020bacb69ed2f63b38dd103114bbc24dd9b609f8b6380f1f362a05c3f85f9e6cf102a391905e006fcba723d56c6a3eb27efa4396ede18f9c50e0be90dc1e928f163b1242d66ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002024889501a0da6ffd4e6252fd87464b9eb54dbf7b1c759c2ad154152c3d7c5b2e8c3626fb538921b3f59786de9e6ca2487b3a1f5c80a3d9dd82c27a6b1a6eac5ab1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002090ea4ed8d0f7b230fd2efa6b5ffb07e5ee1efd59754e7900ff4e24f793c2d926f8481e6e63a795f646f1d06cacdd2d2ce7b176afa589337e869c55e864dfec56b1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002079f76972c386a45cbd62d5cd1f577e36b2d37895ea48ad4f25b2aa6c386e483404dfb68e4e8a1716e151c7028c8c0ea9e80e9871c3d7f2e1f22b3a3d719fb2a5b1242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203e5fb23077ce93fb1412feb53b3c6cedecfea12edf96aea02a2fdec683564750419ff40c0af3e1f9bd992edf37118f709abc770458bb5f73e64a9068dd6aa285b1242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201d517a82a9ae83660d8c57aeefb14b57efaf3b93b22b43735597bd216af66b161ef125e5eb8baa3ad71c6364e0b9fe078e29f1b39091c478abccc05944bf43fcb1242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201cf4a4d875525be85ed64be8200b4149ba224652f880f050f155e3dd0f6dcd2d170c26d30263760e6ad9aa8194f9ea6995755a57e0596010faac244c63315c3cb2242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fca7eee11cd55953e44151448a37793746c05ace49d1281bb6f27772ed638b2b67f5446d2067d394ab55d0e78e6503e0df4da7137a910a4c06690750156cef79b2242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002011ad845546ac709706716ea309ea4b5dc058cd1be347db517f1ae8ae50c9361943aa4fa21fe9f64d97e0ed3d93894339eb6a84e834ad7e075033707b15a09b42b2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e78aa3452cf4007ade84710d761445534b0246b2c3b5b00cb88811e001b22e0671dc09c26fa4f6e119dcd72c5c20126f2365a75dfab9689aa1b67e4a95a19ad0b2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203fd33c4ecd968f1c4610e6f6f60e7c0f1af838752ba5366ed32510cb26b3043c14ad22a3591f48182ee74f23a1750f137b135cb9475fb201098f2bb4c2f1fdd9b2242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d6a39793d31cbfd1af6b33552d9bc2d5e0815877419b6d860a6893b1ebb1c4212bedb144bd378fd4e5d3b8c0be92aae4e95d8ec8618c2fa5b1dd912d8c1d55e0b2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020afdcdd52d9eb6de8cd062fda1c9421479edad871ae7c27b99c48ee589e13431a104b8c78e72462da96c7f39aba43f890a86530d4fb56aee3d96c99c242d524c0b3242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b63b5fbee3b85e33873d93dcbf1d566c9081d4a63c6eca84fc96bba1c862520b64934cd71d23a22f62b2496bea8c64f064c4931a6ef4b9384b4a5090b8e27612b3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201a2c83dba9834c76997b89f477b345a47a9600cbf30bedcf4b380a0a11bc8132b6f5e54d82ccd88e8bc1dc1124e42ec2f2b1d943572d7f719c55ea48d5805841b3242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020567483e2c2f091af7cd71d03aafb7b85c5032516ed8318ad970e4db324853b344cec6bada693600b655cf4ffcaee0d2df35f7809ed9958da8345783b52a0d459b3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002034b16f266dee682239831dc610d03d10974d8ad400a41fead6be3d03b94acb7cfdf201cf64bc3631fb44b4618cb6720bc1512f6a43eb414c5b1158e0e8505528b3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002096977882289042f845b7bb3350a36f55a39cbe0eb0176a52b5c79ba1a1866d28fb87c6e6e90c3bf164a95415a90ca7e2c70742c5d0695a9ed8018c91f81af9d3b3242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e7e2590b376f0c6998588a75bf37f0fd0f314baf7e49bce637d3237a171b027cce5b0adb066fd5710c534c446ec42d5ab6ab1881de91f18895a1a73dc00b9490b4242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020c1df8ae18a085032270a7955b95779b3dc188c2b11d91f35043d5799822bd00e768988e363807504cb4ff2bee0b38767250aeb8e2a783efa9128aed67f9f0330b4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000207c4cdc374b98412c61cb0a9ffc15ea2bc2b6c957bd64f30e7da78797a514f014da8d366066fdc30df791b7be1c73f97d762a3d1f1bde06507a39ba65e2216740b4242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208ea0c30cd8e4285b6cecf7a013a9cb1fb5980cfa5361720094c3f46315ddea440201a7e278dc70cc188e58afae9a080f5e982254dc556f22f4f160cbfb2ce9b1b4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b49f1f2813fe4cf60b84013a7a66ee8069fef8fde1589f1bb7491a800ce16d1d94386bf1300a238e3522886fc1804232b1323bf39cd63543be53739e96a67058b4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b9c51fa82b5f3be2527b4f36642f998780ad7424acfddadc457082eb0c51af33d38e3e20e32a812798fb9c16d1ff5978bb6a9700efce13c171e6ca1e4c7c618cb4242d66ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002050877e42ef334dbf296d7655f56d9597ddffa49c2649707819cd908916b316026e0e9f165fb96149dc1cc645ec651d2c487f34cc59b34abdaca55d0bb52448f0b5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002002eba642217e71e94334723645a3db397f8c83a8b7df5b4c7d12d566dd859014f6c8a924f88f3aaea0dbacb410d9a9d79ddb2b2d84ceee104539ed2663f6ff68b5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201e772bcb91c42f43cb65fa81cc72876b4fd20e59d54ceadb928d3a0d01829824638fdd743a87363f19441bd7d3af1193ec94ee31da28289bc1bfc37ce6292756b5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020cb684c4d09354f8d2173240f3e4080b11d814d8d64ab0b851d0dfca5b67c021264c0b4d218b63f9ef8febd0c822d0c609219687d9a1d6ac2c73f50501a4dd89cb5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b776bbe12a01c8d1d9e30a8e4d564074e939af2c88e559cd1bcd88f99943ca33cf0e756cf03b0b23d9b65053e309a7a54a26e4403cd3a3d3d31524a8af1500e3b5242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203d36bee9d695e4ec54b8442cb62ec3062cb056d95391fa73b69f4867e88c6b376984a42255079b96908aab4f4bc5175852f3d54001a493d4f7a9d09d4aff0ae3b5242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f912ba814881103501d49c3df38e24ff541f6bfc816d4f8bb6db1700edb6cb3db125a06204d5694baf2c13ccaa2f06941adc3ae7d7f2449212644cea8659cc6db6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208b911ff262dce74ee321bf09df07c39930d53a3a10fd83c74ee4ee6eae13a2355e47b7886c2839c9d582d49fdf356a5c298b3f7c879fe4467b01cf7f951620d8b6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002012e1e9a299907113c100c34cf54bfaf57a02c0767ee571d0b0d586957b867632b121f1d6fc22dcfa6fd87cc5ac11579cf7f81554536c4e326eadad0ece3cdaa0b6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f4ce3aa3f38aef3c886d517a63a16d47c4392600caa85ff656a0829380d03e32a1a1289f4216d88bb0514d5259b8f03dcd05fbad650bcfa59cb163ff5b698e8bb6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f590ec1e4d4e3ef13a520a71d67175cad4b9a279b0dcccfac471c658c995af0488752ae773a4154022507aed806c7ee50445a92211b02c10ff86070d353ac930b6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fb36f60f0a788d22d25ad7962333e107e142c1e797614555a25b3fabf2a57633ede3caa7569617ffa444d6d4bd3e2dba7e31085b1976f16d94c537c1d3462c0ab6242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020c4f5c492ba5ee620cbdeced3d2ddd6c6b3cd394bacb1a917774a19048e1ee64732e54ea8502d51b05bca7f981c5ac0f3918dd02dc178206f36957e6daf2a8121b7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020cf0e39e15de40d780ac3bb7eb658a2d93d3f6266fae114f919fc343d08374c096c4d12d3e956a95499d46bd5781b02561da3c74cdb7715f0e5c1b649197c7c86b7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020ad64f0c519b59ead1dd2447eba48daccb1250ad83f9f1d2a4e687085d099181024529c67ba916443394c23138c7202970750c86f8edbc81e9903a75e509cbc41b7242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205a1116da770d72fbda72b39179312f45b3d3fb71e2492de5401715d81216ef0877e24b23c538570850108445173cfba3c5baa6ee6af16f807e7f56b772bb2933b7242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205133fd567593e6d4abd3599c4aafd0231415165f82d29a0a1cf4c43e7fdddb68a371d48b5af5147d8cf8f4489d626985d6420f851bda7e70ccded3f95566ccd9b7242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208d41770bb44ea7f13f2a4b679dd3af01ffe76ffae2b4c3e26cee308c1b76bd5333a5038cd81caf8e515c5f6cbed94ad8905bad2b17bdfd0327bb1cf41f306accb7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000202f33147ca2f755af1d9f2836059620db687b6d97cf85d832c22901aaaadaa42584b88b0732ce3d9f69ab206742b348ee96a6fbc63c288f14795a8221548cde6cb8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000209aba329a818d2eb01da985e497050eb3d381d104674eefeed2ea14f2531b8716668688a5f4545d86d00bdebb0a007cafc530603c1fbb6d6a9f069a1d5f109fd0b8242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002071c804f177410c9942f1df0bc891b9ae655082125488df7e5c79574c9ad5a83b8e7509e225f8970ecd5638f968934560a3b99f6a3ec03a5dca7a9db5331ca713b8242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020617c4698f1f9b2a52fe2182cec78f469324a711cecac03013aaad0089835a916f9126503be1001080102ab122a123a6ccdff5a94017c15a6f14012fbb8a8fd78b8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e54649f5adf59dfb18fd1370434cc76ef9a453762b17a435dafb580a19a5b868cb067747f9a355804335084c652f93548867e02050fbcec3c0ccb05657ce666ab8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002067232d9858897d86a155b92fb94b42353d765f0d2eaa095460a1ce297c3863051e31f463b5077ebdac1295d56461028fec70e8022896c54cd172a1fa685ddaefb8242d66ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000202945795c2dd6b0c47c96d8ce65f0083cf20cd5760622b59ee895eff33b8d1a36ec51a1a1a99a971437b3d24f06190608cc2646842e3b3fda0b00df450f59ebb2b9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204a4dfd3ceab29299d0c607c812ab2626cc1a8416870f5acedb9b81bac3807271f400a1a56b15e990c516b29a50a9a3725ffa77ea1661fecd37cea2e74c8d2b9db9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b3bfe4afe33b5e0bbe6f4368e2e2b88a2bae140c03c811e87ce5cca690e3e31406b87a9f1d8a9d7af6214f09167857f20c61c842d9f9231e5399e4336040fb04b9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a32a6b2a892b689df14f7c9c03410d3d3f93170e7e52fde74d044c1e26a1263168b9d32cd7aa7507c31758104cc2615250fd24f3b52cb887666ff6f0ec67e81cb9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208a6eba5ccecfd3497234d5a3e2613432219c17415974089a4bc57e2063a8ef05074c42c456bdf4c1c163f1c5f9449710ec4bdf2a235c8c77b8acb0ecdf13e9c5b9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002001acb70779eb9d2ea47e0f4d712f3c53ed5adce6a5648f3424f9fd45c3afe619e4f0e50d89b209a25fca681be53f69ea2be9a77f7f90dab1fedf189630913dc1b9242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d71e5b9e74a151b78b3a08b892fb6c42413e72678245b69fb336d05d2ce95e2e0a448aa97200b2d8ed8f31df63f6258c37cc4e57f10bf391513646f458830993ba242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020565de0257565202598c3f694bf1a7016d49a7c6ddeeb114476ec452fda62231928c5aa1ab310a7f56b5f2719f9329b2b4547a19b31a378b52d3583a961f1e961ba242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201b719fad536a1e8d485b159afa8042912824cd38e30bb6e084cb2d267531f578df5ae1d4bd3c57f48af225d738ad22c741af78b77c80b58ba589ed86c214602fba242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f404df02ce88cd268ed66c9acb0d67468318534f1e27e77d97bd5b60390c9678a5b354db44b69a99df4a92e3c49cce01869df231013ddaaab5e3f1bc03d81294ba242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020283fce509e2ef4684d5111303f968fe5b3964c6d87ebad2c0f2fd454548149054dbe5c69140bc662c90ede02f18a5558adc0047ff8eacba64aaea4e040ed867dba242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002093eb737cdd90ca5821280cd71e2bfbdef549c1e6ba380f03fdc1cccac4059b2560035e74a3f897390f93b6ed88250a1c2136ed516feb5a2a47fbed955e98bd47ba242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020011fc8df4a0c62a841431c4c45f5432ae969288b81af3c1dabc8ee1bc86ef050375c54b2ae535467d9179fd386ee6d9c4b33b16ea12f88f6256526da1636f191bb242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020885c040fa44740515fbe3102ea30fb4c2baa117e84fec25d9216b011ea36d271c62fc55485223a484f89ea0d4dacf68cc53fbc6af98bf3175338c5db05a4cfc0bb242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020ef3fdac73d38f9446f5d2a1065dd9020c0269a44b5e35648f44e8b1b86d7c15c8eb10a613be613468b8db3c70fe2871fa67d6526a3b4f11e736922d8278a82c1bb242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000206ee6d94eebdb0974650cae85c9d4cd035e07031e6918128e7dafb808fb9dc41284653ff9bf84237ad6a84cf6cf9817d3a361d805db6cd3daf7665e92ed00421bbb242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a8c7d8435a99871c45680b464b02d8618b23ab0ac3dfeb93926e54ccc91528633dc26cc6c6895abe5dab4a6302cd192f40e9df8404ad4b1425ca7d6c2b5c9c18bb242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208880a1808163e847db25da39ea5e8a505d7ce390a3b2dd363b0232ae19896c274ca90749f6d4974ea23a247402d638479a5eacdc3c15a050691acb3fefa44a7fbb242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000207d58853ff94add55234809e82d5ed08b330ebbbb6f21587f0728e2a164531f735d9bac48f7069d5d36f8a6f39c41dce36c4faa1a0c6531802797bd8a32ae96afbc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203574bd3a510891f0203282179050926b511c020ec1360153e1755b5847c596410acdfca82eec932a8b4d8487b0401ca67e281f007f5ee16a283bb5c848d051e6bc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000207e3269b3416c628d055c6f078959b491563acb9fa880e27dee1629579c0a5319ad12cb821d869154d368363e677329729794ad9ae554c1489fd7165feb2942d8bc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000206785e999e70d485458ad511b5d2f16bd66595597ffd0b637ec00443bf5facb03c969e25f87b232fc4d256c1e2366052fc7f6ec34924f2d1ce74a9f8391cf13ddbc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f381fa4bcbe9d7e2fd4d1732e3fe21f57d466dafd4bc847a1accaf549ed1ed2a9c6d6d16882a64c72ccca6a0f6ef5094950a2b2ac9de6839b9e4a8dc3f1f5a9ebc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002015982b33b232e16e0639402194bfe59ca442fa5eee0908e17375a639e21976492753bcc20325ac44a5f486cd4c417dd469d165fd4edca4f6200845547dfadbdfbc242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fdca1940e53d9d932dee8475fe4d22268ddf7c1f75792445fdb1d06c810f8232e7f4422c02d71850c1141da19d6f25f3cde4d98c43a718315b3ae49719b9db69bd242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402800000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d9ecf917131051e0e7b5e58c351d9720bd25eaba552d24bd8c82c6cd71526c0f8b6a35e7520982795e0048f2337b2575a7716cb4902835bf69e2e20fd0c8b8a0bd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402810000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e4ac0576eab0dadad615ce687cc92164368a8a024fd6cde8aa6b004d9e5e324d9d55711809456cbdd053aef9ecdaaa6b1ed01843fcd0180a7837593628ff6decbd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402820000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e0ea9b2cfff8a497718a1ec66d7257d56214e17fce3bcaf7d7507e6a104e5768af3f25f467a26ab1bcd44c627a61dd7c6143af2847778f9854049cec23d73420bd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402830000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a6eb927d1f8a6361f4653f99495cc271c7e9e70f58daa8d54022978e2c59ee2f4f58274192e2e88ee248b835ab8ad410817369c07e1217bb4bcb2f1b17edbf2ebd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402840000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002051534f847263fcb38cc601f71f2db087f405314e4c9a0bf21bc14c20af62ee28dbf43502bdb7a355fda5697c33f6d0e1ea8a708a101862e690dac25310b766a5bd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402850000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002039d1000f53fbc4dece3d9637e183ac36a38d67cd14ab9c79a30777b2722db65f6d0e0b35f1f52add619cc15086ca69e3070c2d1c1dc473315d23b1a6d86c82d2be242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402860000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a594bd4cde746fc3598f9ec0862576190f71348a027f46261d1e04bc84f83e5ba43942886ee1ce5ef626ee17558c2a7a06a2c2d5d5fd3394ffddb331d232177ebe242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402870000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204e2d5c0399ebc5c5322f88cd10141451ee5a57522b8ab36036d20d29e38cb31862674f09e5aee7956ee09e346e8b3edb1d818d08a0b24661e3bf5644a4281da9be242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402880000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002088900a6bf9bd6a461d065eeb99ad9dde564952cec1fe60e4bea6d8402861ad7d7b70bc1ad5e7635d58387e0be8dd25734aec644243460381ea1b033785ad9f12be242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402890000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020528104150f16fb36a4e6bb8c4d6016d856e578cad9c56ac22f85c0f1fdda9c1c718dd079b4d6a3c606ae1e1d154383ed6f817ebe20e3b960f5eafe7700d682b8be242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028a0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205effbbe5e95135f6e92840b4d82f67d28c8a5cce1d05484d17f173f2ce6af77621f128761961890dcf6bd1a80e5917a3638268db765fbb62f1fdd0fa16fef98bbe242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028b0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002028148a9f61d6297295c1226f8768ba16023a99f09f4a954c5423f3cbdea45d2818f9b10a859c938977e0770c9ec1f4a7bc8ddd5967d7b6e16a2c47f86211c5d3bf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028c0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f7ba22c801cc57274aec68c1a156c14d2b0e158aad723c51322ea6a3bd64605b136c0a30a4b8d8ae9fe01b8d919ecac7f402e2f80c1e8bc810c6ac0bd96079d9bf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028d0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d3069ec8d092fe171fe9b79495e8e7f24db5a43e8e8305dc07f996d1b1ce656d6b79597cb0a1d85caed7164c876f3ec67519c1a7fd2a4965308e27268cdd6167bf242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028e0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020eef72272a0bb5ce0528e10c290245854e50c789001ac1609622e8f6488ace5373748c28419442c3e60383f1fc14e54d1c681c6681541a68c3e361fbc2fc523cdbf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028f0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000306896592a3ea4dbf8c19e9998be4ffa03827943679a4204712120e3359fdad25c9614019ea5dd11c3d38422f8da66631fed6531ef5fcce927d81ea345b1fc679bbf242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402900000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030523c6ef8cff479608a467a02bca097b2961679f3de0cdfc57228fd95f4c03401fd0ae1181844f2dc4b81fd0866f072a97bce11a7722a2a1fff557abd06a36151bf242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402910000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003012ac3be42309dd4fbfcc02f207b6d5956561a09aeb4d982a22202f052a96494fbdc972daa895af0e662ac30583a35a82f69f584d9ee665e7ae772e3c785577dcc0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402920000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000303a366155345aa1cef44a5812ce6b2ff9c116fc23110ea771b9217bf2bb75b243c9fc73b65ca6afeabad323d62e01d206811438b3813cf3d7d74f00aad7f696dcc0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402930000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030afc514228a275473b190113664494a28813aaeb666d75ca024d35a07e11f0b6150e67c4abbf2b31ed6be994ee951a5d85fe749604b48215b137542c77340fd5bc0242d66ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402940000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ca9cd2fea2556b65b16f8a3dc0df73f0aedfe3e9418c1da993e07a05b94b9b59ad94efec2ddbf4294b649020f9cb94354c589f52629aa96870e4e8f035f2e13ec0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402950000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030782ca7554e8c8d7a68ec7c434ce41cf62317b392862f8d6359475d2f7636f02d5957028a93c2f78343a408b08780a1a1972734f3c638f413ab118e506057c176c0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402960000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030f3e0a0f98274250e5c5a56ada49bb294014c42f402f6a2a43b70d4fcd2a1047d78abb1f53c713cd9d7b882d90da4c5390a52c76100691cb934d70c268d0f6408c0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402970000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030bf1e2925ae124de880bdeadbe4f1185e2efa1a260fdc035739edb6eccf765a3c559f1f38c185ec86dec065a565a5bfe3810aa5247fb101f32e19cb8935c61e31c1242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402980000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030f2b1ceae06ded56e1a1111960fdb03c65271cd43cc457e5f57ab3f42f23d721eb7bd2cf81b97147a112fbf47300df0a013fe558d0c2600aae71db8e39ec4a478c1242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402990000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030cbd7bfd6450022971e585d82c23d239822b4bd3da3906928ab19b9f44e5d1b42b7a7cea58cb4b63301e3bd15a9d5d58eeb7fba20a48323b0d9945cc683fe8874c1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029a0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000309e52161272efaede1503987717d6bfacd6594d2276683d4c099626e963455320bfebf0b2330ec760e02160572e43603f1e5e69d52af960792eb5a4ed4a9bc977c1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029b0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030c103628b91423bf5db4c914aecdd3d4e2c48fb5cb91ebf0cd708ef88c88cc371f81cd2e6fedf8a37b690c5821a11c8d03ef27807a051f5889bc9564468bb30abc1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029c0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000301f4dbf901f4f9d926be445a1f695ed3f9848d59b35c7c58832ee5ef494c20d12a3be96b275a338a754506c3065e5cb44f4fd811d2cfd2713cad39a9110666dc8c1242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029d0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030f928d5d5385bbc2dfb5d47dfa27398852d3c94c44f9aa7450c8f1831f6bb851b25cb218eeadded201e0c24ec3253d76c9b2b1e2db5882f6f3c14e7e846ee9756c2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029e0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000305200b0568130df45b7557865de1951b9ba362d3aabd8dc05dde24df270a5d749076caa6557eaa0957a4bd26fb095f2a24953f050435d76225ce8aac830704fe5c2242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029f0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000302412fe12a8b1840a603a75b37fdd993cb428cef5b80bbeb43f6f1708bcf27228d1ff6c324e38c591cdce25129abdf3aff8107b2977c6857cfa4156685ea4096ac2242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a00000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ed743e953e5b7dd2dbaa0cbb66a0522a82d95ba2ff25a106b0e0cea9467ac319fbc639f5973aeaf28baa746a9842cea53ba856f61cd3f8e15bc877c7d2e6bd54c2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a10000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030c0470068ec5c8b7147f38056f2b86123cd8dfd4e2a31847deed98e6146960d5b97a8de23543b199d5d41a213fa2e7207f13c6b41ee813ed7c4923e6f9d18aeffc2242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a20000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030bb7e921ba07b033b3016a59f0231fdb867055c80a9a64f32c071ff1606e59e4389769b2d99c13d9ecc4dee5a2b526a5f7ec8adcb57b93194b24bd0ae0302dfe0c2242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a30000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003026a1fc16d183319d97d94cd2a7d08e720680d1b85efa2a1f17ba2768b4d4a74b08f1ae61c9e69a6ca2c7bdab9bce0dd62fb7910ebf9afb4d0a75a2e5ca764978c3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a40000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030191d904eab263db4f41436d6fe042e19748d348bb607a55408f8666b2fef6f487b8a6baddc9abe0a4b2158dbb8cfa1bc8260f1efb1ea8d1aea5ccaaf96420ce7c3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a50000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000303192c014b9f2c858461675988e01a7dfe902408257ad8db9467ad5494b0f80327aac980821ff362fb59cca122ba25d35bc825e61f22c09fa6b64f51d89115c6ac3242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a60000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030da309b9a623c525c5e01088abcabf0eae387a70631d69ddd2e2c1eaa366e7d08e1a0044ba616c9ceacc1f39c6e61b14bb43a87be69880f639f67b5a7812d6748c3242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a70000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030c3fc841e455cb7ab8e83c1b45a9230692fc6bf54219e39cc32bbcfe264f21f195eacb3bbfc83ff7a0cec7c88c37e9da4472a4281967559a84ae1fe977c639465c3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a80000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030cafc627aeb714f3e3cbef65c5b159aed545850b9da4ef99d7f0385da2e913f2bc5c17aab7d0a0bd0324bf7e9e2ef88c63641d620846ffb18cc8e0f925028451ec3242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a90000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ef971a009d01509dd152bea0007051559a58c301e9c3dc63535b944a7dcc330eec01b322a6a7ba1396e610c9f4da69779499325463e128822dac6d80bb62b268c4242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402aa0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030297d2fbcc84a9fb61effcf30564b348f2a51cb186e0b1ffd5079e9c3bd1939563f314e6e6b92d1c73edb47b21f8008aa225c8d87f59391d1bfd1f4acdce6f56cc4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ab0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003022cfd9a1068f864ea0ca15f4b661085d383433208076ec04b6df4fcad5ce124bf648be1eb086be6bef7fd65911d9849acf56dd9cf24798e18054ab2088e27eabc4242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ac0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030972f66a342e8bd2e912aa28056a394e5bf005187001863d8167ea2c059164e2ea64d068a4a72431cd97fa126bddc9e3a6fc6262e131df47328156ba5ee2dc118c4242d66ffff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ad0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030890dfceb5d573e6afb97b8c945a19fd9b6601b992f80015762a528af6626f8411de57cbc0f26848ec7c4541a263b2314a1877dfaaf53a6a0ab03ab0abe4fcf40c4242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ae0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030e54b3b165ef52498f0d9af5774a688138978efe75480aa01ce606dec5876e217c1c051b9ef4f7c236a2d892bf98e108f1193f7c67e163d748a321c5ac1d9d554c4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402af0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030b87cbce490f46d3723f498d44df05c6613d44322acab1740e05a1d54bc2e0f44388078387e078f1a0be7317c7fe04d743947c5f3f9e06072a7a8f01f013e4e63c5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b00000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003089c4d7eee1aaca1d091f31a4b465a16a450bc95f043a9214674f2564ae04086493e5c1d30bdf998345a6ccbd20201f78dee8972b439b228f02b590ae13b66f98c5242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b10000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ca6a1ebf54b1f62313cb32e7af2b6469135d8da9577123b62b334eb1ac8fb320367bcf29d785bfedb2cc1fa040c593783d35f7bcf6b70a9d98cedddfbaa61e8cc5242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b20000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000304fe071de37025d5868caf920761986ef0890a3891e053d5452b0852f01bc7a5b2dbe8a30d7a8285ff0e99e3b72237711fd0418d95a44600a4a5b78d8b5a6798cc5242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b30000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030642004a67b3c8fca45516672d59a145e74f3c02608b8da5998c27c8f2b05b43fb396262680ead34a6ba6f5ba19f617606b1701557179c21cfdb3e41f093e9343c5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b40000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030dfdef61d552422cc6db6a31cb38c74efea160cdc926995461f47fd52faef3b22bbf9c570efdf15b90cd17669c4a8dc9525ee6242025979af18efa0be7d03edc5c5242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b50000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030614dfabfee3a6bc50d775748ac679472f0b1f708815fd172852baf66b7a64a410ecb1ad68cdd78f7240b80d015f922416560eca040398546a74c33106b27c791c6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b60000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030d1f6ca10190578f7f789b8785fac043da1a06ad81e4055822cf20abdac7bd64fc5874b1816bbcd03595404faaa17564297bb17ef68b81ff29533c67d1b5c5346c6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b70000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030eb118fc656ccb168532745325675f577f370656ec34e3303864084d4cdc9714b37c8b3a9d2547935a60a2f082d5d666177305c98056991dcedabd6ce41a75e42c6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b80000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030881184d8fc0997d5e87cd069a1812ffbd938ffd2390885d15e408658e501da596adc753f17f3b1dd6817d1d593b6196e9696bfa90d179cd0d050dad2532d44adc6242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b90000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000301aa44b363c58124b22d51178e70b86f976f8e94a5ffe9696715056e9b20e0c4914d14ac8da2625d3da070be3d2522164f9e3f34528526955d71565b5fa2a7bedc6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ba0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030d5c81f5d6b9188adc202327d5c2769f00e6aafdf01e6910c676e99434d1c413449ea0d2ef2775f6ae5f5673b9db020e44d417e01ad9a691e105f5c9ae2f709b8c6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402bb0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003055a4176e66b3e691ced84c0d7184d220a1fc7cf17832a2ed4892e801c713445463ebb3615a6113c2ddfd4e0f5b8fdcb2aae912569d3530f983f57950bbb9ca24c7242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402bc0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003013a50d5e9a17079b1bcedfb6426bf7c103cdf7ac353d196882dfb0a0f7dcf26d48418e7eccf5663344566ac283e4af41c74f503dd42048e1a731c3ce73c87485c7242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402bd0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000303da965bc08fba52571473532c1ef4cb111e9344145fd7a6065c92d32c4e69079c88b8c63a7bd7ece3410226cda39d0fb5dc4e1b4cb560967f03e12d7f155aafac7242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402be0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030c8cf32d32cbc1e5fcb6c2b75520618a43dc714a16706d3a48ec68f56e8cc593adc15d4d1680537df08abcf0ac08661fc7ecd0b9267f207d7085a954a6ce2da8cc7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402bf0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003004c981c749b4aca574fbeeba545cebc30f91e2b8df3ceb494646b0ecbf3ebb610afe1bfdd7ea9110220eb1f102ad69407d6c44026c4dd4bf9267d730c160d288c7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c00000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030b0b058777dc496676cf990be016117d99fc5a93226d54b9b4f01bd08ef32736f707f2d27e9384ae46a08956185b5b080911b9eba89dfe48260276d09f910c3fcc7242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c10000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ea8cd2974aa0ac6360b960e089a6623b7bdd4152439d05c63bfba1599b64017d4d4173c3e12668297d23cf91d3141ee01292580dfdd70a2e6fa30c4764008f37c8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c20000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ee8db336dc2ba9f85bad141b115d9ce729ef0cf4e274adbc88947f3533e7ca569e6e65dea6c09c9f5e3c8d098550588cda81f92dc5d7ec04fc9965d97dd1ac6bc8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c30000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030a06a5e0b84c8e72a07ff38dbfe03fb8e7ce1f14f3f2632d4e12f573e6c61c756a7e21a865926b8cde1305c83dfda2e7a01591dae642a4402d2d298406349f39bc8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c40000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ecceafaf947906cc86bbedb1b9556aba9efcf4f12a19141421c2cfa030d5a17ae1e25e046cf69c4fb9eeb1d07289f46f0cacdf1301619850a3d693935476e819c8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c50000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003097e27bf8d0148c851ad5c3409a222a741ddcbc5c71f97df87384c3d1e316e46e427060a13cd91b94eb4bb2317db64406657ab250784a67fc783c00a24f3b6fabc8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c60000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003098fff5fab49555cda5da113c679f2da07cc7c5696067c53d84d7bcaa71a5cc351cae4b9e2fd5902a4e0712ee59fd918a3813554eaa3ab06e73c189ae6f22b995c8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c70000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030a1a12a3a010a3f69123a30427ce886f3d4ca42f9fbf820ebf6b00c2089a0b30ec547103ae3dc470f3a8b999ed75068d150750ac0c549f092c51c9689cb1bc1d2c9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c80000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030da2688ef7d466cedea6d3737af58fa34de69d022b5d1dc7bc0aaa20112b40a64a99d65b68f1c7f04efc082a98e14576c01427515cbafc1f5c3d31f03ee3bd6a8c9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c90000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ce6cffae4dfd294aaea39faf38227c96dddbdb4886110e85a1210fdba385394c47701cf5bcc054e5735e889198512b4be2c715af77b490445b78841df7467cd76e252d66ffff7f200000000015020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ca0000ffffffff0204040395000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9edb28b5f3f52e0b50acdf4d68f04866607c565426ad9cf46532333e47e76c4e599012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101d453cc476a5662964ce6eecddb78efb40e1616223d4c7fd54f6ca84abdc87e020000000000fdffffff0273101024010000001600140b500a01c9926e36f8913967382fd767a48309a200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902463043021f1921216d69304c9f523fabd39e12f98dc0c2d9d4598c28494c92b065d25a570220121ae3ff0feb349b7f357bc6bc98163da82ca63f6ae51fcf791ff0c40a068ac701210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000020000000001018efcab0bcce7a6b22485598a2eb928092262c95f2ea233beab343044013269dd0000000000fdffffff02731010240100000016001462eb8d4bafe68555c2989cc1103e1066c9f276ef00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022001c31890216ab85af755b4a2f2be55901da8a86ff32bbb7b7c2d126ac284d5f10220440873615edf764d686a4220533b1018e2b062dd0035adfc47833925c6d2863201210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101e40ee1a3a4f5764d49f9b352a2e181ebe4ae767e0058d38fdebaf88e7da4e9e10000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf9731010240100000016001430fc806efee1bc097ab6d0a7a40edb4fa6c5f875024730440220373c65fc214f2119d55b1fa4005d849271248764bbfa39aa1aef8246f34cd9db0220536563302153be01f6ae6bf5e44833eb6a73938777d555e94ef7ed67b55b39c901210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101a7660119cb01238504850c2528b3b371cd1f5895da5e620fc0a044836257bf640000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf97310102401000000160014fbc2a67ea3ea1bb1e77a9f198492301cde68808102473044022072fd8ce1b7342ebe2bf42f0b90304260f55ca21c22630a19ad0ac8ede04d42cb02200f00c7e9093ae0c38cd8d5ca52c19bac139205c535959065b77a49eedbcb588601210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101f9126503be1001080102ab122a123a6ccdff5a94017c15a6f14012fbb8a8fd780000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf97310102401000000160014cf9382f4d7b111dc9a6079a7ec4093579eb1ec4c02473044022043ed9deecd32f4ba5eda9dd6c5b22ca3ddd62b5088ad98cd1243141b40f24a0a02207b7f01853b52f43a5c0adbb9a298f2ada4a7d1c50626a590fdf4b8b814fa8c2801210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101f8481e6e63a795f646f1d06cacdd2d2ce7b176afa589337e869c55e864dfec560000000000fdffffff0273101024010000001600143cc73ce98fa4d14a97d520508ea35321261335c200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402204783bb9fcb96defb632109c940467a4e1329141252d64337393e1423c021fbf902206346be30e066251f1e47d808889fab87f2cc4a0579c946b1f7e3180d4ff5207f01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc90000000200000000010188752ae773a4154022507aed806c7ee50445a92211b02c10ff86070d353ac9300000000000fdffffff0273101024010000001600144599ebc57adaa82fce98d5f1f7bc4c5d0941229b00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402200b7dafde98de409ed4d17123a0d4c7d83f54cc80fa06286f2b0a8745b8e4591c022026e88d230997d26df64f424cbe615d4dce08346bff33b3b41c7e59b462a8695601210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc90000000200000000010104dfb68e4e8a1716e151c7028c8c0ea9e80e9871c3d7f2e1f22b3a3d719fb2a50000000000fdffffff0273101024010000001600147c32dc8f23a36d63db4625642b8c3f357b001a3300e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022042aceecb3bfce5af639f229767add6cb2170d0bb6e347f4690f5c1780fa83f7a02204f216de36e53bdc083c9a589562eea188dc57b686b61dc7da41ef13ac57a4b5401210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101419ff40c0af3e1f9bd992edf37118f709abc770458bb5f73e64a9068dd6aa2850000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf97310102401000000160014d6b971b45081c0582490c9f25fda175d1b259daa024730440220766457d5e220650cc2096f88c98008653d60bcff5819afba7da73258b9f29af8022035a7a8114c9c9049ddec62c8cd8667c1a9c001eb3c0e876c4018d9ad1c870c8801210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101a371d48b5af5147d8cf8f4489d626985d6420f851bda7e70ccded3f95566ccd90000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf973101024010000001600148685fceae319337a6699ef31db3d4491cf92d8fe0247304402206aa124c919ed0b528d63586f6d99c5e3967009eb1d3e1f9afac8060d3512b16c02202d704a606700a63a54dfc9a6ba4b4b00a0cbb4d9c3e0ef8a489d1d4123302d9701210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101f755809aaf681a5c0f7839f65813aa6fc171b2e5dcd87f35b13b49b5639016ae0000000000fdffffff027310102401000000160014dc3e3243ec881764f7f035964d76d8357e79b42b00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402206443a6518c03098a0bbd70c55da424db5a88a1a8cd80ef62ac82abc9b602008f02202ffba095af191735ca4c21b4ef47452e64444a33c02d0b03eb5a46dce698812b01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc90000000200000000010177e24b23c538570850108445173cfba3c5baa6ee6af16f807e7f56b772bb29330000000000fdffffff027310102401000000160014b14bdfa016b84feaf1b05bd95e20c0068132b3c700e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402202055189e7da96f886fd7c74a7b54b5c86ac43c6314d2fe632032cceb30a28d4902201561b8e26205aa1f511994e173d66faf0f9f7863a4e0871b0127f8995464c6a101210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc90000000200000000010132e54ea8502d51b05bca7f981c5ac0f3918dd02dc178206f36957e6daf2a81210000000000fdffffff027310102401000000160014003af378d78fa39853a9a1eb44f6eb9191e10e3500e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022009d2f74ba74478cb0448dae64c2556a201db593cecb3f8d3dc10e6de02c48c2702203cc1ca65ee946cc5f94124ea69e2d6e889023eb9420d5510758ef94d16a3b9d201210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000020000000001012a391905e006fcba723d56c6a3eb27efa4396ede18f9c50e0be90dc1e928f1630000000000fdffffff0273101024010000001600148426ebef3d7b6a7387631e039f5d476d85d8a69300e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022040b80710239e68e217586fb076c08feb4a561ec2fac44c64ea95fad5b20832480220266c364a85ec127063f75ccf5a8315beaf27b68fe22c253eb354577754bc230a01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000020000000001018c3626fb538921b3f59786de9e6ca2487b3a1f5c80a3d9dd82c27a6b1a6eac5a0000000000fdffffff027310102401000000160014e5b0f788e3292352bf385cdfe9236227d906feed00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022020ca43ccab85b1b847a25d4f51fd393bf4aa691b32e0fc80c91c3f893cb52b21022045de9177f9b686dc458411e5d1a8095e55c7251f55930f261c92c68374f5e9d401210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000020000000001014d96fa8c632da473f2abcd001184d1812709ed52e9c2585308b28743ab7508e10000000000fdffffff0273101024010000001600142e6ce8b48bafa38443ac0a9a049c915a84d07a1d00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022070429e86aea4db84db3c3eca4085efd777c36960bbd2f1be679db4f34a148ed3022068a0a3f902092661c0a5b42e7218b7719ec362b7dd48ad95b1c61c1072da858001210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101203d91dd647210a031046cfccd099edba94b5cb0203ab1e7c208158c1c04d7ee0000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf973101024010000001600142bb1130afbf9c9175db6e825ef21ff6ad967903a0247304402202f128ce7b6ee67bad85e4b1ff7bdc6dbd852dd0468073a0780d35e64e864ca9202203a50a4d0aabe6961696150e6dc2da7053c10a77b42b3dce93d1e168daa9a568d01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101676a90f97480ef4e447335f1b9376c944381fb06d69b778a47248e5760dedf620000000000fdffffff027310102401000000160014ff27069bfa436a03f277a53da9ebe738cb4058d500e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022030cfaa5207e6d0a690ed5a2101a067c7e4d1b31f694886b427065c5c971d95a40220646cf63956dcc399c243ff6a207adfd34d4f2e409cd2ec4a48c531e214370c9901210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101295badc0bdd9a2bc0955d12f337491eae4c87ba4660078c0156310284d47c6ff0000000000fdffffff027310102401000000160014c34c2b12f2c5c3e3a061c5be9885e97be3d182ff00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402201de1a3579f63eacae93d919f6e7c6f388e33fe5228f7468a94070eae3908f1500220630a001126baa496362702eb675c1aa2244c5d6af2f3aadaca41eb09ef55b84001210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101668688a5f4545d86d00bdebb0a007cafc530603c1fbb6d6a9f069a1d5f109fd00000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf97310102401000000160014a060ce2638c54cb65570779a62bd3d80a549967802473044022050d6d5b49102fb93cbb24fb53cf8e19e831a24f71b0877c3050ba2250020e89502201d6f37b61d60d1a0af32b5191887c1c56320cfc0d5bd9c064634a4fec810782e01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000", -"000000305e30a8502bdef4fae437335fd1e4cd0861689ba689d79397ec4e810ab28db2704c30745de8c0774b8f96087461dbd6efa19c1386bf15d1e7e305ebabd6c29cb177252d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402cb0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030e274856b9c7452ea644c991d4f3de0498178315356c2492574117b3df2eecf1cb53ff53c08d6d3ec10c0a948b9dd2b4aae96743fc5d6bf2b1254e4407daaa3175c0f2e66ffff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402cc0000ffffffff028df90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ed2288e46fff34291c301c01e040e7bd468621d70a0078a11e422e616b70d51f4c012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101087b234e0a26aa3265faaa7f7e507fbb01dc61381ded2547fdbefec295186c490100000000fdffffff02e62e1a1e01000000160014b0350ef1d06b91d681e33655611f4fce8b1f95e700e1f5050000000016001490d429043a6a97e1bb6775f702b677e21388a6a502473044022058d8b08b6c1dcf2d1593f8e2df011654b04009290744df42a81e263c1462b5dc02203f345708fb68d7c2c60db765cabb5ef9ad76b15e89212c23b9afa2b2f16ea58f01210225363b30257a7d3a27c4b03d312bc0568a263503107ebbd54b8d24c023c3dc2000000000", -"0000003075d453e2fcdc9dd1dd0f1081b2e2fbd0400aae4b12412524a4ab6ced869e624a3b211101d7a99e85edd61cdd0a1ee167f2c5015e4296c692f50408c46b3156a356112e66ffff7f200000000004020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402cd0000ffffffff02a7fa029500000000160014eb82059311a807fc289d46a715ea4801608e56620000000000000000266a24aa21a9ed6152997cdf8a1f598b3b281f4c2371ff57f16adee387d2c6f9a1223294abbb860120000000000000000000000000000000000000000000000000000000000000000000000000020000000001010c8276e58415e63f76b5b9aee5dc13e36d2d86c5e6e96b668d9b029368ada71a0000000000fdffffff02594d241801000000160014657419c1c115140663bc9a3e5473704ae22aadeb00e1f50500000000160014cd0ba01721f6481d58acffb9c2c0558adacd9a81024730440220207cb42a792db108f61ab019695c2b5d19d6270046bd85497461c722753ca5f002206f83b571077cb6a683015ecd348eeb09536a6e61675a4062ee2775bc13ff4f6a012103fa84a8e735ee9ed2c56121406c3ab2a4b8c598a1d64ebf7ae8edaaaab8292638cc000000020000000001012c9e15682c8ee78bb37dfda591eafba313354b44dc36a96632623f43429a247e0000000000fdffffff02e62e1a1e01000000160014c975d60bc9d9edf51989e717ebe09cf140a3b19d00e1f505000000001600144c8af96210bc0e193e9b7d40353223485015e2b702473044022023a5dfb9afcb738ee1aca7c2b6893ced1cdf58bd8655b96c157fdea4a498be2702205a3bd361d9d2dc475ccac069f0775ea9dc6cdb630876a6cb79c67b28d550fb53012103fad0c0cdc5e4738ac2dc0d5f300a9d8fd095e1f2bb13291e6daa7cb6691b2780cc0000000200000000010113f36acf4eb116cd89b8709317d87c5a2daf00e5d6cf33c9eb0d9e3d290729ca0100000000fdffffff02e62e1a1e0100000016001479c3e84333847639f90325fd9a86de8dd40256a000e1f50500000000160014d149c03af86d5aa21213db620763ee7534c54ff60247304402201fd84faf54030f6e5df5b8b71f49b4e69dcc6856cd3ccd657f11481bf1a4fc8f022042d5b475f48d2e25a6ee206d7c8441493712d9d262d472c1df2c5b7c7fe9ffb1012102d0a810093c36ca0e815079ae76992d1bf5cf60573bec8b73572b20c89ebc9b45c1000000", -"0000003055171be9b7f62e719a3d44daa56cf3a8903f66327b6854d57c6d6678d7b4e728c7c67566833f9b6109cb1a5eb50b811d1ae97a1f20c3912eb7d1c5fff72450092ac53866ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ce0000ffffffff02e8f9029500000000160014eb82059311a807fc289d46a715ea4801608e56620000000000000000266a24aa21a9edcb93aa8dfe2d28219d42caec8a367df5b1e1e4a1e2002bfdf439d83ca53dc08c012000000000000000000000000000000000000000000000000000000000000000000000000002000000000102bbbd77f0d8c5cbc2ccc39f0501828ad4ac3a6a933393876cae5a7e49bd5341230100000000fdffffff94e299c837e0e00644b9123d80c052159443907f663e746be7fe1e6c32c3ee9b0100000000fdffffff0218e0f50500000000225120d7bf24e13daf4d6ce0ac7a34ecefb4122f070a1561e8659d4071c52edb7c1cb300e1f505000000002251207ef15780916ae0f29a0bd34e48e1a0e817e7731b82f3009cfa89c87602cf1b2b02473044022014680d9a963868b03d25f84bd81af87e127f9d7990166dad5e1dd71be8797e3402205f79713b4faaff7184fb25d0976a37970f8d6b23f95d4041180a35aa291fc8dc012102a9dfaeeebad1f7ebca371a6f02e63a8b0de287c1b0608edc259c60583a03496e0247304402201f09ecdb89f311c3ad8b6d89a040a5796f83c9db2597962969392a3d9a5be46d022052243418a89831ca0e5ddd7ae575d787178126d8495f890414ab8b4d2a1b19d80121035368c752d3ee31d9570180a1ba285659af106f9430811ec58e3b86cf26c208f100000000", +"0000002006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f35b99ed4e2e165de2ad77f1bba48049358c9bb740445f3c83ebdb3e83aa5bca8d6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025100feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", +"0000002059c5550bee5edf11b04842e21938c9dad844f26610c526e209bc7aa4b05a237f9cf876c62dbbe036af4ea4a7363cd4ca1c14c8572095cba3b76a87daa1303ed8d7100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025200feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000001000000", +"00000020efa863f0283f4d1e45a162a3932aa144d3a9176f21d004f917f8b57d8ce4f64f354352df0f2a5d635ca7d3a52064f9c95f070d2c13c0a6c087acba03dfeeae66d7100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025300feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000002000000", +"000000202d3de63cf5a2b19f06fbb412d7d581d7b8968b65774177391bfb4489ed77043e7bd00ba57498a2dfcf4e3f0d7ef7f279b254fc422133f300a49aed3c8ed7717fd8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025400feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000003000000", +"00000020baedb67d1ff5ad32f79365fa1ca466e5039cc70198c655b439d44ffa24050966234318f09e4db9319ab61d8afc24cf0df33ae9080ce9163f77f7b342bc8bcb6cd8100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025500feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000004000000", +"00000020053eec9d08bb197fe56c4f01bb5d530b66bc3436f13a976ee81698253039431c775c375f240fcd10dea3b6b2111e5e1372c612b4c2ad0ff22d6716ecdf9318bdd8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025600feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000005000000", +"00000020dbecc235b8d4e8833030d1d3a182a1fc7beda8e0f4575cc086eec1ad6d9fb7382e5d24f14a927f0f5fff33387c5c4bb2cfa5a8d206036aa8c5c8d6bb79f6350cd8100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025700feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000006000000", +"000000205082c18fa4bdd033e7dabaeccf9f25e0c0805a9bad3bfbd6366438bc9498b33185619ba1f7fb3f5b6d382d1cae958669c6cc8e433e3aba365a191f8405912a2ad9100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025800feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000007000000", +"0000002058e3e957d355907e76bed6bb0ef706e538590b405d72b4d72b8451736e227b1baa2fa14a3e3bb0e5641b0a9fb8450eb3de5800d4af14dfb51699a11fb57c583bd9100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025900feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000008000000", +"000000204b5fcc372bab66fe73601a57ce49bb9d376ee3af0c9b7b8578f2a85b3e675610a7a03842e35012c96d80ed5c38a7ea1fd896aaf759a10e70b728b19b25565d0ed9100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025a00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000009000000", +"000000209a3c198e1ae0a577423d144ec15ce84d8ceecb5d349e28d7b87a09cdb3a4a05ead780fea9fe30cc83303f6f7f7ad90eac0a303c7c8303238ab3e458bf667fb8bd9100e6affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025b00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000a000000", +"000000207dcf7d20194b6b1eb2bc060bb7c51f68f196ddea6baf76a0dd08f349b27aa342dbd56ba114e8f185fe712e21c8291190d02dd4326756f01d6bc9bc2a1c80fdb5d9100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025c00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000b000000", +"000000205b61792a106aaae1f97c051c0103742301f6f2a2765c0c233eaf3f5a4991387d958d190ebd4cddfbc8c4a044c5a4fe4a54d706c60cc74e16cdeffff586adbc45d9100e6affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025d00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000c000000", +"0000002086416e9e947b6b1f1ef66c3e8f508895703c75b9350d154de6108316221eb768b8618128d74c66e9a531448b8c4e8dfdebf7a555f183f7ef3834e27b32522809da100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025e00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000d000000", +"000000200568a0143a3d69b0c3eed35049f0b99759b21a0056f1cbaa952aaff81335fd6d3ea8ecfc436c7983679a96f17db811a27da51e78c76f503b4d1966b5d07a3793da100e6affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025f00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000e000000", +"0000002083303f93223e35a9a63dc1c4ce9bf8a8bf855650c344c2ab26f415683895307f0964bbe9fb5eb9007a8b06c362bd4b872d3a6036855617d68852af47f3cb11b4da100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff026000feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000f000000", +"00000020daa42ebd14f6cc1d52d95c9425abf3b459e7e322ac2524a24e90f6bc6a301022202b383ff3349133f45172cec3dbb0955245c0ee223f15f3c1fc515f504fed29da100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020111feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000010000000", +"000000205c42fed7abff056134b02d2d8542f82d55f2c83f4acedbe4ef7090200c712854cd0f57e3459b3552bd04bd40efd4b59f0a62842e6a5ead95e9403ab80a801f46da100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020112feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000011000000", +"00000020406229ed13dcd19a3b4b51c82d955bfb62b6a5468e8426c7f52b0c33d6292c00f88cea73c895d7f926f031b4b5972b600a52bfd233906381ed48a80d063ea94fda100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020113feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000012000000", +"000000201a32a0aca641ec559a1f5ef91409421ef5282860080a0fc08f3e35c7471bec6521018853d8f3525de02022e9720181e80dfb1894deda0aaa705870dd6fc43eb9db100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020114feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000013000000", +"00000020cf6a4cbc3222c89105c2bcd207288eb98893ba06df846bf46d523cbdd2a38644fc87a92bca4cf8659482e711acb36aaf9cea95e051d543d4316d33e359516440db100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020115feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000014000000", +"000000207265e11adfa95ffd445c59412fd255b79e4eb6710841d81ca827faf36e48c3458cba02c1001cd972d722104d26f50e7a68c6dccbb88d08b972ca09510461e8fedb100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020116feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000015000000", +"00000020d328b5d1d2682fb93debba31b4bd82586c79867191cda9d5705d8701ab341754a48c6b85fa94b15d6af9883d5f84bc5bba220afd18990df067e2bd30983829f7db100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020117feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000016000000", +"000000205c7f4cf1d34ce4b0466f196780a538eb797495738bcda00e902dbcd8b16911117ab12f4b9993023a7e5e25747a3085430cf7a9d1f909157da8dbd826610bd80cdb100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020118feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000017000000", +"00000020b72af8505376c70dc765fd19fcdb7a910895edb81474b5292926b016f621a0540404f062a9e7bd54a91a3719e217940b0bf0b010d58a79bd010a02b4c22e33bddb100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020119feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000018000000", +"00000020ac427c363962f4d5dc00f9965ffe23ca5f6db6e983464bd2699eaf213e18b50bac7b2f37a1b174564e145df2b6ec753439445c9290e135e12f974c79926717a8dc100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000019000000", +"000000203bb631aa6b67c5fa135caf9fc086cef71cc6ea38589f45a1aec750f691bcb24c1940ba94d0af1a8e6d3b956fb9fe8bc2a7e148178903ac0fc15262b04d805a58dc100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001a000000", +"00000020c7a81492959e78ffd064abb576131f1ced7630d3f8c0afe7e818294f8b2d394e11d8a658612ae7465434d6f79c4508f3fce6efb6a7eebbd568d11f9ab76eb0e9dc100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001b000000", +"0000002007acd9eecd85186948ddcc0b8283e2dd425b5feae4899b5236d21a0527a04076bd3d4ed60ab1e24b49c863d156b25871ca60c6e7fb5ed95798ab8255edbc55dedc100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001c000000", +"00000020aba02971419abe248b1d632457f329f9f20bcf44a30b897ad5dde2c09d8efc177c8f26fd7b1a81b4ebc373b9ae15cd3d78f83669e40c82359c9004bb464c3ecedc100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001d000000", +"000000201d70ddbcfb753a78ca242c2de83fa39c3e082743f8d8be615d9835877807840719adaeeb28cb2169f601e0b85573f32b98d169c21ed9110c1bab1f20519948aedc100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001e000000", +"00000020e7b97ce31a31f00a8a374755264c28d81827a345e195d822dd0b22ea2e1b587ae63699cffdd1e4f8a0de09477d3a7da93db7b261f86d49d0f2d53c5d1fbf4e49dd100e6affff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020120feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001f000000", +"00000020ce8ee47716db5c5cf13fd0e14eeb099420440a7f24d495c7cbfe828af821252d812942b26b60cafad526bcf6430e4c90a38c4d6a8be3d10faf62368fdae13844dd100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020121feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000020000000", +"00000020e8281e66c7a90944f66442af95364999600726b716a053341c9356af7bdfa356d5ca4cea3e5d1a0ec513e24baca1addde8e55894290751d1114451cdab1c26d8dd100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020122feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000021000000", +"0000002065e115e89a2228e1dbd8b00a8af001070e2ea9ff5b6ae3de4f69ea2d806f7044995968981f61f703131c43e583309ee8be070a5de50a236caf64d1b1dbeecbcddd100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020123feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000022000000", +"00000020b30ae385a60ec12bbffbb03822af9cd4f83e550f75270de3c020ad6114edc205c174991475dd066c3980c2cb55d123cfd9a3d9a3c4826e5766840c37b394993bdd100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020124feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000023000000", +"0000002054398be35132d9fc50f833d93d0f35ed6f904c5b81b6c09a2731fb2cf39173290ade0fe44064f85879602d2b9a6e50e3ef4b16db80c142f6f128377002637363dd100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020125feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000024000000", +"00000020e5f61b069282e40d1c5d18939d93f2a32bb4c75a552c09b6254e0ff9981b6636579eb0770933601c6d19924244dfcb9e83c49bc96aaf616b61d678c50cd84f6cde100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020126feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000025000000", +"000000209aff311033f89a6055f70643add76e1e02b019b51f0f189605d0d40cabedc6429cc3ad3b2c1d3af15ac6126471dc7de4feb702b1f1046feeeec44d5b927b8443de100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020127feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000026000000", +"00000020434e5b7cbe3c2001b533f2af690441a08fabe80070ed6b927a2a8948058d6852a8c0cb2cdad87b80f572ecc214cf78f19f5a8312bc5df37ce2fcf7e296b18d84de100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020128feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000027000000", +"00000020e6f7c7405590041020539b16227171fea3c11c3914358d3e96a3a1b22490bc3e2f4d46a405e6d9753323badb285037342c364aaeabd8d69faa04a4c69f3b4b7cde100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020129feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000028000000", +"00000020190aaae9669d182dc492d6e21a08922038c3189867897b522a497beb16569b26dfb0d0291b88a147edf2fd6e686ff55be2543d3a81d3e5e5b4a2f0fb47043de0de100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000029000000", +"0000002009470e46ec0ccbac254bf28ba56ee0ade41ad6ceeacea07155a431fd3f1f4d77f36a5069059df6fb793a9f9e3aea963dad2c9adea23622983c0f0d8509061e0fde100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002a000000", +"00000020864b28210ea6a72048407b2d3894e6215b411901de08b1a78cc6016dfdb9963311f945b13b178b683b7e4e4b9bbd7061ee0902510746f68097573fd4801f6f45df100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002b000000", +"00000020c7e083abcd9d3d6794ca7b04ea1760f9163c75ed7531c54931f328fc88f38111ec8a3042e2a635672e7af06947e7cab9c0f85c3cf3b46671e5a2b93970d5f10edf100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002c000000", +"000000200e4a69bf3761c51d3199d605f9feeba424a7316a030919d568ec09e19f16874b44e6630da3df8769aabd383670e70919fdddcc9d58bb746036985bed91307230df100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002d000000", +"0000002030dca078673da4dd19b86a4ca96b1b3d34d457887e3480672e88d9a799fe2417027c6aee4536994d178632e7fe56ea0e89154978a25baf50128d0c1caba9ff1ddf100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002e000000", +"0000002088313980f335a2419cbb3f5433bc25e0c8dd5e9e490290f5fa1670385582596c0bd7bd7dfa6c013203667009dd051cf8cc62110c8ce569f74f349aa3da64329adf100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020130feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002f000000", +"0000002076ce3c401c2b018c03e5bc7b2c5d9bda6cb3faf9d24235818d891bfa6796112406f921f22c01239ca2ecc3d8f82c3ea610f51e39f82478c13008ba3d5952d5e9df100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020131feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000030000000", +"00000020f061f150df8cc56e38742413b7326b8f2c8e4905604f62ffa06ac2acaf62ce1dcdbd85e688c53c0856df641eb141c4fb601ddc9586e57f1b8d321b43c4b8adb2e0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020132feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000031000000", +"000000200829983349e6660a34905eb05c4fe0d713b3433dcfaf12d25a7b69a3f68d4a15b95cbbd895c756aae0fc9faa7c93ed168c8e86376cefcfff19e8a264004a04a7e0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020133feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000032000000", +"00000020e1b029dd93c27820159848fc6a97fa78003e2d1e9c4231ca11ecbcc7ff18e6295c78c2d5a54f3a4c08fd41d2c3fff167ca3bccc1f627ae32100408292adf0c6de0100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020134feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000033000000", +"000000207e1b79cb6b346dca5857089587ee999ff5b4ba767f13adb89e5543dc26c4954711a79c876d36fc17093bf8e8b29fa9709205fb2cfbf8a35f20ec3736ed1362ace0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020135feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000034000000", +"0000002048348836a585cb7e08db894059293fc7a7190aa2681d5708a118c4d43571482e6532886119847c3e687d0bc6e2937050fc87406f3b73e12b7c894340649af4f3e0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020136feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000035000000", +"000000202b39c41139c07ecfa05b42464dd418092d7b1b9507c4c3c1b55baf1a141aae16b9e05212e4200d98520c44c9912fbd27cb761fefec945e1188b4c53fd5e2f30ae0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020137feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000036000000", +"00000020cffa4752fbb0b15685cfe71d458de32bd34a2fbc607445f121a30f912de7b524db5586a99d77110e35dcfdd35fb92bfddb241fc122475df13d43dad14fdcd17de1100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020138feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000037000000", +"00000020baf6391a7006e46901397025a338cddafc0cc188da5a484d8bc246605be1852d422557c29899d2c49f846ce9c90bad3a646ff78b851051c6826425a5ee3ebf4be1100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020139feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000038000000", +"000000207255a9768884fbabc8368c8a8893910056a1049b3635fc2d9c7ef63278f5ca4904bd3e33a53bb1fdf8b3e88a6fa21b24e85f8e52fc6164367a09610fb72de94de1100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000039000000", +"0000002088fc3f785f79f67da21fb4b3aa9f1118370cafac5f073ed3774f206bdae8e358195097eab4ce22d6c0ee34d5402482d0f8c6bda57db1bd7befea50bd8537a7f7e1100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003a000000", +"000000202aba74f63578052603efcfed12cb6cbcbbd1b3b12409da9f66d1bc2fdc16872c77c6e905f61fbdf68a203f8a69ffd0f6478775e1aa39c06e95483a759d962331e1100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003b000000", +"00000020dd2d40317eed9fa18216937111b0e8dcbc4e6afcd21024cdc2f78860d7b0bc400f0cf9c0c12137cf512778e03228e784d0cdadce76a1b3fc618d943f1e77fc5ae1100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003c000000", +"00000020e66c4067eeb1fe28f1969b74431ed9de92b41d8672e8b6ef95f69eec8d6597627e344167e50fd8197024535d912ed7b7854b1392db54cd144448ae08a4fafb98e2100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003d000000", +"000000205811fb5821a15350f97123e3dabe38eeec927e869879cb934d5f7d6df78afd556657405d7b92de24027547499fbc0e954f6cf1fe23b71c481b5ffd817c86b09ae2100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003e000000", +"00000020ef500848ce71d3f68cc2fd57fd76d8e95a03a83b91d90dab2ad78d60152e9b25807c0293ffb90021de477db9251392b535c971607059a14c16821ab0f83cf590e2100e6affff7f200700000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020140feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003f000000", +"000000206880e98945c54770f6d433d25e19a94c60ae313d06fc6856547c551a96b940430ee052c67fdee894d8e4a332385cab2dfd824281548b97d48c19395d6e5d453de2100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020141feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000040000000", +"00000020b43fd67eb462115448fbda3ac601581659655b1fd3b4da92dacd2ed64b03e760354a64768006b19f41492fa9453465b672e516c4cea6fe36a766561e287ef449e2100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020142feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000041000000", +"00000020da060b8a7c0e13e768a3ed1d048c51ce932eacb4347fdca1dfc229d483e0297ee9686773dcfa84cd28f333a89ce5971b93d47b3eaf58ac10cba7d45809661cf7e2100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020143feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000042000000", +"000000209960297b31a17c50c7ecbf9f31aed36d806527925a87c87abd19d9d2e8940167c50dcaed206a63a5110ae6167ff27215e460be5b694ed4dd6d311907ef0fb96ee3100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020144feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000043000000", +"00000020e830f4a7932838176183c2d285b0ac04dd8786c04981fd97b277c9154cee02752dc69a3ae0f435909e955e45f5de830580e1aaa84530dfe5c49d19da03f892ece3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020145feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000044000000", +"000000203cf239fcd668ed98a80847536e8866c0b0b33075eb572c8133fd426226d0624b0e39899913270434f6f0ae54902f4ec8ad2980d2795bf561ea2f13f6357b6e63e3100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020146feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000045000000", +"00000020988b41510caf76251f9c1fd0b5f750fbde345d6c75f3ce061fd8f539db79ab26327189bc089b1a91e27e62f29ac48d70c715d2cd66553f171a79b87251ad92abe3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020147feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000046000000", +"0000002045ee95e3ea08924291bc45dc3e3f162fa29579801916b53f3ef8465a340c8c7fb90ce6bf12519d00ff89d29a0ee918c6d7378286957bb5e657f2fe5c47e29751e3100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020148feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000047000000", +"00000020c2e894b8ba7887f8f67afd678aeabd72d2b9c858fecbd395f01c143eaf877b72131e25df1f18e2dd4c7f37c9f6d03c78e316e3f230df2cd2312ec7c4fe99ed42e3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020149feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000048000000", +"00000020631ed5c8a34fdf8dd6327c3c9fd09989829ef34ceb3b354fb984cea449b3c226ca10019304c18ffca33bb006571018e71365891ccbc77c63575eb5f824dd1ae1e4100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000049000000", +"0000002025e4939f6c37aad1bf0c9b65c0718af6409a1bbc1b49280ec17accd9ad3b290a5cfa848ef60f60e6336cd2a184d565cf2418fae8dc017e25d36f835167a35f4de4100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004a000000", +"00000020ddbdad4b2a83adb0f9d23e8cb89710c8510c5cdced61d76c40519525a67d367ea222c873717fb466e0cd11489601b789de0311bc15095c49117feb5946881216e4100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004b000000", +"00000020875f91e3176b04b28dc56d2863a129ee614668498aa543aee11f07b26a78d11b68c088d3e3bc40fef5dad3581846943054f61b10fe5f9ace45f2481d637d17d9e4100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004c000000", +"000000207d3dfa2e15f184aab640af2f30c52279e42436bf56277e51444bef30652c6161dede8a680ed95795bd96c54ed739a3f3de226d53df498adcdff958448adce116e4100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004d000000", +"0000002096afe81e0795d4b2f4b31523b87199e482e772a7effac245c0a5d181300dd83d794d022c6b81c787354ad7c55a7dfee1e40b562cdb5049f7fd8322bb80ceca14e4100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004e000000", +"000000201628cdc6c17d5938957b720d5ce48a0546c01da76330092cb9d2a57ba52cb03003359f8d7abcd4de923dbb88f7861c8c6712b678472a85d41efa4e68c99a2b1ee5100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020150feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004f000000", +"0000002064cfa910f0a958260f2ab1bd3cf452bd8f06717c37d290300079cd6cab3de55759cf309b92a0b12013b734e29f544ec010361ac8c80fb86493f0bb964ba48633e5100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020151feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000050000000", +"00000020916d1ab763f059e4f29baadf4456dc69c09157a4c573acd73aa6493ce8bfb517039b7c495c149ac044e0158eb1431d9a3186a050dd37fd84a200e8de8b7f82a7e5100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020152feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000051000000", +"00000020e80148c77afd45c184fbe0db3e3ef01c6d4ca5fea68bf2254554de0ce07fd5627fbd5b2867d6077d9651532c7ed8f23c801e23ff2085c529c6241be979569c60e5100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020153feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000052000000", +"00000020886215346fd0e98b8ec36776f1c419cc074a65ac3a7ddec1a9050debe4500f08cb822d2332494210d31950933766012fdcb3e1bd7a9baed75487b8d53ddea780e5100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020154feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000053000000", +"00000020c4ce7ea6e078c50e080342bb2e79995076b2c841937770d12f4e811045a8f11f5f58b060d3f8fe39f611919278ad0ee235479f0c92ce1aaa18eaffaf46ff8fd1e5100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020155feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000054000000", +"0000002030b27e0213a8d7e7718011ed6683d3e80f3403dc8a05d8fc6b7458fa436d4d3159a6f63e0126cff2cd9778ffd1d8d85727c97dc32b6760ddd60503e87cda027ee6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020156feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000055000000", +"000000203056961edc0ffcbb22cf24c9fbf7e2af5983163092b5baf3bcad2eb04586be5fc45ca7e6400528fcd40ccb818cbf29b087b9f53eaab8a25bb3c6c8d4272eabc8e6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020157feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000056000000", +"000000202a89aa271a521e93d95b504f644a1759e40832df334d88aa8989336293b5f8246cf3b99828e68a9b53ab8a03e5fb728e2e040e69fb4e73796d69419740926cd4e6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020158feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000057000000", +"0000002028a029cf60a91d7457159014b6cab0d02b8d5a971a19b69890856d6067115424fad43781e0321c24d099635a44d4cd71ea74bf4a9b9f8a804b2fd9b64d8d2fe1e6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020159feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000058000000", +"000000201b24e895584978ebfadf26ee56ce8258c1e66d18e30b3fd6a92227f88cabe20c49df97653a283afec27b9f65df02c50a6788d59e63b20047e7435c1720dbf302e6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000059000000", +"000000206126b35c06aeabcfd88db845f3cd8a6d937affe16e0a9c0b7599437a3e1a521e14fa0d24555acbdd2851849841f2ec33d840d257da8f1af7f9fed5c14199ce3fe6100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005a000000", +"00000020b2d2ae00e96855edea8c4b6d2a771463971d2aee81f541de73ff60735ef79512306b01f7623c13d113d6ea7746f3bf8e70a599b9e32389cef73571260bc73f10e7100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005b000000", +"0000002000f06a2f5506b888d434607d8e86a4ce94087c37cbcb39d5b8f2e664aee53872df2f9dde920bf18a81dab14a9e51a922398b21bfb64811a8e655c1372dfdcb8fe7100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005c000000", +"0000002038f59314db676cf5d46363b06305eb0d1a3d4d8ff3d52e9c4ecf38adbc63b2489b9ff9e41c17a3b327b932f3475e7bbdb2b586156237e81c68784315cfaf0c79e7100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005d000000", +"000000208a9ddebae9174c0fa496f667f03e90177d3f65b7cebf26dd83d5fe5ef5139151122d7dd215db6283325daaa3976f4504b37271c55b3cddd8b11f822ff016aa2be7100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005e000000", +"00000020cbd2d475eb9eca4a918b79ad504a0bfe1b03dc362afde08a8f731ad58118cf264b0748e0ce18d5b4ef9443375bf84d12c95a8615d748702f0fc42bd3fb490120e7100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020160feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005f000000", +"000000207277488c249cb9ed6d8609129495a4468642f7488e44e09b5c613f849d220752eb4516f1b30df956a8722eee1ea9c0f109df8dc8e7c3fc78f58941f4bd0027dae7100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020161feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000060000000", +"000000202b43e6f5bffa26099dd092ac68d989538ff1cd1edc15ca09901c6e3ec0ea060b5249edb75e74b6196e5ffd64a801a33db919158405fc415dfef7989e077e0988e8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020162feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000061000000", +"00000020e6b87fd2a983dfcba7c6d23fc3b0de5c1bae0c3179d97205b706c2ceb7abf4331b526c2b3325de32114ae439c62dddc4859bea00db338b21f329371942e6702ce8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020163feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000062000000", +"0000002031686388d7c89ff891e72798b1bf32e14b855bf32389d5eec1605a8ada449a2c5bc5eb9665ddf63511ba8fd5095f0c1b44f3dc5bc47ad6509c21b8ec319ea93fe8100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020164feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000063000000", +"00000020ecc5aea17dd30470ef919193b68f86bfcf26fa9d8227171693f54fb845a432530218051bd6c697290706006f1e7250a12e375e0ca21fe2899914c10e9012e069e8100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020165feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000064000000", +"00000020d4cc34986f77c72a934d056ace82b8af987ac20057fdcdadd975c688a84f1814022e80f2e10fbe7ba661e4cd8d18a412dc9ddf7a21c655c8813ec4e8fcdb1b39e8100e6affff7f20000000000b020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020166feffffff024066062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed2f864cd5375883182e0e6a59198c1993f82d146f56bb8c0dded7f6f36888917c0120000000000000000000000000000000000000000000000000000000000000000065000000020000000135b99ed4e2e165de2ad77f1bba48049358c9bb740445f3c83ebdb3e83aa5bca8000000006a473044022065979a33424a28269bbb5a58977a5ccb0120351e10f051763b7eb78ee59bb2c402203f006b8c7aa0654fc2cf62a43092a5f43126100a4ab7352894cde17d75963fba01210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff02e4ff0f2401000000160014d82b204b3ab58963cc5a5a1629e76f67399003d400e1f50500000000160014f266c9e8347f3454e683945524cde58e147baa5e6500000002000000000101c6a498ef37cf0274907d6745c16c60565de843116c28fe17f7513461b89967870000000000fdffffff02e0131a1e010000001600142bb83a509f36fe04a6193015e67f42e95617640a00e1f50500000000160014ffef8d288d8f7ccaeebc12ca4d09ce28ae579b1f0247304402206c9ee6765212e8b9d48a567eb0c8ff0f38ed8853704db1033a0786f8f446ff490220507e76064f4747f6bbe6ba1d51aa8db193a37d35fc56a33445d2a4ba52b0a99001210376e741c8fbb37f852c27d1d6ccfe2ace8b54cdf2daa4721436d6707b012310da65000000020000000001019131dc43dcd9f58edbe4da8e74b87b30ced7d0a9278618b4e5821c647e89dd6c0000000000fdffffff02dc272418010000001600142e804ce3c99facccff6fb9fceab8424ea9f5729300e1f5050000000016001442c6de968c59a99b66369ec03c281ab6dfe4c2f202473044022059d52e1a77e8ad43367376021bdda7dbaa51d9d5e406367d5287e612c176368502203e0bf43ac17099ddbce0fd40ea74b8d033898b6171095c6e52b5d2869733369b012102e390006c172a80b1f6e7cbda657fd49020048523377610bcfca0476ac5fa90583e0000000200000000010132dc23bf17aee9dd2530bbc453d71c25a03c9fb819f02c7bdb224a86e89223030000000000fdffffff0200e1f50500000000160014ebc20f4bd4e18911f9d6c4f2c25f4af0b776e4b8d83b2e1201000000160014fba25c902febd09fa03877a6a47a7fa0e1ddb31a0247304402204457f04b4c6f44a44967ac1fbb369853ffdefa869911d4d45843fd6495e4f376022059037f3974f9a0ab1750049dad1a276211d4f93b26a3ea40b6c644711ee71e1c012103609f5ba261399ac32a87eb70e7fe01c5cdfa3567732a03a27160f11ff74073746500000002000000000101e28ed3fb61a1003c3f25fcb8bafd642b46938b3af118d0fa5243a66c2d6e14010100000000fdffffff0200e1f50500000000160014d7bdf4e934ef8fbbd5e8b97cc4f8772620734cdcd44f380c010000001600146ce40018cbc5fb901d6856a53b8c0e306f8aa1200247304402205a4bd770400aa6c43565d4883947368b6b7a7e6528d7289a70b20f4628d9bc8502202ae92a6f1ca3ecc36d92b299b15d5117b63a01171b25e62096e817364f0cb331012102f475591cb338f8b62df7179d7b86f0a2fc618fd8ae0ed0d3271be4d9594ebbc13b00000002000000000101e1c762655156e6a697ff0dd0d12205ecf46ebfcfd868f0490ced1a640a0267f80100000000fdffffff0200e1f505000000001600146ab595980124bbd405d93d8b014296fdc6701abbd063420601000000160014f5b1cb87a2f12b2913ec3ab36ce68e38e16f90ee024730440220568628cc61044c59c1e4caceacf21921e95562eabeee378b28719794c622d86a02207e9d4ed399c43a585f23b8fcd7c7e66f12a33177cc103fd5cf5664d00037ad380121037047cd9df445b7893be6a7fdc5916b9fb6dd67a43022bdade66324b040d3d83d650000000200000000010152c83ecc3c7c7f3fe8ae4eaead7fb8e8705a4446183974782aacd23bedab44480100000000fdffffff02cc774c0001000000160014f59ddf89afd7f388e1fa92ee61d6b339b99b4cd700e1f50500000000160014c5019d07b869a737a925f9f238c2f520f2958b04024730440220755df1969fa7fd3d10c048a3667df5f7b4aec67dab8a11cd00831ba9eeeff4c702204d0154f06b043b90e51fa89e83c18da500403cc1b249628391c9f53f10baddcb0121020363ec07d35a75df13b090324b237456d9f7d3de45c9199dd754beb2ca5c0b396500000002000000000101c0a7bfa9098832776c2aa7858451a525f7dfc9857790d2afac2defb248a843580000000000fdffffff02c88b56fa000000001600143d29965330c3fdcca7312e4b25914e2e48fc17ea00e1f50500000000160014bf91ee934e7d9aad0b71bdb928f90d11c1035ffc0247304402206d42c2393c3611fd4677d9864481bc22997cd9ee8478ce31c7b43ca5323b2fbf022026d066b3056e1ee5e75bb24b58b677453b6d40380335cafea003888811c0d2c6012103dff2e5ad358fe3fd7f3084b192111eaee74ac90973d07f0cc8bbe195168cf3d965000000020000000001010773e5544354b584dae5afa4131fccbfa8123c2cf8b8fd2bb1e84463daa0d8900000000000fdffffff0200e1f505000000001600144a8ea9085f5e810f590e95e16d7379e9d90a1bf3c49f60f400000000160014a657c824b3bdad220f74e885cc17b163d8a6c19102473044022022264fb5d53fb5bc52b783438c978ea1034138185909a2e00dc3731d576337b902204f1a90f624b1e66bd47bae538a5b91b0230c6dd723c31e938cbd92b2d0cd7e440121020a3b066a7ad75030af6e00dd14b2beb30aa687d3bb9101f96a37b12e7f6d67c565000000020000000001010e39cca4186227390ecc45d1d5b0342e56215c9e4582e05f99a6eaa8300be7880100000000fdffffff02c0b36aee0000000016001480cdb2042dd3cc6d15df7a8848a514072de10eaa00e1f50500000000160014959ad8bcbd9e14007cf4afef66070699d5d6beeb0247304402203e329b6ae67b46b4680f5f1965874fd0c137609e0ff50405b8fa8c9c5cfd112302205eaeb060ac5b7f8d1b86c8fadb962a9e1a33fa51ec164e8c4a46e0716e1ab3a2012102c99f63ab2f790c5428c2b3351f7868f8a5e9406afcd7e8440513e827c401072265000000", +"00000020efba4e611e1e2e56fa652e78306a76a6cdccb988c889801307c6d9771bf99543d288ed951a09af4d2d5780f3756bfea832b543195c2b38c789c73b83ef7c7934e8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020167feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000066000000", +"00000020e3b42aee7f0b7dddb821411bf97ee4eec25a13a4a15d93be844b440f76d0eb51f52b4b18f1b4a4670c51fba6d8e41c785dde8e1c4a883bee5b98ca2cdda25f69e9100e6affff7f200100000007020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020168feffffff029034062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edfd3b4906dafbcfec299ee45adeae3db8866ed8992eb011188df3f78f229e151801200000000000000000000000000000000000000000000000000000000000000000670000000200000000010152c83ecc3c7c7f3fe8ae4eaead7fb8e8705a4446183974782aacd23bedab44480000000000fdffffff0280f0fa020000000016001449f33963010119c7724c13f7fef94d0f79acc0a57ce5fa0200000000160014dcdd5f457b54f9301218624b4d1323fd8de309880247304402205368d72da2e54e0b6f56b433e858d4ef03ba4bafae9d34d37510df4fcb984f750220435e7feece102a71e61328142da03ca86b089cb30741f88bfe9c321c8412d0950121020fc2d829e289339e183cfd519cf8a2d704a7d0df2bae20a46beff2837cf11ae46600000002000000000101e28ed3fb61a1003c3f25fcb8bafd642b46938b3af118d0fa5243a66c2d6e14010000000000fdffffff0280f0fa0200000000160014e823c940c8de2e422389c9bfa55e6292bcdff1d77ce5fa0200000000160014d6023e8eb8662c5f5e3bc3ad8c4bb3753bc3c0300247304402202024e471c38f6a9bfaded863d85606c889f84dcef706f1456e4ac4550593a5f50220301eefb7a6d98103ab5dbae0306162bcfd0b0ddd128ca558cdf5ae3faa9d517d012102e2bc36d30e9b641bf35f25832656d900d25648a41b8c32b2d38b04dbf98564f16600000002000000000101016b52789d88829eeb8fb5c7c8261bda50aef5169039e70d531b7ea4d19604cd0100000000fdffffff027ce5fa0200000000160014f8a1ab32d0e83a067206e710b1fff109af42503380f0fa0200000000160014bdf9e9476d9c57ff7fc59ef816cb91eb67027ef30247304402207573cf3f56ec059df39a3b015648db1329acc0e69452087d661e4cefe646211302204d2682f7fabd90272157c5119bb6fb590a9acaeda3546216e62123d898bc76ff012103fba8f4886d3b52b526d156b65262310598e722444f19fcdfcefcfbff7d25810b3a00000002000000000101c6a498ef37cf0274907d6745c16c60565de843116c28fe17f7513461b89967870100000000fdffffff0280f0fa0200000000160014c7bd0ccffd300590f00ebdde6b1085f9d78c277b7ce5fa0200000000160014fac1533346e606cb432313d01d499041f3590ae8024730440220044f5962ef2d1777cd172727d601461b934eac80d75d3513981ea97794eec949022042f63009796cd4d2931735023ed021978cdeb373744d72750991866ac853334d01210262633eb02efaff452e6d7a219bf3dbe356eabe66383aa19dc78116dd1b9a734f66000000020000000001019131dc43dcd9f58edbe4da8e74b87b30ced7d0a9278618b4e5821c647e89dd6c0100000000fdffffff0280f0fa02000000001600145fa234d6418c452ee8f9824c4ffc07a58a482f837ce5fa0200000000160014de05615a4dcfe171d55eae08ccf7ba9e1272b1e70247304402201254668a49832dea4d587383056919a3726ced278b892f9502d23e78e28a20fd02205f140bf2dd3029253d4f2a57da3ee05ae074b2bf82684714753aa1b024c29ab001210344d30f898b00b9c40536ad8eacba1612afd4021805f6c9b4a1aecfa4d82fecbf6600000002000000000101016b52789d88829eeb8fb5c7c8261bda50aef5169039e70d531b7ea4d19604cd0000000000fdffffff0244e67ee2000000001976a914352d1f714a48427d54b40bde13fb211d8198549a88ac00c2eb0b000000001976a91475bd3d4460e27dbd00b47c1cfcb0558a181400ff88ac02473044022063df2072c4433486eeeeeee8d5b79ce196793426af3e359acab97435bd52d06402207fb50aa21471909e9d2eb051661af3195480eb251c56b4f48cf6577c04db3650012103c20d8bec9f58c5eb06bc8f5c38a0d0a37b5b0c8c402677670df2cc4b6a71b51d40000000", +"00000020fdf95819f147bd741bf8ef7bc8a75bcc11764c7c60956eea407b285aa7d4b4247de4ac845f72dd42cb0d2ef0b546a83e650cfe610f6871df25747b504b076c3ce9100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020169feffffff021c03062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed9b8179551e1c41cc1cfe53ecbd9773975f8d68d9b20ef4c636a323161acb1dc50120000000000000000000000000000000000000000000000000000000000000000068000000020000000169720358b80cbe260fca180dbe044e4472cb5c555674b43f91e5e5ded2bbc296000000006a4730440220627fd2185983962d7b518ee6e6ac311e9461a1879189d2cd898a0f42bdb9c28f02203944e7599ec3bd1c034495c3ce161ebfd6e532f3a3f7d634e675e979a6fc3f6f012103c4583f15fec5b47654b304238f42dcdc8d946f893eb41a0d0ee28516d45c2e09fdffffff0200c2eb0b0000000016001475bd3d4460e27dbd00b47c1cfcb0558a181400ff281393d600000000160014a3c41024988de432c0d883412cb5129d90fc61a568000000", +"00000020eda7da628f2bc837a134698303dc5bfd653cbe81cbeadb4202e26f8bef4a4d74c386caf6a41722070a6fdd3d1e9f8f426a65ad2fc507c60cef884b7843ca83a3e9100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016afeffffff022cfd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edf225e56c0dcee01991178fd2f3e4c86f2d655d7fdd48a823b9f4fbb2d5500112012000000000000000000000000000000000000000000000000000000000000000006900000002000000000101c2c5fd2e05f13767c586b55854c12b72156d3277a4da953248205c1ceca0c9550100000000fdffffff0200e1f5050000000017a9142e38c9c474e37010270046da38ce190a596ba32f87fc269dd00000000017a9144702c92e076a0e999c36c93afd2042f70c75082f870247304402205ad99865ef664fc3a517a42af3d08a6d99fa28776c3ebc10cc3d5c354a8fa4eb0220772054a42c1e41c927fa32191349198af12fcc52b152de102f6d23e75e0c6a05012103299da6a488c24513e5aa2fb5e9cdb2590b93ca607c1250928281f2f2a2625d6e69000000", +"00000020559c136e3452b97b706d97f0ff5b63c57d321aca1a130d446ba16b0ace488e2dff45412a8e51ec2c342921d3e11a9e8b051ed02cca034d408d7e74e86369412fe9100e6affff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016bfeffffff02b000062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9eda58b9a3d1bdc62737e9514fe4e645fb5f63de3e869e700649c3abdd390875e1d012000000000000000000000000000000000000000000000000000000000000000006a0000000200000000010144b550d93ae99a2b86caf749508f7220ef37e1abb32c58020f9e4ce2fb92340101000000171600143f196850d8aceee83f4130355ad25063ca2ecb3bfdffffff024c4e0295000000002251206ed91a6bb9b5008ea78714852eebab2790c319df6f83040297c20fced3f40b2900ca9a3b000000002200208a17955ecbf395b3f5ac88a4f0c9e1e41d898f90eaf4dd65306e37c153ce730d0247304402207d95d022ea59747604a80214a01a7a32778f7433ef92b592723fba543ca140a902207b937a7688573ad84c12a39d334d3d9767a075237c933b2584de6d78b95ab4a8012102c67a45d0c4c41b83a3ba16b5c6459cd35edf6a95edc4a59c917c3a7aacb8663122000000", +"00000020da1a825b0e292596649de2a69f34b38bfa8c2a5e1eea5c82cfd8c4a98b9b6579bb8cfdd90081f3862bb8eefc9df595a7ea984ccf6658dfffd723533705357c72e9100e6affff7f200200000006020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016cfeffffff02943a062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9eddb68b510e02c31f86a26aa9ba4036b3a2d01daab15e100f6c8eed2e87f755720012000000000000000000000000000000000000000000000000000000000000000006b00000002000000000101f6eeef32873cb2c5d4ab91d609a31fce62e733b50c2c8c5a50ca934dc70c4d670000000000fdffffff0200ca9a3b000000001600143a71e26ba710f7bdcb24de28d8b279cbb77ef675107a6759000000001600148480fe9e9b951fda8340b355827298485967ef4401404ec3c7092d8ca5f2c5f0498970534e6db86ce3caa74b44494681457f4ba83558acbb3400136e45bfc80202e06097c25209e4ed6e371adea94004b90235d33b486b00000002000000012e5d24f14a927f0f5fff33387c5c4bb2cfa5a8d206036aa8c5c8d6bb79f6350c000000006a47304402202ecd177f334881e838b470bdc78e610964df79111c7b8003a2614385b0611f0e02206758c9502f516c55af76d1f82c2a4813a011f9cc06416b795840d5a60140b69a01210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff02e4166bee000000001600146489ad212f36ea36b562b174a842c51c8e2d7bbc00ca9a3b00000000160014bc90503713fd19ec0d7dc7b6314080725dc1574b6b00000002000000000101e358022f444ad1e79866b5e6400c2d38e6f496498a1a1d50310b2191402f40b60100000000fdffffff0168c19a3b000000001600142e2e0e5aad28f5da93a6f0e56f9039cafae32e6e0247304402207dfb79ddef8b9e53b991c543a915e79ad241834ec96c285cf4d409ae8c2b0866022048e963ab8e40fba652da10a67eca89151cc545479b23f2797ad8405643be494801210284b3623888d642976cb32c05c4307854d43024797c68bc0eba5bbb13d9a698536b00000002000000019cf876c62dbbe036af4ea4a7363cd4ca1c14c8572095cba3b76a87daa1303ed8000000006a473044022074140601c8b9187430cf9bd4146a38a4862ad504e037d1fef797702c5427ed4c0220110accbfbc63f5a9cc51b7d54972c185381c5768368ebd5550fefc1196d03ae601210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff0200ca9a3b000000001600144c59bded8707fb330f73658f36fd97f61fc86bb9e4166bee0000000016001413a91643115e64b7c20f16575b3bd568896d9a476b0000000200000001775c375f240fcd10dea3b6b2111e5e1372c612b4c2ad0ff22d6716ecdf9318bd000000006a473044022057cba3d0aa7b309d0543818102482b6ad88496d9ff067fead75f70009db00841022075b1a70440b25572235633ffdb2924c1fbdb24382089f9cf9a2f7b87b3a7b7bf01210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff03781c1a1e010000001600142d4a8cdb95170a6341904daf82ac73f4f3e3cd0400e1f505000000001600143a71e26ba710f7bdcb24de28d8b279cbb77ef67500e1f505000000001600144c59bded8707fb330f73658f36fd97f61fc86bb96b000000", +"000000204638a3a33172197fc2962fbaccc6fd25464b4a1a69e5227c60b4252d8be1a118f3b581856a99775b2af9fa4f47ce7691580376d1063a013604fa1bab13677191e9100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000006c000000", +"00000020170eff60bfd9762474ae174d6fa69e2a5f3f3c0f76092857d91120750fe056546443407cf796b355b08ab3f7a45d79671b045056eadee1deab45dd1a8917ed31ea100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016efeffffff024002062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed23ad3c685ddb3d91c292fd9eb0aaa592a1bf8d35e788fbbb8a0a5ce1dbe2e80b012000000000000000000000000000000000000000000000000000000000000000006d000000020000000001027cf8a28f02e0cc4c27d4313c86c294f988425ba4075ac352ab8b2f33289bb6f70000000000fdffffffa42bb798ce73920fb75ecb8ce627aed5ea2e40a0e5e463fb93d43b47b28251f40000000000fdffffff02a8d7fa02000000001600140803b596e705d9a715763712976820c2ea75fd7700ca9a3b0000000016001437f0163527bf88d7a16ba6ad24c2b82770de44c602473044022051e39b673b5cb1f5c7fb05ed858688b8f062045c56632e7951e28c8485ee408c0220331947e28f9d7485e305dff740982a3b691305e29d1bcefacc754ae951b39c21012103289d77616994ba1127df8e1d6e538efb48d96afba1783fe45fe071cb744a6da302473044022008bd0f74407b79c08cf41f19e3fefcd71bac9054005addace5734e99736eab2302205ea89d784f17a4626442a07679b78da14157b960d9883d9ba3318b8924532490012102c9e7b3fc6905da070bfb40a88a02eb00290c80f92a03f9a6e4bd635362f507286d000000", +"0000002029db353a90f2142622b92b842505c8213cc5a5539ec62dc67921347c8fa77d211091e13210b4d513aef608e5bc68277be4fd049f99fda40f77b6ab0d889d5206ea100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016ffeffffff0200f2052a0100000023210399101199e321e2af21f3a7948599207524c26e77edaddb0b2b257912f9724b94ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000006e000000", +"00000020642d44bb6fec140780b8ba3a3229964ef255c84f7fdf4e5b095af3560b60d34829232d2b7a84fb77eba972cf7af9fea2b9f2b5afe6de2d001d16141c48a36acaea100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020170feffffff0204fd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed8b8a2beab6576895194fcc315d64299c438f9d60273dc145ac7119fe1b5eac1b012000000000000000000000000000000000000000000000000000000000000000006f00000002000000000101e7e4f83090eede73180e782588763ad365c2008f3d47fe752d25d0437b722c8b0100000000fdffffff02fcdda435000000001600146f2037208aa2f561d3e23f093ff9a978d20afa4600e1f505000000001600146b5e363b998789731fbbb38ac9e68a435499864b0247304402207b45f1487cd6c0f7aaf4516e28ed1496f7803882142fc4ec216e223d033a3d19022018473b01274b8bde298ad3f89176df9dfa465e1cd546481be6dcd9e93731d2e10121039c4437956680d771132f31827010da89a1bb2c2a6e1abe25ef2f2d9a279d087b1d000000", +"00000020745d1dd8a71926daa1a15bcca6e7cda0fb7cf374ae0bd33a561138f9fed3c13135a86a9702055e81394003c0d6c1607c059b16aa175f0513d2a4aa966f5798f4ea100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020171feffffff0204fd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed0caece0cb03bc51dfc7fd0ed41c8ed37ff4de5d65c18e1071c4e7ad15b6ee59e01200000000000000000000000000000000000000000000000000000000000000000700000000200000000010174b251bc96206fae8e90d603405593d0d456ccc91c411cde1695d87d5037165c0100000000fdffffff020c8e71530000000016001461d1b750dfdb48880e4bf1dc5dfeb9d403c907dc00e1f50500000000160014d24ed5efb3cfe7ba4bf2f22de30e50bb5a8b294a02473044022019c2cf13d8585fd50448f5715e3833610602d61317f3401aac005309b6f2a1c2022003d8397d7779a4b6f02c953e02f7c9a99227a7e250c3b6bbe825df986b2b2a7e012102874326a37e7f6938fd1bf98eaae31099909fc12e7297d595c1cbb587deacd74b70000000", +"000000203aa0116acc53af2ebf73a0942efd27f2dbbe6dab834314259243253382e2dc1d56c8767bf35e79cba22af3de81bfb5840682bc217877a5f3b3319acfb9a920e5ea100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020172feffffff024202062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed4458bbe451285682ff78f7134475aaed522f727d94de1bf4286f5104ad274082012000000000000000000000000000000000000000000000000000000000000000007100000002000000000102bb096d805a3654e2811d017e7ec5a8b540eaa1d9e4a06cb7a20738de7a6857720000000000fdffffffdcba74a87fa4355e0399879a69e717809ff6b26333c6a0f649de333ba196ab1e0200000000fdffffff02beb99a3b00000000160014e92aa29664a039c96283df11c8373b270110057700e1f5050000000016001429c7cd05cdeb60b6cfae5310f41e1ecebd09a8470247304402200a74d96056951ad0e39cf69a64b68f42f4a24af3644d9526ef0d397a7104cc9c02204c63a82315679d2df1f351ccdbba7e79718cdade126a667365f1f4b5e5246d98012103580757b749e726d595a93ac8e0088d69eb983cf7d10e924b9e6a6f19f91dc9370247304402205a594ba6485d0e060d7ee5b3e9d124b5b73b4c7c73ca227e0aca5d5735ffae7402207fec5e2085c19e85a749edff084729720072aa9759fbc0b816f1b8ee7e1025fd012103580757b749e726d595a93ac8e0088d69eb983cf7d10e924b9e6a6f19f91dc93771000000", +"000000200ec08dae9db4f6554b956ed853cd29b8afff8fffee9173fa4a4e4e99befde42931af3e5cf850bea99220c3b1d5edf16bd0ac8feef0ebe93c5990a9db39ab1491ea100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020173feffffff0206fd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed873df78e5e9da60f7b25769f7d5d0301e67dfb27f9e7724e6e9761ec55b17d33012000000000000000000000000000000000000000000000000000000000000000007200000002000000000101fc8b910035b3e53f07bf283decec5b60131f479506b8bc023f837b295e4d50ff0000000000fdffffff0200e1f50500000000160014591c29d10b2d0629250c4b676d54381724a07c9ff6f1ae2f00000000160014e84a583379a98c4f4ae97dd30f796946decd72ca0247304402200b0c581fe593db0304f7ca7ec7cd5a95f1965df138f13102d90c38fc32b57862022023d6adea6e9e206058f18041760253d909ae0b490f8271b03a2b34bece8fc41b012103d02d6a7667293054883c6da8d71047a467d88cf9ca22b892609e20ecb22da1ae72000000", +"000000201fa6b119852531ba466b8aa455a1435449a317202d24402ffe8c868ff250e00c6b5b59f8f3679f894ca1cbb6be665d34000f08c3a13b9d42b4b68a8e1d5dd34beb100e6affff7f200000000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020174feffffff02490d062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed7773a7fb00e673c49837f27f123a84214bab80d8a44eae958260186e6c71d4d2012000000000000000000000000000000000000000000000000000000000000000007300000002000000000101a96c7fd62b7e5968f7735901077d30f195b28e1669236cec0528a0ab2e0914660100000000fdffffff02f043cd1d00000000160014c6fb945c392b03261b8b10ee71d56c9815309b9e00a3e11100000000160014746f68850933cd31eb082f5820a36b0eacd4061f02473044022021357f9915c6d8b4891251dad0c45f3a48b2600f8f6ba3434b5c52d5ca23569802201b8d4f4b562a100c40d24cdfcf4521830d941efb6a4c5a7edfaf9e9e4220f94a012102a62b45f7432fe291c8fcae5e724e0925302d7a1fa0718bff430928daa7e397b17300000002000000000102dcba74a87fa4355e0399879a69e717809ff6b26333c6a0f649de333ba196ab1e0000000000fdffffff48470b70682fa6413abe3fd1bbcb87f2cc68c0f9ef9464094eb60dc1f4ef8cee0000000000fdffffff02b53a2915010000001600146ccb572af87f6f19b17f291818d919aaf460ab4100c2eb0b0000000016001422c3c781d8c8e6bf8aedf6db875a3f2d02025eb802473044022075ac6ea07c47262a4bda5414287ff794b0745970c6b8c8d22f41ff60c85c146802202aa57162e1f9de551184a5dbfc999114276c935b8c7033cb41421287f70e6f460121037d9dc96d4a8a0352946b7567ac13ccdd617cd392605193887d70bbbdc819a9cb02473044022030acd3daa739e010df2591bbe6f0657351a6444553e7d56d5d455425a9b536d5022063f876b01a1fe406c97e183f2805bc00eb5cdd5b378a84235e79ffb3e3b6aa42012103a576ba12e84f19754553c891c4377fd32c9ce86b30157b6872cef1b23cca7d5273000000", +"00000020dd0e828c8babf682db338ab6c2ace2804c562a317d89a8e4f2c9d7e67ed77a7218cc6caee005d813c8f312981a3324f9ee7ab8bdae6491e2130a812e805924abeb100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020175feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000074000000", +"00000020cd74132ad0cd91658fed7018d123c062bf09890c82a963429f3543e9b4a7767bd4abd50f57dbd939cf3d58748c5039bf2f81f2a2fcad23be05651e6b1fa5d18feb100e6affff7f200100000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020176feffffff023208062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed22180d3cef514517f569e9fa88942949b8629934f18212779cee40e97254ea5f012000000000000000000000000000000000000000000000000000000000000000007500000002000000000101c555c29b258698eddf60890799c73efc40366fa0a4dbc379f5b0eae2a1aa12670000000000fdffffff02876d3d090100000017a914ecf2e92fb5a79bda1ade29714d3e14db3062d4828700c2eb0b0000000017a914e4e81bc4e8792afd6325ddeaa2653494cd10be308702473044022040cc01ebe3d493afaa76b5ea508e1aec2485237ede7d369a8c0c4e2fabef7d0702204aff2d040780af955127ceb46abd3254b5489c6e69efec2902f41c012b2284cb012102f24e8f1654a4ee264381dfdf81aa5f925fac470bcd952654fb74b0ae9066fcdd000000000200000000010191bed3a310caa666b133d4d0adff6f3db51dffe4ee63a2e1d4ba1a17c1b8fd490100000000fdffffff02fcd5f50500000000160014bcd74664ba672e88a5496651280e04dbea664cb800c2eb0b000000001600146365d0cb3cd01b9f5a04f09630fdb5c94e87430c0247304402200efe52f9793f099931ff7244bffabf2a3cd1ac046a02576363ca015b9d06264602205170b30b0476024c6db2688fe346f4589232c09f389b038626fbed2d224db58001210348986ab0238535eeaeb7faf156570f833002de937c36a17407dfca7c94761e5700000000", +"00000020e9e1fa6f8d48282a7a2f34ccedd05124207062ef9eb56dad30f42f707ccbae283b9fe2121dafccbead8c934889e75f7289639772c057207b4a62aa64fdc221f5eb100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020177feffffff02e6fe052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed28af5c0a2b5e4a9781acacd36e8c92855fbfcd394c81abb1d6d3a3e3338bc417012000000000000000000000000000000000000000000000000000000000000000007600000002000000000101d2ea6189259c36b9f0f17a532b678dca52a7010ee1d1d434e3b57dacea5f9ad60000000000fdffffff0226de8f41000000002251204c25a804eb9f53e329bd48bbe78527fac93a279e5594d4de289ad5cc9d75c52a00a3e11100000000220020c43f2113ec233e201b348594d9cb6e0885bc167d019205ce798a9038d983609102473044022036491374035475f422b262d0d85d76e47354e7b5ebe84fde1f3101e2e8d04c5102203a00b2c8b33fe9878ecbc6eea2da54e8a1c79e24d5c3bcb51039dbc7284ea151012103b33fbb51d5b57c2b5b171659b6cc92ac421fc41286c10242d34ead72ef52353800000000", +"00000020c4769fedca3eb65581abc21b4d9f870d27d51e47bdfec446a63e417ce58b786ea252ed1727830a49691aae359c487ef49298c9a61cd7f315632f65384267e30eeb100e6affff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020178feffffff023efc052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed5b2f64661e874f1c9afa87902b16cc26c04d5a4f8c30953a1dc553075f0c9d53012000000000000000000000000000000000000000000000000000000000000000007700000002000000000101f54b2b8059c5b6ca96a9579701d82264b04db888b5262eb624e13daf948a2c950000000000fdffffff02e809f50500000000160014ede8e0883d113ca8c102678a66d6c1999cee331900ca9a3b00000000160014d54cc6fade0ddefef3d967455a64042e559c3f2f0140f81e7a4eba4f54cf7e9503b7971bb945ac6ead4eef5789fce44c2a74fb3062de20ed53d9173a8681e9835d011834eb7ae0ac9ea38ae3eef2b2897f361848e7ad77000000", +"00000020197f216be59b0718ab58b70fd8f0fe3810a1610ced8a3bf10b003de7d789a004d2fbf0fddbe549297ae7d2e2aef69179ce51b12ec9bad3f94f0b76e456c379e6eb100e6affff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020179feffffff021019062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed032564a5f505d43279ae33aab1bc2a41791d8d6b35d174bf1427413e87d053750120000000000000000000000000000000000000000000000000000000000000000078000000020000000001017b6bec5a4cdff535e4f1c3293474b78edd0cadc30981a50ec5b73cceef5a7ea70100000000fdffffff01f0a29a3b000000001600140b5a81417f08e340868fc0ce244201a50895ae1f02473044022029e52bc8bc6d8b378d3ba06ca8eb5d8c6fcbd1b5e02a5302eee96b31e03c2ead022031f7f1508df185273ef68171a5972014ab8b75327b771808f73dfc0c3e132a3d012102d692279beb2d00d1a9179d838e788eea8db7dfafc3fc291028fe3ea10318e54600000000", +"00000020161824374fddb9faf36eb6ba7054bdbbc87f68f372c7576c64533ca85fdaa479223d2c96475d940ce159053cf5e4c83562e97b470afd3b0d675d41d9fd36ec7eec100e6affff7f200000000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017afeffffff02db09062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edcc0869144f8e6e8cc6216b8cceb3c1791fbcc7cd6dff1b909c83829143b4098f01200000000000000000000000000000000000000000000000000000000000000000790000000200000000010191bed3a310caa666b133d4d0adff6f3db51dffe4ee63a2e1d4ba1a17c1b8fd490000000000fdffffff02e976e11100000000160014346e3f7e659751ee9618868dc6053ed0fff874fb00c2eb0b000000001600149503fd0f27789042b283ca8ff565e346f43f8c6f02473044022027923a6e3323331edb8c4aa674becefc793c938c735275e3c6f196a7f77fcc7702204df7ec98b32f6372f058d82adbfe4134676c339044592c7d8543fea5a4334d81012102dad87450bf680215acbbc826358b98b4c9112ef32fbea8822ca0c60435348e857900000002000000000101dc28345e00d30237a9a96de27a4e01d747ec2c49110519ca46db0a7726c7994e00000000171600145df30d8c551ed8b6b63d26a19bbddb4d212a4743fdffffff0200c2eb0b00000000160014e02c91621e4d39d9bd2eda35bd405839b60ca9bab39e51fd00000000160014df594a303a1df9fdadb310b2d5bb43ecd274092f0247304402203e2814f7acc9a51d5d143fec7ef90c20afe33b158e0a4cfb83b73fdb44e993d602205719eec36238c131e89ef2877bcd6a8810976b7bc64308d1835cf0327841f1fb01210289343a60a0544a3ae2bfe20e5958235c686397a64a5fadcfe893f7ce1f4ce4c379000000", +"00000020c9f98deb84598257e2e323970dd5102d27348e12d48c97fa9804fac4265eb7627a6f4f369231f104093d4ef99cb347e8fecdb8fcd9291483237a0ea46d6fc3f1ec100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017bfeffffff029bfa052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed434c0b6ac1ff212424b0d14c8e4bb169aa47c2a96ab1153d3755edde3a39e6cd012000000000000000000000000000000000000000000000000000000000000000007a00000002000000000101596d092a6e61a812d7621ab5b6cd5d9837a1ee17a7376e1deb20fbe8d065827e0000000000fdffffff0165b9eb0b00000000160014b5181ea3cf59c6dd8c5b0b1c2dbcbd51d7d1468f0247304402207693ecead372288f579c173c7448dc97748b74b366d8b11bb249bb5179d1f5b9022031870d1a9ce4985040c2e764f4302640ad51dfc99ce9e8676014605231ae832001210351d65edcf208db77130fd6dc9028e5736b46843c8adae5217c97222c8842c2117a000000", +"000000207b5fd9a7bde66eae89a4e820a9bb846a071cd1ccd3b544388e0188b3340f6f1bba1b5f1148778b8a36c5dec6384ed01f5394d5ccc90917e904c4e5dca21899bcec100e6affff7f200000000004020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017cfeffffff02e415062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed298ec1244d104c666bb59e2952da300cd20b3416932634835b4846e2beb9d76b012000000000000000000000000000000000000000000000000000000000000000007b000000020000000001011aa7e488b611e5e51d17fe121f66fe080f2e60d0f5cb053e7b95acbf586e73b60100000000fdffffff0168b9eb0b0000000016001420aba5066bfda57d38df2403fcb03777d1189ee80247304402203fcb0e7b248c64b8b7ef8b5b2fcedacd7b9f9f0c075cb263456f3e075bea10c702205d6d4a190e03a41df10d86c7a6016e017425f87018043141da2b172569c0677d01210392bd995993277dff85703eb9dd7a4098d0950dcacb0fc605611239aa0c5ec6760000000002000000000101596d092a6e61a812d7621ab5b6cd5d9837a1ee17a7376e1deb20fbe8d065827e0100000000fdffffff02acb25bf700000000160014463ef2a53b3fdaea6d5f676d643af472c908e88c00e1f505000000001600149503fd0f27789042b283ca8ff565e346f43f8c6f0247304402202f366f83c5b5174344a4c6469eb8f5d479b36dec499ad8d23be619950574661102206f13a61b40345f7bcb4ee07d9d11d3a477901d5a9d99d8e249ec5f6b13430a98012103ddb92a635016cf0f393882271d249ee39ae4b0549361c3c3c120408603ef76d17b00000002000000000102e7e4f83090eede73180e782588763ad365c2008f3d47fe752d25d0437b722c8b0000000000fdffffff7b6bec5a4cdff535e4f1c3293474b78edd0cadc30981a50ec5b73cceef5a7ea70000000000fdffffff024bf0f90200000000160014b149ee23990afb7557c178d64889101d75e5434d00e1f50500000000160014e02c91621e4d39d9bd2eda35bd405839b60ca9ba02473044022039f28fa06be477a5844ee764f37bb38240816a3388c1f03869837d50f02a0f940220327a06e70f5afbb0655334c7eb1c74077bf9fff2460b20f55c6d4d987cf953ee0121034d4debc459ed68821a01b8b3341e097a2b1ed2ec86016ff9bcebe8fd6848c53b024730440220535b8514cc164b13b3d720df8079d68758ade9eeb8e7296fb8ffbd6e44f6f974022055a35a9b0231ea308554af014e7646b82b2978616fb6f31d8735017bed918729012102714828ae4335017322eed8d0b9156c8753896198be8ed0d732d56eb922d861c67b000000", +"000000200b90adcaec9e439f5904feb5833a862defbd987a9c7bf83adfa927718205c2731d2c480a213645bbc29d4b3b62b8a869ef7535b8f65d3784eb0dea7e53f38a6eec100e6affff7f200300000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017dfeffffff0207fd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edb1c6a16603914be713e14c44b3c16b1bb89e19d062968d442751b6144b44bc20012000000000000000000000000000000000000000000000000000000000000000007c00000002000000000101bb096d805a3654e2811d017e7ec5a8b540eaa1d9e4a06cb7a20738de7a6857720100000000fdffffff0200c2eb0b00000000160014e693bfa29ee1c1c9c29c35e2e031261cacbfd4f9dd497fe20000000016001485aa1a2571065bd299fdc578b7517fba899f6fc202473044022014ae855a86c82016ce3f99fccd9694de867f39448c4b4b49086c99b087ceade702207dad3e0fd18f91d7d9fdb17beb8d783e2d3a36e41ace6f75fc3cfc77fea08847012103c1f935aebac9d08e7b6a16fb26502b3029c0b9832dc083dea037ce47f987aade7c000000", +"00000020bb3c5fcc8bbcaae784b94657e2637bf51d88520ac317aeff3f086402d3e24c4afe2ba041178b5cd0ab20ef943f382eeff071af69523cd4863bd452bd66265341ec100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000007d000000", +"00000020b9c5f199a4ffab26142389ee736cd05f30ec8ee61ffeb110cb515193a8da24037d3e10ff6e8e90524aa89c7555165e02c78e8892845e2a84cb6e672733318592ec100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000007e000000", +"00000020ba98796e8142d7d899d3ef9f6b209bf783c52517f9554be4e99fc7f30eb4eb40de86ecb9f97069cf41bacb9e1b78e4987296f7c129292bfde5cc2192778ca060ed100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028000feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000007f000000", +"000000209118283332a552031fb6b17ec2b5cdcb974aca7244feb9a0fbccd5cb52306e609366b563ca6153ec334f25420e89d1c6db5f2174f17accb614f903bf07b62993ed100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028100feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000080000000", +"000000209a725b1d20ccd6d832742840cfa3c193a2fa94933e86fda4ee1f38d3c4cd8d5e925160ec9098986198ef22804e7568bea7f41d4c093b1510dd02fc229fc3723aed100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028200feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000081000000", +"00000020e9551933934104b4e4c1e7e47ec8df2f3c897ce4c5cbabfaa0e5a2e2533c0f668b0b1b0471bd03cc230007aea758cef5593988438623b27f083d1923a0c1082eed100e6affff7f200100000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028300feffffff02c712062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed2f7601569d9a9c7694c8d57b1aa69071b31b76d5b306c7fc99b2577844bfdd2f0120000000000000000000000000000000000000000000000000000000000000000082000000020000000001016c4e277508059d14d172737292721b3d0691e4a6faefbfa02bf161d7a4224f900000000000fdffffff023ad3f505000000001600141f1ea08ac424134000f668446ece00deb983bd0500e1f50500000000160014e5096808c1adabb44bcbd8f64ae8fa11c6a5217f0247304402202775766623faac01a614dae7512ec2145cab6c98c16fe8e73c9ffc27b34918d402203b573959b37602052df3885ab76573fed0f9614acf8a3a4fd9fef9f6d4f23a10012102fab0347587093e91152c34429a1d3106b04ee4c2f29803f06930d11f4a08eb53600000000200000001a48c6b85fa94b15d6af9883d5f84bc5bba220afd18990df067e2bd30983829f7000000006a47304402204bca62a7e967f43d6f4c5cc440156f9ae5f63100f65073b1bf6c4e8ba1e0273f02202d8b905c8344a0bf3f28e85dae5e1b202e4802fc5e89e9980bbd4476c211ddbc01210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff020065cd1d000000002200205b4dfb53f3304a10880548b4ae77c05edbc1b92ffadf898e8ea5922e48dd7712ff79380c01000000225120a5ea779862ce5601bae6ec8fd2c4de16ca64e91caaa6a62d837a60474c161b8982000000", +"00000020792396a78fae05a55d887ae41e10707eb38a2c27091c1052b0e36fd1c6e34c4613ef2648d5ba86f328e7bf512156f1b1ce60a8975831cd9598043b392826f535ed100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028400feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000083000000", +"00000020a24c3f3ccd6e5e437101f1290e313c0a36541b64c22ec996dad6c3d3fbb6d9484305091e9cc1a9d9e4a06133277bcd66fc8dd1f481628ffd83f3d59da0707375ed100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028500feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000084000000", +"0000002007913f670b29716c7b587c35a700323c313f502c03a87478dc5c4b530ac5e349d67be035c1f6bc199f454fdc72abb3a3464367cc3b4fbd82a39c9b3ea68a7f3eee100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028600feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000085000000", +"00000020537e22ee6c04e1742318c9c40b7902d84b81cce6b3dcd0f73dcb2924bf7c46424d4922fd1b3fe98e4aad094f7c791bd975ace22acf734d921c9608df988e4cc8ee100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028700feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000086000000", +"00000020fd75e5bfe02e041f208652b02d34e847efc8d7ac26ff853e5dc830d7111b4c52bebadb070b92217d6a7d7a66c746822ac756ee31ffb2cc48e2df4df696b3a9b5ee100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028800feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000087000000", +"00000020d6fa6f6de16b28b686a9088fb041f4c5008da276109e1c3db917d4478bee7152fb2d9fceeca085a3f86d258b846719c261db8577bcfd7e99d6e2562422780b2fee100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028900feffffff023608062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edff0591ec341ea72a4de1f7f9a739cb6a66fa6206a6232e082bc3abefcb1d74d1012000000000000000000000000000000000000000000000000000000000000000008800000002000000000101373a2a8ed1f2fe90fc91f11a2ed5e3e1b53d7913f09fd2c8fd994f7d3d71374d0100000000fdffffff0500e1f50500000000220020a659119e407acec5101ea8b88d513a3425a48dda512619d35957f4ca6f27802300e1f5050000000022002012d16047d9aabd4108a5635051e6f36331d34066a3acdacfb05719c31fc7b61dc93c7fe2000000002251206ea067b971dcb2d6206bf4bc90da1b0999ed1e2c7b683e4dcfc384485e97ee0600c2eb0b00000000220020cc56f040c6a89ac7c202c1f805a3ee60a4b90fd0b5a4e8611c6caaf23a7a853900a3e11100000000220020d733761ff60d37a9b9854288abad2470cae6b7ac37d48cfa8ab115427de416b00140f15ef8a844954fe1f2794a46ed4e1763d085bf0ab1d2c4e18d0e2d0a793dc5b9baefd70e5e6fae9b0b9e208ecb39ac06894e3932212bd7174395dc38037b43e188000000", +"000000200fee514ba51f73f49983541cbed954c2f4eee146c9b4aed8482617c5dfc46d5482ebb54dc78b1c8ff0e615556daeef70af4cebc9447e5b8b9f1c615efd15ae61ee100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028a00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000089000000", +"00000020b49ed3123b760ad964298bb03636bb61b15b15acd634c606d0f6cd72b7b932642fee289f8573fb290900f0faf8dc8cdf7ff9b797ff4bcc52b0c591492ab33e83ee100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028b00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008a000000", +"000000200dc26db041d9fa1793201115dc8d01f7ba60ef8942684af9d4a92f6f33f3445c1ac9b9f5a3513d2d1f1a5858c72ede5f53f1b54aa7c3dc9689d98d38030f924aef100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028c00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008b000000", +"000000203e3eef1a96e1e133bd5c773c8ba171d34666fa73dbd37269c1087ff04a672347e0fbe28949f2e6f75dc8e5f8205e69d5af6355cb3b4acab280a9d86c4425d5a6ef100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028d00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008c000000", +"0000002023f8b687f76c69a919d24723b43bd49fbcf501bd668a1b29ce90030fb153dd44e49e852ab3a173d1da84247078d0f89cc78acefc29d74835af104fb8c89a5e49ef100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028e00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008d000000", +"000000208e73565ef7c54eb873c993a55775b27e0040c3a3a3296e7a6e3b862467139134f1abf0670bfa62757e5544304667a658bdfd0bb1493ad3ed3b4a4695b67f49dfef100e6affff7f200000000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028f00feffffff024610062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edc7c09f30c85b4215d1eedf64228a9b430d2b1e9d688a007deeca07798d5b6702012000000000000000000000000000000000000000000000000000000000000000008e000000020000000001015bd6a871af1559abc1278256111717326653704e5f644532074ad8956941eb780200000000fdffffff0200e1f50500000000220020e8c263d01b353fa1b9a3c6d1ba3cf0f7e83052fccf5115fdf1f5796e2b4e6c1aa94f89dc000000002251207e37198c75ea150e8eabcae55648a388dfc16334b3de7bf1a919fb35ccd0a0d90140b1c96f2d316e92519d69dfc3a46c933fb1ce484fc5890f2c16f2dc8a012164de1eb4ed8bb33e748ae5507f578a7192f6f15c45bdef179d79ad21f531df86dc608e000000020000000001025cd681c087a1a500542d6809a59d1b68a9522bc7cac9dcb4cb3242849f3892cb0100000000fdffffffe358022f444ad1e79866b5e6400c2d38e6f496498a1a1d50310b2191402f40b60000000000fdffffff023e1470eb00000000225120dfbabe8da1133014ca338a28e90ae8e3618ebaa0fa685727911cd648a1dd5cb700e1f5050000000022002068ff53d1799b8593451d3e8e4321e33a361ffc94b73e31dcf1c6f1bd285a15ac0247304402204b324312b586a2099395311559cfb723fae19c998141f05afcf26485c017bdb702204a0190d2d552c9ae07d85d023218e5117c911e02006582590da351038247bb5c0121032249f202c958a7e2077798d084316ab82bf4b3ec78d23f78e493b12e2b91cf900247304402206b924a970863a1a72d551a15faad543b4e77bcf98d1e960bf86ffb4e0d8634b2022052f8eb67e7b596bfb34c000cffff5c8af608def255e07257f6cbf1e958ff31eb0121036995d6c31a9426b9e4b78bd7a02f52e8ce3f31692bff1c657e7784aa85c0d11b70000000", +"000000308ca616ff5734d61c8323f22b1a21c258d7654d46583faff9a07e7d15b4006233b231360a002a52358e645c11b618aa6ee8ea1af5eaa953f7225430788c13bb2def100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029000feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008f000000", +"0000003089151044fe44ebf4fc4b0127f1b775064abda67f6209763ceed6c24de4188e0ed2173b8a496f44622762f3e43d1f1389e44126a9dd5a986cca1182c4f24bf69bef100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029100feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000090000000", +"00000030372b71cbf187ef2f7988aa11d622925a706a6ce8fac6bd9a88dce5f473a3f10bf74ddce118d77cb3229b5318221fe7c194387d215112635a86d1f6e04be53a77f0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029200feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000091000000", +"00000030cbc03f02fb0b436f5883859d1ac7a22f4f1b6a48c8e486b75a39518e217a3114f5b83afcee3f89666a2c9ac267a7ac10db8083c7f3b38142ce7e51a7303bb69af0100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029300feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000092000000", +"00000030b846baa588528c50055f45dc2bf289bd29f7cb658720b0d93426a0f239183a132fae5b16097453cfb5804230b9536df1c940a21ce7c00bb09b7b930e535111f1f0100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029400feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000093000000", +"0000003015243e7e0c1da1599bae9306ccf2d3e5dbba9afd362752cfbb58e6191562965b126e81cd4144467260fcc6c324f7089711c41b4c2738066934ca5d0b8676ff97f2100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029500feffffff027c07062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed5824061e2d6b1f0bb354b90d7aad9415d39c5bc1d8732720166ceb94a069f98f012000000000000000000000000000000000000000000000000000000000000000009400000002000000000102dc17042145bf1a6d8efd801e7bdb43d545ed5875d2bd80e89360cb5b6a7c1d170100000000fdffffff72f07121417f5c172d08422d9d4027fa64a3199662af284a13332bc6ba02b4a30000000000fdffffff0300e1f50500000000220020e8c263d01b353fa1b9a3c6d1ba3cf0f7e83052fccf5115fdf1f5796e2b4e6c1ac06878040000000022002068ff53d1799b8593451d3e8e4321e33a361ffc94b73e31dcf1c6f1bd285a15acc4627d0100000000160014e27f1ec30e5ac3bd7fa933a44b9b74fcd693f38602473044022029858887aa31964317847bac52132826e9dca196fe548f99f688c614bff0cdfc022024d314f519b5911cdccc84d5e15e57dcf481d5192e877553575a16559feacb3e012421020ebd36f9085a608b7b3cbcf0a80f831d4bbfd7dd99973086701f8969fe5d90e2ad510300473044022049f5134baca560a7f22d4f03db1ee46e989bb602cdc23e1e960c09525ceb3e1f022063395841b31b16cc7adf98356a68605462454e45c70078ec19431e11560ceec5014821020ebd36f9085a608b7b3cbcf0a80f831d4bbfd7dd99973086701f8969fe5d90e2ac7c21029ffbe722b147f3035c87cb1c60b9a5947dd49c774cc31e94773478711a929ac0ac9b00000000", +"000000309737030a18ca95bab1211743a7a971d388119e7ba9bc6e269b8a00e88569e65af50c7a9c56d299c3992c7f476d9b177e3dbd290842ff92d1e3a4f7dbf8cfbba1f2100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029600feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000095000000", +"00000030c14a26a94c794dae5ddbad7c1a4d96e2a56a7f72f7b438ca78063743d6e3190bdb5b50075b6ae343b3cc24e0006ce5b07db3b2cc00b1eaa952b2b7ddf809452ff2100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029700feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000096000000", +"00000030d8d5d6b0813a8ed9e7f58a4db86b581216da1ed05e6b172f1b337999d57db84c666615479c6f8a458e8f2eaaa5f0df67def23ab64cea4ab87822f3597799b126f2100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029800feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000097000000", +"000000304eb6dead0afa6dc0621f63e6e4533c827512ec2b47c8043db937fb2508a5620f44f5fd4fd9d0369bd48e6df2853e1fe2746611a04a66ae926e296087ea8708ebf2100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029900feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000098000000", +"00000030889c7aa82fa3a108bf1fc9b832f5d3acec3b1820e653cbed010482d76f1da37bf7c3721c9ac8b48de7f8feb415aa8d6a267b67eee602c1134954d0ea81b185d5f2100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029a00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000099000000", +"00000030f6b37a15ead31c8f5eebfb11dcdcf80fb5da14cc16d31a2543f677fdc7219f75ad5f034b70b323e9c9a1e41ae539e3885ec5811f22a5c8e75c6a1b942133eb91f3100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029b00feffffff02db0b0395000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed052e1d59f32f3e9010e964be5706b962d29ef6c33374487a4c14873d4f553d53012000000000000000000000000000000000000000000000000000000000000000009a0000000200000000010172f07121417f5c172d08422d9d4027fa64a3199662af284a13332bc6ba02b4a30100000000fdffffff0400e1f50500000000225120348bdaab8db70bdf0fe70b0366cbd2c378469ee671493cfb3bcc9f01ef87b1ee00c2eb0b0000000022512063dcb4ba49077606dd3f7c122c4f4989db046fcc28a01d499aeef1dae2db200200a3e11100000000225120bae32da4c88083dfbb2826e579d34a1cd83febe301bfb44dc45611f972bf659ccef6c5b80000000022512070a3dabdcfce09ec0bc18d24bf890368bb31222f7fed23d1493a2c81e6a8a28a014087b7a82e5a8b67f3900c01ffa5690a42fc528764ac812d7a2c0db3e55aae404a8f5a60a032ea3b8ff8543f2dcf7b39ee48c2c1c0f948ccd742d3b048c107577b9a000000", +"00000030a8db1c39a80dc8af041306cc1381bfd145677ae48f6ce7615e634f92df9acb4daf28f01f8fd4c8562851c3c671c02d0eb0199cfcbe6dabd00ebb7f3d64c8afb9f3100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029c00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009b000000", +"0000003086991a53214c1c271adacb3ee272d049a598fcf247e969a3ace9a44e50150f5e0a181072c386db27ba496b64a2f795696f3434466258698803959b8fdfb51404f3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029d00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009c000000", +"0000003063ea8a959f6d12244b45d1791c739e5bede2708e8f58b8b9deffcd44de8e802ff857a99f1c75c14cec774fdfb0d3df0a49b74df84d7df611619bcd77b37476aef3100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029e00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009d000000", +"0000003086d58b62c36ff1b79ce985e7c44d1d54e9a18ee9c7380d914ca63fcea591dd3512883e9e753b013fe3f2d8b03c725e35b4ebb41411f42bbcf89768e9828df6d2f3100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029f00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009e000000", +"00000030b945d26e39f311f22410d64d43e11c572c0bacafffdcbbf82d89dac6de97a466808ff6404c00a4d0de6512513cc2daf1a733214a7f4285f440c0d54768a1b36af3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a000feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009f000000", +"00000030c54279bf2b5641b7a8034759178b378cab77f035ea9b568c3d23c77403b3570bff275b01b9b7a2e3e2418948b32c22b9545fca127dbff8fee64cecfd02bdf6e0ff100e6affff7f200300000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a100feffffff022c040395000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed994e4557adf13fef1b6c6df17aea6e5016181c456a668d49fe3a5f305d11ce7901200000000000000000000000000000000000000000000000000000000000000000a000000002000000000101e745368c6c4fda9b9134eca91fdf3e10d463c779647037aa2c17f6101490062f0000000000fdffffff0254e5fa02000000001600147907132f32c142950815317e4399dc56e2808fd080f0fa0200000000225120348bdaab8db70bdf0fe70b0366cbd2c378469ee671493cfb3bcc9f01ef87b1ee014051cf689739ecc919b1c1a94892cccf8cefadb86ad88e963ffd7ae6559ff7220191ec9263bd9f4828245f97197e8e4469533d10a5874129bf4014b5624dd22fb800000000", +"00000030e04578850f74bad11d992872c4ffd8412bdd9856d38890ce917364c0aacef6757f94d93d1f042175df29c1f12babddf7b14c251d40e4344806b00bcbe9724333ff100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a200feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a1000000", +"00000030c5505b6ca36a3f05994e66add9759fa7a0fa37d8efeeb28deb7a2adde803b0599c2ed1a53d20d7b795178feb5b0bc21e420969987cc1e2034e7934effb2d444fff100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a300feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a2000000", +"0000003005654f5af001d12380805421c9a8bcf697d1780fdc8748eb0ef3cf43534e2a6cc47a815cdb2c0a37f2a7607d36d1f6c87389e101d6bc8171e6867ae64a4c4a95ff100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a400feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a3000000", +"000000302421897107384f4cf4980cb66626d50f142ab2a2f2e7451c5f0e1dbf4a148a3ebe8a331275762703352353de92448b7c5136a5a148c2efdcb36a836fbe6fe918ff100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a500feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a4000000", +"00000030e7bd66bb173cfc1ab9a0b0fbec4db0625beefc505a0329c159f7e1c66e85e07fdc63cb909c9fa1daaf8db120424fd94748234d0f0187ba5c81eab0b19b08b747ff100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a600feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a5000000", +"0000003076f9ba4e52a578219a4288d2b82f101cd3bf9c6d588aafbe3f572b882d216862a4b939c6303d1e99b98f46880b0a5df0ac3786fe69d9e94b9684fb4ca8a5ae8f00110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a700feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a6000000", +"0000003005037f2ffdab000355145e196d1e4f1fc190f226d05bb0901159eb6ccf2c666e36d3c07804bc526a7698fb93ca20facd4a174762000f380b2ca3548d3a3ffc2400110e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a800feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a7000000", +"000000300a3ede9fe6590e044e5e22c3fb69a3c5e53df229c20a2b94dd269805236e1964c33511b94f2e5eb5fb9f1afbff3b00f0426a066f643a30aca6120f3eb8be0c8800110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a900feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a8000000", +"000000307d813120c4f27dd498b8da7f204c26fcfb502c94127fd88ef1db7688c88bd32cb925a601ba6613f59049d62e542a89c731cb2c622be77ee482818cde559f6db400110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302aa00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a9000000", +"0000003091c85adc1e3b4c53b533c59c06cb1466de4eb9e64aca16f291c1ac50a0b0e44b3bd632ea9f2fc7cc94cb09cc36bfa65346694976f9853870abe4c21f067eecae00110e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ab00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000aa000000", +"00000030ceba3e05c0cc80af461c679bbbcb5f80d1b0d1ba2034c9a8b81e4f6ca483074f58e5cf1b2deb4c12f8851a2dd1e198245f5ee5d7a55208ade34ac60360e9ed7d00110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ac00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ab000000", +"000000307f48f9f4bd29165d27b60e84e2fbebdfc5a0db7425eb51e5a582235d51170f4178dc040b91bcf43971c5481c7260ae8cdbffe41c70b4ea39d31a4640241a2b6901110e6affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ad00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ac000000", +"000000300b66394cba6df59f4be16944a8d01bf050ca22f51052cae7212ee29830e52b1d2d72b3f19f2d522bd4c01e6a20c43161ca0e4bc378b98ad8a33f90ce8ee6edc201110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ae00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ad000000", +"00000030fc07716e36a5e200daca55834c592e022ecd410af2159d5116b027fd9861a570c78034dd7a2a92dc69dec1a49f79a41f1ca3aa51e008a3c70140467ccac2cb4001110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302af00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ae000000", +"00000030750f60b1993dd5ac841ddaf329d278d1ea988d0b2f0a50b3e17e9b31b6c64b46bad2c0960a1eede776f850fd11ea817569d07a06d754b8998e44fefc38b7536901110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b000feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000af000000", +"00000030c29a1d224b50b5c89209c7d916f0e7fad72de9a88fead7f9d48e4698e18f9a45834637eea4373b005441a127cfca038e6c52df894f6c709557e3372b78be06e901110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b100feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b0000000", +"00000030a3ffca59c306c4e1e4f3c2cb5ab96cb44660cbe0457cd00846fbf9c88073b402158756b77e0043ec5825553ac9cd86249db27e51e3eb04fc2cf905e50efbaf0e01110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b200feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b1000000", +"000000301b04872982ad49397a8c6d01ec20a9e4022e608a07343b2a6e2d9c864baf590101ff082e29028c7fe6457903f3c5edf75e5259bdd427d672efed5b14e47f5eb602110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b300feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b2000000", +"000000300a1beecb2cbfb99c0ed4c7420fcfdceeb8c0d26713885ea45825b9a87a836c38969dc8513c20c1fb34c22ad08d57dd277a8ad1e851bee389d6da526c2ae8d5e702110e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b400feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b3000000", +"000000308b42fa755fa49121035c08939341cbff8a429b81c48fee84759dd7a8f6eaa00a07758618581420039216e6840ca689668df66ddda584815e85cd4e94892c05be02110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b500feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b4000000", +"0000003002f237e7d032fe3f5706066428430560c817a9177bebbe17e743ff662264c442a689ad951fcb5c7dc9dcf35de013ccdf72faff80f79b2ef8b446cf4f2ec685f602110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b600feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b5000000", +"0000003026f5cf05c09ada07441ebd3df2f6b1cfcf8e6efde699d06ebddf0db17b48170eb61ddb8b7b6c6b83cb819f29c1bbe9f5e699c45d67872d06b8f397f7ad5f87cb02110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b700feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b6000000", +"00000030b9f3b3740dd9e05afdecad568c0dc0089fd0c073ddf37582cad978a9c5bacd611d52c334166d28655f8d359ad836b53ff00c294397be35810614951c721dcc9602110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b800feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b7000000", +"00000030ed6f465612cb47bc1b0f0b55298d64359288e8ea4f4cb0f2b5f20dba934ae904117497f9ee014f773521edb8bc18f9ec4bdf57dc9badfc988662509966bd734a03110e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b900feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b8000000", +"0000003035bb336c8ad721bacdf4ac3e6b2e65d519a038122c1f3202ba3edaf0dc5e9734139642435de386aa440b2ffdb573bb98cec992f05797018a3ee0b818eb7b856203110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ba00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b9000000", +"00000030da21ed1aa8e129f6a282305e7572b2edb25ec3b6c8a3f1126ac0daa7c4732f1a57ba74d69c85e1dee8342feac97f45659644bddc30224099b19ae274b4a2da5303110e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302bb00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ba000000", +"00000030e0b2af8d69f5fb2f3e6457605926cc304d79c62385eba021742f5344aeb90b194a07c612fb0c6ed62d6c007c3b4755043e798ae0899075c2796773dc9210bf2803110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302bc00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000bb000000", +"000000302001ba0173b7f2865a7bcfd78ae09b5883743bbd39ed79fc46ea667e3e0e8131a540d0f418d609c9cde776e33518b6957f9ae73ff48acd2a01eb6e6409d3062103110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302bd00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000bc000000", +"00000030555412ca2f7fcbaec62795beefcc5c03b8a83d13ee5c55fac4ff5ed2bf832648743844533bf1b2af6383b21359de273540b92c135fdda421a92b4520bdb2646403110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302be00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000bd000000", +"0000003021aad413b02ac80b992290f5c44ad1cd403af92c23a74e9e30c7aa5104eef10342758b8961e60f0ca8d4fea3680f4ac573f6ac6478c4096ad2c1081a9f9b66e504110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302bf00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000be000000", +"000000305d265de4dc6bd166d9e5429686940ec2f2c469e6136d0c7a13f03565e9841d35472431cab600e43dd3b744da6b56709dd9c6311d21c8bce5d452f8845137184c04110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c000feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000bf000000", +"000000304e1e1e596928aac44a068a263823030859e6a30f3fe11652bf2da8aa0b732f7937c93ebc99d7e53794993df4aa6c5b5ca81f2c0d53032adfef3bef16f9982f0604110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c100feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c0000000", +"00000030bc6df3737b42dd109d088ef5898ed10179faec89d1ba94b38cd192c338cd36089fe67454081b0c08d2ff9a2aa873a708a3213754727ac7c4972c25d9b45b249804110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c200feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c1000000", +"000000309380624d711df058952aff0af1b4427134a3849111e70fa15aa86414e1d69f384f75a19d8fb9aebbe36326f3cdc1cec57e357cc5986467794a45f49bbdc70bf304110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c300feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c2000000", +"000000307b581de84f54773af5dd7178f710a01ccb9ab144e91db3a0165a39cfae49ae2dfd67fd16de4d926c6c76268330e664103bed5c19ba93c3333b027b2fc7fff62004110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c400feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c3000000", +"00000030f05121c30144af24ac2c026cb784bce883bdc65748fc3b0f67a27e030cfac16b82ca6668a3879b42c8ade2e237bfd0d3572b9811eb4104d0d8f6f7f712d23ccd05110e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c500feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c4000000", +"0000003073f8786690618560f223f32d0a805d32fc0f1203575dd5e51215f8cafced13435f33ea220110edd2566762b5ed3d5cc8ee4a86f8f3cc3b5dda33c5951544f0c205110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c600feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c5000000", +"000000300ed51fce02fd57091777896eb1b2216f8ec689bd67f37787505fd812dbc61f75e028d8c70d2d753ea0ecbd91975c250b11c9898606856de5fd9704910b83dfb905110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c700feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c6000000", +"00000030415bc5f05df226e2c6b36325c5c10e70d8268c4e59ae03be465aa1ce7ccc8d386494432be49c30a12af3d4d8dad26cf9c545cf8ff33e644515d1be68e2a9f1f105110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c800feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c7000000", +"000000303aa04b95cfe5375101ffcef31279e4c3b7d6c817a9f3933031efc6b0c63aa4783aa7a37e39d55c3454932263c92ccb488543e6881268fcce96eb0df30d688b8d05110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c900feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c8000000", +"0000003089bea591f2a36abc8b9c3a795a476ba072b3b815849aa2b0b1ea45de0831bc5268a5d9eb173c66b07a6107809a098b1fe6b1b93c32dc6902ada2ae7af1b3776305110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ca00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c9000000", +"000000300606230798637839aa25460ec66aa3a62d5fbfb12cda61eeb8c19d7512449e32fabb03b8c364246e80ea5f8f721c5a083e0f941ae4b7e681ea17caf2daf2ca5806110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302cb00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ca000000", +"0000003044247f0e280d232be97a8e07c3e9f4097de339a3bf81d018c2a639b54c6e6825b5a12819c79f70e41bcdeeb274eac663dbe0f2f4278bf78828d85d10416698d206110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302cc00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000cb000000", +"0000003082a05ee73b3c345f74515dd7bc3cdf061835387c261e5dfac8395e01772db903082fd51b06b96e43ab074abbfca5f6f518cd175277189397ada068e0a3577bba06110e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302cd00feffffff0241030395000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed13f11444bf728589721cd0799831733abad56be9a33932cb3e79fa4353dd59bf01200000000000000000000000000000000000000000000000000000000000000000cc00000002000000000101e745368c6c4fda9b9134eca91fdf3e10d463c779647037aa2c17f6101490062f0300000000fdffffff0200e1f505000000001600148239827d894ad1bce050a83b0ac6cfab8b99670e8d0bd0b2000000001600143c4ec2a32cf8472f16242566b2f614e30977bce90140fb86ceba6ec1c3fea6ccf6daef2613a878282b5436699a906eeda64e0d9fe456d3ed15172bbeaf7a381dd4684265610599a98d51c5e58a0ed816101ef1e41bc3cc000000", +"000000305c93f992d6040ecb3e1164cc11d6463fa4eb05d850cead2777a2ea37159b2d5f4b9fdb61be7d374f42b9a21132752eba23eeebb8c0fa6d50cdf55053883c6ab106110e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ce00feffffff0241030395000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed19a31ce10a3dbf46e11da3687a1ccf18782c81a5ae087bdbdcb91718295f72b401200000000000000000000000000000000000000000000000000000000000000000cd00000002000000000101dc17042145bf1a6d8efd801e7bdb43d545ed5875d2bd80e89360cb5b6a7c1d170000000000fdffffff02fd287ae500000000160014a0538caa44b128c31f7d90d357cac16efcce1b6e00e1f505000000001600149316ed6ef4fd7a44a402626a6be44b85ec729fcb01403637f36c8da16b37fa9632ad8a701853e4ff4a4f8058f6eda8b13738af3595dad053296a938cc6ae0cccffbd7079b0f21c16d810264e57f807c6598f4a5ba009cd000000", }; #endif // BITCOIN_TEST_KERNEL_BLOCK_DATA_H diff --git a/src/test/kernel/test_kernel.cpp b/src/test/kernel/test_kernel.cpp index 0489839daca4..e6d215dc5784 100644 --- a/src/test/kernel/test_kernel.cpp +++ b/src/test/kernel/test_kernel.cpp @@ -1102,10 +1102,9 @@ BOOST_AUTO_TEST_CASE(btck_chainman_regtest_tests) for (const auto& data : REGTEST_BLOCK_DATA) { Block block{hex_string_to_byte_vec(data)}; BlockHeader header = block.GetHeader(); - BlockValidationState state{}; - BOOST_CHECK(state.GetBlockValidationResult() == BlockValidationResult::UNSET); - BOOST_CHECK(chainman->ProcessBlockHeader(header, state)); + BlockValidationState state = chainman->ProcessBlockHeader(header); BOOST_CHECK(state.GetValidationMode() == ValidationMode::VALID); + BOOST_CHECK(state.GetBlockValidationResult() == BlockValidationResult::UNSET); BlockTreeEntry entry{*chainman->GetBlockTreeEntry(header.Hash())}; BOOST_CHECK(!chainman->GetChain().Contains(entry)); BlockTreeEntry best_entry{chainman->GetBestEntry()}; @@ -1220,15 +1219,15 @@ BOOST_AUTO_TEST_CASE(btck_chainman_regtest_tests) // Validate coin properties TransactionOutputView output = coin.GetOutput(); uint32_t coin_height = coin.GetConfirmationHeight(); - BOOST_CHECK_EQUAL(coin_height, 205); - BOOST_CHECK_EQUAL(output.Amount(), 100000000); + BOOST_CHECK_EQUAL(coin_height, 143); + BOOST_CHECK_EQUAL(output.Amount(), 3949990974); // Test script pubkey serialization auto script_pubkey = output.GetScriptPubkey(); auto script_pubkey_bytes{script_pubkey.ToBytes()}; - BOOST_CHECK_EQUAL(script_pubkey_bytes.size(), 22); + BOOST_CHECK_EQUAL(script_pubkey_bytes.size(), 34); auto round_trip_script_pubkey{ScriptPubkey(script_pubkey_bytes)}; - BOOST_CHECK_EQUAL(round_trip_script_pubkey.ToBytes().size(), 22); + BOOST_CHECK_EQUAL(round_trip_script_pubkey.ToBytes().size(), 34); for (const auto tx_spent_outputs : block_spent_outputs.TxsSpentOutputs()) { for (const auto coins : tx_spent_outputs.Coins()) { diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index a8a596f5ad2a..a5b123ed4659 100644 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -1089,6 +1089,7 @@ BOOST_AUTO_TEST_CASE(max_standard_legacy_sigops) AddCoins(coins, CTransaction(tx_create_p2pk), 0, false); // The transaction now contains exactly 2500 sigops, the check should pass. + BOOST_CHECK_EQUAL(p2sh_inputs_count * MAX_P2SH_SIGOPS + p2pk_inputs_count * 1, MAX_TX_LEGACY_SIGOPS); BOOST_CHECK(::ValidateInputsStandardness(CTransaction(tx_max_sigops), coins).IsValid()); // Now, add some Segwit inputs. We add one for each defined Segwit output type. The limit diff --git a/src/validation.cpp b/src/validation.cpp index 056b3baa5713..f571ad3d66de 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -1254,7 +1254,9 @@ bool MemPoolAccept::SubmitPackage(const ATMPArgs& args, std::vector& package_state.Invalid(PackageValidationResult::PCKG_MEMPOOL_ERROR, strprintf("BUG! PolicyScriptChecks succeeded but ConsensusScriptChecks failed: %s", ws.m_ptx->GetHash().ToString())); - // Remove the transaction from the mempool. + } + // Remove first failing tx and all subsequent in package + if (!all_submitted) { if (!m_subpackage.m_changeset) m_subpackage.m_changeset = m_pool.GetChangeSet(); m_subpackage.m_changeset->StageRemoval(m_pool.GetIter(ws.m_ptx->GetHash()).value()); } diff --git a/test/sanitizer_suppressions/ubsan b/test/sanitizer_suppressions/ubsan index ad604e6357be..063a8e31231a 100644 --- a/test/sanitizer_suppressions/ubsan +++ b/test/sanitizer_suppressions/ubsan @@ -19,6 +19,7 @@ implicit-integer-sign-change:*/include/c++/ implicit-integer-sign-change:*/new_allocator.h implicit-integer-sign-change:*/qarraydata.h implicit-integer-sign-change:crc32c/ +implicit-integer-sign-change:BytewiseComparatorImpl::FindShortSuccessor implicit-integer-sign-change:minisketch/ implicit-integer-sign-change:secp256k1/ implicit-signed-integer-truncation:*/include/c++/