@layerzerolabs/protocol-stellar-v2 0.2.21 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/.turbo/turbo-build.log +347 -271
  2. package/.turbo/turbo-lint.log +277 -208
  3. package/.turbo/turbo-test.log +1700 -1370
  4. package/Cargo.lock +22 -51
  5. package/Cargo.toml +6 -1
  6. package/contracts/common-macros/src/auth.rs +10 -9
  7. package/contracts/common-macros/src/contract_ttl.rs +1 -4
  8. package/contracts/common-macros/src/error.rs +1 -3
  9. package/contracts/common-macros/src/lib.rs +65 -61
  10. package/contracts/common-macros/src/storage.rs +212 -65
  11. package/contracts/common-macros/src/tests/auth.rs +75 -6
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +383 -350
  13. package/contracts/common-macros/src/tests/error.rs +9 -21
  14. package/contracts/common-macros/src/tests/lz_contract.rs +80 -0
  15. package/contracts/common-macros/src/tests/mod.rs +2 -0
  16. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -3
  17. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +28 -1
  18. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +8 -43
  19. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +6 -29
  20. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +31 -0
  21. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +8 -0
  22. package/contracts/common-macros/src/tests/storage/extract_fields.rs +87 -0
  23. package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +223 -0
  24. package/contracts/common-macros/src/tests/storage/gen_args.rs +65 -0
  25. package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +78 -0
  26. package/contracts/common-macros/src/tests/storage/gen_key.rs +108 -0
  27. package/contracts/common-macros/src/tests/storage/gen_params.rs +105 -0
  28. package/contracts/common-macros/src/tests/{storage.rs → storage/generate_storage.rs} +54 -129
  29. package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +48 -0
  30. package/contracts/common-macros/src/tests/storage/mod.rs +16 -0
  31. package/contracts/common-macros/src/tests/storage/parse_default.rs +164 -0
  32. package/contracts/common-macros/src/tests/storage/parse_name.rs +159 -0
  33. package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +124 -0
  34. package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +174 -0
  35. package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +412 -0
  36. package/contracts/common-macros/src/tests/storage/storage_kind.rs +39 -0
  37. package/contracts/common-macros/src/tests/storage/test_setup.rs +25 -0
  38. package/contracts/common-macros/src/tests/storage/validate_attrs.rs +138 -0
  39. package/contracts/common-macros/src/tests/storage/variant_config.rs +226 -0
  40. package/contracts/common-macros/src/tests/test_helpers.rs +4 -10
  41. package/contracts/common-macros/src/tests/ttl_configurable.rs +2 -2
  42. package/contracts/common-macros/src/tests/ttl_extendable.rs +32 -0
  43. package/contracts/common-macros/src/tests/upgradeable.rs +118 -2
  44. package/contracts/common-macros/src/ttl_configurable.rs +1 -4
  45. package/contracts/common-macros/src/upgradeable.rs +21 -3
  46. package/contracts/endpoint-v2/Cargo.toml +0 -4
  47. package/contracts/endpoint-v2/src/endpoint_v2.rs +37 -17
  48. package/contracts/endpoint-v2/src/errors.rs +26 -1
  49. package/contracts/endpoint-v2/src/interfaces/layerzero_endpoint_v2.rs +1 -1
  50. package/contracts/endpoint-v2/src/interfaces/message_lib_manager.rs +4 -4
  51. package/contracts/endpoint-v2/src/interfaces/messaging_composer.rs +2 -2
  52. package/contracts/endpoint-v2/src/lib.rs +0 -1
  53. package/contracts/endpoint-v2/src/message_lib_manager.rs +39 -8
  54. package/contracts/endpoint-v2/src/messaging_channel.rs +36 -4
  55. package/contracts/endpoint-v2/src/messaging_composer.rs +18 -4
  56. package/contracts/endpoint-v2/src/storage.rs +9 -1
  57. package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +2 -2
  58. package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +1 -1
  59. package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
  60. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +3 -3
  61. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +5 -5
  62. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +2 -2
  63. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +5 -5
  64. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +3 -3
  65. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +1 -1
  66. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +4 -3
  67. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +7 -2
  68. package/contracts/endpoint-v2/src/tests/messaging_composer/mod.rs +4 -0
  69. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +7 -2
  70. package/contracts/layerzero-views/src/layerzero_view.rs +0 -1
  71. package/contracts/layerzero-views/src/tests/mod.rs +1 -0
  72. package/contracts/layerzero-views/src/tests/types_tests.rs +31 -0
  73. package/contracts/layerzero-views/src/types.rs +2 -3
  74. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +61 -0
  75. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +97 -0
  76. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +99 -0
  77. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +3 -0
  78. package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +5 -0
  79. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +86 -0
  80. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +47 -0
  81. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +77 -0
  82. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +114 -0
  83. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +105 -0
  84. package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +242 -0
  85. package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +9 -0
  86. package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +54 -0
  87. package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +13 -0
  88. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +1 -0
  89. package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +70 -1
  90. package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +219 -0
  91. package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +41 -0
  92. package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +48 -16
  93. package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +10 -0
  94. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +96 -3
  95. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +4 -0
  96. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +64 -0
  97. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +16 -0
  98. package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +305 -0
  99. package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +3 -0
  100. package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +59 -0
  101. package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +88 -0
  102. package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
  103. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +6 -0
  104. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +7 -0
  105. package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +102 -0
  106. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +6 -0
  107. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +7 -0
  108. package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +83 -0
  109. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +11 -0
  110. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +7 -0
  111. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +11 -0
  112. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +7 -0
  113. package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +22 -0
  114. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +6 -0
  115. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +7 -0
  116. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +20 -0
  117. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +20 -0
  118. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +8 -0
  119. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +7 -0
  120. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +10 -0
  121. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +7 -0
  122. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +20 -0
  123. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +86 -0
  124. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +45 -0
  125. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +34 -0
  126. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +30 -0
  127. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +39 -0
  128. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +28 -0
  129. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +8 -0
  130. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +7 -0
  131. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +20 -0
  132. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +12 -0
  133. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +20 -0
  134. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +5 -0
  135. package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +49 -0
  136. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +8 -0
  137. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +7 -0
  138. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +19 -0
  139. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +12 -0
  140. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +1 -1
  141. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -8
  142. package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +39 -0
  143. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +7 -1
  144. package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +1 -1
  145. package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +1 -1
  146. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +11 -0
  147. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +7 -0
  148. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +11 -0
  149. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +7 -0
  150. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +11 -0
  151. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +7 -0
  152. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +1 -1
  153. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +13 -0
  154. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +7 -0
  155. package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +102 -0
  156. package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +43 -0
  157. package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +38 -0
  158. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +14 -0
  159. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +71 -0
  160. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +8 -0
  161. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +7 -0
  162. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/{minimal_contract.rs → basic.rs} +2 -0
  163. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +28 -0
  164. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +32 -0
  165. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +8 -0
  166. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +7 -0
  167. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +23 -0
  168. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +21 -0
  169. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +11 -0
  170. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +29 -0
  171. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +20 -0
  172. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +71 -0
  173. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +10 -0
  174. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +79 -0
  175. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +8 -0
  176. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +7 -0
  177. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +43 -0
  178. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +35 -0
  179. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +30 -0
  180. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +29 -0
  181. package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +12 -0
  182. package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +12 -0
  183. package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +11 -0
  184. package/contracts/macro-integration-tests/tests/ui_multisig.rs +11 -0
  185. package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +12 -0
  186. package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +11 -0
  187. package/contracts/message-libs/blocked-message-lib/Cargo.toml +1 -1
  188. package/contracts/message-libs/blocked-message-lib/src/lib.rs +4 -1
  189. package/contracts/message-libs/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +108 -0
  190. package/contracts/message-libs/blocked-message-lib/src/tests/mod.rs +4 -0
  191. package/contracts/message-libs/blocked-message-lib/src/tests/setup.rs +40 -0
  192. package/contracts/message-libs/simple-message-lib/src/lib.rs +1 -1
  193. package/contracts/message-libs/simple-message-lib/src/tests/mod.rs +2 -0
  194. package/contracts/message-libs/simple-message-lib/src/tests/setup.rs +124 -0
  195. package/contracts/message-libs/simple-message-lib/src/tests/simple_message_lib_tests.rs +309 -0
  196. package/contracts/message-libs/uln-302/src/errors.rs +21 -0
  197. package/contracts/message-libs/uln-302/src/interfaces/receive_uln.rs +1 -1
  198. package/contracts/message-libs/uln-302/src/receive_uln.rs +6 -4
  199. package/contracts/message-libs/uln-302/src/send_uln.rs +15 -6
  200. package/contracts/message-libs/uln-302/src/storage.rs +5 -5
  201. package/contracts/message-libs/uln-302/src/tests/uln302/get_config.rs +71 -0
  202. package/contracts/message-libs/uln-302/src/tests/uln302/mod.rs +1 -0
  203. package/contracts/message-libs/uln-302/src/uln302.rs +3 -0
  204. package/contracts/oapps/counter/Cargo.toml +2 -0
  205. package/contracts/oapps/counter/integration_tests/mod.rs +1 -0
  206. package/contracts/oapps/counter/integration_tests/setup_sml.rs +6 -4
  207. package/contracts/oapps/counter/integration_tests/setup_uln.rs +12 -5
  208. package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +67 -0
  209. package/contracts/oapps/counter/src/tests/mod.rs +1 -0
  210. package/contracts/oapps/counter/src/tests/test_u256_ext.rs +48 -0
  211. package/contracts/oapps/oapp/src/lib.rs +0 -3
  212. package/contracts/oapps/oapp/src/tests/mod.rs +1 -0
  213. package/contracts/oapps/oft/integration-tests/setup.rs +2 -3
  214. package/contracts/oapps/oft/src/lib.rs +3 -0
  215. package/contracts/oapps/oft/src/tests/extensions/mod.rs +3 -0
  216. package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +240 -0
  217. package/contracts/oapps/oft/src/tests/extensions/pausable.rs +141 -0
  218. package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +447 -0
  219. package/contracts/oapps/oft/src/tests/mod.rs +2 -0
  220. package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +180 -0
  221. package/contracts/oapps/oft/src/tests/oft_types/mod.rs +1 -0
  222. package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -3
  223. package/contracts/oapps/oft-core/src/lib.rs +2 -2
  224. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -1
  225. package/contracts/oapps/oft-core/src/tests/{test_oft_version.rs → test_oft_version_and_approval.rs} +9 -0
  226. package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -43
  227. package/contracts/upgrader/src/tests/test_upgrader.rs +18 -0
  228. package/contracts/utils/src/auth.rs +2 -2
  229. package/contracts/utils/src/buffer_reader.rs +61 -10
  230. package/contracts/utils/src/buffer_writer.rs +35 -20
  231. package/contracts/utils/src/bytes_ext.rs +1 -2
  232. package/contracts/utils/src/errors.rs +5 -3
  233. package/contracts/utils/src/multisig.rs +59 -36
  234. package/contracts/utils/src/option_ext.rs +3 -3
  235. package/contracts/utils/src/ownable.rs +12 -6
  236. package/contracts/utils/src/tests/auth.rs +179 -0
  237. package/contracts/utils/src/tests/buffer_reader.rs +203 -1
  238. package/contracts/utils/src/tests/buffer_writer.rs +176 -5
  239. package/contracts/utils/src/tests/mod.rs +2 -0
  240. package/contracts/utils/src/tests/multisig.rs +170 -141
  241. package/contracts/utils/src/tests/option_ext.rs +1 -1
  242. package/contracts/utils/src/tests/ownable.rs +156 -161
  243. package/contracts/utils/src/tests/test_helper.rs +21 -1
  244. package/contracts/utils/src/tests/testing_utils.rs +84 -2
  245. package/contracts/utils/src/tests/ttl_configurable.rs +66 -86
  246. package/contracts/utils/src/tests/ttl_extendable.rs +64 -0
  247. package/contracts/utils/src/tests/upgradeable.rs +115 -6
  248. package/contracts/utils/src/ttl_configurable.rs +22 -12
  249. package/contracts/utils/src/ttl_extendable.rs +1 -3
  250. package/contracts/utils/src/upgradeable.rs +21 -24
  251. package/contracts/workers/dvn/src/auth.rs +1 -1
  252. package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
  253. package/contracts/workers/dvn/src/storage.rs +1 -1
  254. package/contracts/workers/dvn/src/tests/auth.rs +136 -3
  255. package/contracts/workers/dvn/src/tests/mod.rs +0 -1
  256. package/contracts/workers/dvn/src/tests/setup.rs +4 -10
  257. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +279 -0
  258. package/contracts/workers/executor-helper/src/tests/setup.rs +106 -1
  259. package/contracts/workers/worker/src/worker.rs +1 -1
  260. package/docs/oft-guide.md +5 -5
  261. package/package.json +5 -7
  262. package/sdk/.turbo/turbo-test.log +662 -466
  263. package/sdk/LICENSE +23 -0
  264. package/sdk/dist/generated/bml.d.ts +101 -106
  265. package/sdk/dist/generated/bml.js +108 -26
  266. package/sdk/dist/generated/counter.d.ts +123 -484
  267. package/sdk/dist/generated/counter.js +103 -25
  268. package/sdk/dist/generated/dvn.d.ts +141 -699
  269. package/sdk/dist/generated/dvn.js +106 -28
  270. package/sdk/dist/generated/dvn_fee_lib.d.ts +31 -248
  271. package/sdk/dist/generated/dvn_fee_lib.js +27 -24
  272. package/sdk/dist/generated/endpoint.d.ts +158 -836
  273. package/sdk/dist/generated/endpoint.js +107 -29
  274. package/sdk/dist/generated/executor.d.ts +139 -671
  275. package/sdk/dist/generated/executor.js +106 -28
  276. package/sdk/dist/generated/executor_fee_lib.d.ts +109 -264
  277. package/sdk/dist/generated/executor_fee_lib.js +106 -28
  278. package/sdk/dist/generated/executor_helper.d.ts +95 -92
  279. package/sdk/dist/generated/executor_helper.js +103 -25
  280. package/sdk/dist/generated/layerzero_view.d.ts +178 -335
  281. package/sdk/dist/generated/layerzero_view.js +172 -33
  282. package/sdk/dist/generated/oft.d.ts +137 -680
  283. package/sdk/dist/generated/oft.js +103 -25
  284. package/sdk/dist/generated/price_feed.d.ts +45 -444
  285. package/sdk/dist/generated/price_feed.js +27 -24
  286. package/sdk/dist/generated/sml.d.ts +119 -428
  287. package/sdk/dist/generated/sml.js +103 -25
  288. package/sdk/dist/generated/treasury.d.ts +109 -288
  289. package/sdk/dist/generated/treasury.js +103 -25
  290. package/sdk/dist/generated/uln302.d.ts +190 -527
  291. package/sdk/dist/generated/uln302.js +170 -31
  292. package/sdk/dist/generated/upgrader.d.ts +14 -34
  293. package/sdk/dist/generated/upgrader.js +24 -21
  294. package/sdk/package.json +3 -4
  295. package/sdk/test/counter-sml.test.ts +218 -142
  296. package/sdk/test/counter-uln.test.ts +189 -145
  297. package/sdk/test/oft-sml.test.ts +173 -156
  298. package/sdk/test/suites/constants.ts +7 -1
  299. package/sdk/test/suites/globalSetup.ts +140 -74
  300. package/sdk/turbo.json +1 -1
  301. package/tools/ts-bindings-gen/Cargo.toml +4 -4
  302. package/tools/ts-bindings-gen/src/main.rs +4 -0
  303. package/turbo.json +3 -0
  304. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +0 -1072
  305. package/contracts/endpoint-v2/src/constants.rs +0 -52
  306. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +0 -12
  307. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +0 -7
  308. package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +0 -20
  309. package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +0 -15
  310. package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +0 -16
  311. package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +0 -26
  312. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +0 -21
  313. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +0 -12
  314. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +0 -7
  315. package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +0 -14
  316. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +0 -14
  317. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +0 -16
  318. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +0 -15
  319. package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +0 -14
  320. package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +0 -19
  321. package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +0 -15
  322. package/contracts/message-libs/simple-message-lib/src/test.rs +0 -280
  323. package/contracts/oapps/oapp/src/macro_tests/mod.rs +0 -1
  324. package/contracts/workers/dvn/src/tests/multisig/mod.rs +0 -3
  325. package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +0 -132
  326. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +0 -109
  327. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +0 -106
  328. /package/contracts/oapps/oapp/src/{macro_tests → tests}/test_macros.rs +0 -0
