@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: 29063 bytes (28.38 KB)
11
+ */
12
+ export declare const WASM_BASE64 = "AGFzbQEAAAABjgEZYAJ+fgF+YAN+fn4BfmABfgF+YAABfmAEfn5+fgF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAN/fn4AYAABf2ABfwBgAABgAn5/AGABfgBgBH9/f38BfmADf39/AGACfn4AYAJ/fwF+YAR+fn9/AX5gAn9/AX9gA35/fwBgAn9+AX9gAX8Bf2AFfn9/f38AAs0BIgFsATEAAAFsAV8AAQFhATAAAgF2AV8AAwF2ATYAAAFiATQAAwFiATgAAgFiAV8AAgFiAWYAAQFiAWUAAAFkAV8AAQFiATAAAgF4ATcAAwFsATIAAAF4ATEAAAF4ATAAAAFsATcABAFpAV8AAgFpATAAAgFiATEABAFiATMAAAFpATgAAgFpATcAAgFpATYAAAFiAWoAAAFiATIABAFtATkAAQFtAWEABAF2AWcAAAF4ATMAAwF4ATgAAwFsATAAAAFsATgAAAF4ATUAAgNnZgUGBwUICQAICgsFBgwDAwsNDAsOBgsBCQ8QCBERDg4BCAsLAQMDEhMUCBUIFgECAwADCAEODAAIAxIXBhIMAgICAgMDDAMDAwMDAAgKEBICBgMFBQMDAAMAAwIRAAwJAwMMGBAIEAUDAQARBiEEfwFBgIDAAAt/AEGEg8AAC38AQaaFwAALfwBBsIXAAAsHpwQjBm1lbW9yeQIABXF1b3RlAEEEc2VuZABFCmdldF9jb25maWcATxBpc19zdXBwb3J0ZWRfZWlkAFAQbWVzc2FnZV9saWJfdHlwZQBRCnNldF9jb25maWcAUgd2ZXJzaW9uAFMNX19jb25zdHJ1Y3RvcgBVD3ZhbGlkYXRlX3BhY2tldABYEXNldF9mZWVfcmVjaXBpZW50AGAOc2V0X25hdGl2ZV9mZWUAYQtzZXRfenJvX2ZlZQBiFnNldF93aGl0ZWxpc3RlZF9jYWxsZXIAYwhlbmRwb2ludABkCWxvY2FsX2VpZABlCm5hdGl2ZV9mZWUAZwd6cm9fZmVlAGgNZmVlX3JlY2lwaWVudABpEndoaXRlbGlzdGVkX2NhbGxlcgBqCmF1dGhvcml6ZXIAaw9zZXRfdHRsX2NvbmZpZ3MAbAt0dGxfY29uZmlncwBzEmZyZWV6ZV90dGxfY29uZmlncwB2FWlzX3R0bF9jb25maWdzX2Zyb3plbgB3E2V4dGVuZF9pbnN0YW5jZV90dGwAeAVvd25lcgB5DXBlbmRpbmdfb3duZXIAexJ0cmFuc2Zlcl9vd25lcnNoaXAAfBpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgB+EGFjY2VwdF9vd25lcnNoaXAAgQEScmVub3VuY2Vfb3duZXJzaGlwAIIBAV8DAQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwqaW2ZNAQJ+QgAhAgJAAkAgARCjgICAACIDQgIQpICAgABFDQAgA0ICEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDAA8LAAvAAgIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkAgAEH/AXEOBgABAgMEBQALIAFBjoDAgABBCBC7gICAACABKAIADQYgASABKQMIELyAgIAADAULIAFBloDAgABBCBC7gICAACABKAIADQUgASABKQMIELyAgIAADAQLIAFBnoDAgABBCRC7gICAACABKAIADQQgASABKQMIELyAgIAADAMLIAFBp4DAgABBBhC7gICAACABKAIADQMgASABKQMIELyAgIAADAILIAFBrYDAgABBDBC7gICAACABKAIADQIgASABKQMIELyAgIAADAELIAFBuYDAgABBERC7gICAACABKAIADQEgASABKQMIELyAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAgACABEJ+AgIAAQgFRC40BAgF/AX4jgICAgABBIGsiAiSAgICAAAJAAkACQCABEKOAgIAAIgNCAhCkgICAAA0AQgAhAwwBCyACIANCAhCAgICAABCmgICAACACKAIAQQFGDQEgAikDECEDIAAgAikDGDcDGCAAIAM3AxBCASEDCyAAIAM3AwAgAEIANwMIIAJBIGokgICAgAAPCwALfQIBfwF+AkACQAJAAkAgAadB/wFxIgJBxQBGDQAgAkELRw0CIAAgAUI/hzcDGCAAIAFCCIc3AxAMAQsgARCVgICAACEDIAEQloCAgAAhASAAIAM3AxggACABNwMQC0IAIQEMAQsgAEKDkICAgAE3AwhCASEBCyAAIAE3AwALHQAgABCjgICAACABIAIQqICAgABCAhCBgICAABoLQwEBfyOAgICAAEEQayICJICAgIAAIAIgACABELmAgIAAAkAgAigCAEEBRw0AAAsgAikDCCEBIAJBEGokgICAgAAgAQsVACAAEKOAgIAAIAFCAhCBgICAABoLiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQq4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKyAgIAAC0EAIQECQEEAEK2AgIAAIgJCAhCkgICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELDAAgAEEBEPSAgIAACxsAIACtQiCGQgSEIAGtQiCGQgSEEKCAgIAAGgvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBjoXAgABBBhC7gICAACABKAIADQMgASABKQMIELyAgIAADAILIAFBlIXAgABBCBC7gICAACABKAIADQIgASABKQMIELyAgIAADAELIAFBnIXAgABBChC7gICAACABKAIADQEgASABKQMIELyAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQr4CAgAAQgoCAgAAaC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKyAgIAACyAAELGAgIAAIAApAwghASAAKQMAQYoIELKAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAELGAgIAAIAApAwghASAAKQMAQYoIELKAgIAAIAEQgoCAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCrgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrICAgAALIAAQt4CAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8ELWAgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABC0gICAAAJAIAApAwBQDQBCg4CAgLCBARC1gICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQq4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKyAgIAAC0IAIQICQAJAQQEQtoCAgAAiA0IAEKSAgIAARQ0AIANCABCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEKGAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBoYTAgABBDBC7gICAACABKAIADQIgASABKQMIELyAgIAADAELIAFBnITAgABBBRC7gICAACABKAIADQEgASABKQMIELyAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQtoCAgAAiAkICEKSAgIAARQ0AIAJCAhCAgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALaAEBfyOAgICAAEEgayIDJICAgIAAIANBEGogACABELmAgIAAAkAgAygCEEEBRw0AAAsgAykDGCEBIAMgAjcDCCADIAE3AwBBtILAgABBAiADQQIQuoCAgAAhASADQSBqJICAgIAAIAELWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQl4CAgAAhAQsgAEIANwMAIAAgATcDCAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJqAgIAAC1ECAX8BfiOAgICAAEEQayIDJICAgIAAIAMgASACEIWBgIAAQgEhBAJAIAMoAgANACAAIAMpAwg3AwhCACEECyAAIAQ3AwAgA0EQaiSAgICAAAtEAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABNwMIIAJBCGpBARDIgICAACEBIABCADcDACAAIAE3AwggAkEQaiSAgICAAAsOAEECIAAgARCngICAAAsOAEEDIAAgARCngICAAAsMAEEEIAAQqYCAgAALDABBBSAAEKmAgIAAC6YCAgJ/AX4jgICAgABB0ABrIgMkgICAgAAgAyAAEMKAgIAAAkAgAygCAEEBRg0AIAFC/wGDQsgAUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBEECRg0AIAMQq4CAgAACQCADKAIAQQFHDQAgAygCBCADKAIIEKyAgIAACyADEMOAgIAAIAMpAwghAiADKQMAIQVCACEAQgAhAQJAIARBAXFFDQAgAxDEgICAACADKQMIIQEgAykDACEACyADIAUgAhC5gICAACADKAIADQAgAykDCCECIAMgACABELmAgIAAIAMoAgBBAUYNACADIAMpAwg3A0ggAyACNwNAQayBwIAAQQIgA0HAAGpBAhC6gICAACEAIANB0ABqJICAgIAAIAAPCwAL7AICAn8GfiOAgICAAEHQAGsiAiSAgICAAEEAIQMCQANAIANBOEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQfSBwIAAQQcgAkEIakEHEISBgIAAIAIpAwgiAUL/AYNCBFINACACQcAAaiACKQMQENmAgIAAIAIoAkANACACKQMYIgVC/wGDQsgAUg0AIAIpA0ghBgJAAkAgAikDICIHp0H/AXEiA0HAAEYNACADQQZHDQIgB0IIiCEHDAELIAcQkoCAgAAhBwsgAkHAAGogAikDKBDZgICAACACKAJADQAgAikDMCIIQv8Bg0LNAFINACACKQM4IglC/wGDQgRSDQAgAikDSCEEIAAgAUIgiKc2AjQgACAFNwMoIAAgBjcDICAAIAQ3AxggACAINwMQIAAgBzcDCCAAIAlCIIg+AjBCACEECyAAIAQ3AwAgAkHQAGokgICAgAALfQIBfwF+I4CAgIAAQSBrIgEkgICAgAAgARCrgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQrICAgAALIAFBAhClgICAAAJAIAEoAgBBAXENABDmgICAAAALIAEpAxghAiAAIAEpAxA3AwAgACACNwMIIAFBIGokgICAgAALfQIBfwF+I4CAgIAAQSBrIgEkgICAgAAgARCrgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQrICAgAALIAFBAxClgICAAAJAIAEoAgBBAXENABDmgICAAAALIAEpAxghAiAAIAEpAxA3AwAgACACNwMIIAFBIGokgICAgAAL1gcEBX8EfgJ/AX4jgICAgABBwABrIgMkgICAgAAgAyAAEMKAgIAAAkAgAygCAEEBRg0AIAFC/wGDQsgAUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBUECRg0AIAMoAjQhBiADKAIwIQcgAykDKCEIIAMpAyAhCSADKQMYIQogAykDECELIAMpAwghASADEKuAgIAAAkAgAygCAEEBRw0AIAMoAgQgAygCCBCsgICAAAsgA0EgaiEMEMaAgIAAEIKAgIAAGhDHgICAACEAIAMQw4CAgAAgAyAANwMQIAMhBEICIQBBASENAkADQCANQQFxRQ0BQQAhDSAEKQMAIAQpAwggBEEQaikDABC4gICAACEAIAwhBAwACwsgAyAANwM4IANBOGpBARDIgICAACEOEIOAgIAAIQICQCAFQQFxRQ0AEMeAgIAAIQAgAxDEgICAACACIAMpAwAgAykDCCAAELiAgIAAEISAgIAAIQILEIWAgIAAIQAgA0EBOgAAIAAgABCGgICAAEKAgICAcINCBIQgA0EBEMmAgIAAIQAgAyABQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4DgyABQjiIhISENwMAIAMgACAAEIaAgIAAQoCAgIBwg0IEhCADQQgQyYCAgAA3AzggA0E4aiAHEMqAgIAAIQ0gCxCHgICAACEAIAMgAEKEgICAwAAgABCGgICAAEKAgICAcINCBIQQiICAgAAiAEIEQoSAgIDAABCIgICAABDLgICAACADKAIAQQFGDQAgAykDCCEBIANBADYCACABIANBBBDMgICAAAJAIAMoAgAiBEH///8HcQ0AAkACQAJAIARBGHYOAgABAwsgAyAAQoSAgIDAAEKEgICAgAEQiICAgAAQy4CAgAAgAygCAEEBRg0DIAMpAwghASADQQA2AgAgASADQQQQzICAgAAgAygCAA0CIAMgAEKEgICAgAFChICAgIAFEIiAgIAAEM2AgIAAIAMoAgBBAUcNAQwDCyADIABChICAgMAAQoSAgIDABBCIgICAABDNgICAACADKAIAQQFGDQILIAMgDSADKQMIEM6AgIAAIAYQyoCAgAAgChDOgICAACkDADcDACADIAkQzoCAgAApAwAgCBCJgICAACEAIAMgAjcDECADIA43AwggAyAANwMAQeyCwIAAQQMgA0EDELqAgIAAIQAgA0HAAGokgICAgAAgAA8LQoOAgICg/gAQtYCAgAAACwALawIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIABBABCigICAAAJAIAAoAgANABDmgICAAAALIAApAwghASAAQRBqJICAgIAAIAELawIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIABBBBCigICAAAJAIAAoAgANABDmgICAAAALIAApAwghASAAQRBqJICAgIAAIAELGgAgAK1CIIZCBIQgAa1CIIZCBIQQnICAgAALHgAgACABIAKtQiCGQgSEIAOtQiCGQgSEEJmAgIAAC3cCAX8BfiOAgICAAEEQayICJICAgIAAIAIgAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AgwgACkDACEDIAAgAyADEIaAgIAAQoCAgIBwg0IEhCACQQxqQQQQyYCAgAA3AwAgAkEQaiSAgICAACAACzYBAX5CASECAkAgARCGgICAAEKAgICAcINCgICAgMAAUg0AIAAgATcDCEIAIQILIAAgAjcDAAsfACAAQgQgAa1CIIZCBIQgAq1CIIZCBIQQk4CAgAAaCzYBAX5CASECAkAgARCGgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAvCAQEEfyOAgICAAEHAAGsiAiSAgICAACACQSBqQRhqIgNCADcDACACQSBqQRBqIgRCADcDACACQSBqQQhqIgVCADcDACACQgA3AyAgASACQSBqQSAQzICAgAAgAkEYaiADKQMANwMAIAJBEGogBCkDADcDACACQQhqIAUpAwA3AwAgAiACKQMgNwMAIAApAwAhASAAIAEgARCGgICAAEKAgICAcINCBIQgAkEgEMmAgIAANwMAIAJBwABqJICAgIAAIAALbwEBfyOAgICAAEEQayIDJICAgIAAAkAgAEL/AYNCBFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANBBGoQq4CAgAACQCADKAIEQQFHDQAgAygCCCADKAIMEKyAgIAAC0KDgICAEBC1gICAAAsAC1oBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgAUEEahCrgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrICAgAALIAFBEGokgICAgABCAQ8LAAuFAQIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIABBgIDAgABBDhC7gICAAAJAAkAgACgCAA0AIAAgACkDCBC8gICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQtlAQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LLAFINACACQQRqEKuAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBCsgICAAAtCg4CAgBAQtYCAgAALAAueAQIBfwF+I4CAgIAAQTBrIgAkgICAgAAgAEEIahCrgICAAAJAIAAoAghBAUcNACAAKAIMIAAoAhAQrICAgAALIABBIGpCABDUgICAAAJAIAAoAiBBAUcNAAALIAApAyghASAAQgQ3AxggACABNwMQIABChICAgCA3AwhB3IHAgABBAyAAQQhqQQMQuoCAgAAhASAAQTBqJICAgIAAIAELOwACQAJAIAFC//////////8AVg0AIAFCCIZCBoQhAQwBCyABEJGAgIAAIQELIABCADcDACAAIAE3AwgLzQEBAX4CQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAkL/AYNCzQBSDQAgAUKO0q4VEIOAgIAAEIqAgIAAIgNC/wGDQgRSDQFBACABEKmAgIAAQQEQo4CAgAAgA0KEgICAcINCAhCBgICAABpC4wBCABC+gICAAELkAEIAEL2AgIAAIAIQv4CAgAAgABDAgICAAEEAELaAgIAAQgIQpICAgAANAiAAENaAgIAAQgIPCwALENeAgIAAAAtCg4CAgJCBARC1gICAAAALDgBBACAAQgIQgIGAgAALCQAQg4GAgAAAC/YGAgJ/BH4jgICAgABB0ABrIgIkgICAgAACQCAAQv8Bg0LIAFINACACQTBqIAEQ2YCAgAAgAigCMEEBRg0AIAIpAzghASACIAA3AwggAkEwahCrgICAAAJAIAIoAjBBAUcNACACKAI0IAIoAjgQrICAgAALENqAgIAAEIKAgIAAGgJAIAAQhoCAgABCgICAgHCDQoCAgICQClINACACQQA2AhQgAiACQQhqNgIQAkAgAkEQakEBENuAgIAAIgAQhoCAgABCgICAgHCDQoCAgIAQUg0AIAJBADoAMAJAIAAQhoCAgABCgICAgHCDQoCAgIAQUg0AIAAgAkEwakEBEMyAgIAAAkAgAi0AMEEBRw0AAkAgAkEQakEIENuAgIAAIgAQhoCAgABCgICAgHCDQoCAgICAAVINACACQgA3AzAgABCGgICAAEKAgICAcINCgICAgIABUg0CIAAgAkEwakEIEMyAgIAAIAIpAzAhACACQRBqENyAgIAAIQMgAkEQahDdgICAACEEIAJBEGoQ3ICAgAAaIAJBEGoQ3YCAgAAhBUGEg8CAAEEIEN6AgIAAIAUQiYCAgAAQi4CAgAAiBUL/AYNCzQBSDQUQxoCAgAAhBhCMgICAACEHIAJBEGogAEI4hiAAQoD+A4NCKIaEIABCgID8B4NCGIYgAEKAgID4D4NCCIaEhCAAQgiIQoCAgPgPgyAAQhiIQoCA/AeDhCAAQiiIQoD+A4MgAEI4iISEhBDUgICAACACKAIQQQFGDQUgAikDGCEAIAIgBDcDOCACIAA3AzAgAiADrUIghkIEhDcDQEGAgcCAAEEDIAJBMGpBAxC6gICAACEAIAIgATcDKCACIAU3AyAgAiAANwMYIAIgBzcDEEEAIQMCQANAAkAgA0EgRw0AQQAhAwJAA0AgA0EgRg0BIAJBMGogA2ogAkEQaiADaikDADcDACADQQhqIQMMAAsLIAZCjvyr963dAyACQTBqQQQQyICAgAAQioCAgABC/wGDQgJSDQIgAkHQAGokgICAgABCAg8LIAJBMGogA2pCAjcDACADQQhqIQMMAAsLENeAgIAAAAtCg4CAgICCARC1gICAAAALQoOAgIDQiQEQtYCAgAAACxDfgICAAAALQoOAgICAggEQtYCAgAAAC0KDgICAwIkBELWAgIAAAAsACyMAAkAgAUL/AYNCyABRDQAgAEIBNwMADwsgACABEM2AgIAAC2sCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKyAgIAACyAAQQUQooCAgAACQCAAKAIADQAQ5oCAgAAACyAAKQMIIQEgAEEQaiSAgICAACABC3UCAn8BfgJAAkAgACgCBCICIAFqIgEgAkkNACABIAAoAgAiAykDABCGgICAAEIgiKdLDQEgAykDACACrUIghkIEhCABrUIghkIEhBCIgICAACEEIAAgATYCBCAEDwsQ14CAgAAAC0KDgICAgP0AELWAgIAAAAu5AQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABBBBDbgICAACICEIaAgIAAQoCAgIBwg0KAgICAwABSDQAgAUEANgIMIAIQhoCAgABCgICAgHCDQoCAgIDAAFINASACIAFBDGpBBBDMgICAACABKAIMIQAgAUEQaiSAgICAACAAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycg8LQoOAgICAggEQtYCAgAAACxDfgICAAAALgQIDAX8BfgJ/I4CAgIAAQcAAayIBJICAgIAAAkACQCAAQSAQ24CAgAAiAhCGgICAAEKAgICAcINCgICAgIAEUg0AIAFBIGpBGGoiAEIANwMAIAFBIGpBEGoiA0IANwMAIAFBIGpBCGoiBEIANwMAIAFCADcDICACEIaAgIAAQoCAgIBwg0KAgICAgARSDQEgAiABQSBqQSAQzICAgAAgAUEYaiAAKQMANwMAIAFBEGogAykDADcDACABQQhqIAQpAwA3AwAgASABKQMgNwMAIAFBIBDegICAACECIAFBwABqJICAgIAAIAIPC0KDgICAgIIBELWAgIAAAAsQ34CAgAAACxoAIACtQiCGQgSEIAGtQiCGQgSEEJSAgIAACwkAENeAgIAAAAtpAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINABCugICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABC/gICAACABQRBqJICAgIAAQgIPCwALgAECAX8BfiOAgICAAEEgayIBJICAgIAAIAEgABCmgICAAAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEK6AgIAAIAEQq4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKyAgIAACyACIAAQvYCAgAAgAUEgaiSAgICAAEICDwsAC4ABAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQpoCAgAACQCABKAIAQQFGDQAgASkDGCEAIAEpAxAhAhCugICAACABEKuAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCsgICAAAsgAiAAEL6AgIAAIAFBIGokgICAgABCAg8LAAtpAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINABCugICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABDAgICAACABQRBqJICAgIAAQgIPCwALCAAQxoCAgAALiwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQq4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKyAgIAACwJAAkBBARCjgICAACIBQgIQpICAgABFDQAgAUICEICAgIAAIgFC/wGDQgRRDQEACxDmgICAAAALIABBEGokgICAgAAgAUKEgICAcIMLCQAQ14CAgAAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQw4CAgAAgACkDACAAKQMIEKiAgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQxICAgAAgACkDACAAKQMIEKiAgIAAIQEgAEEQaiSAgICAACABCwgAEMeAgIAACwgAENqAgIAACwgAEK+AgIAAC+IEAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABDtgICAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEO2AgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQq4CAgAACQCACKAIoQQFHDQAgAigCLCACKAIwEKyAgIAACxCugICAAAJAAkACQBCqgICAAA0AEO6AgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AELWAgIAAAAtCg4CAgMD/ABC1gICAAAALAkACQCACKAIIQQFHDQBBASACKAIMIAIoAhAQ74CAgAAMAQtBARCtgICAAEICEI2AgIAAGgsCQAJAIAIoAhhBAUcNAEECIAIoAhwgAigCIBDvgICAAAwBC0ECEK2AgIAAQgIQjYCAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRByITAgABBDxDwgICAABDxgICAACEAIAJBKGoQ8oCAgAAhASACIAJBNGoQ8oCAgAA3A0ggAiABNwNAIABB7ITAgABBAiACQcAAakECELqAgIAAEI6AgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARCGgYCAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAACzMBAn4QnYCAgAAhAAJAEJ6AgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LENeAgIAAAAtWAgF/AX4jgICAgABBEGsiAySAgICAACAAEK2AgIAAIQQgAyABIAIQh4GAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCBgICAABogA0EQaiSAgICAAAtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARCFgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEMiAgIAAIQAgAUEQaiSAgICAACAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABD1gICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEKuAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCsgICAAAsgAEEIahCrgICAACAAQRRqIgFBAhD0gICAACAAQTBqIABBCGoQ9YCAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEPWAgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhDIgICAACECIABBwABqJICAgIAAIAILdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABEK2AgIAAIgRCAhCkgICAAEUNACACQQRqIARCAhCAgICAABCGgYCAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQh4GAgAAPCyAAQgA3AwAgAEICNwMIC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCrgICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQrICAgAALEK6AgIAAAkAQqoCAgABFDQBCg4CAgOD/ABC1gICAAAALQQAQrYCAgABCAUICEIGAgIAAGkH8hMCAAEESEPCAgIAAEPGAgIAAQQRBACAAQRhqQQAQuoCAgAAQjoCAgAAaIABBIGokgICAgABCAgsJABCqgICAAK0LMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQrICAgABCAg8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAELGAgIAAIAApAwAgACkDCBD6gICAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQtICAgAAgACkDACAAKQMIEPqAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCrgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrICAgAALELCAgIAAIQIQs4CAgAAgABDWgICAACACIAAQ/YCAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQZWDwIAAQRUQ8ICAgAAQ8YCAgAAhAyACIAA3AwggAiABNwMAIANBvIPAgABBAiACQQIQuoCAgAAQjoCAgAAaIAJBEGokgICAgAAL3QICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCrgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQrICAgAALELCAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahC0gICAACACKQMQIQEgAikDCEGICBCygICAACABIAAQj4CAgABQRQ0DEP+AgIAADAELEO6AgIAAIAFCIIinSQ0DQQEgAEIAEICBgIAAQQEQtoCAgABCACABQoSAgIBwgyIBIAEQkICAgAAaQcyDwIAA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dGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAANRW5kcG9pbnRFcnJvcgAAAAAAABkAAAAAAAAAEUFscmVhZHlSZWdpc3RlcmVkAAAAAAAAAQAAAAAAAAANQ29tcG9zZUV4aXN0cwAAAAAAAAIAAAAAAAAAD0NvbXBvc2VOb3RGb3VuZAAAAAADAAAAAAAAABxEZWZhdWx0UmVjZWl2ZUxpYlVuYXZhaWxhYmxlAAAABAAAAAAAAAAZRGVmYXVsdFNlbmRMaWJVbmF2YWlsYWJsZQAAAAAAAAUAAAAAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAAAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAAAAAAAAQSW52YWxpZEZlZUFtb3VudAAAAAgAAAAAAAAADUludmFsaWRFeHBpcnkAAAAAAAAJAAAAAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAAAAAAAAxJbnZhbGlkTm9uY2UAAAALAAAAAAAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAAAAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAAAAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAAAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAAAAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAAAAAAAMVW5hdXRob3JpemVkAAAAFgAAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAABQAAAAAAAAAAAAAAClBhY2tldFNlbnQAAAAAAAEAAAALcGFja2V0X3NlbnQAAAAAAwAA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AAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAQAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQaAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAQAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABcAAAAAAG8OY29udHJhY3RtZXRhdjAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yMy40LjAjNjczZDZjNGYyMzY4ZDI4MmQyNWRhMjliZGE1NWMyMWI4YmU2OWNhNgA=";
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 = "00d120a82635e4e4497d07d1233a432efc4301a890ce92b159b977a8b5275462";
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 SmlStorage = {
9
24
  tag: "Endpoint";
10
25
  values: void;
@@ -105,6 +120,9 @@ export declare const EndpointError: {
105
120
  24: {
106
121
  message: string;
107
122
  };
123
+ 25: {
124
+ message: string;
125
+ };
108
126
  };
109
127
  /**
110
128
  * Parameters for sending a cross-chain message.
@@ -317,43 +335,52 @@ export interface FeesAndPacket {
317
335
  */
318
336
  zro_fee_recipients: Array<FeeRecipient>;
319
337
  }
