@layerzerolabs/protocol-stellar-v2 0.2.15 → 0.2.19

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.
Files changed (262) hide show
  1. package/.turbo/turbo-build.log +365 -297
  2. package/.turbo/turbo-lint.log +142 -110
  3. package/.turbo/turbo-test.log +1273 -1222
  4. package/Cargo.lock +20 -5
  5. package/Cargo.toml +4 -1
  6. package/contracts/ERROR_SPEC.md +44 -0
  7. package/contracts/common-macros/src/auth.rs +113 -0
  8. package/contracts/common-macros/src/contract_ttl.rs +84 -0
  9. package/contracts/common-macros/src/lib.rs +181 -30
  10. package/contracts/common-macros/src/lz_contract.rs +83 -0
  11. package/contracts/common-macros/src/tests/{ownable.rs → auth.rs} +48 -15
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +662 -0
  13. package/contracts/common-macros/src/tests/mod.rs +2 -2
  14. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -0
  15. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +24 -0
  16. package/contracts/common-macros/src/tests/snapshots/{common_macros__tests__ownable__snapshot_only_owner_preserves_function_signature.snap → common_macros__tests__auth__snapshot_only_auth_preserves_function_signature.snap} +4 -4
  17. package/contracts/common-macros/src/tests/snapshots/{common_macros__tests__contract_impl__snapshot_generated_contract_impl_code.snap → common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap} +3 -3
  18. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +69 -0
  19. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +7 -21
  20. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +2 -2
  21. package/contracts/common-macros/src/ttl_configurable.rs +19 -34
  22. package/contracts/common-macros/src/ttl_extendable.rs +36 -0
  23. package/contracts/common-macros/src/upgradeable.rs +5 -5
  24. package/contracts/common-macros/src/utils.rs +9 -0
  25. package/contracts/endpoint-v2/src/constants.rs +4 -4
  26. package/contracts/endpoint-v2/src/endpoint_v2.rs +38 -40
  27. package/contracts/endpoint-v2/src/errors.rs +4 -3
  28. package/contracts/endpoint-v2/src/events.rs +1 -1
  29. package/contracts/endpoint-v2/src/message_lib_manager.rs +18 -5
  30. package/contracts/endpoint-v2/src/messaging_channel.rs +11 -1
  31. package/contracts/endpoint-v2/src/messaging_composer.rs +11 -1
  32. package/contracts/endpoint-v2/src/storage.rs +1 -1
  33. package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +3 -3
  34. package/contracts/endpoint-v2/src/tests/endpoint_v2/quote.rs +1 -1
  35. package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
  36. package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +3 -3
  37. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
  38. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +3 -3
  39. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +1 -1
  40. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +3 -3
  41. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +1 -1
  42. package/contracts/endpoint-v2/src/tests/messaging_channel/clear_payload.rs +4 -4
  43. package/contracts/endpoint-v2/src/tests/messaging_channel/inbound.rs +1 -1
  44. package/contracts/layerzero-views/src/layerzero_view.rs +3 -6
  45. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +2 -2
  46. package/contracts/macro-integration-tests/tests/runtime/ownable/{only_owner_guard.rs → only_auth_guard.rs} +1 -1
  47. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +1 -1
  48. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +1 -1
  49. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/mod.rs +0 -1
  50. package/contracts/macro-integration-tests/tests/ui/ownable/fail/{only_owner_missing_env.rs → only_auth_missing_env.rs} +3 -3
  51. package/contracts/macro-integration-tests/tests/ui/ownable/fail/{only_owner_missing_env.stderr → only_auth_missing_env.stderr} +4 -4
  52. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +2 -3
  53. package/contracts/macro-integration-tests/tests/ui/ownable/pass/{only_owner_env_param_variants.rs → only_auth_env_param_variants.rs} +9 -9
  54. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/minimal_contract.rs +6 -6
  55. package/contracts/message-libs/message-lib-common/src/errors.rs +7 -2
  56. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/decode_packet_header.rs +3 -3
  57. package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_lz_receive_option.rs +1 -2
  58. package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_native_drop_option.rs +1 -2
  59. package/contracts/message-libs/message-lib-common/src/tests/worker_options/convert_legacy_options.rs +9 -9
  60. package/contracts/message-libs/message-lib-common/src/tests/worker_options/extract_type_3_options.rs +1 -1
  61. package/contracts/message-libs/message-lib-common/src/tests/worker_options/left_pad_to_bytes32.rs +1 -1
  62. package/contracts/message-libs/message-lib-common/src/tests/worker_options/split_worker_options.rs +2 -2
  63. package/contracts/message-libs/simple-message-lib/src/simple_message_lib.rs +7 -9
  64. package/contracts/message-libs/treasury/src/errors.rs +2 -2
  65. package/contracts/message-libs/treasury/src/events.rs +1 -1
  66. package/contracts/message-libs/treasury/src/interfaces/zro_fee_lib.rs +2 -2
  67. package/contracts/message-libs/treasury/src/storage.rs +1 -1
  68. package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +1 -1
  69. package/contracts/message-libs/treasury/src/treasury.rs +14 -16
  70. package/contracts/message-libs/uln-302/src/receive_uln.rs +13 -2
  71. package/contracts/message-libs/uln-302/src/send_uln.rs +24 -4
  72. package/contracts/message-libs/uln-302/src/uln302.rs +6 -24
  73. package/contracts/oapps/counter/Cargo.toml +14 -1
  74. package/contracts/oapps/counter/integration_tests/mod.rs +4 -1
  75. package/contracts/oapps/counter/integration_tests/{setup.rs → setup_sml.rs} +48 -80
  76. package/contracts/oapps/counter/integration_tests/setup_uln.rs +997 -0
  77. package/contracts/oapps/counter/integration_tests/signing.rs +62 -0
  78. package/contracts/oapps/counter/integration_tests/test_with_sml.rs +24 -55
  79. package/contracts/oapps/counter/integration_tests/test_with_uln.rs +314 -0
  80. package/contracts/oapps/counter/integration_tests/utils.rs +196 -53
  81. package/contracts/oapps/counter/src/counter.rs +67 -43
  82. package/contracts/oapps/counter/src/tests/mod.rs +0 -13
  83. package/contracts/oapps/counter/src/tests/test_counter.rs +5 -7
  84. package/contracts/oapps/oapp/src/errors.rs +5 -1
  85. package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +93 -78
  86. package/contracts/oapps/oapp/src/oapp_core.rs +36 -21
  87. package/contracts/oapps/oapp/src/oapp_options_type3.rs +48 -12
  88. package/contracts/oapps/oapp/src/oapp_receiver.rs +106 -41
  89. package/contracts/oapps/oapp/src/oapp_sender.rs +26 -34
  90. package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +9 -8
  91. package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +25 -17
  92. package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +7 -7
  93. package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +14 -15
  94. package/contracts/oapps/oapp-macros/src/generators.rs +128 -0
  95. package/contracts/oapps/oapp-macros/src/lib.rs +113 -56
  96. package/contracts/oapps/oft/Cargo.toml +10 -7
  97. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_oft_fee.rs +3 -4
  98. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_pausable.rs +2 -3
  99. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_rate_limiter.rs +1 -1
  100. package/contracts/oapps/oft/integration-tests/mod.rs +1 -1
  101. package/contracts/oapps/oft/integration-tests/setup.rs +29 -110
  102. package/contracts/oapps/oft/integration-tests/utils.rs +254 -21
  103. package/contracts/oapps/oft/src/extensions/oft_fee.rs +13 -14
  104. package/contracts/oapps/oft/src/extensions/pausable.rs +4 -4
  105. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +5 -5
  106. package/contracts/oapps/oft/src/lib.rs +11 -13
  107. package/contracts/oapps/oft/src/oft.rs +147 -225
  108. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +9 -13
  109. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +31 -14
  110. package/contracts/oapps/oft/src/oft_types/mod.rs +13 -0
  111. package/contracts/oapps/{oft-std → oft-core}/Cargo.toml +6 -4
  112. package/contracts/oapps/{oft-std → oft-core}/integration-tests/mod.rs +1 -1
  113. package/contracts/oapps/{oft-std → oft-core}/integration-tests/setup.rs +129 -30
  114. package/contracts/oapps/{oft → oft-core}/integration-tests/test_with_sml.rs +3 -3
  115. package/contracts/oapps/oft-core/integration-tests/utils.rs +201 -0
  116. package/contracts/oapps/oft-core/src/errors.rs +13 -0
  117. package/contracts/oapps/oft-core/src/lib.rs +18 -0
  118. package/contracts/oapps/oft-core/src/oft_core.rs +439 -0
  119. package/contracts/oapps/{oft → oft-core}/src/storage.rs +2 -0
  120. package/contracts/oapps/{oft → oft-core}/src/tests/mod.rs +0 -2
  121. package/contracts/oapps/{oft → oft-core}/src/tests/test_decimals.rs +2 -2
  122. package/contracts/oapps/{oft → oft-core}/src/tests/test_lz_receive.rs +7 -7
  123. package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_msg_codec.rs +4 -5
  124. package/contracts/oapps/{oft → oft-core}/src/tests/test_resolve_address.rs +3 -3
  125. package/contracts/oapps/{oft → oft-core}/src/tests/test_utils.rs +78 -37
  126. package/contracts/oapps/oft-core/src/types.rs +58 -0
  127. package/contracts/oapps/{oft → oft-core}/src/utils.rs +1 -1
  128. package/contracts/upgrader/src/lib.rs +4 -4
  129. package/contracts/utils/src/auth.rs +44 -0
  130. package/contracts/utils/src/errors.rs +31 -5
  131. package/contracts/utils/src/lib.rs +3 -0
  132. package/contracts/utils/src/multisig.rs +211 -0
  133. package/contracts/utils/src/ownable.rs +137 -13
  134. package/contracts/utils/src/tests/buffer_reader.rs +6 -6
  135. package/contracts/utils/src/tests/buffer_writer.rs +6 -6
  136. package/contracts/utils/src/tests/bytes_ext.rs +2 -4
  137. package/contracts/utils/src/tests/mod.rs +1 -0
  138. package/contracts/utils/src/tests/multisig.rs +731 -0
  139. package/contracts/utils/src/tests/option_ext.rs +2 -5
  140. package/contracts/utils/src/tests/ownable.rs +456 -7
  141. package/contracts/utils/src/tests/ttl_configurable.rs +27 -16
  142. package/contracts/utils/src/tests/upgradeable.rs +4 -2
  143. package/contracts/utils/src/ttl_configurable.rs +23 -8
  144. package/contracts/utils/src/ttl_extendable.rs +27 -0
  145. package/contracts/utils/src/upgradeable.rs +2 -0
  146. package/contracts/workers/dvn/Cargo.toml +1 -1
  147. package/contracts/workers/dvn/src/auth.rs +7 -7
  148. package/contracts/workers/dvn/src/dvn.rs +10 -38
  149. package/contracts/workers/dvn/src/errors.rs +0 -7
  150. package/contracts/workers/dvn/src/events.rs +1 -14
  151. package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
  152. package/contracts/workers/dvn/src/interfaces/mod.rs +0 -2
  153. package/contracts/workers/dvn/src/storage.rs +3 -13
  154. package/contracts/workers/dvn/src/tests/auth.rs +4 -4
  155. package/contracts/workers/dvn/src/tests/dvn.rs +1 -2
  156. package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +7 -8
  157. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +11 -8
  158. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +11 -12
  159. package/contracts/workers/dvn/src/tests/setup.rs +5 -5
  160. package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
  161. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -6
  162. package/contracts/workers/executor/src/auth.rs +80 -16
  163. package/contracts/workers/executor/src/executor.rs +5 -31
  164. package/contracts/workers/executor/src/storage.rs +2 -9
  165. package/contracts/workers/executor-fee-lib/Cargo.toml +1 -1
  166. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +3 -6
  167. package/contracts/workers/executor-helper/Cargo.toml +1 -1
  168. package/contracts/workers/executor-helper/src/executor_helper.rs +53 -73
  169. package/contracts/workers/price-feed/Cargo.toml +1 -1
  170. package/contracts/workers/price-feed/src/price_feed.rs +7 -10
  171. package/contracts/workers/worker/src/errors.rs +4 -0
  172. package/contracts/workers/worker/src/tests/worker.rs +7 -6
  173. package/contracts/workers/worker/src/worker.rs +20 -16
  174. package/package.json +7 -5
  175. package/sdk/.turbo/turbo-build.log +1 -0
  176. package/sdk/.turbo/turbo-test.log +1019 -0
  177. package/sdk/dist/generated/bml.d.ts +95 -8
  178. package/sdk/dist/generated/bml.js +95 -36
  179. package/sdk/dist/generated/counter.d.ts +289 -44
  180. package/sdk/dist/generated/counter.js +119 -49
  181. package/sdk/dist/generated/dvn.d.ts +312 -229
  182. package/sdk/dist/generated/dvn.js +144 -83
  183. package/sdk/dist/generated/dvn_fee_lib.d.ts +258 -63
  184. package/sdk/dist/generated/dvn_fee_lib.js +95 -26
  185. package/sdk/dist/generated/endpoint.d.ts +219 -24
  186. package/sdk/dist/generated/endpoint.js +108 -41
  187. package/sdk/dist/generated/executor.d.ts +239 -87
  188. package/sdk/dist/generated/executor.js +135 -63
  189. package/sdk/dist/generated/executor_fee_lib.d.ts +278 -74
  190. package/sdk/dist/generated/executor_fee_lib.js +135 -59
  191. package/sdk/dist/generated/executor_helper.d.ts +163 -21
  192. package/sdk/dist/generated/executor_helper.js +124 -52
  193. package/sdk/dist/generated/oft.d.ts +1842 -0
  194. package/sdk/dist/generated/oft.js +345 -0
  195. package/sdk/dist/generated/price_feed.d.ts +258 -63
  196. package/sdk/dist/generated/price_feed.js +95 -26
  197. package/sdk/dist/generated/sml.d.ts +235 -34
  198. package/sdk/dist/generated/sml.js +126 -53
  199. package/sdk/dist/generated/treasury.d.ts +1016 -0
  200. package/sdk/dist/generated/treasury.js +248 -0
  201. package/sdk/dist/generated/uln302.d.ts +235 -34
  202. package/sdk/dist/generated/uln302.js +126 -53
  203. package/sdk/dist/generated/upgrader.d.ts +17 -2
  204. package/sdk/dist/generated/upgrader.js +19 -1
  205. package/sdk/dist/index.d.ts +2 -1
  206. package/sdk/dist/index.js +2 -1
  207. package/sdk/package.json +6 -3
  208. package/sdk/src/index.ts +2 -1
  209. package/sdk/test/counter-sml.test.ts +376 -0
  210. package/sdk/test/counter-uln.test.ts +493 -0
  211. package/sdk/test/{oft.test.ts → oft-sml.test.ts} +196 -321
  212. package/sdk/test/suites/constants.ts +22 -2
  213. package/sdk/test/suites/globalSetup.ts +450 -0
  214. package/sdk/test/suites/localnet.ts +23 -6
  215. package/sdk/test/upgrader.test.ts +7 -16
  216. package/sdk/test/utils.ts +558 -85
  217. package/sdk/turbo.json +8 -0
  218. package/sdk/vitest.config.ts +21 -0
  219. package/tools/ts-bindings-gen/Cargo.toml +2 -0
  220. package/tools/ts-bindings-gen/src/main.rs +52 -4
  221. package/contracts/common-macros/src/contract_impl.rs +0 -52
  222. package/contracts/common-macros/src/ownable.rs +0 -41
  223. package/contracts/common-macros/src/tests/contract_impl.rs +0 -386
  224. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ownable__snapshot_generated_ownable_code.snap +0 -12
  225. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/extend_instance_ttl.rs +0 -50
  226. package/contracts/oapps/oapp-macros/src/oapp_core.rs +0 -41
  227. package/contracts/oapps/oapp-macros/src/oapp_full.rs +0 -21
  228. package/contracts/oapps/oapp-macros/src/oapp_options_type3.rs +0 -31
  229. package/contracts/oapps/oapp-macros/src/oapp_receiver.rs +0 -48
  230. package/contracts/oapps/oapp-macros/src/oapp_sender.rs +0 -21
  231. package/contracts/oapps/oapp-macros/src/util.rs +0 -107
  232. package/contracts/oapps/oft/src/constants.rs +0 -5
  233. package/contracts/oapps/oft/src/default_oft_impl.rs +0 -152
  234. package/contracts/oapps/oft/src/errors.rs +0 -8
  235. package/contracts/oapps/oft/src/interfaces/mint_burn_token.rs +0 -23
  236. package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
  237. package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -11
  238. package/contracts/oapps/oft/src/tests/extensions/setup.rs +0 -903
  239. package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +0 -749
  240. package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +0 -432
  241. package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +0 -1078
  242. package/contracts/oapps/oft/src/types.rs +0 -38
  243. package/contracts/oapps/oft-std/integration-tests/utils.rs +0 -427
  244. package/contracts/oapps/oft-std/src/lib.rs +0 -16
  245. package/contracts/oapps/oft-std/src/oft.rs +0 -156
  246. package/contracts/workers/dvn/src/interfaces/multisig.rs +0 -56
  247. package/contracts/workers/dvn/src/multisig.rs +0 -157
  248. package/sdk/dist/generated/oft_std.d.ts +0 -1544
  249. package/sdk/dist/generated/oft_std.js +0 -271
  250. package/sdk/test/index.test.ts +0 -375
  251. /package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/mod.rs +0 -0
  252. /package/contracts/oapps/{oft → oft-core}/src/codec/mod.rs +0 -0
  253. /package/contracts/oapps/{oft → oft-core}/src/codec/oft_compose_msg_codec.rs +0 -0
  254. /package/contracts/oapps/{oft → oft-core}/src/codec/oft_msg_codec.rs +0 -0
  255. /package/contracts/oapps/{oft → oft-core}/src/events.rs +0 -0
  256. /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_compose_msg_codec.rs +0 -0
  257. /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_version.rs +0 -0
  258. /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_oft.rs +0 -0
  259. /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_send.rs +0 -0
  260. /package/contracts/oapps/{oft → oft-core}/src/tests/test_send.rs +0 -0
  261. /package/contracts/oapps/{oft → oft-core}/src/tests/test_token.rs +0 -0
  262. /package/sdk/test/suites/{testUpgradeable.ts → dummyContractClient.ts} +0 -0