@@ -6,14 +6,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
7
  /**
8
8
  * Embedded WASM bytecode (base64-encoded)
9
- * Size: 27461 bytes (26.82 KB)
9
+ * Size: 28404 bytes (27.74 KB)
10
10
  */
11
- export declare const WASM_BASE64 = "AGFzbQEAAAABfxZgAn5+AX5gAX4BfmADfn5+AX5gAAF+YAR+fn5+AX5gAAF/YAF/AGACf38AYAF/AX5gAn5+AX9gAABgAn5/AGABfgBgA39/fwBgAn9+AGACf38BfmAEf39/fwF+YAJ+fgBgA39+fgBgBn9+fn5+fwBgBH9+fn8AYAV/fn5+fgACfxUBbAExAAABYQEwAAEBZAFfAAIBbAFfAAIBeAExAAABbAEyAAABeAE3AAMBeAEwAAABbAE3AAQBaQE4AAEBaQE3AAEBYgFqAAABaQE2AAABbQE5AAIBdgFnAAABeAEzAAMBeAE4AAMBbAEwAAABbAE4AAABeAE1AAEBbQFhAAQDSkkFBgcICQoDAwYLCgYMCAYIDQ4EDgUFBgAPCgEHBwwBDwEQAQEAAgMDAwMDAwERAAoFEgMKAwAADggDBwcDAwoNDg0NExQVFRQVBQMBABEGIQR/AUGAgMAAC38AQcKBwAALfwBB3oPAAAt/AEHgg8AACweaAxkGbWVtb3J5AgAHZ2V0X2ZlZQAnDV9fY29uc3RydWN0b3IALxFzZXRfbmF0aXZlX2ZlZV9icAAzD3NldF9mZWVfZW5hYmxlZAA3D3NldF96cm9fZmVlX2xpYgA4DndpdGhkcmF3X3Rva2VuADoNbmF0aXZlX2ZlZV9icAA7C2ZlZV9lbmFibGVkADwLenJvX2ZlZV9saWIAPQphdXRob3JpemVyAD4Fb3duZXIAPw1wZW5kaW5nX293bmVyAEASdHJhbnNmZXJfb3duZXJzaGlwAEEacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAQxBhY2NlcHRfb3duZXJzaGlwAEcScmVub3VuY2Vfb3duZXJzaGlwAEkTZXh0ZW5kX2luc3RhbmNlX3R0bABKD3NldF90dGxfY29uZmlncwBLC3R0bF9jb25maWdzAE4SZnJlZXplX3R0bF9jb25maWdzAFEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAFIBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCtNJSYsBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqEJaAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBCXgICAAAtBACEBAkBBABCYgICAACICQgIQmYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABCwwAIABBARDPgICAAAsbACAArUIghkIEhCABrUIghkIEhBCSgICAABoLwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQcaDwIAAQQYQpYCAgAAgASgCAA0DIAEgASkDCBCmgICAAAwCCyABQcyDwIAAQQgQpYCAgAAgASgCAA0CIAEgASkDCBCmgICAAAwBCyABQdSDwIAAQQoQpYCAgAAgASgCAA0BIAEgASkDCBCmgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCRgICAAEIBUQsPABCbgICAABCBgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCWgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQl4CAgAALIAAQnYCAgAAgACkDCCEBIAApAwBBiggQnoCAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQnYCAgAAgACkDCCEBIAApAwBBiggQnoCAgAAgARCBgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqEJaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCXgICAAAsgABCjgICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQoYCAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACkDAFANAEKDgICAsIEBEKGAgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCWgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQl4CAgAALQgAhAgJAAkBBARCigICAACIDQgAQmYCAgABFDQAgA0IAEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsACwsAIAAQk4CAgAAaC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUHZgsCAAEEMEKWAgIAAIAEoAgANAiABIAEpAwgQpoCAgAAMAQsgAUHUgsCAAEEFEKWAgIAAIAEoAgANASABIAEpAwgQpoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABCigICAACICQgIQmYCAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBpIHAgABBCxClgICAACABKAIADQMgASABKQMIEKaAgIAADAILIAFBr4HAgABBChClgICAACABKAIADQIgASABKQMIEKaAgIAADAELIAFBuYHAgABBCRClgICAACABKAIADQEgASABKQMIEKaAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQ1ICAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEK2AgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC94EAgJ/A34jgICAgABB8ABrIgQkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgBEHQAGogAhCogICAACAEKAJQQQFGDQBBASADp0H/AXEiBUEAR0EBdCAFQQFGGyIFQQJGDQAgBCkDaCEGIAQpA2AhByAEQdAAahCWgICAAAJAIAQoAlBBAUcNACAEKAJUIAQoAlgQl4CAgAALAkAgBkJ/Vw0AQgAhA0IAIQIQqYCAgABFDQIgBEEANgIsIARBEGogByAGEKqAgIAArUIAIARBLGoQ2ICAgAACQCAEKAIsDQAgBCAEKQMQIAQpAxhCkM4AQgAQ24CAgAAgBCkDCCECIAQpAwAhAyAFQQFxRQ0DIARB0ABqEKuAgIAAAkAgBCgCUEUNACAEKQNYIQggByAGEKyAgIAAIQYgBCADIAIQrICAgAA3A0ggBCAGNwNAIAQgAUKEgICAcIM3AzggBCAANwMwQQAhBQJAA0ACQCAFQSBHDQBBACEFAkADQCAFQSBGDQEgBEHQAGogBWogBEEwaiAFaikDADcDACAFQQhqIQUMAAsLIARB0ABqIAhCjtTqtZDXsgEgBEHQAGpBBBCtgICAABCCgICAABCogICAACAEKAJQQQFGDQQgBCkDaCICQn9XDQIgBCkDYCEDDAcLIARB0ABqIAVqQgI3AwAgBUEIaiEFDAALC0KDgICAMBChgICAAAALQoOAgIDAABChgICAAAALEK6AgIAAAAtCg4CAgCAQoYCAgAAACwALIAMgAhCsgICAACECIARB8ABqJICAgIAAIAILfQIBfwF+AkACQAJAAkAgAadB/wFxIgJBxQBGDQAgAkELRw0CIAAgAUI/hzcDGCAAIAFCCIc3AxAMAQsgARCJgICAACEDIAEQioCAgAAhASAAIAM3AxggACABNwMQC0IAIQEMAQsgAEKDkICAgAE3AwhCASEBCyAAIAE3AwALiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQloCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEJeAgIAAC0EAIQECQEEBEKSAgIAAIgJCAhCZgICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELigECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQloCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEJeAgIAAC0EAIQECQAJAQQAQpICAgAAiAkICEJmAgIAARQ0AIAJCAhCAgICAACICQv8Bg0IEUg0BIAJCIIinIQELIABBEGokgICAgAAgAQ8LAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCWgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQl4CAgAALQgAhAgJAAkBBAhCkgICAACIDQgIQmYCAgABFDQAgA0ICEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsAC0UAAkAgAEKAgICAgICAwAB8Qv//////////AFYNACAAIACFIAEgAEI/h4WEQgBSDQAgAEIIhkILhA8LIAEgABCMgICAAAsaACAArUIghkIEhCABrUIghkIEhBCOgICAAAsJABDTgICAAAALXQACQAJAIABC/wGDQs0AUg0AQYDLHkGA0h8QsICAgABBgMseQYDSHxCxgICAAEEAEKKAgIAAQgIQmYCAgAANASAAELKAgIAAQgIPCwALQoOAgICQgQEQoYCAgAAACw4AQQEgACABENeAgIAACw4AQQIgACABENeAgIAACw4AQQAgAEICEMaAgIAAC9IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkAgAEL/AYNCBFINABCagICAACABEJaAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCXgICAAAsgAEKAgICAkOIJWg0BQQAQpICAgAAgAEKEgICA8P8PgyIAQgIQg4CAgAAaQYCAwIAAQREQtICAgAAQtYCAgAAhAiABIAA3AwAgAkGggMCAAEEBIAFBARC2gICAABCEgICAABogAUEQaiSAgICAAEICDwsAC0KDgICAEBChgICAAAALRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ1ICAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARCtgICAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEI2AgIAAC8ABAgJ/AX4jgICAgABBEGsiASSAgICAAAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AEJqAgIAAIAEQloCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEJeAgIAAC0EBEKSAgIAAIAKtIgBCAhCDgICAABpBqIDAgABBDxC0gICAABC1gICAACEDIAEgADcDACADQcSAwIAAQQEgAUEBELaAgIAAEISAgIAAGiABQRBqJICAgIAAQgIPCwAL4wECAX8CfiOAgICAAEEQayIBJICAgIAAAkACQCAAQgJRDQAgAEL/AYNCzQBSDQELEJqAgIAAIAEQloCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEJeAgIAAC0ECEKSAgIAAIQICQAJAIABCAlINACACQgIQhYCAgAAaQgAhAgwBCyACIABCAhCDgICAABpCASECC0HMgMCAAEEPELSAgIAAELWAgIAAIQMgASACIAAQuYCAgAA3AwAgA0HogMCAAEEBIAFBARC2gICAABCEgICAABogAUEQaiSAgICAAEICDwsACw0AIAFCAiAAp0EBcRsLiQMDAX8CfgF/I4CAgIAAQcAAayIDJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAyACEKiAgIAAIAMoAgBBAUYNACADKQMYIQIgAykDECEEEJqAgIAAIAMQloCAgAACQCADKAIAQQFHDQAgAygCBCADKAIIEJeAgIAACxCGgICAACEFIAMgBCACEKyAgIAANwM4IAMgATcDMCADIAU3AyhBACEGAkADQAJAIAZBGEcNAEEAIQYCQANAIAZBGEYNASADIAZqIANBKGogBmopAwA3AwAgBkEIaiEGDAALCyAAQo7u6pW+tt7zACADQQMQrYCAgAAQgoCAgABC/wGDQgJSDQJB8IDAgABBDxC0gICAABC1gICAACEFIAQgAhCsgICAACECIAMgADcDECADIAE3AwggAyACNwMAIAVBjIHAgABBAyADQQMQtoCAgAAQhICAgAAaIANBwABqJICAgIAAQgIPCyADIAZqQgI3AwAgBkEIaiEGDAALCxCugICAAAALAAsPABCqgICAAK1CIIZCBIQLCQAQqYCAgACtCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAAgACkDACAAKQMIELmAgIAAIQEgAEEQaiSAgICAACABCwgAEJuAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQnYCAgAAgACkDACAAKQMIELmAgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQoICAgAAgACkDACAAKQMIELmAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCWgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQl4CAgAALEJyAgIAAIQIQn4CAgAAgABCygICAACACIAAQwoCAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQcuBwIAAQRUQtICAgAAQtYCAgAAhAyACIAA3AwggAiABNwMAIANB9IHAgABBAiACQQIQtoCAgAAQhICAgAAaIAJBEGokgICAgAAL3QICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCWgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQl4CAgAALEJyAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahCggICAACACKQMQIQEgAikDCEGICBCegICAACABIAAQh4CAgABQRQ0DEMSAgIAADAELEMWAgIAAIAFCIIinSQ0DQQEgAEIAEMaAgIAAQQEQooCAgABCACABQoSAgIBwgyIBIAEQiICAgAAaQYSCwIAAQRYQtICAgAAQtYCAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQaCCwIAAQQMgAkEIakEDELaAgIAAEISAgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABEKGAgIAAAAtCg4CAgPCAARChgICAAAALEwBBARCigICAAEIAEIWAgIAAGgszAQJ+EI+AgIAAIQACQBCQgICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxCugICAAAALFQAgABCigICAACABIAIQg4CAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAEJaAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCXgICAAAsgABCggICAACAAKQMIIQEgACkDAEGICBCegICAACABEIGAgIAAGiAAEKOAgIAAAkAgACgCAA0AEMiAgIAAAAsgACkDCCECEMSAgIAAIAEQsoCAgAAgAiABEMKAgIAAIABBEGokgICAgABCAgsJABCugICAAAALoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQloCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEJeAgIAACxCcgICAACEBEJ+AgIAAQQAQooCAgABCAhCFgICAABpBuILAgABBExC0gICAABC1gICAACECIAAgATcDACACQcyCwIAAQQEgAEEBELaAgIAAEISAgIAAGiAAQRBqJICAgIAAQgILMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQl4CAgABCAg8LAAveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQzICAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDMgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEJaAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBCXgICAAAsQmoCAgAACQAJAAkAQlYCAgAANABDFgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABChgICAAAALQoOAgIDA/wAQoYCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCwgICAAAwBC0EBEJiAgIAAQgIQhYCAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBCxgICAAAwBC0ECEJiAgIAAQgIQhYCAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBgIPAgABBDxC0gICAABC1gICAACEAIAJBKGoQzYCAgAAhASACIAJBNGoQzYCAgAA3A0ggAiABNwNAIABBpIPAgABBAiACQcAAakECELaAgIAAEISAgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARDVgICAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDQgICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEJaAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCXgICAAAsgAEEIahCWgICAACAAQRRqIgFBAhDPgICAACAAQTBqIABBCGoQ0ICAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABENCAgIAAIAAoAjBBAUcNAQsACyAA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ZXRfZmVlAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAABB0b3RhbF9uYXRpdmVfZmVlAAAACwAAAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAAAEAAAALAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAEAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAjVNldHMgdGhlIG5hdGl2ZSBmZWUgcGVyY2VudGFnZSBpbiBiYXNpcyBwb2ludHMuCgojIEFyZ3VtZW50cwoqIGBuYXRpdmVfZmVlX2JwYCAtIEZlZSBwZXJjZW50YWdlIGluIGJhc2lzIHBvaW50cyAoMC0xMDAwMCwgd2hlcmUgMTAwMDAgPSAxMDAlKQAAAAAAABFzZXRfbmF0aXZlX2ZlZV9icAAAAAAAAAEAAAAAAAAADW5hdGl2ZV9mZWVfYnAAAAAAAAAEAAAAAAAAAAAAAABtRW5hYmxlcyBvciBkaXNhYmxlcyBmZWUgY29sbGVjdGlvbiBnbG9iYWxseS4KCiMgQXJndW1lbnRzCiogYGZlZV9lbmFibGVkYCAtIFdoZXRoZXIgZmVlIGNvbGxlY3Rpb24gaXMgZW5hYmxlZAAAAAAAAA9zZXRfZmVlX2VuYWJsZWQAAAAAAQAAAAAAAAALZmVlX2VuYWJsZWQAAAAAAQAAAAAAAAAAAAAAo1NldHMgb3IgcmVtb3ZlcyB0aGUgWlJPIGZlZSBsaWJyYXJ5IGZvciBjdXN0b20gWlJPIHRva2VuIGZlZSBjYWxjdWxhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGB6cm9fZmVlX2xpYmAgLSBUaGUgWlJPIGZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MsIG9yIGBOb25lYCB0byByZW1vdmUAAAAAD3NldF96cm9fZmVlX2xpYgAAAAABAAAAAAAAAAt6cm9fZmVlX2xpYgAAAAPoAAAAEwAAAAAAAAAAAAABN1dpdGhkcmF3cyBhbnkgdG9rZW4gKGluY2x1ZGluZyBuYXRpdmUgWExNKSBmcm9tIHRoZSBjb250cmFjdCB0byBhIHNwZWNpZmllZCBhZGRyZXNzLgoKT25seSB0aGUgY29udHJhY3Qgb3duZXIgY2FuIGV4ZWN1dGUgdGhpcyBtZXRob2QuCgojIEFyZ3VtZW50cwoqIGB0b2tlbmAgLSBUaGUgdG9rZW4gY29udHJhY3QgYWRkcmVzcyAoY2FuIGJlIG5hdGl2ZSBYTE0gb3IgYW55IG90aGVyIHRva2VuKQoqIGB0b2AgLSBUaGUgcmVjaXBpZW50IGFkZHJlc3MKKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgdG8gd2l0aGRyYXcgKG11c3QgYmUgcG9zaXRpdmUpAAAAAA53aXRoZHJhd190b2tlbgAAAAAAAwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAAAyUmV0dXJucyB0aGUgbmF0aXZlIGZlZSBwZXJjZW50YWdlIGluIGJhc2lzIHBvaW50cy4AAAAAAA1uYXRpdmVfZmVlX2JwAAAAAAAAAAAAAAEAAAAEAAAAAAAAACpSZXR1cm5zIHdoZXRoZXIgZmVlIGNvbGxlY3Rpb24gaXMgZW5hYmxlZC4AAAAAAAtmZWVfZW5hYmxlZAAAAAAAAAAAAQAAAAEAAAAAAAAAK1JldHVybnMgdGhlIFpSTyBmZWUgbGlicmFyeSBhZGRyZXNzIGlmIHNldC4AAAAAC3pyb19mZWVfbGliAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAErVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAACAAAAAAAAAAAA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AAAAAAAADgAAAAAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAAAAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAAAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAAAAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAAAAAAAMVW5hdXRob3JpemVkAAAAFgAAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjAuMSM5NDE0NDgwNzllY2NmOTU2MjdkMmZmZWExM2JhMjY4ZTMwNWE5MDc3AABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABfxZgAn5+AX5gAX4BfmADfn5+AX5gAAF+YAR+fn5+AX5gAAF/YAAAYAF/AX5gAn5+AX9gAX8AYAJ+fwBgAX4AYAN/f38AYAJ/fgBgAn9/AX5gAn9/AGAEf39/fwF+YAJ+fgBgA39+fgBgBn9+fn5+fwBgBH9+fn8AYAV/fn5+fgACfxUBbAExAAABYQEwAAEBZAFfAAIBbAFfAAIBeAExAAABbAEyAAABeAE3AAMBbAE3AAQBaQE4AAEBaQE3AAEBYgFqAAABaQE2AAABbQE5AAIBdgFnAAABeAEwAAABeAEzAAMBeAE4AAMBbAEwAAABbAE4AAABeAE1AAEBbQFhAAQDTEsFBgcIBgMDCQoICwYJBwkHDA0EDQUFCQAOBgEPDwsBDgEQAQEAAgMDAwMDAwERAAYFEgMGAwAPAA0HAwkPDwMDBgwNDAwTFBUVFBUFAwEAEQYhBH8BQYCAwAALfwBBwoHAAAt/AEGmhMAAC38AQbCEwAALB5oDGQZtZW1vcnkCAAdnZXRfZmVlACcNX19jb25zdHJ1Y3RvcgAvEXNldF9uYXRpdmVfZmVlX2JwADMPc2V0X2ZlZV9lbmFibGVkADcPc2V0X3pyb19mZWVfbGliADgOd2l0aGRyYXdfdG9rZW4AOg1uYXRpdmVfZmVlX2JwADsLZmVlX2VuYWJsZWQAPAt6cm9fZmVlX2xpYgA9CmF1dGhvcml6ZXIAPgVvd25lcgA/DXBlbmRpbmdfb3duZXIAQBJ0cmFuc2Zlcl9vd25lcnNoaXAAQRpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgBDEGFjY2VwdF9vd25lcnNoaXAARxJyZW5vdW5jZV9vd25lcnNoaXAASRNleHRlbmRfaW5zdGFuY2VfdHRsAEoPc2V0X3R0bF9jb25maWdzAEwLdHRsX2NvbmZpZ3MATxJmcmVlemVfdHRsX2NvbmZpZ3MAUxVpc190dGxfY29uZmlnc19mcm96ZW4AVAFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMK0ERLTQIBfwF+EJaAgIAAQQAhAAJAQQAQl4CAgAAiAUICEJiAgIAARQ0AQQEhAAJAAkAgAUICEICAgIAAp0H/AXEOAgECAAsAC0EAIQALIAALSAEBfyOAgICAAEEQayIAJICAgIAAIABBBGoQ0ICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEMuAgIAACyAAQRBqJICAgIAAC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUGOhMCAAEEGEKWAgIAAIAEoAgANAyABIAEpAwgQpoCAgAAMAgsgAUGUhMCAAEEIEKWAgIAAIAEoAgANAiABIAEpAwgQpoCAgAAMAQsgAUGchMCAAEEKEKWAgIAAIAEoAgANASABIAEpAwgQpoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQkYCAgABCAVELDwAQmoCAgAAQgYCAgAAaC0cCAX8BfiOAgICAAEEQayIAJICAgIAAEJaAgIAAIAAQnICAgAAgACkDCCEBIAApAwBBiwgQnYCAgAAgAEEQaiSAgICAACABC2wCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQnICAgAAgACkDCCEBIAApAwBBiwgQnYCAgAACQCABEJqAgIAAEJ6AgIAADQBCg4CAgOCAARCfgICAAAALIAEQgYCAgAAaIABBEGokgICAgAAgAQsQABCWgICAACAAEKOAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQn4CAgAAACw0AIAAgARCOgICAAFALCwAgABCTgICAABoLQgEBfyOAgICAAEEQayIAJICAgIAAIAAQoYCAgAACQCAAKQMAUA0AQoOAgIDAgQEQn4CAgAAACyAAQRBqJICAgIAAC1MBAn4QloCAgABCACEBAkACQEEBEKKAgIAAIgJCABCYgICAAEUNACACQgAQgICAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsAC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUGhg8CAAEEMEKWAgIAAIAEoAgANAiABIAEpAwgQpoCAgAAMAQsgAUGcg8CAAEEFEKWAgIAAIAEoAgANASABIAEpAwgQpoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABCigICAACICQgIQmICAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBpIHAgABBCxClgICAACABKAIADQMgASABKQMIEKaAgIAADAILIAFBr4HAgABBChClgICAACABKAIADQIgASABKQMIEKaAgIAADAELIAFBuYHAgABBCRClgICAACABKAIADQEgASABKQMIEKaAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQ1oCAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEK2AgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC7sEAgJ/A34jgICAgABB8ABrIgQkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgBEHQAGogAhCogICAACAEKAJQQQFGDQBBASADp0H/AXEiBUEAR0EBdCAFQQFGGyIFQQJGDQAgBCkDaCEGIAQpA2AhBxCWgICAAAJAIAZCf1cNAEIAIQNCACECEKmAgIAARQ0CIARBADYCLCAEQRBqIAcgBhCqgICAAK1CACAEQSxqENqAgIAAAkAgBCgCLA0AIAQgBCkDECAEKQMYQpDOAEIAEN2AgIAAIAQpAwghAiAEKQMAIQMgBUEBcUUNAyAEQdAAahCrgICAAAJAIAQoAlBFDQAgBCkDWCEIIAcgBhCsgICAACEGIAQgAyACEKyAgIAANwNIIAQgBjcDQCAEIAFChICAgHCDNwM4IAQgADcDMEEAIQUCQANAAkAgBUEgRw0AQQAhBQJAA0AgBUEgRg0BIARB0ABqIAVqIARBMGogBWopAwA3AwAgBUEIaiEFDAALCyAEQdAAaiAIQo7U6rWQ17IBIARB0ABqQQQQrYCAgAAQgoCAgAAQqICAgAAgBCgCUEEBRg0EIAQpA2giAkJ/Vw0CIAQpA2AhAwwHCyAEQdAAaiAFakICNwMAIAVBCGohBQwACwtCg4CAgDAQn4CAgAAAC0KDgICAwAAQn4CAgAAACxCugICAAAALQoOAgIAgEJ+AgIAAAAsACyADIAIQrICAgAAhAiAEQfAAaiSAgICAACACC30CAX8BfgJAAkACQAJAIAGnQf8BcSICQcUARg0AIAJBC0cNAiAAIAFCP4c3AxggACABQgiHNwMQDAELIAEQiICAgAAhAyABEImAgIAAIQEgACADNwMYIAAgATcDEAtCACEBDAELIABCg5CAgIABNwMIQgEhAQsgACABNwMAC0kCAX8BfhCWgICAAEEBIQACQAJAQQEQpICAgAAiAUICEJiAgIAARQ0AAkAgAUICEICAgIAAp0H/AXEOAgECAAsAC0EAIQALIAALTAIBfwF+EJaAgIAAQQAhAAJAAkBBABCkgICAACIBQgIQmICAgABFDQAgAUICEICAgIAAIgFC/wGDQgRSDQEgAUIgiKchAAsgAA8LAAtTAQJ+EJaAgIAAQgAhAQJAAkBBAhCkgICAACICQgIQmICAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtFAAJAIABCgICAgICAgMAAfEL//////////wBWDQAgACAAhSABIABCP4eFhEIAUg0AIABCCIZCC4QPCyABIAAQi4CAgAALGgAgAK1CIIZCBIQgAa1CIIZCBIQQjYCAgAALCQAQ1YCAgAAAC10AAkACQCAAQv8Bg0LNAFINAEGAyx5BgNIfELCAgIAAQYDLHkGA0h8QsYCAgABBABCigICAAEICEJiAgIAADQEgABCygICAAEICDwsAC0KDgICAoIEBEJ+AgIAAAAsOAEEBIAAgARDZgICAAAsOAEECIAAgARDZgICAAAsOAEEAIABCAhDGgICAAAu2AQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABC/wGDQgRSDQAQmYCAgAAQloCAgAAgAEKAgICAkOIJWg0BQQAQpICAgAAgAEKEgICA8P8PgyIAQgIQg4CAgAAaQYCAwIAAQREQtICAgAAQtYCAgAAhAiABIAA3AwggAkGggMCAAEEBIAFBCGpBARC2gICAABCEgICAABogAUEQaiSAgICAAEICDwsAC0KDgICAEBCfgICAAAALRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ1oCAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARCtgICAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEIyAgIAAC6MBAgJ/AX4jgICAgABBEGsiASSAgICAAAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRw0AAAsQmYCAgAAQloCAgABBARCkgICAACACrSIAQgIQg4CAgAAaQaiAwIAAQQ8QtICAgAAQtYCAgAAhAyABIAA3AwggA0HEgMCAAEEBIAFBCGpBARC2gICAABCEgICAABogAUEQaiSAgICAAEICC8cBAgF/An4jgICAgABBEGsiASSAgICAAAJAAkAgAEICUQ0AIABC/wGDQs0AUg0BCxCZgICAABCWgICAAEECEKSAgIAAIQICQAJAIABCAlINACACQgIQhYCAgAAaQgAhAgwBCyACIABCAhCDgICAABpCASECC0HMgMCAAEEPELSAgIAAELWAgIAAIQMgASACIAAQuYCAgAA3AwggA0HogMCAAEEBIAFBCGpBARC2gICAABCEgICAABogAUEQaiSAgICAAEICDwsACw0AIAFCAiAAp0EBcRsL6gIDAX8CfgF/I4CAgIAAQcAAayIDJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAyACEKiAgIAAIAMoAgBBAUYNACADKQMYIQIgAykDECEEEJmAgIAAEJaAgIAAEIaAgIAAIQUgAyAEIAIQrICAgAA3AzggAyABNwMwIAMgBTcDKEEAIQYCQANAAkAgBkEYRw0AQQAhBgJAA0AgBkEYRg0BIAMgBmogA0EoaiAGaikDADcDACAGQQhqIQYMAAsLIABCju7qlb623vMAIANBAxCtgICAABCCgICAAEL/AYNCAlINAkHwgMCAAEEPELSAgIAAELWAgIAAIQUgBCACEKyAgIAAIQIgAyAANwMQIAMgATcDCCADIAI3AwAgBUGMgcCAAEEDIANBAxC2gICAABCEgICAABogA0HAAGokgICAgABCAg8LIAMgBmpCAjcDACAGQQhqIQYMAAsLEK6AgIAAAAsACw8AEKqAgIAArUIghkIEhAsJABCpgICAAK0LPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAACAAKQMAIAApAwgQuYCAgAAhASAAQRBqJICAgIAAIAELCAAQmoCAgAALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCcgICAACAAKQMAIAApAwgQuYCAgAAhASAAQRBqJICAgIAAIAELPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABChgICAACAAKQMAIAApAwgQuYCAgAAhASAAQRBqJICAgIAAIAELPAEBfgJAIABC/wGDQs0AUQ0AAAsQloCAgAAQm4CAgAAhARCggICAACAAELKAgIAAIAEgABDCgICAAEICC2ECAX8BfiOAgICAAEEQayICJICAgIAAQcuBwIAAQRUQtICAgAAQtYCAgAAhAyACIAA3AwggAiABNwMAIANB9IHAgABBAiACQQIQtoCAgAAQhICAgAAaIAJBEGokgICAgAAL/AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAQloCAgAAQm4CAgAAhAwJAAkAgAUL/////D1YNACACQQhqEKGAgIAAIAIpAxAhASACKQMIQYkIEJ2AgIAAIAEgABCegICAAEUNAxDEgICAAEG4gsCAAEEcELSAgIAAELWAgIAAIQAgAiADNwMQIAIgATcDCCAAQfCCwIAAQQIgAkEIakECELaAgIAAEISAgIAAGgwBCxDFgICAACABQiCIp0kNA0EBIABCABDGgICAAEEBEKKAgIAAQgAgAUKEgICAcIMiASABEIeAgIAAGkGEgsCAAEEWELSAgIAAELWAgIAAIQQgAiABNwMYIAIgAzcDECACIAA3AwggBEGggsCAAEEDIAJBCGpBAxC2gICAABCEgICAABoLIAJBIGokgICAgABCAg8LAAtCg4CAgPCAARCfgICAAAALQoOAgICAgQEQn4CAgAAACxMAQQEQooCAgABCABCFgICAABoLMwECfhCPgICAACEAAkAQkICAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQroCAgAAACxUAIAAQooCAgAAgASACEIOAgIAAGguIAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAQloCAgAAgABChgICAACAAKQMIIQEgACkDAEGJCBCdgICAACABEIGAgIAAGiAAEKOAgIAAAkAgACgCAA0AEMiAgIAAAAsgACkDCCECEMSAgIAAIAEQsoCAgAAgAiABEMKAgIAAIABBEGokgICAgABCAgsJABCugICAAAALhAECAX8CfiOAgICAAEEQayIAJICAgIAAEJaAgIAAEJuAgIAAIQEQoICAgABBABCigICAAEICEIWAgIAAGkGAg8CAAEETELSAgIAAELWAgIAAIQIgACABNwMIIAJBlIPAgABBASAAQQhqQQEQtoCAgAAQhICAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxDLgICAAEICDwsACxsAIACtQiCGQgSEIAGtQiCGQgSEEJKAgIAAGgu8BAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQzYCAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDNgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGBCZgICAABCWgICAAAJAAkACQBCVgICAAA0AEMWAgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEJ+AgIAAAAtCg4CAgMD/ABCfgICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQELCAgIAADAELQQEQl4CAgABCAhCFgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgELGAgIAADAELQQIQl4CAgABCAhCFgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHIg8CAAEEPELSAgIAAELWAgIAAIQAgAkEoahDOgICAACEBIAIgAkE0ahDOgICAADcDSCACIAE3A0AgAEHsg8CAAEECIAJBwABqQQIQtoCAgAAQhICAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABENeAgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAENKAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAguiAQICfwF+I4CAgIAAQcAAayIAJICAgIAAEJaAgIAAIABBCGoQ0ICAgAAgAEEUaiIBQQIQ0YCAgAAgAEEwaiAAQQhqENKAgIAAAkACQCAAKAIwDQAgACkDOCECIABBMGogARDSgICAACAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgAjcDICAAQSBqQQIQrYCAgAAhAiAAQcAAaiSAgICAACACCwwAIABBARDRgICAAAt3AgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQAJAIAEQl4CAgAAiBEICEJiAgIAARQ0AIAJBBGogBEICEICAgIAAENeAgIAAQQEhAyACKAIEQQFGDQEgACACKQIINwIECyAAIAM2AgAgAkEQaiSAgICAAA8LAAswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBDYgICAAA8LIABCADcDACAAQgI3AwgLiAEBAX8jgICAgABBEGsiACSAgICAABCZgICAABCWgICAAAJAEJWAgIAARQ0AQoOAgIDg/wAQn4CAgAAAC0EAEJeAgIAAQgFCAhCDgICAABpB/IPAgABBEhC0gICAABC1gICAAEEEQQAgAEEIakEAELaAgIAAEISAgIAAGiAAQRBqJICAgIAAQgILCQAQlYCAgACtCwMAAAvbAQIBfgR/AkACQCACQQlLDQBCACEDIAIhBCABIQUDQAJAIAQNACADQgiGQg6EIQMMAwtBASEGAkAgBS0AACIHQd8ARg0AAkAgB0FQakH/AXFBCkkNAAJAIAdBv39qQf8BcUEaSQ0AIAdBn39qQf8BcUEZSw0EIAdBRWohBgwCCyAHQUtqIQYMAQsgB0FSaiEGCyADQgaGIAatQv8Bg4QhAyAEQX9qIQQgBUEBaiEFDAALCyABrUIghkIEhCACrUIghkIEhBCKgICAACEDCyAAQgA3AwAgACADNwMIC74BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQbiDwIAArUIghkIEhCACrUIghkIEhEKEgICAIBCUgICAABogAikDACIBQv8Bg0IEUg0AIAIpAwgiBEL/AYNCBFINACAAIAFCIIinNgIIIAAgBEIgiD4CBEEAIQMLIAAgAzYCACACQRBqJICAgIAAC2ACAX8BfiOAgICAAEEQayIDJICAgIAAIAMgAa1CIIZCBIQ3AwggAyACrUIghkIEhDcDAEG4g8CAAEECIANBAhC2gICAACEEIABCADcDACAAIAQ3AwggA0EQaiSAgICAAAtWAgF/AX4jgICAgABBEGsiAySAgICAACAAEJeAgIAAIQQgAyABIAIQ2ICAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCDgICAABogA0EQaiSAgICAAAvVAwMBfwJ+An8jgICAgABB4ABrIgYkgICAgABCACEHQgAhCEEAIQkCQCABIAKEUA0AIAMgBIRQDQBCACADfSADIARCAFMiCRshB0IAIAF9IAEgAkIAUyIKGyEIQgAgBCADQgBSrXx9IAQgCRshAyAEIAKFIQQCQAJAQgAgAiABQgBSrXx9IAIgChsiAlANAAJAIANQDQAgBkHQAGogByADIAggAhDfgICAAEEBIQkgBikDWCEBIAYpA1AhAgwCCyAGQcAAaiAHIAMgCEIAEN+AgIAAIAZBMGogByADIAJCABDfgICAACAGKQNIIgIgBikDMHwiASACVCAGKQM4QgBSciEJIAYpA0AhAgwBCwJAIANQDQAgBkEgaiAHQgAgCCACEN+AgIAAIAZBEGogA0IAIAggAhDfgICAACAGKQMoIgIgBikDEHwiASACVCAGKQMYQgBSciEJIAYpAyAhAgwBCyAGIAcgAyAIIAIQ34CAgABBACEJIAYpAwghASAGKQMAIQILQgAgAn0gAiAEQgBTIgobIQhCACABIAJCAFKtfH0gASAKGyIHIASFQgBZDQBBASEJCyAAIAg3AwAgBSAJNgIAIAAgBzcDCCAGQeAAaiSAgICAAAtXAQF+AkACQCADQcAAcQ0AIANFDQEgAiADQT9xrSIEhiABQQAgA2tBP3GtiIQhAiABIASGIQEMAQsgASADQT9xrYYhAkIAIQEL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ABoBEAADAAAAb3duZXJzaGlwX3RyYW5zZmVyX2NhbmNlbGxlZGNhbmNlbGxlZF9wZW5kaW5nX293bmVyb3duZXJUARAAFwAAAGsBEAAFAAAAb3duZXJzaGlwX3Jlbm91bmNlZADpABAACQAAAE93bmVyUGVuZGluZ093bmVyZXh0ZW5kX3RvAACtARAACQAAAMIAEAAJAAAAdHRsX2NvbmZpZ3Nfc2V0aW5zdGFuY2VwZXJzaXN0ZW50AAAA1wEQAAgAAADfARAACgAAAHR0bF9jb25maWdzX2Zyb3plbkZyb3plbkluc3RhbmNlUGVyc2lzdGVudADnjAEOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAANVHJlYXN1cnlFcnJvcgAAAAAAAAQAAAAAAAAAEkludmFsaWROYXRpdmVGZWVCcAAAAAAAAQAAAAAAAAAVSW52YWxpZFRvdGFsTmF0aXZlRmVlAAAAAAAAAgAAAAAAAAANSW52YWxpZFpyb0ZlZQAAAAAAAAMAAAAAAAAAD1pyb0ZlZUxpYk5vdFNldAAAAAAEAAAABQAAADRFbWl0dGVkIHdoZW4gdGhlIG5hdGl2ZSBmZWUgYmFzaXMgcG9pbnRzIGlzIHVwZGF0ZWQuAAAAAAAAAA5OYXRpdmVGZWVCcFNldAAAAAAAAQAAABFuYXRpdmVfZmVlX2JwX3NldAAAAAAAAAEAAAAAAAAADW5hdGl2ZV9mZWVfYnAAAAAAAAAEAAAAAAAAAAIAAAAFAAAAM0VtaXR0ZWQgd2hlbiBmZWUgY29sbGVjdGlvbiBpcyBlbmFibGVkIG9yIGRpc2FibGVkLgAAAAAAAAAADUZlZUVuYWJsZWRTZXQAAAAAAAABAAAAD2ZlZV9lbmFibGVkX3NldAAAAAABAAAAAAAAAAtmZWVfZW5hYmxlZAAAAAABAAAAAAAAAAIAAAAFAAAAM0VtaXR0ZWQgd2hlbiB0aGUgWlJPIGZlZSBsaWJyYXJ5IGlzIHNldCBvciByZW1vdmVkLgAAAAAAAAAADFpyb0ZlZUxpYlNldAAAAAEAAAAPenJvX2ZlZV9saWJfc2V0AAAAAAEAAAAAAAAAC3pyb19mZWVfbGliAAAAA+gAAAATAAAAAAAAAAIAAAAFAAAAS0VtaXR0ZWQgd2hlbiBhIHRva2VuIChpbmNsdWRpbmcgbmF0aXZlIFhMTSkgaXMgd2l0aGRyYXduIGZyb20gdGhlIGNvbnRyYWN0LgAAAAAAAAAADlRva2VuV2l0aGRyYXduAAAAAAABAAAAD3Rva2VuX3dpdGhkcmF3bgAAAAADAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAACAAAAAAAAAI1HZXQgdGhlIHRyZWFzdXJ5IGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKUmV0dXJucyAwIGlmIGZlZSBjb2xsZWN0aW9uIGlzIGRpc2FibGVkLiBGb3IgWlJPIHBheW1lbnRzLCBkZWxlZ2F0ZXMgdG8gdGhlIFpSTyBmZWUgbGlicmFyeS4AAAAAAAAHZ2V0X2ZlZQAAAAAEAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAQdG90YWxfbmF0aXZlX2ZlZQAAAAsAAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAABAAAACwAAAAAAAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAABAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAAI1TZXRzIHRoZSBuYXRpdmUgZmVlIHBlcmNlbnRhZ2UgaW4gYmFzaXMgcG9pbnRzLgoKIyBBcmd1bWVudHMKKiBgbmF0aXZlX2ZlZV9icGAgLSBGZWUgcGVyY2VudGFnZSBpbiBiYXNpcyBwb2ludHMgKDAtMTAwMDAsIHdoZXJlIDEwMDAwID0gMTAwJSkAAAAAAAARc2V0X25hdGl2ZV9mZWVfYnAAAAAAAAABAAAAAAAAAA1uYXRpdmVfZmVlX2JwAAAAAAAABAAAAAAAAAAAAAAAbUVuYWJsZXMgb3IgZGlzYWJsZXMgZmVlIGNvbGxlY3Rpb24gZ2xvYmFsbHkuCgojIEFyZ3VtZW50cwoqIGBmZWVfZW5hYmxlZGAgLSBXaGV0aGVyIGZlZSBjb2xsZWN0aW9uIGlzIGVuYWJsZWQAAAAAAAAPc2V0X2ZlZV9lbmFibGVkAAAAAAEAAAAAAAAAC2ZlZV9lbmFibGVkAAAAAAEAAAAAAAAAAAAAAKNTZXRzIG9yIHJlbW92ZXMgdGhlIFpSTyBmZWUgbGlicmFyeSBmb3IgY3VzdG9tIFpSTyB0b2tlbiBmZWUgY2FsY3VsYXRpb25zLgoKIyBBcmd1bWVudHMKKiBgenJvX2ZlZV9saWJgIC0gVGhlIFpSTyBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzLCBvciBgTm9uZWAgdG8gcmVtb3ZlAAAAAA9zZXRfenJvX2ZlZV9saWIAAAAAAQAAAAAAAAALenJvX2ZlZV9saWIAAAAD6AAAABMAAAAAAAAAAAAAATdXaXRoZHJhd3MgYW55IHRva2VuIChpbmNsdWRpbmcgbmF0aXZlIFhMTSkgZnJvbSB0aGUgY29udHJhY3QgdG8gYSBzcGVjaWZpZWQgYWRkcmVzcy4KCk9ubHkgdGhlIGNvbnRyYWN0IG93bmVyIGNhbiBleGVjdXRlIHRoaXMgbWV0aG9kLgoKIyBBcmd1bWVudHMKKiBgdG9rZW5gIC0gVGhlIHRva2VuIGNvbnRyYWN0IGFkZHJlc3MgKGNhbiBiZSBuYXRpdmUgWExNIG9yIGFueSBvdGhlciB0b2tlbikKKiBgdG9gIC0gVGhlIHJlY2lwaWVudCBhZGRyZXNzCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IHRvIHdpdGhkcmF3IChtdXN0IGJlIHBvc2l0aXZlKQAAAAAOd2l0aGRyYXdfdG9rZW4AAAAAAAMAAAAAAAAABXRva2VuAAAAAAAAEwAAAAAAAAACdG8AAAAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAAAMlJldHVybnMgdGhlIG5hdGl2ZSBmZWUgcGVyY2VudGFnZSBpbiBiYXNpcyBwb2ludHMuAAAAAAANbmF0aXZlX2ZlZV9icAAAAAAAAAAAAAABAAAABAAAAAAAAAAqUmV0dXJucyB3aGV0aGVyIGZlZSBjb2xsZWN0aW9uIGlzIGVuYWJsZWQuAAAAAAALZmVlX2VuYWJsZWQAAAAAAAAAAAEAAAABAAAAAAAAACtSZXR1cm5zIHRoZSBaUk8gZmVlIGxpYnJhcnkgYWRkcmVzcyBpZiBzZXQuAAAAAAt6cm9fZmVlX2xpYgAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAgAAAAAAAAAAAAAAD1RyZWFzdXJ5U3RvcmFnZQAAAAADAAAAAAAAAAAAAAALTmF0aXZlRmVlQnAAAAAAAAAAAAAAAAAKRmVlRW5hYmxlZAAAAAAAAAAAAAAAAAAJWnJvRmVlTGliAAAAAAAABQAAAAAAAAAAAAAAClBhY2tldFNlbnQAAAAAAAEAAAALcGFja2V0X3NlbnQAAAAAAwAAAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAAAAAAAAAAAAAdvcHRpb25zAAAAAA4AAAAAAAAAAAAAAAxzZW5kX2xpYnJhcnkAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAOUGFja2V0VmVyaWZpZWQAAAAAAAEAAAAPcGFja2V0X3ZlcmlmaWVkAAAAAAMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPUGFja2V0RGVsaXZlcmVkAAAAAAEAAAAQcGFja2V0X2RlbGl2ZXJlZAAAAAIAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAACAAAABQAAAAAAAAAAAAAADkx6UmVjZWl2ZUFsZXJ0AAAAAAABAAAAEGx6X3JlY2VpdmVfYWxl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cmVhZHkgZXhpc3RzIGZvciB0aGlzIEdVSUQgYW5kIGluZGV4AAAAAAANQ29tcG9zZUV4aXN0cwAAAAAAAAIAAAA2Q29tcG9zZSBtZXNzYWdlIG5vdCBmb3VuZCBmb3IgdGhlIGdpdmVuIEdVSUQgYW5kIGluZGV4AAAAAAAPQ29tcG9zZU5vdEZvdW5kAAAAAAMAAAA6RGVmYXVsdCByZWNlaXZlIGxpYnJhcnkgaXMgbm90IHNldCBmb3IgdGhlIHNvdXJjZSBlbmRwb2ludAAAAAAAHERlZmF1bHRSZWNlaXZlTGliVW5hdmFpbGFibGUAAAAEAAAAPERlZmF1bHQgc2VuZCBsaWJyYXJ5IGlzIG5vdCBzZXQgZm9yIHRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludAAAABlEZWZhdWx0U2VuZExpYlVuYXZhaWxhYmxlAAAAAAAABQAAAC9TdXBwbGllZCBuYXRpdmUgdG9rZW4gZmVlIGlzIGxlc3MgdGhhbiByZXF1aXJlZAAAAAAVSW5zdWZmaWNpZW50TmF0aXZlRmVlAAAAAAAABgAAACxTdXBwbGllZCBaUk8gdG9rZW4gZmVlIGlzIGxlc3MgdGhhbiByZXF1aXJlZAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAArVGltZW91dCBleHBpcnkgaXMgaW52YWxpZCAoYWxyZWFkeSBleHBpcmVkKQAAAAANSW52YWxpZEV4cGlyeQAAAAAAAAgAAAAgRmVlIGFtb3VudCBpcyBpbnZhbGlkIChuZWdhdGl2ZSkAAAAQSW52YWxpZEZlZUFtb3VudAAAAAkAAAArQ29tcG9zZSBpbmRleCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCB2YWx1ZQAAAAAMSW52YWxpZEluZGV4AAAACgAAACxOb25jZSBpcyBpbnZhbGlkIGZvciB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbgAAAAxJbnZhbGlkTm9uY2UAAAALAAAAMFBheWxvYWQgaGFzaCBpcyBpbnZhbGlkIChlbXB0eSBoYXNoIG5vdCBhbGxvd2VkKQAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAABBUmVjZWl2ZSBsaWJyYXJ5IGlzIG5vdCB2YWxpZCBmb3IgdGhlIHJlY2VpdmVyIGFuZCBzb3VyY2UgZW5kcG9pbnQAAAAAAAAVSW52YWxpZFJlY2VpdmVMaWJyYXJ5AAAAAAAADQAAADFPcGVyYXRpb24gcmVxdWlyZXMgYSBub24tZGVmYXVsdCAoY3VzdG9tKSBsaWJyYXJ5AAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAACdMaWJyYXJ5IG11c3Qgc3VwcG9ydCByZWNlaXZpbmcgbWVzc2FnZXMAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAALExpYnJhcnkgbXVzdCBiZSByZWdpc3RlcmVkIHdpdGggdGhlIGVuZHBvaW50AAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAACVMaWJyYXJ5IG11c3Qgc3VwcG9ydCBzZW5kaW5nIG1lc3NhZ2VzAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAA5TWVzc2FnaW5nIHBhdGggY2Fubm90IGJlIGluaXRpYWxpemVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAC9NZXNzYWdlIGNhbm5vdCBiZSB2ZXJpZmllZCBmb3IgdGhlIGdpdmVuIG9yaWdpbgAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAK1BheWxvYWQgaGFzaCBkb2VzIG5vdCBtYXRjaCB0aGUgc3RvcmVkIGhhc2gAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAACdOZXcgdmFsdWUgaXMgdGhlIHNhbWUgYXMgZXhpc3RpbmcgdmFsdWUAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAvQ2FsbGVyIGlzIG5vdCBhdXRob3JpemVkIChub3QgT0FwcCBvciBkZWxlZ2F0ZSkAAAAADFVuYXV0aG9yaXplZAAAABYAAAArRW5kcG9pbnQgSUQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbGlicmFyeQAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAA5WlJPIGZlZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIHdoZW4gcGF5X2luX3pybyBpcyB0cnVlAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAcWlJPIHRva2VuIGFkZHJlc3MgaXMgbm90IHNldAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQAAAAEAAAAtUGFyYW1ldGVycyBmb3Igc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAAA9NZXNzYWdpbmdQYXJhbXMAAAAABQAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAcVGhlIG1lc3NhZ2UgcGF5bG9hZCB0byBzZW5kLgAAAAdtZXNzYWdlAAAAAA4AAAAhRW5jb2RlZCBleGVjdXRvciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAADNVbml4IHRpbWVzdGFtcCBpbiBzZWNvbmRzIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAABmV4cGlyeQAAAAAABgAAAENUaGUgb2xkIGxpYnJhcnkgYWRkcmVzcyB0aGF0IHJlbWFpbnMgdmFsaWQgZHVyaW5nIHRoZSBncmFjZSBwZXJpb2QuAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAEAAAAHVBhY2tldENvZGVjVjFFcnJvcjogMTEwMC0xMTA5AAAAAAAAAAAAABJQYWNrZXRDb2RlY1YxRXJyb3IAAAAAAAIAAAAAAAAAE0ludmFsaWRQYWNrZXRIZWFkZXIAAAAETAAAAAAAAAAUSW52YWxpZFBhY2tldFZlcnNpb24AAARNAAAABAAAAB1Xb3JrZXJPcHRpb25zRXJyb3I6IDExMTAtMTExOQAAAAAAAAAAAAASV29ya2VyT3B0aW9uc0Vycm9yAAAAAAAJAAAAAAAAABJJbnZhbGlkQnl0ZXNMZW5ndGgAAAAABFYAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTEAAAAAAARXAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUyAAAAAAAEWAAAAAAAAAARSW52YWxpZE9wdGlvblR5cGUAAAAAAARZAAAAAAAAAA5JbnZhbGlkT3B0aW9ucwAAAAAEWgAAAAAAAAAPSW52YWxpZFdvcmtlcklkAAAABFsAAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMUdhc092ZXJmbG93AAAAAAAEXAAAAAAAAAAgTGVnYWN5T3B0aW9uc1R5cGUyQW1vdW50T3ZlcmZsb3cAAARdAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTJHYXNPdmVyZmxvdwAAAAAABF4AAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAcAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEBgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQHAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQIAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAkAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQKAAAAAAAAAAtPd25lck5vdFNldAAAAAQLAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAwAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELAAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aVNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAA8RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBjYW5jZWxsZWQuAAAAAAAAABpPd25lcnNoaXBUcmFuc2ZlckNhbmNlbGxlZAAAAAAAAQAAABxvd25lcnNoaXBfdHJhbnNmZXJfY2FuY2VsbGVkAAAAAgAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAAAXY2FuY2VsbGVkX3BlbmRpbmdfb3duZXIAAAAAEwAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABkAAAAAAG8OY29udHJhY3RtZXRhdjAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4xLjAjODZjNTBhMWVhNGY4N2I0MGFkZDMwNjRmZjlkZjk1Yzc1NTM1NjVjNQAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMC4wI2E2NDkyNWU5MzkxYzNkM2IzZWY4ZTUzZGM2MGMyM2RiOWU2YTgyZTQA";
12
12
  /**
13
13
  * Pre-computed WASM hash (SHA-256)
14
14
  * Use this when the WASM is already uploaded on-chain
15
15
  */