338
+ /**
339
+ * PacketCodecV1Error: 1100-1109
340
+ */
320
341
  export declare const PacketCodecV1Error: {
321
- 1001: {
342
+ 1100: {
322
343
  message: string;
323
344
  };
324
- 1002: {
345
+ 1101: {
325
346
  message: string;
326
347
  };
327
348
  };
349
+ /**
350
+ * WorkerOptionsError: 1110-1119
351
+ */
328
352
  export declare const WorkerOptionsError: {
329
- 1101: {
353
+ 1110: {
330
354
  message: string;
331
355
  };
332
- 1102: {
356
+ 1111: {
333
357
  message: string;
334
358
  };
335
- 1103: {
359
+ 1112: {
336
360
  message: string;
337
361
  };
338
- 1104: {
362
+ 1113: {
339
363
  message: string;
340
364
  };
341
- 1105: {
365
+ 1114: {
342
366
  message: string;
343
367
  };
344
- 1106: {
368
+ 1115: {
345
369
  message: string;
346
370
  };
347
- 1107: {
371
+ 1116: {
348
372
  message: string;
349
373
  };
350
- 1108: {
374
+ 1117: {
351
375
  message: string;
352
376
  };
353
- 1109: {
377
+ 1118: {
354
378
  message: string;
355
379
  };
356
380
  };
381
+ /**
382
+ * BufferReaderError: 1000-1009
383
+ */
357
384
  export declare const BufferReaderError: {
358
385
  1000: {
359
386
  message: string;
@@ -362,43 +389,109 @@ export declare const BufferReaderError: {
362
389
  message: string;
363
390
  };
364
391
  };
392
+ /**
393
+ * BufferWriterError: 1010-1019
394
+ */
365
395
  export declare const BufferWriterError: {
366
- 1100: {
396
+ 1010: {
367
397
  message: string;
368
398
  };
369
399
  };
400
+ /**
401
+ * TtlConfigurableError: 1020-1029
402
+ */
370
403
  export declare const TtlConfigurableError: {
371
- 1200: {
404
+ 1020: {
372
405
  message: string;
373
406
  };
374
- 1201: {
407
+ 1021: {
375
408
  message: string;
376
409
  };
377
- 1202: {
410
+ 1022: {
378
411
  message: string;
379
412
  };
380
413
  };
414
+ /**
415
+ * OwnableError: 1030-1039
416
+ */
381
417
  export declare const OwnableError: {
382
- 1300: {
418
+ 1030: {
419
+ message: string;
420
+ };
421
+ 1031: {
422
+ message: string;
423
+ };
424
+ 1032: {
425
+ message: string;
426
+ };
427
+ 1033: {
383
428
  message: string;
384
429
  };
385
- 1301: {
430
+ 1034: {
431
+ message: string;
432
+ };
433
+ 1035: {
386
434
  message: string;
387
435
  };
388
436
  };
437
+ /**
438
+ * BytesExtError: 1040-1049
439
+ */
389
440
  export declare const BytesExtError: {
390
- 1400: {
441
+ 1040: {
391
442
  message: string;
392
443
  };
393
444
  };
445
+ /**
446
+ * UpgradeableError: 1050-1059
447
+ */
394
448
  export declare const UpgradeableError: {
395
- 1500: {
449
+ 1050: {
396
450
  message: string;
397
451
  };
398
452
  };
453
+ /**
454
+ * MultisigError: 1060-1069
455
+ */
456
+ export declare const MultisigError: {
457
+ 1060: {
458
+ message: string;
459
+ };
460
+ 1061: {
461
+ message: string;
462
+ };
463
+ 1062: {
464
+ message: string;
465
+ };
466
+ 1063: {
467
+ message: string;
468
+ };
469
+ 1064: {
470
+ message: string;
471
+ };
472
+ 1065: {
473
+ message: string;
474
+ };
475
+ 1066: {
476
+ message: string;
477
+ };
478
+ 1067: {
479
+ message: string;
480
+ };
481
+ };
482
+ export type MultisigStorage = {
483
+ tag: "Signers";
484
+ values: void;
485
+ } | {
486
+ tag: "Threshold";
487
+ values: void;
488
+ };
399
489
  export type OwnableStorage = {
400
490
  tag: "Owner";
401
491
  values: void;
492
+ } | {
493
+ tag: "PendingOwner";
494
+ values: void;
402
495
  };
403
496
  /**
404
497
  * TTL configuration: threshold (when to extend) and extend_to (target TTL).
@@ -763,18 +856,9 @@ export interface Client {
763
856
  simulate?: boolean;
764
857
  }) => Promise<AssembledTransaction<string>>;
765
858
  /**
766
- * 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.
767
- * Extends the instance TTL.
768
- *
769
- * # Arguments
770
- *
771
- * * `threshold` - The threshold to extend the TTL.
772
- * * `extend_to` - The TTL to extend to.
859
+ * 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.
773
860
  */
774
- extend_instance_ttl: ({ threshold, extend_to }: {
775
- threshold: u32;
776
- extend_to: u32;
777
- }, txnOptions?: {
861
+ authorizer: (txnOptions?: {
778
862
  /**
779
863
  * The fee to pay for the transaction. Default: BASE_FEE
780
864
  */
@@ -787,7 +871,7 @@ export interface Client {
787
871
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
788
872
  */
789
873
  simulate?: boolean;
790
- }) => Promise<AssembledTransaction<null>>;
874
+ }) => Promise<AssembledTransaction<string>>;
791
875
  /**
792
876
  * 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.
793
877
  * Sets TTL configs for instance and persistent storage.
@@ -880,6 +964,32 @@ export interface Client {
880
964
  */
881
965
  simulate?: boolean;
882
966
  }) => Promise<AssembledTransaction<boolean>>;
967
+ /**
968
+ * 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.
969
+ * Extends the instance TTL.
970
+ *
971
+ * # Arguments
972
+ *
973
+ * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
974
+ * * `extend_to` - The TTL to extend to.
975
+ */
976
+ extend_instance_ttl: ({ threshold, extend_to }: {
977
+ threshold: u32;
978
+ extend_to: u32;
979
+ }, txnOptions?: {
980
+ /**
981
+ * The fee to pay for the transaction. Default: BASE_FEE
982
+ */
983
+ fee?: number;
984
+ /**
985
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
986
+ */
987
+ timeoutInSeconds?: number;
988
+ /**
989
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
990
+ */
991
+ simulate?: boolean;
992
+ }) => Promise<AssembledTransaction<null>>;
883
993
  /**
884
994
  * 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.
885
995
  * Returns the current owner address, or None if no owner is set.
@@ -898,9 +1008,34 @@ export interface Client {
898
1008
  */
899
1009
  simulate?: boolean;
900
1010
  }) => Promise<AssembledTransaction<Option<string>>>;
1011
+ /**
1012
+ * 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.
1013
+ * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
1014
+ */
1015
+ pending_owner: (txnOptions?: {
1016
+ /**
1017
+ * The fee to pay for the transaction. Default: BASE_FEE
1018
+ */
1019
+ fee?: number;
1020
+ /**
1021
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1022
+ */
1023
+ timeoutInSeconds?: number;
1024
+ /**
1025
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1026
+ */
1027
+ simulate?: boolean;
1028
+ }) => Promise<AssembledTransaction<Option<string>>>;
901
1029
  /**
902
1030
  * 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.
903
- * Transfers ownership to a new address. Requires current owner authorization.
1031
+ * Transfers ownership immediately to a new address.
1032
+ *
1033
+ * Use with caution - if you transfer to a wrong address, ownership is lost forever.
1034
+ * Consider using `propose_ownership_transfer` instead.
1035
+ *
1036
+ * # Panics
1037
+ * - `OwnerNotSet` if no owner is currently set
1038
+ * - `TransferInProgress` if a 2-step transfer is in progress
904
1039
  */
905
1040
  transfer_ownership: ({ new_owner }: {
906
1041
  new_owner: string;
@@ -918,9 +1053,71 @@ export interface Client {
918
1053
  */
919
1054
  simulate?: boolean;
920
1055
  }) => Promise<AssembledTransaction<null>>;
1056
+ /**
1057
+ * 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.
1058
+ * Proposes an ownership transfer to a new address.
1059
+ *
1060
+ * The new owner must call `accept_ownership()` within `ttl` ledgers
1061
+ * to complete the transfer. The pending transfer will automatically expire after.
1062
+ *
1063
+ * # Arguments
1064
+ * - `new_owner` - The proposed new owner
1065
+ * - `ttl` - Number of ledgers the new owner has to accept.
1066
+ * Use `0` to cancel a pending transfer (new_owner must match pending).
1067
+ *
1068
+ * # Panics
1069
+ * - `OwnerNotSet` if no owner is currently set
1070
+ * - `NoPendingTransfer` when cancelling and no pending transfer exists
1071
+ * - `InvalidTtl` if ttl exceeds max TTL
1072
+ * - `InvalidPendingOwner` when cancelling with wrong new_owner address
1073
+ */
1074
+ propose_ownership_transfer: ({ new_owner, ttl }: {
1075
+ new_owner: string;
1076
+ ttl: u32;
1077
+ }, txnOptions?: {
1078
+ /**
1079
+ * The fee to pay for the transaction. Default: BASE_FEE
1080
+ */
1081
+ fee?: number;
1082
+ /**
1083
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1084
+ */
1085
+ timeoutInSeconds?: number;
1086
+ /**
1087
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1088
+ */
1089
+ simulate?: boolean;
1090
+ }) => Promise<AssembledTransaction<null>>;
1091
+ /**
1092
+ * 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.
1093
+ * Accepts a pending 2-step ownership transfer.
1094
+ *
1095
+ * Must be called by the pending owner before the TTL expires.
1096
+ *
1097
+ * # Panics
1098
+ * - `NoPendingTransfer` if there is no pending transfer (or it expired)
1099
+ */
1100
+ accept_ownership: (txnOptions?: {
1101
+ /**
1102
+ * The fee to pay for the transaction. Default: BASE_FEE
1103
+ */
1104
+ fee?: number;
1105
+ /**
1106
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1107
+ */
1108
+ timeoutInSeconds?: number;
1109
+ /**
1110
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1111
+ */
1112
+ simulate?: boolean;
1113
+ }) => Promise<AssembledTransaction<null>>;
921
1114
  /**
922
1115
  * 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.
923
- * Permanently renounces ownership. Requires current owner authorization.
1116
+ * Permanently renounces ownership.
1117
+ *
1118
+ * # Panics
1119
+ * - `OwnerNotSet` if no owner is currently set
1120
+ * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
924
1121
  */
925
1122
  renounce_ownership: (txnOptions?: {
926
1123
  /**
@@ -975,13 +1172,17 @@ export declare class Client extends ContractClient {
975
1172
  zro_fee: (json: string) => AssembledTransaction<bigint>;
976
1173
  fee_recipient: (json: string) => AssembledTransaction<string>;
977
1174
  whitelisted_caller: (json: string) => AssembledTransaction<string>;
978
- extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1175
+ authorizer: (json: string) => AssembledTransaction<string>;
979
1176
  set_ttl_configs: (json: string) => AssembledTransaction<null>;
980
1177
  ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
981
1178
  freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
982
1179
  is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
1180
+ extend_instance_ttl: (json: string) => AssembledTransaction<null>;
983
1181
  owner: (json: string) => AssembledTransaction<Option<string>>;
1182
+ pending_owner: (json: string) => AssembledTransaction<Option<string>>;
984
1183
  transfer_ownership: (json: string) => AssembledTransaction<null>;
1184
+ propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
1185
+ accept_ownership: (json: string) => AssembledTransaction<null>;
985
1186
  renounce_ownership: (json: string) => AssembledTransaction<null>;
986
1187
  };
987
1188
  }