@@ -5,6 +5,21 @@ export * from '@stellar/stellar-sdk';
5
5
  export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
7
  export type MigrationData = void;
8
+ /**
9
+ * Embedded WASM bytecode (base64-encoded)
10
+ * Size: 34996 bytes (34.18 KB)
11
+ */
12
+ export declare const WASM_BASE64 = "AGFzbQEAAAABlgEaYAR+fn5+AX5gAn5+AX5gA35+fgF+YAF+AX5gAAF+YAN/f38AYAF/AX5gAn9/AGACfn4Bf2ACf34AYAN/fn4AYAABf2ABfwBgAABgAn5/AGABfgBgAn5/AX5gBH9/f38BfmAFf39/fn4AYAF/AX9gAn9/AX5gBX5/f39/AGABfgF/YAJ+fgBgBH9+fn8AYAV/fn5+fgACnQEaAWwBNwAAAWwBMQABAWwBXwACAWEBMAADAWIBOAADAWwBNgADAWkBNgABAWwBMgABAXgBMQABAXYBMwADAXYBMQABAXYBZwABAWIBagABAW0BOQACAW0BYQAAAXgBMAABAXgBMwAEAXgBOAAEAWwBMAABAWwBOAABAXgBNQADAWkBXwADAWkBMAADAWkBMwABAWkBNQADAWkBNAADA2ppBQYHCAkKAQsMBwYNBAQMDg0MDwYMBQkKEAkRBgcBDwwDDAMEBAEPABISEwcMDQwKBAMECQEUAwMDAxUBDwcBCQEDFgQMBAwDCAkBCQsFBgQHFAQEAQQEAxcBDQoEDQQNBQkFBxgYGRkZBQMBABEGIQR/AUGAgMAAC38AQZiDwAALfwBB0IbAAAt/AEHQhsAACweSBSIGbWVtb3J5AgAHdXBncmFkZQA6B21pZ3JhdGUAPAphdXRob3JpemVyAD4NX19jb25zdHJ1Y3RvcgA/E2VzdGltYXRlX2ZlZV9ieV9laWQAQRZuYXRpdmVfdG9rZW5fcHJpY2VfdXNkAEoJZ2V0X3ByaWNlAEsbZ2V0X3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAEwRc2V0X3ByaWNlX3VwZGF0ZXIAThtzZXRfcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAUSBzZXRfYXJiaXRydW1fY29tcHJlc3Npb25fcGVyY2VudABSFXNldF9laWRfdG9fbW9kZWxfdHlwZQBTCXNldF9wcmljZQBVFnNldF9wcmljZV9mb3JfYXJiaXRydW0AWBpzZXRfbmF0aXZlX3Rva2VuX3ByaWNlX3VzZABaEGlzX3ByaWNlX3VwZGF0ZXIAWxxhcmJpdHJ1bV9jb21wcmVzc2lvbl9wZXJjZW50AF0SYXJiaXRydW1fcHJpY2VfZXh0AF8RZWlkX3RvX21vZGVsX3R5cGUAYQ9zZXRfdHRsX2NvbmZpZ3MAZAt0dGxfY29uZmlncwBpEmZyZWV6ZV90dGxfY29uZmlncwBsFWlzX3R0bF9jb25maWdzX2Zyb3plbgBtE2V4dGVuZF9pbnN0YW5jZV90dGwAbgVvd25lcgBvDXBlbmRpbmdfb3duZXIAcBJ0cmFuc2Zlcl9vd25lcnNoaXAAcRpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgBzEGFjY2VwdF9vd25lcnNoaXAAdhJyZW5vdW5jZV9vd25lcnNoaXAAeAFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMKkX5pJQAgABCbgICAAEIBIAGtQiCGQgSEIAKtQiCGQgSEEICAgIAAGguEAwIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkACQCAAKAIADgcAAQIDBAUGAAsgAUGAgMCAAEEVEK+AgIAAIAEoAgANByABIAEpAwgQsICAgAAMBgsgAUGVgMCAAEEMEK+AgIAAIAEoAgANBiABIAEpAwggACkDCBCxgICAAAwFCyABQaGAwIAAQREQr4CAgAAgASgCAA0FIAEgASkDCCAANQIEQiCGQgSEELGAgIAADAQLIAFBsoDAgABBEBCvgICAACABKAIADQQgASABKQMIELCAgIAADAMLIAFBwoDAgABBDhCvgICAACABKAIADQMgASABKQMIELCAgIAADAILIAFB0IDAgABBGhCvgICAACABKAIADQIgASABKQMIELCAgIAADAELIAFB6oDAgABBDhCvgICAACABKAIADQEgASABKQMIIAA1AgRCIIZCBIQQsYCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAguNAQIBfwF+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgARCbgICAACIDQgIQnYCAgAANAEIAIQMMAQsgAiADQgIQgYCAgAAQnoCAgAAgAigCAEEBRg0BIAIpAxAhAyAAIAIpAxg3AxggACADNwMQQgEhAwsgACADNwMAIABCADcDCCACQSBqJICAgIAADwsACw8AIAAgARCSgICAAEIBUQt7AgF/AX4CQAJAAkAgAadB/wFxIgJBxABGDQAgAkEKRw0BQgAhAyAAQgA3AxggACABQgiINwMQDAILIAEQmICAgAAhAyABEJmAgIAAIQEgACADNwMYIAAgATcDEEIAIQMMAQsgAEKDkICAgAE3AwhCASEDCyAAIAM3AwALHQAgABCbgICAACABIAIQoICAgABCAhCCgICAABoLQwEBfyOAgICAAEEQayICJICAgIAAIAIgACABEMmAgIAAAkAgAigCAEEBRw0AAAsgAikDCCEBIAJBEGokgICAgAAgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCigICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQo4CAgAALQQAhAQJAQQAQpICAgAAiAkICEJ2AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQsMACAAQQEQ/YCAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQk4CAgAAaC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUGahcCAAEEGEK+AgIAAIAEoAgANAyABIAEpAwgQsICAgAAMAgsgAUGghcCAAEEIEK+AgIAAIAEoAgANAiABIAEpAwgQsICAgAAMAQsgAUGohcCAAEEKEK+AgIAAIAEoAgANASABIAEpAwgQsICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPABCmgICAABCDgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCigICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQo4CAgAALIAAQqICAgAAgACkDCCEBIAApAwBBiggQqYCAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQqICAgAAgACkDCCEBIAApAwBBiggQqYCAgAAgARCDgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqEKKAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCjgICAAAsgABCugICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQrICAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAEKuAgIAAAkAgACkDAFANAEKDgICAsIEBEKyAgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCigICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQo4CAgAALQgAhAgJAAkBBARCtgICAACIDQgAQnYCAgABFDQAgA0IAEIGAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsACwsAIAAQlICAgAAaC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUGthMCAAEEMEK+AgIAAIAEoAgANAiABIAEpAwgQsICAgAAMAQsgAUGohMCAAEEFEK+AgIAAIAEoAgANASABIAEpAwgQsICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABCtgICAACICQgIQnYCAgABFDQAgAkICEIGAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhD6gICAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQ64CAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEOuAgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC2kBAX8jgICAgABBIGsiAiSAgICAACACQRBqIAAQs4CAgAACQCACKAIQQQFHDQAACyACIAIpAxg3AwggAiABrUIghkIEhDcDAEG4gsCAAEECIAJBAhC0gICAACEAIAJBIGokgICAgAAgAAs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQlYCAgAAhAQsgAEIANwMAIAAgATcDCAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEI2AgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABC2gICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILrQEC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AAALIAAgBDcDECAAIAo3AwAgACADNwMYIAAgCTcDCCAFQYACaiSAgICAAAvPAQIBfwF+I4CAgIAAQSBrIgEkgICAgAAgARCigICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQo4CAgAALIAFBBjYCACABIAA2AgRBACEAAkAgARCbgICAACICQgEQnYCAgABFDQACQAJAAkAgAkIBEIGAgIAAIgJC/wGDQgRSDQAgAkKAgICAMFoNACACQiCIIQIgAUEUahC5gICAACABKAIUDQEMAgsACyABIAEoAhggASgCHBCagICAAAsgAqchAAsgAUEgaiSAgICAACAAC6ECAgF/AX4jgICAgABBwABrIgIkgICAgAAgAkEQahCigICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQo4CAgAALIAJBAjYCACACIAE2AgQCQAJAAkAgAhCbgICAACIDQgEQnYCAgABFDQAgAkEQaiADQgEQgYCAgAAQzYCAgAAgAigCEEEBcUUNAQALIABCADcDCCAAQgA3AwAMAQsgACACKQMgNwMQIABBKGogAkEQakEoaikDADcDACAAQSBqIAJBEGpBIGopAwA3AwAgAEEYaiACQRBqQRhqKQMANwMAIABCADcDCCAAQgE3AwAgAkEQahC5gICAACACKAIQQQFHDQAgAiACKAIUIAIoAhgQmoCAgAALIAJBwABqJICAgIAAC/oDBAF/BX4BfwJ+I4CAgIAAQaABayIBJICAgIAAIAFBgAFqEKKAgIAAAkAgASgCgAFBAUcNACABKAKEASABKAKIARCjgICAAAsgAUEANgJwIAFBgAFqIAFB8ABqEJyAgIAAIAEpA5gBIQIgASkDkAEhAyABKQOAASEEQgohBUIBIQZBFCEHQgAhCEIAIQkCQAJAA0ACQCAHQQFLDQAgAUHAAGogCEIAIAVCABCCgYCAACABQdAAaiAJQgAgBkIAEIKBgIAAIAFB4ABqIAZCACAFQgAQgoGAgAAgCEIAUiAJQgBScSABKQNIQgBSciABKQNYQgBSciABKQNoIgUgASkDQCABKQNQfHwiCSAFVHJFDQIMAwsCQCAHQQFxRQ0AIAFBEGogCEIAIAVCABCCgYCAACABQSBqIAlCACAGQgAQgoGAgAAgAUEwaiAGQgAgBUIAEIKBgIAAIAhCAFIgCUIAUnEgASkDGEIAUnIgASkDKEIAUnIgASkDOCIGIAEpAxAgASkDIHx8IgggBlRyDQMgASkDMCEGCyABIAUgCSAFIAkQgoGAgAAgB0EBdiEHIAEpAwghCSABKQMAIQUMAAsLIAEpA2AhBSAAIAIgCSAEp0EBcSIHGzcDCCAAIAMgBSAHGzcDACABQaABaiSAgICAAA8LEMeAgIAAAAsJABD5gICAAAALigEDAX8BfgF/I4CAgIAAQTBrIgEkgICAgAAgAUEQahCigICAAAJAIAEoAhBBAUcNACABKAIUIAEoAhgQo4CAgAALIAFBBDYCACABQRBqIAEQnICAgAAgASkDICECIAAgASkDKEIAIAEoAhBBAXEiAxs3AwggACACQgAgAxs3AwAgAUEwaiSAgICAAAtGAAJAAkAgAUL//////////wBWIAJCAFIgAlAbDQAgAUIIhkIKhCECDAELIAIgARCXgICAACECCyAAQgA3AwAgACACNwMICz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQyICAgAAgACkDACAAKQMIEKCAgIAAIQEgAEEQaiSAgICAACABC3kBAX8jgICAgABBwABrIgEkgICAgAACQCAAQv8Bg0IEUg0AIAEgAEIgiKcQxYCAgAACQAJAIAEoAgBBAXENAEICIQAMAQsgAUEwaiABQRBqELaAgIAAIAEoAjBBAXENASABKQM4IQALIAFBwABqJICAgIAAIAAPCwALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDGgICAACAAKQMAIAApAwgQoICAgAAhASAAQRBqJICAgIAAIAELgQICAn8DfiOAgICAAEHAAGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUHkhcCAAEEDIAJBCGpBAxDUgICAACACKQMIIgFC/wGDQgRSDQAgAkEgaiACKQMQEOOAgIAAIAIoAiANACACKQMoIQYgAkEgaiACKQMYEJ6AgIAAIAIoAiBBAUYNACACKQMwIQQgACACKQM4NwMYIAAgBDcDECAAIAFCIIinNgIoIAAgBjcDIEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJBwABqJICAgIAAC/IBAQJ/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNABClgICAACACEKKAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBCjgICAAAsCQAJAIANBAXENACACQQE2AgAgAiAANwMIIAIQm4CAgABCARCHgICAABoMAQsgABC4gICAAAtB+IDAgABBERDPgICAABDQgICAACEBIAIgADcDCCACIAOtNwMAIAFBmIHAgABBAiACQQIQtICAgAAQiICAgAAaIAJBEGokgICAgABCAg8LAAtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARD6gICAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEOuAgIAAIQAgAUEQaiSAgICAACAAC6MBAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQnoCAgAACQAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEKWAgIAAIAEQooCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKOAgIAACyACIACEQgBRDQEgAUEANgIAIAEgAiAAEJ+AgIAAIAFBIGokgICAgABCAg8LAAtCg4CAgBAQrICAgAAAC4kBAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQnoCAgAACQCABKAIAQQFGDQAgASkDGCEAIAEpAxAhAhClgICAACABEKKAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCjgICAAAsgAUEFNgIAIAEgAiAAEJ+AgIAAIAFBIGokgICAgABCAg8LAAuXAwUBfwN+AX8BfgF/I4CAgIAAQSBrIgEkgICAgAACQCAAQv8Bg0LLAFINABClgICAACABEKKAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCjgICAAAsgABCJgICAAEIgiCECQgAhAwNAAkACQAJAIAMgAlENACAAIANCIIZCBIQQioCAgAAhBEEAIQUCQANAIAVBEEYNASABIAVqQgI3AwAgBUEIaiEFDAALC0EDIQUgBEL/AYNCzABSDQEgBEGIg8CAAEECIAFBAhDUgICAACABKQMAIgRC/wGDQgRSDQEgASkDCCIGQv8Bg0IEUg0CIARCIIinIQcgBkIgiKciBUEDIAVBA0kbIQUMAgsgAUEgaiSAgICAAEICDwsLAkAgA0L/////D1ENACAFQQNGDQAgAUEGNgIAIAEgBzYCBCABEJuAgIAAIAWtQiCGQgSEQgEQgoCAgAAaIAFBFGoQuYCAgAACQCABKAIUQQFHDQAgASABKAIYIAEoAhwQmoCAgAALIANCAXwhAwwBCwsQx4CAgAAACwALMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEI6AgIAAGguoBAUBfwF+An8BfgR/I4CAgIAAQYABayICJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LLAFINACACQdAAahCigICAAAJAIAIoAlBBAUcNACACKAJUIAIoAlgQo4CAgAALIAAQ1oCAgAAgARCJgICAAEIgiCEDQgAhACACQdAAakEQaiIEQQhqIQUCQANAIAAgA1ENASABIABCIIZCBIQQioCAgAAhBkEAIQcCQANAIAdBEEYNASACQcAAaiAHakICNwMAIAdBCGohBwwACwtBASEIAkACQCAGQv8Bg0LMAFENAAwBCyAGQcyCwIAAQQIgAkHAAGpBAhDUgICAACACKQNAIgZC/wGDQgRSDQAgAkHQAGogAikDSBDNgICAACACKAJQIghBAXENACAGQiCIpyEHIAJBIGpBGGogBEEYaikDADcDACACQSBqQRBqIARBEGopAwA3AwAgAiAEKQMANwMgIAIgBSkDADcDKAsgAEL/////D1ENAyACQRhqIgkgAkEgakEYaikDADcDACACQRBqIgogAkEgakEQaikDADcDACACIAIpAyg3AwggAiACKQMgNwMAIAhBAXENAyACQdAAakEYaiAJKQMANwMAIAQgCikDADcDACACIAIpAwg3A1ggAiACKQMANwNQIAIgBzYCcCAHIAJB0ABqENeAgIAAIABCAXwhAAwACwsgAkGAAWokgICAgABCAg8LAAsQx4CAgAAAC20BAX8jgICAgABBEGsiASSAgICAACAAEIOAgIAAGiABEKiAgIAAAkACQAJAIAEoAgBBAUcNACABKQMIIAAQ4oCAgAANAQsgABDcgICAAEUNAQsgAUEQaiSAgICAAA8LQoOAgIDAABCsgICAAAALggICAX8BfiOAgICAAEHAAGsiAiSAgICAACACQQI2AgAgAiAANgIEIAIQm4CAgAAgARC1gICAAEIBEIKAgIAAGiACQTBqELmAgIAAAkAgAigCMEEBRw0AIAIgAigCNCACKAI4EJqAgIAACyACQRBqIAFBEGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAIgASkDADcDACACIAFBCGopAwA3AwggAiAANgIgQaiBwIAAQQ0Qz4CAgAAQ0ICAgAAhAyACIAIQtYCAgAA3AzggAiAArUIghkIEhDcDMCADQcSBwIAAQQIgAkEwakECELSAgIAAEIiAgIAAGiACQcAAaiSAgICAAAvkAwMCfwF+AX8jgICAgABBkAFrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEAIQMCQANAIANBGEYNASACQcgAaiADakICNwMAIANBCGohAwwACwsgAUL/AYNCzABSDQAgAUHkgsCAAEEDIAJByABqQQMQ1ICAgAAgAikDSCIEQv8Bg0IEUg0AIAIgAikDUBDZgICAACACKAIAQQFGDQAgAigCECEDIAIpAwghASACQeAAaiACKQNYEM2AgIAAIAIoAmBBAXENACACQRhqIAJBiAFqKQMANwMAIAJBEGogAkGAAWopAwA3AwAgAiACKQNwNwMAIAIgAkHgAGpBGGopAwA3AwggAiAEQiCIpyIFNgIwIAIgAzYCKCACIAE3AyAgAkHgAGoQooCAgAACQCACKAJgQQFHDQAgAigCZCACKAJoEKOAgIAACyAAENaAgIAAIAUgAhDXgICAACACQQM2AmAgAkHgAGoQm4CAgAAgASADELKAgIAAQgIQgoCAgAAaQdSBwIAAQRoQz4CAgAAQ0ICAgAAhACABIAMQsoCAgAAhASACIAWtQiCGQgSENwNoIAIgATcDYCAAQYCCwIAAQQIgAkHgAGpBAhC0gICAABCIgICAABogAkGQAWokgICAgABCAg8LAAu4AQICfwF+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUG4gsCAAEECIAJBAhDUgICAACACKQMAIgFC/wGDQgRSDQAgAkEQaiACKQMIEOOAgIAAIAIoAhANACACKQMYIQQgACABQiCIpzYCECAAIAQ3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAuXAQIBfwF+I4CAgIAAQSBrIgIkgICAgAACQCAAQv8Bg0LNAFINACACIAEQnoCAgAAgAigCAEEBRg0AIAIpAxghASACKQMQIQMgAhCigICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQo4CAgAALIAAQ1oCAgAAgAkEENgIAIAIgAyABEJ+AgIAAIAJBIGokgICAgABCAg8LAAsbAAJAIABC/wGDQs0AUQ0AAAsgABDcgICAAK0LlAEBAn8jgICAgABBIGsiASSAgICAACABEKKAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCjgICAAAsgAUEBNgIAIAEgADcDCAJAIAEQm4CAgABCARCdgICAACICRQ0AIAFBFGoQuYCAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEJqAgIAACyABQSBqJICAgIAAIAILPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDegICAACAAKQMAIAApAwgQoICAgAAhASAAQRBqJICAgIAAIAELigEDAX8BfgF/I4CAgIAAQTBrIgEkgICAgAAgAUEQahCigICAAAJAIAEoAhBBAUcNACABKAIUIAEoAhgQo4CAgAALIAFBBTYCACABQRBqIAEQnICAgAAgASkDICECIAAgASkDKEIAIAEoAhBBAXEiAxs3AwggACACQi8gAxs3AwAgAUEwaiSAgICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEOCAgIAAIAApAwAgACgCCBCygICAACEBIABBEGokgICAgAAgAQu6AQMBfwF+AX8jgICAgABBMGsiASSAgICAACABQRhqEKKAgIAAAkAgASgCGEEBRw0AIAEoAhwgASgCIBCjgICAAAsgAUEDNgIIAkACQAJAIAFBCGoQm4CAgAAiAkICEJ2AgIAADQBCACECQQAhAwwBCyABQRhqIAJCAhCBgICAABDZgICAACABKAIYQQFGDQEgASgCKCEDIAEpAyAhAgsgACADNgIIIAAgAjcDACABQTBqJICAgIAADwsACyQAAkAgAEL/AYNCBFENAAALIABCIIinEMSAgIAArUIghkIEhAsNACAAIAEQj4CAgABQC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQloCAgAAhAQsgACADNwMAIAAgATcDCAviBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQ5YCAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDlgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEKKAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBCjgICAAAsQpYCAgAACQAJAAkAQoYCAgAANABDmgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABCsgICAAAALQoOAgIDA/wAQrICAgAAACwJAAkAgAigCCEEBRw0AQQEgAigCDCACKAIQEOeAgIAADAELQQEQpICAgABCAhCHgICAABoLAkACQCACKAIYQQFHDQBBAiACKAIcIAIoAiAQ54CAgAAMAQtBAhCkgICAAEICEIeAgIAAGgsgAkEoakEIaiACQQhqQQhqKAIANgIAIAJBPGogAkEYakEIaigCADYCACACIAIpAwg3AyggAiACKQMYNwI0QdSEwIAAQQ8Qz4CAgAAQ0ICAgAAhACACQShqEOiAgIAAIQEgAiACQTRqEOiAgIAANwNIIAIgATcDQCAAQfiEwIAAQQIgAkHAAGpBAhC0gICAABCIgICAABogAkHQAGokgICAgABCAg8LAAtoAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAFCAlENACACQQRqIAEQ+4CAgAACQCACKAIERQ0AIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiSAgICAAAszAQJ+EJCAgIAAIQACQBCRgICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxDHgICAAAALVgIBfwF+I4CAgIAAQRBrIgMkgICAgAAgABCkgICAACEEIAMgASACEPyAgIAAAkAgAygCAEEBRw0AAAsgBCADKQMIQgIQgoCAgAAaIANBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEOqAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQooCAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQEKOAgIAACyAAQQhqEKKAgIAAIABBFGoiARC5gICAACAAQTBqIABBCGoQ6oCAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEOqAgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhDrgICAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ/ICAgAAPCyAAQgA3AwAgAEICNwMICxoAIACtQiCGQgSEIAGtQiCGQgSEEIuAgIAAC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCigICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQo4CAgAALEKWAgIAAAkAQoYCAgABFDQBCg4CAgOD/ABCsgICAAAALQQAQpICAgABCAUICEIKAgIAAGkGIhcCAAEESEM+AgIAAENCAgIAAQQRBACAAQRhqQQAQtICAgAAQiICAgAAaIABBIGokgICAgABCAgsJABChgICAAK0LMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQo4CAgABCAg8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEKiAgIAAIAApAwAgACkDCBC3gICAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAIAApAwAgACkDCBC3gICAACEBIABBEGokgICAgAAgAQt9AgF/AX4jgICAgABBEGsiASSAgICAAAJAIABC/wGDQs0AUg0AIAFBBGoQooCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKOAgIAACxCngICAACECEKqAgIAAIAAQwICAgAAgAiAAEPKAgIAAIAFBEGokgICAgABCAg8LAAthAgF/AX4jgICAgABBEGsiAiSAgICAAEGhg8CAAEEVEM+AgIAAENCAgIAAIQMgAiAANwMIIAIgATcDACADQciDwIAAQQIgAkECELSAgIAAEIiAgIAAGiACQRBqJICAgIAAC9wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJBCGoQooCAgAACQCACKAIIQQFHDQAgAigCDCACKAIQEKOAgIAACxCngICAACEDAkACQCABQv////8PVg0AIAJBCGoQq4CAgAAgAikDECEBIAIpAwhBiAgQqYCAgAAgASAAEOKAgIAARQ0DEPSAgIAADAELEOaAgIAAIAFCIIinSQ0DQQEgAEIAEPWAgIAAQQEQrYCAgABCACABQoSAgIBwgyIBIAEQgICAgAAaQdiDwIAAQRYQz4CAgAAQ0ICAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQfSDwIAAQQMgAkEIakEDELSAgIAAEIiAgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABEKyAgIAAAAtCg4CAgPCAARCsgICAAAALEwBBARCtgICAAEIAEIeAgIAAGgsVACAAEK2AgIAAIAEgAhCCgICAABoLpwECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQooCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKOAgIAACyAAEKuAgIAAIAApAwghASAAKQMAQYgIEKmAgIAAIAEQg4CAgAAaIAAQroCAgAACQCAAKAIADQAQ94CAgAAACyAAKQMIIQIQ9ICAgAAgARDAgICAACACIAEQ8oCAgAAgAEEQaiSAgICAAEICCwkAEMeAgIAAAAugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCigICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQo4CAgAALEKeAgIAAIQEQqoCAgABBABCtgICAAEICEIeAgIAAGkGMhMCAAEETEM+AgIAAENCAgIAAIQIgACABNwMAIAJBoITAgABBASAAQQEQtICAgAAQiICAgAAaIABBEGokgICAgABCAgsDAAAL2wECAX4EfwJAAkAgAkEJSw0AQgAhAyACIQQgASEFA0ACQCAEDQAgA0IIhkIOhCEDDAMLQQEhBgJAIAUtAAAiB0HfAEYNAAJAIAdBUGpB/wFxQQpJDQACQCAHQb9/akH/AXFBGkkNACAHQZ9/akH/AXFBGUsNBCAHQUVqIQYMAgsgB0FLaiEGDAELIAdBUmohBgsgA0IGhiAGrUL/AYOEIQMgBEF/aiEEIAVBAWohBQwACwsgAa1CIIZCBIQgAq1CIIZCBIQQjICAgAAhAwsgAEIANwMAIAAgAzcDCAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUHEhMCAAEECIAJBAhDUgICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQcSEwIAAQQIgA0ECELSAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC3cCAn8BfiOAgICAAEEQayICJICAgIAAQQAhAwJAAkAgARCkgICAACIEQgIQnYCAgABFDQAgAkEEaiAEQgIQgYCAgAAQ+4CAgABBASEDIAIoAgRBAUYNASAAIAIpAgg3AgQLIAAgAzYCACACQRBqJICAgIAADwsAC1cBAX4CQAJAIANBwABxDQAgA0UNASACQQAgA2tBP3GthiABIANBP3GtIgSIhCEBIAIgBIghAgwBCyACIANBP3GtiCEBQgAhAgsgACABNwMAIAAgAjcDCAtXAQF+AkACQCADQcAAcQ0AIANFDQEgAiADQT9xrSIEhiABQQAgA2tBP3GtiIQhAiABIASGIQEMAQsgASADQT9xrYYhAkIAIQELIAAgATcDACAAIAI3AwgL0QgEAX8BfgN/BH4jgICAgABBsAFrIgUkgICAgABCACEGAkACQAJAAkACQCAEeSADeULAAHwgBEIAUhunIgcgAnkgAXlCwAB8IAJCAFIbpyIITQ0AIAhBP0sNASAHQd8ASw0CIAcgCGtBIEkNAyAFQaABaiADIARB4AAgB2siCRD+gICAACAFNQKgAUIBfCEKQgAhC0IAIQYCQAJAAkACQANAIAVBkAFqIAEgAkHAACAIayIIEP6AgIAAIAUpA5ABIQwCQCAIIAlPDQAgBUHQAGogAyAEIAgQ/oCAgAACQAJAIAUpA1AiClBFDQAMAQsgDCAKgCEMCyAFQcAAaiADIAQgDEIAEIKBgIAAAkAgASAFKQNAIg1UIgggAiAFKQNIIgpUIAIgClEbDQAgAiAKfSAIrX0hAiABIA19IQEgBiALIAx8IgwgC1StfCEGDAsLIAIgBHwgASADfCIEIAFUrXwgCn0gBCANVK19IQIgBCANfSEBIAYgDCALfEJ/fCIMIAtUrXwhBgwKCyAFQYABaiAMIAqAIgxCACAIIAlrIggQ/4CAgAAgBUHwAGogAyAEIAxCABCCgYCAACAFQeAAaiAFKQNwIAUpA3ggCBD/gICAACAFKQOIASAGfCAFKQOAASIGIAt8IgsgBlStfCEGIAcgAiAFKQNofSABIAUpA2AiDFStfSICeSABIAx9IgF5QsAAfCACQgBSG6ciCE0NASAIQT9NDQALIANQRQ0BDAILIAEgA1QiCCACIARUIAIgBFEbRQ0CIAshDAwHCyABIAOAIQILIAEgA4IhASAGIAsgAnwiDCALVK18IQZCACECDAULIAIgBH0gCK19IQIgASADfSEBIAYgC0IBfCIMUK18IQYMBAsgAiAEQgAgASADWiACIARaIAIgBFEbIggbfSABIANCACAIGyIEVK19IQIgASAEfSEBIAitIQwMAwsgASABIAOAIgwgA359IQFCACEGQgAhAgwCCyACIAIgA0L/////D4MiBIAiBiADfn1CIIYgAUIgiCIMhCAEgCICQiCGIAwgAiADfn1CIIYgAUL/////D4OEIgEgBIAiA4QhDCABIAMgBH59IQEgAkIgiCAGhCEGQgAhAgwBCyAFQTBqIAMgBEHAACAIayIIEP6AgIAAIAVBIGogASACIAgQ/oCAgABCACEGIAVBEGogA0IAIAUpAyAgBSkDMIAiDEIAEIKBgIAAIAUgBEIAIAxCABCCgYCAACAFKQMQIQoCQAJAIAUpAwggBSkDGCINIAUpAwB8IgsgDVStfEIAUg0AIAEgClQiCCACIAtUIAIgC1EbRQ0BCyAEIAJ8IAMgAXwiASADVK18IAt9IAEgClStfSECIAxCf3whDCABIAp9IQEMAQsgAiALfSAIrX0hAiABIAp9IQFCACEGCyAAIAE3AxAgACAMNwMAIAAgAjcDGCAAIAY3AwggBUGwAWokgICAgAALSAEBfyOAgICAAEEgayIFJICAgIAAIAUgASACIAMgBBCAgYCAACAFKQMAIQQgACAFKQMINwMIIAAgBDcDACAFQSBqJICAgIAAC24BBn4gACADQv////8PgyIFIAFC/////w+DIgZ+IgcgA0IgiCIIIAZ+IgYgBSABQiCIIgl+fCIFQiCGfCIKNwMAIAAgCCAJfiAFIAZUrUIghiAFQiCIhHwgCiAHVK18IAQgAX4gAyACfnx8NwMICwvaBgEAQYCAwAAL0AZQcmljZVJhdGlvRGVub21pbmF0b3JQcmljZVVwZGF0ZXJEZWZhdWx0TW9kZWxQcmljZUFyYml0cnVtUHJpY2VFeHROYXRpdmVQcmljZVVTREFyYml0cnVtQ29tcHJlc3Npb25QZXJjZW50RWlkVG9Nb2RlbFR5cGVwcmljZV91cGRhdGVyX3NldGFjdGl2ZXVwZGF0ZXIAAIkAEAAGAAAAjwAQAAcAAABwcmljZV91cGRhdGVkZHN0X2VpZHByaWNlAAAAtQAQAAcAAAC8ABAABQAAAGFyYml0cnVtX3ByaWNlX2V4dF91cGRhdGVkYXJiaXRydW1fcHJpY2VfZXh07gAQABIAAAC1ABAABwAAAGdhc19wZXJfbDFfY2FsbGRhdGFfYnl0ZWdhc19wZXJfbDJfdHgAAAAQARAAGAAAACgBEAANAAAAZWlkAEgBEAADAAAAvAAQAAUAAABleHRlbmQAAEgBEAADAAAAXAEQAAYAAAC8ABAABQAAAG1vZGVsX3R5cGUAALUAEAAHAAAAfAEQAAoAAAB0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXK2ARAACQAAAL8BEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAALYBEAAJAAAAvwEQAAkAAADuARAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAvwEQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAOQIQAAkAAACYARAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAGMCEAAIAAAAawIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmdnYXNfcGVyX2J5dGVnYXNfcHJpY2VfaW5fdW5pdHByaWNlX3JhdGlvALsCEAAMAAAAxwIQABEAAADYAhAACwAAAG5hdGl2ZV9wcmljZV91c2RwcmljZV9yYXRpb19kZW5vbWluYXRvcnRvdGFsX2dhc19mZWX8AhAAEAAAANgCEAALAAAADAMQABcAAAAjAxAADQAAAACnggEOY29udHJhY3RzcGVjdjAAAAACAAAAAAAAAAAAAAAQUHJpY2VGZWVkU3RvcmFnZQAAAAcAAAAAAAAAAAAAABVQcmljZVJhdGlvRGVub21pbmF0b3IAAAAAAAABAAAAAAAAAAxQcmljZVVwZGF0ZXIAAAABAAAAEwAAAAEAAAAAAAAAEURlZmF1bHRNb2RlbFByaWNlAAAAAAAAAQAAAAQAAAAAAAAAAAAAABBBcmJpdHJ1bVByaWNlRXh0AAAAAAAAAAAAAAAOTmF0aXZlUHJpY2VVU0QAAAAAAAAAAAAAAAAAGkFyYml0cnVtQ29tcHJlc3Npb25QZXJjZW50AAAAAAABAAAAAAAAAA5FaWRUb01vZGVsVHlwZQAAAAAAAQAAAAQAAAAEAAAAAAAAAAAAAAAOUHJpY2VGZWVkRXJyb3IAAAAAAAUAAAAAAAAAEkludmFsaWREZW5vbWluYXRvcgAAAAAAAQAAAAAAAAAHTm9QcmljZQAAAAACAAAAAAAAAAxOb3RBbk9wU3RhY2sAAAADAAAAAAAAABBPbmx5UHJpY2VVcGRhdGVyAAAABAAAAAAAAAAIT3ZlcmZsb3cAAAAFAAAABQAAAAAAAAAAAAAAD1ByaWNlVXBkYXRlclNldAAAAAABAAAAEXByaWNlX3VwZGF0ZXJfc2V0AAAAAAAAAgAAAAAAAAAHdXBkYXRlcgAAAAATAAAAAAAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAMUHJpY2VVcGRhdGVkAAAAAQAAAA1wcmljZV91cGRhdGVkAAAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAFcHJpY2UAAAAAAAfQAAAABVByaWNlAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXQXJiaXRydW1QcmljZUV4dFVwZGF0ZWQAAAAAAQAAABphcmJpdHJ1bV9wcmljZV9leHRfdXBkYXRlZAAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAASYXJiaXRydW1fcHJpY2VfZXh0AAAAAAfQAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAAAAAAAgAAAAAAAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAB9AAAAANTWlncmF0aW9uRGF0YQAAAAAAAAAAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAAAAAAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAAAgAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAA1wcmljZV91cGRhdGVyAAAAAAAAEwAAAAAAAAAAAAAAZEVzdGltYXRlIGZlZSB3aXRoIGRldGFpbGVkIGJyZWFrZG93biBieSBlbmRwb2ludCBJRApDb3JyZXNwb25kcyB0byBlc3RpbWF0ZUZlZUJ5RWlkIGluIFByaWNlRmVlZC5zb2wAAAATZXN0aW1hdGVfZmVlX2J5X2VpZAAAAAAEAAAAAAAAAAdmZWVfbGliAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAAAAAAAAA2dhcwAAAAAKAAAAAQAAB9AAAAALRmVlRXN0aW1hdGUAAAAAAAAAACFHZXQgdGhlIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QAAAAAAAAWbmF0aXZlX3Rva2VuX3ByaWNlX3VzZAAAAAAAAAAAAAEAAAAKAAAAAAAAACRHZXQgdGhlIHByaWNlIGZvciBhIGRlc3RpbmF0aW9uIEVJRC4AAAAJZ2V0X3ByaWNlAAAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAA+gAAAfQAAAABVByaWNlAAAAAAAAAAAAACBHZXQgdGhlIHByaWNlIHJhdGlvIGRlbm9taW5hdG9yLgAAABtnZXRfcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAAAAAAAAEAAAAKAAAAAAAAACVTZXQgcHJpY2UgdXBkYXRlciBzdGF0dXMgKG93bmVyIG9ubHkpAAAAAAAAEXNldF9wcmljZV91cGRhdGVyAAAAAAAAAgAAAAAAAAAHdXBkYXRlcgAAAAATAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAACxTZXQgdGhlIHByaWNlIHJhdGlvIGRlbm9taW5hdG9yIChvd25lciBvbmx5KQAAABtzZXRfcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAAAQAAAAAAAAALZGVub21pbmF0b3IAAAAACgAAAAAAAAAAAAAANFNldCB0aGUgQXJiaXRydW0gY29tcHJlc3Npb24gcGVyY2VudGFnZSAob3duZXIgb25seSkAAAAgc2V0X2FyYml0cnVtX2NvbXByZXNzaW9uX3BlcmNlbnQAAAABAAAAAAAAABNjb21wcmVzc2lvbl9wZXJjZW50AAAAAAoAAAAAAAAAAAAAADhTZXQgdGhlIGZlZSBtb2RlbCB0eXBlIGZvciBkZXN0aW5hdGlvbiBFSURzIChvd25lciBvbmx5KQAAABVzZXRfZWlkX3RvX21vZGVsX3R5cGUAAAAAAAABAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAFlNldEVpZFRvTW9kZWxUeXBlUGFyYW0AAAAAAAAAAAAAAAAAPVNldCBwcmljZXMgZm9yIG11bHRpcGxlIGRlc3RpbmF0aW9ucyAocHJpY2UgdXBkYXRlciBvciBvd25lcikAAAAAAAAJc2V0X3ByaWNlAAAAAAAAAgAAAAAAAAANcHJpY2VfdXBkYXRlcgAAAAAAABMAAAAAAAAABnByaWNlcwAAAAAD6gAAB9AAAAALVXBkYXRlUHJpY2UAAAAAAAAAAAAAAAByU2V0IHByaWNlIGZvciBBcmJpdHJ1bSB3aXRoIGV4dGVuc2lvbiAocHJpY2UgdXBkYXRlciBvciBvd25lcikKQ29ycmVzcG9uZHMgdG8gc2V0UHJpY2VGb3JBcmJpdHJ1bSBpbiBQcmljZUZlZWQuc29sAAAAAAAWc2V0X3ByaWNlX2Zvcl9hcmJpdHJ1bQAAAAAAAgAAAAAAAAANcHJpY2VfdXBkYXRlcgAAAAAAABMAAAAAAAAABnVwZGF0ZQAAAAAH0AAAAA5VcGRhdGVQcmljZUV4dAAAAAAAAAAAAAAAAACoU2V0IHRoZSBuYXRpdmUgdG9rZW4gcHJpY2UgaW4gVVNEIChwcmljZSB1cGRhdGVyIG9yIG93bmVyKS4KCktlcHQgYXMgYSBzdGFuZGFsb25lIGNvbnRyYWN0IGZ1bmN0aW9uIChub3QgcGFydCBvZiB0aGUgY2Fub25pY2FsIGB3b3JrZXI6OklMYXllclplcm9QcmljZUZlZWRgIGludGVyZmFjZSkuAAAAGnNldF9uYXRpdmVfdG9rZW5fcHJpY2VfdXNkAAAAAAACAAAAAAAAAA1wcmljZV91cGRhdGVyAAAAAAAAEwAAAAAAAAAWbmF0aXZlX3Rva2VuX3ByaWNlX3VzZAAAAAAACgAAAAAAAAAAAAAALkNoZWNrIGlmIGFuIGFkZHJlc3MgaXMgYW4gYWN0aXZlIHByaWNlIHVwZGF0ZXIAAAAAABBpc19wcmljZV91cGRhdGVyAAAAAQAAAAAAAAAHdXBkYXRlcgAAAAATAAAAAQAAAAEAAAAAAAAAJEdldCB0aGUgQXJiaXRydW0gY29tcHJlc3Npb24gcGVyY2VudAAAABxhcmJpdHJ1bV9jb21wcmVzc2lvbl9wZXJjZW50AAAAAAAAAAEAAAAKAAAAAAAAACBHZXQgdGhlIEFyYml0cnVtIHByaWNlIGV4dGVuc2lvbgAAABJhcmJpdHJ1bV9wcmljZV9leHQAAAAAAAAAAAABAAAH0AAAABBBcmJpdHJ1bVByaWNlRXh0AAAAAAAAAChHZXQgdGhlIG1vZGVsIHR5cGUgZm9yIGEgZGVzdGluYXRpb24gRUlEAAAAEWVpZF90b19tb2RlbF90eXBlAAAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAB9AAAAAJTW9kZWxUeXBlAAAAAAAAAQAAACFBcmJpdHJ1bS1zcGVjaWZpYyBwcmljZSBleHRlbnNpb24AAAAAAAAAAAAAEEFyYml0cnVtUHJpY2VFeHQAAAACAAAAQUdhcyBjb3N0IHBlciBieXRlIG9mIEwxIGNhbGxkYXRhIChmb3IgQXJiaXRydW0ncyBMMSBkYXRhIHBvc3RpbmcpAAAAAAAAGGdhc19wZXJfbDFfY2FsbGRhdGFfYnl0ZQAAAAQAAAAfR2FzIG92ZXJoZWFkIHBlciBMMiB0cmFuc2FjdGlvbgAAAAANZ2FzX3Blcl9sMl90eAAAAAAAAAYAAAABAAAAJVBhcmFtZXRlciBmb3IgdXBkYXRpbmcgYSBzaW5nbGUgcHJpY2UAAAAAAAAAAAAAC1VwZGF0ZVByaWNlAAAAAAIAAAAXRGVzdGluYXRpb24gZW5kcG9pbnQgSUQAAAAAA2VpZAAAAAAEAAAAJVByaWNlIGluZm9ybWF0aW9uIGZvciB0aGUgZGVzdGluYXRpb24AAAAAAAAFcHJpY2UAAAAAAAfQAAAABVByaWNlAAAAAAAAAQAAADRQYXJhbWV0ZXIgZm9yIHVwZGF0aW5nIEFyYml0cnVtIHByaWNlIHdpdGggZXh0ZW5zaW9uAAAAAAAAAA5VcGRhdGVQcmljZUV4dAAAAAAAAwAAADhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoc2hvdWxkIGJlIGFuIEFyYml0cnVtIGVuZHBvaW50KQAAAANlaWQAAAAABAAAACNBcmJpdHJ1bS1zcGVjaWZpYyBwcmljaW5nIGV4dGVuc2lvbgAAAAAGZXh0ZW5kAAAAAAfQAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAlUHJpY2UgaW5mb3JtYXRpb24gZm9yIHRoZSBkZXN0aW5hdGlvbgAAAAAAAAVwcmljZQAAAAAAB9AAAAAFUHJpY2UAAAAAAAADAAAAMEZlZSBtb2RlbCB0eXBlIGZvciBkaWZmZXJlbnQgY2hhaW4gYXJjaGl0ZWN0dXJlcwAAAAAAAAAJTW9kZWxUeXBlAAAAAAAAAwAAAAAAAAAHRGVmYXVsdAAAAAAAAAAAAAAAAAhBcmJTdGFjawAAAAEAAAAAAAAAB09wU3RhY2sAAAAAAgAAAAEAAAAvUGFyYW1ldGVyIGZvciBzZXR0aW5nIEVJRCB0byBtb2RlbCB0eXBlIG1hcHBpbmcAAAAAAAAAABZTZXRFaWRUb01vZGVsVHlwZVBhcmFtAAAAAAACAAAAF0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEAAAAAAdkc3RfZWlkAAAAAAQAAAAjRmVlIG1vZGVsIHR5cGUgZm9yIHRoaXMgZGVzdGluYXRpb24AAAAACm1vZGVsX3R5cGUAAAAAB9AAAAAJTW9kZWxUeXBlAAAAAAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAErVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAABAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBoAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAABAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAAAABAAAABZXb3JrZXJFcnJvcjogMTIwMC0xMjk5AAAAAAAAAAAAC1dvcmtlckVycm9yAAAAABMAAAAAAAAAEkFkbWluQWxyZWFkeUV4aXN0cwAAAAAEsAAAAAAAAAANQWRtaW5Ob3RGb3VuZAAAAAAABLEAAAAAAAAAEkFscmVhZHlPbkFsbG93bGlzdAAAAAAEsgAAAAAAAAARQWxyZWFkeU9uRGVueWxpc3QAAAAAAASzAAAAAAAAABtBdHRlbXB0aW5nVG9SZW1vdmVPbmx5QWRtaW4AAAAEtAAAAAAAAAAURGVwb3NpdEFkZHJlc3NOb3RTZXQAAAS1AAAAAAAAABpNZXNzYWdlTGliQWxyZWFkeVN1cHBvcnRlZAAAAAAEtgAAAAAAAAAWTWVzc2FnZUxpYk5vdFN1cHBvcnRlZAAAAAAEtwAAAAAAAAAQTm9BZG1pbnNQcm92aWRlZAAABLgAAAAAAAAACk5vdEFsbG93ZWQAAAAABLkAAAAAAAAADk5vdE9uQWxsb3dsaXN0AAAAAAS6AAAAAAAAAA1Ob3RPbkRlbnlsaXN0AAAAAAAEuwAAAAAAAAAUUGF1c2VTdGF0dXNVbmNoYW5nZWQAAAS8AAAAAAAAAA9QcmljZUZlZWROb3RTZXQAAAAEvQAAAAAAAAAMUmVJbml0aWFsaXplAAAEvgAAAAAAAAAMVW5hdXRob3JpemVkAAAEvwAAAAAAAAAVVW5zdXBwb3J0ZWRNZXNzYWdlTGliAAAAAAAEwAAAAAAAAAASV29ya2VyRmVlTGliTm90U2V0AAAAAATBAAAAAAAAAA5Xb3JrZXJJc1BhdXNlZAAAAAAEwgAAAAUAAAAAAAAAAAAAAAhTZXRBZG1pbgAAAAEAAAAJc2V0X2FkbWluAAAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAWU2V0U3VwcG9ydGVkTWVzc2FnZUxpYgAAAAAAAQAAABlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAAAAAgAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAAAAAAAAAAACXN1cHBvcnRlZAAAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAxTZXRBbGxvd2xpc3QAAAABAAAADXNldF9hbGxvd2xpc3QAAAAAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAAAAAAB2FsbG93ZWQAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAAC1NldERlbnlsaXN0AAAAAAEAAAAMc2V0X2RlbnlsaXN0AAAAAgAAAAAAAAAEb2FwcAAAABMAAAAAAAAAAAAAAAZkZW5pZWQAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAZQYXVzZWQAAAAAAAEAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAZwYXVzZXIAAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAhVbnBhdXNlZAAAAAEAAAAIdW5wYXVzZWQAAAABAAAAAAAAAAh1bnBhdXNlcgAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABdTZXREZWZhdWx0TXVsdGlwbGllckJwcwAAAAABAAAAGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAABAAAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAAAAAACAAAABQAAAAAAAAAAAAAAEVNldERlcG9zaXRBZGRyZXNzAAAAAAAAAQAAABNzZXRfZGVwb3NpdF9hZGRyZXNzAAAAAAEAAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAMU2V0UHJpY2VGZWVkAAAAAQAAAA5zZXRfcHJpY2VfZmVlZAAAAAAAAQAAAAAAAAAKcHJpY2VfZmVlZAAAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAF1NldFN1cHBvcnRlZE9wdGlvblR5cGVzAAAAAAEAAAAac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAADG9wdGlvbl90eXBlcwAAAA4AAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9TZXRXb3JrZXJGZWVMaWIAAAAAAQAAABJzZXRfd29ya2VyX2ZlZV9saWIAAAAAAAEAAAAAAAAAB2ZlZV9saWIAAAAAEwAAAAAAAAACAAAAAQAAAOFQYXJhbWV0ZXJzIGZvciBEVk4gZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSB2ZXJpZmljYXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAAADER2bkZlZVBhcmFtcwAAAAoAAAAnTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQuAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkdhcyBlc3RpbWF0ZSBmb3IgdmVyaWZpY2F0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAANnYXMAAAAACgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAALRFZOIG9wdGlvbnMAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAAJ051bWJlciBvZiByZXF1aXJlZCBzaWduYXR1cmVzIChxdW9ydW0pLgAAAAAGcXVvcnVtAAAAAAAEAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAONQYXJhbWV0ZXJzIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIGV4ZWN1dGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAACUZlZVBhcmFtcwAAAAAAAAsAAAAmU2l6ZSBvZiB0aGUgbWVzc2FnZSBjYWxsZGF0YSBpbiBieXRlcy4AAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADZCYXNlIGdhcyBmb3IgZWFjaCBsekNvbXBvc2UgY2FsbCBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAABNsel9jb21wb3NlX2Jhc2VfZ2FzAAAAAAYAAAETPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpCYXNlIGdhcyBmb3IgbHpSZWNlaXZlIGV4ZWN1dGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAE2x6X3JlY2VpdmVfYmFzZV9nYXMAAAAABgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAsTWF4aW11bSBuYXRpdmUgdG9rZW4gdmFsdWUgdGhhdCBjYW4gYmUgc2VudC4AAAAKbmF0aXZlX2NhcAAAAAAACgAAAEZFbmNvZGVkIGV4ZWN1dG9yIG9wdGlvbnMgKGx6UmVjZWl2ZSBnYXMsIGx6Q29tcG9zZSwgbmF0aXZlRHJvcCwgZXRjLikuAAAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAhEdhcyBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCkNvbnRhaW5zIHRoZSBleGNoYW5nZSByYXRlIGFuZCBnYXMgY29zdHMgbmVlZGVkIGZvciBjcm9zcy1jaGFpbiBmZWUgY2FsY3VsYXRpb25zLgAAAAAAAAAFUHJpY2UAAAAAAAADAAAAN0dhcyBjb3N0IHBlciBieXRlIG9mIGNhbGxkYXRhIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAADGdhc19wZXJfYnl0ZQAAAAQAAABCR2FzIHByaWNlIGluIHRoZSBzbWFsbGVzdCB1bml0ICh3ZWkgZm9yIEVWTSwgc3Ryb29wcyBmb3IgU3RlbGxhcikuAAAAAAARZ2FzX3ByaWNlX2luX3VuaXQAAAAAAAAGAAAAqVByaWNlIHJhdGlvID0gKHJlbW90ZSBuYXRpdmUgdG9rZW4gcHJpY2UgLyBsb2NhbCBuYXRpdmUgdG9rZW4gcHJpY2UpICogUFJJQ0VfUkFUSU9fREVOT01JTkFUT1IuClVzZWQgdG8gY29udmVydCBkZXN0aW5hdGlvbiBjaGFpbiBnYXMgY29zdHMgdG8gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAAAEAAACARmVlIGVzdGltYXRpb24gcmVzdWx0IHdpdGggZGV0YWlsZWQgYnJlYWtkb3duLgoKQ29udGFpbnMgdGhlIGNhbGN1bGF0ZWQgZmVlIGFuZCBhbGwgaW50ZXJtZWRpYXRlIHZhbHVlcyB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAAAC0ZlZUVzdGltYXRlAAAAAAQAAAAwU291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QgKHNjYWxlZCkuAAAAEG5hdGl2ZV9wcmljZV91c2QAAAAKAAAAJVByaWNlIHJhdGlvIHVzZWQgZm9yIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAADJEZW5vbWluYXRvciBmb3IgdGhlIHByaWNlIHJhdGlvICh0eXBpY2FsbHkgMTBeMjApLgAAAAAAF3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAAAAAAoAAAAxVG90YWwgZ2FzIGZlZSBpbiBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHVuaXRzLgAAAAAAAA10b3RhbF9nYXNfZmVlAAAAAAAACwAAAAIAAAAAAAAAAAAAAA1Xb3JrZXJTdG9yYWdlAAAAAAAACwAAAAAAAAAAAAAABlBhdXNlZAAAAAAAAAAAAAAAAAAORGVwb3NpdEFkZHJlc3MAAAAAAAAAAAAAAAAACVByaWNlRmVlZAAAAAAAAAAAAAAAAAAADFdvcmtlckZlZUxpYgAAAAAAAAAAAAAAFERlZmF1bHRNdWx0aXBsaWVyQnBzAAAAAQAAAAAAAAAUU3VwcG9ydGVkT3B0aW9uVHlwZXMAAAABAAAABAAAAAAAAAAAAAAAC01lc3NhZ2VMaWJzAAAAAAEAAAAAAAAACUFsbG93bGlzdAAAAAAAAAEAAAATAAAAAQAAAAAAAAAIRGVueWxpc3QAAAABAAAAEwAAAAAAAAAAAAAADUFsbG93bGlzdFNpemUAAAAAAAAAAAAAAAAAAAZBZG1pbnMAAACLAQ5jb250cmFjdG1ldGF2MAAAAAAAAAAGYmludmVyAAAAAAAFMC4wLjEAAAAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yMy40LjAjNjczZDZjNGYyMzY4ZDI4MmQyNWRhMjliZGE1NWMyMWI4YmU2OWNhNgAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAXAAAAAA==";
13
+ /**
14
+ * Pre-computed WASM hash (SHA-256)
15
+ * Use this when the WASM is already uploaded on-chain
16
+ */
17
+ export declare const WASM_HASH = "cfc1615712a9510f7edc8a62ea2a39bf33e6f9d6717342400e93a23775b55abe";
18
+ /**
19
+ * Get the WASM bytecode as a Buffer
20
+ * Use this to upload the WASM to the network
21
+ */
22
+ export declare function getWasmBuffer(): Buffer;
8
23
  export type PriceFeedStorage = {
9
24
  tag: "PriceRatioDenominator";
10
25
  values: void;
@@ -108,6 +123,9 @@ export interface SetEidToModelTypeParam {
108
123
  */
109
124
  model_type: ModelType;
110
125
  }
126
+ /**
127
+ * BufferReaderError: 1000-1009
128
+ */
111
129
  export declare const BufferReaderError: {
112
130
  1000: {
113
131
  message: string;
@@ -116,43 +134,109 @@ export declare const BufferReaderError: {
116
134
  message: string;
117
135
  };
118
136
  };
137
+ /**
138
+ * BufferWriterError: 1010-1019
139
+ */
119
140
  export declare const BufferWriterError: {
120
- 1100: {
141
+ 1010: {
121
142
  message: string;
122
143
  };
123
144
  };
145
+ /**
146
+ * TtlConfigurableError: 1020-1029
147
+ */
124
148
  export declare const TtlConfigurableError: {
125
- 1200: {
149
+ 1020: {
126
150
  message: string;
127
151
  };
128
- 1201: {
152
+ 1021: {
129
153
  message: string;
130
154
  };
131
- 1202: {
155
+ 1022: {
132
156
  message: string;
133
157
  };
134
158
  };
159
+ /**
160
+ * OwnableError: 1030-1039
161
+ */
135
162
  export declare const OwnableError: {
136
- 1300: {
163
+ 1030: {
164
+ message: string;
165
+ };
166
+ 1031: {
167
+ message: string;
168
+ };
169
+ 1032: {
170
+ message: string;
171
+ };
172
+ 1033: {
137
173
  message: string;
138
174
  };
139
- 1301: {
175
+ 1034: {
176
+ message: string;
177
+ };
178
+ 1035: {
140
179
  message: string;
141
180
  };
142
181
  };
182
+ /**
183
+ * BytesExtError: 1040-1049
184
+ */
143
185
  export declare const BytesExtError: {
144
- 1400: {
186
+ 1040: {
145
187
  message: string;
146
188
  };
147
189
  };
190
+ /**
191
+ * UpgradeableError: 1050-1059
192
+ */
148
193
  export declare const UpgradeableError: {
149
- 1500: {
194
+ 1050: {
150
195
  message: string;
151
196
  };
152
197
  };
198
+ /**
199
+ * MultisigError: 1060-1069
200
+ */
201
+ export declare const MultisigError: {
202
+ 1060: {
203
+ message: string;
204
+ };
205
+ 1061: {
206
+ message: string;
207
+ };
208
+ 1062: {
209
+ message: string;
210
+ };
211
+ 1063: {
212
+ message: string;
213
+ };
214
+ 1064: {
215
+ message: string;
216
+ };
217
+ 1065: {
218
+ message: string;
219
+ };
220
+ 1066: {
221
+ message: string;
222
+ };
223
+ 1067: {
224
+ message: string;
225
+ };
226
+ };
227
+ export type MultisigStorage = {
228
+ tag: "Signers";
229
+ values: void;
230
+ } | {
231
+ tag: "Threshold";
232
+ values: void;
233
+ };
153
234
  export type OwnableStorage = {
154
235
  tag: "Owner";
155
236
  values: void;
237
+ } | {
238
+ tag: "PendingOwner";
239
+ values: void;
156
240
  };
157
241
  /**
158
242
  * TTL configuration: threshold (when to extend) and extend_to (target TTL).
@@ -181,6 +265,9 @@ export type UpgradeableStorage = {
181
265
  tag: "Migrating";
182
266
  values: void;
183
267
  };
268
+ /**
269
+ * WorkerError: 1200-1299
270
+ */
184
271
  export declare const WorkerError: {
185
272
  1200: {
186
273
  message: string;
@@ -477,18 +564,9 @@ export interface Client {
477
564
  simulate?: boolean;
478
565
  }) => Promise<AssembledTransaction<null>>;
479
566
  /**
480
- * 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.
481
- * Extends the instance TTL.
482
- *
483
- * # Arguments
484
- *
485
- * * `threshold` - The threshold to extend the TTL.
486
- * * `extend_to` - The TTL to extend to.
567
+ * Construct and simulate a authorizer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
487
568
  */
488
- extend_instance_ttl: ({ threshold, extend_to }: {
489
- threshold: u32;
490
- extend_to: u32;
491
- }, txnOptions?: {
569
+ authorizer: (txnOptions?: {
492
570
  /**
493
571
  * The fee to pay for the transaction. Default: BASE_FEE
494
572
  */
@@ -501,7 +579,7 @@ export interface Client {
501
579
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
502
580
  */
503
581
  simulate?: boolean;
504
- }) => Promise<AssembledTransaction<null>>;
582
+ }) => Promise<AssembledTransaction<string>>;
505
583
  /**
506
584
  * Construct and simulate a estimate_fee_by_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.
507
585
  * Estimate fee with detailed breakdown by endpoint ID
@@ -806,10 +884,24 @@ export interface Client {
806
884
  simulate?: boolean;
807
885
  }) => Promise<AssembledTransaction<ModelType>>;
808
886
  /**
809
- * 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.
810
- * Returns the current owner address, or None if no owner is set.
887
+ * 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.
888
+ * Sets TTL configs for instance and persistent storage.
889
+ *
890
+ * - `None` values remove the corresponding config (disables auto-extension for that type)
891
+ * - Validates that `threshold <= extend_to <= MAX_TTL`
892
+ *
893
+ * # Arguments
894
+ * - `instance` - TTL config for instance storage
895
+ * - `persistent` - TTL config for persistent storage
896
+ *
897
+ * # Panics
898
+ * - `TtlConfigFrozen` if configs are frozen
899
+ * - `InvalidTtlConfig` if validation fails
811
900
  */
812
- owner: (txnOptions?: {
901
+ set_ttl_configs: ({ instance, persistent }: {
902
+ instance: Option<TtlConfig>;
903
+ persistent: Option<TtlConfig>;
904
+ }, txnOptions?: {
813
905
  /**
814
906
  * The fee to pay for the transaction. Default: BASE_FEE
815
907
  */
@@ -822,14 +914,12 @@ export interface Client {
822
914
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
823
915
  */
824
916
  simulate?: boolean;
825
- }) => Promise<AssembledTransaction<Option<string>>>;
917
+ }) => Promise<AssembledTransaction<null>>;
826
918
  /**
827
- * 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.
828
- * Transfers ownership to a new address. Requires current owner authorization.
919
+ * 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.
920
+ * Returns the current TTL configs as (instance_config, persistent_config).
829
921
  */
830
- transfer_ownership: ({ new_owner }: {
831
- new_owner: string;
832
- }, txnOptions?: {
922
+ ttl_configs: (txnOptions?: {
833
923
  /**
834
924
  * The fee to pay for the transaction. Default: BASE_FEE
835
925
  */
@@ -842,12 +932,18 @@ export interface Client {
842
932
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
843
933
  */
844
934
  simulate?: boolean;
845
- }) => Promise<AssembledTransaction<null>>;
935
+ }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
846
936
  /**
847
- * 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.
848
- * Permanently renounces ownership. Requires current owner authorization.
937
+ * 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.
938
+ * Permanently freezes TTL configs, preventing any future modifications.
939
+ *
940
+ * This is irreversible and provides immutability guarantees to users.
941
+ * Emits `TtlConfigsFrozen` event.
942
+ *
943
+ * # Panics
944
+ * - `TtlConfigAlreadyFrozen` if already frozen
849
945
  */
850
- renounce_ownership: (txnOptions?: {
946
+ freeze_ttl_configs: (txnOptions?: {
851
947
  /**
852
948
  * The fee to pay for the transaction. Default: BASE_FEE
853
949
  */
@@ -862,23 +958,98 @@ export interface Client {
862
958
  simulate?: boolean;
863
959
  }) => Promise<AssembledTransaction<null>>;
864
960
  /**
865
- * 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.
866
- * Sets TTL configs for instance and persistent storage.
867
- *
868
- * - `None` values remove the corresponding config (disables auto-extension for that type)
869
- * - Validates that `threshold <= extend_to <= MAX_TTL`
961
+ * 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.
962
+ * Returns whether TTL configs are frozen.
963
+ */
964
+ is_ttl_configs_frozen: (txnOptions?: {
965
+ /**
966
+ * The fee to pay for the transaction. Default: BASE_FEE
967
+ */
968
+ fee?: number;
969
+ /**
970
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
971
+ */
972
+ timeoutInSeconds?: number;
973
+ /**
974
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
975
+ */
976
+ simulate?: boolean;
977
+ }) => Promise<AssembledTransaction<boolean>>;
978
+ /**
979
+ * 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.
980
+ * Extends the instance TTL.
870
981
  *
871
982
  * # Arguments
872
- * - `instance` - TTL config for instance storage
873
- * - `persistent` - TTL config for persistent storage
983
+ *
984
+ * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
985
+ * * `extend_to` - The TTL to extend to.
986
+ */
987
+ extend_instance_ttl: ({ threshold, extend_to }: {
988
+ threshold: u32;
989
+ extend_to: u32;
990
+ }, txnOptions?: {
991
+ /**
992
+ * The fee to pay for the transaction. Default: BASE_FEE
993
+ */
994
+ fee?: number;
995
+ /**
996
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
997
+ */
998
+ timeoutInSeconds?: number;
999
+ /**
1000
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1001
+ */
1002
+ simulate?: boolean;
1003
+ }) => Promise<AssembledTransaction<null>>;
1004
+ /**
1005
+ * 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.
1006
+ * Returns the current owner address, or None if no owner is set.
1007
+ */
1008
+ owner: (txnOptions?: {
1009
+ /**
1010
+ * The fee to pay for the transaction. Default: BASE_FEE
1011
+ */
1012
+ fee?: number;
1013
+ /**
1014
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1015
+ */
1016
+ timeoutInSeconds?: number;
1017
+ /**
1018
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1019
+ */
1020
+ simulate?: boolean;
1021
+ }) => Promise<AssembledTransaction<Option<string>>>;
1022
+ /**
1023
+ * 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.
1024
+ * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
1025
+ */
1026
+ pending_owner: (txnOptions?: {
1027
+ /**
1028
+ * The fee to pay for the transaction. Default: BASE_FEE
1029
+ */
1030
+ fee?: number;
1031
+ /**
1032
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1033
+ */
1034
+ timeoutInSeconds?: number;
1035
+ /**
1036
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1037
+ */
1038
+ simulate?: boolean;
1039
+ }) => Promise<AssembledTransaction<Option<string>>>;
1040
+ /**
1041
+ * 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.
1042
+ * Transfers ownership immediately to a new address.
1043
+ *
1044
+ * Use with caution - if you transfer to a wrong address, ownership is lost forever.
1045
+ * Consider using `propose_ownership_transfer` instead.
874
1046
  *
875
1047
  * # Panics
876
- * - `TtlConfigFrozen` if configs are frozen
877
- * - `InvalidTtlConfig` if validation fails
1048
+ * - `OwnerNotSet` if no owner is currently set
1049
+ * - `TransferInProgress` if a 2-step transfer is in progress
878
1050
  */
879
- set_ttl_configs: ({ instance, persistent }: {
880
- instance: Option<TtlConfig>;
881
- persistent: Option<TtlConfig>;
1051
+ transfer_ownership: ({ new_owner }: {
1052
+ new_owner: string;
882
1053
  }, txnOptions?: {
883
1054
  /**
884
1055
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -894,10 +1065,27 @@ export interface Client {
894
1065
  simulate?: boolean;
895
1066
  }) => Promise<AssembledTransaction<null>>;
896
1067
  /**
897
- * 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.
898
- * Returns the current TTL configs as (instance_config, persistent_config).
1068
+ * 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.
1069
+ * Proposes an ownership transfer to a new address.
1070
+ *
1071
+ * The new owner must call `accept_ownership()` within `ttl` ledgers
1072
+ * to complete the transfer. The pending transfer will automatically expire after.
1073
+ *
1074
+ * # Arguments
1075
+ * - `new_owner` - The proposed new owner
1076
+ * - `ttl` - Number of ledgers the new owner has to accept.
1077
+ * Use `0` to cancel a pending transfer (new_owner must match pending).
1078
+ *
1079
+ * # Panics
1080
+ * - `OwnerNotSet` if no owner is currently set
1081
+ * - `NoPendingTransfer` when cancelling and no pending transfer exists
1082
+ * - `InvalidTtl` if ttl exceeds max TTL
1083
+ * - `InvalidPendingOwner` when cancelling with wrong new_owner address
899
1084
  */
900
- ttl_configs: (txnOptions?: {
1085
+ propose_ownership_transfer: ({ new_owner, ttl }: {
1086
+ new_owner: string;
1087
+ ttl: u32;
1088
+ }, txnOptions?: {
901
1089
  /**
902
1090
  * The fee to pay for the transaction. Default: BASE_FEE
903
1091
  */
@@ -910,18 +1098,17 @@ export interface Client {
910
1098
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
911
1099
  */
912
1100
  simulate?: boolean;
913
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1101
+ }) => Promise<AssembledTransaction<null>>;
914
1102
  /**
915
- * 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.
916
- * Permanently freezes TTL configs, preventing any future modifications.
1103
+ * 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.
1104
+ * Accepts a pending 2-step ownership transfer.
917
1105
  *
918
- * This is irreversible and provides immutability guarantees to users.
919
- * Emits `TtlConfigsFrozen` event.
1106
+ * Must be called by the pending owner before the TTL expires.
920
1107
  *
921
1108
  * # Panics
922
- * - `TtlConfigAlreadyFrozen` if already frozen
1109
+ * - `NoPendingTransfer` if there is no pending transfer (or it expired)
923
1110
  */
924
- freeze_ttl_configs: (txnOptions?: {
1111
+ accept_ownership: (txnOptions?: {
925
1112
  /**
926
1113
  * The fee to pay for the transaction. Default: BASE_FEE
927
1114
  */
@@ -936,10 +1123,14 @@ export interface Client {
936
1123
  simulate?: boolean;
937
1124
  }) => Promise<AssembledTransaction<null>>;
938
1125
  /**
939
- * 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.
940
- * Returns whether TTL configs are frozen.
1126
+ * 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.
1127
+ * Permanently renounces ownership.
1128
+ *
1129
+ * # Panics
1130
+ * - `OwnerNotSet` if no owner is currently set
1131
+ * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
941
1132
  */
942
- is_ttl_configs_frozen: (txnOptions?: {
1133
+ renounce_ownership: (txnOptions?: {
943
1134
  /**
944
1135
  * The fee to pay for the transaction. Default: BASE_FEE
945
1136
  */
@@ -952,7 +1143,7 @@ export interface Client {
952
1143
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
953
1144
  */
954
1145
  simulate?: boolean;
955
- }) => Promise<AssembledTransaction<boolean>>;
1146
+ }) => Promise<AssembledTransaction<null>>;
956
1147
  }
957
1148
  export declare class Client extends ContractClient {
958
1149
  readonly options: ContractClientOptions;
@@ -975,7 +1166,7 @@ export declare class Client extends ContractClient {
975
1166
  readonly fromJSON: {
976
1167
  upgrade: (json: string) => AssembledTransaction<null>;
977
1168
  migrate: (json: string) => AssembledTransaction<null>;
978
- extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1169
+ authorizer: (json: string) => AssembledTransaction<string>;
979
1170
  estimate_fee_by_eid: (json: string) => AssembledTransaction<FeeEstimate>;
980
1171
  native_token_price_usd: (json: string) => AssembledTransaction<bigint>;
981
1172
  get_price: (json: string) => AssembledTransaction<Option<Price>>;
@@ -991,12 +1182,16 @@ export declare class Client extends ContractClient {
991
1182
  arbitrum_compression_percent: (json: string) => AssembledTransaction<bigint>;
992
1183
  arbitrum_price_ext: (json: string) => AssembledTransaction<ArbitrumPriceExt>;
993
1184
  eid_to_model_type: (json: string) => AssembledTransaction<ModelType>;
994
- owner: (json: string) => AssembledTransaction<Option<string>>;
995
- transfer_ownership: (json: string) => AssembledTransaction<null>;
996
- renounce_ownership: (json: string) => AssembledTransaction<null>;
997
1185
  set_ttl_configs: (json: string) => AssembledTransaction<null>;
998
1186
  ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
999
1187
  freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
1000
1188
  is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
1189
+ extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1190
+ owner: (json: string) => AssembledTransaction<Option<string>>;
1191
+ pending_owner: (json: string) => AssembledTransaction<Option<string>>;
1192
+ transfer_ownership: (json: string) => AssembledTransaction<null>;
1193
+ propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
1194
+ accept_ownership: (json: string) => AssembledTransaction<null>;
1195
+ renounce_ownership: (json: string) => AssembledTransaction<null>;
1001
1196
  };
1002
1197
  }