16
- export declare const WASM_HASH = "1e88f3e179cb6dbabb6332b6b4279b5b04c3d10f361e12f084a3db2ec1872553";
16
+ export declare const WASM_HASH = "6a62e6549fd7e72ac1c63cd2d3040fd833840367e36bab205c6142ed592bf55d";
17
17
  /**
18
18
  * Get the WASM bytecode as a Buffer
19
19
  * Use this to upload the WASM to the network
@@ -44,78 +44,153 @@ export type TreasuryStorage = {
44
44
  values: void;
45
45
  };
46
46
  export declare const EndpointError: {
47
+ /**
48
+ * Library is already registered with the endpoint
49
+ */
47
50
  1: {
48
51
  message: string;
49
52
  };
53
+ /**
54
+ * Compose message already exists for this GUID and index
55
+ */
50
56
  2: {
51
57
  message: string;
52
58
  };
59
+ /**
60
+ * Compose message not found for the given GUID and index
61
+ */
53
62
  3: {
54
63
  message: string;
55
64
  };
65
+ /**
66
+ * Default receive library is not set for the source endpoint
67
+ */
56
68
  4: {
57
69
  message: string;
58
70
  };
71
+ /**
72
+ * Default send library is not set for the destination endpoint
73
+ */
59
74
  5: {
60
75
  message: string;
61
76
  };
