@layerzerolabs/protocol-stellar-v2 0.2.20 → 0.2.21
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 +783 -802
- package/.turbo/turbo-lint.log +320 -157
- package/.turbo/turbo-test.log +1414 -1457
- package/Cargo.lock +109 -108
- package/Cargo.toml +32 -18
- package/contracts/common-macros/Cargo.toml +7 -7
- package/contracts/common-macros/src/auth.rs +18 -37
- package/contracts/common-macros/src/contract_ttl.rs +2 -2
- package/contracts/common-macros/src/lib.rs +27 -10
- package/contracts/common-macros/src/lz_contract.rs +38 -7
- package/contracts/common-macros/src/storage.rs +251 -292
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +6 -12
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +12 -17
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +2 -7
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +20 -9
- package/contracts/common-macros/src/tests/upgradeable.rs +26 -4
- package/contracts/common-macros/src/ttl_configurable.rs +2 -10
- package/contracts/common-macros/src/ttl_extendable.rs +2 -10
- package/contracts/common-macros/src/upgradeable.rs +56 -15
- package/contracts/common-macros/src/utils.rs +0 -9
- package/contracts/endpoint-v2/src/lib.rs +3 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +2 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +3 -3
- package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +17 -5
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +6 -6
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +67 -37
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +44 -54
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +7 -7
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +8 -8
- package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +4 -4
- package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +2 -2
- package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +2 -2
- package/contracts/layerzero-views/Cargo.toml +0 -1
- package/contracts/layerzero-views/src/layerzero_view.rs +1 -13
- package/contracts/macro-integration-tests/Cargo.toml +5 -15
- package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +48 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +170 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +154 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +338 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +435 -0
- package/contracts/macro-integration-tests/tests/runtime.rs +1 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +38 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +96 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +64 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +46 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +8 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui_oapp.rs +11 -0
- package/contracts/message-libs/message-lib-common/Cargo.toml +0 -1
- package/contracts/message-libs/message-lib-common/src/errors.rs +1 -1
- package/contracts/message-libs/treasury/Cargo.toml +0 -2
- package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/verify.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_executor_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +7 -27
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +2 -2
- package/contracts/oapps/counter/Cargo.toml +4 -6
- package/contracts/oapps/counter/integration_tests/utils.rs +19 -12
- package/contracts/oapps/oapp/src/errors.rs +1 -1
- package/contracts/oapps/oapp/src/interfaces/mod.rs +3 -0
- package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +47 -0
- package/contracts/oapps/oapp/src/lib.rs +1 -0
- package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +4 -4
- package/contracts/oapps/oapp/src/oapp_core.rs +5 -5
- package/contracts/oapps/oapp/src/oapp_options_type3.rs +12 -4
- package/contracts/oapps/oapp/src/oapp_receiver.rs +14 -9
- package/contracts/oapps/oapp/src/tests/mod.rs +4 -4
- package/contracts/oapps/oapp/src/tests/{test_oapp_core.rs → oapp_core.rs} +4 -4
- package/contracts/oapps/oapp/src/tests/{test_oapp_options_type3.rs → oapp_options_type3.rs} +3 -4
- package/contracts/oapps/oapp-macros/Cargo.toml +8 -4
- package/contracts/oapps/oapp-macros/src/generators.rs +9 -34
- package/contracts/oapps/oapp-macros/src/lib.rs +3 -0
- package/contracts/oapps/oapp-macros/src/tests/mod.rs +2 -0
- package/contracts/oapps/oapp-macros/src/tests/oapp.rs +88 -0
- package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +86 -0
- package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +103 -0
- package/contracts/oapps/oft/integration-tests/utils.rs +28 -8
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +136 -74
- package/contracts/oapps/oft/src/extensions/pausable.rs +44 -10
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +170 -130
- package/contracts/oapps/oft/src/oft.rs +19 -12
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +1 -1
- package/contracts/oapps/oft-core/Cargo.toml +1 -4
- package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -2
- package/contracts/oapps/oft-core/integration-tests/utils.rs +21 -3
- package/contracts/oapps/oft-core/src/errors.rs +3 -2
- package/contracts/oapps/oft-core/src/events.rs +6 -0
- package/contracts/oapps/oft-core/src/lib.rs +1 -1
- package/contracts/oapps/oft-core/src/oft_core.rs +115 -60
- package/contracts/oapps/oft-core/src/storage.rs +7 -3
- package/contracts/oapps/oft-core/src/tests/mod.rs +1 -0
- package/contracts/oapps/oft-core/src/tests/test_decimals.rs +37 -2
- package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +323 -0
- package/contracts/oapps/oft-core/src/tests/test_send.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/test_utils.rs +59 -14
- package/contracts/utils/Cargo.toml +0 -1
- package/contracts/utils/src/errors.rs +1 -1
- package/contracts/utils/src/multisig.rs +17 -8
- package/contracts/utils/src/ownable.rs +6 -6
- package/contracts/utils/src/testing_utils.rs +124 -54
- package/contracts/utils/src/tests/multisig.rs +12 -12
- package/contracts/utils/src/tests/ownable.rs +6 -6
- package/contracts/utils/src/tests/testing_utils.rs +50 -167
- package/contracts/utils/src/tests/ttl_configurable.rs +5 -5
- package/contracts/utils/src/tests/upgradeable.rs +1 -1
- package/contracts/utils/src/ttl_configurable.rs +10 -4
- package/contracts/utils/src/upgradeable.rs +5 -5
- package/contracts/workers/dvn/Cargo.toml +5 -6
- package/contracts/workers/dvn/src/dvn.rs +2 -12
- package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +37 -19
- package/contracts/workers/dvn-fee-lib/src/lib.rs +12 -2
- package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +15 -13
- package/contracts/workers/executor/Cargo.toml +3 -0
- package/contracts/workers/executor/src/executor.rs +2 -12
- package/contracts/workers/executor/src/lib.rs +2 -2
- package/contracts/workers/executor/src/tests/auth.rs +394 -0
- package/contracts/workers/executor/src/tests/executor.rs +410 -0
- package/contracts/workers/executor/src/tests/mod.rs +3 -0
- package/contracts/workers/executor/src/tests/setup.rs +250 -0
- package/contracts/workers/executor-fee-lib/Cargo.toml +5 -0
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +1 -12
- package/contracts/workers/executor-fee-lib/src/lib.rs +8 -2
- package/contracts/workers/executor-helper/Cargo.toml +0 -1
- package/contracts/workers/price-feed/Cargo.toml +5 -0
- package/contracts/workers/price-feed/src/lib.rs +9 -4
- package/contracts/workers/price-feed/src/price_feed.rs +1 -11
- package/contracts/workers/worker/src/errors.rs +1 -1
- package/contracts/workers/worker/src/tests/setup.rs +1 -1
- package/contracts/workers/worker/src/tests/worker.rs +55 -41
- package/contracts/workers/worker/src/worker.rs +34 -25
- package/docs/error-spec.md +55 -0
- package/docs/layerzero-v2-on-stellar.md +447 -0
- package/docs/oapp-guide.md +212 -0
- package/docs/oft-guide.md +314 -0
- package/package.json +3 -3
- package/sdk/.turbo/turbo-test.log +260 -257
- package/sdk/dist/generated/bml.d.ts +3 -3
- package/sdk/dist/generated/bml.js +4 -4
- package/sdk/dist/generated/counter.d.ts +295 -295
- package/sdk/dist/generated/counter.js +43 -43
- package/sdk/dist/generated/dvn.d.ts +91 -91
- package/sdk/dist/generated/dvn.js +24 -24
- package/sdk/dist/generated/dvn_fee_lib.d.ts +92 -92
- package/sdk/dist/generated/dvn_fee_lib.js +25 -25
- package/sdk/dist/generated/endpoint.d.ts +99 -99
- package/sdk/dist/generated/endpoint.js +16 -16
- package/sdk/dist/generated/executor.d.ts +91 -91
- package/sdk/dist/generated/executor.js +24 -24
- package/sdk/dist/generated/executor_fee_lib.d.ts +92 -92
- package/sdk/dist/generated/executor_fee_lib.js +25 -25
- package/sdk/dist/generated/executor_helper.d.ts +3 -3
- package/sdk/dist/generated/executor_helper.js +4 -4
- package/sdk/dist/generated/layerzero_view.d.ts +186 -186
- package/sdk/dist/generated/layerzero_view.js +35 -35
- package/sdk/dist/generated/oft.d.ts +366 -352
- package/sdk/dist/generated/oft.js +74 -79
- package/sdk/dist/generated/price_feed.d.ts +198 -198
- package/sdk/dist/generated/price_feed.js +39 -39
- package/sdk/dist/generated/sml.d.ts +99 -99
- package/sdk/dist/generated/sml.js +16 -16
- package/sdk/dist/generated/treasury.d.ts +99 -99
- package/sdk/dist/generated/treasury.js +16 -16
- package/sdk/dist/generated/uln302.d.ts +99 -99
- package/sdk/dist/generated/uln302.js +16 -16
- package/sdk/dist/generated/upgrader.d.ts +3 -3
- package/sdk/dist/generated/upgrader.js +3 -3
- package/sdk/package.json +1 -1
- package/sdk/test/suites/localnet.ts +84 -20
- package/contracts/ERROR_SPEC.md +0 -51
- package/contracts/endpoint-v2/ARCHITECTURE.md +0 -233
- /package/contracts/oapps/oapp/src/tests/{test_oapp_receiver.rs → oapp_receiver.rs} +0 -0
- /package/contracts/oapps/oapp/src/tests/{test_oapp_sender.rs → oapp_sender.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: 40336 bytes (39.39 KB)
|
|
10
10
|
*/
|
|
11
|
-
export declare const WASM_BASE64 = "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QiCGQgSEEICAgIAAGgviAwIBfwJ+I4CAgIAAQTBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBwABAgMEBQYACyABQQhqQYCAwIAAQQMQ1oCAgAAgASgCCA0IIAFBCGogASkDEBDXgICAAAwGCyABQSBqQYOAwIAAQRAQ1oCAgAAgASgCIA0HIAEgASkDKDcDCCABIAApAwg3AxggASAANQIEQiCGQgSENwMQIAFBIGogAUEIahDYgICAACABKQMoIQIgASkDICEDDAYLIAFBCGpBk4DAgABBDBDWgICAACABKAIIDQYgAUEIaiABKQMQENeAgIAADAQLIAFBCGpBn4DAgABBBRDWgICAACABKAIIDQUgAUEIaiABKQMQENeAgIAADAMLIAFBCGpBpIDAgABBDRDWgICAACABKAIIDQQgAUEIaiABKQMQENeAgIAADAILIAFBCGpBsYDAgABBDBDWgICAACABKAIIDQMgAUEIaiABKQMQIAA1AgRCIIZCBIQQ2YCAgAAMAQsgAUEIakG9gMCAAEENENaAgIAAIAEoAggNAiABQQhqIAEpAxAgADUCBEIghkIEhBDZgICAAAsgASkDECECIAEpAwghAwsgA1ANAQsACyABQTBqJICAgIAAIAILdAIBfwJ+I4CAgIAAQRBrIgIkgICAgABCACEDAkACQCABEKuAgIAAIgRCARCtgICAAEUNACACIARCARCBgICAABCugICAACACKAIAQQFGDQEgACACKQMINwMIQgEhAwsgACADNwMAIAJBEGokgICAgAAPCwALDwAgACABEKKAgIAAQgFRC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQlICAgAAhAQsgACADNwMAIAAgATcDCAsOACAAIAFCARCwgICAAAsbACAAEKuAgIAAIAEQsYCAgAAgAhCCgICAABoLQQEBfyOAgICAAEEQayIBJICAgIAAIAEgABCDgYCAAAJAIAEoAgBBAUcNAAALIAEpAwghACABQRBqJICAgIAAIAALdAIBfwJ+I4CAgIAAQRBrIgIkgICAgABCACEDAkACQCABEKuAgIAAIgRCAhCtgICAAEUNACACIARCAhCBgICAABCugICAACACKAIAQQFGDQEgACACKQMINwMIQgEhAwsgACADNwMAIAJBEGokgICAgAAPCwALDgAgACABQgIQsICAgAALnwUBAX8jgICAgABB8ABrIgokgICAgAAQtYCAgAAQtoCAgAAgBBC1gICAACAFIAYQpYCAgAACQAJAIAcgCIRCAFENACAKQcAAahC1gICAAEKO6PcfEIOAgIAAEISAgIAAELeAgIAAIAopA0AiBkICUQ0BAkAgBqdBAXFFDQAgCikDSCAEELWAgIAAIAcgCBClgICAAAwBC0KDgICAsPoBELiAgIAAAAsgCkHAAGogARC5gICAACAKKQNIIQQgCikDQBC6gICAABC1gICAACEGEIWAgIAAIQUgCiAHQgBSIAhCAFUgCFAbOgAkIAogAzcDGCAKIAI3AxAgCiAENwMIIAogATYCICAKQQhqELuAgIAAIQggCiAJNwM4IAogCDcDMCAKIAU3AyhBACEBA0ACQCABQRhHDQBBACEBAkADQCABQRhGDQEgCkHAAGogAWogCkEoaiABaikDADcDACABQQhqIQEMAAsLIAZCjtKzlQ4gCkHAAGpBAxCngICAABCEgICAACEIQQAhAQJAA0AgAUEYRg0BIApBKGogAWpCAjcDACABQQhqIQEMAAsLIAhC/wGDQswAUg0CIAhB7IHAgABBAyAKQShqQQMQvICAgAAgCkHAAGogCikDKBC9gICAACAKKAJAQQFxDQIgCikDaCEIIAopA2AhByAKKQNYIQQgCikDUCEGIApBwABqIAopAzAQvoCAgAAgCigCQA0CIAopA0ghBSAKQcAAaiAKKQM4EK6AgIAAIAooAkBBAUYNAiAKKQNIIQkgACAHNwMQIAAgBjcDACAAIAk3AyggACAFNwMgIAAgCDcDGCAAIAQ3AwggCkHwAGokgICAgAAPCyAKQcAAaiABakICNwMAIAFBCGohAQwACwsQv4CAgAAAC4cBAgF/AX4jgICAgABBEGsiACSAgICAACAAQQRqEMGAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBDCgICAAAsCQAJAQQAgABDGgICAACIBQgIQrYCAgABFDQAgAUICEIGAgIAAIgFC/wGDQs0AUQ0BAAsQyICAgAAACyAAQRBqJICAgIAAIAELNgACQCAAQYSCwIAAQQwQhIGAgAAQg4CAgAAQhICAgAAiAEL/AYNCzQBRDQAQv4CAgAAACyAACzkAAkAgAUICUQ0AAkAgAUL/AYNCzQBRDQAgAEICNwMADwsgACABNwMIIABCATcDAA8LIABCADcDAAsLACAAEKSAgIAAGgvGAQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAhDBgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQwoCAgAALAkACQAJAQQEgARDGgICAACIDQgEQrYCAgABFDQAgAiADQgEQgYCAgAAQvoCAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwghAyAAQgE3AwAgACADNwMIIAIQxICAgAAgAigCAEEBRw0AIAEgAigCBCACKAIIEMeAgIAACyACQRBqJICAgIAACx4AAkAgAKdBAXFFDQAPC0KDgICAkPoBELiAgIAAAAtzAgF/AX4jgICAgABBMGsiASSAgICAACABIAApAwA3AyggASAAMQAcNwMgIAEgACkDEDcDGCABIAApAwg3AxAgASAANQIYQiCGQgSENwMIQeyAwIAAQQUgAUEIakEFEPCAgIAAIQIgAUEwaiSAgICAACACCzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCdgICAABoL7wECAn8DfiOAgICAAEEwayICJICAgIAAQQAhAwJAA0AgA0EQRg0BIAIgA2pCAjcDACADQQhqIQMMAAsLQgAhBEIBIQUCQCABQv8Bg0LMAFINACABQdSBwIAAQQIgAkECELyAgIAAIAJBEGogAikDABCCgYCAACACKAIQQQFGDQAgAikDKCEBIAIpAyAhBiACQRBqIAIpAwgQgoGAgAAgAigCEEEBRg0AIAIpAyAhBCAAIAIpAyg3AyggACAENwMgIAAgATcDGCAAIAY3AxBCACEFQgAhBAsgACAFNwMAIAAgBDcDCCACQTBqJICAgIAAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCIgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAsJABDKgICAAAALvQEEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAACACQQRqEMGAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBDCgICAAAsCQAJAIAAgARDDgICAACIDQgEQrYCAgAAiBEUNACADQgEQgYCAgAAiBUL/AYNCyABSDQEgAkEEahDEgICAACACKAIEQQFHDQAgACABIAIoAgggAigCDBDFgICAAAsQhoCAgAAhAyACQRBqJICAgIAAIAUgAyAEGw8LAAsMACAAQQEQrIGAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQo4CAgAAaC4oBAgF/AX4jgICAgABBMGsiAiSAgICAACACQSBqQYCDwIAAQQ8Q1oCAgAACQAJAIAIoAiANACACIAIpAyg3AwggAiABrUIghkIEhDcDGCACIACtQiCGQgSENwMQIAJBIGogAkEIahDYgICAACACKAIgRQ0BCwALIAIpAyghAyACQTBqJICAgIAAIAMLDAAgAEECEKyBgIAACycAIAAgARDDgICAAEIBIAKtQiCGQgSEIAOtQiCGQgSEEICAgIAAGgubAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCAAQQFxRQ0AIAJBvYLAgABBBBDWgICAACACKAIADQIgAiACKQMIIAGtQiCGQgSEENmAgIAADAELIAJBtYLAgABBCBDWgICAACACKAIADQEgAiACKQMIENeAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLJwBBASAAEMaAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaCwkAEL+AgIAAAAscAAJAIABBf2pB/wFxQQRJDQAQyoCAgAAACyAACwMAAAuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahDBgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQwoCAgAALQQAhAQJAQQAQzICAgAAiAkICEK2AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBwoXAgABBBhDWgICAACABKAIADQMgASABKQMIENeAgIAADAILIAFByIXAgABBCBDWgICAACABKAIADQIgASABKQMIENeAgIAADAELIAFB0IXAgABBChDWgICAACABKAIADQEgASABKQMIENeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQzoCAgAAQh4CAgAAaC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQwYCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEMKAgIAACyAAENCAgIAAIAApAwghASAAKQMAQYoIENGAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAENCAgIAAIAApAwghASAAKQMAQYoIENGAgIAAIAEQh4CAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahDBgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQwoCAgAALIAAQ1YCAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8ELiAgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABDTgICAAAJAIAApAwBQDQBCg4CAgLCBARC4gICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQwYCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEMKAgIAAC0IAIQICQAJAQQEQ1ICAgAAiA0IAEK2AgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFB1YTAgABBDBDWgICAACABKAIADQIgASABKQMIENeAgIAADAELIAFB0ITAgABBBRDWgICAACABKAIADQEgASABKQMIENeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQ1ICAgAAiAkICEK2AgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQqYGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEKeAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCngICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtIAQF/I4CAgIAAQRBrIgMkgICAgAAgAyACNwMIIAMgATcDACADQQIQp4CAgAAhAiAAQgA3AwAgACACNwMIIANBEGokgICAgAALnwECAX8BfiOAgICAAEEQayICJICAgIAAEIaAgIAAIQMgAiAAOgALIAMgAxCIgICAAEKAgICAcINCBIQgAkELakEBENuAgIAAIQMgAiABQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCDCADIAMQiICAgABCgICAgHCDQgSEIAJBDGpBBBDbgICAACEDIAJBEGokgICAgAAgAwseACAAIAEgAq1CIIZCBIQgA61CIIZCBIQQmoCAgAALMQACQCAAEIiAgIAAQv////8PVg0AEN2AgIAAAAsgAEIEEImAgIAAQiCIpxDJgICAAAsJABDKgICAAAALqQMCAX8CfiOAgICAAEEgayICJICAgIAAQgwhAwJAIAFBBSABEIiAgIAAQiCIpxDfgICAACIBEIiAgIAAQoCAgIAQVA0AIAEQioCAgAAhAwsgAkEPaiADEIuAgIAAIgFCBEKEgICAgAIQjICAgAAQ4ICAgAACQAJAIAItAA9BAUYNACACKQAYIQMgAikAECEEIAJBD2ogAUKEgICAgAJChICAgIAEEIyAgIAAEOCAgIAAIAItAA9BAUYNACAEIAOEQgBSDQEgAikAECIBQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4DgyABQjiIhISEIgNCf1cNASAAIAIpABgiAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhDcDACAAIAM3AwggAkEgaiSAgICAAA8LEL+AgIAAAAtCg4CAgCAQuICAgAAACxwAIAAgAa1CIIZCBIQgAq1CIIZCBIQQjICAgAAL2QECA38BfiOAgICAAEEQayICJICAgIAAQQEhAwJAIAEQiICAgABCgICAgHCDQoCAgICAAlINACACQQhqQgA3AwAgAkIANwMAIABBAWohBEEAIQMCQANAIAEQiICAgABCgICAgBBUDQEgARCfgICAACEFIAFBARCOgYCAACEBAkAgA0EQRg0AIAIgA2ogBUIgiDwAACADQQFqIQMMAQsLQRAQqIGAgAAACyAEIAIpAwA3AAAgBEEIaiACQQhqKQMANwAAQQAhAwsgACADOgAAIAJBEGokgICAgAAL7wICAX8BfiOAgICAAEEwayICJICAgIAAEIaAgIAAIQMgAkGABjsBECADIAMQiICAgABCgICAgHCDQgSEIAJBEGpBAhDbgICAAEKEgICAEBCNgICAACEDIAJCgICAgIDgwIbAADcDCCACQgA3AwAgAiAAQjiGNwMYIAJCADcDEAJAAkAgACABhEIAUg0AIAJBgCI7AS4gAyADEIiAgIAAQoCAgIBwg0IEhCACQS5qQQIQ24CAgABChICAgBAQjYCAgAAhACAAIAAQiICAgABCgICAgHCDQgSEIAJBEBDbgICAACEADAELIAJBgMIAOwEuIAMgAxCIgICAAEKAgICAcINCBIQgAkEuakECENuAgIAAQoSAgIAQEI2AgIAAIQAgACAAEIiAgIAAQoCAgIBwg0IEhCACQRAQ24CAgAAhACAAIAAQiICAgABCgICAgHCDQgSEIAJBEGpBEBDbgICAACEACyACQTBqJICAgIAAIAALXgIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAEN6AgIAAAkAgASkDACACKQMAWiABKQMIIgAgAikDCCIDWSAAIANRGw0AQoOAgIAwELiAgIAAAAsgAkEQaiSAgICAAAuFAQIBfwF+I4CAgIAAQTBrIgIkgICAgAAgAiABNwMIIAIgADYCBCACQQE2AgAgAkEQaiACEKyAgIAAAkAgAikDECIBUA0AIAJBJGoQxICAgAAgAigCJEUNACACIAIoAiggAigCLBCqgICAAAsgAikDGCEDIAJBMGokgICAgAAgA0IAIAGnGwtpAQF/I4CAgIAAQSBrIgMkgICAgAAgAyABNwMIIAMgADYCBCADQQE2AgAgAyACEK+AgIAAIANBFGoQxICAgAACQCADKAIUQQFHDQAgAyAD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IAggByAEIAEgABC0gICAACAFQTBqJICAgIAAQgIPCwALEL+AgIAAAAuoAQIBfwJ+I4CAgIAAQTBrIgEkgICAgAAgAUEQahDBgICAAAJAIAEoAhBBAUcNACABKAIUIAEoAhgQwoCAgAALIAFBBjYCACABIAA2AgQgAUEQaiABEKyAgIAAAkAgASkDECICUA0AIAFBJGoQxICAgAAgASgCJEEBRw0AIAEgASgCKCABKAIsEKqAgIAACyABKQMYIQMgAUEwaiSAgICAACADQgAgAqcbC4sBAQJ/I4CAgIAAQRBrIgEkgICAgAACQEEBIACnQf8BcSICQQBHQQF0IAJBAUYbIgJBAkYNABDNgICAACABEMGAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBDCgICAAAsgAUECNgIAIAEQq4CAgAAgAq1CAhCCgICAABogAUEQaiSAgICAAEICDwsAC5UDBQF/AX4BfwF+AX8jgICAgABB0ABrIgMkgICAgAACQCAAQv8Bg0IEUg0AIANBKGogARC+gICAACADKAIoQQFGDQAgAykDMCEBIANBKGogAhCugICAACADKAIoQQFGDQAgAEIgiCECIAMpAzAhBBDNgICAACADQShqEMGAgIAAAkAgAygCKEEBRw0AIAMoAiwgAygCMBDCgICAAAsgAqchBRCFgICAACECELWAgIAAIQYgAyAEELGAgIAANwMgIAMgATcDGCADIABChICAgHCDNwMQIAMgAjcDCCADIAI3AwBBACEHAkADQAJAIAdBKEcNAEEAIQcCQANAIAdBKEYNASADQShqIAdqIAMgB2opAwA3AwAgB0EIaiEHDAALCyAGQo7qrpgOIANBKGpBBRCngICAABCogICAAAJAEOWAgIAARQ0AIAUgARDjgICAAEIBfCIAUA0DIAUgASAAEOSAgIAACyADQdAAaiSAgICAAEICDwsgA0EoaiAHakICNwMAIAdBCGohBwwACwsQv4CAgAAACwALDwAQ7oCAgACtQiCGQgSECw4AEPeAgIAAELGAgIAAC3MCAn8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQwYCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYEMKAgIAACyAAQQM2AgAgAEEQaiAAELKAgIAAIAAoAhAhASAAKQMYIQIgAEEgaiSAgICAACACQgAgARsLDgAQ+YCAgAAQsYCAgAALcwICfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEQahDBgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQwoCAgAALIABBBDYCACAAQRBqIAAQsoCAgAAgACgCECEBIAApAxghAiAAQSBqJICAgIAAIAJCACABGwsjAAJAIABC/wGDQgRRDQAACyAAQiCIpxD7gICAABCxgICAAAuoAQIBfwJ+I4CAgIAAQTBrIgEkgICAgAAgAUEQahDBgICAAAJAIAEoAhBBAUcNACABKAIUIAEoAhgQwoCAgAALIAFBBTYCACABIAA2AgQgAUEQaiABEKyAgIAAAkAgASkDECICUA0AIAFBJGoQxICAgAAgASgCJEEBRw0AIAEgASgCKCABKAIsEKqAgIAACyABKQMYIQMgAUEwaiSAgICAACADQgAgAqcbCyMAAkAgAEL/AYNCBFENAAALIABCIIinEPKAgIAAELGAgIAAC64BAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkAgAEL/AYNCBFINACACIAEQvoCAgAAgAigCAEEBRg0AIAIpAwghAyACEMGAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBDCgICAAAtCACEBAkAQ5YCAgABFDQAgAEIgiKcgAxDjgICAAEIBfCIBUA0CCyABELGAgIAAIQAgAkEQaiSAgICAACAADwsACxC/gICAAAALmwECAn8BfiOAgICAAEEgayIBJICAgIAAIAEgABD/gICAAAJAIAEoAgBBAUYNACABKAIYIQIgASkDCCEDIAEQwYCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEMKAgIAACyABIAIQuYCAgABCACEAAkAgASgCAEEBRw0AIAEpAwggAxCAgYCAAK0hAAsgAUEgaiSAgICAACAADwsAC+IBAgJ/An4jgICAgABBMGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQaiBwIAAQQMgAkEIakEDELyAgIAAIAJBIGogAikDCBCugICAACACKAIgDQAgAikDKCEBIAJBIGogAikDEBC+gICAACACKAIgDQAgAikDGCIFQv8Bg0IEUg0AIAIpAyghBCAAIAE3AxAg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Qv8Bg0IEUg0AIAcgBkIgiKcgASkDGCIGQv8Bg0LIAFIiBRshByAIIAYgBRshCCAJIARCIIinIAUbIQkLIANC/////w9RDQMgBQ0DIAEgBzYCFCABIAk2AhAgASAINwMIIAFBCGoQi4GAgAAgCSAHEMOAgIAAIAhCARCCgICAABogAUEkahDEgICAAAJAIAEoAiRBAUcNACAJIAcgASgCKCABKAIsEMWAgIAACyADQgF8IQMMAAsLQY+DwIAAQRMQhIGAgAAQjIGAgAAhAyABIAA3AwggA0G4g8CAAEEBIAFBCGpBARDwgICAABCRgICAABogAUEwaiSAgICAAEICDwsACxC/gICAAAAL1gECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgACkDACICEIiAgIAAQv////8fWA0AIAJBAEECEN+AgIAAIgIQiICAgABCgICAgHCDQoCAgIAgUg0BIAFBADsBDiACEIiAgIAAQoCAgIBwg0KAgICAIFINAiACIAFBDmpBAhCHgYCAACABLwEOQYAGRw0DIAFBEGokgICAgAAPC0KDgICAgP0AELiAgIAAAAtCg4CAgICCARC4gICAAAALEIiBgIAAAAtCg4CAgID6ARC4gICAAAALYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKeAgIAAIQAgAUEQaiSAgICAACAAC4ICAQN/I4CAgIAAQSBrIgMkgICAgAACQAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACACQv8Bg0LIAFINACAAQiCIpyEEIAFCIIinIQUgAyACNwMIIANBFGoQwYCAgAACQCADKAIUQQFHDQAgAygCGCADKAIcEMKAgIAACwJAIAQgBRDAgICAACIAEIiAgIAAQoCAgIAQVA0AAkAgAhCIgICAAEKAgICAEFoNACAAIQIMAQsgAhCIgICAAEL/////H1gNAiADQQhqEIuBgIAAIAAgAkECEI6BgIAAEI6AgIAAIQILIANBIGokgICAgAAgAg8LAAtCg4CAgID6ARC4gICAAAALJQAgACABrUIghkIEhCAAEIiAgIAAQoCAgIBwg0IEhBCMgICAAAueAQIBfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEQahDBgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQwoCAgAALIABBEGoQkIGAgAACQAJAIAAoAhANACAAKQMYIQEgAEEQahCQgYCAACAAKAIQQQFHDQELAAsgACAAKQMYNwMIIAAgATcDACAAQQIQp4CAgAAhASAAQSBqJICAgIAAIAELDAAgAEIBEIOBgIAACwgAELWAgIAAC1EBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRRDQAACyABIABCIIinELmAgIAAIAEpAwAgASkDCBCTgYCAACEAIAFBEGokgICAgAAgAAsNACABQgIgAKdBAXEbC7oCBAF/AX4BfwF+I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0IEUg0AAkACQCABQgJSDQBCACEBDAELIAIgARC+gICAACACKAIAQQFGDQEgAikDCCEDQgEhAQsQzYCAgAAgAhDBgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQwoCAgAALQQEgAEIgiKciBBDGgICAACEFAkACQCABUA0AIAUgA0IBEIKAgIAAGiACEMSAgIAAIAIoAgBBAUcNASAEIAIoAgQgAigCCBDHgICAAAwBCyAFQgEQkoCAgAAaC0KO8qq88Naq6wAQjIGAgAAhBSACIAEgAxCTgYCAADcDCCACIABChICAgHCDNwMAIAVByILAgABBAiACQQIQ8ICAgAAQkYCAgAAaIAJBEGokgICAgABCAg8LAAuHAQIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELeAgIAAAkAgASkDACIAQgJRDQAgASkDCCECEM2AgIAAIAEQwYCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEMKAgIAACxC1gICAABCFgICAACAAIAIQ7ICAgAAgAUEQaiSAgICAAEICDwsAC94EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABCXgYCAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEJeBgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQwYCAgAACQCACKAIoQQFHDQAgAigCLCACKAIwEMKAgIAACxDNgICAAAJAAkACQBDLgICAAA0AEJiBgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AELiAgIAAAAtCg4CAgMD/ABC4gICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEOmAgIAADAELQQEQzICAgABCAhCSgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEOqAgIAADAELQQIQzICAgABCAhCSgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEH8hMCAAEEPEISBgIAAEIyBgIAAIQAgAkEoahCZgYCAACEBIAIgAkE0ahCZgYCAADcDSCACIAE3A0AgAEGghcCAAEECIAJBwABqQQIQ8ICAgAAQkYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEKqBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALMwECfhCggICAACEAAkAQoYCAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQv4CAgAAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABCbgYCAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILwgECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEMGAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBDCgICAAAsgAEEIahDBgICAACAAQRRqIgEQxICAgAAgAEEwaiAAQQhqEJuBgIAAAkACQCAAKAIwDQAgACkDOCECIABBMGogARCbgYCAACAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgAjcDICAAQSBqQQIQp4CAgAAhAiAAQcAAaiSAgICAACACCzAAAkAgASgCAEEBRw0AIAAgASgCBCABKAIIEKuBgIAADwsgAEIANwMAIABCAjcDCAuqAQEBfyOAgICAAEEgayIAJICAgIAAIABBDGoQwYCAgAACQCAAKAIMQQFHDQAgACgCECAAKAIUEMKAgIAACxDNgICAAAJAEMuAgIAARQ0AQoOAgIDg/wAQuICAgAAAC0EAEMyAgIAAQgFCAhCCgICAABpBsIXAgABBEhCEgYCAABCMgYCAAEEEQQAgAEEYakEAEPCAgIAAEJGAgIAAGiAAQSBqJICAgIAAQgILCQAQy4CAgACtCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinEMKAgIAAQgIPCwALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDQgICAACAAKQMAIAApAwgQk4GAgAAhASAAQRBqJICAgIAAIAELPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDTgICAACAAKQMAIAApAwgQk4GAgAAhASAAQRBqJICAgIAAIAELfQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINACABQQRqEMGAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBDCgICAAAsQz4CAgAAhAhDSgICAACAAEOuAgIAAIAIgABCigYCAACABQRBqJICAgIAAQgIPCwALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABByYPAgABBFRCEgYCAABCMgYCAACEDIAIgADcDCCACIAE3AwAgA0Hwg8CAAEECIAJBAhDwgICAABCRgICAABogAkEQaiSAgICAAAvcAgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQhqEMGAgIAAAkAgAigCCEEBRw0AIAIoAgwgAigCEBDCgICAAAsQz4CAgAAhAwJAAkAgAUL/////D1YNACACQQhqENOAgIAAIAIpAxAhASACKQMIQYgIENGAgIAAIAEgABCAgYCAAEUNAxCkgYCAAAwBCxCYgYCAACABQiCIp0kNA0EBIABCABClgYCAAEEBENSAgIAAQgAgAUKEgICAcIMiASABEICAgIAAGkGAhMCAAEEWEISBgIAAEIyBgIAAIQQgAiABNwMYIAIgAzcDECACIAA3AwggBEGchMCAAEEDIAJBCGpBAxDwgICAABCRgICAABoLIAJBIGokgICAgABCAg8LAAtCg4CAgOCAARC4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dGVzIHRvIGBfX2x6X3JlY2VpdmVgIGZvciBhcHBsaWNhdGlvbiBsb2dpYy4KCiMgQXJndW1lbnRzCiogYGV4ZWN1dG9yYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBleGVjdXRvciBmb3IgdGhlIHJlY2VpdmVkIG1lc3NhZ2UKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gaW5mb3JtYXRpb24gY29udGFpbmluZyB0aGUgc291cmNlIGVuZHBvaW50IGFuZCBzZW5kZXIgYWRkcmVzczoKLSBgc3JjX2VpZGA6IFRoZSBzb3VyY2UgY2hhaW4gZW5kcG9pbnQgSUQKLSBgc2VuZGVyYDogVGhlIHNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4KLSBgbm9uY2VgOiBUaGUgbm9uY2Ugb2YgdGhlIG1lc3NhZ2UKKiBgZ3VpZGAgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZWNlaXZlZCBMYXllclplcm8gbWVzc2FnZQoqIGBtZXNzYWdlYCAtIFRoZSBwYXlsb2FkIG9mIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYGV4dHJhX2RhdGFgIC0gQWRkaXRpb25hbCBhcmJpdHJhcnkgZGF0YSBwcm92aWRlZCBieSB0aGUgY29ycmVzcG9uZGluZyBleGVjdXRvcgoqIGB2YWx1ZWAgLSBUaGUgbmF0aXZlIHRva2VuIHZhbHVlIHNlbnQgd2l0aCB0aGUgbWVzc2FnZQAAAAAKbHpfcmVjZWl2ZQAAAAAABgAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAexJbmRpY2F0ZXMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFwcHJvdmVkIGNvbXBvc2VNc2cgc2VuZGVyIHRvIHRoZSBFbmRwb2ludC4KCkFwcGxpY2F0aW9ucyBjYW4gb3B0aW9uYWxseSBjaG9vc2UgdG8gaW1wbGVtZW50IHNlcGFyYXRlIGNvbXBvc2VNc2cgc2VuZGVycyB0aGF0IGFyZSBOT1QgdGhlIGJyaWRnaW5nIGxheWVyLgpUaGUgZGVmYXVsdCBzZW5kZXIgSVMgdGhlIE9BcHBSZWNlaXZlciBpbXBsZW1lbnRlci4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3MKKiBgbWVzc2FnZWAgLSBUaGUgbHpSZWNlaXZlIHBheWxvYWQKKiBgc2VuZGVyYCAtIFRoZSBzZW5kZXIgYWRkcmVzcyB0byBjaGVjawoKIyBSZXR1cm5zClRydWUgaWYgdGhlIHNlbmRlciBpcyBhIHZhbGlkIGNvbXBvc2VNc2cgc2VuZGVyLCBmYWxzZSBvdGhlcndpc2UAAAAVaXNfY29tcG9zZV9tc2dfc2VuZGVyAAAAAAAAAwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAAABAAAAAAAAAAAAAAAKbHpfY29tcG9zZQAAAAAABwAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAAAAAAVpbmRleAAAAAAAAAQAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAKZXh0cmFfZGF0YQAAAAAADgAAAAAAAAAFdmFsdWUAAAAAAAALAAAAAAAAAAAAAADZUmV0cmlldmVzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoKIyBSZXR1cm5zClRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciB0aGUgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZQAAAAAAABBlbmZvcmNlZF9vcHRpb25zAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAEAAAAOAAAAAAAAAptTZXRzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBzcGVjaWZpYyBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlIGNvbWJpbmF0aW9ucy4KCk9ubHkgdGhlIGBhdXRob3JpemVyYCBvZiB0aGUgT0FwcCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLgpQcm92aWRlcyBhIHdheSBmb3IgdGhlIE9BcHAgdG8gZW5mb3JjZSB0aGluZ3MgbGlrZSBwYXlpbmcgZm9yIFByZUNyaW1lLCBBTkQvT1IgbWluaW11bSBkc3QgbHpSZWNlaXZlIGdhcyBhbW91bnRzIGV0Yy4KVGhlc2UgZW5mb3JjZWQgb3B0aW9ucyBjYW4gdmFyeSBhcyB0aGUgcG90ZW50aWFsIG9wdGlvbnMvZXhlY3V0aW9uIG9uIHRoZSByZW1vdGUgbWF5IGRpZmZlciBhcyBwZXIgdGhlIG1zZ190eXBlLgplLmcuIEFtb3VudCBvZiBselJlY2VpdmUoKSBnYXMgbmVjZXNzYXJ5IHRvIGRlbGl2ZXIgYSBsekNvbXBvc2UoKSBtZXNzYWdlIGFkZHMgb3ZlcmhlYWQgeW91IGRvbid0IHdhbnQgdG8gcGF5CmlmIHlvdSBhcmUgb25seSBtYWtpbmcgYSBzdGFuZGFyZCBMYXllclplcm8gbWVzc2FnZSBpZS4gbHpSZWNlaXZlKCkgV0lUSE9VVCBzZW5kQ29tcG9zZSgpLgoKIyBBcmd1bWVudHMKKiBgb3B0aW9uc2AgLSBBIHZlY3RvciBvZiBFbmZvcmNlZE9wdGlvblBhcmFtIHN0cnVjdHVyZXMgc3BlY2lmeWluZyBlbmZvcmNlZCBvcHRpb25zAAAAABRzZXRfZW5mb3JjZWRfb3B0aW9ucwAAAAEAAAAAAAAAB29wdGlvbnMAAAAD6gAAB9AAAAATRW5mb3JjZWRPcHRpb25QYXJhbQAAAAAAAAAAAAAAAnpDb21iaW5lcyBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgpJZiB0aGVyZSBpcyBhbiBlbmZvcmNlZCBselJlY2VpdmUgb3B0aW9uOgotIHtnYXNfbGltaXQ6IDIwMGssIHZhbHVlOiAxIFhMTX0gQU5EIGEgY2FsbGVyIHN1cHBsaWVzIGEgbHpSZWNlaXZlIG9wdGlvbjoge2dhc19saW1pdDogMTAwaywgdmFsdWU6IDAuNSBYTE19Ci0gVGhlIHJlc3VsdGluZyBvcHRpb25zIHdpbGwgYmUge2dhc19saW1pdDogMzAwaywgdmFsdWU6IDEuNSBYTE19IHdoZW4gdGhlIG1lc3NhZ2UgaXMgZXhlY3V0ZWQgb24gdGhlIHJlbW90ZSBsel9yZWNlaXZlKCkgZnVuY3Rpb24uClRoZSBwcmVzZW5jZSBvZiBkdXBsaWNhdGVkIG9wdGlvbnMgaXMgaGFuZGxlZCBvZmYtY2hhaW4gaW4gdGhlIHZlcmlmaWVyL2V4ZWN1dG9yLgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBtc2dfdHlwZWAgLSBUaGUgT0FwcCBtZXNzYWdlIHR5cGUKKiBgZXh0cmFfb3B0aW9uc2AgLSBBZGRpdGlvbmFsIG9wdGlvbnMgcGFzc2VkIGJ5IHRoZSBjYWxsZXIKCiMgUmV0dXJucwpUaGUgY29tYmluYXRpb24gb2YgY2FsbGVyIHNwZWNpZmllZCBvcHRpb25zIEFORCBlbmZvcmNlZCBvcHRpb25zAAAAAAAPY29tYmluZV9vcHRpb25zAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAADWV4dHJhX29wdGlvbnMAAAAAAAAOAAAAAQAAAA4AAAAAAAAArlJldHJpZXZlcyB0aGUgT0FwcCB2ZXJzaW9uIGluZm9ybWF0aW9uLgoKIyBSZXR1cm5zCkEgdHVwbGUgY29udGFpbmluZzoKLSBgc2VuZGVyX3ZlcnNpb25gOiBUaGUgdmVyc2lvbiBvZiB0aGUgT0FwcFNlbmRlcgotIGByZWNlaXZlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBSZWNlaXZlcgAAAAAADG9hcHBfdmVyc2lvbgAAAAAAAAABAAAD7QAAAAIAAAAGAAAABgAAAAAAAABsUmV0cmlldmVzIHRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggdGhlIE9BcHAuCgojIFJldHVybnMKVGhlIExheWVyWmVybyBlbmRwb2ludCBhZGRyZXNzAAAACGVuZHBvaW50AAAAAAAAAAEAAAATAAAAAAAAAMFSZXRyaWV2ZXMgdGhlIHBlZXIgKE9BcHApIGFzc29jaWF0ZWQgd2l0aCBhIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECgojIFJldHVybnMKVGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGVuZHBvaW50AAAAAAAABHBlZXIAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAD7gAAACAAAAAAAAAA5VNldHMgb3IgcmVtb3ZlcyB0aGUgcGVlciBhZGRyZXNzIChPQXBwIGluc3RhbmNlKSBmb3IgYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBwZWVyYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBwZWVyIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIHBlZXIAAAAAAAAIc2V0X3BlZXIAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAEcGVlcgAAA+gAAAPuAAAAIAAAAAAAAAAAAAAAjlNldHMgdGhlIGRlbGVnYXRlIGFkZHJlc3MgZm9yIHRoZSBPQXBwIENvcmUuCgojIEFyZ3VtZW50cwoqIGBkZWxlZ2F0ZWAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgZGVsZWdhdGUgdG8gYmUgc2V0LCBvciBOb25lIHRvIHJlbW92ZSB0aGUgZGVsZWdhdGUAAAAAAAxzZXRfZGVsZWdhdGUAAAABAAAAAAAAAAhkZWxlZ2F0ZQAAA+gAAAATAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAA1FbmRwb2ludEVycm9yAAAAAAAAGQAAAAAAAAARQWxyZWFkeVJlZ2lzdGVyZWQAAAAAAAABAAAAAAAAAA1Db21wb3NlRXhpc3RzAAAAAAAAAgAAAAAAAAAPQ29tcG9zZU5vdEZvdW5kAAAAAAMAAAAAAAAAHERlZmF1bHRSZWNlaXZlTGliVW5hdmFpbGFibGUAAAAEAAAAAAAAABlEZWZhdWx0U2VuZExpYlVuYXZhaWxhYmxlAAAAAAAABQAAAAAAAAAVSW5zdWZmaWNpZW50TmF0aXZlRmVlAAAAAAAABgAAAAAAAAASSW5zdWZmaWNpZW50WnJvRmVlAAAAAAAHAAAAAAAAABBJbnZhbGlkRmVlQW1vdW50AAAACAAAAAAAAAANSW52YWxpZEV4cGlyeQAAAAAAAAkAAAAAAAAADEludmFsaWRJbmRleAAAAAoAAAAAAAAADEludmFsaWROb25jZQAAAAsAAAAAAAAAEkludmFsaWRQYXlsb2FkSGFzaAAAAAAADAAAAAAAAAAVSW52YWxpZFJlY2VpdmVMaWJyYXJ5AAAAAAAADQAAAAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAAAAAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAAAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAAAAAAAATUGF5bG9hZEhh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AABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAoVW5peCB0aW1lc3RhbXAgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAZleHBpcnkAAAAAAAYAAAApVGhlIG5ldyBsaWJyYXJ5IGFkZHJlc3MgdG8gdHJhbnNpdGlvbiB0by4AAAAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAABAAAABRPQXBwRXJyb3I6IDIwMDAtMjA5OQAAAAAAAAAJT0FwcEVycm9yAAAAAAAABAAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAAB9AAAAAAAAAABk5vUGVlcgAAAAAH0QAAAAAAAAAIT25seVBlZXIAAAfSAAAAAAAAABNacm9Ub2tlblVuYXZhaWxhYmxlAAAAB9MAAAACAAAAAAAAAAAAAAAPT0FwcENvcmVTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAEAAAAAAAAABFBlZXIAAAABAAAABAAAAAUAAAAAAAAAAAAAAAdQZWVyU2V0AAAAAAEAAAAIcGVlcl9zZXQAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAIAAAAAAAAAAAAAABdPQXBwT3B0aW9uc1R5cGUzU3RvcmFnZQAAAAABAAAAAQAAAAAAAAAPRW5mb3JjZWRPcHRpb25zAAAAAAIAAAAEAAAABAAAAAUAAAAAAAAAAAAAABFFbmZvcmNlZE9wdGlvblNldAAAAAAAAAEAAAATZW5mb3JjZWRfb3B0aW9uX3NldAAAAAABAAAAAAAAABZlbmZvcmNlZF9vcHRpb25fcGFyYW1zAAAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAACAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAXAAAAAABvDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjMuNC4wIzY3M2Q2YzRmMjM2OGQyODJkMjVkYTI5YmRhNTVjMjFiOGJlNjljYTYA";
|
|
11
|
+
export declare const WASM_BASE64 = "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IAKtQiCGQgSEEICAgIAAGgviAwIBfwJ+I4CAgIAAQTBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBwABAgMEBQYACyABQQhqQYCAwIAAQQMQ1oCAgAAgASgCCA0IIAFBCGogASkDEBDXgICAAAwGCyABQSBqQYOAwIAAQRAQ1oCAgAAgASgCIA0HIAEgASkDKDcDCCABIAApAwg3AxggASAANQIEQiCGQgSENwMQIAFBIGogAUEIahDYgICAACABKQMoIQIgASkDICEDDAYLIAFBCGpBk4DAgABBDBDWgICAACABKAIIDQYgAUEIaiABKQMQENeAgIAADAQLIAFBCGpBn4DAgABBBRDWgICAACABKAIIDQUgAUEIaiABKQMQENeAgIAADAMLIAFBCGpBpIDAgABBDRDWgICAACABKAIIDQQgAUEIaiABKQMQENeAgIAADAILIAFBCGpBsYDAgABBDBDWgICAACABKAIIDQMgAUEIaiABKQMQIAA1AgRCIIZCBIQQ2YCAgAAMAQsgAUEIakG9gMCAAEENENaAgIAAIAEoAggNAiABQQhqIAEpAxAgADUCBEIghkIEhBDZgICAAAsgASkDECECIAEpAwghAwsgA1ANAQsACyABQTBqJICAgIAAIAILdAIBfwJ+I4CAgIAAQRBrIgIkgICAgABCACEDAkACQCABEKuAgIAAIgRCARCtgICAAEUNACACIARCARCBgICAABCugICAACACKAIAQQFGDQEgACACKQMINwMIQgEhAwsgACADNwMAIAJBEGokgICAgAAPCwALDwAgACABEKKAgIAAQgFRC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQlICAgAAhAQsgACADNwMAIAAgATcDCAsOACAAIAFCARCwgICAAAsbACAAEKuAgIAAIAEQsYCAgAAgAhCCgICAABoLQQEBfyOAgICAAEEQayIBJICAgIAAIAEgABCjgYCAAAJAIAEoAgBBAUcNAAALIAEpAwghACABQRBqJICAgIAAIAALdAIBfwJ+I4CAgIAAQRBrIgIkgICAgABCACEDAkACQCABEKuAgIAAIgRCAhCtgICAAEUNACACIARCAhCBgICAABCugICAACACKAIAQQFGDQEgACACKQMINwMIQgEhAwsgACADNwMAIAJBEGokgICAgAAPCwALDgAgACABQgIQsICAgAALnwUBAX8jgICAgABB8ABrIgokgICAgAAQtYCAgAAQtoCAgAAgBBC1gICAACAFIAYQqYCAgAACQAJAIAcgCIRCAFENACAKQcAAahC1gICAAEKO6PcfEIOAgIAAEISAgIAAELeAgIAAIAopA0AiBkICUQ0BAkAgBqdBAXFFDQAgCikDSCAEELWAgIAAIAcgCBCpgICAAAwBC0KDgICAsPoBELiAgIAAAAsgCkHAAGogARC5gICAACAKKQNIIQQgCikDQBC6gICAABC1gICAACEGEIWAgIAAIQUgCiAHQgBSIAhCAFUgCFAbOgAkIAogAzcDGCAKIAI3AxAgCiAENwMIIAogATYCICAKQQhqELuAgIAAIQggCiAJNwM4IAogCDcDMCAKIAU3AyhBACEBA0ACQCABQRhHDQBBACEBAkADQCABQRhGDQEgCkHAAGogAWogCkEoaiABaikDADcDACABQQhqIQEMAAsLIAZCjtKzlQ4gCkHAAGpBAxCngICAABCEgICAACEIQQAhAQJAA0AgAUEYRg0BIApBKGogAWpCAjcDACABQQhqIQEMAAsLIAhC/wGDQswAUg0CIAhB7IHAgABBAyAKQShqQQMQvICAgAAgCkHAAGogCikDKBC9gICAACAKKAJAQQFxDQIgCikDaCEIIAopA2AhByAKKQNYIQQgCikDUCEGIApBwABqIAopAzAQvoCAgAAgCigCQA0CIAopA0ghBSAKQcAAaiAKKQM4EK6AgIAAIAooAkBBAUYNAiAKKQNIIQkgACAHNwMQIAAgBjcDACAAIAk3AyggACAFNwMgIAAgCDcDGCAAIAQ3AwggCkHwAGokgICAgAAPCyAKQcAAaiABakICNwMAIAFBCGohAQwACwsQv4CAgAAAC4cBAgF/AX4jgICAgABBEGsiACSAgICAACAAQQRqEMGAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBDCgICAAAsCQAJAQQAgABDGgICAACIBQgIQrYCAgABFDQAgAUICEIGAgIAAIgFC/wGDQs0AUQ0BAAsQyICAgAAACyAAQRBqJICAgIAAIAELNgACQCAAQYSCwIAAQQwQ84CAgAAQg4CAgAAQhICAgAAiAEL/AYNCzQBRDQAQv4CAgAAACyAACzkAAkAgAUICUQ0AAkAgAUL/AYNCzQBRDQAgAEICNwMADwsgACABNwMIIABCATcDAA8LIABCADcDAAsLACAAEKSAgIAAGgvGAQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAhDBgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQwoCAgAALAkACQAJAQQEgARDGgICAACIDQgEQrYCAgABFDQAgAiADQgEQgYCAgAAQvoCAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwghAyAAQgE3AwAgACADNwMIIAIQxICAgAAgAigCAEEBRw0AIAEgAigCBCACKAIIEMeAgIAACyACQRBqJICAgIAACx4AAkAgAKdBAXFFDQAPC0KDgICAkPoBELiAgIAAAAtzAgF/AX4jgICAgABBMGsiASSAgICAACABIAApAwA3AyggASAAMQAcNwMgIAEgACkDEDcDGCABIAApAwg3AxAgASAANQIYQiCGQgSENwMIQeyAwIAAQQUgAUEIakEFEPWAgIAAIQIgAUEwaiSAgICAACACCzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCdgICAABoL7wECAn8DfiOAgICAAEEwayICJICAgIAAQQAhAwJAA0AgA0EQRg0BIAIgA2pCAjcDACADQQhqIQMMAAsLQgAhBEIBIQUCQCABQv8Bg0LMAFINACABQdSBwIAAQQIgAkECELyAgIAAIAJBEGogAikDABCigYCAACACKAIQQQFGDQAgAikDKCEBIAIpAyAhBiACQRBqIAIpAwgQooGAgAAgAigCEEEBRg0AIAIpAyAhBCAAIAIpAyg3AyggACAENwMgIAAgATcDGCAAIAY3AxBCACEFQgAhBAsgACAFNwMAIAAgBDcDCCACQTBqJICAgIAAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCIgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAsJABDKgICAAAALvQEEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAACACQQRqEMGAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBDCgICAAAsCQAJAIAAgARDDgICAACIDQgEQrYCAgAAiBEUNACADQgEQgYCAgAAiBUL/AYNCyABSDQEgAkEEahDEgICAACACKAIEQQFHDQAgACABIAIoAgggAigCDBDFgICAAAsQhoCAgAAhAyACQRBqJICAgIAAIAUgAyAEGw8LAAsMACAAQQEQrIGAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQo4CAgAAaC4oBAgF/AX4jgICAgABBMGsiAiSAgICAACACQSBqQYCDwIAAQQ8Q1oCAgAACQAJAIAIoAiANACACIAIpAyg3AwggAiABrUIghkIEhDcDGCACIACtQiCGQgSENwMQIAJBIGogAkEIahDYgICAACACKAIgRQ0BCwALIAIpAyghAyACQTBqJICAgIAAIAMLDAAgAEECEKyBgIAACycAIAAgARDDgICAAEIBIAKtQiCGQgSEIAOtQiCGQgSEEICAgIAAGgubAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCAAQQFxRQ0AIAJBvYLAgABBBBDWgICAACACKAIADQIgAiACKQMIIAGtQiCGQgSEENmAgIAADAELIAJBtYLAgABBCBDWgICAACACKAIADQEgAiACKQMIENeAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLJwBBASAAEMaAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaCwkAEL+AgIAAAAscAAJAIABBf2pB/wFxQQRJDQAQyoCAgAAACyAACwMAAAuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahDBgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQwoCAgAALQQAhAQJAQQAQzICAgAAiAkICEK2AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBwoXAgABBBhDWgICAACABKAIADQMgASABKQMIENeAgIAADAILIAFByIXAgABBCBDWgICAACABKAIADQIgASABKQMIENeAgIAADAELIAFB0IXAgABBChDWgICAACABKAIADQEgASABKQMIENeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQzoCAgAAQh4CAgAAaC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQwYCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEMKAgIAACyAAENCAgIAAIAApAwghASAAKQMAQYoIENGAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAENCAgIAAIAApAwghASAAKQMAQYoIENGAgIAAIAEQh4CAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahDBgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQwoCAgAALIAAQ1YCAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8ELiAgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABDTgICAAAJAIAApAwBQDQBCg4CAgLCBARC4gICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQwYCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEMKAgIAAC0IAIQICQAJAQQEQ1ICAgAAiA0IAEK2AgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFB1YTAgABBDBDWgICAACABKAIADQIgASABKQMIENeAgIAADAELIAFB0ITAgABBBRDWgICAACABKAIADQEgASABKQMIENeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQ1ICAgAAiAkICEK2AgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQqYGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEKeAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCngICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtIAQF/I4CAgIAAQRBrIgMkgICAgAAgAyACNwMIIAMgATcDACADQQIQp4CAgAAhAiAAQgA3AwAgACACNwMIIANBEGokgICAgAALnwECAX8BfiOAgICAAEEQayICJICAgIAAEIaAgIAAIQMgAiAAOgALIAMgAxCIgICAAEKAgICAcINCBIQgAkELakEBENuAgIAAIQMgAiABQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCDCADIAMQiICAgABCgICAgHCDQgSEIAJBDGpBBBDbgICAACEDIAJBEGokgICAgAAgAwseACAAIAEgAq1CIIZCBIQgA61CIIZCBIQQmoCAgAALMQACQCAAEIiAgIAAQv////8PVg0AEN2AgIAAAAsgAEIEEImAgIAAQiCIpxDJgICAAAsJABDKgICAAAALqQMCAX8CfiOAgICAAEEgayICJICAgIAAQgwhAwJAIAFBBSABEIiAgIAAQiCIpxDfgICAACIBEIiAgIAAQoCAgIAQVA0AIAEQioCAgAAhAwsgAkEPaiADEIuAgIAAIgFCBEKEgICAgAIQjICAgAAQ4ICAgAACQAJAIAItAA9BAUYNACACKQAYIQMgAikAECEEIAJBD2ogAUKEgICAgAJChICAgIAEEIyAgIAAEOCAgIAAIAItAA9BAUYNACAEIAOEQgBSDQEgAikAECIBQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4DgyABQjiIhISEIgNCf1cNASAAIAIpABgiAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhDcDACAAIAM3AwggAkEgaiSAgICAAA8LEL+AgIAAAAtCg4CAgCAQuICAgAAACxwAIAAgAa1CIIZCBIQgAq1CIIZCBIQQjICAgAAL2QECA38BfiOAgICAAEEQayICJICAgIAAQQEhAwJAIAEQiICAgABCgICAgHCDQoCAgICAAlINACACQQhqQgA3AwAgAkIANwMAIABBAWohBEEAIQMCQANAIAEQiICAgABCgICAgBBUDQEgARCfgICAACEFIAFBARCNgYCAACEBAkAgA0EQRg0AIAIgA2ogBUIgiDwAACADQQFqIQMMAQsLQRAQqIGAgAAACyAEIAIpAwA3AAAgBEEIaiACQQhqKQMANwAAQQAhAwsgACADOgAAIAJBEGokgICAgAAL7wICAX8BfiOAgICAAEEwayICJICAgIAAEIaAgIAAIQMgAkGABjsBECADIAMQiICAgABCgICAgHCDQgSEIAJBEGpBAhDbgICAAEKEgICAEBCNgICAACEDIAJCgICAgIDgwIbAADcDCCACQgA3AwAgAiAAQjiGNwMYIAJCADcDEAJAAkAgACABhEIAUg0AIAJBgCI7AS4gAyADEIiAgIAAQoCAgIBwg0IEhCACQS5qQQIQ24CAgABChICAgBAQjYCAgAAhACAAIAAQiICAgABCgICAgHCDQgSEIAJBEBDbgICAACEADAELIAJBgMIAOwEuIAMgAxCIgICAAEKAgICAcINCBIQgAkEuakECENuAgIAAQoSAgIAQEI2AgIAAIQAgACAAEIiAgIAAQoCAgIBwg0IEhCACQRAQ24CAgAAhACAAIAAQiICAgABCgICAgHCDQgSEIAJBEGpBEBDbgICAACEACyACQTBqJICAgIAAIAALXgIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAEN6AgIAAAkAgASkDACACKQMAWiABKQMIIgAgAikDCCIDWSAAIANRGw0AQoOAgIAwELiAgIAAAAsgAkEQaiSAgICAAAuFAQIBfwF+I4CAgIAAQTBrIgIkgICAgAAgAiABNwMIIAIgADYCBCACQQE2AgAgAkEQaiACEKyAgIAAAkAgAikDECIBUA0AIAJBJGoQxICAgAAgAigCJEUNACACIAIoAiggAigCLBCqgICAAAsgAikDGCEDIAJBMGokgICAgAAgA0IAIAGnGwtpAQF/I4CAgIAAQSBrIgMkgICAgAAgAyABNwMIIAMgADYCBCADQQE2AgAgAyACEK+AgIAAIANBFGoQxICAgAACQCADKAIUQQFHDQAgAyADKAIYIAMoAhwQqoCAgAALIANBIGokgICAgAALagICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEECNgIAQQAhAQJAIAAQq4CAgAAiAkICEK2AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQtiAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEGNgIAIAIgADYCBCACIAEQr4CAgAAgAkEUahDEgICAAAJAIAIoAhRBAUcNACACIAIoAhggAigCHBCqgICAAAsgAkEgaiSAgICAAAsIABDOgICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENCAgIAAIAApAwAgACkDCBDpgICAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQ04CAgAAgACkDACAAKQMIEOmAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahDBgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQwoCAgAALEM+AgIAAIQIQ0oCAgAAgABDsgICAACACIAAQ7YCAgAAgAUEQaiSAgICAAEICDwsACw4AQQAgAEICEPKAgIAAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQcmDwIAAQRUQ84CAgAAQ9ICAgAAhAyACIAA3AwggAiABNwMAIANB8IPAgABBAiACQQIQ9YCAgAAQjoCAgAAaIAJBEGokgICAgAAL3AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahDBgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQwoCAgAALEM+AgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahDTgICAACACKQMQIQEgAikDCEGICBDRgICAACABIAAQ74CAgABFDQMQ8ICAgAAMAQsQ8YCAgAAgAUIgiKdJDQNBASAAQgAQ8oCAgABBARDUgICAAEIAIAFChICAgHCDIgEgARCAgICAABpBgITAgABBFhDzgICAABD0gICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARBnITAgABBAyACQQhqQQMQ9YCAgAAQjoCAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQuICAgAAAC0KDgICA8IABELiAgIAAAAsNACAAIAEQnoCAgABQCxMAQQEQ1ICAgABCABCPgICAABoLMwECfhCggICAACEAAkAQoYCAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQv4CAgAAACxUAIAAQ1ICAgAAgASACEIKAgIAAGgtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARCpgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKeAgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQnICAgAALpwECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQwYCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEMKAgIAACyAAENOAgIAAIAApAwghASAAKQMAQYgIENGAgIAAIAEQh4CAgAAaIAAQ1YCAgAACQCAAKAIADQAQyICAgAAACyAAKQMIIQIQ8ICAgAAgARDsgICAACACIAEQ7YCAgAAgAEEQaiSAgICAAEICC6ABAgF/An4jgICAgABBEGsiACSAgICAACAAEMGAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBDCgICAAAsQz4CAgAAhARDSgICAAEEAENSAgIAAQgIQj4CAgAAaQbSEwIAAQRMQ84CAgAAQ9ICAgAAhAiAAIAE3AwAgAkHIhMCAAEEBIABBARD1gICAABCOgICAABogAEEQaiSAgICAAEICCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinEMKAgIAAQgIPCwAL3gQBBX8jgICAgABB0ABrIgIkgICAgAAgAkEoaiAAEPqAgIAAAkAgAigCKEECRg0AIAJBCGpBCGogAkEoakEIaiIDKAIANgIAIAIgAikCKDcDCCACQShqIAEQ+oCAgAAgAigCKEECRg0AIAJBGGpBCGogAygCADYCACACIAIpAig3AxggAkEoahDBgICAAAJAIAIoAihBAUcNACACKAIsIAIoAjAQwoCAgAALEM2AgIAAAkACQAJAEMuAgIAADQAQ8YCAgAAiA0GA+4ADIANBgPuAA0kbIQQgAiACQRhqNgIsIAIgAkEIajYCKEEAIQMDQCADQQhGDQMCQCACQShqIANqKAIAIgUoAgBBAXFFDQAgBSgCCCIGIARLDQMgBSgCBCAGSw0DCyADQQRqIQMMAAsLQoOAgIDQ/wAQuICAgAAAC0KDgICAwP8AELiAgIAAAAsCQAJAIAIoAghBAUcNACACKAIMIAIoAhAQ+4CAgAAMAQtBARDMgICAAEICEI+AgIAAGgsCQAJAIAIoAhhBAUcNACACKAIcIAIoAiAQ/ICAgAAMAQtBAhDMgICAAEICEI+AgIAAGgsgAkEoakEIaiACQQhqQQhqKAIANgIAIAJBPGogAkEYakEIaigCADYCACACIAIpAwg3AyggAiACKQMYNwI0QfyEwIAAQQ8Q84CAgAAQ9ICAgAAhACACQShqEP2AgIAAIQEgAiACQTRqEP2AgIAANwNIIAIgATcDQCAAQaCFwIAAQQIgAkHAAGpBAhD1gICAABCOgICAABogAkHQAGokgICAgABCAg8LAAtoAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAFCAlENACACQQRqIAEQqoGAgAACQCACKAIERQ0AIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiSAgICAAAsOAEEBIAAgARCtgYCAAAsOAEECIAAgARCtgYCAAAtDAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQ/4CAgAACQCABKAIAQQFHDQAACyABKQMIIQIgAUEQaiSAgICAACACC8IBAgJ/AX4jgICAgABBwABrIgAkgICAgAAgAEEIahDBgICAAAJAIAAoAghBAUcNACAAKAIMIAAoAhAQwoCAgAALIABBCGoQwYCAgAAgAEEUaiIBEMSAgIAAIABBMGogAEEIahD/gICAAAJAAkAgACgCMA0AIAApAzghAiAAQTBqIAEQ/4CAgAAgACgCMEEBRw0BCwALIAAgACkDODcDKCAAIAI3AyAgAEEgakECEKeAgIAAIQIgAEHAAGokgICAgAAgAgswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBCrgYCAAA8LIABCADcDACAAQgI3AwgLqgEBAX8jgICAgABBIGsiACSAgICAACAAQQxqEMGAgIAAAkAgACgCDEEBRw0AIAAoAhAgACgCFBDCgICAAAsQzYCAgAACQBDLgICAAEUNAEKDgICA4P8AELiAgIAAAAtBABDMgICAAEIBQgIQgoCAgAAaQbCFwIAAQRIQ84CAgAAQ9ICAgABBBEEAIABBGGpBABD1gICAABCOgICAABogAEEgaiSAgICAAEICCwkAEMuAgIAArQueAQIBfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEQahDBgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQwoCAgAALIABBEGoQg4GAgAACQAJAIAAoAhANACAAKQMYIQEgAEEQahCDgYCAACAAKAIQQQFHDQELAAsgACAAKQMYNwMIIAAgATcDACAAQQIQp4CAgAAhASAAQSBqJICAgIAAIAELDAAgAEIBEKOBgIAACwgAELWAgIAAC1EBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRRDQAACyABIABCIIinELmAgIAAIAEpAwAgASkDCBDpgICAACEAIAFBEGokgICAgAAgAAu6AgQBfwF+AX8BfiOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCBFINAAJAAkAgAUICUg0AQgAhAQwBCyACIAEQvoCAgAAgAigCAEEBRg0BIAIpAwghA0IBIQELEM2AgIAAIAIQwYCAgAACQCACKAIAQQFHDQAgAigCBCACKAIIEMKAgIAAC0EBIABCIIinIgQQxoCAgAAhBQJAAkAgAVANACAFIANCARCCgICAABogAhDEgICAACACKAIAQQFHDQEgBCACKAIEIAIoAggQx4CAgAAMAQsgBUIBEI+AgIAAGgtCjvKqvPDWqusAEPSAgIAAIQUgAiABIAMQ6YCAgAA3AwggAiAAQoSAgIBwgzcDACAFQciCwIAAQQIgAkECEPWAgIAAEI6AgIAAGiACQRBqJICAgIAAQgIPCwALhwECAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABC3gICAAAJAIAEpAwAiAEICUQ0AIAEpAwghAhDNgICAACABEMGAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBDCgICAAAsQtYCA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ARCsgICAAAJAIAEpAxAiAlANACABQSRqEMSAgIAAIAEoAiRBAUcNACABIAEoAiggASgCLBCqgICAAAsgASkDGCEDIAFBMGokgICAgAAgA0IAIAKnGwuLAQECfyOAgICAAEEQayIBJICAgIAAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAQzYCAgAAgARDBgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQwoCAgAALIAFBAjYCACABEKuAgIAAIAKtQgIQgoCAgAAaIAFBEGokgICAgABCAg8LAAuVAwUBfwF+AX8BfgF/I4CAgIAAQdAAayIDJICAgIAAAkAgAEL/AYNCBFINACADQShqIAEQvoCAgAAgAygCKEEBRg0AIAMpAzAhASADQShqIAIQroCAgAAgAygCKEEBRg0AIABCIIghAiADKQMwIQQQzYCAgAAgA0EoahDBgICAAAJAIAMoAihBAUcNACADKAIsIAMoAjAQwoCAgAALIAKnIQUQhYCAgAAhAhC1gICAACEGIAMgBBCxgICAADcDICADIAE3AxggAyAAQoSAgIBwgzcDECADIAI3AwggAyACNwMAQQAhBwJAA0ACQCAHQShHDQBBACEHAkADQCAHQShGDQEgA0EoaiAHaiADIAdqKQMANwMAIAdBCGohBwwACwsgBkKO6q6YDiADQShqQQUQp4CAgAAQqICAgAACQBDlgICAAEUNACAFIAEQ44CAgABCAXwiAFANAyAFIAEgABDkgICAAAsgA0HQAGokgICAgABCAg8LIANBKGogB2pCAjcDACAHQQhqIQcMAAsLEL+AgIAAAAsACw8AEJCBgIAArUIghkIEhAsOABCYgYCAABCxgICAAAtzAgJ/AX4jgICAgABBIGsiACSAgICAACAAQRBqEMGAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBDCgICAAAsgAEEDNgIAIABBEGogABCygICAACAAKAIQIQEgACkDGCECIABBIGokgICAgAAgAkIAIAEbCw4AEJqBgIAAELGAgIAAC3MCAn8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQwYCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYEMKAgIAACyAAQQQ2AgAgAEEQaiAAELKAgIAAIAAoAhAhASAAKQMYIQIgAEEgaiSAgICAACACQgAgARsLIwACQCAAQv8Bg0IEUQ0AAAsgAEIgiKcQnIGAgAAQsYCAgAALqAECAX8CfiOAgICAAEEwayIBJICAgIAAIAFBEGoQwYCAgAACQCABKAIQQQFHDQAgASgCFCABKAIYEMKAgIAACyABQQU2AgAgASAANgIEIAFBEGogARCsgICAAAJAIAEpAxAiAlANACABQSRqEMSAgIAAIAEoAiRBAUcNACABIAEoAiggASgCLBCqgICAAAsgASkDGCEDIAFBMGokgICAgAAgA0IAIAKnGwsjAAJAIABC/wGDQgRRDQAACyAAQiCIpxCTgYCAABCxgICAAAuuAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIABC/wGDQgRSDQAgAiABEL6AgIAAIAIoAgBBAUYNACACKQMIIQMgAhDBgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQwoCAgAALQgAhAQJAEOWAgIAARQ0AIABCIIinIAMQ44CAgABCAXwiAVANAgsgARCxgICAACEAIAJBEGokgICAgAAgAA8LAAsQv4CAgAAAC5sBAgJ/AX4jgICAgABBIGsiASSAgICAACABIAAQoIGAgAACQCABKAIAQQFGDQAgASgCGCECIAEpAwghAyABEMGAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBDCgICAAAsgASACELmAgIAAQgAhAAJAIAEoAgBBAUcNACABKQMIIAMQ74CAgACtIQALIAFBIGokgICAgAAgAA8LAAviAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUGogcCAAEEDIAJBCGpBAxC8gICAACACQSBqIAIpAwgQroCAgAAgAigCIA0AIAIpAyghASACQSBqIAIpAxAQvoCAgAAgAigCIA0AIAIpAxgiBUL/AYNCBFINACACKQMoIQQgACABNwMQIAAgBDcDCCAAIAVCIIg+AhhCACEECyAAIAQ3AwAgAkEwaiSAgICAAAv4CAMCfwN+AX8jgICAgABB8ABrIgYkgICAgAACQAJAAkACQCAAQv8Bg0LNAFINACAGQRBqIAEQoIGAgAAgBigCEEEBRg0AIAYoAighByAGKQMgIQggBikDGCEBIAZBEGogAhC+gICAACAGKAIQQQFGDQAgA0L/AYNCyABSDQAgBEL/AYNCyABSDQAgBikDGCEJIAZBEGogBRCigYCAACAGKAIQQQFGDQAgBikDKCECIAYpAyAhBCAGQRBqEMGAgIAAAkAgBigCEEEBRw0AIAYoAhQgBigCGBDCgICAAAsQhYCAgAAhBRC1gICAACEKIAAQh4CAgAAaAkAgBCAChEIAUQ0AIAoQtoCAgAAgACAFIAQgAhClgICAAAsgBkEQaiAHELmAgIAAAkAgBigCEEEBRw0AIAYpAxggARDvgICAAEUNACAGQcgAaiAIEKOBgIAAIAYoAkhBAUYNASAGKQNQIQAgBiABNwMYIAYgADcDECAGIAetQiCGQgSENwMgQaiBwIAAQQMgBkEQakEDEPWAgIAAIQAgBiADNwNoIAYgCTcDYCAGIAU3A1ggBiAANwNQIAYgBTcDSEEAIQsDQAJAIAtBKEcNAEEAIQsCQANAIAtBKEYNASAGQRBqIAtqIAZByABqIAtqKQMANwMAIAtBCGohCwwACwsgCkKO7qa1jAUgBkEQakEFEKeAgIAAEKiAgIAAIAYgAjcDCCAGIAQ3AwAgByABEOOAgIAAIQAQ5YCAgABFDQQgAEIBfCIFUA0FIAggBVENBEKDgICAEBC4gICAAAALIAZBEGogC2pCAjcDACALQQhqIQsMAAsLQoOAgICg+gEQuICAgAAACwALAkAgCCAAWA0AIAcgASAIEOSAgIAACxCFgICAACEBEJiBgIAAIQggBxCcgYCAACEAIAhCAXwiCFANACAGQQM2AhAgBkEQaiAIELOAgIAAIABCAXwiCFANACAGQQU2AhAgBiAHNgIUIAZBEGogCBCvgICAACAGQcgAahDEgICAAAJAIAYoAkhBAUcNACAGQRBqIAYoAkwgBigCUBCqgICAAAsCQAJAAkAgAxDcgICAAEH/AXFBf2oOBAEAAgABCxC1gICAACEIQZyCwIAAQQwQ84CAgAAhAiAGIAM3A2ggBkIENwNgIAYgCTcDWCAGIAE3A1AgBiABNwNIQQAhCwNAAkAgC0EoRw0AQQAhCwJAA0AgC0EoRg0BIAZBEGogC2ogBkHIAGogC2opAwA3AwAgC0EIaiELDAALCyAIIAIgBkEQakEFEKeAgIAAEKiAgIAADAULIAZBEGogC2pCAjcDACALQQhqIQsMAAsLIAMgBhDigICAAAwCCyADIAYQ4oCAgAAgBxCTgYCAAEIBfCIDUA0AIAcgAxDmgICAAEIKQgAQ4YCAgAAhAyAGQRBqIAdBARCQgYCAABDagICAAEKMFBCLgICAABCSgICAACADIAEgBCACQgBCACABELSAgIAADAELEL+AgIAAAAsgBkHwAGokgICAgABCAgt9AgF/AX4CQAJAAkACQCABp0H/AXEiAkHFAEYNACACQQtHDQIgACABQj+HNwMYIAAgAUIIhzcDEAwBCyABEJaAgIAAIQMgARCXgICAACEBIAAgAzcDGCAAIAE3AxALQgAhAQwBCyAAQoOQgICAATcDCEIBIQELIAAgATcDAAs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQk4CAgAAhAQsgAEIANwMAIAAgATcDCAuJAQECfyOAgICAAEEgayIDJICAgIAAIAMgABCggYCAAAJAIAMoAgBBAUYNACABQv8Bg0LIAFINACACQv8Bg0LNAFINACADEMGAgIAAAkAgAygCAEEBRw0AIAMoAgQgAygCCBDCgICAAAsQhYCAgAAgAhDvgICAACEEIANBIGokgICAgAAgBK0PCwALgAYDAX8DfgF/I4CAgIAAQeAAayIHJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACAHIAIQvoCAgAAgBygCAEEBRg0AIANC/wGDQgRSDQAgBEL/AYNCyABSDQAgBUL/AYNCyABSDQAgBykDCCEIIAcgBhCigYCAACAHKAIAQQFGDQAgBykDGCECIAcpAxAhBSAHEMGAgIAAAkAgBygCAEEBRw0AIAcoAgQgBygCCBDCgICAAAsgABCHgICAABoQhYCAgAAhBhC1gICAACEJQaiCwIAAQQ0Q84CAgAAhCiAHIAQ3A1ggByADQoSAgIBwgzcDUCAHIAg3A0ggByABNwNAIAcgBjcDOEEAIQsCQAJAA0ACQCALQShHDQBBACELAkADQCALQShGDQEgByALaiAHQThqIAtqKQMANwMAIAtBCGohCwwACwsgCSAKIAdBBRCngICAABCogICAAAJAIAVQIAJCAFMgAlAbDQAgCRC2gICAACAAIAYgBSACEKWAgIAACwJAAkAgBBDcgICAACILQf8BcUF+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AJMCEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50AJueAQ5jb250cmFjdHNwZWN2MAAAAAQAAAAAAAAAAAAAAAxDb3VudGVyRXJyb3IAAAAEAAAAAAAAABBPQXBwSW52YWxpZE5vbmNlAAAAAQAAAAAAAAAPSW52YWxpZE1zZ1ZhbHVlAAAAAAIAAAAAAAAAEUluc3VmZmljaWVudFZhbHVlAAAAAAAAAwAAAAAAAAAOSW52YWxpZE1zZ1R5cGUAAAAAAAQAAAACAAAAAAAAAAAAAAAOQ291bnRlclN0b3JhZ2UAAAAAAAcAAAAAAAAAAAAAAANFSUQAAAAAAQAAAAAAAAAQTWF4UmVjZWl2ZWROb25jZQAAAAIAAAAEAAAD7gAAACAAAAAAAAAAAAAAAAxPcmRlcmVkTm9uY2UAAAAAAAAAAAAAAAVDb3VudAAAAAAAAAAAAAAAAAAADUNvbXBvc2VkQ291bnQAAAAAAAABAAAAAAAAAAxJbmJvdW5kQ291bnQAAAABAAAABAAAAAEAAAAAAAAADU91dGJvdW5kQ291bnQAAAAAAAABAAAABAAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAACuUmV0cmlldmVzIHRoZSBPQXBwIHZlcnNpb24gaW5mb3JtYXRpb24uCgojIFJldHVybnMKQSB0dXBsZSBjb250YWluaW5nOgotIGBzZW5kZXJfdmVyc2lvbmA6IFRoZSB2ZXJzaW9uIG9mIHRoZSBPQXBwU2VuZGVyCi0gYHJlY2VpdmVyX3ZlcnNpb25gOiBUaGUgdmVyc2lvbiBvZiB0aGUgT0FwcFJlY2VpdmVyAAAAAAAMb2FwcF92ZXJzaW9uAAAAAAAAAAEAAAPtAAAAAgAAAAYAAAAGAAAAAAAAAGxSZXRyaWV2ZXMgdGhlIExheWVyWmVybyBlbmRwb2ludCBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgT0FwcC4KCiMgUmV0dXJucwpUaGUgTGF5ZXJaZXJvIGVuZHBvaW50IGFkZHJlc3MAAAAIZW5kcG9pbnQAAAAAAAAAAQAAABMAAAAAAAAAwVJldHJpZXZlcyB0aGUgcGVlciAoT0FwcCkgYXNzb2NpYXRlZCB3aXRoIGEgY29ycmVzcG9uZGluZyBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKCiMgUmV0dXJucwpUaGUgcGVlciBhZGRyZXNzIChPQXBwIGluc3RhbmNlKSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQAAAAAAAAEcGVlcgAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAPuAAAAIAAAAAAAAADlU2V0cyBvciByZW1vdmVzIHRoZSBwZWVyIGFkZHJlc3MgKE9BcHAgaW5zdGFuY2UpIGZvciBhIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYHBlZXJgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHBlZXIgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LCBvciBOb25lIHRvIHJlbW92ZSB0aGUgcGVlcgAAAAAAAAhzZXRfcGVlcgAAAAIAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAARwZWVyAAAD6AAAA+4AAAAgAAAAAAAAAAAAAACOU2V0cyB0aGUgZGVsZWdhdGUgYWRkcmVzcyBmb3IgdGhlIE9BcHAgQ29yZS4KCiMgQXJndW1lbnRzCiogYGRlbGVnYXRlYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBkZWxlZ2F0ZSB0byBiZSBzZXQsIG9yIE5vbmUgdG8gcmVtb3ZlIHRoZSBkZWxlZ2F0ZQAAAAAADHNldF9kZWxlZ2F0ZQAAAAEAAAAAAAAACGRlbGVnYXRlAAAD6AAAABMAAAAAAAAAAAAAANlSZXRyaWV2ZXMgdGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZS4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgbXNnX3R5cGVgIC0gVGhlIE9BcHAgbWVzc2FnZSB0eXBlCgojIFJldHVybnMKVGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIHRoZSBnaXZlbiBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlAAAAAAAAEGVuZm9yY2VkX29wdGlvbnMAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAIbXNnX3R5cGUAAAAEAAAAAQAAAA4AAAAAAAACm1NldHMgdGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIHNwZWNpZmljIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUgY29tYmluYXRpb25zLgoKT25seSB0aGUgYGF1dGhvcml6ZXJgIG9mIHRoZSBPQXBwIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uClByb3ZpZGVzIGEgd2F5IGZvciB0aGUgT0FwcCB0byBlbmZvcmNlIHRoaW5ncyBsaWtlIHBheWluZyBmb3IgUHJlQ3JpbWUsIEFORC9PUiBtaW5pbXVtIGRzdCBselJlY2VpdmUgZ2FzIGFtb3VudHMgZXRjLgpUaGVzZSBlbmZvcmNlZCBvcHRpb25zIGNhbiB2YXJ5IGFzIHRoZSBwb3RlbnRpYWwgb3B0aW9ucy9leGVjdXRpb24gb24gdGhlIHJlbW90ZSBtYXkgZGlmZmVyIGFzIHBlciB0aGUgbXNnX3R5cGUuCmUuZy4gQW1vdW50IG9mIGx6UmVjZWl2ZSgpIGdhcyBuZWNlc3NhcnkgdG8gZGVsaXZlciBhIGx6Q29tcG9zZSgpIG1lc3NhZ2UgYWRkcyBvdmVyaGVhZCB5b3UgZG9uJ3Qgd2FudCB0byBwYXkKaWYgeW91IGFyZSBvbmx5IG1ha2luZyBhIHN0YW5kYXJkIExheWVyWmVybyBtZXNzYWdlIGllLiBselJlY2VpdmUoKSBXSVRIT1VUIHNlbmRDb21wb3NlKCkuCgojIEFyZ3VtZW50cwoqIGBvcHRpb25zYCAtIEEgdmVjdG9yIG9mIEVuZm9yY2VkT3B0aW9uUGFyYW0gc3RydWN0dXJlcyBzcGVjaWZ5aW5nIGVuZm9yY2VkIG9wdGlvbnMAAAAAFHNldF9lbmZvcmNlZF9vcHRpb25zAAAAAQAAAAAAAAAHb3B0aW9ucwAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAAAAAACekNvbWJpbmVzIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZS4KCklmIHRoZXJlIGlzIGFuIGVuZm9yY2VkIGx6UmVjZWl2ZSBvcHRpb246Ci0ge2dhc19saW1pdDogMjAwaywgdmFsdWU6IDEgWExNfSBBTkQgYSBjYWxsZXIgc3VwcGxpZXMgYSBselJlY2VpdmUgb3B0aW9uOiB7Z2FzX2xpbWl0OiAxMDBrLCB2YWx1ZTogMC41IFhMTX0KLSBUaGUgcmVzdWx0aW5nIG9wdGlvbnMgd2lsbCBiZSB7Z2FzX2xpbWl0OiAzMDBrLCB2YWx1ZTogMS41IFhMTX0gd2hlbiB0aGUgbWVzc2FnZSBpcyBleGVjdXRlZCBvbiB0aGUgcmVtb3RlIGx6X3JlY2VpdmUoKSBmdW5jdGlvbi4KVGhlIHByZXNlbmNlIG9mIGR1cGxpY2F0ZWQgb3B0aW9ucyBpcyBoYW5kbGVkIG9mZi1jaGFpbiBpbiB0aGUgdmVyaWZpZXIvZXhlY3V0b3IuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoqIGBleHRyYV9vcHRpb25zYCAtIEFkZGl0aW9uYWwgb3B0aW9ucyBwYXNzZWQgYnkgdGhlIGNhbGxlcgoKIyBSZXR1cm5zClRoZSBjb21iaW5hdGlvbiBvZiBjYWxsZXIgc3BlY2lmaWVkIG9wdGlvbnMgQU5EIGVuZm9yY2VkIG9wdGlvbnMAAAAAAA9jb21iaW5lX29wdGlvbnMAAAAAAwAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAAAAAANZXh0cmFfb3B0aW9ucwAAAAAAAA4AAAABAAAADgAAAAAAAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAADAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAACGVuZHBvaW50AAAAEwAAAAAAAAAIZGVsZWdhdGUAAAATAAAAAAAAAAAAAAAAAAAABXF1b3RlAAAAAAAABAAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAAAEAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAAAAAAAAAAAAACWluY3JlbWVudAAAAAAAAAUAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAAAAAAAAAAAAAAAAAEXNldF9vcmRlcmVkX25vbmNlAAAAAAAAAQAAAAAAAAANb3JkZXJlZF9ub25jZQAAAAAAAAEAAAAAAAAAAAAAAAAAAAASc2tpcF9pbmJvdW5kX25vbmNlAAAAAAADAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAAAAAABW5vbmNlAAAAAAAABgAAAAAAAAAAAAAAAAAAAANlaWQAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAFY291bnQAAAAAAAAAAAAAAQAAAAYAAAAAAAAAAAAAAA5jb21wb3NlZF9jb3VudAAAAAAAAAAAAAEAAAAGAAAAAAAAAAAAAAANaW5ib3VuZF9jb3VudAAAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAYAAAAAAAAAAAAAAA5vdXRib3VuZF9jb3VudAAAAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAABgAAAAAAAAAAAAAACm5leHRfbm9uY2UAAAAAAAIAAAAAAAAAB3NyY19laWQAAAAABAAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAEAAAAGAAAAAAAAALdDaGVja3MgaWYgYSBtZXNzYWdpbmcgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4uCgojIEFyZ3VtZW50cwoqIGBvcmlnaW5gIC0gVGhlIG9yaWdpbiBvZiB0aGUgbWVzc2FnZQoKIyBSZXR1cm5zClRydWUgaWYgdGhlIHBhdGggY2FuIGJlIGluaXRpYWxpemVkLCBmYWxzZSBvdGhlcndpc2UAAAAAFWFsbG93X2luaXRpYWxpemVfcGF0aAAAAAAAAAEAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAABAAAAAAAAAyNFbnRyeSBwb2ludCBmb3IgcmVjZWl2aW5nIG1lc3NhZ2VzIG9yIHBhY2tldHMgZnJvbSB0aGUgTGF5ZXJaZXJvIGVuZHBvaW50LgoKVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgYGNsZWFyX3BheWxvYWRfYW5kX3RyYW5zZmVyYCB0byB2YWxpZGF0ZSB0aGUgbWVzc2FnZQphbmQgY2xlYXIgaXQgZnJvbSB0aGUgZW5kcG9pbnQsIHRoZW4gZGVsZWdhdGVzIHRvIGBfX2x6X3JlY2VpdmVgIGZvciBhcHBsaWNhdGlvbiBsb2dpYy4KCiMgQXJndW1lbnRzCiogYGV4ZWN1dG9yYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBleGVjdXRvciBmb3IgdGhlIHJlY2VpdmVkIG1lc3NhZ2UKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gaW5mb3JtYXRpb24gY29udGFpbmluZyB0aGUgc291cmNlIGVuZHBvaW50IGFuZCBzZW5kZXIgYWRkcmVzczoKLSBgc3JjX2VpZGA6IFRoZSBzb3VyY2UgY2hhaW4gZW5kcG9pbnQgSUQKLSBgc2VuZGVyYDogVGhlIHNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4KLSBgbm9uY2VgOiBUaGUgbm9uY2Ugb2YgdGhlIG1lc3NhZ2UKKiBgZ3VpZGAgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZWNlaXZlZCBMYXllclplcm8gbWVzc2FnZQoqIGBtZXNzYWdlYCAtIFRoZSBwYXlsb2FkIG9mIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYGV4dHJhX2RhdGFgIC0gQWRkaXRpb25hbCBhcmJpdHJhcnkgZGF0YSBwcm92aWRlZCBieSB0aGUgY29ycmVzcG9uZGluZyBleGVjdXRvcgoqIGB2YWx1ZWAgLSBUaGUgbmF0aXZlIHRva2VuIHZhbHVlIHNlbnQgd2l0aCB0aGUgbWVzc2FnZQAAAAAKbHpfcmVjZWl2ZQAAAAAABgAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAexJbmRpY2F0ZXMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFwcHJvdmVkIGNvbXBvc2VNc2cgc2VuZGVyIHRvIHRoZSBFbmRwb2ludC4KCkFwcGxpY2F0aW9ucyBjYW4gb3B0aW9uYWxseSBjaG9vc2UgdG8gaW1wbGVtZW50IHNlcGFyYXRlIGNvbXBvc2VNc2cgc2VuZGVycyB0aGF0IGFyZSBOT1QgdGhlIGJyaWRnaW5nIGxheWVyLgpUaGUgZGVmYXVsdCBzZW5kZXIgSVMgdGhlIE9BcHBSZWNlaXZlciBpbXBsZW1lbnRlci4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3MKKiBgbWVzc2FnZWAgLSBUaGUgbHpSZWNlaXZlIHBheWxvYWQKKiBgc2VuZGVyYCAtIFRoZSBzZW5kZXIgYWRkcmVzcyB0byBjaGVjawoKIyBSZXR1cm5zClRydWUgaWYgdGhlIHNlbmRlciBpcyBhIHZhbGlkIGNvbXBvc2VNc2cgc2VuZGVyLCBmYWxzZSBvdGhlcndpc2UAAAAVaXNfY29tcG9zZV9tc2dfc2Vu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AAAAAAANSW52YWxpZEV4cGlyeQAAAAAAAAkAAAAAAAAADEludmFsaWRJbmRleAAAAAoAAAAAAAAADEludmFsaWROb25jZQAAAAsAAAAAAAAAEkludmFsaWRQYXlsb2FkSGFzaAAAAAAADAAAAAAAAAAVSW52YWxpZFJlY2VpdmVMaWJyYXJ5AAAAAAAADQAAAAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAAAAAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAAAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAAAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAAAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAAAAAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAoVW5peCB0aW1lc3RhbXAgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAZleHBpcnkAAAAAAAYAAAApVGhlIG5ldyBsaWJyYXJ5IGFkZHJlc3MgdG8gdHJhbnNpdGlvbiB0by4AAAAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAABAAAABRPQXBwRXJyb3I6IDIwMDAtMjA5OQAAAAAAAAAJT0FwcEVycm9yAAAAAAAABAAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAAB9AAAAAAAAAABk5vUGVlcgAAAAAH0QAAAAAAAAAIT25seVBlZXIAAAfSAAAAAAAAABNacm9Ub2tlblVuYXZhaWxhYmxlAAAAB9MAAAACAAAAAAAAAAAAAAAPT0FwcENvcmVTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAEAAAAAAAAABFBlZXIAAAABAAAABAAAAAUAAAAAAAAAAAAAAAdQZWVyU2V0AAAAAAEAAAAIcGVlcl9zZXQAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAIAAAAAAAAAAAAAABdPQXBwT3B0aW9uc1R5cGUzU3RvcmFnZQAAAAABAAAAAQAAAAAAAAAPRW5mb3JjZWRPcHRpb25zAAAAAAIAAAAEAAAABAAAAAUAAAAAAAAAAAAAABFFbmZvcmNlZE9wdGlvblNldAAAAAAAAAEAAAATZW5mb3JjZWRfb3B0aW9uX3NldAAAAAABAAAAAAAAABZlbmZvcmNlZF9vcHRpb25fcGFyYW1zAAAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAACAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABvDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMC4xIzk0MTQ0ODA3OWVjY2Y5NTYyN2QyZmZlYTEzYmEyNjhlMzA1YTkwNzcAAFMOY29udHJhY3RtZXRhdjAAAAAAAAAABmNsaXZlcgAAAAAALzI1LjAuMCNhNjQ5MjVlOTM5MWMzZDNiM2VmOGU1M2RjNjBjMjNkYjllNmE4MmU0AA==";
|
|
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 = "21be5b9ff062d6e92fce084fdb0a3b5b2281f4f79b292eb1e533528e9a394aac";
|
|
17
17
|
/**
|
|
18
18
|
* Get the WASM bytecode as a Buffer
|
|
19
19
|
* Use this to upload the WASM to the network
|
|
@@ -546,14 +546,10 @@ export interface Client {
|
|
|
546
546
|
simulate?: boolean;
|
|
547
547
|
}) => Promise<AssembledTransaction<string>>;
|
|
548
548
|
/**
|
|
549
|
-
* Construct and simulate a
|
|
549
|
+
* 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.
|
|
550
|
+
* Returns the current owner address, or None if no owner is set.
|
|
550
551
|
*/
|
|
551
|
-
|
|
552
|
-
dst_eid: u32;
|
|
553
|
-
msg_type: u32;
|
|
554
|
-
options: Buffer;
|
|
555
|
-
pay_in_zro: boolean;
|
|
556
|
-
}, txnOptions?: {
|
|
552
|
+
owner: (txnOptions?: {
|
|
557
553
|
/**
|
|
558
554
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
559
555
|
*/
|
|
@@ -566,17 +562,12 @@ export interface Client {
|
|
|
566
562
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
567
563
|
*/
|
|
568
564
|
simulate?: boolean;
|
|
569
|
-
}) => Promise<AssembledTransaction<
|
|
565
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
570
566
|
/**
|
|
571
|
-
* Construct and simulate a
|
|
567
|
+
* 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.
|
|
568
|
+
* Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
|
|
572
569
|
*/
|
|
573
|
-
|
|
574
|
-
caller: string;
|
|
575
|
-
dst_eid: u32;
|
|
576
|
-
msg_type: u32;
|
|
577
|
-
options: Buffer;
|
|
578
|
-
fee: MessagingFee;
|
|
579
|
-
}, txnOptions?: {
|
|
570
|
+
pending_owner: (txnOptions?: {
|
|
580
571
|
/**
|
|
581
572
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
582
573
|
*/
|
|
@@ -589,12 +580,20 @@ export interface Client {
|
|
|
589
580
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
590
581
|
*/
|
|
591
582
|
simulate?: boolean;
|
|
592
|
-
}) => Promise<AssembledTransaction<
|
|
583
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
593
584
|
/**
|
|
594
|
-
* Construct and simulate a
|
|
585
|
+
* 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.
|
|
586
|
+
* Transfers ownership immediately to a new address.
|
|
587
|
+
*
|
|
588
|
+
* Use with caution - if you transfer to a wrong address, ownership is lost forever.
|
|
589
|
+
* Consider using `propose_ownership_transfer` instead.
|
|
590
|
+
*
|
|
591
|
+
* # Panics
|
|
592
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
593
|
+
* - `TransferInProgress` if a 2-step transfer is in progress
|
|
595
594
|
*/
|
|
596
|
-
|
|
597
|
-
|
|
595
|
+
transfer_ownership: ({ new_owner }: {
|
|
596
|
+
new_owner: string;
|
|
598
597
|
}, txnOptions?: {
|
|
599
598
|
/**
|
|
600
599
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -610,12 +609,26 @@ export interface Client {
|
|
|
610
609
|
simulate?: boolean;
|
|
611
610
|
}) => Promise<AssembledTransaction<null>>;
|
|
612
611
|
/**
|
|
613
|
-
* Construct and simulate a
|
|
612
|
+
* 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.
|
|
613
|
+
* Proposes an ownership transfer to a new address.
|
|
614
|
+
*
|
|
615
|
+
* The new owner must call `accept_ownership()` within `ttl` ledgers
|
|
616
|
+
* to complete the transfer. The pending transfer will automatically expire after.
|
|
617
|
+
*
|
|
618
|
+
* # Arguments
|
|
619
|
+
* - `new_owner` - The proposed new owner
|
|
620
|
+
* - `ttl` - Number of ledgers the new owner has to accept.
|
|
621
|
+
* Use `0` to cancel a pending transfer (new_owner must match pending).
|
|
622
|
+
*
|
|
623
|
+
* # Panics
|
|
624
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
625
|
+
* - `NoPendingTransfer` when cancelling and no pending transfer exists
|
|
626
|
+
* - `InvalidTtl` if ttl exceeds max TTL
|
|
627
|
+
* - `InvalidPendingOwner` when cancelling with wrong new_owner address
|
|
614
628
|
*/
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
nonce: u64;
|
|
629
|
+
propose_ownership_transfer: ({ new_owner, ttl }: {
|
|
630
|
+
new_owner: string;
|
|
631
|
+
ttl: u32;
|
|
619
632
|
}, txnOptions?: {
|
|
620
633
|
/**
|
|
621
634
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -631,9 +644,15 @@ export interface Client {
|
|
|
631
644
|
simulate?: boolean;
|
|
632
645
|
}) => Promise<AssembledTransaction<null>>;
|
|
633
646
|
/**
|
|
634
|
-
* Construct and simulate a
|
|
647
|
+
* 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.
|
|
648
|
+
* Accepts a pending 2-step ownership transfer.
|
|
649
|
+
*
|
|
650
|
+
* Must be called by the pending owner before the TTL expires.
|
|
651
|
+
*
|
|
652
|
+
* # Panics
|
|
653
|
+
* - `NoPendingTransfer` if there is no pending transfer (or it expired)
|
|
635
654
|
*/
|
|
636
|
-
|
|
655
|
+
accept_ownership: (txnOptions?: {
|
|
637
656
|
/**
|
|
638
657
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
639
658
|
*/
|
|
@@ -646,11 +665,16 @@ export interface Client {
|
|
|
646
665
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
647
666
|
*/
|
|
648
667
|
simulate?: boolean;
|
|
649
|
-
}) => Promise<AssembledTransaction<
|
|
668
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
650
669
|
/**
|
|
651
|
-
* Construct and simulate a
|
|
670
|
+
* 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.
|
|
671
|
+
* Permanently renounces ownership.
|
|
672
|
+
*
|
|
673
|
+
* # Panics
|
|
674
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
675
|
+
* - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
|
|
652
676
|
*/
|
|
653
|
-
|
|
677
|
+
renounce_ownership: (txnOptions?: {
|
|
654
678
|
/**
|
|
655
679
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
656
680
|
*/
|
|
@@ -663,11 +687,20 @@ export interface Client {
|
|
|
663
687
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
664
688
|
*/
|
|
665
689
|
simulate?: boolean;
|
|
666
|
-
}) => Promise<AssembledTransaction<
|
|
690
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
667
691
|
/**
|
|
668
|
-
* Construct and simulate a
|
|
692
|
+
* 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.
|
|
693
|
+
* Extends the instance TTL.
|
|
694
|
+
*
|
|
695
|
+
* # Arguments
|
|
696
|
+
*
|
|
697
|
+
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
698
|
+
* * `extend_to` - The TTL to extend to.
|
|
669
699
|
*/
|
|
670
|
-
|
|
700
|
+
extend_instance_ttl: ({ threshold, extend_to }: {
|
|
701
|
+
threshold: u32;
|
|
702
|
+
extend_to: u32;
|
|
703
|
+
}, txnOptions?: {
|
|
671
704
|
/**
|
|
672
705
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
673
706
|
*/
|
|
@@ -680,12 +713,25 @@ export interface Client {
|
|
|
680
713
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
681
714
|
*/
|
|
682
715
|
simulate?: boolean;
|
|
683
|
-
}) => Promise<AssembledTransaction<
|
|
716
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
684
717
|
/**
|
|
685
|
-
* Construct and simulate a
|
|
718
|
+
* 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.
|
|
719
|
+
* Sets TTL configs for instance and persistent storage.
|
|
720
|
+
*
|
|
721
|
+
* - `None` values remove the corresponding config (disables auto-extension for that type)
|
|
722
|
+
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
723
|
+
*
|
|
724
|
+
* # Arguments
|
|
725
|
+
* - `instance` - TTL config for instance storage
|
|
726
|
+
* - `persistent` - TTL config for persistent storage
|
|
727
|
+
*
|
|
728
|
+
* # Panics
|
|
729
|
+
* - `TtlConfigFrozen` if configs are frozen
|
|
730
|
+
* - `InvalidTtlConfig` if validation fails
|
|
686
731
|
*/
|
|
687
|
-
|
|
688
|
-
|
|
732
|
+
set_ttl_configs: ({ instance, persistent }: {
|
|
733
|
+
instance: Option<TtlConfig>;
|
|
734
|
+
persistent: Option<TtlConfig>;
|
|
689
735
|
}, txnOptions?: {
|
|
690
736
|
/**
|
|
691
737
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -699,13 +745,12 @@ export interface Client {
|
|
|
699
745
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
700
746
|
*/
|
|
701
747
|
simulate?: boolean;
|
|
702
|
-
}) => Promise<AssembledTransaction<
|
|
748
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
703
749
|
/**
|
|
704
|
-
* Construct and simulate a
|
|
750
|
+
* 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.
|
|
751
|
+
* Returns the current TTL configs as (instance_config, persistent_config).
|
|
705
752
|
*/
|
|
706
|
-
|
|
707
|
-
eid: u32;
|
|
708
|
-
}, txnOptions?: {
|
|
753
|
+
ttl_configs: (txnOptions?: {
|
|
709
754
|
/**
|
|
710
755
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
711
756
|
*/
|
|
@@ -718,14 +763,18 @@ export interface Client {
|
|
|
718
763
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
719
764
|
*/
|
|
720
765
|
simulate?: boolean;
|
|
721
|
-
}) => Promise<AssembledTransaction<
|
|
766
|
+
}) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
|
|
722
767
|
/**
|
|
723
|
-
* Construct and simulate a
|
|
768
|
+
* 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.
|
|
769
|
+
* Permanently freezes TTL configs, preventing any future modifications.
|
|
770
|
+
*
|
|
771
|
+
* This is irreversible and provides immutability guarantees to users.
|
|
772
|
+
* Emits `TtlConfigsFrozen` event.
|
|
773
|
+
*
|
|
774
|
+
* # Panics
|
|
775
|
+
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
724
776
|
*/
|
|
725
|
-
|
|
726
|
-
src_eid: u32;
|
|
727
|
-
sender: Buffer;
|
|
728
|
-
}, txnOptions?: {
|
|
777
|
+
freeze_ttl_configs: (txnOptions?: {
|
|
729
778
|
/**
|
|
730
779
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
731
780
|
*/
|
|
@@ -738,20 +787,35 @@ export interface Client {
|
|
|
738
787
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
739
788
|
*/
|
|
740
789
|
simulate?: boolean;
|
|
741
|
-
}) => Promise<AssembledTransaction<
|
|
790
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
742
791
|
/**
|
|
743
|
-
* Construct and simulate a
|
|
744
|
-
*
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
792
|
+
* 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.
|
|
793
|
+
* Returns whether TTL configs are frozen.
|
|
794
|
+
*/
|
|
795
|
+
is_ttl_configs_frozen: (txnOptions?: {
|
|
796
|
+
/**
|
|
797
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
798
|
+
*/
|
|
799
|
+
fee?: number;
|
|
800
|
+
/**
|
|
801
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
802
|
+
*/
|
|
803
|
+
timeoutInSeconds?: number;
|
|
804
|
+
/**
|
|
805
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
806
|
+
*/
|
|
807
|
+
simulate?: boolean;
|
|
808
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
809
|
+
/**
|
|
810
|
+
* 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.
|
|
811
|
+
* Retrieves the OApp version information.
|
|
748
812
|
*
|
|
749
813
|
* # Returns
|
|
750
|
-
*
|
|
814
|
+
* A tuple containing:
|
|
815
|
+
* - `sender_version`: The version of the OAppSender
|
|
816
|
+
* - `receiver_version`: The version of the OAppReceiver
|
|
751
817
|
*/
|
|
752
|
-
|
|
753
|
-
origin: Origin;
|
|
754
|
-
}, txnOptions?: {
|
|
818
|
+
oapp_version: (txnOptions?: {
|
|
755
819
|
/**
|
|
756
820
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
757
821
|
*/
|
|
@@ -764,32 +828,40 @@ export interface Client {
|
|
|
764
828
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
765
829
|
*/
|
|
766
830
|
simulate?: boolean;
|
|
767
|
-
}) => Promise<AssembledTransaction<
|
|
831
|
+
}) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
768
832
|
/**
|
|
769
|
-
* Construct and simulate a
|
|
770
|
-
*
|
|
833
|
+
* 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.
|
|
834
|
+
* Retrieves the LayerZero endpoint address associated with the OApp.
|
|
771
835
|
*
|
|
772
|
-
*
|
|
773
|
-
*
|
|
836
|
+
* # Returns
|
|
837
|
+
* The LayerZero endpoint address
|
|
838
|
+
*/
|
|
839
|
+
endpoint: (txnOptions?: {
|
|
840
|
+
/**
|
|
841
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
842
|
+
*/
|
|
843
|
+
fee?: number;
|
|
844
|
+
/**
|
|
845
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
846
|
+
*/
|
|
847
|
+
timeoutInSeconds?: number;
|
|
848
|
+
/**
|
|
849
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
850
|
+
*/
|
|
851
|
+
simulate?: boolean;
|
|
852
|
+
}) => Promise<AssembledTransaction<string>>;
|
|
853
|
+
/**
|
|
854
|
+
* 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.
|
|
855
|
+
* Retrieves the peer (OApp) associated with a corresponding endpoint.
|
|
774
856
|
*
|
|
775
857
|
* # Arguments
|
|
776
|
-
* * `
|
|
777
|
-
*
|
|
778
|
-
*
|
|
779
|
-
*
|
|
780
|
-
* - `nonce`: The nonce of the message
|
|
781
|
-
* * `guid` - The unique identifier for the received LayerZero message
|
|
782
|
-
* * `message` - The payload of the received message
|
|
783
|
-
* * `extra_data` - Additional arbitrary data provided by the corresponding executor
|
|
784
|
-
* * `value` - The native token value sent with the message
|
|
858
|
+
* * `eid` - The endpoint ID
|
|
859
|
+
*
|
|
860
|
+
* # Returns
|
|
861
|
+
* The peer address (OApp instance) associated with the corresponding endpoint
|
|
785
862
|
*/
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
origin: Origin;
|
|
789
|
-
guid: Buffer;
|
|
790
|
-
message: Buffer;
|
|
791
|
-
extra_data: Buffer;
|
|
792
|
-
value: i128;
|
|
863
|
+
peer: ({ eid }: {
|
|
864
|
+
eid: u32;
|
|
793
865
|
}, txnOptions?: {
|
|
794
866
|
/**
|
|
795
867
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -803,26 +875,18 @@ export interface Client {
|
|
|
803
875
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
804
876
|
*/
|
|
805
877
|
simulate?: boolean;
|
|
806
|
-
}) => Promise<AssembledTransaction<
|
|
878
|
+
}) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
807
879
|
/**
|
|
808
|
-
* Construct and simulate a
|
|
809
|
-
*
|
|
810
|
-
*
|
|
811
|
-
* Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.
|
|
812
|
-
* The default sender IS the OAppReceiver implementer.
|
|
880
|
+
* 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.
|
|
881
|
+
* Sets or removes the peer address (OApp instance) for a corresponding endpoint.
|
|
813
882
|
*
|
|
814
883
|
* # Arguments
|
|
815
|
-
* * `
|
|
816
|
-
* * `
|
|
817
|
-
* * `sender` - The sender address to check
|
|
818
|
-
*
|
|
819
|
-
* # Returns
|
|
820
|
-
* True if the sender is a valid composeMsg sender, false otherwise
|
|
884
|
+
* * `eid` - The endpoint ID
|
|
885
|
+
* * `peer` - The address of the peer to be associated with the corresponding endpoint, or None to remove the peer
|
|
821
886
|
*/
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
sender: string;
|
|
887
|
+
set_peer: ({ eid, peer }: {
|
|
888
|
+
eid: u32;
|
|
889
|
+
peer: Option<Buffer>;
|
|
826
890
|
}, txnOptions?: {
|
|
827
891
|
/**
|
|
828
892
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -836,18 +900,16 @@ export interface Client {
|
|
|
836
900
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
837
901
|
*/
|
|
838
902
|
simulate?: boolean;
|
|
839
|
-
}) => Promise<AssembledTransaction<
|
|
903
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
840
904
|
/**
|
|
841
|
-
* Construct and simulate a
|
|
905
|
+
* 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.
|
|
906
|
+
* Sets the delegate address for the OApp Core.
|
|
907
|
+
*
|
|
908
|
+
* # Arguments
|
|
909
|
+
* * `delegate` - The address of the delegate to be set, or None to remove the delegate
|
|
842
910
|
*/
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
from: string;
|
|
846
|
-
guid: Buffer;
|
|
847
|
-
index: u32;
|
|
848
|
-
message: Buffer;
|
|
849
|
-
extra_data: Buffer;
|
|
850
|
-
value: i128;
|
|
911
|
+
set_delegate: ({ delegate }: {
|
|
912
|
+
delegate: Option<string>;
|
|
851
913
|
}, txnOptions?: {
|
|
852
914
|
/**
|
|
853
915
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -951,65 +1013,17 @@ export interface Client {
|
|
|
951
1013
|
timeoutInSeconds?: number;
|
|
952
1014
|
/**
|
|
953
1015
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
954
|
-
*/
|
|
955
|
-
simulate?: boolean;
|
|
956
|
-
}) => Promise<AssembledTransaction<Buffer>>;
|
|
957
|
-
/**
|
|
958
|
-
* Construct and simulate a
|
|
959
|
-
* Retrieves the OApp version information.
|
|
960
|
-
*
|
|
961
|
-
* # Returns
|
|
962
|
-
* A tuple containing:
|
|
963
|
-
* - `sender_version`: The version of the OAppSender
|
|
964
|
-
* - `receiver_version`: The version of the OAppReceiver
|
|
965
|
-
*/
|
|
966
|
-
oapp_version: (txnOptions?: {
|
|
967
|
-
/**
|
|
968
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
969
|
-
*/
|
|
970
|
-
fee?: number;
|
|
971
|
-
/**
|
|
972
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
973
|
-
*/
|
|
974
|
-
timeoutInSeconds?: number;
|
|
975
|
-
/**
|
|
976
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
977
|
-
*/
|
|
978
|
-
simulate?: boolean;
|
|
979
|
-
}) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
980
|
-
/**
|
|
981
|
-
* 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.
|
|
982
|
-
* Retrieves the LayerZero endpoint address associated with the OApp.
|
|
983
|
-
*
|
|
984
|
-
* # Returns
|
|
985
|
-
* The LayerZero endpoint address
|
|
986
|
-
*/
|
|
987
|
-
endpoint: (txnOptions?: {
|
|
988
|
-
/**
|
|
989
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
990
|
-
*/
|
|
991
|
-
fee?: number;
|
|
992
|
-
/**
|
|
993
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
994
|
-
*/
|
|
995
|
-
timeoutInSeconds?: number;
|
|
996
|
-
/**
|
|
997
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
998
|
-
*/
|
|
999
|
-
simulate?: boolean;
|
|
1000
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
1001
|
-
/**
|
|
1002
|
-
* 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.
|
|
1003
|
-
* Retrieves the peer (OApp) associated with a corresponding endpoint.
|
|
1004
|
-
*
|
|
1005
|
-
* # Arguments
|
|
1006
|
-
* * `eid` - The endpoint ID
|
|
1007
|
-
*
|
|
1008
|
-
* # Returns
|
|
1009
|
-
* The peer address (OApp instance) associated with the corresponding endpoint
|
|
1016
|
+
*/
|
|
1017
|
+
simulate?: boolean;
|
|
1018
|
+
}) => Promise<AssembledTransaction<Buffer>>;
|
|
1019
|
+
/**
|
|
1020
|
+
* Construct and simulate a quote 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.
|
|
1010
1021
|
*/
|
|
1011
|
-
|
|
1012
|
-
|
|
1022
|
+
quote: ({ dst_eid, msg_type, options, pay_in_zro }: {
|
|
1023
|
+
dst_eid: u32;
|
|
1024
|
+
msg_type: u32;
|
|
1025
|
+
options: Buffer;
|
|
1026
|
+
pay_in_zro: boolean;
|
|
1013
1027
|
}, txnOptions?: {
|
|
1014
1028
|
/**
|
|
1015
1029
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1023,18 +1037,16 @@ export interface Client {
|
|
|
1023
1037
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1024
1038
|
*/
|
|
1025
1039
|
simulate?: boolean;
|
|
1026
|
-
}) => Promise<AssembledTransaction<
|
|
1040
|
+
}) => Promise<AssembledTransaction<MessagingFee>>;
|
|
1027
1041
|
/**
|
|
1028
|
-
* Construct and simulate a
|
|
1029
|
-
* Sets or removes the peer address (OApp instance) for a corresponding endpoint.
|
|
1030
|
-
*
|
|
1031
|
-
* # Arguments
|
|
1032
|
-
* * `eid` - The endpoint ID
|
|
1033
|
-
* * `peer` - The address of the peer to be associated with the corresponding endpoint, or None to remove the peer
|
|
1042
|
+
* Construct and simulate a increment 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.
|
|
1034
1043
|
*/
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1044
|
+
increment: ({ caller, dst_eid, msg_type, options, fee }: {
|
|
1045
|
+
caller: string;
|
|
1046
|
+
dst_eid: u32;
|
|
1047
|
+
msg_type: u32;
|
|
1048
|
+
options: Buffer;
|
|
1049
|
+
fee: MessagingFee;
|
|
1038
1050
|
}, txnOptions?: {
|
|
1039
1051
|
/**
|
|
1040
1052
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1050,14 +1062,10 @@ export interface Client {
|
|
|
1050
1062
|
simulate?: boolean;
|
|
1051
1063
|
}) => Promise<AssembledTransaction<null>>;
|
|
1052
1064
|
/**
|
|
1053
|
-
* Construct and simulate a
|
|
1054
|
-
* Sets the delegate address for the OApp Core.
|
|
1055
|
-
*
|
|
1056
|
-
* # Arguments
|
|
1057
|
-
* * `delegate` - The address of the delegate to be set, or None to remove the delegate
|
|
1065
|
+
* Construct and simulate a set_ordered_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.
|
|
1058
1066
|
*/
|
|
1059
|
-
|
|
1060
|
-
|
|
1067
|
+
set_ordered_nonce: ({ ordered_nonce }: {
|
|
1068
|
+
ordered_nonce: boolean;
|
|
1061
1069
|
}, txnOptions?: {
|
|
1062
1070
|
/**
|
|
1063
1071
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1073,23 +1081,12 @@ export interface Client {
|
|
|
1073
1081
|
simulate?: boolean;
|
|
1074
1082
|
}) => Promise<AssembledTransaction<null>>;
|
|
1075
1083
|
/**
|
|
1076
|
-
* Construct and simulate a
|
|
1077
|
-
* Sets TTL configs for instance and persistent storage.
|
|
1078
|
-
*
|
|
1079
|
-
* - `None` values remove the corresponding config (disables auto-extension for that type)
|
|
1080
|
-
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
1081
|
-
*
|
|
1082
|
-
* # Arguments
|
|
1083
|
-
* - `instance` - TTL config for instance storage
|
|
1084
|
-
* - `persistent` - TTL config for persistent storage
|
|
1085
|
-
*
|
|
1086
|
-
* # Panics
|
|
1087
|
-
* - `TtlConfigFrozen` if configs are frozen
|
|
1088
|
-
* - `InvalidTtlConfig` if validation fails
|
|
1084
|
+
* Construct and simulate a skip_inbound_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.
|
|
1089
1085
|
*/
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1086
|
+
skip_inbound_nonce: ({ src_eid, sender, nonce }: {
|
|
1087
|
+
src_eid: u32;
|
|
1088
|
+
sender: Buffer;
|
|
1089
|
+
nonce: u64;
|
|
1093
1090
|
}, txnOptions?: {
|
|
1094
1091
|
/**
|
|
1095
1092
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1105,10 +1102,9 @@ export interface Client {
|
|
|
1105
1102
|
simulate?: boolean;
|
|
1106
1103
|
}) => Promise<AssembledTransaction<null>>;
|
|
1107
1104
|
/**
|
|
1108
|
-
* Construct and simulate a
|
|
1109
|
-
* Returns the current TTL configs as (instance_config, persistent_config).
|
|
1105
|
+
* Construct and simulate a eid 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.
|
|
1110
1106
|
*/
|
|
1111
|
-
|
|
1107
|
+
eid: (txnOptions?: {
|
|
1112
1108
|
/**
|
|
1113
1109
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1114
1110
|
*/
|
|
@@ -1121,18 +1117,11 @@ export interface Client {
|
|
|
1121
1117
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1122
1118
|
*/
|
|
1123
1119
|
simulate?: boolean;
|
|
1124
|
-
}) => Promise<AssembledTransaction<
|
|
1120
|
+
}) => Promise<AssembledTransaction<u32>>;
|
|
1125
1121
|
/**
|
|
1126
|
-
* Construct and simulate a
|
|
1127
|
-
* Permanently freezes TTL configs, preventing any future modifications.
|
|
1128
|
-
*
|
|
1129
|
-
* This is irreversible and provides immutability guarantees to users.
|
|
1130
|
-
* Emits `TtlConfigsFrozen` event.
|
|
1131
|
-
*
|
|
1132
|
-
* # Panics
|
|
1133
|
-
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
1122
|
+
* Construct and simulate a count 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.
|
|
1134
1123
|
*/
|
|
1135
|
-
|
|
1124
|
+
count: (txnOptions?: {
|
|
1136
1125
|
/**
|
|
1137
1126
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1138
1127
|
*/
|
|
@@ -1145,12 +1134,11 @@ export interface Client {
|
|
|
1145
1134
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1146
1135
|
*/
|
|
1147
1136
|
simulate?: boolean;
|
|
1148
|
-
}) => Promise<AssembledTransaction<
|
|
1137
|
+
}) => Promise<AssembledTransaction<u64>>;
|
|
1149
1138
|
/**
|
|
1150
|
-
* Construct and simulate a
|
|
1151
|
-
* Returns whether TTL configs are frozen.
|
|
1139
|
+
* Construct and simulate a composed_count 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.
|
|
1152
1140
|
*/
|
|
1153
|
-
|
|
1141
|
+
composed_count: (txnOptions?: {
|
|
1154
1142
|
/**
|
|
1155
1143
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1156
1144
|
*/
|
|
@@ -1163,19 +1151,12 @@ export interface Client {
|
|
|
1163
1151
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1164
1152
|
*/
|
|
1165
1153
|
simulate?: boolean;
|
|
1166
|
-
}) => Promise<AssembledTransaction<
|
|
1154
|
+
}) => Promise<AssembledTransaction<u64>>;
|
|
1167
1155
|
/**
|
|
1168
|
-
* Construct and simulate a
|
|
1169
|
-
* Extends the instance TTL.
|
|
1170
|
-
*
|
|
1171
|
-
* # Arguments
|
|
1172
|
-
*
|
|
1173
|
-
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
1174
|
-
* * `extend_to` - The TTL to extend to.
|
|
1156
|
+
* Construct and simulate a inbound_count 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
1157
|
*/
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
extend_to: u32;
|
|
1158
|
+
inbound_count: ({ eid }: {
|
|
1159
|
+
eid: u32;
|
|
1179
1160
|
}, txnOptions?: {
|
|
1180
1161
|
/**
|
|
1181
1162
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1189,12 +1170,13 @@ export interface Client {
|
|
|
1189
1170
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1190
1171
|
*/
|
|
1191
1172
|
simulate?: boolean;
|
|
1192
|
-
}) => Promise<AssembledTransaction<
|
|
1173
|
+
}) => Promise<AssembledTransaction<u64>>;
|
|
1193
1174
|
/**
|
|
1194
|
-
* Construct and simulate a
|
|
1195
|
-
* Returns the current owner address, or None if no owner is set.
|
|
1175
|
+
* Construct and simulate a outbound_count 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.
|
|
1196
1176
|
*/
|
|
1197
|
-
|
|
1177
|
+
outbound_count: ({ eid }: {
|
|
1178
|
+
eid: u32;
|
|
1179
|
+
}, txnOptions?: {
|
|
1198
1180
|
/**
|
|
1199
1181
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1200
1182
|
*/
|
|
@@ -1207,12 +1189,14 @@ export interface Client {
|
|
|
1207
1189
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1208
1190
|
*/
|
|
1209
1191
|
simulate?: boolean;
|
|
1210
|
-
}) => Promise<AssembledTransaction<
|
|
1192
|
+
}) => Promise<AssembledTransaction<u64>>;
|
|
1211
1193
|
/**
|
|
1212
|
-
* Construct and simulate a
|
|
1213
|
-
* Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
|
|
1194
|
+
* 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.
|
|
1214
1195
|
*/
|
|
1215
|
-
|
|
1196
|
+
next_nonce: ({ src_eid, sender }: {
|
|
1197
|
+
src_eid: u32;
|
|
1198
|
+
sender: Buffer;
|
|
1199
|
+
}, txnOptions?: {
|
|
1216
1200
|
/**
|
|
1217
1201
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1218
1202
|
*/
|
|
@@ -1225,20 +1209,19 @@ export interface Client {
|
|
|
1225
1209
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1226
1210
|
*/
|
|
1227
1211
|
simulate?: boolean;
|
|
1228
|
-
}) => Promise<AssembledTransaction<
|
|
1212
|
+
}) => Promise<AssembledTransaction<u64>>;
|
|
1229
1213
|
/**
|
|
1230
|
-
* Construct and simulate a
|
|
1231
|
-
*
|
|
1214
|
+
* 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.
|
|
1215
|
+
* Checks if a messaging path can be initialized for the given origin.
|
|
1232
1216
|
*
|
|
1233
|
-
*
|
|
1234
|
-
*
|
|
1217
|
+
* # Arguments
|
|
1218
|
+
* * `origin` - The origin of the message
|
|
1235
1219
|
*
|
|
1236
|
-
* #
|
|
1237
|
-
*
|
|
1238
|
-
* - `TransferInProgress` if a 2-step transfer is in progress
|
|
1220
|
+
* # Returns
|
|
1221
|
+
* True if the path can be initialized, false otherwise
|
|
1239
1222
|
*/
|
|
1240
|
-
|
|
1241
|
-
|
|
1223
|
+
allow_initialize_path: ({ origin }: {
|
|
1224
|
+
origin: Origin;
|
|
1242
1225
|
}, txnOptions?: {
|
|
1243
1226
|
/**
|
|
1244
1227
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1252,28 +1235,32 @@ export interface Client {
|
|
|
1252
1235
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1253
1236
|
*/
|
|
1254
1237
|
simulate?: boolean;
|
|
1255
|
-
}) => Promise<AssembledTransaction<
|
|
1238
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1256
1239
|
/**
|
|
1257
|
-
* Construct and simulate a
|
|
1258
|
-
*
|
|
1240
|
+
* 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.
|
|
1241
|
+
* Entry point for receiving messages or packets from the LayerZero endpoint.
|
|
1259
1242
|
*
|
|
1260
|
-
* The
|
|
1261
|
-
*
|
|
1243
|
+
* The default implementation calls `clear_payload_and_transfer` to validate the message
|
|
1244
|
+
* and clear it from the endpoint, then delegates to `__lz_receive` for application logic.
|
|
1262
1245
|
*
|
|
1263
1246
|
* # Arguments
|
|
1264
|
-
*
|
|
1265
|
-
*
|
|
1266
|
-
*
|
|
1267
|
-
*
|
|
1268
|
-
*
|
|
1269
|
-
*
|
|
1270
|
-
*
|
|
1271
|
-
*
|
|
1272
|
-
*
|
|
1247
|
+
* * `executor` - The address of the executor for the received message
|
|
1248
|
+
* * `origin` - The origin information containing the source endpoint and sender address:
|
|
1249
|
+
* - `src_eid`: The source chain endpoint ID
|
|
1250
|
+
* - `sender`: The sender address on the source chain
|
|
1251
|
+
* - `nonce`: The nonce of the message
|
|
1252
|
+
* * `guid` - The unique identifier for the received LayerZero message
|
|
1253
|
+
* * `message` - The payload of the received message
|
|
1254
|
+
* * `extra_data` - Additional arbitrary data provided by the corresponding executor
|
|
1255
|
+
* * `value` - The native token value sent with the message
|
|
1273
1256
|
*/
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1257
|
+
lz_receive: ({ executor, origin, guid, message, extra_data, value }: {
|
|
1258
|
+
executor: string;
|
|
1259
|
+
origin: Origin;
|
|
1260
|
+
guid: Buffer;
|
|
1261
|
+
message: Buffer;
|
|
1262
|
+
extra_data: Buffer;
|
|
1263
|
+
value: i128;
|
|
1277
1264
|
}, txnOptions?: {
|
|
1278
1265
|
/**
|
|
1279
1266
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1289,15 +1276,25 @@ export interface Client {
|
|
|
1289
1276
|
simulate?: boolean;
|
|
1290
1277
|
}) => Promise<AssembledTransaction<null>>;
|
|
1291
1278
|
/**
|
|
1292
|
-
* Construct and simulate a
|
|
1293
|
-
*
|
|
1279
|
+
* 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.
|
|
1280
|
+
* Indicates whether an address is an approved composeMsg sender to the Endpoint.
|
|
1294
1281
|
*
|
|
1295
|
-
*
|
|
1282
|
+
* Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.
|
|
1283
|
+
* The default sender IS the OAppReceiver implementer.
|
|
1296
1284
|
*
|
|
1297
|
-
* #
|
|
1298
|
-
*
|
|
1285
|
+
* # Arguments
|
|
1286
|
+
* * `origin` - The origin information containing the source endpoint and sender address
|
|
1287
|
+
* * `message` - The lzReceive payload
|
|
1288
|
+
* * `sender` - The sender address to check
|
|
1289
|
+
*
|
|
1290
|
+
* # Returns
|
|
1291
|
+
* True if the sender is a valid composeMsg sender, false otherwise
|
|
1299
1292
|
*/
|
|
1300
|
-
|
|
1293
|
+
is_compose_msg_sender: ({ origin, message, sender }: {
|
|
1294
|
+
origin: Origin;
|
|
1295
|
+
message: Buffer;
|
|
1296
|
+
sender: string;
|
|
1297
|
+
}, txnOptions?: {
|
|
1301
1298
|
/**
|
|
1302
1299
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1303
1300
|
*/
|
|
@@ -1310,16 +1307,19 @@ export interface Client {
|
|
|
1310
1307
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1311
1308
|
*/
|
|
1312
1309
|
simulate?: boolean;
|
|
1313
|
-
}) => Promise<AssembledTransaction<
|
|
1310
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1314
1311
|
/**
|
|
1315
|
-
* Construct and simulate a
|
|
1316
|
-
* Permanently renounces ownership.
|
|
1317
|
-
*
|
|
1318
|
-
* # Panics
|
|
1319
|
-
* - `OwnerNotSet` if no owner is currently set
|
|
1320
|
-
* - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
|
|
1312
|
+
* Construct and simulate a lz_compose 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.
|
|
1321
1313
|
*/
|
|
1322
|
-
|
|
1314
|
+
lz_compose: ({ executor, from, guid, index, message, extra_data, value }: {
|
|
1315
|
+
executor: string;
|
|
1316
|
+
from: string;
|
|
1317
|
+
guid: Buffer;
|
|
1318
|
+
index: u32;
|
|
1319
|
+
message: Buffer;
|
|
1320
|
+
extra_data: Buffer;
|
|
1321
|
+
value: i128;
|
|
1322
|
+
}, txnOptions?: {
|
|
1323
1323
|
/**
|
|
1324
1324
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1325
1325
|
*/
|
|
@@ -1355,6 +1355,25 @@ export declare class Client extends ContractClient {
|
|
|
1355
1355
|
constructor(options: ContractClientOptions);
|
|
1356
1356
|
readonly fromJSON: {
|
|
1357
1357
|
authorizer: (json: string) => AssembledTransaction<string>;
|
|
1358
|
+
owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1359
|
+
pending_owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1360
|
+
transfer_ownership: (json: string) => AssembledTransaction<null>;
|
|
1361
|
+
propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
|
|
1362
|
+
accept_ownership: (json: string) => AssembledTransaction<null>;
|
|
1363
|
+
renounce_ownership: (json: string) => AssembledTransaction<null>;
|
|
1364
|
+
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
1365
|
+
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1366
|
+
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
1367
|
+
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1368
|
+
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1369
|
+
oapp_version: (json: string) => AssembledTransaction<readonly [bigint, bigint]>;
|
|
1370
|
+
endpoint: (json: string) => AssembledTransaction<string>;
|
|
1371
|
+
peer: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
|
|
1372
|
+
set_peer: (json: string) => AssembledTransaction<null>;
|
|
1373
|
+
set_delegate: (json: string) => AssembledTransaction<null>;
|
|
1374
|
+
enforced_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
|
|
1375
|
+
set_enforced_options: (json: string) => AssembledTransaction<null>;
|
|
1376
|
+
combine_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
|
|
1358
1377
|
quote: (json: string) => AssembledTransaction<MessagingFee>;
|
|
1359
1378
|
increment: (json: string) => AssembledTransaction<null>;
|
|
1360
1379
|
set_ordered_nonce: (json: string) => AssembledTransaction<null>;
|
|
@@ -1369,24 +1388,5 @@ export declare class Client extends ContractClient {
|
|
|
1369
1388
|
lz_receive: (json: string) => AssembledTransaction<null>;
|
|
1370
1389
|
is_compose_msg_sender: (json: string) => AssembledTransaction<boolean>;
|
|
1371
1390
|
lz_compose: (json: string) => AssembledTransaction<null>;
|
|
1372
|
-
enforced_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
|
|
1373
|
-
set_enforced_options: (json: string) => AssembledTransaction<null>;
|
|
1374
|
-
combine_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
|
|
1375
|
-
oapp_version: (json: string) => AssembledTransaction<readonly [bigint, bigint]>;
|
|
1376
|
-
endpoint: (json: string) => AssembledTransaction<string>;
|
|
1377
|
-
peer: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
|
|
1378
|
-
set_peer: (json: string) => AssembledTransaction<null>;
|
|
1379
|
-
set_delegate: (json: string) => AssembledTransaction<null>;
|
|
1380
|
-
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1381
|
-
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
1382
|
-
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1383
|
-
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1384
|
-
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
1385
|
-
owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1386
|
-
pending_owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1387
|
-
transfer_ownership: (json: string) => AssembledTransaction<null>;
|
|
1388
|
-
propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
|
|
1389
|
-
accept_ownership: (json: string) => AssembledTransaction<null>;
|
|
1390
|
-
renounce_ownership: (json: string) => AssembledTransaction<null>;
|
|
1391
1391
|
};
|
|
1392
1392
|
}
|