@layerzerolabs/protocol-stellar-v2 0.2.21 → 0.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +347 -271
- package/.turbo/turbo-lint.log +277 -208
- package/.turbo/turbo-test.log +1700 -1370
- package/Cargo.lock +22 -51
- package/Cargo.toml +6 -1
- package/contracts/common-macros/src/auth.rs +10 -9
- package/contracts/common-macros/src/contract_ttl.rs +1 -4
- package/contracts/common-macros/src/error.rs +1 -3
- package/contracts/common-macros/src/lib.rs +65 -61
- package/contracts/common-macros/src/storage.rs +212 -65
- package/contracts/common-macros/src/tests/auth.rs +75 -6
- package/contracts/common-macros/src/tests/contract_ttl.rs +383 -350
- package/contracts/common-macros/src/tests/error.rs +9 -21
- package/contracts/common-macros/src/tests/lz_contract.rs +80 -0
- package/contracts/common-macros/src/tests/mod.rs +2 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -3
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +28 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +8 -43
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +6 -29
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +31 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +8 -0
- package/contracts/common-macros/src/tests/storage/extract_fields.rs +87 -0
- package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +223 -0
- package/contracts/common-macros/src/tests/storage/gen_args.rs +65 -0
- package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +78 -0
- package/contracts/common-macros/src/tests/storage/gen_key.rs +108 -0
- package/contracts/common-macros/src/tests/storage/gen_params.rs +105 -0
- package/contracts/common-macros/src/tests/{storage.rs → storage/generate_storage.rs} +54 -129
- package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +48 -0
- package/contracts/common-macros/src/tests/storage/mod.rs +16 -0
- package/contracts/common-macros/src/tests/storage/parse_default.rs +164 -0
- package/contracts/common-macros/src/tests/storage/parse_name.rs +159 -0
- package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +124 -0
- package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +174 -0
- package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +412 -0
- package/contracts/common-macros/src/tests/storage/storage_kind.rs +39 -0
- package/contracts/common-macros/src/tests/storage/test_setup.rs +25 -0
- package/contracts/common-macros/src/tests/storage/validate_attrs.rs +138 -0
- package/contracts/common-macros/src/tests/storage/variant_config.rs +226 -0
- package/contracts/common-macros/src/tests/test_helpers.rs +4 -10
- package/contracts/common-macros/src/tests/ttl_configurable.rs +2 -2
- package/contracts/common-macros/src/tests/ttl_extendable.rs +32 -0
- package/contracts/common-macros/src/tests/upgradeable.rs +118 -2
- package/contracts/common-macros/src/ttl_configurable.rs +1 -4
- package/contracts/common-macros/src/upgradeable.rs +21 -3
- package/contracts/endpoint-v2/Cargo.toml +0 -4
- package/contracts/endpoint-v2/src/endpoint_v2.rs +37 -17
- package/contracts/endpoint-v2/src/errors.rs +26 -1
- package/contracts/endpoint-v2/src/interfaces/layerzero_endpoint_v2.rs +1 -1
- package/contracts/endpoint-v2/src/interfaces/message_lib_manager.rs +4 -4
- package/contracts/endpoint-v2/src/interfaces/messaging_composer.rs +2 -2
- package/contracts/endpoint-v2/src/lib.rs +0 -1
- package/contracts/endpoint-v2/src/message_lib_manager.rs +39 -8
- package/contracts/endpoint-v2/src/messaging_channel.rs +36 -4
- package/contracts/endpoint-v2/src/messaging_composer.rs +18 -4
- package/contracts/endpoint-v2/src/storage.rs +9 -1
- package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +2 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +1 -1
- package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +3 -3
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +1 -1
- package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +4 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +7 -2
- package/contracts/endpoint-v2/src/tests/messaging_composer/mod.rs +4 -0
- package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +7 -2
- package/contracts/layerzero-views/src/layerzero_view.rs +0 -1
- package/contracts/layerzero-views/src/tests/mod.rs +1 -0
- package/contracts/layerzero-views/src/tests/types_tests.rs +31 -0
- package/contracts/layerzero-views/src/types.rs +2 -3
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +61 -0
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +97 -0
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +99 -0
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +3 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +5 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +86 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +47 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +77 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +114 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +105 -0
- package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +242 -0
- package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +9 -0
- package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +54 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +13 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +1 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +70 -1
- package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +219 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +41 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +48 -16
- package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +10 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +96 -3
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +4 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +64 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +16 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +305 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +3 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +59 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +88 -0
- package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
- package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +6 -0
- package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +102 -0
- package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +6 -0
- package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +83 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +22 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +6 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +20 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +86 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +45 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +34 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +30 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +39 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +28 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +12 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +49 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +19 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +12 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -8
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +39 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +7 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +13 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +102 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +43 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +38 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +14 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/{minimal_contract.rs → basic.rs} +2 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +28 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +32 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +23 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +21 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +29 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +79 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +43 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +35 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +30 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +29 -0
- package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui_multisig.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +11 -0
- package/contracts/message-libs/blocked-message-lib/Cargo.toml +1 -1
- package/contracts/message-libs/blocked-message-lib/src/lib.rs +4 -1
- package/contracts/message-libs/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +108 -0
- package/contracts/message-libs/blocked-message-lib/src/tests/mod.rs +4 -0
- package/contracts/message-libs/blocked-message-lib/src/tests/setup.rs +40 -0
- package/contracts/message-libs/simple-message-lib/src/lib.rs +1 -1
- package/contracts/message-libs/simple-message-lib/src/tests/mod.rs +2 -0
- package/contracts/message-libs/simple-message-lib/src/tests/setup.rs +124 -0
- package/contracts/message-libs/simple-message-lib/src/tests/simple_message_lib_tests.rs +309 -0
- package/contracts/message-libs/uln-302/src/errors.rs +21 -0
- package/contracts/message-libs/uln-302/src/interfaces/receive_uln.rs +1 -1
- package/contracts/message-libs/uln-302/src/receive_uln.rs +6 -4
- package/contracts/message-libs/uln-302/src/send_uln.rs +15 -6
- package/contracts/message-libs/uln-302/src/storage.rs +5 -5
- package/contracts/message-libs/uln-302/src/tests/uln302/get_config.rs +71 -0
- package/contracts/message-libs/uln-302/src/tests/uln302/mod.rs +1 -0
- package/contracts/message-libs/uln-302/src/uln302.rs +3 -0
- package/contracts/oapps/counter/Cargo.toml +2 -0
- package/contracts/oapps/counter/integration_tests/mod.rs +1 -0
- package/contracts/oapps/counter/integration_tests/setup_sml.rs +6 -4
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +12 -5
- package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +67 -0
- package/contracts/oapps/counter/src/tests/mod.rs +1 -0
- package/contracts/oapps/counter/src/tests/test_u256_ext.rs +48 -0
- package/contracts/oapps/oapp/src/lib.rs +0 -3
- package/contracts/oapps/oapp/src/tests/mod.rs +1 -0
- package/contracts/oapps/oft/integration-tests/setup.rs +2 -3
- package/contracts/oapps/oft/src/lib.rs +3 -0
- package/contracts/oapps/oft/src/tests/extensions/mod.rs +3 -0
- package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +240 -0
- package/contracts/oapps/oft/src/tests/extensions/pausable.rs +141 -0
- package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +447 -0
- package/contracts/oapps/oft/src/tests/mod.rs +2 -0
- package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +180 -0
- package/contracts/oapps/oft/src/tests/oft_types/mod.rs +1 -0
- package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -3
- package/contracts/oapps/oft-core/src/lib.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/mod.rs +1 -1
- package/contracts/oapps/oft-core/src/tests/{test_oft_version.rs → test_oft_version_and_approval.rs} +9 -0
- package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -43
- package/contracts/upgrader/src/tests/test_upgrader.rs +18 -0
- package/contracts/utils/src/auth.rs +2 -2
- package/contracts/utils/src/buffer_reader.rs +61 -10
- package/contracts/utils/src/buffer_writer.rs +35 -20
- package/contracts/utils/src/bytes_ext.rs +1 -2
- package/contracts/utils/src/errors.rs +5 -3
- package/contracts/utils/src/multisig.rs +59 -36
- package/contracts/utils/src/option_ext.rs +3 -3
- package/contracts/utils/src/ownable.rs +12 -6
- package/contracts/utils/src/tests/auth.rs +179 -0
- package/contracts/utils/src/tests/buffer_reader.rs +203 -1
- package/contracts/utils/src/tests/buffer_writer.rs +176 -5
- package/contracts/utils/src/tests/mod.rs +2 -0
- package/contracts/utils/src/tests/multisig.rs +170 -141
- package/contracts/utils/src/tests/option_ext.rs +1 -1
- package/contracts/utils/src/tests/ownable.rs +156 -161
- package/contracts/utils/src/tests/test_helper.rs +21 -1
- package/contracts/utils/src/tests/testing_utils.rs +84 -2
- package/contracts/utils/src/tests/ttl_configurable.rs +66 -86
- package/contracts/utils/src/tests/ttl_extendable.rs +64 -0
- package/contracts/utils/src/tests/upgradeable.rs +115 -6
- package/contracts/utils/src/ttl_configurable.rs +22 -12
- package/contracts/utils/src/ttl_extendable.rs +1 -3
- package/contracts/utils/src/upgradeable.rs +21 -24
- package/contracts/workers/dvn/src/auth.rs +1 -1
- package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
- package/contracts/workers/dvn/src/storage.rs +1 -1
- package/contracts/workers/dvn/src/tests/auth.rs +136 -3
- package/contracts/workers/dvn/src/tests/mod.rs +0 -1
- package/contracts/workers/dvn/src/tests/setup.rs +4 -10
- package/contracts/workers/executor-helper/src/tests/executor_helper.rs +279 -0
- package/contracts/workers/executor-helper/src/tests/setup.rs +106 -1
- package/contracts/workers/worker/src/worker.rs +1 -1
- package/docs/oft-guide.md +5 -5
- package/package.json +5 -7
- package/sdk/.turbo/turbo-test.log +662 -466
- package/sdk/LICENSE +23 -0
- package/sdk/dist/generated/bml.d.ts +101 -106
- package/sdk/dist/generated/bml.js +108 -26
- package/sdk/dist/generated/counter.d.ts +123 -484
- package/sdk/dist/generated/counter.js +103 -25
- package/sdk/dist/generated/dvn.d.ts +141 -699
- package/sdk/dist/generated/dvn.js +106 -28
- package/sdk/dist/generated/dvn_fee_lib.d.ts +31 -248
- package/sdk/dist/generated/dvn_fee_lib.js +27 -24
- package/sdk/dist/generated/endpoint.d.ts +158 -836
- package/sdk/dist/generated/endpoint.js +107 -29
- package/sdk/dist/generated/executor.d.ts +139 -671
- package/sdk/dist/generated/executor.js +106 -28
- package/sdk/dist/generated/executor_fee_lib.d.ts +109 -264
- package/sdk/dist/generated/executor_fee_lib.js +106 -28
- package/sdk/dist/generated/executor_helper.d.ts +95 -92
- package/sdk/dist/generated/executor_helper.js +103 -25
- package/sdk/dist/generated/layerzero_view.d.ts +178 -335
- package/sdk/dist/generated/layerzero_view.js +172 -33
- package/sdk/dist/generated/oft.d.ts +137 -680
- package/sdk/dist/generated/oft.js +103 -25
- package/sdk/dist/generated/price_feed.d.ts +45 -444
- package/sdk/dist/generated/price_feed.js +27 -24
- package/sdk/dist/generated/sml.d.ts +119 -428
- package/sdk/dist/generated/sml.js +103 -25
- package/sdk/dist/generated/treasury.d.ts +109 -288
- package/sdk/dist/generated/treasury.js +103 -25
- package/sdk/dist/generated/uln302.d.ts +190 -527
- package/sdk/dist/generated/uln302.js +170 -31
- package/sdk/dist/generated/upgrader.d.ts +14 -34
- package/sdk/dist/generated/upgrader.js +24 -21
- package/sdk/package.json +3 -4
- package/sdk/test/counter-sml.test.ts +218 -142
- package/sdk/test/counter-uln.test.ts +189 -145
- package/sdk/test/oft-sml.test.ts +173 -156
- package/sdk/test/suites/constants.ts +7 -1
- package/sdk/test/suites/globalSetup.ts +140 -74
- package/sdk/turbo.json +1 -1
- package/tools/ts-bindings-gen/Cargo.toml +4 -4
- package/tools/ts-bindings-gen/src/main.rs +4 -0
- package/turbo.json +3 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +0 -1072
- package/contracts/endpoint-v2/src/constants.rs +0 -52
- package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +0 -20
- package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +0 -15
- package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +0 -16
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +0 -26
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +0 -21
- package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +0 -16
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +0 -15
- package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +0 -19
- package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +0 -15
- package/contracts/message-libs/simple-message-lib/src/test.rs +0 -280
- package/contracts/oapps/oapp/src/macro_tests/mod.rs +0 -1
- package/contracts/workers/dvn/src/tests/multisig/mod.rs +0 -3
- package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +0 -132
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +0 -109
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +0 -106
- /package/contracts/oapps/oapp/src/{macro_tests → tests}/test_macros.rs +0 -0
|
@@ -6,14 +6,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
|
|
|
6
6
|
export * as rpc from '@stellar/stellar-sdk/rpc';
|
|
7
7
|
/**
|
|
8
8
|
* Embedded WASM bytecode (base64-encoded)
|
|
9
|
-
* Size:
|
|
9
|
+
* Size: 60817 bytes (59.39 KB)
|
|
10
10
|
*/
|
|
11
|
-
export declare const WASM_BASE64 = "AGFzbQEAAAABgQIpYAF+AX5gAn5+AX5gA35+fgF+YAR+fn5+AX5gAAF+YAF+AX9gAn9/AX9gBX5+fn5+AGACf38BfmADfn5+AGAEf39/fwBgA39/fwBgBH9/fn4AYAN/f38BfmABfwBgAn9/AGACfn8BfmABfgBgAn5+AX9gAn9+AGAAAGAAAX9gAX8BfmACfn8AYAN/fn4AYAR/fn5+AGAEf39/fwF+YAV/fn9+fgBgA35/fwBgAX8Bf2ACf34Bf2AFfn9/f38AYAZ/fn5+fn8AYAV/fn5+fgBgBn5+fn5+fgF+YAR+fn5+AGACfn4AYAJ+fwF/YAR+fn9/AX5gBH9+fn8AYAN/f38BfwLlASYBdgEzAAABdgExAAEBYgFtAAIBbAE3AAMBbAFfAAIBYgE4AAABYgFlAAEBbAExAAEBYgE0AAQBYQEwAAABYgFfAAABYgFmAAIBeAE3AAQBeAExAAEBbAEyAAEBdgFfAAQBZAFfAAIBYQE2AAABaQFfAAABaQEwAAABYgExAAMBYgEzAAEBdgFnAAEBaQE4AAABaQE3AAABaQE2AAEBYgFqAAEBYgEyAAMBbQE5AAIBbQFhAAMBeAEwAAEBYgEwAAABeAE0AAQBeAEzAAQBeAE4AAQBbAEwAAEBbAE4AAEBeAE1AAADuwG5AQUGBwEICQcKCAsIDAANDg8IDhARCBIOCg8IEwsEFBUWFAQEDhcUDhYOBAsTGAETBBYZDxgaERsOExwTHR4eDhQOBA8EFg8EBA4UFQwLDwQLDBMTHxMOCAALICECAQEBAAEAEgQAAAQABAATCCEEBAUEBAQBABMTFgIWEyEDFQAiDw8RIwQEBAQAJAEUFRgEBAEBExYEDwQEBAQAAQAAEwEiFgglARQmAgEAAhQLEwsPCyAnISEnKCghBAUBcAEBAQUDAQARBiEEfwFBgIDAAAt/AEH0iMAAC38AQaKLwAALfwBBsIvAAAsHoQc1Bm1lbW9yeQIADnNldF9yYXRlX2xpbWl0AIEBEXJhdGVfbGltaXRfY29uZmlnAIIBFHJhdGVfbGltaXRfaW5fZmxpZ2h0AIMBE3JhdGVfbGltaXRfY2FwYWNpdHkAhAETc2V0X2RlZmF1bHRfZmVlX2JwcwCFAQtzZXRfZmVlX2JwcwCGARdzZXRfZmVlX2RlcG9zaXRfYWRkcmVzcwCHAQ9kZWZhdWx0X2ZlZV9icHMAiQEHZmVlX2JwcwCKARFlZmZlY3RpdmVfZmVlX2JwcwCLARNmZWVfZGVwb3NpdF9hZGRyZXNzAIwBCnNldF9wYXVzZWQAjQEJaXNfcGF1c2VkAI4BCXF1b3RlX29mdACPAQV0b2tlbgCTAQ9zaGFyZWRfZGVjaW1hbHMAlAEXZGVjaW1hbF9jb252ZXJzaW9uX3JhdGUAlgERYXBwcm92YWxfcmVxdWlyZWQAlwENbXNnX2luc3BlY3RvcgCYARFzZXRfbXNnX2luc3BlY3RvcgCaAQpxdW90ZV9zZW5kAJ4BBHNlbmQAogENX19jb25zdHJ1Y3RvcgClAQhvZnRfdHlwZQCqAQphdXRob3JpemVyAKsBBW93bmVyAKwBDXBlbmRpbmdfb3duZXIArQESdHJhbnNmZXJfb3duZXJzaGlwAK4BGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyALABEGFjY2VwdF9vd25lcnNoaXAAtAEScmVub3VuY2Vfb3duZXJzaGlwALUBE2V4dGVuZF9pbnN0YW5jZV90dGwAtgEPc2V0X3R0bF9jb25maWdzALcBC3R0bF9jb25maWdzALoBEmZyZWV6ZV90dGxfY29uZmlncwC8ARVpc190dGxfY29uZmlnc19mcm96ZW4AvQEMb2FwcF92ZXJzaW9uAL4BCGVuZHBvaW50AL8BBHBlZXIAwAEIc2V0X3BlZXIAwQEMc2V0X2RlbGVnYXRlAMIBFWFsbG93X2luaXRpYWxpemVfcGF0aADDAQpuZXh0X25vbmNlAMUBCmx6X3JlY2VpdmUAxgEVaXNfY29tcG9zZV9tc2dfc2VuZGVyAM0BEGVuZm9yY2VkX29wdGlvbnMAzgEUc2V0X2VuZm9yY2VkX29wdGlvbnMAzwEPY29tYmluZV9vcHRpb25zANABAV8DAQtvZnRfdmVyc2lvbgC+AQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwq46wG5Aa4BAwF/AX4Cf0ECIQECQCAAQv8Bg0LLAFINACAAEICAgIAAIgJCgICAgBBUDQACQCAAQgQQgYCAgAAiAKdB/wFxIgNBygBGDQAgA0EORw0BCyACQiCIpyEDAkACQAJAIABByIHAgACtQiCGQgSEQoSAgIAgEIKAgIAAQiCIpw4CAAEDC0EBIAMQp4CAgAANAkEAIQQMAQtBASEEQQEgAxCngICAAA0BCyAEIQELIAELGQACQCABIABJDQAgASAAaw8LEOWAgIAAAAuxAQECfyOAgICAAEEwayIFJICAgIAAIAUgAyAEEKmAgIAANwMQIAUgAjcDCCAFIAE3AwBBACEGA0ACQCAGQRhHDQBBACEGAkADQCAGQRhGDQEgBUEYaiAGaiAFIAZqKQMANwMAIAZBCGohBgwACwsgAEKO7uqVvrbe8wAgBUEYakEDEKqAgIAAEKuAgIAAIAVBMGokgICAgAAPCyAFQRhqIAZqQgI3AwAgBkEIaiEGDAALC0MBAX8jgICAgABBEGsiAiSAgICAACACIAAgARDZgICAAAJAIAIoAgBBAUcNAAALIAIpAwghASACQRBqJICAgIAAIAELGgAgAK1CIIZCBIQgAa1CIIZCBIQQloCAgAALIQACQCAAIAEgAhCQgICAAEL/AYNCAlENABDlgICAAAALC7EBAQJ/I4CAgIAAQTBrIgUkgICAgAAgBSADIAQQqYCAgAA3AxAgBSACNwMIIAUgATcDAEEAIQYDQAJAIAZBGEcNAEEAIQYCQANAIAZBGEYNASAFQRhqIAZqIAUgBmopAwA3AwAgBkEIaiEGDAALCyAAQo7u6pW+tt7zACAFQRhqQQMQqoCAgAAQq4CAgAAgBUEwaiSAgICAAA8LIAVBGGogBmpCAjcDACAGQQhqIQYMAAsLJwAgACABEK6AgIAAQgEgAq1CIIZCBIQgA61CIIZCBIQQg4CAgAAaC/oBAgF/An4jgICAgABBMGsiAiSAgICAACACQSBqQcCCwIAAQQkQ0ICAgAACQAJAIAIoAiANACACKQMoIQMCQAJAIAFBAXFFDQAgAkEgakG/gcCAAEEIENCAgIAAIAIoAiANAiACQSBqIAIpAygQ0YCAgAAMAQsgAkEgakG4gcCAAEEHENCAgIAAIAIoAiANASACQSBqIAIpAygQ0YCAgAALIAIpAyghBCACKQMgpw0AIAIgBDcDECACIAM3AwggAiAArUIghkIEhDcDGCACQSBqIAJBCGoQ2ICAgAAgAigCIEUNAQsACyACKQMoIQMgAkEwaiSAgICAACADCycAQQEgABCwgICAAEIBIAGtQiCGQgSEIAKtQiCGQgSEEIOAgIAAGgvHAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQAJAAkAgAA4DAAECAAsgAkGAgMCAAEENENCAgIAAIAIoAgANAyACIAIpAwgQ0YCAgAAMAgsgAkGNgMCAAEEGENCAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ0oCAgAAMAQsgAkGTgMCAAEERENCAgIAAIAIoAgANASACIAIpAwgQ0YCAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsdACAAIAEQsICAgAAgAhCygICAACADEISAgIAAGgtBAQF/I4CAgIAAQRBrIgEkgICAgAAgASAAENSAgIAAAkAgASgCAEEBRw0AAAsgASkDCCEAIAFBEGokgICAgAAgAAvPAQIBfwN+I4CAgIAAQRBrIgMkgICAgAAgA0EEahC0gICAAAJAIAMoAgRBAUcNACADKAIIIAMoAgwQtYCAgAALIAAgARC2gICAACIEEIWAgIAAIQUgAikDACEGAkACQCAFQoCAgIAQVA0AAkAgBhCFgICAAEKAgICAEFoNACAEIQYMAQsgBhCFgICAAEL/////H1gNASACELeAgIAAIAQgBkECELiAgIAAEIaAgIAAIQYLIANBEGokgICAgAAgBg8LQoOAgICA+gEQuYCAgAAACwwAIABBARDVgYCAAAsbACAArUIghkIEhCABrUIghkIEhBCkgICAABoLvQEEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAACACQQRqELSAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC1gICAAAsCQAJAIAAgARC6gICAACIDQgEQu4CAgAAiBEUNACADQgEQh4CAgAAiBUL/AYNCyABSDQEgAkEEahC8gICAACACKAIEQQFHDQAgACABIAIoAgggAigCDBC9gICAAAsQiICAgAAhAyACQRBqJICAgIAAIAUgAyAEGw8LAAu9AQIBfwF+I4CAgIAAQRBrIgEkgICAgAAgAUEANgIIIAEgADYCBAJAAkACQCABQQRqQQIQyIGAgAAiAhCFgICAAEKAgICAcINCgICAgCBSDQAgAUEAOwEOIAIQhYCAgABCgICAgHCDQoCAgIAgUg0BIAIgAUEOakECEN+AgIAAIAEvAQ5BgAZHDQIgAUEQaiSAgICAAA8LQoOAgICAggEQuYCAgAAACxDLgYCAAAALQoOAgICA+gEQuYCAgAAACyUAIAAgAa1CIIZCBIQgABCFgICAAEKAgICAcINCBIQQi4CAgAALCwAgABClgICAABoLigECAX8BfiOAgICAAEEwayICJICAgIAAIAJBIGpBnIXAgABBDxDQgICAAAJAAkAgAigCIA0AIAIgAikDKDcDCCACIAGtQiCGQgSENwMYIAIgAK1CIIZCBIQ3AxAgAkEgaiACQQhqENiAgIAAIAIoAiBFDQELAAsgAikDKCEDIAJBMGokgICAgAAgAwsPACAAIAEQo4CAgABCAVELDAAgAEECENWBgIAACycAIAAgARC6gICAAEIBIAKtQiCGQgSEIAOtQiCGQgSEEIOAgIAAGgvGAQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAhC0gICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtYCAgAALAkACQAJAQQEgARC/gICAACIDQgEQu4CAgABFDQAgAiADQgEQh4CAgAAQwICAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwghAyAAQgE3AwAgACADNwMIIAIQvICAgAAgAigCAEEBRw0AIAEgAigCBCACKAIIEMGAgIAACyACQRBqJICAgIAAC5sBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIABBAXFFDQAgAkHYhMCAAEEEENCAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ0oCAgAAMAQsgAkHQhMCAAEEIENCAgIAAIAIoAgANASACIAIpAwgQ0YCAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsjAAJAIAFC/wGDQsgAUQ0AIABCATcDAA8LIAAgARDggICAAAsnAEEBIAAQv4CAgABCASABrUIghkIEhCACrUIghkIEhBCDgICAABoLhwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAACwJAAkBBACAAEL+AgIAAIgFCAhC7gICAAEUNACABQgIQh4CAgAAiAUL/AYNCzQBRDQEACxDDgICAAAALIABBEGokgICAgAAgAQsJABDlgICAAAALiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAAC0EAIQECQEEAEMWAgIAAIgJCAhC7gICAAEUNAEEBIQECQAJAIAJCAhCHgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQYqLwIAAQQYQ0ICAgAAgASgCAA0DIAEgASkDCBDRgICAAAwCCyABQZCLwIAAQQgQ0ICAgAAgASgCAA0CIAEgASkDCBDRgICAAAwBCyABQZiLwIAAQQoQ0ICAgAAgASgCAA0BIAEgASkDCBDRgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AEMeAgIAAEImAgIAAGgtmAgF/AX4jgICAgABBEGsiACSAgICAACAAELSAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC1gICAAAsgABDJgICAACAAKQMIIQEgACkDAEGKCBDKgICAACAAQRBqJICAgIAAIAELSgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDJgICAACAAKQMIIQEgACkDAEGKCBDKgICAACABEImAgIAAGiAAQRBqJICAgIAAIAELUAEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELWAgIAACyAAEM6AgIAAIAFBEGokgICAgAALKQACQCAAp0EBcUUNAA8LIAFB+ndqrUIghkKDgICA4IABfBC5gICAAAALQgEBfyOAgICAAEEQayIAJICAgIAAIAAQzICAgAACQCAAKQMAUA0AQoOAgICwgQEQuYCAgAAACyAAQRBqJICAgIAAC5MBAgF/An4jgICAgABBEGsiASSAgICAACABQQRqELSAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC1gICAAAtCACECAkACQEEBEM2AgIAAIgNCABC7gICAAEUNACADQgAQh4CAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMAIAFBEGokgICAgAAPCwALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQZ2KwIAAQQwQ0ICAgAAgASgCAA0CIAEgASkDCBDRgICAAAwBCyABQZiKwIAAQQUQ0ICAgAAgASgCAA0BIAEgASkDCBDRgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC00BAn5CACEBAkACQEEAEM2AgIAAIgJCAhC7gICAAEUNACACQgIQh4CAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsAC2ACAX8BfiOAgICAAEEQayIAJICAgIAAIABB/4LAgABBBxDQgICAAAJAAkAgACgCAA0AIAAgACkDCBDRgICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhDSgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQqoCAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEKqAgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC1YBAX8jgICAgABBEGsiAiSAgICAAAJAAkACQCAAp0EBcQ0AQgIhAAwBCyACIAEQ1ICAgAAgAigCAEEBcQ0BIAIpAwghAAsgAkEQaiSAgICAACAADwsACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCSgICAACEBCyAAQgA3AwAgACABNwMIC2ACAX8BfiOAgICAAEEQayIAJICAgIAAIABBmIHAgABBBhDQgICAAAJAAkAgACgCAA0AIAAgACkDCBDRgICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQtnAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQCAAKAIAQQFxDQBCAiECDAELIAEgACkDECAAKQMYIAApAyAQ14CAgAAgASgCAEEBcQ0BIAEpAwghAgsgAUEQaiSAgICAACACDwsAC4UBAQF/I4CAgIAAQRBrIgQkgICAgAAgBCABIAIQ2YCAgABCASECAkAgBCgCAA0AIAQpAwghASAEIAMQ1ICAgAAgBCgCAA0AIAQgBCkDCDcDCCAEIAE3AwAgAEHsgcCAAEECIARBAhDagICAADcDCEIAIQILIAAgAjcDACAEQRBqJICAgIAAC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCqgICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtbAAJAAkAgAUKAgICAgICAwAB8Qv//////////AFYNACABIAGFIAIgAUI/h4WEQgBSDQAgAUIIhkILhCEBDAELIAIgARCZgICAACEBCyAAQgA3AwAgACABNwMICy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQnICAgAALHgACQCAAp0EBcUUNAA8LQoOAgICQ+gEQuYCAgAAAC6cHAwF/BX4DfyOAgICAAEHwAGsiBSSAgICAACACKQMwIgYQhYCAgAAhByAFQRBqEN2AgIAAAkACQAJAIAUpAxAiCCAFKQMYIgmEUA0AIAIpAyAhCgJAIAMgBEKAgICAgICAgIB/hYRCAFINACAIIAmDQn9RDQELIAUgAyAEIAggCRDagYCAAAJAIAUpAwhCAVkNACAFKQMAIQQCQAJAAkAgB0L/////D1YNACAFIAQ3AzggBSAKNwMwQgAhBiAFQgA3AxAgBUEgaiELQQEhDAwBCyAFQRBqIAEQioCAgABBBBC4gICAACIDQgRChICAgMAAEIuAgIAAEN6AgIAAIAUoAhBBAUYNBSAFKQMYIQggBUEANgJYIAggBUHYAGpBBBDfgICAACAFKAJYIgtB////B3ENAQJAAkACQCALQRh2DgIAAQQLIAVB2ABqIANChICAgMAAQoSAgICAARCLgICAABDegICAACAFKAJYQQFGDQcgBSkDYCEIIAVBADYCWCAIIAVB2ABqQQQQ34CAgAAgBSgCWA0DIAVB2ABqIANChICAgIABQoSAgICABRCLgICAABDggICAACAFKAJYQQFHDQEMBwsgBUHYAGogA0KEgICAwABChICAgMAEEIuAgIAAEOCAgIAAIAUoAlhBAUYNBgsgBSkDYCEDIAVBKGohCyAFIAQ3AzggBSAKNwMwIAVCATcDICAFIAM3AxggBUIBNwMQQQIhDAsgCyAGNwMAIAVBEGoQ4YCAgAAhCyAFEIiAgIAANwNYIAVB2ABqIAoQ4oCAgAAgBBDjgICAACENAkACQCALDQAgDSkDACEEDAELIAdC/////w9YDQEgDSADEOKAgIAAIQsgBSgCIEUNASALKQMAIAUpAygQhoCAgAAhBAsgAigCQCAMIAJBKGoQs4CAgAAhAyAFQcgAahDkgICAACAFKAJIQQFHDQMgBSkDUCEKEIyAgIAAIQggBSADNwNoIAUgBDcDYCAFIAg3A1hBACECA0ACQCACQRhHDQBBACECAkADQCACQRhGDQEgBUEQaiACaiAFQdgAaiACaikDADcDACACQQhqIQIMAAsLIApCjvKotY2fuwEgBUEQakEDEKqAgIAAEKuAgIAADAULIAVBEGogAmpCAjcDACACQQhqIQIMAAsLEMOAgIAAAAtCg4CAgLD3AhC5gICAAAALEOWAgIAAAAsgACADNwMIIAAgBDcDACAFQfAAaiSAgICAAA8LAAuQAgICfwR+I4CAgIAAQcAAayIBJICAgIAAIAFBOGoQ5oCAgAACQAJAIAEoAjhBAXFFDQACQCABKAI8IgINAEIAIQNCASEEDAILQgAhA0IKIQVCASEEQgAhBgJAA0ACQCACQQFxRQ0AIAFBADYCNCABQSBqIAQgAyAFIAYgAUE0ahDXgYCAACABKAI0DQIgASkDKCEDIAEpAyAhBCACQQFGDQQLIAFBADYCHCABIAUgBiAFIAYgAUEcahDXgYCAACABKAIcDQEgASkDCCEGIAEpAwAhBSACQQF2IQIMAAsLEOWAgIAAAAtCg4CAgKD3AhC5gICAAAALIAAgBDcDACAAIAM3AwggAUHAAGokgICAgAALNgEBfkIBIQICQCABEIWAgIAAQoCAgIBwg0KAgICAwABSDQAgACABNwMIQgAhAgsgACACNwMACx8AIABCBCABrUIghkIEhCACrUIghkIEhBCUgICAABoLNgEBfkIBIQICQCABEIWAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMACzMBAX9BACEBAkAgACkDAFANACAAKAIQQQFHDQAgACkDGBCFgICAAEL/////D1YhAQsgAQvCAQEEfyOAgICAAEHAAGsiAiSAgICAACACQSBqQRhqIgNCADcDACACQSBqQRBqIgRCADcDACACQSBqQQhqIgVCADcDACACQgA3AyAgASACQSBqQSAQ34CAgAAgAkEYaiADKQMANwMAIAJBEGogBCkDADcDACACQQhqIAUpAwA3AwAgAiACKQMgNwMAIAApAwAhASAAIAEgARCFgICAAEKAgICAcINCBIQgAkEgEMyBgIAANwMAIAJBwABqJICAgIAAIAALpwEBAX8jgICAgABBEGsiAiSAgICAACACIAFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwggACkDACEBIAAgASABEIWAgIAAQoCAgIBwg0IEhCACQQhqQQgQzIGAgAA3AwAgAkEQaiSAgICAACAACwwAIABBAhDogICAAAsJABDRgYCAAAALWAMBfwF+AX9BACEBAkACQEEAEJ2BgIAAIgJCAhC7gICAAEUNACACQgIQh4CAgAAiAkL/AYNCBFINASACQiCIpyEDQQEhAQsgACADNgIEIAAgATYCAA8LAAtOAgF/AX4jgICAgABBEGsiACSAgICAACAAQQEQ6ICAgAACQCAAKAIADQBCg4CAgKD3AhC5gICAAAALIAApAwghASAAQRBqJICAgIAAIAELTQECfkIAIQICQAJAIAEQnYGAgAAiA0ICELuAgIAARQ0AIANCAhCHgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC0gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtYCAgAALEOeAgIAAIQEgAEEQaiSAgICAACABC5MBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAELCAgIAAQgEQu4CAgABFDQAgARC8gICAAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBCvgICAAAsgASAAEOuAgIAAAkAgASgCAEUNACABKQMIIQIMAgsQw4CAgAAACxDsgICAACECCyABQRBqJICAgIAAIAILnwECAX8BfiOAgICAAEEQayICJICAgIAAAkACQAJAQQEgARCwgICAACIDQgEQu4CAgABFDQAgAiADQgEQh4CAgAAQ94CAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwgh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ACACIAAgARDSgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKqAgIAAIQAgAUEQaiSAgICAACAAC/EBAgF/BH4jgICAgABB4ABrIgMkgICAgAAgAxC0gICAAAJAIAMoAgBBAUcNACADKAIEIAMoAggQtYCAgAALIAMgASACEPKAgIAAAkACQAJAIAMoAgBBAXENAEL///////////8AIQRCfyEFDAELIAMpAxAhBiADKQMYIQQgA0HQAGogA0EQahDzgICAACAEIAMpA1giBYUgBCAEIAV9IAYgAykDUCIHVK19IgWFg0J/Vw0BIAVCACAFQgBVGyEEQgAgBiAHfSAFQgBTGyEFCyAAIAU3AwAgACAENwMIIANB4ABqJICAgIAADwsQ5YCAgAAAC6IDAgF/BX4jgICAgABBwABrIgYkgICAgAAQ74CAgAAgBkEwahDdgICAACAGKQM4IQcgBikDMCEIAkACQAJAAkACQCAFEOqAgIAAIglQDQBBAiAGELCAgIAAQgIQu4CAgABFDQIgBkEANgIsIAZBEGogASACIAlCACAGQSxqENeBgIAAIAYoAiwNAyAGKQMQIglCj84AfCIKQp6cAVYgBikDGCILIAogCVStfCIKQgBSIApQGw0BCyAGQTBqIAEgAiAIIAcQgIGAgAAgBikDMCIIIQEgBikDOCIHIQIMAwsgBiAJIAtCkM4AQgAQ2oGAgAAgAiAGKQMIIgmFIAIgAiAJfSABIAYpAwAiCVStfSIKhYNCAFMNASAGQTBqIAEgCX0gCiAIIAcQgIGAgAAgBikDOCEHIAYpAzAhCAwCC0KDgICA0IMDELmAgIAAAAsQ5YCAgAAACwJAIAggA1QgByAEUyAHIARRG0UNAEKDgICAwPcCELmAgIAAAAsgACAINwMQIAAgATcDACAAIAc3AxggACACNwMIIAZBwABqJICAgIAAC60BAQF/I4CAgIAAQTBrIgUkgICAgAACQAJAIAMgBIRQDQACQCABIAJCgICAgICAgICAf4WEQgBSDQAgAyAEg0J/UQ0BCyAFQSBqIAEgAiADIAQQ2oGAgAAgBUEANgIcIAUgBSkDICAFKQMoIAMgBCAFQRxqENeBgIAAIAUoAhxFDQELEOWAgIAAAAsgBSkDCCEEIAAgBSkDADcDACAAIAQ3AwggBUEwaiSAgICAAAveBAMCfwJ+A38jgICAgABB0AFrIgMkgICAgAACQAJAAkACQAJAIAAQpoCAgABB/wFxIgRBAkYNACABQv8Bg0IEUg0AAkACQCACQgJSDQBCACEFDAELIAMgAhD4gICAACADKAIAQQFxDQEgAykDGCECIAMpAxAhBiADKQMgIQBCASEFCyABQiCIpyEHEMaAgIAAIAMQtICAgAACQCADKAIAQQFHDQAgAygCBCADKAIIELWAgIAACyADIAQgBxDygICAACAFpyEIAkACQCADKAIAIglBAXFFDQAgCEEBcUUNACADKQMQIAaFIAMpAxggAoWEQgBSDQEgAykDICAAUg0BDAYLIAkgCHJBAXFFDQULIAhBAXFFDQEgAkIAUw0CIABCAFENAgJAAkAgCUEBcUUNACADQdAAaiADQRBqIghBwAAQ3YGAgAAaIANB8ABqIAgQ84CAgAAQ9ICAgAAhAQwBCxD0gICAACEBIANCADcDeCADQgA3A3ALIAMgBjcDUCADIAA3A2AgAyABNwOAASADIAI3A1ggBCAHIANB0ABqEPWAgIAAIAMgAjcDqAEgAyAGNwOgASADQgA3A5gBIAMgBTcDkAEgAyAHNgLAASADIAQ6AMQBIAMgADcDsAEgA0GQAWoQ+4CAgAAMAwsACyAHIAQQroCAgABCARCOgICAABogA0IANwOYASADQgA3A5ABIAMgBzYCwAEgAyAEOgDEASADQZABahD7gICAAAwBC0KDgICAsIYDELmAgIAAAAsgA0HQAWokgICAgABCAg8LQoOAgIDAhgMQuYCAgAAAC9YBAQN/I4CAgIAAQYABayICJICAgIAAAkAgABCmgICAAEH/AXEiA0ECRg0AIAFC/wGDQgRSDQAgAUIgiKchBCACQTBqELSAgIAAAkAgAigCMEEBRw0AIAIoAjQgAigCOBC1gICAAAsgAkEwaiADIAQQ8oCAgAACQAJAIAIoAjBBAXENAEIAIQEMAQsgAiACKQNINwMYIAIgAikDQDcDECACIAIpA1A3AyBCASEBCyACIAE3AwAgAkIANwMIIAIQ1oCAgAAhASACQYABaiSAgICAACABDwsAC8QBAQN/I4CAgIAAQfAAayICJICAgIAAAkAgABCmgICAAEH/AXEiA0ECRg0AIAFC/wGDQgRSDQAgAUIgiKchBCACELSAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC1gICAAAsgAiADIAQQ8oCAgABCACEBQgAhAAJAIAIoAgBBAXFFDQAgAkHQAGpBEGogAkEQahDzgICAACACKQNoIQAgAikDYCEBCyABIAAQqYCAgAAhASACQfAAaiSAgICAACABDwsAC2cBAn8jgICAgABBEGsiAiSAgICAAAJAIAAQpoCAgABB/wFxIgNBAkYNACABQv8Bg0IEUg0AIAIgAyABQiCIpxD+gICAACACKQMAIAIpAwgQqYCAgAAhASACQRBqJICAgIAAIAEPCwAL8wECAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABD3gICAAAJAAkACQCABKAIAQQFGDQAgASkDCCEAEMaAgIAAIAEQtICAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELWAgIAACyAAQpHOAFoNARDsgICAACAAUQ0CQQAgASAAQgIQsYCAgABBpIDAgABBExD8gICAABD9gICAACECIAEgABCygICAADcDACACQcCAwIAAQQEgAUEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDAgwMQuYCAgAAAC0KDgICA4IMDELmAgIAAAAu1AwQBfwF+A38BfiOAgICAAEEgayICJICAgIAAAkACQAJAAkACQCAAQv8Bg0IEUg0AAkACQCABQgJSDQBCACEDDAELIAJBEGogARD3gICAACACKAIQQQFGDQEgAikDGCEBQgEhAwsgAEIgiKchBBDGgICAACACQRBqELSAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC1gICAAAsgAiAEEOuAgIAAIAOnIQUCQAJAIAIoAgAiBkEBRw0AIAVFDQAgAikDCCABUg0BDAYLIAYgBXJBAXFFDQULIAVFDQEgAUKRzgBaDQJBASAEIAFCARCxgICAACACQRBqELyAgIAAIAIoAhBBAUcNAyAEIAIoAhQgAigCGBCvgICAAAwDCwALQQEgBBCwgICAAEIBEI6AgIAAGgwBC0KDgICAwIMDELmAgIAAAAtByIDAgABBCxD8gICAABD9gICAACEHIAIgAyABENOAgIAANwMYIAIgAEKEgICAcIM3AxAgB0HUgMCAAEECIAJBEGpBAhDagICAABCNgICAABogAkEgaiSAgICAAEICDwtCg4CAgOCDAxC5gICAAAAL4wECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQCAAQv8Bg0LNAFINABDGgICAACABELSAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC1gICAAAsgARDugICAAAJAIAEoAgBBAUcNACABKQMIIAAQiIGAgAANAgtBAiABELCAgIAAIABCAhCEgICAABpB5IDAgABBFxD8gICAABD9gICAACECIAEgADcDACACQZCBwIAAQQEgAUEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDggwMQuYCAgAAACw0AIAAgARCegICAAFALWgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC0gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtYCAgAALEOyAgIAAELKAgIAAIQEgAEEQaiSAgICAACABC3cBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgARC0gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtYCAgAALIAEgAEIgiKcQ64CAgAAgASkDACABKQMIENOAgIAAIQAgAUEQaiSAgICAACAADwsAC24BAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgAUEEahC0gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtYCAgAALIABCIIinEOqAgIAAELKAgIAAIQAgAUEQaiSAgICAACAADwsAC1QCAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAACxDtgICAACEBIABBEGokgICAgAAgAQvfAQICfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AEMaAgIAAIAEQtICAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELWAgIAACxDwgICAACACc0EBcUUNARDVgICAACACrSIAQgIQhICAgAAaQZ6BwIAAQQoQ/ICAgAAQ/YCA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gICAECEDC0GAyx5BgNIfEKaBgIAAQYDLHkGA0h8Qp4GAgABBABDNgICAAEICELuAgIAADQEgARCogYCAAEEAIAYQv4CAgAAgAkICEISAgIAAGiACEIyAgIAAIAcgCBCpgYCAACAAEJWBgIAAIgkgBEIgiKciCkkNAkEBIAAQnIGAgABBABCdgYCAACAJIAprrUIghkIEhEICEISAgIAAGhDPgICAACADQgIQhICAgAAaIAZBEGokgICAgABCAg8LAAtCg4CAgJCBARC5gICAAAALQoOAgICQ9wIQuYCAgAAACw4AQQEgACABENaBgIAACw4AQQIgACABENaBgIAACw4AQQAgAEICELOBgIAAC7YBAwF/AX4BfyOAgICAAEEgayIEJICAgIAAQbiEwIAAQQwQ/ICAgAAhBSAEIAIgAxCZgYCAADcDCCAEIAE3AwBBACEGA0ACQCAGQRBHDQBBACEGAkADQCAGQRBGDQEgBEEQaiAGaiAEIAZqKQMANwMAIAZBCGohBgwACwsgACAFIARBEGpBAhCqgICAABCrgICAACAEQSBqJICAgIAADwsgBEEQaiAGakICNwMAIAZBCGohBgwACwsRAEKEgICAEEIEEKOBgIAAGwsIABDHgICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEMmAgIAAIAApAwAgACkDCBCZgYCAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEMyAgIAAIAApAwAgACkDCBCZgYCAACEBIABBEGokgICAgAAgAQt9AgF/AX4jgICAgABBEGsiASSAgICAAAJAIABC/wGDQs0AUg0AIAFBBGoQtICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELWAgIAACxDIgICAACECEMuAgIAAIAAQqIGAgAAgAiAAEK+BgIAAIAFBEGokgICAgABCAg8LAAthAgF/AX4jgICAgABBEGsiAiSAgICAAEGRicCAAEEVEPyAgIAAEP2AgIAAIQMgAiAANwMIIAIgATcDACADQbiJwIAAQQIgAkECENqAgIAAEI2AgIAAGiACQRBqJICAgIAAC9wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJBCGoQtICAgAACQCACKAIIQQFHDQAgAigCDCACKAIQELWAgIAACxDIgICAACEDAkACQCABQv////8PVg0AIAJBCGoQzICAgAAgAikDECEBIAIpAwhBiAgQyoCAgAAgASAAEIiBgIAARQ0DELGBgIAADAELELKBgIAAIAFCIIinSQ0DQQEgAEIAELOBgIAAQQEQzYCAgABCACABQoSAgIBwgyIBIAEQg4CAgAAaQciJwIAAQRYQ/ICAgAAQ/YCAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQeSJwIAAQQMgAkEIakEDENqAgIAAEI2AgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABELmAgIAAAAtCg4CAgPCAARC5gICAAAALEwBBARDNgICAAEIAEI6AgIAAGgszAQJ+EKGAgIAAIQACQBCigICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxDlgICAAAALFQAgABDNgICAACABIAIQhICAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAELSAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC1gICAAAsgABDMgICAACAAKQMIIQEgACkDAEGICBDKgICAACABEImAgIAAGiAAEM6AgIAAAkAgACgCAA0AEMOAgIAAAAsgACkDCCECELGBgIAAIAEQqIGAgAAgAiABEK+BgIAAIABBEGokgICAgABCAgugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABC0gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtYCAgAALEMiAgIAAIQEQy4CAgABBABDNgICAAEICEI6AgIAAGkH8icCAAEETEPyAgIAAEP2AgIAAIQIgACABNwMAIAJBkIrAgABBASAAQQEQ2oCAgAAQjYCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxC1gICAAEICDwsAC94EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABC4gYCAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABELiBgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQtICAgAACQCACKAIoQQFHDQAgAigCLCACKAIwELWAgIAACxDGgICAAAJAAkACQBDEgICAAA0AELKBgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AELmAgIAAAAtCg4CAgMD/ABC5gICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEKaBgIAADAELQQEQxYCAgABCAhCOgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEKeBgIAADAELQQIQxYCAgABCAhCOgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHEisCAAEEPEPyAgIAAEP2AgIAAIQAgAkEoahC5gYCAACEBIAIgAkE0ahC5gYCAADcDSCACIAE3A0AgAEHoisCAAEECIAJBwABqQQIQ2oCAgAAQjYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABENOBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELuBgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQtICAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQELWAgIAACyAAQQhqELSAgIAAIABBFGoiARC8gICAACAAQTBqIABBCGoQu4GAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABELuBgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhCqgICAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ1IGAgAAPCyAAQgA3AwAgAEICNwMIC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahC0gICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQtYCAgAALEMaAgIAAAkAQxICAgABFDQBCg4CAgOD/ABC5gICAAAALQQAQxYCAgABCAUICEISAgIAAGkH4isCAAEESEPyAgIAAEP2AgIAAQQRBACAAQRhqQQAQ2oCAgAAQjYCAgAAaIABBIGokgICAgABCAgsJABDEgICAAK0LogECAX8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQtICAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELWAgIAACyAAQRBqQgEQ1ICAgAACQAJAIAAoAhANACAAKQMYIQEgAEEQakIBENSAgIAAIAAoAhBBAUcNAQsACyAAIAApAxg3AwggACABNwMAIABBAhCqgICAACEBIABBIGokgICAgAAgAQsIABDCgICAAAtRAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0IEUQ0AAAsgASAAQiCIpxC+gICAACABKQMAIAEpAwgQmYGAgAAhACABQRBqJICAgIAAIAALugIEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQgRSDQACQAJAIAFCAlINAEIAIQEMAQsgAiABEMCAgIAAIAIoAgBBAUYNASACKQMIIQNCASEBCxDGgICAACACELSAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC1gICAAAtBASAAQiCIpyIEEL+AgIAAIQUCQAJAIAFQDQAgBSADQgEQhICAgAAaIAIQvICAgAAgAigCAEEBRw0BIAQgAigCBCACKAIIEMGAgIAADAELIAVCARCOgICAABoLQo7yqrzw1qrrABD9gICAACEFIAIgASADEJmBgIAANwMIIAIgAEKEgICAcIM3AwAgBUHkhMCAAEECIAJBAhDagICAABCNgICAABogAkEQaiSAgICAAEICDwsAC4cBAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQm4GAgAACQCABKQMAIgBCAlENACABKQMIIQIQxoCAgAAgARC0gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtYCAgAALEMKAgIAAEIyAgIAAIAAgAhCpgYCAACABQRBqJICAgIAAQgIPCwALmwECAn8BfiOAgICAAEEgayIBJICAgIAAIAEg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fCEGDAsLIAIgBHwgASADfCIEIAFUrXwgCn0gBCANVK19IQIgBCANfSEBIAYgDCALfEJ/fCIMIAtUrXwhBgwKCyAFQYABaiAMIAqAIgxCACAIIAlrIggQ2IGAgAAgBUHwAGogAyAEIAxCABDegYCAACAFQeAAaiAFKQNwIAUpA3ggCBDYgYCAACAFKQOIASAGfCAFKQOAASIGIAt8IgsgBlStfCEGIAcgAiAFKQNofSABIAUpA2AiDFStfSICeSABIAx9IgF5QsAAfCACQgBSG6ciCE0NASAIQT9NDQALIANQRQ0BDAILIAEgA1QiCCACIARUIAIgBFEbRQ0CIAshDAwHCyABIAOAIQILIAEgA4IhASAGIAsgAnwiDCALVK18IQZCACECDAULIAIgBH0gCK19IQIgASADfSEBIAYgC0IBfCIMUK18IQYMBAsgAiAEQgAgASADWiACIARaIAIgBFEbIggbfSABIANCACAIGyIEVK19IQIgASAEfSEBIAitIQwMAwsgASABIAOAIgwgA359IQFCACEGQgAhAgwCCyACIAIgA0L/////D4MiBIAiBiADfn1CIIYgAUIgiCIMhCAEgCICQiCGIAwgAiADfn1CIIYgAUL/////D4OEIgEgBIAiA4QhDCABIAMgBH59IQEgAkIgiCAGhCEGQgAhAgwBCyAFQTBqIAMgBEHAACAIayIIENuBgIAAIAVBIGogASACIAgQ24GAgABCACEGIAVBEGogA0IAIAUpAyAgBSkDMIAiDEIAEN6BgIAAIAUgBEIAIAxCABDegYCAACAFKQMQIQoCQAJAIAUpAwggBSkDGCINIAUpAwB8IgsgDVStfEIAUg0AIAEgClQiCCACIAtUIAIgC1EbRQ0BCyAEIAJ8IAMgAXwiASADVK18IAt9IAEgClStfSECIAxCf3whDCABIAp9IQEMAQsgAiALfSAIrX0hAiABIAp9IQFCACEGCyAAIAE3AxAgACAMNwMAIAAgAjcDGCAAIAY3AwggBUGwAWokgICAgAALoQEBAn8jgICAgABBIGsiBSSAgICAACAFQgAgAX0gASACQgBTIgYbQgAgAiABQgBSrXx9IAIgBhtCACADfSADIARCAFMiBhtCACAEIANCAFKtfH0gBCAGGxDZgYCAACAFKQMIIQMgAEIAIAUpAwAiAX0gASAEIAKFQgBT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dGVzZW5kX2NvbXBvc2VFbmRwb2ludFBlZXJlaWRwZWVyAFwCEAADAAAAXwIQAAQAAABtc2dfdHlwZW9wdGlvbnMAXAIQAAMAAAB0AhAACAAAAHwCEAAHAAAARW5mb3JjZWRPcHRpb25zZW5mb3JjZWRfb3B0aW9uX3NldGVuZm9yY2VkX29wdGlvbl9wYXJhbXO+AhAAFgAAAGFtb3VudF9yZWNlaXZlZF9sZGFtb3VudF9zZW50X2xkZHN0X2VpZGZyb21ndWlkANwCEAASAAAA7gIQAA4AAAD8AhAABwAAAAMDEAAEAAAABwMQAAQAAABvZnRfcmVjZWl2ZWRzcmNfZWlkdG8AAADcAhAAEgAAAAcDEAAEAAAAQAMQAAcAAABHAxAAAgAAAG1zZ19pbnNwZWN0b3Jfc2V0aW5zcGVjdG9yAAB9AxAACQAAAERlY2ltYWxzRGlmZlRva2VuTXNnSW5zcGVjdG9yYW1vdW50X2xkY29tcG9zZV9tc2dleHRyYV9vcHRpb25zbWluX2Ftb3VudF9sZG9mdF9jbWQAAK0DEAAJAAAAtgMQAAsAAAD8AhAABwAAAMEDEAANAAAAzgMQAA0AAADbAxAABwAAAEcDEAACAAAAbWF4X2Ftb3VudF9sZAAAABwEEAANAAAAzgMQAA0AAADcAhAAEgAAAO4CEAAOAAAAZGVzY3JpcHRpb25mZWVfYW1vdW50X2xkTAQQAAsAAABXBBAADQAAAAAAABIAAAAAAAAAAAAAABIAAAABdGhyZXNob2xkb3duZXJzaGlwX3RyYW5zZmVycmVkbmV3X293bmVyb2xkX293bmVypgQQAAkAAACvBBAACQAAAG93bmVyc2hpcF90cmFuc2ZlcnJpbmd0dGwAAACmBBAACQAAAK8EEAAJAAAA3gQQAAMAAABvd25lcnNoaXBfcmVub3VuY2VkAK8EEAAJAAAAT3duZXJQZW5kaW5nT3duZXJleHRlbmRfdG8AACkFEAAJAAAAiAQQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAABTBRAACAAAAFsFEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50AJPXAQ5jb250cmFjdHNwZWN2MAAAAAIAAAAAAAAAAAAAAA1PRlRGZWVTdG9yYWdlAAAAAAAAAwAAAAAAAAAAAAAADURlZmF1bHRGZWVCcHMAAAAAAAABAAAAAAAAAAZGZWVCcHMAAAAAAAEAAAAEAAAAAAAAAAAAAAARRmVlRGVwb3NpdEFkZHJlc3MAAAAAAAAEAAAAAAAAAAAAAAALT0ZURmVlRXJyb3IAAAAAAwAAAAAAAAANSW52YWxpZEZlZUJwcwAAAAAADBwAAAAAAAAAGEludmFsaWRGZWVEZXBvc2l0QWRkcmVzcwAADB0AAAAAAAAACVNhbWVWYWx1ZQAAAAAADB4AAAAFAAAAAAAAAAAAAAAQRGVmYXVsdEZlZUJwc1NldAAAAAEAAAATZGVmYXVsdF9mZWVfYnBzX3NldAAAAAABAAAAAAAAAAdmZWVfYnBzAAAAAAYAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAlGZWVCcHNTZXQAAAAAAAABAAAAC2ZlZV9icHNfc2V0AAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAA7VGhlIGZlZSByYXRlIGluIGJhc2lzIHBvaW50cywgb3IgTm9uZSBpZiB0aGUgZmVlIGlzIHJlbW92ZWQAAAAAB2ZlZV9icHMAAAAD6AAAAAYAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABRGZWVEZXBvc2l0QWRkcmVzc1NldAAAAAEAAAAXZmVlX2RlcG9zaXRfYWRkcmVzc19zZXQAAAAAAQAAAAAAAAATZmVlX2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAST0ZUUGF1c2FibGVTdG9yYWdlAAAAAAABAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAEAAAAAAAAAAAAAAAQT0ZUUGF1c2FibGVFcnJvcgAAAAIAAAAAAAAABlBhdXNlZAAAAAAMJgAAAAAAAAAUUGF1c2VTdGF0dXNVbmNoYW5nZWQAAAwnAAAABQAAAAAAAAAAAAAACVBhdXNlZFNldAAAAAAAAAEAAAAKcGF1c2VkX3NldAAAAAAAAQAAAAAAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAJRGlyZWN0aW9uAAAAAAAAAgAAAAAAAAAAAAAAB0luYm91bmQAAAAAAAAAAAAAAAAIT3V0Ym91bmQAAAABAAAAOUNvbmZpZ3VyYXRpb24gZm9yIHJhdGUgbGltaXRpbmcsIHVzZWQgYXMgaW5wdXQgcGFyYW1ldGVyLgAAAAAAAAAAAAAPUmF0ZUxpbWl0Q29uZmlnAAAAAAIAAAAAAAAABWxpbWl0AAAAAAAACwAAAAAAAAAOd2luZG93X3NlY29uZHMAAAAAAAYAAAAEAAAAAAAAAAAAAAAOUmF0ZUxpbWl0RXJyb3IAAAAAAAUAAAAAAAAAEUV4Y2VlZGVkUmF0ZUxpbWl0AAAAAAAMMAAAAAAAAAANSW52YWxpZEFtb3VudAAAAAAADDEAAAAAAAAAEEludmFsaWRUaW1lc3RhbXAAAAwyAAAAAAAAAA1JbnZhbGlkQ29uZmlnAAAAAAAMMwAAAAAAAAAJU2FtZVZhbHVlAAAAAAAMNAAAAAUAAAAAAAAAAAAAAAxSYXRlTGltaXRTZXQAAAABAAAADnJhdGVfbGltaXRfc2V0AAAAAAADAAAAAAAAAAlkaXJlY3Rpb24AAAAAAAfQAAAACURpcmVjdGlvbgAAAAAAAAAAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAEJUaGUgcmF0ZSBsaW1pdCBjb25maWd1cmF0aW9uLCBvciBOb25lIGlmIHRoZSByYXRlIGxpbWl0IGlzIHJlbW92ZWQAAAAAAAZjb25maWcAAAAAA+gAAAfQAAAAD1JhdGVMaW1pdENvbmZpZwAAAAAAAAAAAgAAAAMAAAAeVGhlIHR5cGUgb2YgT0ZUIG9wZXJhdGlvbiBtb2RlAAAAAAAAAAAAB09mdFR5cGUAAAAAAgAAACZMb2NrIHRva2VucyBvbiBzZW5kLCB1bmxvY2sgb24gcmVjZWl2ZQAAAAAACkxvY2tVbmxvY2sAAAAAAAAAAAAkQnVybiB0b2tlbnMgb24gc2VuZCwgbWludCBvbiByZWNlaXZlAAAACE1pbnRCdXJuAAAAAQAAAAAAAADqU2V0cyBvciByZW1vdmVzIGEgcmF0ZSBsaW1pdCBmb3IgYSBzcGVjaWZpYyBkaXJlY3Rpb24gYW5kIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZGlyZWN0aW9uYCAtIFRoZSBkaXJlY3Rpb24gKEluYm91bmQgb3IgT3V0Ym91bmQpCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgY29uZmlnYCAtIFRoZSByYXRlIGxpbWl0IGNvbmZpZ3VyYXRpb24sIG9yIE5vbmUgdG8gcmVtb3ZlIHRoZSByYXRlIGxpbWl0AAAAAAAOc2V0X3JhdGVfbGltaXQAAAAAAAMAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAANlaWQAAAAABAAAAAAAAAAGY29uZmlnAAAAAAPoAAAH0AAAAA9SYXRlTGltaXRDb25maWcAAAAAAAAAAAAAAABvUmV0dXJucyB0aGUgcmF0ZSBsaW1pdCBjb25maWd1cmF0aW9uIGZvciBhIGRpcmVjdGlvbiBhbmQgZW5kcG9pbnQuClJldHVybnMgTm9uZSBpZiBubyByYXRlIGxpbWl0IGlzIGNvbmZpZ3VyZWQuAAAAABFyYXRlX2xpbWl0X2NvbmZpZwAAAAAAAAIAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAH0AAAAA9SYXRlTGltaXRDb25maWcAAAAAAAAAAEJSZXR1cm5zIHRoZSBjdXJyZW50IGluLWZsaWdodCBhbW91bnQgZm9yIGEgZGlyZWN0aW9uIGFuZCBlbmRwb2ludC4AAAAAABRyYXRlX2xpbWl0X2luX2ZsaWdodAAAAAIAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAANlaWQAAAAABAAAAAEAAAALAAAAAAAAAG5SZXR1cm5zIHRoZSBhdmFpbGFibGUgY2FwYWNpdHkgZm9yIGEgZGlyZWN0aW9uIGFuZCBlbmRwb2ludC4KUmV0dXJucyBpMTI4OjpNQVggaWYgbm8gcmF0ZSBsaW1pdCBpcyBjb25maWd1cmVkLgAAAAAAE3JhdGVfbGltaXRfY2FwYWNpdHkAAAAAAgAAAAAAAAAJZGlyZWN0aW9uAAAAAAAH0AAAAAlEaXJlY3Rpb24AAAAAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAsAAAAAAAAAKlNldHMgdGhlIGRlZmF1bHQgZmVlIHJhdGUgaW4gYmFzaXMgcG9pbnRzLgAAAAAAE3NldF9kZWZhdWx0X2ZlZV9icHMAAAAAAQAAAAAAAAAPZGVmYXVsdF9mZWVfYnBzAAAAAAYAAAAAAAAAAAAAAMdTZXRzIG9yIHJlbW92ZXMgdGhlIGZlZSByYXRlIGZvciBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZHN0X2VpZGAgLSBUaGUgZGVzdGluYXRpb24gZW5kcG9pbnQgSUQKKiBgZmVlX2Jwc2AgLSBUaGUgZmVlIHJhdGUgKDAtMTAsMDAwKSwgb3IgTm9uZSB0byByZW1vdmUgdGhlIGZlZSBjb25maWd1cmF0aW9uAAAAAAtzZXRfZmVlX2JwcwAAAAACAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAAB2ZlZV9icHMAAAAD6AAAAAYAAAAAAAAAAAAAADhTZXRzIHRoZSBhZGRyZXNzIHdoZXJlIGNvbGxlY3RlZCBmZWVzIHdpbGwgYmUgZGVwb3NpdGVkLgAAABdzZXRfZmVlX2RlcG9zaXRfYWRkcmVzcwAAAAABAAAAAAAAABNmZWVfZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAC1SZXR1cm5zIHRoZSBkZWZhdWx0IGZlZSByYXRlIGluIGJhc2lzIHBvaW50cy4AAAAAAAAPZGVmYXVsdF9mZWVfYnBzAAAAAAAAAAABAAAABgAAAAAAAAA4UmV0dXJucyB0aGUgZmVlIHJhdGUgZm9yIGEgc3BlY2lmaWMgZGVzdGluYXRpb24sIGlmIHNldC4AAAAHZmVlX2JwcwAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAAAYAAAAAAAAAU1JldHVybnMgdGhlIGVmZmVjdGl2ZSBmZWUgcmF0ZSBmb3IgYSBkZXN0aW5hdGlvbiAoZGVzdGluYXRpb24tc3BlY2lmaWMgb3IgZGVmYXVsdCkuAAAAABFlZmZlY3RpdmVfZmVlX2JwcwAAAAAAAAEAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAAGAAAAAAAAACBSZXR1cm5zIHRoZSBmZWUgZGVwb3NpdCBhZGRyZXNzLgAAABNmZWVfZGVwb3NpdF9hZGRyZXNzAAAAAAAAAAABAAAAEwAAAAAAAACzU2V0cyB0aGUgcGF1c2VkIHN0YXRlIG9mIHRoZSBPRlQuCgpXaGVuIHBhdXNlZCwgdGhlIE9GVCB3aWxsIHJlamVjdCBuZXcgc2VuZC9yZWNlaXZlL3F1b3RlX3NlbmQvcXVvdGVfb2Z0IG9wZXJhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGBwYXVzZWRgIC0gYHRydWVgIHRvIHBhdXNlLCBgZmFsc2VgIHRvIHVucGF1c2UAAAAACnNldF9wYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAAAAAAJFJldHVybnMgdGhlIHBhdXNlZCBzdGF0ZSBvZiB0aGUgT0ZULgAAAAlpc19wYXVzZWQAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAlxdW90ZV9vZnQAAAAAAAABAAAAAAAAAApzZW5kX3BhcmFtAAAAAAfQAAAACVNlbmRQYXJhbQAAAAAAAAEAAAPtAAAAAwAAB9AAAAAIT0ZUTGltaXQAAAPqAAAH0AAAAAxPRlRGZWVEZXRhaWwAAAfQAAAACk9GVFJlY2VpcHQAAAAAAAAAAAA1UmV0cmlldmVzIHRoZSB0b2tlbiBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIE9GVC4AAAAAAAAFdG9rZW4AAAAAAAAAAAAAAQAAABMAAAAAAAAAJlJldHVybnMgT0ZUIHZlcnNpb24gYXMgKG1ham9yLCBtaW5vcikuAAAAAAALb2Z0X3ZlcnNpb24AAAAAAAAAAAEAAAPtAAAAAgAAAAYAAAAGAAAAAAAAAEFSZXRyaWV2ZXMgdGhlIHNoYXJlZCBkZWNpbWFscyB1c2VkIGZvciBjcm9zcy1jaGFpbiBub3JtYWxpemF0aW9uLgAAAAAAAA9zaGFyZWRfZGVjaW1hbHMAAAAAAAAAAAEAAAAEAAAAAAAAAElSZXRyaWV2ZXMgdGhlIGRlY2ltYWwgY29udmVyc2lvbiByYXRlIHVzZWQgZm9yIGNyb3NzLWNoYWluIG5vcm1hbGl6YXRpb24uAAAAAAAAF2RlY2ltYWxfY29udmVyc2lvbl9yYXRlAAAAAAAAAAABAAAACwAAAAAAAADqV2hldGhlciBhIHNlcGFyYXRlIHRva2VuIGFwcHJvdmFsIGlzIHJlcXVpcmVkIGJlZm9yZSBzZW5kaW5nLgoKSGVscHMgd2FsbGV0IGltcGxlbWVudGVycyBkZXRlcm1pbmUgaW50ZWdyYXRpb24gcmVxdWlyZW1lbnRzLgoKIyBSZXR1cm5zCi0gYHRydWVgIGlmIGEgc2VwYXJhdGUgdG9rZW4gYXBwcm92YWwgc3RlcCBpcyByZXF1aXJlZAotIGBmYWxzZWAgaWYgbm8gc2VwYXJhdGUgYXBwcm92YWwgaXMgbmVlZGVkAAAAAAARYXBwcm92YWxfcmVxdWlyZWQAAAAAAAAAAAAAAQAAAAEAAAAAAAAALVJldHVybnMgdGhlIG1lc3NhZ2UgaW5zcGVjdG9yIGFkZHJlc3MgaWYgc2V0LgAAAAAAAA1tc2dfaW5zcGVjdG9yAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAFlU2V0cyBvciByZW1vdmVzIHRoZSBtZXNzYWdlIGluc3BlY3RvciBhZGRyZXNzLgoKVGhlIG1lc3NhZ2UgaW5zcGVjdG9yIGlzIGFuIG9wdGlvbmFsIGNvbnRyYWN0IHRoYXQgdmFsaWRhdGVzIG91dGdvaW5nIG1lc3NhZ2VzCmFuZCBvcHRpb25zIGJlZm9yZSB0aGV5IGFyZSBzZW50IGNyb3NzLWNoYWluLiBJZiBzZXQsIHRoZSBpbnNwZWN0b3IncyBgaW5zcGVjdGAKbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGR1cmluZyBgc2VuZGAgYW5kIGBxdW90ZV9zZW5kYCBvcGVyYXRpb25zLgoKIyBBcmd1bWVudHMKKiBgaW5zcGVjdG9yYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBpbnNwZWN0b3IgY29udHJhY3QsIG9yIE5vbmUgdG8gcmVtb3ZlAAAAAAAAEXNldF9tc2dfaW5zcGVjdG9yAAAAAAAAAQAAAAAAAAAJaW5zcGVjdG9yAAAAAAAD6AAAABMAAAAAAAAAAAAAADtRdW90ZXMgYSBzZW5kIG9wZXJhdGlvbiBpbmNsdWRpbmcgTGF5ZXJaZXJvIG1lc3NhZ2luZyBmZWVzLgAAAAAKcXVvdGVfc2VuZAAAAAAAAwAAAAAAAAAEZnJvbQAAABMAAAAAAAAACnNlbmRfcGFyYW0AAAAAB9AAAAAJU2VuZFBhcmFtAAAAAAAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAAAQAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAAAAAAHRTZW5kcyB0b2tlbnMgY3Jvc3MtY2hhaW4gdG8gYW5vdGhlciBlbmRwb2ludC4KCkZyb20gbXVzdCBiZSBhdXRoZW50aWNhdGVkLgoKIyBSZXR1cm5zCihNZXNzYWdpbmdSZWNlaXB0LCBPRlRSZWNlaXB0KQAAAARzZW5kAAAABAAAAAAAAAAEZnJvbQAAABMAAAAAAAAACnNlbmRfcGFyYW0AAAAAB9AAAAAJU2VuZFBhcmFtAAAAAAAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAAAAAAADnJlZnVuZF9hZGRyZXNzAAAAAAATAAAAAQAAA+0AAAACAAAH0AAAABBNZXNzYWdpbmdSZWNlaXB0AAAH0AAAAApPRlRSZWNlaXB0AAAAAAAAAAAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAABgAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAACGVuZHBvaW50AAAAEwAAAAAAAAAIZGVsZWdhdGUAAAPoAAAAEwAAAAAAAAAPc2hhcmVkX2RlY2ltYWxzAAAAAAQAAAAAAAAACG9mdF90eXBlAAAH0AAAAAdPZnRUeXBlAAAAAAAAAAAAAAAAQ1JldHVybnMgdGhlIHR5cGUgb2Ygb3BlcmF0aW9uIGZvciB0aGlzIE9GVCAoTG9ja1VubG9jayBvciBNaW50QnVybikAAAAACG9mdF90eXBlAAAAAAAAAAEAAAfQAAAAB09mdFR5cGUAAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAK5SZXRyaWV2ZXMgdGhlIE9BcHAgdmVyc2lvbiBpbmZvcm1hdGlvbi4KCiMgUmV0dXJucwpBIHR1cGxlIGNvbnRhaW5pbmc6Ci0gYHNlbmRlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBTZW5kZXIKLSBgcmVjZWl2ZXJfdmVyc2lvbmA6IFRoZSB2ZXJzaW9uIG9mIHRoZSBPQXBwUmVjZWl2ZXIAAAAAAAxvYXBwX3ZlcnNpb24AAAAAAAAAAQAAA+0AAAACAAAABgAAAAYAAAAAAAAAbFJldHJpZXZlcyB0aGUgTGF5ZXJaZXJvIGVuZHBvaW50IGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBPQXBwLgoKIyBSZXR1cm5zClRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcwAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAADBUmV0cmlldmVzIHRoZSBwZWVyIChPQXBwKSBhc3NvY2lhdGVkIHdpdGggYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoKIyBSZXR1cm5zClRoZSBwZWVyIGFkZHJlc3MgKE9BcHAgaW5zdGFuY2UpIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludAAAAAAAAARwZWVyAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAD6AAAA+4AAAAgAAAAAAAAAOVTZXRzIG9yIHJlbW92ZXMgdGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgZm9yIGEgY29ycmVzcG9uZGluZyBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgcGVlcmAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgcGVlciB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQsIG9yIE5vbmUgdG8gcmVtb3ZlIHRoZSBwZWVyAAAAAAAACHNldF9wZWVyAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAAAAAI5TZXRzIHRoZSBkZWxlZ2F0ZSBhZGRyZXNzIGZvciB0aGUgT0FwcCBDb3JlLgoKIyBBcmd1bWVudHMKKiBgZGVsZWdhdGVgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGRlbGVnYXRlIHRvIGJlIHNldCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIGRlbGVnYXRlAAAAAAAMc2V0X2RlbGVnYXRlAAAAAQAAAAAAAAAIZGVsZWdhdGUAAAPoAAAAEwAAAAAAAAAAAAAAt0NoZWNrcyBpZiBhIG1lc3NhZ2luZyBwYXRoIGNhbiBiZSBpbml0aWFsaXplZCBmb3IgdGhlIGdpdmVuIG9yaWdpbi4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIG9mIHRoZSBtZXNzYWdlCgojIFJldHVybnMKVHJ1ZSBpZiB0aGUgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQsIGZhbHNlIG90aGVyd2lzZQAAAAAVYWxsb3dfaW5pdGlhbGl6ZV9wYXRoAAAAAAAAAQAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAEAAAAAAAAB+FJldHJpZXZlcyB0aGUgbmV4dCBub25jZSBmb3IgYSBnaXZlbiBzb3VyY2UgZW5kcG9pbnQgYW5kIHNlbmRlciBhZGRyZXNzLgoKVGhlIHBhdGggbm9uY2Ugc3RhcnRzIGZyb20gMS4gSWYgMCBpcyByZXR1cm5lZCBpdCBtZWFucyB0aGF0IHRoZXJlIGlzIE5PIG5vbmNlIG9yZGVyZWQgZW5mb3JjZW1lbnQuClRoaXMgaXMgcmVxdWlyZWQgYnkgdGhlIG9mZi1jaGFpbiBleGVjdXRvciB0byBkZXRlcm1pbmUgaWYgdGhlIE9BcHAgZXhwZWN0cyBtZXNzYWdlIGV4ZWN1dGlvbiB0byBiZSBvcmRlcmVkLgpUaGlzIGlzIGFsc28gZW5mb3JjZWQgYnkgdGhlIE9BcHAuCkJ5IGRlZmF1bHQgdGhpcyBpcyBOT1QgZW5hYmxlZCwgaS5lLiBuZXh0X25vbmNlIGlzIGhhcmRjb2RlZCB0byByZXR1cm4gMC4KCiMgQXJndW1lbnRzCiogYHNyY19laWRgIC0gVGhlIHNvdXJjZSBlbmRwb2ludCBJRAoqIGBzZW5kZXJgIC0gVGhlIHNlbmRlciBPQXBwIGFkZHJlc3MKCiMgUmV0dXJucwpUaGUgbmV4dCBub25jZQAAAApuZXh0X25vbmNlAAAAAAACAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAABAAAABgAAAAAAAAMjRW50cnkgcG9pbnQgZm9yIHJlY2VpdmluZyBtZXNzYWdlcyBvciBwYWNrZXRzIGZyb20gdGhlIExheWVyWmVybyBlbmRwb2ludC4KClRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzIGBjbGVhcl9wYXlsb2FkX2FuZF90cmFuc2ZlcmAgdG8gdmFsaWRhdGUgdGhlIG1lc3NhZ2UKYW5kIGNsZWFyIGl0IGZyb20gdGhlIGVuZHBvaW50LCB0aGVuIGRlbGVnYXRlcyB0byBgX19sel9yZWNlaXZlYCBmb3IgYXBwbGljYXRpb24gbG9naWMuCgojIEFyZ3VtZW50cwoqIGBleGVjdXRvcmAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgZXhlY3V0b3IgZm9yIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3M6Ci0gYHNyY19laWRgOiBUaGUgc291cmNlIGNoYWluIGVuZHBvaW50IElECi0gYHNlbmRlcmA6IFRoZSBzZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluCi0gYG5vbmNlYDogVGhlIG5vbmNlIG9mIHRoZSBtZXNzYWdlCiogYGd1aWRgIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVjZWl2ZWQgTGF5ZXJaZXJvIG1lc3NhZ2UKKiBgbWVzc2FnZWAgLSBUaGUgcGF5bG9hZCBvZiB0aGUgcmVjZWl2ZWQgbWVzc2FnZQoqIGBleHRyYV9kYXRhYCAtIEFkZGl0aW9uYWwgYXJiaXRyYXJ5IGRhdGEgcHJvdmlkZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgZXhlY3V0b3IKKiBgdmFsdWVgIC0gVGhlIG5hdGl2ZSB0b2tlbiB2YWx1ZSBzZW50IHdpdGggdGhlIG1lc3NhZ2UAAAAACmx6X3JlY2VpdmUAAAAAAAYAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAARndWlkAAAD7gAAACAAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAKZXh0cmFfZGF0YQAAAAAADgAAAAAAAAAFdmFsdWUAAAAAAAALAAAAAAAAAAAAAAHsSW5kaWNhdGVzIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBhbiBhcHByb3ZlZCBjb21wb3NlTXNnIHNlbmRlciB0byB0aGUgRW5kcG9pbnQuCgpBcHBsaWNhdGlvbnMgY2FuIG9wdGlvbmFsbHkgY2hvb3NlIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBjb21wb3NlTXNnIHNlbmRlcnMgdGhhdCBhcmUgTk9UIHRoZSBicmlkZ2luZyBsYXllci4KVGhlIGRlZmF1bHQgc2VuZGVyIElTIHRoZSBPQXBwUmVjZWl2ZXIgaW1wbGVtZW50ZXIuCgojIEFyZ3VtZW50cwoqIGBvcmlnaW5gIC0gVGhlIG9yaWdpbiBpbmZvcm1hdGlvbiBjb250YWluaW5nIHRoZSBzb3VyY2UgZW5kcG9pbnQgYW5kIHNlbmRlciBhZGRyZXNzCiogYG1lc3NhZ2VgIC0gVGhlIGx6UmVjZWl2ZSBwYXlsb2FkCiogYHNlbmRlcmAgLSBUaGUgc2VuZGVyIGFkZHJlc3MgdG8gY2hlY2sKCiMgUmV0dXJucwpUcnVlIGlmIHRoZSBzZW5kZXIgaXMgYSB2YWxpZCBjb21wb3NlTXNnIHNlbmRlciwgZmFsc2Ugb3RoZXJ3aXNlAAAAFWlzX2NvbXBvc2VfbXNnX3NlbmRlcgAAAAAAAAMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAQAAAAAAAADZUmV0cmlldmVzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoKIyBSZXR1cm5zClRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciB0aGUgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZQAAAAAAABBlbmZvcmNlZF9vcHRpb25zAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAEAAAAOAAAAAAAAAptTZXRzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBzcGVjaWZpYyBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlIGNvbWJpbmF0aW9ucy4KCk9ubHkgdGhlIGBhdXRob3JpemVyYCBvZiB0aGUgT0FwcCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLgpQcm92aWRlcyBhIHdheSBmb3IgdGhlIE9BcHAgdG8gZW5mb3JjZSB0aGluZ3MgbGlrZSBwYXlpbmcgZm9yIFByZUNyaW1lLCBBTkQvT1IgbWluaW11bSBkc3QgbHpSZWNlaXZlIGdhcyBhbW91bnRzIGV0Yy4KVGhlc2UgZW5mb3JjZWQgb3B0aW9ucyBjYW4gdmFyeSBhcyB0aGUgcG90ZW50aWFsIG9wdGlvbnMvZXhlY3V0aW9uIG9uIHRoZSByZW1vdGUgbWF5IGRpZmZlciBhcyBwZXIgdGhlIG1zZ190eXBlLgplLmcuIEFtb3VudCBvZiBselJlY2VpdmUoKSBnYXMgbmVjZXNzYXJ5IHRvIGRlbGl2ZXIgYSBsekNvbXBvc2UoKSBtZXNzYWdlIGFkZHMgb3ZlcmhlYWQgeW91IGRvbid0IHdhbnQgdG8gcGF5CmlmIHlvdSBhcmUgb25seSBtYWtpbmcgYSBzdGFuZGFyZCBMYXllclplcm8gbWVzc2FnZSBpZS4gbHpSZWNlaXZlKCkgV0lUSE9VVCBzZW5kQ29tcG9zZSgpLgoKIyBBcmd1bWVudHMKKiBgb3B0aW9uc2AgLSBBIHZlY3RvciBvZiBFbmZvcmNlZE9wdGlvblBhcmFtIHN0cnVjdHVyZXMgc3BlY2lmeWluZyBlbmZvcmNlZCBvcHRpb25zAAAAABRzZXRfZW5mb3JjZWRfb3B0aW9ucwAAAAEAAAAAAAAAB29wdGlvbnMAAAAD6gAAB9AAAAATRW5mb3JjZWRPcHRpb25QYXJhbQAAAAAAAAAAAAAAAnpDb21iaW5lcyBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgpJZiB0aGVyZSBpcyBhbiBlbmZvcmNlZCBselJlY2VpdmUgb3B0aW9uOgotIHtnYXNfbGltaXQ6IDIwMGssIHZhbHVlOiAxIFhMTX0gQU5EIGEgY2FsbGVyIHN1cHBsaWVzIGEgbHpSZWNlaXZlIG9wdGlvbjoge2dhc19saW1pdDogMTAwaywgdmFsdWU6IDAuNSBYTE19Ci0gVGhlIHJlc3VsdGluZyBvcHRpb25zIHdpbGwgYmUge2dhc19saW1pdDogMzAwaywgdmFsdWU6IDEuNSBYTE19IHdoZW4gdGhlIG1lc3NhZ2UgaXMgZXhlY3V0ZWQgb24gdGhlIHJlbW90ZSBsel9yZWNlaXZlKCkgZnVuY3Rpb24uClRoZSBwcmVzZW5jZSBvZiBkdXBsaWNhdGVkIG9wdGlvbnMgaXMgaGFuZGxlZCBvZmYtY2hhaW4gaW4gdGhlIHZlcmlmaWVyL2V4ZWN1dG9yLgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBtc2dfdHlwZWAgLSBUaGUgT0FwcCBtZXNzYWdlIHR5cGUKKiBgZXh0cmFfb3B0aW9uc2AgLSBBZGRpdGlvbmFsIG9wdGlvbnMgcGFzc2VkIGJ5IHRoZSBjYWxsZXIKCiMgUmV0dXJucwpUaGUgY29tYmluYXRpb24gb2YgY2FsbGVyIHNwZWNpZmllZCBvcHRpb25zIEFORCBlbmZvcmNlZCBvcHRpb25zAAAAAAAPY29tYmluZV9vcHRpb25zAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAADWV4dHJhX29wdGlvbnMAAAAAAAAOAAAAAQAAAA4A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AAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAAAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAAAAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAAAAAAAMVW5hdXRob3JpemVkAAAAFgAAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5l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IChPcHRpb25hbCkAAAALY29tcG9zZV9tc2cAAAAADgAAABtUaGUgZGVzdGluYXRpb24gZW5kcG9pbnQgSUQAAAAAB2RzdF9laWQAAAAABAAAADdBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBMYXllclplcm8gbWVzc2FnZSAoT3B0aW9uYWwpAAAAAA1leHRyYV9vcHRpb25zAAAAAAAADgAAAEVUaGUgbWluaW11bSBhbW91bnQgdG8gcmVjZWl2ZSBpbiBsb2NhbCBkZWNpbWFscyAoc2xpcHBhZ2UgcHJvdGVjdGlvbikAAAAAAAANbWluX2Ftb3VudF9sZAAAAAAAAAsAAAAqT0ZUIGNvbW1hbmQgZm9yIGN1c3RvbSBiZWhhdmlvciAoT3B0aW9uYWwpAAAAAAAHb2Z0X2NtZAAAAAAOAAAAOVRoZSByZWNpcGllbnQgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKQAAAAAAAAJ0bwAAAAAD7gAAACAAAAABAAAAIlRyYW5zZmVyIGxpbWl0cyBmb3IgT0ZUIG9wZXJhdGlvbnMAAAAAAAAAAAAIT0ZUTGltaXQAAAACAAAALFRoZSBtYXhpbXVtIGFtb3VudCB0byBzZW5kIGluIGxvY2FsIGRlY2ltYWxzAAAADW1heF9hbW91bnRfbGQAAAAAAAALAAAALFRoZSBtaW5pbXVtIGFtb3VudCB0byBzZW5kIGluIGxvY2FsIGRlY2ltYWxzAAAADW1pbl9hbW91bnRfbGQAAAAAAAALAAAAAQAAAD9SZWNlaXB0IGNvbnRhaW5pbmcgYW1vdW50cyBzZW50IGFuZCByZWNlaXZlZCBpbiBhbiBPRlQgdHJhbnNmZXIAAAAAAAAAAApPRlRSZWNlaXB0AAAAAAACAAAAM1RoZSBhbW91bnQgcmVjZWl2ZWQgaW4gbG9jYWwgZGVjaW1hbHMgb24gdGhlIHJlbW90ZQAAAAASYW1vdW50X3JlY2VpdmVkX2xkAAAAAAALAAAAIVRoZSBhbW91bnQgc2VudCBpbiBsb2NhbCBkZWNpbWFscwAAAAAAAA5hbW91bnRfc2VudF9sZAAAAAAACwAAAAEAAAAuRGV0YWlscyBhYm91dCBmZWVzIGNoYXJnZWQgaW4gYW4gT0ZUIG9wZXJhdGlvbgAAAAAAAAAAAAxPRlRGZWVEZXRhaWwAAAACAAAAGlRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZmVlAAAAAAALZGVzY3JpcHRpb24AAAAADgAAAH9UaGUgYW1vdW50IG9mIHRoZSBmZWUgaW4gbG9jYWwgZGVjaW1hbHMuIFBvc2l0aXZlIHZhbHVlcyByZXByZXNlbnQgZmVlcyBjaGFyZ2VkLAp3aGlsZSBuZWdhdGl2ZSB2YWx1ZXMgcmVwcmVzZW50IHJld2FyZHMgZ2l2ZW4uAAAAAA1mZWVfYW1vdW50X2xkAAAAAAAACwAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjAuMSM5NDE0NDgwNzllY2NmOTU2MjdkMmZmZWExM2JhMjY4ZTMwNWE5MDc3AABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
|
|
11
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAAB+gEoYAF+AX5gAn5+AX5gA35+fgF+YAABfmAEfn5+fgF+YAF+AX9gAn9/AX9gBX5+fn5+AGACf38BfmADfn5+AGAEf39+fgBgA39/fwF+YAAAYAF/AGACfn8BfmABfgBgAn5+AX9gAn9/AGACf34AYAABf2ABfwF+YAJ+fwBgA39/fwBgA39+fgBgBH9+fn4AYAR/f39/AX5gBX9+f35+AGADfn9/AGABfwF/YAJ/fgF/YAV+f39/fwBgBn9+fn5+fwBgBX9+fn5+AGAGfn5+fn5+AX5gBH5+fn4AYAJ+fgBgAn5/AX9gBH5+f38BfmAEf35+fwBgA39/fwF/AuUBJgF2ATMAAAF2ATEAAQFiAW0AAgFsAV8AAgFiATgAAAFiAWUAAQFsATEAAQFiATQAAwFsATcABAFhATAAAAFiAV8AAAFiAWYAAgF4ATcAAwF4ATEAAQFsATIAAQF2AV8AAwFkAV8AAgFhATYAAAFpAV8AAAFpATAAAAFiATEABAFiATMAAQF2AWcAAQFpATgAAAFpATcAAAFpATYAAQFiAWoAAQFiATIABAFtATkAAgFtAWEABAF4ATAAAQFiATAAAAF4ATQAAwF4ATMAAwF4ATgAAwFsATAAAQFsATgAAQF4ATUAAAO8AboBBQYHAQgJBwoIAAsMCA0ODwgQEREIEg0DDBMUDQ0RCAwDAw0VEAwNFA0DFhIXAxEUGAESFxkPGg0SGxIcHR0NDA0DEQMUAxEDDQwTChYRAxYKEhIeEg0IABYfIAIBAQEAAQADAAADAAMAEgggAwMFAwMDAQASEhQCFBIgBBMAIRERDyIDAwMDACMBDBMXAwMBEQESFAMNEQMDAwMAAQAAEgEhFAgkAQwlAgEAAgwWEhYRFh8mICAmJycgBAUBcAEBAQUDAQARBiEEfwFBgIDAAAt/AEH0iMAAC38AQeqLwAALfwBB8IvAAAsHoQc1Bm1lbW9yeQIADnNldF9yYXRlX2xpbWl0AIEBEXJhdGVfbGltaXRfY29uZmlnAIIBFHJhdGVfbGltaXRfaW5fZmxpZ2h0AIMBE3JhdGVfbGltaXRfY2FwYWNpdHkAhAETc2V0X2RlZmF1bHRfZmVlX2JwcwCFAQtzZXRfZmVlX2JwcwCGARdzZXRfZmVlX2RlcG9zaXRfYWRkcmVzcwCHAQ9kZWZhdWx0X2ZlZV9icHMAiAEHZmVlX2JwcwCJARFlZmZlY3RpdmVfZmVlX2JwcwCKARNmZWVfZGVwb3NpdF9hZGRyZXNzAIsBCnNldF9wYXVzZWQAjAEJaXNfcGF1c2VkAI0BCXF1b3RlX29mdACOAQV0b2tlbgCSAQ9zaGFyZWRfZGVjaW1hbHMAkwEXZGVjaW1hbF9jb252ZXJzaW9uX3JhdGUAlQERYXBwcm92YWxfcmVxdWlyZWQAlgENbXNnX2luc3BlY3RvcgCXARFzZXRfbXNnX2luc3BlY3RvcgCZAQpxdW90ZV9zZW5kAJ0BBHNlbmQAoQENX19jb25zdHJ1Y3RvcgCkAQhvZnRfdHlwZQCpAQphdXRob3JpemVyAKoBBW93bmVyAKsBDXBlbmRpbmdfb3duZXIArAESdHJhbnNmZXJfb3duZXJzaGlwAK0BGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAK8BEGFjY2VwdF9vd25lcnNoaXAAswEScmVub3VuY2Vfb3duZXJzaGlwALQBE2V4dGVuZF9pbnN0YW5jZV90dGwAtQEPc2V0X3R0bF9jb25maWdzALcBC3R0bF9jb25maWdzALoBEmZyZWV6ZV90dGxfY29uZmlncwC9ARVpc190dGxfY29uZmlnc19mcm96ZW4AvgEMb2FwcF92ZXJzaW9uAL8BCGVuZHBvaW50AMABBHBlZXIAwQEIc2V0X3BlZXIAwgEMc2V0X2RlbGVnYXRlAMMBFWFsbG93X2luaXRpYWxpemVfcGF0aADEAQpuZXh0X25vbmNlAMYBCmx6X3JlY2VpdmUAxwEVaXNfY29tcG9zZV9tc2dfc2VuZGVyAM4BEGVuZm9yY2VkX29wdGlvbnMAzwEUc2V0X2VuZm9yY2VkX29wdGlvbnMA0AEPY29tYmluZV9vcHRpb25zANEBAV8DAQtvZnRfdmVyc2lvbgC/AQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwqy3QG6Aa4BAwF/AX4Cf0ECIQECQCAAQv8Bg0LLAFINACAAEICAgIAAIgJCgICAgBBUDQACQCAAQgQQgYCAgAAiAKdB/wFxIgNBygBGDQAgA0EORw0BCyACQiCIpyEDAkACQAJAIABByIHAgACtQiCGQgSEQoSAgIAgEIKAgIAAQiCIpw4CAAEDC0EBIAMQp4CAgAANAkEAIQQMAQtBASEEQQEgAxCngICAAA0BCyAEIQELIAELGQACQCABIABJDQAgASAAaw8LEOWAgIAAAAuxAQECfyOAgICAAEEwayIFJICAgIAAIAUgAyAEEKmAgIAANwMQIAUgAjcDCCAFIAE3AwBBACEGA0ACQCAGQRhHDQBBACEGAkADQCAGQRhGDQEgBUEYaiAGaiAFIAZqKQMANwMAIAZBCGohBgwACwsgAEKO7uqVvrbe8wAgBUEYakEDEKqAgIAAEKuAgIAAIAVBMGokgICAgAAPCyAFQRhqIAZqQgI3AwAgBkEIaiEGDAALC0MBAX8jgICAgABBEGsiAiSAgICAACACIAAgARDZgICAAAJAIAIoAgBBAUcNAAALIAIpAwghASACQRBqJICAgIAAIAELGgAgAK1CIIZCBIQgAa1CIIZCBIQQloCAgAALIQACQCAAIAEgAhCQgICAAEL/AYNCAlENABDlgICAAAALC7EBAQJ/I4CAgIAAQTBrIgUkgICAgAAgBSADIAQQqYCAgAA3AxAgBSACNwMIIAUgATcDAEEAIQYDQAJAIAZBGEcNAEEAIQYCQANAIAZBGEYNASAFQRhqIAZqIAUgBmopAwA3AwAgBkEIaiEGDAALCyAAQo7u6pW+tt7zACAFQRhqQQMQqoCAgAAQq4CAgAAgBUEwaiSAgICAAA8LIAVBGGogBmpCAjcDACAGQQhqIQYMAAsLHQAgACABEK6AgIAAIAIQr4CAgAAgAxCDgICAABoLxwECAX8BfiOAgICAAEEQayICJICAgIAAAkACQAJAAkACQAJAIAAOAwABAgALIAJBgIDAgABBDRDQgICAACACKAIADQMgAiACKQMIENGAgIAADAILIAJBjYDAgABBBhDQgICAACACKAIADQIgAiACKQMIIAGtQiCGQgSEENKAgIAADAELIAJBk4DAgABBERDQgICAACACKAIADQEgAiACKQMIENGAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLQQEBfyOAgICAAEEQayIBJICAgIAAIAEgABDYgICAAAJAIAEoAgBBAUcNAAALIAEpAwghACABQRBqJICAgIAAIAALjAEBA34QsYCAgAAgACABELKAgIAAIgMQhICAgAAhBCACKQMAIQUCQAJAIARCgICAgBBUDQACQCAFEISAgIAAQoCAgIAQWg0AIAMPCyAFEISAgIAAQv////8fWA0BIAIQs4CAgAAgAyAFQQIQtICAgAAQhYCAgAAhBQsgBQ8LQoOAgICA+gEQtYCAgAAAC0gBAX8jgICAgABBEGsiACSAgICAACAAQQRqELuBgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC2gYCAAAsgAEEQaiSAgICAAAtaAwF+AX8BfhCxgICAAAJAAkAgACABELaAgIAAIgJCARC3gICAACIDRQ0AIAJCARCGgICAACIEQv8Bg0LIAFINASAAIAEQuICAgAALIAQQh4CAgAAgAxsPCwALvQECAX8BfiOAgICAAEEQayIBJICAgIAAIAFBADYCCCABIAA2AgQCQAJAAkAgAUEEakECEMmBgIAAIgIQhICAgABCgICAgHCDQoCAgIAgUg0AIAFBADsBDiACEISAgIAAQoCAgIBwg0KAgICAIFINASACIAFBDmpBAhDfgICAACABLwEOQYAGRw0CIAFBEGokgICAgAAPC0KDgICAgIIBELWAgIAAAAsQzIGAgAAAC0KDgICAgPoBELWAgIAAAAslACAAIAGtQiCGQgSEIAAQhICAgABCgICAgHCDQgSEEIuAgIAACwsAIAAQpYCAgAAaC4oBAgF/AX4jgICAgABBMGsiAiSAgICAACACQSBqQZyFwIAAQQ8Q0ICAgAACQAJAIAIoAiANACACIAIpAyg3AwggAiABrUIghkIEhDcDGCACIACtQiCGQgSENwMQIAJBIGogAkEIahDUgICAACACKAIgRQ0BCwALIAIpAyghAyACQTBqJICAgIAAIAMLDwAgACABEKOAgIAAQgFRC2sCAX8CfiOAgICAAEEQayICJICAgIAAIAJBBGoQwoCAgAACQCACKAIEQQFHDQAgAjUCDCEDIAI1AgghBCAAIAEQtoCAgABCASAEQiCGQgSEIANCIIZCBIQQiICAgAAaCyACQRBqJICAgIAAC4sBAgF/AX4jgICAgABBEGsiAiSAgICAABCxgICAAAJAAkACQEEBIAEQuoCAgAAiA0IBELeAgIAARQ0AIAIgA0IBEIaAgIAAELuAgIAAIAIoAgBBAUcNAQALIABCADcDAAwBCyACKQMIIQMgAEIBNwMAIAAgAzcDCCABELyAgIAACyACQRBqJICAgIAAC5sBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIABBAXFFDQAgAkHYhMCAAEEEENCAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ0oCAgAAMAQsgAkHQhMCAAEEIENCAgIAAIAIoAgANASACIAIpAwgQ0YCAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsjAAJAIAFC/wGDQsgAUQ0AIABCATcDAA8LIAAgARDggICAAAtrAgF/An4jgICAgABBEGsiASSAgICAACABQQRqEMKAgIAAAkAgASgCBEEBRw0AIAE1AgwhAiABNQIIIQNBASAAELqAgIAAQgEgA0IghkIEhCACQiCGQgSEEIiAgIAAGgsgAUEQaiSAgICAAAtJAgF/AX4QsYCAgAACQAJAQQAgABC6gICAACIBQgIQt4CAgABFDQAgAUICEIaAgIAAIgFC/wGDQs0AUQ0BAAsQvoCAgAAACyABCwkAEOWAgIAAAAtNAgF/AX4QsYCAgABBACEAAkBBABDAgICAACIBQgIQt4CAgABFDQBBASEAAkACQCABQgIQhoCAgACnQf8BcQ4CAQIACwALQQAhAAsgAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFB0ovAgABBBhDQgICAACABKAIADQMgASABKQMIENGAgIAADAILIAFB2IvAgABBCBDQgICAACABKAIADQIgASABKQMIENGAgIAADAELIAFB4IvAgABBChDQgICAACABKAIADQEgASABKQMIENGAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILawIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahDCgICAAAJAIAEoAgRBAUcNACABNQIMIQIgATUCCCEDQQEgABCugICAAEIBIANCIIZCBIQgAkIghkIEhBCIgICAABoLIAFBEGokgICAgAALDAAgAEECENaBgIAAC2sCAX8CfiOAgICAAEEQayICJICAgIAAIAJBBGoQwoCAgAACQCACKAIEQQFHDQAgAjUCDCEDIAI1AgghBCAAIAEQxICAgABCASAEQiCGQgSEIANCIIZCBIQQiICAgAAaCyACQRBqJICAgIAAC/oBAgF/An4jgICAgABBMGsiAiSAgICAACACQSBqQcCCwIAAQQkQ0ICAgAACQAJAIAIoAiANACACKQMoIQMCQAJAIAFBAXFFDQAgAkEgakG/gcCAAEEIENCAgIAAIAIoAiANAiACQSBqIAIpAygQ0YCAgAAMAQsgAkEgakG4gcCAAEEHENCAgIAAIAIoAiANASACQSBqIAIpAygQ0YCAgAALIAIpAyghBCACKQMgpw0AIAIgBDcDECACIAM3AwggAiAArUIghkIEhDcDGCACQSBqIAJBCGoQ1ICAgAAgAigCIEUNAQsACyACKQMoIQMgAkEwaiSAgICAACADCw8AEMaAgIAAEImAgIAAGgtHAgF/AX4jgICAgABBEGsiACSAgICAABCxgICAACAAEMiAgIAAIAApAwghASAAKQMAQYsIEMmAgIAAIABBEGokgICAgAAgAQtsAgF/AX4jgICAgABBEGsiACSAgICAACAAEMiAgIAAIAApAwghASAAKQMAQYsIEMmAgIAAAkAgARDGgICAABDKgICAAA0AQoOAgIDggAEQtYCAgAAACyABEImAgIAAGiAAQRBqJICAgIAAIAELEAAQsYCAgAAgABDOgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8ELWAgIAAAAsNACAAIAEQnoCAgABQC0IBAX8jgICAgABBEGsiACSAgICAACAAEMyAgIAAAkAgACkDAFANAEKDgICAwIEBELWAgIAAAAsgAEEQaiSAgICAAAtTAQJ+ELGAgIAAQgAhAQJAAkBBARDNgICAACICQgAQt4CAgABFDQAgAkIAEIaAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFB5YrAgABBDBDQgICAACABKAIADQIgASABKQMIENGAgIAADAELIAFB4IrAgABBBRDQgICAACABKAIADQEgASABKQMIENGAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQzYCAgAAiAkICELeAgIAARQ0AIAJCAhCGgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALYAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEH/gsCAAEEHENCAgIAAAkACQCAAKAIADQAgACAAKQMIENGAgIAAIAAoAgBBAUcNAQsACyAAKQMIIQEgAEEQaiSAgICAACABC1ECAX8BfiOAgICAAEEQayIDJICAgIAAIAMgASACENOBgIAAQgEhBAJAIAMoAgANACAAIAMpAwg3AwhCACEECyAAIAQ3AwAgA0EQaiSAgICAAAtEAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABNwMIIAJBCGpBARCqgICAACEBIABCADcDACAAIAE3AwggAkEQaiSAgICAAAtIAQF/I4CAgIAAQRBrIgMkgICAgAAgAyACNwMIIAMgATcDACADQQIQqoCAgAAhAiAAQgA3AwAgACACNwMIIANBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEGYgcCAAEEGENCAgIAAAkACQCAAKAIADQAgACAAKQMIENGAgIAAIAAoAgBBAUcNAQsACyAAKQMIIQEgAEEQaiSAgICAACABC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCqgICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtnAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQCAAKAIAQQFxDQBCAiECDAELIAEgACkDECAAKQMYIAApAyAQ1oCAgAAgASgCAEEBcQ0BIAEpAwghAgsgAUEQaiSAgICAACACDwsAC4UBAQF/I4CAgIAAQRBrIgQkgICAgAAgBCABIAIQ2YCAgABCASECAkAgBCgCAA0AIAQpAwghASAEIAMQ2ICAgAAgBCgCAA0AIAQgBCkDCDcDCCAEIAE3AwAgAEHsgcCAAEECIARBAhDagICAADcDCEIAIQILIAAgAjcDACAEQRBqJICAgIAAC1YBAX8jgICAgABBEGsiAiSAgICAAAJAAkACQCAAp0EBcQ0AQgIhAAwBCyACIAEQ2ICAgAAgAigCAEEBcQ0BIAIpAwghAAsgAkEQaiSAgICAACAADwsACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCSgICAACEBCyAAQgA3AwAgACABNwMIC1sAAkACQCABQoCAgICAgIDAAHxC//////////8AVg0AIAEgAYUgAiABQj+HhYRCAFINACABQgiGQguEIQEMAQsgAiABEJmAgIAAIQELIABCADcDACAAIAE3AwgLLgACQCABIANGDQAACyAArUIghkIEhCACrUIghkIEhCABrUIghkIEhBCcgICAAAseAAJAIACnQQFxRQ0ADwtCg4CAgJD6ARC1gICAAAALpwcDAX8FfgN/I4CAgIAAQfAAayIFJICAgIAAIAIpAzAiBhCEgICAACEHIAVBEGoQ3YCAgAACQAJAAkAgBSkDECIIIAUpAxgiCYRQDQAgAikDICEKAkAgAyAEQoCAgICAgICAgH+FhEIAUg0AIAggCYNCf1ENAQsgBSADIAQgCCAJENuBgIAAAkAgBSkDCEIBWQ0AIAUpAwAhBAJAAkACQCAHQv////8PVg0AIAUgBDcDOCAFIAo3AzBCACEGIAVCADcDECAFQSBqIQtBASEMDAELIAVBEGogARCKgICAAEEEELSAgIAAIgNCBEKEgICAwAAQi4CAgAAQ3oCAgAAgBSgCEEEBRg0FIAUpAxghCCAFQQA2AlggCCAFQdgAakEEEN+AgIAAIAUoAlgiC0H///8HcQ0BAkACQAJAIAtBGHYOAgABBAsgBUHYAGogA0KEgICAwABChICAgIABEIuAgIAAEN6AgIAAIAUoAlhBAUYNByAFKQNgIQggBUEANgJYIAggBUHYAGpBBBDfgICAACAFKAJYDQMgBUHYAGogA0KEgICAgAFChICAgIAFEIuAgIAAEOCAgIAAIAUoAlhBAUcNAQwHCyAFQdgAaiADQoSAgIDAAEKEgICAwAQQi4CAgAAQ4ICAgAAgBSgCWEEBRg0GCyAFKQNgIQMgBUEoaiELIAUgBDcDOCAFIAo3AzAgBUIBNwMgIAUgAzcDGCAFQgE3AxBBAiEMCyALIAY3AwAgBUEQahDhgICAACELIAUQh4CAgAA3A1ggBUHYAGogChDigICAACAEEOOAgIAAIQ0CQAJAIAsNACANKQMAIQQMAQsgB0L/////D1gNASANIAMQ4oCAgAAhCyAFKAIgRQ0BIAspAwAgBSkDKBCFgICAACEECyACKAJAIAwgAkEoahCwgICAACEDIAVByABqEOSAgIAAIAUoAkhBAUcNAyAFKQNQIQoQjICAgAAhCCAFIAM3A2ggBSAENwNgIAUgCDcDWEEAIQIDQAJAIAJBGEcNAEEAIQICQANAIAJBGEYNASAFQRBqIAJqIAVB2ABqIAJqKQMANwMAIAJBCGohAgwACwsgCkKO8qi1jZ+7ASAFQRBqQQMQqoCAgAAQq4CAgAAMBQsgBUEQaiACakICNwMAIAJBCGohAgwACwsQvoCAgAAAC0KDgICAsPcCELWAgIAAAAsQ5YCAgAAACyAAIAM3AwggACAENwMAIAVB8ABqJICAgIAADwsAC5ACAgJ/BH4jgICAgABBwABrIgEkgICAgAAgAUE4ahDmgICAAAJAAkAgASgCOEEBcUUNAAJAIAEoAjwiAg0AQgAhA0IBIQQMAgtCACEDQgohBUIBIQRCACEGAkADQAJAIAJBAXFFDQAgAUEANgI0IAFBIGogBCADIAUgBiABQTRqENiBgIAAIAEoAjQNAiABKQMoIQMgASkDICEEIAJBAUYNBAsgAUEANgIcIAEgBSAGIAUgBiABQRxqENiBgIAAIAEoAhwNASABKQMIIQYgASkDACEFIAJBAXYhAgwACwsQ5YCAgAAAC0KDgICAoPcCELWAgIAAAAsgACAENwMAIAAgAzcDCCABQcAAaiSAgICAAAs2AQF+QgEhAgJAIAEQhICAgABCgICAgHCDQoCAgIDAAFINACAAIAE3AwhCACECCyAAIAI3AwALHwAgAEIEIAGtQiCGQgSEIAKtQiCGQgSEEJSAgIAAGgs2AQF+QgEhAgJAIAEQhICAgABCgICAgHCDQoCAgICABFINACAAIAE3AwhCACECCyAAIAI3AwALMwEBf0EAIQECQCAAKQMAUA0AIAAoAhBBAUcNACAAKQMYEISAgIAAQv////8PViEBCyABC8IBAQR/I4CAgIAAQcAAayICJICAgIAAIAJBIGpBGGoiA0IANwMAIAJBIGpBEGoiBEIANwMAIAJBIGpBCGoiBUIANwMAIAJCADcDICABIAJBIGpBIBDfgICAACACQRhqIAMpAwA3AwAgAkEQaiAEKQMANwMAIAJBCGogBSkDADcDACACIAIpAyA3AwAgACkDACEBIAAgASABEISAgIAAQoCAgIBwg0IEhCACQSAQzYGAgAA3AwAgAkHAAGokgICAgAAgAAunAQEBfyOAgICAAEEQayICJICAgIAAIAIgAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhDcDCCAAKQMAIQEgACABIAEQhICAgABCgICAgHCDQgSEIAJBCGpBCBDNgYCAADcDACACQRBqJICAgIAAIAALDAAgAEECEOiAgIAACwkAENKBgIAAAAtYAwF/AX4Bf0EAIQECQAJAQQAQnIGAgAAiAkICELeAgIAARQ0AIAJCAhCGgICAACICQv8Bg0IEUg0BIAJCIIinIQNBASEBCyAAIAM2AgQgACABNgIADwsAC04CAX8BfiOAgICAAEEQayIAJICAgIAAIABBARDogICAAAJAIAAoAgANAEKDgICAoPcCELWAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQtNAQJ+QgAhAgJAAkAgARCcgYCAACIDQgIQt4CAgABFDQAgA0ICEIaAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDAA8LAAsOABCxgICAABDngICAAAt0AgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQEEBIAAQroCAgABCARC3gICAAA0AEOuAgIAAIQIMAQsgABDBgICAACABIAAQ7ICAgAAgASgCAEUNASABKQMIIQILIAFBEGokgICAgAAgAg8LEL6AgIAAAAtqAgF/An4jgICAgABBEGsiACSAgICAAEIAIQECQAJAQQAgABCugICAACICQgIQt4CAgABFDQAgACACQgIQhoCAgAAQ94CAgAAgACgCAEEBRg0BIAApAwghAQsgAEEQaiSAgICAACABDwsAC4UBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQEEBIAEQroCAgAAiA0IBELeAgIAARQ0AIAIgA0IBEIaAgIAAEPeAgIAAIAIoAgBBAUcNAQALIABCADcDAAwBCyACKQMIIQMgAEIBNwMAIAAgAzcDCCABEMGAgIAACyACQRBqJICAgIAAC0wCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQ7oCAgAACQCAAKAIADQBCg4CAgNCDAxC1gICAAAALIAApAwghASAAQRBqJICAgIAAIAELTwECfkIAIQECQAJAQQIgABCugICAACICQgIQt4CAgABFDQAgAkICEIaAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAsdAAJAEPCAgIAADQAPC0KDgICA4IQDELWAgIAAAAtFAgF/AX5BACEAAkAQ04CAgAAiAUICELeAgIAARQ0AQQEhAAJAAkAgAUICEIaAgIAAp0H/AXEOAgECAAsAC0EAIQALIAALuwICAn8FfiOAgICAAEGQAWsiBCSAgICAAAJAAkACQCADQn9XDQAgBEHAAGogACABEPKAgIAAAkAgBCgCQEEBcUUNACAEIARB0ABqQcAAEN6BgIAAIgVBwABqIAUQ84CAgAAgBSkDQCEGIAUpA0ghByAFEPSAgIAANwMwIAcgBSkDCCIIhSAIIAggB30gBSkDACIJIAZUrX0iCoWDQgBTDQMgAkIAIAkgBn0gCkIAUxtWIAMgCkIAIApCAFUbIgpWIAMgClEbDQIgByADhUJ/hSAHIAcgA3wgBiACfCIDIAZUrXwiBoWDQgBTDQMgBSADNwMgIAUgBjcDKCAAIAEgBRD1gICAAAsgBEGQAWokgICAgAAPC0KDgICAkIYDELWAgIAAAAtCg4CAgICGAxC1gICAAAALEOWAgIAAAAvsAgQBfwF+AX8FfiOAgICAAEHQAGsiAySAgICAAAJAAkACQCACIAEQxICAgAAiBEIBELeAgIAARQ0AIARCARCGgICAACEEQQAhBQJAA0AgBUEYRg0BIANBCGogBWpCAjcDACAFQQhqIQUMAAsLAkAgBEL/AYNCzABSDQAgBEGogsCAAEEDIANBCGpBAxD5gICAACADQSBqIAMpAwgQ+ICAgAAgAygCIEEBcQ0AIAMpAzghBCADKQMwIQYgAykDQCEHIANBIGogAykDEBD6gICAACADKAIgQQFGDQAgAykDOCEIIAMpAzAhCSADQSBqIAMpAxgQ94CAgAAgAygCIEEBRw0CCwALIABCADcDCCAAQgA3AwAMAQsgAykDKCEKIAAgCTcDMCAAIAY3AxAgAEIANwMIIABCATcDACAAIAo3A0AgACAHNwMgIAAgCDcDOCAAIAQ3AxggAiABEMOAgIAACyADQdAAaiSAgICAAAvzAQIBfwR+I4CAgIAAQTBrIgIkgICAgAACQAJAEPSAgIAAIgMgASkDMCIEVA0AIAJBADYCLCACQRBqIAMgBH1CACABKQMAIAEpAwggAkEsahDYgYCAAAJAIAIoAiwNACABKQMQIgNQDQAgAiACKQMQIAIpAxggA0IAENuBgIAAIAEpAygiBCACKQMIIgOFIAQgBCADfSABKQMgIgUgAikDACIGVK19IgOFg0IAWQ0CCxDlgICAAAALQoOAgICghgMQtYCAgAAACyAAIANCACADQgBVGzcDCCAAQgAgBSAGfSADQgBTGzcDACACQTBqJICAgIAACz0CAX4BfwJAEKCAgIAAIgCnQf8BcSIBQQZGDQACQCABQcAARw0AIAAQk4CAgAAPCxDlgICAAAALIABCCIgL3AECAX8DfiOAgICAAEEwayIDJICAgIAAIAEgABDEgICAACEEIANBIGogAikDACACKQMIIAIpAxAQ1oCAgAACQAJAIAMoAiANACADKQMoIQUgA0EgaiACKQMgIAIpAygQ2YCAgAAgAygCIA0AIAMpAyghBiADQSBqIAIpAzAQ2ICAgAAgAygCIEEBRw0BCwALIAMgAykDKDcDGCADIAY3AxAgAyAFNwMIIARBqILAgABBAyADQQhqQQMQ2oCAgABCARCDgICAABogASAAEMOAgIAAIANBMGokgICAgAAL4wECAn8CfiOAgICAAEGQAWsiBCSAgICAAAJAAkAgA0J/Vw0AIARBwABqIAAgARDygICAAAJAIAQoAkBBAXFFDQAgBCAEQdAAakHAABDegYCAACIFQcAAaiAFEPOAgIAAIAUpA0giBiADhSAGIAYgA30gBSkDQCIHIAJUrX0iA4WDQgBTDQIgBSADQgAgA0IAVRs3AyggBUIAIAcgAn0gA0IAUxs3AyAgBRD0gICAADcDMCAAIAEgBRD1gICAAAsgBEGQAWokgICAgAAPC0KDgICAkIYDELWAgIAAAAsQ5YCAgAAAC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQk4CAgAAhAQsgACADNwMAIAAgATcDCAviAQICfwN+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCACEEQgEhBQJAIAFC/wGDQswAUg0AIAFB7IHAgABBAiACQQIQ+YCAgAAgAkEQaiACKQMAEPqAgIAAIAIoAhBBAUYNACACKQMoIQEgAikDICEGIAJBEGogAikDCBD3gICAACACKAIQDQAgAikDGCEEIAAgBjcDECAAIAQ3AyAgACABNwMYQgAhBUIAIQQLIAAgBTcDACAAIAQ3AwggAkEwaiSAgICAAAsxAAJAIAIgBEYNAAALIAAgAa1CIIZCBIQgA61CIIZCBIQgAq1CIIZCBIQQnYCAgAAaC30CAX8BfgJAAkACQAJAIAGnQf8BcSICQcUARg0AIAJBC0cNAiAAIAFCP4c3AxggACABQgiHNwMQDAELIAEQl4CAgAAhAyABEJiAgIAAIQEgACADNwMYIAAgATcDEAtCACEBDAELIABCg5CAgIABNwMIQgEhAQsgACABNwMAC/oBAgF/A34jgICAgABBIGsiASSAgICAAEHJgsCAAEEOEPyAgIAAEP2AgIAAIQIgABDVgICAACEDAkACQAJAAkAgAC0ANEEBRw0AIAFBCGpBv4HAgABBCBDQgICAACABKAIIDQIgAUEIaiABKQMQENGAgIAADAELIAFBCGpBuIHAgABBBxDQgICAACABKAIIDQEgAUEIaiABKQMQENGAgIAACyABKQMQIQQgASkDCFANAQsACyABIAQ3AxAgASADNwMIIAEgADUCMEIghkIEhDcDGCACQeCCwIAAQQMgAUEIakEDENqAgIAAEI2AgIAAGiABQSBqJICAgIAAC0UCAX8BfiOAgICAAEEQayICJICAgIAAIAIgACABENOBgIAAAkAgAigCAEEBRw0AAAsgAikDCCEDIAJBEGokgICAgAAgAwtjAwF/AX4BfyOAgICAAEEQayIBJICAgIAAIAEgADcDAEICIQJBASEDAkADQCADRQ0BIANBf2ohAyAAIQIMAAsLIAEgAjcDCCABQQhqQQEQqoCAgAAhACABQRBqJICAgIAAIAAL0gECAX8EfiOAgICAAEHgAGsiAySAgICAABCxgICAACADIAEgAhDygICAAAJAAkACQCADKAIAQQFxDQBC////////////ACEEQn8hBQwBCyADKQMQIQYgAykDGCEEIANB0ABqIANBEGoQ84CAgAAgBCADKQNYIgWFIAQgBCAFfSAGIAMpA1AiB1StfSIFhYNCf1cNASAFQgAgBUIAVRshBEIAIAYgB30gBUIAUxshBQsgACAFNwMAIAAgBDcDCCADQeAAaiSAgICAAA8LEOWAgIAAAAuiAwIBfwV+I4CAgIAAQcAAayIGJICAgIAAEO+AgIAAIAZBMGoQ3YCAgAAgBikDOCEHIAYpAzAhCAJAAkACQAJAAkAgBRDqgICAACIJUA0AQQIgBhCugICAAEICELeAgIAARQ0CIAZBADYCLCAGQRBqIAEgAiAJQgAgBkEsahDYgYCAACAGKAIsDQMgBikDECIJQo/OAHwiCkKenAFWIAYpAxgiCyAKIAlUrXwiCkIAUiAKUBsNAQsgBkEwaiABIAIgCCAHEICBgIAAIAYpAzAiCCEBIAYpAzgiByECDAMLIAYgCSALQpDOAEIAENuBgIAAIAIgBikDCCIJhSACIAIgCX0gASAGKQMAIglUrX0iCoWDQgBTDQEgBkEwaiABIAl9IAogCCAHEICBgIAAIAYpAzghByAGKQMwIQgMAgtCg4CAgNCDAxC1gICAAAALEOWAgIAAAAsCQCAIIANUIAcgBFMgByAEURtFDQBCg4CAgMD3AhC1gICAAAALIAAgCDcDECAAIAE3AwAgACAHNwMYIAAgAjcDCCAGQcAAaiSAgICAAAutAQEBfyOAgICAAEEwayIFJICAgIAAAkACQCADIASEUA0AAkAgASACQoCAgICAgICAgH+FhEIAUg0AIAMgBINCf1ENAQsgBUEgaiABIAIgAyAEENuBgIAAIAVBADYCHCAFIAUpAyAgBSkDKCADIAQgBUEcahDYgYCAACAFKAIcRQ0BCxDlgICAAAALIAUpAwghBCAAIAUpAwA3AwAgACAENwMIIAVBMGokgICAgAALvQQDAn8CfgN/I4CAgIAAQdABayIDJICAgIAAAkACQAJAAkACQCAAEKaAgIAAQf8BcSIEQQJGDQAgAUL/AYNCBFINAAJAAkAgAkICUg0AQgAhBQwBCyADIAIQ+ICAgAAgAygCAEEBcQ0BIAMpAxghAiADKQMQIQYgAykDICEAQgEhBQsQxYCAgAAQsYCAgAAgAyAEIAFCIIinIgcQ8oCAgAAgBachCAJAAkAgAygCACIJQQFxRQ0AIAhBAXFFDQAgAykDECAGhSADKQMYIAKFhEIAUg0BIAMpAyAgAFINAQwGCyAJIAhyQQFxRQ0FCyAIQQFxRQ0BIAJCAFMNAiAAQgBRDQICQAJAIAlBAXFFDQAgA0HQAGogA0EQaiIIQcAAEN6BgIAAGiADQfAAaiAIEPOAgIAAEPSAgIAAIQEMAQsQ9ICAgAAhASADQgA3A3ggA0IANwNwCyADIAY3A1AgAyAANwNgIAMgATcDgAEgAyACNwNYIAQgByADQdAAahD1gICAACADIAI3A6gBIAMgBjcDoAEgA0IANwOYASADIAU3A5ABIAMgBzYCwAEgAyAEOgDEASADIAA3A7ABIANBkAFqEPuAgIAADAMLAAsgByAEEMSAgIAAQgEQjoCAgAAaIANCADcDmAEgA0IANwOQASADIAc2AsABIAMgBDoAxAEgA0GQAWoQ+4CAgAAMAQtCg4CAgLCGAxC1gICAAAALIANB0AFqJICAgIAAQgIPC0KDgICAwIYDELWAgIAAAAuwAQECfyOAgICAAEGAAWsiAiSAgICAAAJAIAAQpoCAgABB/wFxIgNBAkYNACABQv8Bg0IEUg0AELGAgIAAIAJBMGogAyABQiCIpxDygICAAAJAAkAgAigCMEEBcQ0AQgAhAQwBCyACIAIpA0g3AxggAiACKQNANwMQIAIgAikDUDcDIEIBIQELIAIgATcDACACQgA3AwggAhDVgICAACEBIAJBgAFqJICAgIAAIAEPCwALoQEBAn8jgICAgABB8ABrIgIkgICAgAACQCAAEKaAgIAAQf8BcSIDQQJGDQAgAUL/AYNCBFINABCxgICAACACIAMgAUIgiKcQ8oCAgABCACEBQgAhAAJAIAIoAgBBAXFFDQAgAkHQAGpBEGogAkEQahDzgICAACACKQNoIQAgAikDYCEBCyABIAAQqYCAgAAhASACQfAAaiSAgICAACABDwsAC2cBAn8jgICAgABBEGsiAiSAgICAAAJAIAAQpoCAgABB/wFxIgNBAkYNACABQv8Bg0IEUg0AIAIgAyABQiCIpxD+gICAACACKQMAIAIpAwgQqYCAgAAhASACQRBqJICAgIAAIAEPCwAL1AECAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABD3gICAAAJAAkACQCABKAIAQQFGDQAgASkDCCEAEMWAgIAAELGAgIAAIABCkc4AWg0BEOuAgIAAIABRDQJBACABIABCAhCtgICAAEGkgMCAAEETEPyAgIAAEP2AgIAAIQIgASAAEK+AgIAANwMAIAJBwIDAgABBASABQQEQ2oCAgAAQjYCAgAAaIAFBEGokgICAgABCAg8LAAtCg4CAgMCDAxC1gICAAAALQoOAgIDggwMQtYCAgAAAC/ICBAF/AX4DfwF+I4CAgIAAQSBrIgIkgICAgAACQAJAAkACQAJAIABC/wGDQgRSDQACQAJAIAFCAlINAEIAIQMMAQsgAkEQaiABEPeAgIAAIAIoAhBBAUYNASACKQMYIQFCASEDCxDFgICAABCxgICAACACIABCIIinIgQQ7ICAgAAgA6chBQJAAkAgAigCACIGQQFHDQAgBUUNACACKQMIIAFSDQEMBgsgBiAFckEBcUUNBQsgBUUNASABQpHOAFoNAkEBIAQgAUIBEK2AgIAAIAQQwYCAgAAMAwsAC0EBIAQQroCAgABCARCOgICAABoMAQtCg4CAgMCDAxC1gICAAAALQciAwIAAQQsQ/ICAgAAQ/YCAgAAhByACIAMgARDXgICAADcDGCACIABChICAgHCDNwMQIAdB1IDAgABBAiACQRBqQQIQ2oCAgAAQjYCAgAAaIAJBIGokgICAgABCAg8LQoOAgIDggwMQtYCAgAAAC8QBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkAgAEL/AYNCzQBSDQAQxYCAgAAQsYCAgAAgARDugICAAAJAIAEoAgBBAUcNACABKQMIIAAQyoCAgAANAgtBAiABEK6AgIAAIABCAhCDgICAABpB5IDAgABBFxD8gICAABD9gICAACECIAEgADcDACACQZCBwIAAQQEgAUEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDggwMQtYCAgAAACxQAELGAgIAAEOuAgIAAEK+AgIAAC1cBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRRDQAACxCxgICAACABIABCIIinEOyAgIAAIAEpAwAgASkDCBDXgICAACEAIAFBEGokgICAgAAgAAspAAJAIABC/wGDQgRRDQAACxCxgICAACAAQiCIpxDqgICAABCvgICAAAsOABCxgICAABDtgICAAAvDAQICfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AEMWAgIAAELGAgIAAEPCAgIAAIAJzQQFxRQ0BENOAgIAAIAKtIgBCAhCDgICAABpBnoHAgABBChD8gICAABD9gICAACEDIAEgADcDCCADQbCBwIAAQQEgAUEIakEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDwhAMQtYCAgAAACw8AELGAgIAAEPCAgIAArQuGBQcBfwN+AX8CfgF/AX4CfyOAgICAAEGgAWsiASSAgICAACABIAAQj4GAgAACQAJAAkACQCABKAIAQQFxDQAgASkDGCEAIAEpAyghAiABKQMgIQMgASkDECEEIAEoAlAhBRCxgICAACAAQn9XDQEQj4CAgAAaIAEgBCAAIAMgAiAFEP+AgIAAIAEpAwgiAiABKQMYIgOFIAIgAiADfSABKQMAIgQgASkDECIGVK19IgCFg0IAUw0CAkACQCAEIAZ9IgdCAFIgAEIAVSAAUBsNABCPgICAACEADAELIAFBIGohCEH4gsCAAEEHEJCBgIAAIQkgASAANwMIIAEgBzcDACABIAk3AxAgAUICNwOAASABIQpBASELAkADQCALQQFxRQ0BIApBEGopAwAhACABQegAaiAKKQMAIAopAwgQ2YCAgAAgASgCaEEBRg0DIAEgASkDcDcDmAEgASAANwOQASABQeSIwIAAQQIgAUGQAWpBAhDagICAADcDgAFBACELIAghCgwACwsgAUGAAWpBARCqgICAACEACyABQRBqQQEgBRD+gICAACABQZABaiABKQMQIAEpAxgQ2YCAgAAgASgCkAENACABKQOYASEHIAFBkAFqQgBCABDZgICAACABKAKQAUEBRg0AIAEgASkDmAE3A4gBIAEgBzcDgAFBrIjAgABBAiABQYABakECENqAgIAAIQcgAUGQAWogBCACIAYgAxCRgYCAACABKAKQAUEBRw0DCwALQoOAgICA9wIQtYCAgAAACxDlgICAAAALIAEgASkDmAE3A3ggASAANwNwIAEgBzcDaCABQegAakEDEKqAgIAAIQAgAUGgAWokgICAgAAgAAuGAwICfwl+I4CAgIAAQeAAayICJICAgIAAQQAhAwJAA0AgA0E4Rg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgAhBEIBIQUCQCABQv8Bg0LMAFINACABQeSHwIAAQQcgAkEIakEHEPmAgIAAIAJBwABqIAIpAwgQ+oCAgAAgAigCQEEBRg0AIAIpAxAiAUL/AYNCyABSDQAgAikDGCIGQv8Bg0IEUg0A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CyAEQRBqIAZqQgI3AwAgBkEIaiEGDAALCxEAQoSAgIAQQgQQooGAgAAbCwgAEMaAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQyICAgAAgACkDACAAKQMIEJiBgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQzICAgAAgACkDACAAKQMIEJiBgIAAIQEgAEEQaiSAgICAACABCzwBAX4CQCAAQv8Bg0LNAFENAAALELGAgIAAEMeAgIAAIQEQy4CAgAAgABCngYCAACABIAAQroGAgABCAgthAgF/AX4jgICAgABBEGsiAiSAgICAAEGRicCAAEEVEPyAgIAAEP2AgIAAIQMgAiAANwMIIAIgATcDACADQbiJwIAAQQIgAkECENqAgIAAEI2AgIAAGiACQRBqJICAgIAAC/wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AELGAgIAAEMeAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahDMgICAACACKQMQIQEgAikDCEGJCBDJgICAACABIAAQyoCAgABFDQMQsIGAgABB/InAgABBHBD8gICAABD9gICAACEAIAIgAzcDECACIAE3AwggAEG0isCAAEECIAJBCGpBAhDagICAABCNgICAABoMAQsQsYGAgAAgAUIgiKdJDQNBASAAQgAQsoGAgABBARDNgICAAEIAIAFChICAgHCDIgEgARCIgICAABpByInAgABBFhD8gICAABD9gICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARB5InAgABBAyACQQhqQQMQ2oCAgAAQjYCAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDwgAEQtYCAgAAAC0KDgICAgIEBELWAgIAAAAsTAEEBEM2AgIAAQgAQjoCAgAAaCzMBAn4QoYCAgAAhAAJAEKKAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LEOWAgIAAAAsVACAAEM2AgIAAIAEgAhCDgICAABoLiAECAX8CfiOAgICAAEEQayIAJICAgIAAELGAgIAAIAAQzICAgAAgACkDCCEBIAApAwBBiQgQyYCAgAAgARCJgICAABogABDOgICAAAJAIAAoAgANABC+gICAAAALIAApAwghAhCwgYCAACABEKeBgIAAIAIgARCugYCAACAAQRBqJICAgIAAQgILhAECAX8CfiOAgICAAEEQayIAJICAgIAAELGAgIAAEMeAgIAAIQEQy4CAgABBABDNgICAAEICEI6AgIAAGkHEisCAAEETEPyAgIAAEP2AgIAAIQIgACABNwMIIAJB2IrAgABBASAAQQhqQQEQ2oCAgAAQjYCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxC2gYCAAEICDwsACxsAIACtQiCGQgSEIAGtQiCGQgSEEKSAgIAAGgu8BAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQuIGAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARC4gYCAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGBDFgICAABCxgICAAAJAAkACQBC/gICAAA0AELGBgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AELWAgIAAAAtCg4CAgMD/ABC1gICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEKWBgIAADAELQQEQwICAgABCAhCOgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEKaBgIAADAELQQIQwICAgABCAhCOgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEGMi8CAAEEPEPyAgIAAEP2AgIAAIQAgAkEoahC5gYCAACEBIAIgAkE0ahC5gYCAADcDSCACIAE3A0AgAEGwi8CAAEECIAJBwABqQQIQ2oCAgAAQjYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABENSBgIAAAkAgAigCBEUNACAAQQI2AgAM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bmRfY29tcG9zZUVuZHBvaW50UGVlcmVpZHBlZXIAXAIQAAMAAABfAhAABAAAAG1zZ190eXBlb3B0aW9ucwBcAhAAAwAAAHQCEAAIAAAAfAIQAAcAAABFbmZvcmNlZE9wdGlvbnNlbmZvcmNlZF9vcHRpb25fc2V0ZW5mb3JjZWRfb3B0aW9uX3BhcmFtc74CEAAWAAAAYW1vdW50X3JlY2VpdmVkX2xkYW1vdW50X3NlbnRfbGRkc3RfZWlkZnJvbWd1aWQA3AIQABIAAADuAhAADgAAAPwCEAAHAAAAAwMQAAQAAAAHAxAABAAAAG9mdF9yZWNlaXZlZHNyY19laWR0bwAAANwCEAASAAAABwMQAAQAAABAAxAABwAAAEcDEAACAAAAbXNnX2luc3BlY3Rvcl9zZXRpbnNwZWN0b3IAAH0DEAAJAAAARGVjaW1hbHNEaWZmVG9rZW5Nc2dJbnNwZWN0b3JhbW91bnRfbGRjb21wb3NlX21zZ2V4dHJhX29wdGlvbnNtaW5fYW1vdW50X2xkb2Z0X2NtZAAArQMQAAkAAAC2AxAACwAAAPwCEAAHAAAAwQMQAA0AAADOAxAADQAAANsDEAAHAAAARwMQAAIAAABtYXhfYW1vdW50X2xkAAAAHAQQAA0AAADOAxAADQAAANwCEAASAAAA7gIQAA4AAABkZXNjcmlwdGlvbmZlZV9hbW91bnRfbGRMBBAACwAAAFcEEAANAAAAAAAAEgAAAAAAAAAAAAAAEgAAAAF0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXKmBBAACQAAAK8EEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAKYEEAAJAAAArwQQAAkAAADeBBAAAwAAAG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWRjYW5jZWxsZWRfcGVuZGluZ19vd25lcm93bmVyGAUQABcAAAAvBRAABQAAAG93bmVyc2hpcF9yZW5vdW5jZWQArwQQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAcQUQAAkAAACIBBAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAJsFEAAIAAAAowUQAAoAAAB0dGxfY29uZmln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aXJlY3Rpb25gIC0gVGhlIGRpcmVjdGlvbiAoSW5ib3VuZCBvciBPdXRib3VuZCkKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBjb25maWdgIC0gVGhlIHJhdGUgbGltaXQgY29uZmlndXJhdGlvbiwgb3IgTm9uZSB0byByZW1vdmUgdGhlIHJhdGUgbGltaXQAAAAAAA5zZXRfcmF0ZV9saW1pdAAAAAAAAwAAAAAAAAAJZGlyZWN0aW9uAAAAAAAH0AAAAAlEaXJlY3Rpb24AAAAAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAZjb25maWcAAAAAA+gAAAfQAAAAD1JhdGVMaW1pdENvbmZpZwAAAAAAAAAAAAAAAG9SZXR1cm5zIHRoZSByYXRlIGxpbWl0IGNvbmZpZ3VyYXRpb24gZm9yIGEgZGlyZWN0aW9uIGFuZCBlbmRwb2ludC4KUmV0dXJucyBOb25lIGlmIG5vIHJhdGUgbGltaXQgaXMgY29uZmlndXJlZC4AAAAAEXJhdGVfbGltaXRfY29uZmlnAAAAAAAAAgAAAAAAAAAJZGlyZWN0aW9uAAAAAAAH0AAAAAlEaXJlY3Rpb24AAAAAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAfQAAAAD1JhdGVMaW1pdENvbmZpZwAAAAAAAAAAQlJldHVybnMgdGhlIGN1cnJlbnQgaW4tZmxpZ2h0IGFtb3VudCBmb3IgYSBkaXJlY3Rpb24gYW5kIGVuZHBvaW50LgAAAAAAFHJhdGVfbGltaXRfaW5fZmxpZ2h0AAAAAgAAAAAAAAAJZGlyZWN0aW9uAAAAAAAH0AAAAAlEaXJlY3Rpb24AAAAAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAsAAAAAAAAAblJldHVybnMgdGhlIGF2YWlsYWJsZSBjYXBhY2l0eSBmb3IgYSBkaXJlY3Rpb24gYW5kIGVuZHBvaW50LgpSZXR1cm5zIGkxMjg6Ok1BWCBpZiBubyByYXRlIGxpbWl0IGlzIGNvbmZpZ3VyZWQuAAAAAAATcmF0ZV9saW1pdF9jYXBhY2l0eQAAAAACAAAAAAAAAAlkaXJlY3Rpb24AAAAAAAfQAAAACURpcmVjdGlvbgAAAAAAAAAAAAADZWlkAAAAAAQAAAABAAAACwAAAAAAAAAqU2V0cyB0aGUgZGVmYXVsdCBmZWUgcmF0ZSBpbiBiYXNpcyBwb2ludHMuAAAAAAATc2V0X2RlZmF1bHRfZmVlX2JwcwAAAAABAAAAAAAAAA9kZWZhdWx0X2ZlZV9icHMAAAAABgAAAAAAAAAAAAAAx1NldHMgb3IgcmVtb3ZlcyB0aGUgZmVlIHJhdGUgZm9yIGEgc3BlY2lmaWMgZGVzdGluYXRpb24gZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBkc3RfZWlkYCAtIFRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRAoqIGBmZWVfYnBzYCAtIFRoZSBmZWUgcmF0ZSAoMC0xMCwwMDApLCBvciBOb25lIHRvIHJlbW92ZSB0aGUgZmVlIGNvbmZpZ3VyYXRpb24AAAAAC3NldF9mZWVfYnBzAAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAHZmVlX2JwcwAAAAPoAAAABgAAAAAAAAAAAAAAOFNldHMgdGhlIGFkZHJlc3Mgd2hlcmUgY29sbGVjdGVkIGZlZXMgd2lsbCBiZSBkZXBvc2l0ZWQuAAAAF3NldF9mZWVfZGVwb3NpdF9hZGRyZXNzAAAAAAEAAAAAAAAAE2ZlZV9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAAAAAAALVJldHVybnMgdGhlIGRlZmF1bHQgZmVlIHJhdGUgaW4gYmFzaXMgcG9pbnRzLgAAAAAAAA9kZWZhdWx0X2ZlZV9icHMAAAAAAAAAAAEAAAAGAAAAAAAAADhSZXR1cm5zIHRoZSBmZWUgcmF0ZSBmb3IgYSBzcGVjaWZpYyBkZXN0aW5hdGlvbiwgaWYgc2V0LgAAAAdmZWVfYnBzAAAAAAEAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAPoAAAABgAAAAAAAABTUmV0dXJucyB0aGUgZWZmZWN0aXZlIGZlZSByYXRlIGZvciBhIGRlc3RpbmF0aW9uIChkZXN0aW5hdGlvbi1zcGVjaWZpYyBvciBkZWZhdWx0KS4AAAAAEWVmZmVjdGl2ZV9mZWVfYnBzAAAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAAYAAAAAAAAAIFJldHVybnMgdGhlIGZlZSBkZXBvc2l0IGFkZHJlc3MuAAAAE2ZlZV9kZXBvc2l0X2FkZHJlc3MAAAAAAAAAAAEAAAATAAAAAAAAALNTZXRzIHRoZSBwYXVzZWQgc3RhdGUgb2YgdGhlIE9GVC4KCldoZW4gcGF1c2VkLCB0aGUgT0ZUIHdpbGwgcmVqZWN0IG5ldyBzZW5kL3JlY2VpdmUvcXVvdGVfc2VuZC9xdW90ZV9vZnQgb3BlcmF0aW9ucy4KCiMgQXJndW1lbnRzCiogYHBhdXNlZGAgLSBgdHJ1ZWAgdG8gcGF1c2UsIGBmYWxzZWAgdG8gdW5wYXVzZQAAAAAKc2V0X3BhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAAAAAAkUmV0dXJucyB0aGUgcGF1c2VkIHN0YXRlIG9mIHRoZSBPRlQuAAAACWlzX3BhdXNlZAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAACXF1b3RlX29mdAAAAAAAAAEAAAAAAAAACnNlbmRfcGFyYW0AAAAAB9AAAAAJU2VuZFBhcmFtAAAAAAAAAQAAA+0AAAADAAAH0AAAAAhPRlRMaW1pdAAAA+oAAAfQAAAADE9GVEZlZURldGFpbAAAB9AAAAAKT0ZUUmVjZWlwdAAAAAAAAAAAADVSZXRyaWV2ZXMgdGhlIHRva2VuIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMgT0ZULgAAAAAAAAV0b2tlbgAAAAAAAAAAAAABAAAAEwAAAAAAAAAmUmV0dXJucyBPRlQgdmVyc2lvbiBhcyAobWFqb3IsIG1pbm9yKS4AAAAAAAtvZnRfdmVyc2lvbgAAAAAAAAAAAQAAA+0AAAACAAAABgAAAAYAAAAAAAAAQVJldHJpZXZlcyB0aGUgc2hhcmVkIGRlY2ltYWxzIHVzZWQgZm9yIGNyb3NzLWNoYWluIG5vcm1hbGl6YXRpb24uAAAAAAAAD3NoYXJlZF9kZWNpbWFscwAAAAAAAAAAAQAAAAQAAAAAAAAASVJldHJpZXZlcyB0aGUgZGVjaW1hbCBjb252ZXJzaW9uIHJhdGUgdXNlZCBmb3IgY3Jvc3MtY2hhaW4gbm9ybWFsaXphdGlvbi4AAAAAAAAXZGVjaW1hbF9jb252ZXJzaW9uX3JhdGUAAAAAAAAAAAEAAAALAAAAAAAAAOpXaGV0aGVyIGEgc2VwYXJhdGUgdG9rZW4gYXBwcm92YWwgaXMgcmVxdWlyZWQgYmVmb3JlIHNlbmRpbmcuCgpIZWxwcyB3YWxsZXQgaW1wbGVtZW50ZXJzIGRldGVybWluZSBpbnRlZ3JhdGlvbiByZXF1aXJlbWVudHMuCgojIFJldHVybnMKLSBgdHJ1ZWAgaWYgYSBzZXBhcmF0ZSB0b2tlbiBhcHByb3ZhbCBzdGVwIGlzIHJlcXVpcmVkCi0gYGZhbHNlYCBpZiBubyBzZXBhcmF0ZSBhcHByb3ZhbCBpcyBuZWVkZWQAAAAAABFhcHByb3ZhbF9yZXF1aXJlZAAAAAAAAAAAAAABAAAAAQAAAAAAAAAtUmV0dXJucyB0aGUgbWVzc2FnZSBpbnNwZWN0b3IgYWRkcmVzcyBpZiBzZXQuAAAAAAAADW1zZ19pbnNwZWN0b3IAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAWVTZXRzIG9yIHJlbW92ZXMgdGhlIG1lc3NhZ2UgaW5zcGVjdG9yIGFkZHJlc3MuCgpUaGUgbWVzc2FnZSBpbnNwZWN0b3IgaXMgYW4gb3B0aW9uYWwgY29udHJhY3QgdGhhdCB2YWxpZGF0ZXMgb3V0Z29pbmcgbWVzc2FnZXMKYW5kIG9wdGlvbnMgYmVmb3JlIHRoZXkgYXJlIHNlbnQgY3Jvc3MtY2hhaW4uIElmIHNldCwgdGhlIGluc3BlY3RvcidzIGBpbnNwZWN0YAptZXRob2Qgd2lsbCBiZSBjYWxsZWQgZHVyaW5nIGBzZW5kYCBhbmQgYHF1b3RlX3NlbmRgIG9wZXJhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGBpbnNwZWN0b3JgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGluc3BlY3RvciBjb250cmFjdCwgb3IgTm9uZSB0byByZW1vdmUAAAAAAAARc2V0X21zZ19pbnNwZWN0b3IAAAAAAAABAAAAAAAAAAlpbnNwZWN0b3IAAAAAAAPoAAAAEwAAAAAAAAAAAAAAO1F1b3RlcyBhIHNlbmQgb3BlcmF0aW9uIGluY2x1ZGluZyBMYXllclplcm8gbWVzc2FnaW5nIGZlZXMuAAAAAApxdW90ZV9zZW5kAAAAAAADAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAKc2VuZF9wYXJhbQAAAAAH0AAAAAlTZW5kUGFyYW0AAAAAAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAABAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAAAAAAAdFNlbmRzIHRva2VucyBjcm9zcy1jaGFpbiB0byBhbm90aGVyIGVuZHBvaW50LgoKRnJvbSBtdXN0IGJlIGF1dGhlbnRpY2F0ZWQuCgojIFJldHVybnMKKE1lc3NhZ2luZ1JlY2VpcHQsIE9GVFJlY2VpcHQpAAAABHNlbmQAAAAEAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAKc2VuZF9wYXJhbQAAAAAH0AAAAAlTZW5kUGFyYW0AAAAAAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAAAAAAAAOcmVmdW5kX2FkZHJlc3MAAAAAABMAAAABAAAD7QAAAAIAAAfQAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAfQAAAACk9GVFJlY2VpcHQAAAAAAAAAAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAAGAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAhkZWxlZ2F0ZQAAA+gAAAATAAAAAAAAAA9zaGFyZWRfZGVjaW1hbHMAAAAABAAAAAAAAAAIb2Z0X3R5cGUAAAfQAAAAB09mdFR5cGUAAAAAAAAAAAAAAABDUmV0dXJucyB0aGUgdHlwZSBvZiBvcGVyYXRpb24gZm9yIHRoaXMgT0ZUIChMb2NrVW5sb2NrIG9yIE1pbnRCdXJuKQAAAAAIb2Z0X3R5cGUAAAAAAAAAAQAAB9AAAAAHT2Z0VHlwZQAAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAErVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAAAAAAArlJldHJpZXZlcyB0aGUgT0FwcCB2ZXJzaW9uIGluZm9ybWF0aW9uLgoKIyBSZXR1cm5zCkEgdHVwbGUgY29udGFpbmluZzoKLSBgc2VuZGVyX3ZlcnNpb25gOiBUaGUgdmVyc2lvbiBvZiB0aGUgT0FwcFNlbmRlcgotIGByZWNlaXZlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBSZWNlaXZlcgAAAAAADG9hcHBfdmVyc2lvbgAAAAAAAAABAAAD7QAAAAIAAAAGAAAABgAAAAAAAABsUmV0cmlldmVzIHRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggdGhlIE9BcHAuCgojIFJldHVybnMKVGhlIExheWVyWmVybyBlbmRwb2ludCBhZGRyZXNzAAAACGVuZHBvaW50AAAAAAAAAAEAAAATAAAAAAAAAMFSZXRyaWV2ZXMgdGhlIHBlZXIgKE9BcHApIGFzc29jaWF0ZWQgd2l0aCBhIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECgojIFJldHVybnMKVGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGVuZHBvaW50AAAAAAAABHBlZXIAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAD7gAAACAAAAAAAAAA5VNldHMgb3IgcmVtb3ZlcyB0aGUgcGVlciBhZGRyZXNzIChPQXBwIGluc3RhbmNlKSBmb3IgYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBwZWVyYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBwZWVyIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIHBlZXIAAAAAAAAIc2V0X3BlZXIAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAEcGVlcgAAA+gAAAPuAAAAIAAAAAAAAAAAAAAAjlNldHMgdGhlIGRlbGVnYXRlIGFkZHJlc3MgZm9yIHRoZSBPQXBwIENvcmUuCgojIEFyZ3VtZW50cwoqIGBkZWxlZ2F0ZWAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgZGVsZWdhdGUgdG8gYmUgc2V0LCBvciBOb25lIHRvIHJlbW92ZSB0aGUgZGVsZWdhdGUAAAAAAAxzZXRfZGVsZWdhdGUAAAABAAAAAAAAAAhkZWxlZ2F0ZQAAA+gAAAATAAAAAAAAAAAAAAC3Q2hlY2tzIGlmIGEgbWVzc2FnaW5nIHBhdGggY2FuIGJlIGluaXRpYWxpemVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luLgoKIyBBcmd1bWVudHMKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gb2YgdGhlIG1lc3NhZ2UKCiMgUmV0dXJucwpUcnVlIGlmIHRoZSBwYXRoIGNhbiBiZSBpbml0aWFsaXplZCwgZmFsc2Ugb3RoZXJ3aXNlAAAAABVhbGxvd19pbml0aWFsaXplX3BhdGgAAAAAAAABAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAABAAAAAQAAAAAAAAH4UmV0cmlldmVzIHRoZSBuZXh0IG5vbmNlIGZvciBhIGdpdmVuIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3MuCgpUaGUgcGF0aCBub25jZSBzdGFydHMgZnJvbSAxLiBJZiAwIGlzIHJldHVybmVkIGl0IG1lYW5zIHRoYXQgdGhlcmUgaXMgTk8gbm9uY2Ugb3JkZXJlZCBlbmZvcmNlbWVudC4KVGhpcyBpcyByZXF1aXJlZCBieSB0aGUgb2ZmLWNoYWluIGV4ZWN1dG9yIHRvIGRldGVybWluZSBpZiB0aGUgT0FwcCBleHBlY3RzIG1lc3NhZ2UgZXhlY3V0aW9uIHRvIGJlIG9yZGVyZWQuClRoaXMgaXMgYWxzbyBlbmZvcmNlZCBieSB0aGUgT0FwcC4KQnkgZGVmYXVsdCB0aGlzIGlzIE5PVCBlbmFibGVkLCBpLmUuIG5leHRfbm9uY2UgaXMgaGFyZGNvZGVkIHRvIHJldHVybiAwLgoKIyBBcmd1bWVudHMKKiBgc3JjX2VpZGAgLSBUaGUgc291cmNlIGVuZHBvaW50IElECiogYHNlbmRlcmAgLSBUaGUgc2VuZGVyIE9BcHAgYWRkcmVzcwoKIyBSZXR1cm5zClRoZSBuZXh0IG5vbmNlAAAACm5leHRfbm9uY2UAAAAAAAIAAAAAAAAAB3NyY19laWQAAAAABAAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAEAAAAGAAAAAAAAAyNFbnRyeSBwb2ludCBmb3IgcmVjZWl2aW5nIG1lc3NhZ2VzIG9yIHBhY2tldHMgZnJvbSB0aGUgTGF5ZXJaZXJvIGVuZHBvaW50LgoKVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgYGNsZWFyX3BheWxvYWRfYW5kX3RyYW5zZmVyYCB0byB2YWxpZGF0ZSB0aGUgbWVzc2FnZQphbmQgY2xlYXIgaXQgZnJvbSB0aGUgZW5kcG9pbnQsIHRoZW4gZGVsZWdhdGVzIHRvIGBfX2x6X3JlY2VpdmVgIGZvciBhcHBsaWNhdGlvbiBsb2dpYy4KCiMgQXJndW1lbnRzCiogYGV4ZWN1dG9yYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBleGVjdXRvciBmb3IgdGhlIHJlY2VpdmVkIG1lc3NhZ2UKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gaW5mb3JtYXRpb24gY29udGFpbmluZyB0aGUgc291cmNlIGVuZHBvaW50IGFuZCBzZW5kZXIgYWRkcmVzczoKLSBgc3JjX2VpZGA6IFRoZSBzb3VyY2UgY2hhaW4gZW5kcG9pbnQgSUQKLSBgc2VuZGVyYDogVGhlIHNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4KLSBgbm9uY2VgOiBUaGUgbm9uY2Ugb2YgdGhlIG1lc3NhZ2UKKiBgZ3VpZGAgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZWNlaXZlZCBMYXllclplcm8gbWVzc2FnZQoqIGBtZXNzYWdlYCAtIFRoZSBwYXlsb2FkIG9mIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYGV4dHJhX2RhdGFgIC0gQWRkaXRpb25hbCBhcmJpdHJhcnkgZGF0YSBwcm92aWRlZCBieSB0aGUgY29ycmVzcG9uZGluZyBleGVjdXRvcgoqIGB2YWx1ZWAgLSBUaGUgbmF0aXZlIHRva2VuIHZhbHVlIHNlbnQgd2l0aCB0aGUgbWVzc2FnZQAAAAAKbHpfcmVjZWl2ZQAAAAAABgAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAexJbmRpY2F0ZXMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFwcHJvdmVkIGNvbXBvc2VNc2cgc2VuZGVyIHRvIHRoZSBFbmRwb2ludC4KCkFwcGxpY2F0aW9ucyBjYW4gb3B0aW9uYWxseSBjaG9vc2UgdG8gaW1wbGVtZW50IHNlcGFyYXRlIGNvbXBvc2VNc2cgc2VuZGVycyB0aGF0IGFyZSBOT1QgdGhlIGJyaWRnaW5nIGxheWVyLgpUaGUgZGVmYXVsdCBzZW5kZXIgSVMgdGhlIE9BcHBSZWNlaXZlciBpbXBsZW1lbnRlci4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3MKKiBgbWVzc2FnZWAgLSBUaGUgbHpSZWNlaXZlIHBheWxvYWQKKiBgc2VuZGVyYCAtIFRoZSBzZW5kZXIgYWRkcmVzcyB0byBjaGVjawoKIyBSZXR1cm5zClRydWUgaWYgdGhlIHNlbmRlciBpcyBhIHZhbGlkIGNvbXBvc2VNc2cgc2VuZGVyLCBmYWxzZSBvdGhlcndpc2UAAAAVaXNfY29tcG9zZV9tc2dfc2VuZGVyAAAAAAAAAwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAAABAAAAAAAAANlSZXRyaWV2ZXMgdGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZS4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgbXNnX3R5cGVgIC0gVGhlIE9BcHAgbWVzc2FnZSB0eXBlCgojIFJldHVybnMKVGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIHRoZSBnaXZlbiBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlAAAAAAAAEGVuZm9yY2VkX29wdGlvbnMAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAIbXNnX3R5cGUAAAAEAAAAAQAAAA4AAAAAAAACm1NldHMgdGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIHNwZWNpZmljIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUgY29tYmluYXRpb25zLgoKT25seSB0aGUgYGF1dGhvcml6ZXJgIG9mIHRoZSBPQXBwIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uClByb3ZpZGVzIGEgd2F5IGZvciB0aGUgT0FwcCB0byBlbmZvcmNlIHRoaW5ncyBsaWtlIHBheWluZyBmb3IgUHJlQ3JpbWUsIEFORC9PUiBtaW5pbXVtIGRzdCBselJlY2VpdmUgZ2FzIGFtb3VudHMgZXRjLgpUaGVzZSBlbmZvcmNlZCBvcHRpb25zIGNhbiB2YXJ5IGFzIHRoZSBwb3RlbnRpYWwgb3B0aW9ucy9leGVjdXRpb24gb24gdGhlIHJlbW90ZSBtYXkgZGlmZmVyIGFzIHBlciB0aGUgbXNnX3R5cGUuCmUuZy4gQW1vdW50IG9mIGx6UmVjZWl2ZSgpIGdhcyBuZWNlc3NhcnkgdG8gZGVsaXZlciBhIGx6Q29tcG9zZSgpIG1lc3NhZ2UgYWRkcyBvdmVyaGVhZCB5b3UgZG9uJ3Qgd2FudCB0byBwYXkKaWYgeW91IGFyZSBvbmx5IG1ha2luZyBhIHN0YW5kYXJkIExheWVyWmVybyBtZXNzYWdlIGllLiBselJlY2VpdmUoKSBXSVRIT1VUIHNlbmRDb21wb3NlKCkuCgojIEFyZ3VtZW50cwoqIGBvcHRpb25zYCAtIEEgdmVjdG9yIG9mIEVuZm9yY2VkT3B0aW9uUGFyYW0gc3RydWN0dXJlcyBzcGVjaWZ5aW5nIGVuZm9yY2VkIG9wdGlvbnMAAAAAFHNldF9lbmZvcmNlZF9vcHRpb25zAAAAAQAAAAAAAAAHb3B0aW9ucwAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAAAAAACekNvbWJpbmVzIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZS4KCklmIHRoZXJlIGlzIGFuIGVuZm9yY2VkIGx6UmVjZWl2ZSBvcHRpb246Ci0ge2dhc19saW1pdDogMjAwaywgdmFsdWU6IDEgWExNfSBBTkQgYSBjYWxsZXIgc3VwcGxpZXMgYSBselJlY2VpdmUgb3B0aW9uOiB7Z2FzX2xpbWl0OiAxMDBrLCB2YWx1ZTogMC41IFhMTX0KLSBUaGUgcmVzdWx0aW5nIG9wdGlvbnMgd2lsbCBiZSB7Z2FzX2xpbWl0OiAzMDBrLCB2YWx1ZTogMS41IFhMTX0gd2hlbiB0aGUgbWVzc2FnZSBpcyBleGVjdXRlZCBvbiB0aGUgcmVtb3RlIGx6X3JlY2VpdmUoKSBmdW5jdGlvbi4KVGhlIHByZXNlbmNlIG9mIGR1cGxpY2F0ZWQgb3B0aW9ucyBpcyBoYW5kbGVkIG9mZi1jaGFpbiBpbiB0aGUgdmVyaWZpZXIvZXhlY3V0b3IuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoqIGBleHRyYV9vcHRpb25zYCAtIEFkZGl0aW9uYWwgb3B0aW9ucyBwYXNzZWQgYnkgdGhlIGNhbGxlcgoKIyBSZXR1cm5zClRoZSBjb21iaW5hdGlvbiBvZiBjYWxsZXIgc3BlY2lmaWVkIG9wdGlvbnMgQU5EIGVuZm9yY2VkIG9wdGlvbnMAAAAAAA9jb21iaW5lX29wdGlvbnMAAAAAAwAAAAAA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bmF0aXZlIHRva2VuIGZlZSBpcyBsZXNzIHRoYW4gcmVxdWlyZWQAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAsU3VwcGxpZWQgWlJPIHRva2VuIGZlZSBpcyBsZXNzIHRoYW4gcmVxdWlyZWQAAAASSW5zdWZmaWNpZW50WnJvRmVlAAAAAAAHAAAAK1RpbWVvdXQgZXhwaXJ5IGlzIGludmFsaWQgKGFscmVhZHkgZXhwaXJlZCkAAAAADUludmFsaWRFeHBpcnkAAAAAAAAIAAAAIEZlZSBhbW91bnQgaXMgaW52YWxpZCAobmVnYXRpdmUpAAAAEEludmFsaWRGZWVBbW91bnQAAAAJAAAAK0NvbXBvc2UgaW5kZXggZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgdmFsdWUAAAAADEludmFsaWRJbmRleAAAAAoAAAAsTm9uY2UgaXMgaW52YWxpZCBmb3IgdGhlIHJlcXVlc3RlZCBvcGVyYXRpb24AAAAMSW52YWxpZE5vbmNlAAAACwAAADBQYXlsb2FkIGhhc2ggaXMgaW52YWxpZCAoZW1wdHkgaGFzaCBub3QgYWxsb3dlZCkAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAQVJlY2VpdmUgbGlicmFyeSBpcyBub3QgdmFsaWQgZm9yIHRoZSByZWNlaXZlciBhbmQgc291cmNlIGVuZHBvaW50AAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAxT3BlcmF0aW9uIHJlcXVpcmVzIGEgbm9uLWRlZmF1bHQgKGN1c3RvbSkgbGlicmFyeQAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAnTGlicmFyeSBtdXN0IHN1cHBvcnQgcmVjZWl2aW5nIG1lc3NhZ2VzAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAACxMaWJyYXJ5IG11c3QgYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBlbmRwb2ludAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAlTGlicmFyeSBtdXN0IHN1cHBvcnQgc2VuZGluZyBtZXNzYWdlcwAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAOU1lc3NhZ2luZyBwYXRoIGNhbm5vdCBiZSBpbml0aWFsaXplZCBmb3IgdGhlIGdpdmVuIG9yaWdpbgAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAvTWVzc2FnZSBjYW5ub3QgYmUgdmVyaWZpZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4AAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAACtQYXlsb2FkIGhhc2ggZG9lcyBub3QgbWF0Y2ggdGhlIHN0b3JlZCBoYXNoAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAnTmV3IHZhbHVlIGlzIHRoZSBzYW1lIGFzIGV4aXN0aW5nIHZhbHVlAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAL0NhbGxlciBpcyBub3QgYXV0aG9yaXplZCAobm90IE9BcHAgb3IgZGVsZWdhdGUpAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAK0VuZHBvaW50IElEIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGxpYnJhcnkAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAOVpSTyBmZWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyB3aGVuIHBheV9pbl96cm8gaXMgdHJ1ZQAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAHFpSTyB0b2tlbiBhZGRyZXNzIGlzIG5vdCBzZXQAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAzVW5peCB0aW1lc3RhbXAgaW4gc2Vjb25kcyB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAAAAZleHBpcnkAAAAAAAYAAABDVGhlIG9sZCBsaWJyYXJ5IGFkZHJlc3MgdGhhdCByZW1haW5zIHZhbGlkIGR1cmluZyB0aGUgZ3JhY2UgcGVyaW9kLgAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAABAAAABRPQXBwRXJyb3I6IDIwMDAtMjA5OQAAAAAAAAAJT0FwcEVycm9yAAAAAAAABAAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAAB9AAAAAAAAAABk5vUGVlcgAAAAAH0QAAAAAAAAAIT25seVBlZXIAAAfSAAAAAAAAABNacm9Ub2tlblVuYXZhaWxhYmxlAAAAB9MAAAACAAAAAAAAAAAAAAAPT0FwcENvcmVTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAEAAAAAAAAABFBlZXIAAAABAAAABAAAAAUAAAAAAAAAAAAAAAdQZWVyU2V0AAAAAAEAAAAIcGVlcl9zZXQAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAIAAAAAAAAAAAAAABdPQXBwT3B0aW9uc1R5cGUzU3RvcmFnZQAAAAABAAAAAQAAAAAAAAAPRW5mb3JjZWRPcHRpb25zAAAAAAIAAAAEAAAABAAAAAUAAAAAAAAAAAAAABFFbmZvcmNlZE9wdGlvblNldAAAAAAAAAEAAAATZW5mb3JjZWRfb3B0aW9uX3NldAAAAAABAAAAAAAAABZlbmZvcmNlZF9vcHRpb25fcGFyYW1zAAAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAACAAAABAAAABNPRlRFcnJvcjogMzAwMC0zMDk5AAAAAAAAAAAIT0ZURXJyb3IAAAAFAAAAAAAAAA1JbnZhbGlkQW1vdW50AAAAAAALuAAAAAAAAAAUSW52YWxpZExvY2FsRGVjaW1hbHMAAAu5AAAAAAAAAA5Ob3RJbml0aWFsaXplZAAAAAALugAAAAAAAAAIT3ZlcmZsb3cAAAu7AAAAAAAAABBTbGlwcGFnZUV4Y2VlZGVkAAALvAAAAAUAAAAAAAAAAAAAAAdPRlRTZW50AAAAAAEAAAAIb2Z0X3NlbnQAAAAFAAAAAAAAAARndWlkAAAD7gAAACAAAAAAAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAAAAAADmFtb3VudF9zZW50X2xkAAAAAAALAAAAAAAAAAAAAAASYW1vdW50X3JlY2VpdmVkX2xkAAAAAAALAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALT0ZUUmVjZWl2ZWQAAAAAAQAAAAxvZnRfcmVjZWl2ZWQAAAAEAAAAAAAAAARndWlkAAAD7gAAACAAAAAAAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAAAAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAAAAAAEmFtb3VudF9yZWNlaXZlZF9sZAAAAAAACwAAAAAAAAACAAAABQAAAAAAAAAAAAAAD01zZ0luc3BlY3RvclNldAAAAAABAAAAEW1zZ19pbnNwZWN0b3Jfc2V0AAAAAAAAAQAAAAAAAAAJaW5zcGVjdG9yAAAAAAAD6AAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAApPRlRTdG9yYWdlAAAAAAADAAAAAAAAAAAAAAAMRGVjaW1hbHNEaWZmAAAAAAAAAAAAAAAFVG9rZW4AAAAAAAAAAAAAAAAAAAxNc2dJbnNwZWN0b3IAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgT0ZUIHRva2VucyBjcm9zcy1jaGFpbgAAAAAAAAAAAAAJU2VuZFBhcmFtAAAAAAAABwAAACRUaGUgYW1vdW50IHRvIHNlbmQgaW4gbG9jYWwgZGVjaW1hbHMAAAAJYW1vdW50X2xkAAAAAAAACwAAADhDb21wb3NlIG1lc3NhZ2UgdG8gZXhlY3V0ZSBvbiB0aGUgZGVzdGluYXRpb24gKE9wdGlvbmFsKQAAAAtjb21wb3NlX21zZwAAAAAOAAAAG1RoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRAAAAAAHZHN0X2VpZAAAAAAEAAAAN0FkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIExheWVyWmVybyBtZXNzYWdlIChPcHRpb25hbCkAAAAADWV4dHJhX29wdGlvbnMAAAAAAAAOAAAARVRoZSBtaW5pbXVtIGFtb3VudCB0byByZWNlaXZlIGluIGxvY2FsIGRlY2ltYWxzIChzbGlwcGFnZSBwcm90ZWN0aW9uKQAAAAAAAA1taW5fYW1vdW50X2xkAAAAAAAACwAAACpPRlQgY29tbWFuZCBmb3IgY3VzdG9tIGJlaGF2aW9yIChPcHRpb25hbCkAAAAAAAdvZnRfY21kAAAAAA4AAAA5VGhlIHJlY2lwaWVudCBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpAAAAAAAAAnRvAAAAAAPuAAAAIAAAAAEAAAAiVHJhbnNmZXIgbGltaXRzIGZvciBPRlQgb3BlcmF0aW9ucwAAAAAAAAAAAAhPRlRMaW1pdAAAAAIAAAAsVGhlIG1heGltdW0gYW1vdW50IHRvIHNlbmQgaW4gbG9jYWwgZGVjaW1hbHMAAAANbWF4X2Ftb3VudF9sZAAAAAAAAAsAAAAsVGhlIG1pbmltdW0gYW1vdW50IHRvIHNlbmQgaW4gbG9jYWwgZGVjaW1hbHMAAAANbWluX2Ftb3VudF9sZAAAAAAAAAsAAAABAAAAP1JlY2VpcHQgY29udGFpbmluZyBhbW91bnRzIHNlbnQgYW5kIHJlY2VpdmVkIGluIGFuIE9GVCB0cmFuc2ZlcgAAAAAAAAAACk9GVFJlY2VpcHQAAAAAAAIAAAAzVGhlIGFtb3VudCByZWNlaXZlZCBpbiBsb2NhbCBkZWNpbWFscyBvbiB0aGUgcmVtb3RlAAAAABJhbW91bnRfcmVjZWl2ZWRfbGQAAAAAAAsAAAAhVGhlIGFtb3VudCBzZW50IGluIGxvY2FsIGRlY2ltYWxzAAAAAAAADmFtb3VudF9zZW50X2xkAAAAAAALAAAAAQAAAC5EZXRhaWxzIGFib3V0IGZlZXMgY2hhcmdlZCBpbiBhbiBPRlQgb3BlcmF0aW9uAAAAAAAAAAAADE9GVEZlZURldGFpbAAAAAIAAAAaVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBmZWUAAAAAAAtkZXNjcmlwdGlvbgAAAAAOAAAAf1RoZSBhbW91bnQgb2YgdGhlIGZlZSBpbiBsb2NhbCBkZWNpbWFscy4gUG9zaXRpdmUgdmFsdWVzIHJlcHJlc2VudCBmZWVzIGNoYXJnZWQsCndoaWxlIG5lZ2F0aXZlIHZhbHVlcyByZXByZXNlbnQgcmV3YXJkcyBnaXZlbi4AAAAADWZlZV9hbW91bnRfbGQAAAAAAAALAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAHAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBwAAAAAAAAAKSW52YWxpZFR0bAAAAAAECAAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQJAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECgAAAAAAAAALT3duZXJOb3RTZXQAAAAECwAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQMAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAMAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAAAAAAAA5VcGdyYWRlc0Zyb3plbgAAAAAEHAAAAAQAAAAYTXVsdGlTaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aVNpZ0Vycm9yAAAAAAAACQAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABCUAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQmAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJwAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQoAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKQAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQqAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKwAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCwAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlTaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAPEV2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgY2FuY2VsbGVkLgAAAAAAAAAaT3duZXJzaGlwVHJhbnNmZXJDYW5jZWxsZWQAAAAAAAEAAAAcb3duZXJzaGlwX3RyYW5zZmVyX2NhbmNlbGxlZAAAAAIAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAF2NhbmNlbGxlZF9wZW5kaW5nX293bmVyAAAAABMAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABvDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMS4wIzg2YzUwYTFlYTRmODdiNDBhZGQzMDY0ZmY5ZGY5NWM3NTUzNTY1YzUAAFMOY29udHJhY3RtZXRhdjAAAAAAAAAABmNsaXZlcgAAAAAALzI1LjAuMCNhNjQ5MjVlOTM5MWMzZDNiM2VmOGU1M2RjNjBjMjNkYjllNmE4MmU0AA==";
|
|
12
12
|
/**
|
|
13
13
|
* Pre-computed WASM hash (SHA-256)
|
|
14
14
|
* Use this when the WASM is already uploaded on-chain
|
|
15
15
|
*/
|
|
16
|
-
export declare const WASM_HASH = "
|
|
16
|
+
export declare const WASM_HASH = "ecf9c8191d272ba8c743e743738241148f509549b9a5ab41be11ad50e1bffd0f";
|
|
17
17
|
/**
|
|
18
18
|
* Get the WASM bytecode as a Buffer
|
|
19
19
|
* Use this to upload the WASM to the network
|
|
@@ -91,78 +91,153 @@ export declare enum OftType {
|
|
|
91
91
|
MintBurn = 1
|
|
92
92
|
}
|
|
93
93
|
export declare const EndpointError: {
|
|
94
|
+
/**
|
|
95
|
+
* Library is already registered with the endpoint
|
|
96
|
+
*/
|
|
94
97
|
1: {
|
|
95
98
|
message: string;
|
|
96
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* Compose message already exists for this GUID and index
|
|
102
|
+
*/
|
|
97
103
|
2: {
|
|
98
104
|
message: string;
|
|
99
105
|
};
|
|
106
|
+
/**
|
|
107
|
+
* Compose message not found for the given GUID and index
|
|
108
|
+
*/
|
|
100
109
|
3: {
|
|
101
110
|
message: string;
|
|
102
111
|
};
|
|
112
|
+
/**
|
|
113
|
+
* Default receive library is not set for the source endpoint
|
|
114
|
+
*/
|
|
103
115
|
4: {
|
|
104
116
|
message: string;
|
|
105
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* Default send library is not set for the destination endpoint
|
|
120
|
+
*/
|
|
106
121
|
5: {
|
|
107
122
|
message: string;
|
|
108
123
|
};
|
|
124
|
+
/**
|
|
125
|
+
* Supplied native token fee is less than required
|
|
126
|
+
*/
|
|
109
127
|
6: {
|
|
110
128
|
message: string;
|
|
111
129
|
};
|
|
130
|
+
/**
|
|
131
|
+
* Supplied ZRO token fee is less than required
|
|
132
|
+
*/
|
|
112
133
|
7: {
|
|
113
134
|
message: string;
|
|
114
135
|
};
|
|
136
|
+
/**
|
|
137
|
+
* Timeout expiry is invalid (already expired)
|
|
138
|
+
*/
|
|
115
139
|
8: {
|
|
116
140
|
message: string;
|
|
117
141
|
};
|
|
142
|
+
/**
|
|
143
|
+
* Fee amount is invalid (negative)
|
|
144
|
+
*/
|
|
118
145
|
9: {
|
|
119
146
|
message: string;
|
|
120
147
|
};
|
|
148
|
+
/**
|
|
149
|
+
* Compose index exceeds maximum allowed value
|
|
150
|
+
*/
|
|
121
151
|
10: {
|
|
122
152
|
message: string;
|
|
123
153
|
};
|
|
154
|
+
/**
|
|
155
|
+
* Nonce is invalid for the requested operation
|
|
156
|
+
*/
|
|
124
157
|
11: {
|
|
125
158
|
message: string;
|
|
126
159
|
};
|
|
160
|
+
/**
|
|
161
|
+
* Payload hash is invalid (empty hash not allowed)
|
|
162
|
+
*/
|
|
127
163
|
12: {
|
|
128
164
|
message: string;
|
|
129
165
|
};
|
|
166
|
+
/**
|
|
167
|
+
* Receive library is not valid for the receiver and source endpoint
|
|
168
|
+
*/
|
|
130
169
|
13: {
|
|
131
170
|
message: string;
|
|
132
171
|
};
|
|
172
|
+
/**
|
|
173
|
+
* Operation requires a non-default (custom) library
|
|
174
|
+
*/
|
|
133
175
|
14: {
|
|
134
176
|
message: string;
|
|
135
177
|
};
|
|
178
|
+
/**
|
|
179
|
+
* Library must support receiving messages
|
|
180
|
+
*/
|
|
136
181
|
15: {
|
|
137
182
|
message: string;
|
|
138
183
|
};
|
|
184
|
+
/**
|
|
185
|
+
* Library must be registered with the endpoint
|
|
186
|
+
*/
|
|
139
187
|
16: {
|
|
140
188
|
message: string;
|
|
141
189
|
};
|
|
190
|
+
/**
|
|
191
|
+
* Library must support sending messages
|
|
192
|
+
*/
|
|
142
193
|
17: {
|
|
143
194
|
message: string;
|
|
144
195
|
};
|
|
196
|
+
/**
|
|
197
|
+
* Messaging path cannot be initialized for the given origin
|
|
198
|
+
*/
|
|
145
199
|
18: {
|
|
146
200
|
message: string;
|
|
147
201
|
};
|
|
202
|
+
/**
|
|
203
|
+
* Message cannot be verified for the given origin
|
|
204
|
+
*/
|
|
148
205
|
19: {
|
|
149
206
|
message: string;
|
|
150
207
|
};
|
|
208
|
+
/**
|
|
209
|
+
* Payload hash does not match the stored hash
|
|
210
|
+
*/
|
|
151
211
|
20: {
|
|
152
212
|
message: string;
|
|
153
213
|
};
|
|
214
|
+
/**
|
|
215
|
+
* New value is the same as existing value
|
|
216
|
+
*/
|
|
154
217
|
21: {
|
|
155
218
|
message: string;
|
|
156
219
|
};
|
|
220
|
+
/**
|
|
221
|
+
* Caller is not authorized (not OApp or delegate)
|
|
222
|
+
*/
|
|
157
223
|
22: {
|
|
158
224
|
message: string;
|
|
159
225
|
};
|
|
226
|
+
/**
|
|
227
|
+
* Endpoint ID is not supported by the library
|
|
228
|
+
*/
|
|
160
229
|
23: {
|
|
161
230
|
message: string;
|
|
162
231
|
};
|
|
232
|
+
/**
|
|
233
|
+
* ZRO fee must be greater than zero when pay_in_zro is true
|
|
234
|
+
*/
|
|
163
235
|
24: {
|
|
164
236
|
message: string;
|
|
165
237
|
};
|
|
238
|
+
/**
|
|
239
|
+
* ZRO token address is not set
|
|
240
|
+
*/
|
|
166
241
|
25: {
|
|
167
242
|
message: string;
|
|
168
243
|
};
|
|
@@ -277,11 +352,11 @@ export interface MessageLibVersion {
|
|
|
277
352
|
*/
|
|
278
353
|
export interface Timeout {
|
|
279
354
|
/**
|
|
280
|
-
* Unix timestamp when the timeout expires.
|
|
355
|
+
* Unix timestamp in seconds when the timeout expires.
|
|
281
356
|
*/
|
|
282
357
|
expiry: u64;
|
|
283
358
|
/**
|
|
284
|
-
* The
|
|
359
|
+
* The old library address that remains valid during the grace period.
|
|
285
360
|
*/
|
|
286
361
|
lib: string;
|
|
287
362
|
}
|
|
@@ -569,6 +644,9 @@ export declare const OwnableError: {
|
|
|
569
644
|
1035: {
|
|
570
645
|
message: string;
|
|
571
646
|
};
|
|
647
|
+
1036: {
|
|
648
|
+
message: string;
|
|
649
|
+
};
|
|
572
650
|
};
|
|
573
651
|
/**
|
|
574
652
|
* BytesExtError: 1040-1049
|
|
@@ -593,9 +671,9 @@ export declare const UpgradeableError: {
|
|
|
593
671
|
};
|
|
594
672
|
};
|
|
595
673
|
/**
|
|
596
|
-
*
|
|
674
|
+
* MultiSigError: 1060-1069
|
|
597
675
|
*/
|
|
598
|
-
export declare const
|
|
676
|
+
export declare const MultiSigError: {
|
|
599
677
|
1060: {
|
|
600
678
|
message: string;
|
|
601
679
|
};
|
|
@@ -620,8 +698,11 @@ export declare const MultisigError: {
|
|
|
620
698
|
1067: {
|
|
621
699
|
message: string;
|
|
622
700
|
};
|
|
701
|
+
1068: {
|
|
702
|
+
message: string;
|
|
703
|
+
};
|
|
623
704
|
};
|
|
624
|
-
export type
|
|
705
|
+
export type MultiSigStorage = {
|
|
625
706
|
tag: "Signers";
|
|
626
707
|
values: void;
|
|
627
708
|
} | {
|
|
@@ -679,20 +760,7 @@ export interface Client {
|
|
|
679
760
|
direction: Direction;
|
|
680
761
|
eid: u32;
|
|
681
762
|
config: Option<RateLimitConfig>;
|
|
682
|
-
}, txnOptions?:
|
|
683
|
-
/**
|
|
684
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
685
|
-
*/
|
|
686
|
-
fee?: number;
|
|
687
|
-
/**
|
|
688
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
689
|
-
*/
|
|
690
|
-
timeoutInSeconds?: number;
|
|
691
|
-
/**
|
|
692
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
693
|
-
*/
|
|
694
|
-
simulate?: boolean;
|
|
695
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
763
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
696
764
|
/**
|
|
697
765
|
* Construct and simulate a rate_limit_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
698
766
|
* Returns the rate limit configuration for a direction and endpoint.
|
|
@@ -701,20 +769,7 @@ export interface Client {
|
|
|
701
769
|
rate_limit_config: ({ direction, eid }: {
|
|
702
770
|
direction: Direction;
|
|
703
771
|
eid: u32;
|
|
704
|
-
}, txnOptions?:
|
|
705
|
-
/**
|
|
706
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
707
|
-
*/
|
|
708
|
-
fee?: number;
|
|
709
|
-
/**
|
|
710
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
711
|
-
*/
|
|
712
|
-
timeoutInSeconds?: number;
|
|
713
|
-
/**
|
|
714
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
715
|
-
*/
|
|
716
|
-
simulate?: boolean;
|
|
717
|
-
}) => Promise<AssembledTransaction<Option<RateLimitConfig>>>;
|
|
772
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<RateLimitConfig>>>;
|
|
718
773
|
/**
|
|
719
774
|
* Construct and simulate a rate_limit_in_flight transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
720
775
|
* Returns the current in-flight amount for a direction and endpoint.
|
|
@@ -722,20 +777,7 @@ export interface Client {
|
|
|
722
777
|
rate_limit_in_flight: ({ direction, eid }: {
|
|
723
778
|
direction: Direction;
|
|
724
779
|
eid: u32;
|
|
725
|
-
}, txnOptions?:
|
|
726
|
-
/**
|
|
727
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
728
|
-
*/
|
|
729
|
-
fee?: number;
|
|
730
|
-
/**
|
|
731
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
732
|
-
*/
|
|
733
|
-
timeoutInSeconds?: number;
|
|
734
|
-
/**
|
|
735
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
736
|
-
*/
|
|
737
|
-
simulate?: boolean;
|
|
738
|
-
}) => Promise<AssembledTransaction<i128>>;
|
|
780
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<i128>>;
|
|
739
781
|
/**
|
|
740
782
|
* Construct and simulate a rate_limit_capacity transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
741
783
|
* Returns the available capacity for a direction and endpoint.
|
|
@@ -744,40 +786,14 @@ export interface Client {
|
|
|
744
786
|
rate_limit_capacity: ({ direction, eid }: {
|
|
745
787
|
direction: Direction;
|
|
746
788
|
eid: u32;
|
|
747
|
-
}, txnOptions?:
|
|
748
|
-
/**
|
|
749
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
750
|
-
*/
|
|
751
|
-
fee?: number;
|
|
752
|
-
/**
|
|
753
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
754
|
-
*/
|
|
755
|
-
timeoutInSeconds?: number;
|
|
756
|
-
/**
|
|
757
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
758
|
-
*/
|
|
759
|
-
simulate?: boolean;
|
|
760
|
-
}) => Promise<AssembledTransaction<i128>>;
|
|
789
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<i128>>;
|
|
761
790
|
/**
|
|
762
791
|
* Construct and simulate a set_default_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
763
792
|
* Sets the default fee rate in basis points.
|
|
764
793
|
*/
|
|
765
794
|
set_default_fee_bps: ({ default_fee_bps }: {
|
|
766
795
|
default_fee_bps: u64;
|
|
767
|
-
}, txnOptions?:
|
|
768
|
-
/**
|
|
769
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
770
|
-
*/
|
|
771
|
-
fee?: number;
|
|
772
|
-
/**
|
|
773
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
774
|
-
*/
|
|
775
|
-
timeoutInSeconds?: number;
|
|
776
|
-
/**
|
|
777
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
778
|
-
*/
|
|
779
|
-
simulate?: boolean;
|
|
780
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
796
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
781
797
|
/**
|
|
782
798
|
* Construct and simulate a set_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
783
799
|
* Sets or removes the fee rate for a specific destination endpoint.
|
|
@@ -789,116 +805,38 @@ export interface Client {
|
|
|
789
805
|
set_fee_bps: ({ dst_eid, fee_bps }: {
|
|
790
806
|
dst_eid: u32;
|
|
791
807
|
fee_bps: Option<u64>;
|
|
792
|
-
}, txnOptions?:
|
|
793
|
-
/**
|
|
794
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
795
|
-
*/
|
|
796
|
-
fee?: number;
|
|
797
|
-
/**
|
|
798
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
799
|
-
*/
|
|
800
|
-
timeoutInSeconds?: number;
|
|
801
|
-
/**
|
|
802
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
803
|
-
*/
|
|
804
|
-
simulate?: boolean;
|
|
805
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
808
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
806
809
|
/**
|
|
807
810
|
* Construct and simulate a set_fee_deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
808
811
|
* Sets the address where collected fees will be deposited.
|
|
809
812
|
*/
|
|
810
813
|
set_fee_deposit_address: ({ fee_deposit_address }: {
|
|
811
814
|
fee_deposit_address: string;
|
|
812
|
-
}, txnOptions?:
|
|
813
|
-
/**
|
|
814
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
815
|
-
*/
|
|
816
|
-
fee?: number;
|
|
817
|
-
/**
|
|
818
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
819
|
-
*/
|
|
820
|
-
timeoutInSeconds?: number;
|
|
821
|
-
/**
|
|
822
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
823
|
-
*/
|
|
824
|
-
simulate?: boolean;
|
|
825
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
815
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
826
816
|
/**
|
|
827
817
|
* Construct and simulate a default_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
828
818
|
* Returns the default fee rate in basis points.
|
|
829
819
|
*/
|
|
830
|
-
default_fee_bps: (
|
|
831
|
-
/**
|
|
832
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
833
|
-
*/
|
|
834
|
-
fee?: number;
|
|
835
|
-
/**
|
|
836
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
837
|
-
*/
|
|
838
|
-
timeoutInSeconds?: number;
|
|
839
|
-
/**
|
|
840
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
841
|
-
*/
|
|
842
|
-
simulate?: boolean;
|
|
843
|
-
}) => Promise<AssembledTransaction<u64>>;
|
|
820
|
+
default_fee_bps: (options?: MethodOptions) => Promise<AssembledTransaction<u64>>;
|
|
844
821
|
/**
|
|
845
822
|
* Construct and simulate a fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
846
823
|
* Returns the fee rate for a specific destination, if set.
|
|
847
824
|
*/
|
|
848
825
|
fee_bps: ({ dst_eid }: {
|
|
849
826
|
dst_eid: u32;
|
|
850
|
-
}, txnOptions?:
|
|
851
|
-
/**
|
|
852
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
853
|
-
*/
|
|
854
|
-
fee?: number;
|
|
855
|
-
/**
|
|
856
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
857
|
-
*/
|
|
858
|
-
timeoutInSeconds?: number;
|
|
859
|
-
/**
|
|
860
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
861
|
-
*/
|
|
862
|
-
simulate?: boolean;
|
|
863
|
-
}) => Promise<AssembledTransaction<Option<u64>>>;
|
|
827
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<u64>>>;
|
|
864
828
|
/**
|
|
865
829
|
* Construct and simulate a effective_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
866
830
|
* Returns the effective fee rate for a destination (destination-specific or default).
|
|
867
831
|
*/
|
|
868
832
|
effective_fee_bps: ({ dst_eid }: {
|
|
869
833
|
dst_eid: u32;
|
|
870
|
-
}, txnOptions?:
|
|
871
|
-
/**
|
|
872
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
873
|
-
*/
|
|
874
|
-
fee?: number;
|
|
875
|
-
/**
|
|
876
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
877
|
-
*/
|
|
878
|
-
timeoutInSeconds?: number;
|
|
879
|
-
/**
|
|
880
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
881
|
-
*/
|
|
882
|
-
simulate?: boolean;
|
|
883
|
-
}) => Promise<AssembledTransaction<u64>>;
|
|
834
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<u64>>;
|
|
884
835
|
/**
|
|
885
836
|
* Construct and simulate a fee_deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
886
837
|
* Returns the fee deposit address.
|
|
887
838
|
*/
|
|
888
|
-
fee_deposit_address: (
|
|
889
|
-
/**
|
|
890
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
891
|
-
*/
|
|
892
|
-
fee?: number;
|
|
893
|
-
/**
|
|
894
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
895
|
-
*/
|
|
896
|
-
timeoutInSeconds?: number;
|
|
897
|
-
/**
|
|
898
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
899
|
-
*/
|
|
900
|
-
simulate?: boolean;
|
|
901
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
839
|
+
fee_deposit_address: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
|
|
902
840
|
/**
|
|
903
841
|
* Construct and simulate a set_paused transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
904
842
|
* Sets the paused state of the OFT.
|
|
@@ -910,129 +848,38 @@ export interface Client {
|
|
|
910
848
|
*/
|
|
911
849
|
set_paused: ({ paused }: {
|
|
912
850
|
paused: boolean;
|
|
913
|
-
}, txnOptions?:
|
|
914
|
-
/**
|
|
915
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
916
|
-
*/
|
|
917
|
-
fee?: number;
|
|
918
|
-
/**
|
|
919
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
920
|
-
*/
|
|
921
|
-
timeoutInSeconds?: number;
|
|
922
|
-
/**
|
|
923
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
924
|
-
*/
|
|
925
|
-
simulate?: boolean;
|
|
926
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
851
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
927
852
|
/**
|
|
928
853
|
* Construct and simulate a is_paused transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
929
854
|
* Returns the paused state of the OFT.
|
|
930
855
|
*/
|
|
931
|
-
is_paused: (
|
|
932
|
-
/**
|
|
933
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
934
|
-
*/
|
|
935
|
-
fee?: number;
|
|
936
|
-
/**
|
|
937
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
938
|
-
*/
|
|
939
|
-
timeoutInSeconds?: number;
|
|
940
|
-
/**
|
|
941
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
942
|
-
*/
|
|
943
|
-
simulate?: boolean;
|
|
944
|
-
}) => Promise<AssembledTransaction<boolean>>;
|
|
856
|
+
is_paused: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
|
|
945
857
|
/**
|
|
946
858
|
* Construct and simulate a quote_oft transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
947
859
|
*/
|
|
948
860
|
quote_oft: ({ send_param }: {
|
|
949
861
|
send_param: SendParam;
|
|
950
|
-
}, txnOptions?:
|
|
951
|
-
/**
|
|
952
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
953
|
-
*/
|
|
954
|
-
fee?: number;
|
|
955
|
-
/**
|
|
956
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
957
|
-
*/
|
|
958
|
-
timeoutInSeconds?: number;
|
|
959
|
-
/**
|
|
960
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
961
|
-
*/
|
|
962
|
-
simulate?: boolean;
|
|
963
|
-
}) => Promise<AssembledTransaction<readonly [OFTLimit, Array<OFTFeeDetail>, OFTReceipt]>>;
|
|
862
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<readonly [OFTLimit, Array<OFTFeeDetail>, OFTReceipt]>>;
|
|
964
863
|
/**
|
|
965
864
|
* Construct and simulate a token transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
966
865
|
* Retrieves the token address associated with this OFT.
|
|
967
866
|
*/
|
|
968
|
-
token: (
|
|
969
|
-
/**
|
|
970
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
971
|
-
*/
|
|
972
|
-
fee?: number;
|
|
973
|
-
/**
|
|
974
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
975
|
-
*/
|
|
976
|
-
timeoutInSeconds?: number;
|
|
977
|
-
/**
|
|
978
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
979
|
-
*/
|
|
980
|
-
simulate?: boolean;
|
|
981
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
867
|
+
token: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
|
|
982
868
|
/**
|
|
983
869
|
* Construct and simulate a oft_version transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
984
870
|
* Returns OFT version as (major, minor).
|
|
985
871
|
*/
|
|
986
|
-
oft_version: (
|
|
987
|
-
/**
|
|
988
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
989
|
-
*/
|
|
990
|
-
fee?: number;
|
|
991
|
-
/**
|
|
992
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
993
|
-
*/
|
|
994
|
-
timeoutInSeconds?: number;
|
|
995
|
-
/**
|
|
996
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
997
|
-
*/
|
|
998
|
-
simulate?: boolean;
|
|
999
|
-
}) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
872
|
+
oft_version: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
1000
873
|
/**
|
|
1001
874
|
* Construct and simulate a shared_decimals transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1002
875
|
* Retrieves the shared decimals used for cross-chain normalization.
|
|
1003
876
|
*/
|
|
1004
|
-
shared_decimals: (
|
|
1005
|
-
/**
|
|
1006
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1007
|
-
*/
|
|
1008
|
-
fee?: number;
|
|
1009
|
-
/**
|
|
1010
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1011
|
-
*/
|
|
1012
|
-
timeoutInSeconds?: number;
|
|
1013
|
-
/**
|
|
1014
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1015
|
-
*/
|
|
1016
|
-
simulate?: boolean;
|
|
1017
|
-
}) => Promise<AssembledTransaction<u32>>;
|
|
877
|
+
shared_decimals: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>;
|
|
1018
878
|
/**
|
|
1019
879
|
* Construct and simulate a decimal_conversion_rate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1020
880
|
* Retrieves the decimal conversion rate used for cross-chain normalization.
|
|
1021
881
|
*/
|
|
1022
|
-
decimal_conversion_rate: (
|
|
1023
|
-
/**
|
|
1024
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1025
|
-
*/
|
|
1026
|
-
fee?: number;
|
|
1027
|
-
/**
|
|
1028
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1029
|
-
*/
|
|
1030
|
-
timeoutInSeconds?: number;
|
|
1031
|
-
/**
|
|
1032
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1033
|
-
*/
|
|
1034
|
-
simulate?: boolean;
|
|
1035
|
-
}) => Promise<AssembledTransaction<i128>>;
|
|
882
|
+
decimal_conversion_rate: (options?: MethodOptions) => Promise<AssembledTransaction<i128>>;
|
|
1036
883
|
/**
|
|
1037
884
|
* Construct and simulate a approval_required transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1038
885
|
* Whether a separate token approval is required before sending.
|
|
@@ -1043,38 +890,12 @@ export interface Client {
|
|
|
1043
890
|
* - `true` if a separate token approval step is required
|
|
1044
891
|
* - `false` if no separate approval is needed
|
|
1045
892
|
*/
|
|
1046
|
-
approval_required: (
|
|
1047
|
-
/**
|
|
1048
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1049
|
-
*/
|
|
1050
|
-
fee?: number;
|
|
1051
|
-
/**
|
|
1052
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1053
|
-
*/
|
|
1054
|
-
timeoutInSeconds?: number;
|
|
1055
|
-
/**
|
|
1056
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1057
|
-
*/
|
|
1058
|
-
simulate?: boolean;
|
|
1059
|
-
}) => Promise<AssembledTransaction<boolean>>;
|
|
893
|
+
approval_required: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
|
|
1060
894
|
/**
|
|
1061
895
|
* Construct and simulate a msg_inspector transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1062
896
|
* Returns the message inspector address if set.
|
|
1063
897
|
*/
|
|
1064
|
-
msg_inspector: (
|
|
1065
|
-
/**
|
|
1066
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1067
|
-
*/
|
|
1068
|
-
fee?: number;
|
|
1069
|
-
/**
|
|
1070
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1071
|
-
*/
|
|
1072
|
-
timeoutInSeconds?: number;
|
|
1073
|
-
/**
|
|
1074
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1075
|
-
*/
|
|
1076
|
-
simulate?: boolean;
|
|
1077
|
-
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
898
|
+
msg_inspector: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
|
|
1078
899
|
/**
|
|
1079
900
|
* Construct and simulate a set_msg_inspector transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1080
901
|
* Sets or removes the message inspector address.
|
|
@@ -1088,20 +909,7 @@ export interface Client {
|
|
|
1088
909
|
*/
|
|
1089
910
|
set_msg_inspector: ({ inspector }: {
|
|
1090
911
|
inspector: Option<string>;
|
|
1091
|
-
}, txnOptions?:
|
|
1092
|
-
/**
|
|
1093
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1094
|
-
*/
|
|
1095
|
-
fee?: number;
|
|
1096
|
-
/**
|
|
1097
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1098
|
-
*/
|
|
1099
|
-
timeoutInSeconds?: number;
|
|
1100
|
-
/**
|
|
1101
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1102
|
-
*/
|
|
1103
|
-
simulate?: boolean;
|
|
1104
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
912
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1105
913
|
/**
|
|
1106
914
|
* Construct and simulate a quote_send transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1107
915
|
* Quotes a send operation including LayerZero messaging fees.
|
|
@@ -1110,20 +918,7 @@ export interface Client {
|
|
|
1110
918
|
from: string;
|
|
1111
919
|
send_param: SendParam;
|
|
1112
920
|
pay_in_zro: boolean;
|
|
1113
|
-
}, txnOptions?:
|
|
1114
|
-
/**
|
|
1115
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1116
|
-
*/
|
|
1117
|
-
fee?: number;
|
|
1118
|
-
/**
|
|
1119
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1120
|
-
*/
|
|
1121
|
-
timeoutInSeconds?: number;
|
|
1122
|
-
/**
|
|
1123
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1124
|
-
*/
|
|
1125
|
-
simulate?: boolean;
|
|
1126
|
-
}) => Promise<AssembledTransaction<MessagingFee>>;
|
|
921
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<MessagingFee>>;
|
|
1127
922
|
/**
|
|
1128
923
|
* Construct and simulate a send transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1129
924
|
* Sends tokens cross-chain to another endpoint.
|
|
@@ -1138,91 +933,26 @@ export interface Client {
|
|
|
1138
933
|
send_param: SendParam;
|
|
1139
934
|
fee: MessagingFee;
|
|
1140
935
|
refund_address: string;
|
|
1141
|
-
}, txnOptions?:
|
|
1142
|
-
/**
|
|
1143
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1144
|
-
*/
|
|
1145
|
-
fee?: number;
|
|
1146
|
-
/**
|
|
1147
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1148
|
-
*/
|
|
1149
|
-
timeoutInSeconds?: number;
|
|
1150
|
-
/**
|
|
1151
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1152
|
-
*/
|
|
1153
|
-
simulate?: boolean;
|
|
1154
|
-
}) => Promise<AssembledTransaction<readonly [MessagingReceipt, OFTReceipt]>>;
|
|
936
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<readonly [MessagingReceipt, OFTReceipt]>>;
|
|
1155
937
|
/**
|
|
1156
938
|
* Construct and simulate a oft_type transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1157
939
|
* Returns the type of operation for this OFT (LockUnlock or MintBurn)
|
|
1158
940
|
*/
|
|
1159
|
-
oft_type: (
|
|
1160
|
-
/**
|
|
1161
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1162
|
-
*/
|
|
1163
|
-
fee?: number;
|
|
1164
|
-
/**
|
|
1165
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1166
|
-
*/
|
|
1167
|
-
timeoutInSeconds?: number;
|
|
1168
|
-
/**
|
|
1169
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1170
|
-
*/
|
|
1171
|
-
simulate?: boolean;
|
|
1172
|
-
}) => Promise<AssembledTransaction<OftType>>;
|
|
941
|
+
oft_type: (options?: MethodOptions) => Promise<AssembledTransaction<OftType>>;
|
|
1173
942
|
/**
|
|
1174
943
|
* Construct and simulate a authorizer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1175
944
|
*/
|
|
1176
|
-
authorizer: (
|
|
1177
|
-
/**
|
|
1178
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1179
|
-
*/
|
|
1180
|
-
fee?: number;
|
|
1181
|
-
/**
|
|
1182
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1183
|
-
*/
|
|
1184
|
-
timeoutInSeconds?: number;
|
|
1185
|
-
/**
|
|
1186
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1187
|
-
*/
|
|
1188
|
-
simulate?: boolean;
|
|
1189
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
945
|
+
authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
|
|
1190
946
|
/**
|
|
1191
947
|
* Construct and simulate a owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1192
948
|
* Returns the current owner address, or None if no owner is set.
|
|
1193
949
|
*/
|
|
1194
|
-
owner: (
|
|
1195
|
-
/**
|
|
1196
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1197
|
-
*/
|
|
1198
|
-
fee?: number;
|
|
1199
|
-
/**
|
|
1200
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1201
|
-
*/
|
|
1202
|
-
timeoutInSeconds?: number;
|
|
1203
|
-
/**
|
|
1204
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1205
|
-
*/
|
|
1206
|
-
simulate?: boolean;
|
|
1207
|
-
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
950
|
+
owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
|
|
1208
951
|
/**
|
|
1209
952
|
* Construct and simulate a pending_owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1210
953
|
* Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
|
|
1211
954
|
*/
|
|
1212
|
-
pending_owner: (
|
|
1213
|
-
/**
|
|
1214
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1215
|
-
*/
|
|
1216
|
-
fee?: number;
|
|
1217
|
-
/**
|
|
1218
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1219
|
-
*/
|
|
1220
|
-
timeoutInSeconds?: number;
|
|
1221
|
-
/**
|
|
1222
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1223
|
-
*/
|
|
1224
|
-
simulate?: boolean;
|
|
1225
|
-
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
955
|
+
pending_owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
|
|
1226
956
|
/**
|
|
1227
957
|
* Construct and simulate a transfer_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1228
958
|
* Transfers ownership immediately to a new address.
|
|
@@ -1236,20 +966,7 @@ export interface Client {
|
|
|
1236
966
|
*/
|
|
1237
967
|
transfer_ownership: ({ new_owner }: {
|
|
1238
968
|
new_owner: string;
|
|
1239
|
-
}, txnOptions?:
|
|
1240
|
-
/**
|
|
1241
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1242
|
-
*/
|
|
1243
|
-
fee?: number;
|
|
1244
|
-
/**
|
|
1245
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1246
|
-
*/
|
|
1247
|
-
timeoutInSeconds?: number;
|
|
1248
|
-
/**
|
|
1249
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1250
|
-
*/
|
|
1251
|
-
simulate?: boolean;
|
|
1252
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
969
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1253
970
|
/**
|
|
1254
971
|
* Construct and simulate a propose_ownership_transfer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1255
972
|
* Proposes an ownership transfer to a new address.
|
|
@@ -1271,20 +988,7 @@ export interface Client {
|
|
|
1271
988
|
propose_ownership_transfer: ({ new_owner, ttl }: {
|
|
1272
989
|
new_owner: string;
|
|
1273
990
|
ttl: u32;
|
|
1274
|
-
}, txnOptions?:
|
|
1275
|
-
/**
|
|
1276
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1277
|
-
*/
|
|
1278
|
-
fee?: number;
|
|
1279
|
-
/**
|
|
1280
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1281
|
-
*/
|
|
1282
|
-
timeoutInSeconds?: number;
|
|
1283
|
-
/**
|
|
1284
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1285
|
-
*/
|
|
1286
|
-
simulate?: boolean;
|
|
1287
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
991
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1288
992
|
/**
|
|
1289
993
|
* Construct and simulate a accept_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1290
994
|
* Accepts a pending 2-step ownership transfer.
|
|
@@ -1294,20 +998,7 @@ export interface Client {
|
|
|
1294
998
|
* # Panics
|
|
1295
999
|
* - `NoPendingTransfer` if there is no pending transfer (or it expired)
|
|
1296
1000
|
*/
|
|
1297
|
-
accept_ownership: (
|
|
1298
|
-
/**
|
|
1299
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1300
|
-
*/
|
|
1301
|
-
fee?: number;
|
|
1302
|
-
/**
|
|
1303
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1304
|
-
*/
|
|
1305
|
-
timeoutInSeconds?: number;
|
|
1306
|
-
/**
|
|
1307
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1308
|
-
*/
|
|
1309
|
-
simulate?: boolean;
|
|
1310
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1001
|
+
accept_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1311
1002
|
/**
|
|
1312
1003
|
* Construct and simulate a renounce_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1313
1004
|
* Permanently renounces ownership.
|
|
@@ -1316,20 +1007,7 @@ export interface Client {
|
|
|
1316
1007
|
* - `OwnerNotSet` if no owner is currently set
|
|
1317
1008
|
* - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
|
|
1318
1009
|
*/
|
|
1319
|
-
renounce_ownership: (
|
|
1320
|
-
/**
|
|
1321
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1322
|
-
*/
|
|
1323
|
-
fee?: number;
|
|
1324
|
-
/**
|
|
1325
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1326
|
-
*/
|
|
1327
|
-
timeoutInSeconds?: number;
|
|
1328
|
-
/**
|
|
1329
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1330
|
-
*/
|
|
1331
|
-
simulate?: boolean;
|
|
1332
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1010
|
+
renounce_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1333
1011
|
/**
|
|
1334
1012
|
* Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1335
1013
|
* Extends the instance TTL.
|
|
@@ -1342,20 +1020,7 @@ export interface Client {
|
|
|
1342
1020
|
extend_instance_ttl: ({ threshold, extend_to }: {
|
|
1343
1021
|
threshold: u32;
|
|
1344
1022
|
extend_to: u32;
|
|
1345
|
-
}, txnOptions?:
|
|
1346
|
-
/**
|
|
1347
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1348
|
-
*/
|
|
1349
|
-
fee?: number;
|
|
1350
|
-
/**
|
|
1351
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1352
|
-
*/
|
|
1353
|
-
timeoutInSeconds?: number;
|
|
1354
|
-
/**
|
|
1355
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1356
|
-
*/
|
|
1357
|
-
simulate?: boolean;
|
|
1358
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1023
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1359
1024
|
/**
|
|
1360
1025
|
* Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1361
1026
|
* Sets TTL configs for instance and persistent storage.
|
|
@@ -1374,38 +1039,12 @@ export interface Client {
|
|
|
1374
1039
|
set_ttl_configs: ({ instance, persistent }: {
|
|
1375
1040
|
instance: Option<TtlConfig>;
|
|
1376
1041
|
persistent: Option<TtlConfig>;
|
|
1377
|
-
}, txnOptions?:
|
|
1378
|
-
/**
|
|
1379
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1380
|
-
*/
|
|
1381
|
-
fee?: number;
|
|
1382
|
-
/**
|
|
1383
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1384
|
-
*/
|
|
1385
|
-
timeoutInSeconds?: number;
|
|
1386
|
-
/**
|
|
1387
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1388
|
-
*/
|
|
1389
|
-
simulate?: boolean;
|
|
1390
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1042
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1391
1043
|
/**
|
|
1392
1044
|
* Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1393
1045
|
* Returns the current TTL configs as (instance_config, persistent_config).
|
|
1394
1046
|
*/
|
|
1395
|
-
ttl_configs: (
|
|
1396
|
-
/**
|
|
1397
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1398
|
-
*/
|
|
1399
|
-
fee?: number;
|
|
1400
|
-
/**
|
|
1401
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1402
|
-
*/
|
|
1403
|
-
timeoutInSeconds?: number;
|
|
1404
|
-
/**
|
|
1405
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1406
|
-
*/
|
|
1407
|
-
simulate?: boolean;
|
|
1408
|
-
}) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
|
|
1047
|
+
ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
|
|
1409
1048
|
/**
|
|
1410
1049
|
* Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1411
1050
|
* Permanently freezes TTL configs, preventing any future modifications.
|
|
@@ -1416,38 +1055,12 @@ export interface Client {
|
|
|
1416
1055
|
* # Panics
|
|
1417
1056
|
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
1418
1057
|
*/
|
|
1419
|
-
freeze_ttl_configs: (
|
|
1420
|
-
/**
|
|
1421
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1422
|
-
*/
|
|
1423
|
-
fee?: number;
|
|
1424
|
-
/**
|
|
1425
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1426
|
-
*/
|
|
1427
|
-
timeoutInSeconds?: number;
|
|
1428
|
-
/**
|
|
1429
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1430
|
-
*/
|
|
1431
|
-
simulate?: boolean;
|
|
1432
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1058
|
+
freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1433
1059
|
/**
|
|
1434
1060
|
* Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1435
1061
|
* Returns whether TTL configs are frozen.
|
|
1436
1062
|
*/
|
|
1437
|
-
is_ttl_configs_frozen: (
|
|
1438
|
-
/**
|
|
1439
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1440
|
-
*/
|
|
1441
|
-
fee?: number;
|
|
1442
|
-
/**
|
|
1443
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1444
|
-
*/
|
|
1445
|
-
timeoutInSeconds?: number;
|
|
1446
|
-
/**
|
|
1447
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1448
|
-
*/
|
|
1449
|
-
simulate?: boolean;
|
|
1450
|
-
}) => Promise<AssembledTransaction<boolean>>;
|
|
1063
|
+
is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
|
|
1451
1064
|
/**
|
|
1452
1065
|
* Construct and simulate a oapp_version transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1453
1066
|
* Retrieves the OApp version information.
|
|
@@ -1457,20 +1070,7 @@ export interface Client {
|
|
|
1457
1070
|
* - `sender_version`: The version of the OAppSender
|
|
1458
1071
|
* - `receiver_version`: The version of the OAppReceiver
|
|
1459
1072
|
*/
|
|
1460
|
-
oapp_version: (
|
|
1461
|
-
/**
|
|
1462
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1463
|
-
*/
|
|
1464
|
-
fee?: number;
|
|
1465
|
-
/**
|
|
1466
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1467
|
-
*/
|
|
1468
|
-
timeoutInSeconds?: number;
|
|
1469
|
-
/**
|
|
1470
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1471
|
-
*/
|
|
1472
|
-
simulate?: boolean;
|
|
1473
|
-
}) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
1073
|
+
oapp_version: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
1474
1074
|
/**
|
|
1475
1075
|
* Construct and simulate a endpoint transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1476
1076
|
* Retrieves the LayerZero endpoint address associated with the OApp.
|
|
@@ -1478,20 +1078,7 @@ export interface Client {
|
|
|
1478
1078
|
* # Returns
|
|
1479
1079
|
* The LayerZero endpoint address
|
|
1480
1080
|
*/
|
|
1481
|
-
endpoint: (
|
|
1482
|
-
/**
|
|
1483
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1484
|
-
*/
|
|
1485
|
-
fee?: number;
|
|
1486
|
-
/**
|
|
1487
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1488
|
-
*/
|
|
1489
|
-
timeoutInSeconds?: number;
|
|
1490
|
-
/**
|
|
1491
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1492
|
-
*/
|
|
1493
|
-
simulate?: boolean;
|
|
1494
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
1081
|
+
endpoint: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
|
|
1495
1082
|
/**
|
|
1496
1083
|
* Construct and simulate a peer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1497
1084
|
* Retrieves the peer (OApp) associated with a corresponding endpoint.
|
|
@@ -1504,20 +1091,7 @@ export interface Client {
|
|
|
1504
1091
|
*/
|
|
1505
1092
|
peer: ({ eid }: {
|
|
1506
1093
|
eid: u32;
|
|
1507
|
-
}, txnOptions?:
|
|
1508
|
-
/**
|
|
1509
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1510
|
-
*/
|
|
1511
|
-
fee?: number;
|
|
1512
|
-
/**
|
|
1513
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1514
|
-
*/
|
|
1515
|
-
timeoutInSeconds?: number;
|
|
1516
|
-
/**
|
|
1517
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1518
|
-
*/
|
|
1519
|
-
simulate?: boolean;
|
|
1520
|
-
}) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
1094
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
1521
1095
|
/**
|
|
1522
1096
|
* Construct and simulate a set_peer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1523
1097
|
* Sets or removes the peer address (OApp instance) for a corresponding endpoint.
|
|
@@ -1529,20 +1103,7 @@ export interface Client {
|
|
|
1529
1103
|
set_peer: ({ eid, peer }: {
|
|
1530
1104
|
eid: u32;
|
|
1531
1105
|
peer: Option<Buffer>;
|
|
1532
|
-
}, txnOptions?:
|
|
1533
|
-
/**
|
|
1534
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1535
|
-
*/
|
|
1536
|
-
fee?: number;
|
|
1537
|
-
/**
|
|
1538
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1539
|
-
*/
|
|
1540
|
-
timeoutInSeconds?: number;
|
|
1541
|
-
/**
|
|
1542
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1543
|
-
*/
|
|
1544
|
-
simulate?: boolean;
|
|
1545
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1106
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1546
1107
|
/**
|
|
1547
1108
|
* Construct and simulate a set_delegate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1548
1109
|
* Sets the delegate address for the OApp Core.
|
|
@@ -1552,20 +1113,7 @@ export interface Client {
|
|
|
1552
1113
|
*/
|
|
1553
1114
|
set_delegate: ({ delegate }: {
|
|
1554
1115
|
delegate: Option<string>;
|
|
1555
|
-
}, txnOptions?:
|
|
1556
|
-
/**
|
|
1557
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1558
|
-
*/
|
|
1559
|
-
fee?: number;
|
|
1560
|
-
/**
|
|
1561
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1562
|
-
*/
|
|
1563
|
-
timeoutInSeconds?: number;
|
|
1564
|
-
/**
|
|
1565
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1566
|
-
*/
|
|
1567
|
-
simulate?: boolean;
|
|
1568
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1116
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1569
1117
|
/**
|
|
1570
1118
|
* Construct and simulate a allow_initialize_path transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1571
1119
|
* Checks if a messaging path can be initialized for the given origin.
|
|
@@ -1578,20 +1126,7 @@ export interface Client {
|
|
|
1578
1126
|
*/
|
|
1579
1127
|
allow_initialize_path: ({ origin }: {
|
|
1580
1128
|
origin: Origin;
|
|
1581
|
-
}, txnOptions?:
|
|
1582
|
-
/**
|
|
1583
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1584
|
-
*/
|
|
1585
|
-
fee?: number;
|
|
1586
|
-
/**
|
|
1587
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1588
|
-
*/
|
|
1589
|
-
timeoutInSeconds?: number;
|
|
1590
|
-
/**
|
|
1591
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1592
|
-
*/
|
|
1593
|
-
simulate?: boolean;
|
|
1594
|
-
}) => Promise<AssembledTransaction<boolean>>;
|
|
1129
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
|
|
1595
1130
|
/**
|
|
1596
1131
|
* Construct and simulate a next_nonce transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1597
1132
|
* Retrieves the next nonce for a given source endpoint and sender address.
|
|
@@ -1611,20 +1146,7 @@ export interface Client {
|
|
|
1611
1146
|
next_nonce: ({ src_eid, sender }: {
|
|
1612
1147
|
src_eid: u32;
|
|
1613
1148
|
sender: Buffer;
|
|
1614
|
-
}, txnOptions?:
|
|
1615
|
-
/**
|
|
1616
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1617
|
-
*/
|
|
1618
|
-
fee?: number;
|
|
1619
|
-
/**
|
|
1620
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1621
|
-
*/
|
|
1622
|
-
timeoutInSeconds?: number;
|
|
1623
|
-
/**
|
|
1624
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1625
|
-
*/
|
|
1626
|
-
simulate?: boolean;
|
|
1627
|
-
}) => Promise<AssembledTransaction<u64>>;
|
|
1149
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<u64>>;
|
|
1628
1150
|
/**
|
|
1629
1151
|
* Construct and simulate a lz_receive transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1630
1152
|
* Entry point for receiving messages or packets from the LayerZero endpoint.
|
|
@@ -1650,20 +1172,7 @@ export interface Client {
|
|
|
1650
1172
|
message: Buffer;
|
|
1651
1173
|
extra_data: Buffer;
|
|
1652
1174
|
value: i128;
|
|
1653
|
-
}, txnOptions?:
|
|
1654
|
-
/**
|
|
1655
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1656
|
-
*/
|
|
1657
|
-
fee?: number;
|
|
1658
|
-
/**
|
|
1659
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1660
|
-
*/
|
|
1661
|
-
timeoutInSeconds?: number;
|
|
1662
|
-
/**
|
|
1663
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1664
|
-
*/
|
|
1665
|
-
simulate?: boolean;
|
|
1666
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1175
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1667
1176
|
/**
|
|
1668
1177
|
* Construct and simulate a is_compose_msg_sender transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1669
1178
|
* Indicates whether an address is an approved composeMsg sender to the Endpoint.
|
|
@@ -1683,20 +1192,7 @@ export interface Client {
|
|
|
1683
1192
|
origin: Origin;
|
|
1684
1193
|
message: Buffer;
|
|
1685
1194
|
sender: string;
|
|
1686
|
-
}, txnOptions?:
|
|
1687
|
-
/**
|
|
1688
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1689
|
-
*/
|
|
1690
|
-
fee?: number;
|
|
1691
|
-
/**
|
|
1692
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1693
|
-
*/
|
|
1694
|
-
timeoutInSeconds?: number;
|
|
1695
|
-
/**
|
|
1696
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1697
|
-
*/
|
|
1698
|
-
simulate?: boolean;
|
|
1699
|
-
}) => Promise<AssembledTransaction<boolean>>;
|
|
1195
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
|
|
1700
1196
|
/**
|
|
1701
1197
|
* Construct and simulate a enforced_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1702
1198
|
* Retrieves the enforced options for a given endpoint and message type.
|
|
@@ -1711,20 +1207,7 @@ export interface Client {
|
|
|
1711
1207
|
enforced_options: ({ eid, msg_type }: {
|
|
1712
1208
|
eid: u32;
|
|
1713
1209
|
msg_type: u32;
|
|
1714
|
-
}, txnOptions?:
|
|
1715
|
-
/**
|
|
1716
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1717
|
-
*/
|
|
1718
|
-
fee?: number;
|
|
1719
|
-
/**
|
|
1720
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1721
|
-
*/
|
|
1722
|
-
timeoutInSeconds?: number;
|
|
1723
|
-
/**
|
|
1724
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1725
|
-
*/
|
|
1726
|
-
simulate?: boolean;
|
|
1727
|
-
}) => Promise<AssembledTransaction<Buffer>>;
|
|
1210
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>;
|
|
1728
1211
|
/**
|
|
1729
1212
|
* Construct and simulate a set_enforced_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1730
1213
|
* Sets the enforced options for specific endpoint and message type combinations.
|
|
@@ -1740,20 +1223,7 @@ export interface Client {
|
|
|
1740
1223
|
*/
|
|
1741
1224
|
set_enforced_options: ({ options }: {
|
|
1742
1225
|
options: Array<EnforcedOptionParam>;
|
|
1743
|
-
}, txnOptions?:
|
|
1744
|
-
/**
|
|
1745
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1746
|
-
*/
|
|
1747
|
-
fee?: number;
|
|
1748
|
-
/**
|
|
1749
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1750
|
-
*/
|
|
1751
|
-
timeoutInSeconds?: number;
|
|
1752
|
-
/**
|
|
1753
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1754
|
-
*/
|
|
1755
|
-
simulate?: boolean;
|
|
1756
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1226
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1757
1227
|
/**
|
|
1758
1228
|
* Construct and simulate a combine_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1759
1229
|
* Combines options for a given endpoint and message type.
|
|
@@ -1775,20 +1245,7 @@ export interface Client {
|
|
|
1775
1245
|
eid: u32;
|
|
1776
1246
|
msg_type: u32;
|
|
1777
1247
|
extra_options: Buffer;
|
|
1778
|
-
}, txnOptions?:
|
|
1779
|
-
/**
|
|
1780
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1781
|
-
*/
|
|
1782
|
-
fee?: number;
|
|
1783
|
-
/**
|
|
1784
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1785
|
-
*/
|
|
1786
|
-
timeoutInSeconds?: number;
|
|
1787
|
-
/**
|
|
1788
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1789
|
-
*/
|
|
1790
|
-
simulate?: boolean;
|
|
1791
|
-
}) => Promise<AssembledTransaction<Buffer>>;
|
|
1248
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>;
|
|
1792
1249
|
}
|
|
1793
1250
|
export declare class Client extends ContractClient {
|
|
1794
1251
|
readonly options: ContractClientOptions;
|