77
+ /**
78
+ * Supplied native token fee is less than required
79
+ */
62
80
  6: {
63
81
  message: string;
64
82
  };
83
+ /**
84
+ * Supplied ZRO token fee is less than required
85
+ */
65
86
  7: {
66
87
  message: string;
67
88
  };
89
+ /**
90
+ * Timeout expiry is invalid (already expired)
91
+ */
68
92
  8: {
69
93
  message: string;
70
94
  };
95
+ /**
96
+ * Fee amount is invalid (negative)
97
+ */
71
98
  9: {
72
99
  message: string;
73
100
  };
101
+ /**
102
+ * Compose index exceeds maximum allowed value
103
+ */
74
104
  10: {
75
105
  message: string;
76
106
  };
107
+ /**
108
+ * Nonce is invalid for the requested operation
109
+ */
77
110
  11: {
78
111
  message: string;
79
112
  };
113
+ /**
114
+ * Payload hash is invalid (empty hash not allowed)
115
+ */
80
116
  12: {
81
117
  message: string;
82
118
  };
119
+ /**
120
+ * Receive library is not valid for the receiver and source endpoint
121
+ */
83
122
  13: {
84
123
  message: string;
85
124
  };
125
+ /**
126
+ * Operation requires a non-default (custom) library
127
+ */
86
128
  14: {
87
129
  message: string;
88
130
  };
131
+ /**
132
+ * Library must support receiving messages
133
+ */
89
134
  15: {
90
135
  message: string;
91
136
  };
137
+ /**
138
+ * Library must be registered with the endpoint
139
+ */
92
140
  16: {
93
141
  message: string;
94
142
  };
143
+ /**
144
+ * Library must support sending messages
145
+ */
95
146
  17: {
96
147
  message: string;
97
148
  };
149
+ /**
150
+ * Messaging path cannot be initialized for the given origin
151
+ */
98
152
  18: {
99
153
  message: string;
100
154
  };
155
+ /**
156
+ * Message cannot be verified for the given origin
157
+ */
101
158
  19: {
102
159
  message: string;
103
160
  };
161
+ /**
162
+ * Payload hash does not match the stored hash
163
+ */
104
164
  20: {
105
165
  message: string;
106
166
  };
167
+ /**
168
+ * New value is the same as existing value
169
+ */
107
170
  21: {
108
171
  message: string;
109
172
  };
173
+ /**
174
+ * Caller is not authorized (not OApp or delegate)
175
+ */
110
176
  22: {
111
177
  message: string;
112
178
  };
179
+ /**
180
+ * Endpoint ID is not supported by the library
181
+ */
113
182
  23: {
114
183
  message: string;
115
184
  };
185
+ /**
186
+ * ZRO fee must be greater than zero when pay_in_zro is true
187
+ */
116
188
  24: {
117
189
  message: string;
118
190
  };
191
+ /**
192
+ * ZRO token address is not set
193
+ */
119
194
  25: {
120
195
  message: string;
121
196
  };
@@ -230,11 +305,11 @@ export interface MessageLibVersion {
230
305
  */
231
306
  export interface Timeout {
232
307
  /**
233
- * Unix timestamp when the timeout expires.
308
+ * Unix timestamp in seconds when the timeout expires.
234
309
  */
235
310
  expiry: u64;
236
311
  /**
237
- * The new library address to transition to.
312
+ * The old library address that remains valid during the grace period.
238
313
  */
239
314
  lib: string;
240
315
  }
@@ -429,6 +504,9 @@ export declare const OwnableError: {
429
504
  1035: {
430
505
  message: string;
431
506
  };
507
+ 1036: {
508
+ message: string;
509
+ };
432
510
  };
433
511
  /**
434
512
  * BytesExtError: 1040-1049
@@ -453,9 +531,9 @@ export declare const UpgradeableError: {
453
531
  };
454
532
  };
455
533
  /**
456
- * MultisigError: 1060-1069
534
+ * MultiSigError: 1060-1069
457
535
  */
458
- export declare const MultisigError: {
536
+ export declare const MultiSigError: {
459
537
  1060: {
460
538
  message: string;
461
539
  };
@@ -480,8 +558,11 @@ export declare const MultisigError: {
480
558
  1067: {
481
559
  message: string;
482
560
  };
561
+ 1068: {
562
+ message: string;
563
+ };
483
564
  };
484
- export type MultisigStorage = {
565
+ export type MultiSigStorage = {
485
566
  tag: "Signers";
486
567
  values: void;
487
568
  } | {
@@ -537,20 +618,7 @@ export interface Client {
537
618
  dst_eid: u32;
538
619
  total_native_fee: i128;
539
620
  pay_in_zro: boolean;
540
- }, txnOptions?: {
541
- /**
542
- * The fee to pay for the transaction. Default: BASE_FEE
543
- */
544
- fee?: number;
545
- /**
546
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
547
- */
548
- timeoutInSeconds?: number;
549
- /**
550
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
551
- */
552
- simulate?: boolean;
553
- }) => Promise<AssembledTransaction<i128>>;
621
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<i128>>;
554
622
  /**
555
623
  * Construct and simulate a set_native_fee_bp 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.
556
624
  * Sets the native fee percentage in basis points.
@@ -560,20 +628,7 @@ export interface Client {
560
628
  */
561
629
  set_native_fee_bp: ({ native_fee_bp }: {
562
630
  native_fee_bp: u32;
563
- }, txnOptions?: {
564
- /**
565
- * The fee to pay for the transaction. Default: BASE_FEE
566
- */
567
- fee?: number;
568
- /**
569
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
570
- */
571
- timeoutInSeconds?: number;
572
- /**
573
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
574
- */
575
- simulate?: boolean;
576
- }) => Promise<AssembledTransaction<null>>;
631
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
577
632
  /**
578
633
  * Construct and simulate a set_fee_enabled 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.
579
634
  * Enables or disables fee collection globally.
@@ -583,20 +638,7 @@ export interface Client {
583
638
  */
584
639
  set_fee_enabled: ({ fee_enabled }: {
585
640
  fee_enabled: boolean;
586
- }, txnOptions?: {
587
- /**
588
- * The fee to pay for the transaction. Default: BASE_FEE
589
- */
590
- fee?: number;
591
- /**
592
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
593
- */
594
- timeoutInSeconds?: number;
595
- /**
596
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
597
- */
598
- simulate?: boolean;
599
- }) => Promise<AssembledTransaction<null>>;
641
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
600
642
  /**
601
643
  * Construct and simulate a set_zro_fee_lib 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.
602
644
  * Sets or removes the ZRO fee library for custom ZRO token fee calculations.
@@ -606,20 +648,7 @@ export interface Client {
606
648
  */
607
649
  set_zro_fee_lib: ({ zro_fee_lib }: {
608
650
  zro_fee_lib: Option<string>;
609
- }, txnOptions?: {
610
- /**
611
- * The fee to pay for the transaction. Default: BASE_FEE
612
- */
613
- fee?: number;
614
- /**
615
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
616
- */
617
- timeoutInSeconds?: number;
618
- /**
619
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
620
- */
621
- simulate?: boolean;
622
- }) => Promise<AssembledTransaction<null>>;
651
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
623
652
  /**
624
653
  * Construct and simulate a withdraw_token transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
625
654
  * Withdraws any token (including native XLM) from the contract to a specified address.
@@ -635,127 +664,36 @@ export interface Client {
635
664
  token: string;
636
665
  to: string;
637
666
  amount: i128;
638
- }, txnOptions?: {
639
- /**
640
- * The fee to pay for the transaction. Default: BASE_FEE
641
- */
642
- fee?: number;
643
- /**
644
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
645
- */
646
- timeoutInSeconds?: number;
647
- /**
648
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
649
- */
650
- simulate?: boolean;
651
- }) => Promise<AssembledTransaction<null>>;
667
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
652
668
  /**
653
669
  * Construct and simulate a native_fee_bp 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.
654
670
  * Returns the native fee percentage in basis points.
655
671
  */
656
- native_fee_bp: (txnOptions?: {
657
- /**
658
- * The fee to pay for the transaction. Default: BASE_FEE
659
- */
660
- fee?: number;
661
- /**
662
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
663
- */
664
- timeoutInSeconds?: number;
665
- /**
666
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
667
- */
668
- simulate?: boolean;
669
- }) => Promise<AssembledTransaction<u32>>;
672
+ native_fee_bp: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>;
670
673
  /**
671
674
  * Construct and simulate a fee_enabled 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.
672
675
  * Returns whether fee collection is enabled.
673
676
  */
674
- fee_enabled: (txnOptions?: {
675
- /**
676
- * The fee to pay for the transaction. Default: BASE_FEE
677
- */
678
- fee?: number;
679
- /**
680
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
681
- */
682
- timeoutInSeconds?: number;
683
- /**
684
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
685
- */
686
- simulate?: boolean;
687
- }) => Promise<AssembledTransaction<boolean>>;
677
+ fee_enabled: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
688
678
  /**
689
679
  * Construct and simulate a zro_fee_lib 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.
690
680
  * Returns the ZRO fee library address if set.
691
681
  */
692
- zro_fee_lib: (txnOptions?: {
693
- /**
694
- * The fee to pay for the transaction. Default: BASE_FEE
695
- */
696
- fee?: number;
697
- /**
698
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
699
- */
700
- timeoutInSeconds?: number;
701
- /**
702
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
703
- */
704
- simulate?: boolean;
705
- }) => Promise<AssembledTransaction<Option<string>>>;
682
+ zro_fee_lib: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
706
683
  /**
707
684
  * 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.
708
685
  */
709
- authorizer: (txnOptions?: {
710
- /**
711
- * The fee to pay for the transaction. Default: BASE_FEE
712
- */
713
- fee?: number;
714
- /**
715
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
716
- */
717
- timeoutInSeconds?: number;
718
- /**
719
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
720
- */
721
- simulate?: boolean;
722
- }) => Promise<AssembledTransaction<string>>;
686
+ authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
723
687
  /**
724
688
  * 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.
725
689
  * Returns the current owner address, or None if no owner is set.
726
690
  */
727
- owner: (txnOptions?: {
728
- /**
729
- * The fee to pay for the transaction. Default: BASE_FEE
730
- */
731
- fee?: number;
732
- /**
733
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
734
- */
735
- timeoutInSeconds?: number;
736
- /**
737
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
738
- */
739
- simulate?: boolean;
740
- }) => Promise<AssembledTransaction<Option<string>>>;
691
+ owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
741
692
  /**
742
693
  * 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.
743
694
  * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
744
695
  */
745
- pending_owner: (txnOptions?: {
746
- /**
747
- * The fee to pay for the transaction. Default: BASE_FEE
748
- */
749
- fee?: number;
750
- /**
751
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
752
- */
753
- timeoutInSeconds?: number;
754
- /**
755
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
756
- */
757
- simulate?: boolean;
758
- }) => Promise<AssembledTransaction<Option<string>>>;
696
+ pending_owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
759
697
  /**
760
698
  * 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.
761
699
  * Transfers ownership immediately to a new address.
@@ -769,20 +707,7 @@ export interface Client {
769
707
  */
770
708
  transfer_ownership: ({ new_owner }: {
771
709
  new_owner: string;
772
- }, txnOptions?: {
773
- /**
774
- * The fee to pay for the transaction. Default: BASE_FEE
775
- */
776
- fee?: number;
777
- /**
778
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
779
- */
780
- timeoutInSeconds?: number;
781
- /**
782
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
783
- */
784
- simulate?: boolean;
785
- }) => Promise<AssembledTransaction<null>>;
710
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
786
711
  /**
787
712
  * 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.
788
713
  * Proposes an ownership transfer to a new address.
@@ -804,20 +729,7 @@ export interface Client {
804
729
  propose_ownership_transfer: ({ new_owner, ttl }: {
805
730
  new_owner: string;
806
731
  ttl: u32;
807
- }, txnOptions?: {
808
- /**
809
- * The fee to pay for the transaction. Default: BASE_FEE
810
- */
811
- fee?: number;
812
- /**
813
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
814
- */
815
- timeoutInSeconds?: number;
816
- /**
817
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
818
- */
819
- simulate?: boolean;
820
- }) => Promise<AssembledTransaction<null>>;
732
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
821
733
  /**
822
734
  * 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.
823
735
  * Accepts a pending 2-step ownership transfer.
@@ -827,20 +739,7 @@ export interface Client {
827
739
  * # Panics
828
740
  * - `NoPendingTransfer` if there is no pending transfer (or it expired)
829
741
  */
830
- accept_ownership: (txnOptions?: {
831
- /**
832
- * The fee to pay for the transaction. Default: BASE_FEE
833
- */
834
- fee?: number;
835
- /**
836
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
837
- */
838
- timeoutInSeconds?: number;
839
- /**
840
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
841
- */
842
- simulate?: boolean;
843
- }) => Promise<AssembledTransaction<null>>;
742
+ accept_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
844
743
  /**
845
744
  * 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.
846
745
  * Permanently renounces ownership.
@@ -849,20 +748,7 @@ export interface Client {
849
748
  * - `OwnerNotSet` if no owner is currently set
850
749
  * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
851
750
  */
852
- renounce_ownership: (txnOptions?: {
853
- /**
854
- * The fee to pay for the transaction. Default: BASE_FEE
855
- */
856
- fee?: number;
857
- /**
858
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
859
- */
860
- timeoutInSeconds?: number;
861
- /**
862
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
863
- */
864
- simulate?: boolean;
865
- }) => Promise<AssembledTransaction<null>>;
751
+ renounce_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
866
752
  /**
867
753
  * 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.
868
754
  * Extends the instance TTL.
@@ -875,20 +761,7 @@ export interface Client {
875
761
  extend_instance_ttl: ({ threshold, extend_to }: {
876
762
  threshold: u32;
877
763
  extend_to: u32;
878
- }, txnOptions?: {
879
- /**
880
- * The fee to pay for the transaction. Default: BASE_FEE
881
- */
882
- fee?: number;
883
- /**
884
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
885
- */
886
- timeoutInSeconds?: number;
887
- /**
888
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
889
- */
890
- simulate?: boolean;
891
- }) => Promise<AssembledTransaction<null>>;
764
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
892
765
  /**
893
766
  * 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.
894
767
  * Sets TTL configs for instance and persistent storage.
@@ -907,38 +780,12 @@ export interface Client {
907
780
  set_ttl_configs: ({ instance, persistent }: {
908
781
  instance: Option<TtlConfig>;
909
782
  persistent: Option<TtlConfig>;
910
- }, txnOptions?: {
911
- /**
912
- * The fee to pay for the transaction. Default: BASE_FEE
913
- */
914
- fee?: number;
915
- /**
916
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
917
- */
918
- timeoutInSeconds?: number;
919
- /**
920
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
921
- */
922
- simulate?: boolean;
923
- }) => Promise<AssembledTransaction<null>>;
783
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
924
784
  /**
925
785
  * 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.
926
786
  * Returns the current TTL configs as (instance_config, persistent_config).
927
787
  */
928
- ttl_configs: (txnOptions?: {
929
- /**
930
- * The fee to pay for the transaction. Default: BASE_FEE
931
- */
932
- fee?: number;
933
- /**
934
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
935
- */
936
- timeoutInSeconds?: number;
937
- /**
938
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
939
- */
940
- simulate?: boolean;
941
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
788
+ ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
942
789
  /**
943
790
  * 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.
944
791
  * Permanently freezes TTL configs, preventing any future modifications.
@@ -949,38 +796,12 @@ export interface Client {
949
796
  * # Panics
950
797
  * - `TtlConfigAlreadyFrozen` if already frozen
951
798
  */
952
- freeze_ttl_configs: (txnOptions?: {
953
- /**
954
- * The fee to pay for the transaction. Default: BASE_FEE
955
- */
956
- fee?: number;
957
- /**
958
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
959
- */
960
- timeoutInSeconds?: number;
961
- /**
962
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
963
- */
964
- simulate?: boolean;
965
- }) => Promise<AssembledTransaction<null>>;
799
+ freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
966
800
  /**
967
801
  * 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.
968
802
  * Returns whether TTL configs are frozen.
969
803
  */
970
- is_ttl_configs_frozen: (txnOptions?: {
971
- /**
972
- * The fee to pay for the transaction. Default: BASE_FEE
973
- */
974
- fee?: number;
975
- /**
976
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
977
- */
978
- timeoutInSeconds?: number;
979
- /**
980
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
981
- */
982
- simulate?: boolean;
983
- }) => Promise<AssembledTransaction<boolean>>;
804
+ is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
984
805
  }
985
806
  export declare class Client extends ContractClient {
986
807
  readonly options: ContractClientOptions;