@layerzerolabs/protocol-stellar-v2 0.2.22 → 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: 34116 bytes (33.32 KB)
9
+ * Size: 36129 bytes (35.28 KB)
10
10
  */
11
- export declare const WASM_BASE64 = "AGFzbQEAAAABmQEaYAJ+fgF+YAN+fn4BfmABfgF+YAR+fn5+AX5gAAF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAABf2ABfwBgAX8Bf2AAAGACfn8AYAF+AGADf39/AGACfn4AYAN/fn4AYAJ/fwF+YAR/f39/AX5gA35/fgF/YAR/fn5+AX9gBn9+fn9+fgBgA35/fwBgA35+fgF/YAV+f39/fwACowEbAWwBMQAAAWwBXwABAWEBMAACAXgBMAAAAWwBNgACAWIBMAACAWwBNwADAXgBMQAAAWwBMgAAAXYBXwAEAWQBXwABAWIBOAACAWIBZQAAAWkBXwACAWkBMAACAWIBMwAAAWIBagAAAWIBMQADAW0BOQABAW0BYQADAXYBZwAAAXgBMwAEAXgBOAAEAWwBMAAAAWwBOAAAAXgBNQACAWIBZgABA2FgBQYHCAcHCQoFCwkGDAQECg0MCg4GCg8IBAYCCAoCBAUEBAQABAIOEAAMCRESAhMEDAQAAAgFBQYEBQUSBAQBDAQEBAQECQAIFAMVABYBABIXCwYSGAwGDAgIGQ8IDwYPBQMBABEGIQR/AUGAgMAAC38AQbyCwAALfwBB84TAAAt/AEGAhcAACwefAxwGbWVtb3J5AgAHdXBncmFkZQA1B21pZ3JhdGUAOAZmcmVlemUAOQlpc19mcm96ZW4AOwphdXRob3JpemVyADwFb3duZXIAPQ1wZW5kaW5nX293bmVyAD8SdHJhbnNmZXJfb3duZXJzaGlwAEAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAQxBhY2NlcHRfb3duZXJzaGlwAEoScmVub3VuY2Vfb3duZXJzaGlwAEwTZXh0ZW5kX2luc3RhbmNlX3R0bABND3NldF90dGxfY29uZmlncwBOC3R0bF9jb25maWdzAFMSZnJlZXplX3R0bF9jb25maWdzAFcVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAFgNX19jb25zdHJ1Y3RvcgBZCGVuZHBvaW50AFsGdWxuMzAyAF0JbG9jYWxfZWlkAF8NaW5pdGlhbGl6YWJsZQBhCnZlcmlmaWFibGUAZApleGVjdXRhYmxlAGYOdWxuX3ZlcmlmaWFibGUAaQFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMKoFZgTQECfkIAIQICQAJAIAEQnICAgAAiA0ICEJ2AgIAARQ0AIANCAhCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQcCAwIAAQQgQsYCAgAAgASgCAA0DIAEgASkDCBCygICAAAwCCyABQciAwIAAQQYQsYCAgAAgASgCAA0CIAEgASkDCBCygICAAAwBCyABQc6AwIAAQQgQsYCAgAAgASgCAA0BIAEgASkDCBCygICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCXgICAAEIBUQsVACAAEJyAgIAAIAFCAhCBgICAABoLDwAgACABEKCAgIAAQQFzCw0AIAAgARCDgICAAFALWAECfyOAgICAAEEQayIAJICAgIAAIABBBGoQooCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKOAgIAAC0EAEKSAgIAAIQEgAEEQaiSAgICAACABQf0BcQsMACAAQQEQ1ICAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQmICAgAAaC0cCAX8BfkECIQECQCAAEPmAgIAAIgJCAhCdgICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyABC4sBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqEKKAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBCjgICAAAtBACEBAkBBABCmgICAACICQgIQnYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUHShMCAAEEGELGAgIAAIAEoAgANAyABIAEpAwgQsoCAgAAMAgsgAUHYhMCAAEEIELGAgIAAIAEoAgANAiABIAEpAwgQsoCAgAAMAQsgAUHghMCAAEEKELGAgIAAIAEoAgANASABIAEpAwgQsoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPABCogICAABCCgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCigICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQo4CAgAALIAAQqoCAgAAgACkDCCEBIAApAwBBiggQq4CAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQqoCAgAAgACkDCCEBIAApAwBBiggQq4CAgAAgARCCgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqEKKAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCjgICAAAsgABCwgICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQroCAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAEK2AgIAAAkAgACkDAFANAEKDgICAsIEBEK6AgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCigICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQo4CAgAALQgAhAgJAAkBBARCvgICAACIDQgAQnYCAgABFDQAgA0IAEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsACwsAIAAQmYCAgAAaC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUHlg8CAAEEMELGAgIAAIAEoAgANAiABIAEpAwgQsoCAgAAMAQsgAUHgg8CAAEEFELGAgIAAIAEoAgANASABIAEpAwgQsoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABCvgICAACICQgIQnYCAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhD2gICAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQ1oCAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALDgBBgIDAgAAQtICAgAALDAAgAEEgEO6AgIAAC5gBAQF/I4CAgIAAQRBrIgEkgICAgAAgASAAELaAgIAAAkACQCABKAIAQQFGDQAgASkDCCEAIAEQooCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKOAgIAACxCngICAABChgICAAA0BQQEQt4CAgAAgABCEgICAABogAUEQaiSAgICAAEICDwsAC0KDgICAwIMBEK6AgIAAAAtCAQF+QgEhAgJAIAFC/wGDQsgAUg0AIAEQi4CAgABCgICAgHCDQoCAgICABFINACAAIAE3AwhCACECCyAAIAI3AwALDABBASAAELqAgIAAC60BAQF/I4CAgIAAQRBrIgEkgICAgAACQAJAAkAgAEL/AYNCyABSDQAgAUEEahCigICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQo4CAgAALEKeAgIAAQQEQpICAgABB/QFxRQ0BIAAQhYCAgABC/wGDQgJSDQJBABC3gICAACABQRBqJICAgIAAQgIPCwALQoOAgICwgwEQroCAgAAAC0KDgICAoIMBEK6AgIAAAAtaAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahCigICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQo4CAgAALEKeAgIAAQQBBARC6gICAACAAQRBqJICAgIAAQgILGgAgABD5gICAACABrUL/AYNCAhCBgICAABoLCQAQoYCAgACtCwgAEKiAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQqoCAgAAgACkDACAAKQMIEL6AgIAAIQEgAEEQaiSAgICAACABCw0AIAFCAiAAp0EBcRsLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCtgICAACAAKQMAIAApAwgQvoCAgAAhASAAQRBqJICAgIAAIAELfQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINACABQQRqEKKAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCjgICAAAsQqYCAgAAhAhCsgICAACAAEMGAgIAAIAIgABDCgICAACABQRBqJICAgIAAQgIPCwALDgBBACAAQgIQxoCAgAALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABB14LAgABBFRDHgICAABDIgICAACEDIAIgADcDCCACIAE3AwAgA0GAg8CAAEECIAJBAhDJgICAABCHgICAABogAkEQaiSAgICAAAvdAgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQhqEKKAgIAAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCjgICAAAsQqYCAgAAhAwJAAkAgAUL/////D1YNACACQQhqEK2AgIAAIAIpAxAhASACKQMIQYgIEKuAgIAAIAEgABCDgICAAFBFDQMQxICAgAAMAQsQxYCAgAAgAUIgiKdJDQNBASAAQgAQxoCAgABBARCvgICAAEIAIAFChICAgHCDIgEgARCGgICAABpBkIPAgABBFhDHgICAABDIgICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARBrIPAgABBAyACQQhqQQMQyYCAgAAQh4CAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQroCAgAAAC0KDgICA8IABEK6AgIAAAAsTAEEBEK+AgIAAQgAQiICAgAAaCzMBAn4QlYCAgAAhAAJAEJaAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LENqAgIAAAAsVACAAEK+AgIAAIAEgAhCBgICAABoLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ9oCAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARDWgICAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJKAgIAAC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAEKKAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCjgICAAAsgABCtgICAACAAKQMIIQEgACkDAEGICBCrgICAACABEIKAgIAAGiAAELCAgIAAAkAgACgCAA0AEMuAgIAAAAsgACkDCCECEMSAgIAAIAEQwYCAgAAgAiABEMKAgIAAIABBEGokgICAgABCAgsJABDagICAAAALoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQooCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKOAgIAACxCpgICAACEBEKyAgIAAQQAQr4CAgABCAhCIgICAABpBxIPAgABBExDHgICAABDIgICAACECIAAgATcDACACQdiDwIAAQQEgAEEBEMmAgIAAEIeAgIAAGiAAQRBqJICAgIAAQgILMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQo4CAgABCAg8LAAveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQz4CAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDPgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEKKAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBCjgICAAAsQp4CAgAACQAJAAkAQpYCAgAANABDFgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABCugICAAAALQoOAgIDA/wAQroCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBDQgICAAAwBC0EBEKaAgIAAQgIQiICAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBDRgICAAAwBC0ECEKaAgIAAQgIQiICAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBjITAgABBDxDHgICAABDIgICAACEAIAJBKGoQ0oCAgAAhASACIAJBNGoQ0oCAgAA3A0ggAiABNwNAIABBsITAgABBAiACQcAAakECEMmAgIAAEIeAgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARD3gICAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAACw4AQQEgACABEPqAgIAACw4AQQIgACABEPqAgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDVgICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEKKAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCjgICAAAsgAEEIahCigICAACAAQRRqIgFBAhDUgICAACAAQTBqIABBCGoQ1YCAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABENWAgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhDWgICAACECIABBwABqJICAgIAAIAILdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABEKaAgIAAIgRCAhCdgICAAEUNACACQQRqIARCAhCAgICAABD3gICAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ+ICAgAAPCyAAQgA3AwAgAEICNwMICxoAIACtQiCGQgSEIAGtQiCGQgSEEJSAgIAAC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCigICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQo4CAgAALEKeAgIAAAkAQpYCAgABFDQBCg4CAgOD/ABCugICAAAALQQAQpoCAgABCAUICEIGAgIAAGkHAhMCAAEESEMeAgIAAEMiAgIAAQQRBACAAQRhqQQAQyYCAgAAQh4CAgAAaIABBIGokgICAgABCAgsJABClgICAAK0LywEAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAJC/wGDQs0AUg0AQYDLHkGA0h8Q0ICAgABBgMseQYDSHxDRgICAAEEAEK+AgIAAQgIQnYCAgAANASAAEMGAgIAAQQAgARCegICAAEEBIAIQnoCAgAAgAUKO0q4VEImAgIAAEIqAgIAAIgFC/wGDQgRSDQJBAhCcgICAACABQoSAgIBwg0ICEIGAgIAAGkICDwsAC0KDgICAkIEBEK6AgIAAAAsQ2oCAgAAACwkAEPKAgIAAAAsIABDcgICAAAtrAgF/AX4jgICAgABBEGsiACSAgICAACAAEKKAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCjgICAAAsgAEEAEJuAgIAAAkAgACgCAA0AEMuAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQsIABDegICAAAtrAgF/AX4jgICAgABBEGsiACSAgICAACAAEKKAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCjgICAAAsgAEEBEJuAgIAAAkAgACgCAA0AEMuAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQsPABDggICAAK1CIIZCBIQLiAECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQooCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKOAgIAACwJAAkBBAhCcgICAACIBQgIQnYCAgABFDQAgAUICEICAgIAAIgFC/wGDQgRRDQEACxDLgICAAAALIABBEGokgICAgAAgAUIgiKcLugEBAn8jgICAgABBwABrIgIkgICAgAAgAkEgaiAAEOKAgIAAAkAgAigCIEEBRg0AIAJBCGpBEGogAkE4aikDADcDACACQRBqIAJBIGpBEGopAwA3AwAgAiACKQMoNwMIIAFC/wGDQs0AUg0AIAJBIGoQooCAgAACQCACKAIgQQFHDQAgAigCJCACKAIoEKOAgIAACxDcgICAACACQQhqIAEQ44CAgAAhAyACQcAAaiSAgICAACADrQ8LAAviAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUHMgcCAAEEDIAJBCGpBAxD1gICAACACQSBqIAIpAwgQ9ICAgAAgAigCIA0AIAIpAyghASACQSBqIAIpAxAQtoCAgAAgAigCIA0AIAIpAxgiBUL/AYNCBFINACACKQMoIQQgACABNwMQIAAgBDcDCCAAIAVCIIg+AhhCACEECyAAIAQ3AwAgAkEwaiSAgICAAAu6AQIBfwJ+I4CAgIAAQSBrIgMkgICAgABB5IHAgABBDRDHgICAACEEIAEQ8YCAgAAhBSADIAI3AwggAyAFNwMAQQAhAQN/AkAgAUEQRw0AQQAhAQJAA0AgAUEQRg0BIANBEGogAWogAyABaikDADcDACABQQhqIQEMAAsLIAAgBCADQRBqQQIQ1oCAgAAQ74CAgAAhASADQSBqJICAgIAAIAEPCyADQRBqIAFqQgI3AwAgAUEIaiEBDAALC7YBAQJ/I4CAgIAAQcAAayIEJICAgIAAIARBIGogABDigICAAAJAIAQoAiBBAUYNACAEQQhqQRBqIARBOGopAwA3AwAgBEEQaiAEQSBqQRBqKQMANwMAIAQgBCkDKDcDCCABQv8Bg0LNAFINACACQv8Bg0LNAFINACAEQSBqIAMQtoCAgAAgBCgCIEEBRg0AIARBCGogASACIAQpAygQ5YCAgAAhBSAEQcAAaiSAgICAACAFrQ8LAAurAwMBfwN+AX8jgICAgABBMGsiBCSAgICAACAEQRhqEKKAgIAAAkAgBCgCGEEBRw0AIAQoAhwgBCgCIBCjgICAAAsQ3ICAgAAhBSAANQIQIQZB8YHAgABBGBDHgICAACEHIAQgAjcDECAEIAZCIIZCBIQ3AwggBCABNwMAQQAhCAJAAkADQAJAIAhBGEcNAEEAIQgCQANAIAhBGEYNASAEQRhqIAhqIAQgCGopAwA3AwAgCEEIaiEIDAALCyAFIAcgBEEYakEDENaAgIAAEO+AgIAARQ0CQcSCwIAAQQoQx4CAgAAhAiAAEPGAgIAAIQYgBCABNwMIIAQgBjcDAEEAIQgDQAJAIAhBEEcNAEEAIQgCQANAIAhBEEYNASAEQRhqIAhqIAQgCGopAwA3AwAgCEEIaiEIDAALCyAFIAIgBEEYakECENaAgIAAEO+AgIAARQ0EIAMQs4CAgAAQoICAgABBAXMhCAwFCyAEQRhqIAhqQgI3AwAgCEEIaiEIDAALCyAEQRhqIAhqQgI3AwAgCEEIaiEIDAALC0EAIQgLIARBMGokgICAgAAgCAv6BQICfwZ+I4CAgIAAQdAAayICJICAgIAAIAJBCGogABDigICAAAJAAkAgAigCCEEBRg0AIAFC/wGDQs0AUg0AIAIoAiAhAyACKQMYIQAgAikDECEEIAJBCGoQooCAgAACQCACKAIIQQFHDQAgAigCDCACKAIQEKOAgIAACyACQShqENyAgIAAIgUgASADIAQgABDngICAABCzgICAACEGQaCAwIAAELSAgIAAIQcCQAJAAkACQCACKAIoDQBBloLAgABBEhDHgICAACEHIAIgBDcDSCACIAE3AzggAiADrUIghkIEhDcDQEEAIQMDQAJAIANBGEcNAEEAIQMCQANAIANBGEYNASACQQhqIANqIAJBOGogA2opAwA3AwAgA0EIaiEDDAALCyAAIAUgByACQQhqQQMQ1oCAgAAQ6ICAgABWDQMgAkEIakGFgcCAAEEIELGAgIAAIAIoAggNBiACQQhqIAIpAxAQsoCAgAAMBQsgAkEIaiADakICNwMAIANBCGohAwwACwsCQCACKQMwIgggBxCfgICAAEUNAEGJgsCAAEENEMeAgIAAIQkgAiAENwNIIAIgATcDOCACIAOtQiCGQgSENwNAQQAhAwNAAkAgA0EYRw0AQQAhAwJAA0AgA0EYRg0BIAJBCGogA2ogAkE4aiADaikDADcDACADQQhqIQMMAAsLIAAgBSAJIAJBCGpBAxDWgICAABDogICAAFYNAiACQQhqQfuAwIAAQQoQsYCAgAAgAigCCA0GIAJBCGogAikDEBCygICAAAwFCyACQQhqIANqQgI3AwAgA0EIaiEDDAALCyAIIAYQn4CAgABFDQAgCCAHEJ+AgIAADQELIAJBCGpB1oDAgABBDRCxgICAACACKAIIDQIgAkEIaiACKQMQELKAgIAADAELIAJBCGpB44DAgABBGBCxgICAACACKAIIDQEgAkEIaiACKQMQELKAgIAACyACKQMQIQEgAikDCFANAQsACyACQdAAaiSAgICAACABC64CAgF/AX4jgICAgABBwABrIgYkgICAgABBqILAgABBFBDHgICAACEHIAZBIGogBRDzgICAAAJAIAYoAiBBAUYNACAGIAYpAyg3AxggBiAENwMQIAYgAjcDACAGIAOtQiCGQgSENwMIQQAhAwJAA0ACQCADQSBHDQBBACEDAkADQCADQSBGDQEgBkEgaiADaiAGIANqKQMANwMAIANBCGohAwwACwsCQAJAIAEgByAGQSBqQQQQ1oCAgAAQioCAgAAiBUICUg0AQgAhBQwBCyAGQSBqIAUQtoCAgAAgBigCIEEBRg0DIAYpAyghBEIBIQULIAAgBDcDCCAAIAU3AwAgBkHAAGokgICAgAAPCyAGQSBqIANqQgI3AwAgA0EIaiEDDAALCxDagICAAAALAAtRAQF/I4CAgIAAQRBrIgMkgICAgAAgAyAAIAEgAhCKgICAABD0gICAAAJAIAMoAgBBAUcNABDagICAAAALIAMpAwghAiADQRBqJICAgIAAIAIL5QgGAX8BfgF/AX4BfwF+I4CAgIAAQcAAayICJICAgIAAAkACQCAAQv8Bg0LIAFINACACIAA3AwAgAkEIaiABELaAgIAAIAIoAghBAUYNACACKQMQIQMgAkEIahCigICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQo4CAgAALAkACQCACKQMAEIuAgIAAQoCAgIBwg0KAgICAkApSDQAgAkEANgI0IAIgAjYCMAJAIAJBMGpBARDqgICAACIAEIuAgIAAQoCAgIBwg0KAgICAEFINACACQQA6AAgCQCAAEIuAgIAAQoCAgIBwg0KAgICAEFINACAAIAJBCGpBARDrgICAAAJAIAItAAhBAUcNAAJAIAJBMGpBCBDqgICAACIAEIuAgIAAQoCAgIBwg0KAgICAgAFSDQAgAkIANwMIIAAQi4CAgABCgICAgHCDQoCAgICAAVINAiAAIAJBCGpBCBDrgICAACACKQMIIQAgAkEwahDsgICAACEEIAJBMGoQ7YCAgAAhBSACQTBqEOyAgIAAIQYgAkEwahDtgICAACEBAkAgBhDggICAAEcNAEG8gsCAAEEIEO6AgIAAIAEQjICAgAAQhYCAgAAiAUL/AYNCzQBSDQcgAiAAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISEIgA3AxAgAiAFNwMIIAIgBDYCGAJAENyAgIAAIAJBCGogARDjgICAAA0AIAJBCGpBqIHAgABBEBCxgICAACACKAIIDQggAkEIaiACKQMQELKAgIAADAcLAkACQCACQQhqIAEQ3oCAgAAiByADEOWAgIAARQ0AIAJBMGoQ3ICAgAAgASAEIAUgABDngICAACACKAIwRQ0BIAIpAzggAxCggICAAEUNAQsgAkEIakGggcCAAEEIELGAgIAAIAIoAggNCCACQQhqIAIpAxAQsoCAgAAMBwsgAikDACEAQcSCwIAAQQoQx4CAgAAhASACIAM3AyggAiAANwMgQQAhBANAAkAgBEEQRw0AQQAhBAJAA0AgBEEQRg0BIAJBMGogBGogAkEgaiAEaikDADcDACAEQQhqIQQMAAsLAkAgByABIAJBMGpBAhDWgICAABDvgICAAA0AIAJBCGpBjYHAgABBCRCxgICAACACKAIIDQogAkEIaiACKQMQELKAgIAADAkLIAJBCGpBloHAgABBChCxgICAACACKAIIDQkgAkEIaiACKQMQELKAgIAADAgLIAJBMGogBGpCAjcDACAEQQhqIQQMAAsLQoOAgIAQEK6AgIAAAAtCg4CAgICCARCugICAAAALQoOAgIDQiQEQroCAgAAACxDwgICAAAALQoOAgICAggEQroCAgAAAC0KDgICAwIkBEK6AgIAAAAsgAikDECEAIAIpAwhQDQELAAsgAkHAAGokgICAgAAgAAt1AgJ/AX4CQAJAIAAoAgQiAiABaiIBIAJJDQAgASAAKAIAIgMpAwAQi4CAgABCIIinSw0BIAMpAwAgAq1CIIZCBIQgAa1CIIZCBIQQmoCAgAAhBCAAIAE2AgQgBA8LENqAgIAAAAtCg4CAgID9ABCugICAAAALHwAgAEIEIAGtQiCGQgSEIAKtQiCGQgSEEJGAgIAAGgu5AQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABBBBDqgICAACICEIuAgIAAQoCAgIBwg0KAgICAwABSDQAgAUEANgIMIAIQi4CAgABCgICAgHCDQoCAgIDAAFINASACIAFBDGpBBBDrgICAACABKAIMIQAgAUEQaiSAgICAACAAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycg8LQoOAgICAggEQroCAgAAACxDwgICAAAAL/wEDAX8BfgJ/I4CAgIAAQcAAayIBJICAgIAAAkACQCAAQSAQ6oCAgAAiAhCLgICAAEKAgICAcINCgICAgIAEUg0AIAFBIGpBGGoiAEIANwMAIAFBIGpBEGoiA0IANwMAIAFBIGpBCGoiBEIANwMAIAFCADcDICACEIuAgIAAQoCAgIBwg0KAgICAgARSDQEgAiABQSBqQSAQ64CAgAAgAUEYaiAAKQMANwMAIAFBEGogAykDADcDACABQQhqIAQpAwA3AwAgASABKQMgNwMAIAEQtICAgAAhAiABQcAAaiSAgICAACACDwtCg4CAgICCARCugICAAAALEPCAgIAAAAsaACAArUIghkIEhCABrUIghkIEhBCPgICAAAs0AQF/QQEhAwJAAkACQCAAIAEgAhCKgICAAKdB/wFxDgIBAgALENqAgIAAAAtBACEDCyADCwkAENqAgIAAAAt9AgF/AX4jgICAgABBMGsiASSAgICAACABQSBqIAApAwgQ84CAgAACQCABKAIgQQFHDQAACyABIAEpAyg3AwggASAAKQMANwMQIAEgADUCEEIghkIEhDcDGEHMgcCAAEEDIAFBCGpBAxDJgICAACECIAFBMGokgICAgAAgAgsDAAALOwACQAJAIAFC//////////8AVg0AIAFCCIZCBoQhAQwBCyABEI2AgIAAIQELIABCADcDACAAIAE3AwgLXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCOgICAACEBCyAAIAM3AwAgACABNwMICzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCTgICAABoL2wECAX4EfwJAAkAgAkEJSw0AQgAhAyACIQQgASEFA0ACQCAEDQAgA0IIhkIOhCEDDAMLQQEhBgJAIAUtAAAiB0HfAEYNAAJAIAdBUGpB/wFxQQpJDQACQCAHQb9/akH/AXFBGkkNACAHQZ9/akH/AXFBGUsNBCAHQUVqIQYMAgsgB0FLaiEGDAELIAdBUmohBgsgA0IGhiAGrUL/AYOEIQMgBEF/aiEEIAVBAWohBQwACwsgAa1CIIZCBIQgAq1CIIZCBIQQkICAgAAhAwsgAEIANwMAIAAgAzcDCAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUH8g8CAAEECIAJBAhD1gICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQfyDwIAAQQIgA0ECEMmAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUHqhMCAAEEJELGAgIAAIAEoAgANAiABIAEpAwgQsoCAgAAMAQsgAUHShMCAAEEGELGAgIAAIAEoAgANASABIAEpAwgQsoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtWAgF/AX4jgICAgABBEGsiAySAgICAACAAEKaAgIAAIQQgAyABIAIQ+ICAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCBgICAABogA0EQaiSAgICAAAsL/QQBAEGAgMAAC/MEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////0VuZHBvaW50VWxuMzAyTG9jYWxFaWROb3RFeGVjdXRhYmxlVmVyaWZpZWRCdXROb3RFeGVjdXRhYmxlRXhlY3V0YWJsZUV4ZWN1dGVkVmVyaWZ5aW5nVmVyaWZpYWJsZVZlcmlmaWVkTm90SW5pdGlhbGl6YWJsZW5vbmNlc2VuZGVyc3JjX2VpZAAAuAAQAAUAAAC9ABAABgAAAMMAEAAHAAAAaW5pdGlhbGl6YWJsZWlzX3ZhbGlkX3JlY2VpdmVfbGlicmFyeWluYm91bmRfbm9uY2VsYXp5X2luYm91bmRfbm9uY2VpbmJvdW5kX3BheWxvYWRfaGFzaAAAABIAAAABdmVyaWZpYWJsZXRocmVzaG9sZG93bmVyc2hpcF90cmFuc2ZlcnJlZG5ld19vd25lcm9sZF9vd25lcgAAbAEQAAkAAAB1ARAACQAAAG93bmVyc2hpcF90cmFuc2ZlcnJpbmd0dGwAAABsARAACQAAAHUBEAAJAAAApgEQAAMAAABvd25lcnNoaXBfcmVub3VuY2VkAHUBEAAJAAAAT3duZXJQZW5kaW5nT3duZXJleHRlbmRfdG8AAPEBEAAJAAAATgEQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAAAbAhAACAAAACMCEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50TWlncmF0aW5nAKOmAQ5jb250cmFjdHNwZWN2MAAAAAQAAAAiRXJyb3JzIGZvciBMYXllclplcm9WaWV3IGNvbnRyYWN0LgAAAAAAAAAAABJMYXllclplcm9WaWV3RXJyb3IAAAAAAAEAAAApSW52YWxpZCBwYWNrZXQgaGVhZGVyIChkc3RfZWlkIG1pc21hdGNoKS4AAAAAAAAKSW52YWxpZEVJRAAAAAAAAQAAAAAAAACVVGhlIHR5cGUgb2YgZGF0YSByZXF1aXJlZCBmb3IgbWlncmF0aW9uLgpVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAHZSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGZsYWcgaXMgc2V0IGJ5IGEgcHJldmlvdXMgYHVwZ3JhZGVgIGNhbGwuAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAAAAAAAAAAAXlBlcm1hbmVudGx5IGZyZWV6ZXMgdGhlIGNvbnRyYWN0LCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgdXBncmFkZXMuClRoaXMgYWN0aW9uIGlzIGlycmV2ZXJzaWJsZS4AAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAZ1bG4zMDIAAAAAABMAAAAAAAAAAAAAAB1SZXR1cm5zIHRoZSBlbmRwb2ludCBhZGRyZXNzLgAAAAAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAAAbUmV0dXJucyB0aGUgVWxuMzAyIGFkZHJlc3MuAAAAAAZ1bG4zMDIAAAAAAAAAAAABAAAAEwAAAAAAAAAeUmV0dXJucyB0aGUgbG9jYWwgZW5kcG9pbnQgSUQuAAAAAAAJbG9jYWxfZWlkAAAAAAAAAAAAAAEAAAAEAAAAAAAAAFBDaGVja3MgaWYgYSBtZXNzYWdpbmcgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4gYW5kIHJlY2VpdmVyLgAAAA1pbml0aWFsaXphYmxlAAAAAAAAAgAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAQAAAAAAAAC0Q2hlY2tzIGlmIGEgbWVzc2FnZSBjYW4gYmUgdmVyaWZpZWQgYXQgdGhlIGVuZHBvaW50LgoKVmVyaWZpZXM6CjEuIFJlY2VpdmUgbGlicmFyeSBpcyB2YWxpZCBmb3IgdGhpcyByZWNlaXZlciBhbmQgc291cmNlCjIuIEVuZHBvaW50IG5vbmNlIGNoZWNrIHBhc3NlcwozLiBQYXlsb2FkIGhhc2ggaXMgbm90IGVtcHR5AAAACnZlcmlmaWFibGUAAAAAAAQAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAAAAAAtyZWNlaXZlX2xpYgAAAAATAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAEAAAABAAAAAAAAAClSZXR1cm5zIHRoZSBleGVjdXRpb24gc3RhdGUgb2YgYSBtZXNzYWdlLgAAAAAAAApleGVjdXRhYmxlAAAAAAACAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAfQAAAADkV4ZWN1dGlvblN0YXRlAAAAAAAAAAAA7lJldHVybnMgdGhlIGNvbWJpbmVkIHZlcmlmaWNhdGlvbiBzdGF0ZSBvZiBhIG1lc3NhZ2UuCgpUaGlzIGZ1bmN0aW9uIGNoZWNrczoKMS4gUGFja2V0IGhlYWRlciB2YWxpZGl0eSAoZHN0X2VpZCBtYXRjaGVzIGxvY2FsX2VpZCkKMi4gRW5kcG9pbnQgaW5pdGlhbGl6YWJsZSBzdGF0dXMKMy4gRW5kcG9pbnQgdmVyaWZpYWJsZSBzdGF0dXMKNC4gVUxOIHZlcmlmaWFibGUgc3RhdHVzIChEVk4gY29uZmlybWF0aW9ucykAAAAAAA51bG5fdmVyaWZpYWJsZQAAAAAAAgAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAQAAB9AAAAARVmVyaWZpY2F0aW9uU3RhdGUAAAAAAAACAAAAAAAAAAAAAAAUTGF5ZXJaZXJvVmlld1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAIRW5kcG9pbnQAAAAAAAAAAAAAAAZVbG4zMDIAAAAAAAAAAAAAAAAACExvY2FsRWlkAAAAAgAAAIFSZXByZXNlbnRzIHRoZSBleGVjdXRpb24gc3RhdGUgb2YgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKVXNlZCBieSBleGVjdXRvcnMgdG8gZGV0ZXJtaW5lIHdoZW4gYSBtZXNzYWdlIGlzIHJlYWR5IHRvIGJlIGRlbGl2ZXJlZC4AAAAAAAAAAAAADkV4ZWN1dGlvblN0YXRlAAAAAAAEAAAAAAAAAD5NZXNzYWdlIGlzIG5vdCByZWFkeSBmb3IgZXhlY3V0aW9uIC0gd2FpdGluZyBmb3IgdmVyaWZpY2F0aW9uLgAAAAAADU5vdEV4ZWN1dGFibGUAAAAAAAAAAAAARk1lc3NhZ2UgaXMgdmVyaWZpZWQgYnV0IGNhbm5vdCBiZSBleGVjdXRlZCB5ZXQgKHByaW9yIG5vbmNlcyBwZW5kaW5nKS4AAAAAABhWZXJpZmllZEJ1dE5vdEV4ZWN1dGFibGUAAAAAAAAAIE1lc3NhZ2UgaXMgcmVhZHkgdG8gYmUgZXhlY3V0ZWQuAAAACkV4ZWN1dGFibGUAAAAAAAAAAAAiTWVzc2FnZSBoYXMgYWxyZWFkeSBiZWVuIGV4ZWN1dGVkLgAAAAAACEV4ZWN1dGVkAAAAAgAAAIhSZXByZXNlbnRzIHRoZSB2ZXJpZmljYXRpb24gc3RhdGUgb2YgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGF0IHRoZSBVTE4gbGV2ZWwuCgpVc2VkIGJ5IERWTnMgYW5kIGV4ZWN1dG9ycyB0byB0cmFjayB2ZXJpZmljYXRpb24gcHJvZ3Jlc3MuAAAAAAAAABFWZXJpZmljYXRpb25TdGF0ZQAAAAAAAAQAAAAAAAAAM0RWTnMgYXJlIHN0aWxsIGNvbGxlY3Rpbmcgc2lnbmF0dXJlcy9jb25maXJtYXRpb25zLgAAAAAJVmVyaWZ5aW5nAAAAAAAAAAAAAEBIYXMgZW5vdWdoIERWTiBjb25maXJtYXRpb25zLCByZWFkeSB0byBiZSBjb21taXR0ZWQgdG8gZW5kcG9pbnQuAAAAClZlcmlmaWFibGUAAAAAAAAAAAAhQWxyZWFkeSB2ZXJpZmllZCBhdCB0aGUgZW5kcG9pbnQuAAAAAAAACFZlcmlmaWVkAAAAAAAAACVDYW5ub3QgYmUgaW5pdGlhbGl6ZWQgKHBhdGggYmxvY2tlZCkuAAAAAAAAEE5vdEluaXRpYWxpemFibGUAAAAFAAAAAAAAAAAAAAAKUGFja2V0U2VudAAAAAAAAQAAAAtwYWNrZXRfc2VudAAAAAADAAAAAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAAAAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAAAAAAADHNlbmRfbGlicmFyeQAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA5QYWNrZXRWZXJpZmllZAAAAAAAAQAAAA9wYWNrZXRfdmVyaWZpZWQAAAAAAwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAMcGF5bG9hZF9oYXNoAAAD7gAAACAAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9QYWNrZXREZWxpdmVyZWQAAAAAAQAAABBwYWNrZXRfZGVsaXZlcmVkAAAAAgAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAIAAAAFAAAAAAAAAAAAAAAOTHpSZWNlaXZlQWxlcnQAAAAAAAEAAAAQbHpfcmVjZWl2ZV9hbGVydAAAAAkAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAEAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAAA2dhcwAAAAALAAAAAAAAAAAAAAAFdmFsdWUAAAAAAAALAAAAAAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAAAAAAAKZXh0cmFfZGF0YQAAAAAADgAAAAAAAAAAAAAABnJlYXNvbgAAAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAABlpyb1NldAAAAAAAAQAAAAd6cm9fc2V0AAAAAAEAAAAAAAAAA3pybwAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALRGVsZWdhdGVTZXQAAAAAAQAAAAxkZWxlZ2F0ZV9zZXQAAAACAAAAAAAAAARvYXBwAAAAEwAAAAEAAAAAAAAACGRlbGVnYXRlAAAD6AAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABNJbmJvdW5kTm9uY2VTa2lwcGVkAAAAAAEAAAAVaW5ib3VuZF9ub25jZV9za2lwcGVkAAAAAAAABAAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAEAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAABW5vbmNlAAAAAAAABgAAAAEAAAACAAAABQAAAAAAAAAAAAAADlBhY2tldE5pbGlmaWVkAAAAAAABAAAAD3BhY2tldF9uaWxpZmllZAAAAAAFAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAQAAAAAAAAAMcGF5bG9hZF9oYXNoAAAD6AAAA+4AAAAgAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALUGFja2V0QnVybnQAAAAAAQAAAAxwYWNrZXRfYnVybnQAAAAFAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAQAAAAAAAAAMcGF5bG9hZF9oYXNoAAAD7gAAACAAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABFMaWJyYXJ5UmVnaXN0ZXJlZAAAAAAAAAEAAAASbGlicmFyeV9yZWdpc3RlcmVkAAAAAAABAAAAAAAAAAduZXdfbGliAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABVEZWZhdWx0U2VuZExpYnJhcnlTZXQAAAAAAAABAAAAGGRlZmF1bHRfc2VuZF9saWJyYXJ5X3NldAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAAAAAAAB25ld19saWIAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAGERlZmF1bHRSZWNlaXZlTGlicmFyeVNldAAAAAEAAAAbZGVmYXVsdF9yZWNlaXZlX2xpYnJhcnlfc2V0AAAAAAIAAAAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAAAAAAB25ld19saWIAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAG0RlZmF1bHRSZWNlaXZlTGliVGltZW91dFNldAAAAAABAAAAH2RlZmF1bHRfcmVjZWl2ZV9saWJfdGltZW91dF9zZXQAAAAAAgAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAHdGltZW91dAAAAAPoAAAH0AAAAAdUaW1lb3V0AAAAAAAAAAACAAAABQAAAAAAAAAAAAAADlNlbmRMaWJyYXJ5U2V0AAAAAAABAAAAEHNlbmRfbGlicmFyeV9zZXQAAAADAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAAAAAAAAduZXdfbGliAAAAA+gAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAARUmVjZWl2ZUxpYnJhcnlTZXQAAAAAAAABAAAAE3JlY2VpdmVfbGlicmFyeV9zZXQAAAAAAwAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAHbmV3X2xpYgAAAAPoAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAGFJlY2VpdmVMaWJyYXJ5VGltZW91dFNldAAAAAEAAAAbcmVjZWl2ZV9saWJyYXJ5X3RpbWVvdXRfc2V0AAAAAAMAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAAAAAAHdGltZW91dAAAAAPoAAAH0AAAAAdUaW1lb3V0AAAAAAAAAAACAAAABQAAAAAAAAAAAAAAC0NvbXBvc2VTZW50AAAAAAEAAAAMY29tcG9zZV9zZW50AAAABQAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAAEENvbXBvc2VEZWxpdmVyZWQAAAABAAAAEWNvbXBvc2VfZGVsaXZlcmVkAAAAAAAABAAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAACAAAABQAAAAAAAAAAAAAADkx6Q29tcG9zZUFsZXJ0AAAAAAABAAAAEGx6X2NvbXBvc2VfYWxlcnQAAAAKAAAAAAAAAARmcm9tAAAAEwAAAAEAAAAAAAAAAnRvAAAAAAATAAAAAQAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAQAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAQAAAAAAAAAFaW5kZXgAAAAAAAAEAAAAAQAAAAAAAAADZ2FzAAAAAAsAAAAAAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAAAAAAGcmVhc29uAAAAAAAOAAAAAAAAAAIAAAAEAAAAAAAAAAAAAAANRW5kcG9pbnRFcnJvcgAAAAAAABkAAAAAAAAAEUFscmVhZHlSZWdpc3RlcmVkAAAAAAAAAQAAAAAAAAANQ29tcG9zZUV4aXN0cwAAAAAAAAIAAAAAAAAAD0NvbXBvc2VOb3RGb3VuZAAAAAADAAAAAAAAABxEZWZhdWx0UmVjZWl2ZUxpYlVuYXZhaWxhYmxlAAAABAAAAAAAAAAZRGVmYXVsdFNlbmRMaWJVbmF2YWlsYWJsZQAAAAAAAAUAAAAAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAAAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAAAAAAAAQSW52YWxpZEZlZUFtb3VudAAAAAgAAAAAAAAADUludmFsaWRFeHBpcnkAAAAAAAAJAAAAAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAAAAAAAAxJbnZhbGlkTm9uY2UAAAALAAAAAAAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAAAAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAAAAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAAAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAAAAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAAAAAAAMVW5hdXRob3JpemVkAAAAFgAAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAAAAAAAAAAAAtVbG4zMDJFcnJvcgAAAAATAAAAAAAAAB1EZWZhdWx0RXhlY3V0b3JDb25maWdOb3RGb3VuZAAAAAAAAAEAAAAAAAAAH0RlZmF1bHRSZWNlaXZlVWxuQ29uZmlnTm90Rm91bmQAAAAAAgAAAAAAAAAcRGVmYXVsdFNlbmRVbG5Db25maWdOb3RGb3VuZAAAAAMAAAAAAAAAFUR1cGxpY2F0ZU9wdGlvbmFsRFZOcwAAAAAAAAQAAAAAAAAAFUR1cGxpY2F0ZVJlcXVpcmVkRFZOcwAAAAAAAAUAAAAAAAAADUludmFsaWRDb25maWcAAAAAAAAGAAAAAAAAABFJbnZhbGlkQ29uZmlnVHlwZQAAAAAAAAcAAAAAAAAAFEludmFsaWRDb25maXJtYXRpb25zAAAACAAAAAAAAAAKSW52YWxpZEVJRAAAAAAACQAAAAAAAAASSW52YWxpZE1lc3NhZ2VTaXplAAAAAAAKAAAAAAAAABdJbnZhbGlkT3B0aW9uYWxEVk5Db3VudAAAAAALAAAAAAAAABNJbnZhbGlkT3B0aW9uYWxEVk5zAAAAAAwAAAAAAAAAG0ludmFsaWRPcHRpb25hbERWTlRocmVzaG9sZAAAAAANAAAAAAAAABdJbnZhbGlkUmVxdWlyZWREVk5Db3VudAAAAAAOAAAAAAAAABNJbnZhbGlkUmVxdWlyZWREVk5zAAAAAA8AAAAAAAAAEFVsbkF0TGVhc3RPbmVEVk4AAAAQAAAAAAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAEQAAAAAAAAAJVmVyaWZ5aW5nAAAAAAAAEgAAAAAAAAAPWmVyb01lc3NhZ2VTaXplAAAAABMAAAAFAAAAAAAAAAAAAAARRXhlY3V0b3JDb25maWdTZXQAAAAAAAABAAAAE2V4ZWN1dG9yX2NvbmZpZ19zZXQAAAAAAwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAAAAAAAGY29uZmlnAAAAAAfQAAAAEk9BcHBFeGVjdXRvckNvbmZpZwAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAQU2VuZFVsbkNvbmZpZ1NldAAAAAEAAAATc2VuZF91bG5fY29uZmlnX3NldAAAAAADAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAE1JlY2VpdmVVbG5Db25maWdTZXQAAAAAAQAAABZyZWNlaXZlX3Vsbl9jb25maWdfc2V0AAAAAAADAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAGURlZmF1bHRFeGVjdXRvckNvbmZpZ3NTZXQAAAAAAAABAAAAHGRlZmF1bHRfZXhlY3V0b3JfY29uZmlnc19zZXQAAAABAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAHVNldERlZmF1bHRFeGVjdXRvckNvbmZpZ1BhcmFtAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAYRGVmYXVsdFNlbmRVbG5Db25maWdzU2V0AAAAAQAAABxkZWZhdWx0X3NlbmRfdWxuX2NvbmZpZ3Nfc2V0AAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABhTZXREZWZhdWx0VWxuQ29uZmlnUGFyYW0AAAAAAAAAAgAAAAUAAAAAAAAAAAAAABtEZWZhdWx0UmVjZWl2ZVVsbkNvbmZpZ3NTZXQAAAAAAQAAAB9kZWZhdWx0X3JlY2VpdmVfdWxuX2NvbmZpZ3Nfc2V0AAAAAAEAAAAAAAAABnBhcmFtcwAAAAAD6gAAB9AAAAAYU2V0RGVmYXVsdFVsbkNvbmZpZ1BhcmFtAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPRXhlY3V0b3JGZWVQYWlkAAAAAAEAAAARZXhlY3V0b3JfZmVlX3BhaWQAAAAAAAADAAAAAAAAAAhleGVjdXRvcgAAABMAAAABAAAAAAAAAARndWlkAAAD7gAAACAAAAABAAAAAAAAAANmZWUAAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAApEVk5GZWVQYWlkAAAAAAABAAAADGR2bl9mZWVfcGFpZAAAAAMAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABGR2bnMAAAPqAAAAEwAAAAAAAAAAAAAABGZlZXMAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9QYXlsb2FkVmVyaWZpZWQAAAAAAQAAABBwYXlsb2FkX3ZlcmlmaWVkAAAABAAAAAAAAAADZHZuAAAAABMAAAABAAAAAAAAAAZoZWFkZXIAAAAAAA4AAAAAAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAAAAAACnByb29mX2hhc2gAAAAAA+4AAAAgAAAAAAAAAAIAAAABAAAAOFVsdHJhIExpZ2h0IE5vZGUgY29uZmlndXJhdGlvbiBmb3IgbWVzc2FnZSB2ZXJpZmljYXRpb24uAAAAAAAAAAlVbG5Db25maWcAAAAAAAAEAAAASk51bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkIGJlZm9yZSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBiZWdpbnMuAAAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAAAzTWluaW11bSBudW1iZXIgb2Ygb3B0aW9uYWwgRFZOcyByZXF1aXJlZCB0byB2ZXJpZnkuAAAAABZvcHRpb25hbF9kdm5fdGhyZXNob2xkAAAAAAAEAAAAQExpc3Qgb2YgRFZOIGFkZHJlc3NlcyBmcm9tIHdoaWNoIGEgdGhyZXNob2xkIG51bWJlciBtdXN0IHZlcmlmeS4AAAANb3B0aW9uYWxfZHZucwAAAAAAA+oAAAATAAAARkxpc3Qgb2YgRFZOIGFkZHJlc3NlcyB0aGF0IG11c3QgQUxMIHZlcmlmeSB0aGUgbWVzc2FnZSAobm8gdGhyZXNob2xkKS4AAAAAAA1yZXF1aXJlZF9kdm5zAAAAAAAD6gAAABMAAAABAAAAPE9BcHAtc3BlY2lmaWMgVUxOIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0IG92ZXJyaWRlIGZsYWdzLgAAAAAAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAQAAABFT0FwcC1zcGVjaWZpYyBVTE4gY29uZmlndXJhdGlvbiAodXNlZCB3aGVuIGRlZmF1bHRzIGFyZSBub3QgYXBwbGllZCkuAAAAAAAACnVsbl9jb25maWcAAAAAB9AAAAAJVWxuQ29uZmlnAAAAAAAAJVdoZXRoZXIgdG8gdXNlIGRlZmF1bHQgY29uZmlybWF0aW9ucy4AAAAAAAAZdXNlX2RlZmF1bHRfY29uZmlybWF0aW9ucwAAAAAAAAEAAAAlV2hldGhlciB0byB1c2UgZGVmYXVsdCBvcHRpb25hbCBEVk5zLgAAAAAAABl1c2VfZGVmYXVsdF9vcHRpb25hbF9kdm5zAAAAAAAAAQAAACVXaGV0aGVyIHRvIHVzZSBkZWZhdWx0IHJlcXVpcmVkIERWTnMuAAAAAAAAGXVzZV9kZWZhdWx0X3JlcXVpcmVkX2R2bnMAAAAAAAABAAAAAQAAAFJQYXJhbWV0ZXIgZm9yIHNldHRpbmcgZGVmYXVsdCBVTE4gY29uZmlndXJhdGlvbiBmb3IgYSBkZXN0aW5hdGlvbi9zb3VyY2UgZW5kcG9pbnQuAAAAAAAAAAAAGFNldERlZmF1bHRVbG5Db25maWdQYXJhbQAAAAIAAAAoVGhlIFVMTiBjb25maWd1cmF0aW9uIHRvIHNldCBhcyBkZWZhdWx0LgAAAAZjb25maWcAAAAAB9AAAAAJVWxuQ29uZmlnAAAAAAAAS1RoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoZm9yIHNlbmQpIG9yIHNvdXJjZSBlbmRwb2ludCBJRCAoZm9yIHJlY2VpdmUpLgAAAAADZWlkAAAAAAQAAAABAAAALEV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gZm9yIG1lc3NhZ2UgZGVsaXZlcnkuAAAAAAAAAA5FeGVjdXRvckNvbmZpZwAAAAAAAgAAAENBZGRyZXNzIG9mIHRoZSBleGVjdXRvciBjb250cmFjdCByZXNwb25zaWJsZSBmb3IgbWVzc2FnZSBleGVjdXRpb24uAAAAAAhleGVjdXRvcgAAABMAAAA5TWF4aW11bSBzaXplIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIChpbiBieXRlcykuAAAAAAAAEG1heF9tZXNzYWdlX3NpemUAAAAEAAAAAQAAAFtPQXBwLXNwZWNpZmljIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uCgpJZiBleGVjdXRvciBpcyBgTm9uZWAsIHRoZSBkZWZhdWx0IGV4ZWN1dG9yIGlzIHVzZWQuAAAAAAAAAAAST0FwcEV4ZWN1dG9yQ29uZmlnAAAAAAACAAAAaEFkZHJlc3Mgb2YgdGhlIGV4ZWN1dG9yIGNvbnRyYWN0IHRvIGJlIHVzZWQgZm9yIG1lc3NhZ2UgZXhlY3V0aW9uLiBOb25lIG1lYW5zIHVzZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uAAAACGV4ZWN1dG9yAAAD6AAAABMAAABcTWF4aW11bSBzaXplIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIChpbiBieXRlcykuIDAgbWVhbnMgdXNlIGRlZmF1bHQgY29uZmlndXJhdGlvbi4AAAAQbWF4X21lc3NhZ2Vfc2l6ZQAAAAQAAAABAAAAUFBhcmFtZXRlciBmb3Igc2V0dGluZyBkZWZhdWx0IGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuAAAAAAAAAB1TZXREZWZhdWx0RXhlY3V0b3JDb25maWdQYXJhbQAAAAAAAAIAAAAtVGhlIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gdG8gc2V0IGFzIGRlZmF1bHQuAAAAAAAABmNvbmZpZwAAAAAH0AAAAA5FeGVjdXRvckNvbmZpZwAAAAAAHFRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAiwEOY29udHJhY3RtZXRhdjAAAAAAAAAABmJpbnZlcgAAAAAABTAuMC4xAAAAAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMC4xIzk0MTQ0ODA3OWVjY2Y5NTYyN2QyZmZlYTEzYmEyNjhlMzA1YTkwNzcAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMC4wI2E2NDkyNWU5MzkxYzNkM2IzZWY4ZTUzZGM2MGMyM2RiOWU2YTgyZTQA";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABmQEaYAJ+fgF+YAN+fn4BfmABfgF+YAR+fn5+AX5gAAF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAABf2AAAGABfwF/YAF/AGACfn8AYAF+AGADf39/AGACfn4AYAJ/fwF+YAR/f39/AX5gA39+fgBgA35/fgF/YAR/fn5+AX9gBn9+fn9+fgBgA35/fwBgA35+fgF/YAV+f39/fwACowEbAWwBMQAAAWwBXwABAWEBMAACAWwBNgACAWIBMAACAXgBMQAAAWwBNwADAWwBMgAAAXYBXwAEAWQBXwABAWIBOAACAWIBZQAAAWkBXwACAWkBMAACAWIBMwAAAWIBagAAAWIBMQADAW0BOQABAW0BYQADAXYBZwAAAXgBMAAAAXgBMwAEAXgBOAAEAWwBMAAAAWwBOAAAAXgBNQACAWIBZgABA2JhBQYHCAcHCQoLCQYKBAQMDQ4KDAYMDwgEBgIIDAIEBQQEBAAEAg4QAAoRAhIJEwQKBAAFAAgFBQYEDAUFEQQEAQoEBAQEBAkACBQDFQAWAQARFwsGERgKBgoICBkPCA8GDwUDAQARBiEEfwFBgIDAAAt/AEG8gsAAC38AQbuFwAALfwBBwIXAAAsHnwMcBm1lbW9yeQIAB3VwZ3JhZGUANAdtaWdyYXRlADcGZnJlZXplADgJaXNfZnJvemVuADoKYXV0aG9yaXplcgA7BW93bmVyADwNcGVuZGluZ19vd25lcgA+EnRyYW5zZmVyX293bmVyc2hpcAA/GnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAEIQYWNjZXB0X293bmVyc2hpcABJEnJlbm91bmNlX293bmVyc2hpcABLE2V4dGVuZF9pbnN0YW5jZV90dGwATA9zZXRfdHRsX2NvbmZpZ3MATgt0dGxfY29uZmlncwBTEmZyZWV6ZV90dGxfY29uZmlncwBYFWlzX3R0bF9jb25maWdzX2Zyb3plbgBZDV9fY29uc3RydWN0b3IAWghlbmRwb2ludABcBnVsbjMwMgBeCWxvY2FsX2VpZABgDWluaXRpYWxpemFibGUAYgp2ZXJpZmlhYmxlAGUKZXhlY3V0YWJsZQBnDnVsbl92ZXJpZmlhYmxlAGoBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCphQYU0BAn5CACECAkACQCABEJyAgIAAIgNCAhCdgICAAEUNACADQgIQgICAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUHAgMCAAEEIELCAgIAAIAEoAgANAyABIAEpAwgQsYCAgAAMAgsgAUHIgMCAAEEGELCAgIAAIAEoAgANAiABIAEpAwgQsYCAgAAMAQsgAUHOgMCAAEEIELCAgIAAIAEoAgANASABIAEpAwgQsYCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQl4CAgABCAVELFQAgABCcgICAACABQgIQgYCAgAAaCw8AIAAgARCggICAAEEBcwsNACAAIAEQlICAgABQCxQAEKKAgIAAQQAQo4CAgABB/QFxC0gBAX8jgICAgABBEGsiACSAgICAACAAQQRqENSAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBDNgICAAAsgAEEQaiSAgICAAAtHAgF/AX5BAiEBAkAgABD6gICAACICQgIQnYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAQtNAgF/AX4QooCAgABBACEAAkBBABClgICAACIBQgIQnYCAgABFDQBBASEAAkACQCABQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAAsgAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBmoXAgABBBhCwgICAACABKAIADQMgASABKQMIELGAgIAADAILIAFBoIXAgABBCBCwgICAACABKAIADQIgASABKQMIELGAgIAADAELIAFBqIXAgABBChCwgICAACABKAIADQEgASABKQMIELGAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQp4CAgAAQgoCAgAAaC0cCAX8BfiOAgICAAEEQayIAJICAgIAAEKKAgIAAIAAQqYCAgAAgACkDCCEBIAApAwBBiwgQqoCAgAAgAEEQaiSAgICAACABC2wCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQqYCAgAAgACkDCCEBIAApAwBBiwgQqoCAgAACQCABEKeAgIAAEKCAgIAADQBCg4CAgOCAARCrgICAAAALIAEQgoCAgAAaIABBEGokgICAgAAgAQsQABCigICAACAAEK+AgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQq4CAgAAACwsAIAAQmYCAgAAaC0IBAX8jgICAgABBEGsiACSAgICAACAAEK2AgIAAAkAgACkDAFANAEKDgICAwIEBEKuAgIAAAAsgAEEQaiSAgICAAAtTAQJ+EKKAgIAAQgAhAQJAAkBBARCugICAACICQgAQnYCAgABFDQAgAkIAEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBrYTAgABBDBCwgICAACABKAIADQIgASABKQMIELGAgIAADAELIAFBqITAgABBBRCwgICAACABKAIADQEgASABKQMIELGAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQroCAgAAiAkICEJ2AgIAARQ0AIAJCAhCAgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQ94CAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBENeAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAACw4AQYCAwIAAELOAgIAACwwAIABBIBDvgICAAAt5AQF/I4CAgIAAQRBrIgEkgICAgAAgASAAELWAgIAAAkACQCABKAIAQQFGDQAgASkDCCEAEKaAgIAAEKKAgIAAEKGAgIAADQFBARC2gICAACAAEIOAgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDAgwEQq4CAgAAAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCKgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAsMAEEBIAAQuYCAgAALbQACQAJAAkAgAEL/AYNCyABSDQAQpoCAgAAQooCAgABBARCjgICAAEH9AXFFDQEgABCEgICAAEL/AYNCAlINAkEAELaAgIAAQgIPCwALQoOAgICwgwEQq4CAgAAAC0KDgICAoIMBEKuAgIAAAAs1ABCmgICAABCigICAAAJAEKGAgIAARQ0AQoOAgIDAgwEQq4CAgAAAC0EAQQEQuYCAgABCAgsaACAAEPqAgIAAIAGtQv8Bg0ICEIGAgIAAGgsJABChgICAAK0LCAAQp4CAgAALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCpgICAACAAKQMAIAApAwgQvYCAgAAhASAAQRBqJICAgIAAIAELDQAgAUICIACnQQFxGws+AgF/AX4jgICAgABBEGsiACSAgICAACAAEK2AgIAAIAApAwAgACkDCBC9gICAACEBIABBEGokgICAgAAgAQs8AQF+AkAgAEL/AYNCzQBRDQAACxCigICAABCogICAACEBEKyAgIAAIAAQwICAgAAgASAAEMGAgIAAQgILDgBBACAAQgIQyICAgAALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABB14LAgABBFRDEgICAABDFgICAACEDIAIgADcDCCACIAE3AwAgA0GAg8CAAEECIAJBAhDGgICAABCFgICAABogAkEQaiSAgICAAAv8AgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINABCigICAABCogICAACEDAkACQCABQv////8PVg0AIAJBCGoQrYCAgAAgAikDECEBIAIpAwhBiQgQqoCAgAAgASAAEKCAgIAARQ0DEMOAgIAAQcSDwIAAQRwQxICAgAAQxYCAgAAhACACIAM3AxAgAiABNwMIIABB/IPAgABBAiACQQhqQQIQxoCAgAAQhYCAgAAaDAELEMeAgIAAIAFCIIinSQ0DQQEgAEIAEMiAgIAAQQEQroCAgABCACABQoSAgIBwgyIBIAEQhoCAgAAaQZCDwIAAQRYQxICAgAAQxYCAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQayDwIAAQQMgAkEIakEDEMaAgIAAEIWAgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA8IABEKuAgIAAAAtCg4CAgICBARCrgICAAAALEwBBARCugICAAEIAEIeAgIAAGgtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARD3gICAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBENeAgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQkYCAgAALMwECfhCVgICAACEAAkAQloCAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQ24CAgAAACxUAIAAQroCAgAAgASACEIGAgIAAGguIAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAQooCAgAAgABCtgICAACAAKQMIIQEgACkDAEGJCBCqgICAACABEIKAgIAAGiAAEK+AgIAAAkAgACgCAA0AEMqAgIAAAAsgACkDCCECEMOAgIAAIAEQwICAgAAgAiABEMGAgIAAIABBEGokgICAgABCAgsJABDbgICAAAALhAECAX8CfiOAgICAAEEQayIAJICAgIAAEKKAgIAAEKiAgIAAIQEQrICAgABBABCugICAAEICEIeAgIAAGkGMhMCAAEETEMSAgIAAEMWAgIAAIQIgACABNwMIIAJBoITAgABBASAAQQhqQQEQxoCAgAAQhYCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxDNgICAAEICDwsACxsAIACtQiCGQgSEIAGtQiCGQgSEEJiAgIAAGgu8BAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQz4CAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDPgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGBCmgICAABCigICAAAJAAkACQBCkgICAAA0AEMeAgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEKuAgIAAAAtCg4CAgMD/ABCrgICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQENCAgIAADAELQQEQpYCAgABCAhCHgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgENGAgIAADAELQQIQpYCAgABCAhCHgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHUhMCAAEEPEMSAgIAAEMWAgIAAIQAgAkEoahDSgICAACEBIAIgAkE0ahDSgICAADcDSCACIAE3A0AgAEH4hMCAAEECIAJBwABqQQIQxoCAgAAQhYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEPiAgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALDgBBASAAIAEQ+4CAgAALDgBBAiAAIAEQ+4CAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAENaAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAguiAQICfwF+I4CAgIAAQcAAayIAJICAgIAAEKKAgIAAIABBCGoQ1ICAgAAgAEEUaiIBQQIQ1YCAgAAgAEEwaiAAQQhqENaAgIAAAkACQCAAKAIwDQAgACkDOCECIABBMGogARDWgICAACAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgAjcDICAAQSBqQQIQ14CAgAAhAiAAQcAAaiSAgICAACACCwwAIABBARDVgICAAAt3AgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQAJAIAEQpYCAgAAiBEICEJ2AgIAARQ0AIAJBBGogBEICEICAgIAAEPiAgIAAQQEhAyACKAIEQQFGDQEgACACKQIINwIECyAAIAM2AgAgAkEQaiSAgICAAA8LAAswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBD5gICAAA8LIABCADcDACAAQgI3AwgLGgAgAK1CIIZCBIQgAa1CIIZCBIQQk4CAgAALiAEBAX8jgICAgABBEGsiACSAgICAABCmgICAABCigICAAAJAEKSAgIAARQ0AQoOAgIDg/wAQq4CAgAAAC0EAEKWAgIAAQgFCAhCBgICAABpBiIXAgABBEhDEgICAABDFgICAAEEEQQAgAEEIakEAEMaAgIAAEIWAgIAAGiAAQRBqJICAgIAAQgILCQAQpICAgACtC8sBAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0LNAFINAEGAyx5BgNIfENCAgIAAQYDLHkGA0h8Q0YCAgABBABCugICAAEICEJ2AgIAADQEgABDAgICAAEEAIAEQnoCAgABBASACEJ6AgIAAIAFCjtKuFRCIgICAABCJgICAACIBQv8Bg0IEUg0CQQIQnICAgAAgAUKEgICAcINCAhCBgICAABpCAg8LAAtCg4CAgKCBARCrgICAAAALENuAgIAAAAsJABDzgICAAAALCAAQ3YCAgAALTAIBfwF+I4CAgIAAQRBrIgAkgICAgAAQooCAgAAgAEEAEJuAgIAAAkAgACgCAA0AEMqAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQsIABDfgICAAAtMAgF/AX4jgICAgABBEGsiACSAgICAABCigICAACAAQQEQm4CAgAACQCAAKAIADQAQyoCAgAAACyAAKQMIIQEgAEEQaiSAgICAACABCw8AEOGAgIAArUIghkIEhAtIAQF+EKKAgIAAAkACQEECEJyAgIAAIgBCAhCdgICAAEUNACAAQgIQgICAgAAiAEL/AYNCBFENAQALEMqAgIAAAAsgAEIgiKcLmAEBAn8jgICAgABBwABrIgIkgICAgAAgAkEgaiAAEOOAgIAAAkAgAigCIEEBRg0AIAJBCGpBEGogAkE4aikDADcDACACQRBqIAJBIGpBEGopAwA3AwAgAiACKQMoNwMIIAFC/wGDQs0AUg0AEKKAgIAAEN2AgIAAIAJBCGogARDkgICAACEDIAJBwABqJICAgIAAIAOtDwsAC+IBAgJ/An4jgICAgABBMGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQcyBwIAAQQMgAkEIakEDEPaAgIAAIAJBIGogAikDCBD1gICAACACKAIgDQAgAikDKCEBIAJBIGogAikDEBC1gICAACACKAIgDQAgAikDGCIFQv8Bg0IEUg0AIAIpAyghBCAAIAE3AxAgACAENwMIIAAgBUIgiD4CGEIAIQQLIAAgBDcDACACQTBqJICAgIAAC7oBAgF/An4jgICAgABBIGsiAySAgICAAEHkgcCAAEENEMSAgIAAIQQgARDygICAACEFIAMgAjcDCCADIAU3AwBBACEBA38CQCABQRBHDQBBACEBAkADQCABQRBGDQEgA0EQaiABaiADIAFqKQMANwMAIAFBCGohAQwACwsgACAEIANBEGpBAhDXgICAABDwgICAACEBIANBIGokgICAgAAgAQ8LIANBEGogAWpCAjcDACABQQhqIQEMAAsLtgEBAn8jgICAgABBwABrIgQkgICAgAAgBEEgaiAAEOOAgIAAAkAgBCgCIEEBRg0AIARBCGpBEGogBEE4aikDADcDACAEQRBqIARBIGpBEGopAwA3AwAgBCAEKQMoNwMIIAFC/wGDQs0AUg0AIAJC/wGDQs0AUg0AIARBIGogAxC1gICAACAEKAIgQQFGDQAgBEEIaiABIAIgBCkDKBDmgICAACEFIARBwABqJICAgIAAIAWtDwsAC4kDAwF/A34BfyOAgICAAEEwayIEJICAgIAAEKKAgIAAEN2AgIAAIQUgADUCECEGQfGBwIAAQRgQxICAgAAhByAEIAI3AxAgBCAGQiCGQgSENwMIIAQgATcDAEEAIQgCQAJAA0ACQCAIQRhHDQBBACEIAkADQCAIQRhGDQEgBEEYaiAIaiAEIAhqKQMANwMAIAhBCGohCAwACwsgBSAHIARBGGpBAxDXgICAABDwgICAAEUNAkHEgsCAAEEKEMSAgIAAIQIgABDygICAACEGIAQgATcDCCAEIAY3AwBBACEIA0ACQCAIQRBHDQBBACEIAkADQCAIQRBGDQEgBEEYaiAIaiAEIAhqKQMANwMAIAhBCGohCAwACwsgBSACIARBGGpBAhDXgICAABDwgICAAEUNBCADELKAgIAAEKCAgIAAQQFzIQgMBQsgBEEYaiAIakICNwMAIAhBCGohCAwACwsgBEEYaiAIakICNwMAIAhBCGohCAwACwtBACEICyAEQTBqJICAgIAAIAgL2AUCAn8GfiOAgICAAEHQAGsiAiSAgICAACACQQhqIAAQ44CAgAACQAJAIAIoAghBAUYNACABQv8Bg0LNAFINACACKAIgIQMgAikDGCEAIAIpAxAhBBCigICAACACQShqEN2AgIAAIgUgASADIAQgABDogICAABCygICAACEGQaCAwIAAELOAgIAAIQcCQAJAAkACQCACKAIoDQBBloLAgABBEhDEgICAACEHIAIgBDcDSCACIAE3AzggAiADrUIghkIEhDcDQEEAIQMDQAJAIANBGEcNAEEAIQMCQANAIANBGEYNASACQQhqIANqIAJBOGogA2opAwA3AwAgA0EIaiEDDAALCyAAIAUgByACQQhqQQMQ14CAgAAQ6YCAgABWDQMgAkEIakGFgcCAAEEIELCAgIAAIAIoAggNBiACQQhqIAIpAxAQsYCAgAAMBQsgAkEIaiADakICNwMAIANBCGohAwwACwsCQCACKQMwIgggBxCfgICAAEUNAEGJgsCAAEENEMSAgIAAIQkgAiAENwNIIAIgATcDOCACIAOtQiCGQgSENwNAQQAhAwNAAkAgA0EYRw0AQQAhAwJAA0AgA0EYRg0BIAJBCGogA2ogAkE4aiADaikDADcDACADQQhqIQMMAAsLIAAgBSAJIAJBCGpBAxDXgICAABDpgICAAFYNAiACQQhqQfuAwIAAQQoQsICAgAAgAigCCA0GIAJBCGogAikDEBCxgICAAAwFCyACQQhqIANqQgI3AwAgA0EIaiEDDAALCyAIIAYQn4CAgABFDQAgCCAHEJ+AgIAADQELIAJBCGpB1oDAgABBDRCwgICAACACKAIIDQIgAkEIaiACKQMQELGAgIAADAELIAJBCGpB44DAgABBGBCwgICAACACKAIIDQEgAkEIaiACKQMQELGAgIAACyACKQMQIQEgAikDCFANAQsACyACQdAAaiSAgICAACABC64CAgF/AX4jgICAgABBwABrIgYkgICAgABBqILAgABBFBDEgICAACEHIAZBIGogBRD0gICAAAJAIAYoAiBBAUYNACAGIAYpAyg3AxggBiAENwMQIAYgAjcDACAGIAOtQiCGQgSENwMIQQAhAwJAA0ACQCADQSBHDQBBACEDAkADQCADQSBGDQEgBkEgaiADaiAGIANqKQMANwMAIANBCGohAwwACwsCQAJAIAEgByAGQSBqQQQQ14CAgAAQiYCAgAAiBUICUg0AQgAhBQwBCyAGQSBqIAUQtYCAgAAgBigCIEEBRg0DIAYpAyghBEIBIQULIAAgBDcDCCAAIAU3AwAgBkHAAGokgICAgAAPCyAGQSBqIANqQgI3AwAgA0EIaiEDDAALCxDbgICAAAALAAtRAQF/I4CAgIAAQRBrIgMkgICAgAAgAyAAIAEgAhCJgICAABD1gICAAAJAIAMoAgBBAUcNABDbgICAAAALIAMpAwghAiADQRBqJICAgIAAIAILwwgGAX8BfgF/AX4BfwF+I4CAgIAAQcAAayICJICAgIAAAkACQCAAQv8Bg0LIAFINACACIAA3AwAgAkEIaiABELWAgIAAIAIoAghBAUYNACACKQMQIQMQooCAgAACQAJAIAIpAwAQioCAgABCgICAgHCDQoCAgICQClINACACQQA2AjQgAiACNgIwAkAgAkEwakEBEOuAgIAAIgAQioCAgABCgICAgHCDQoCAgIAQUg0AIAJBADoACAJAIAAQioCAgABCgICAgHCDQoCAgIAQUg0AIAAgAkEIakEBEOyAgIAAAkAgAi0ACEEBRw0AAkAgAkEwakEIEOuAgIAAIgAQioCAgABCgICAgHCDQoCAgICAAVINACACQgA3AwggABCKgICAAEKAgICAcINCgICAgIABUg0CIAAgAkEIakEIEOyAgIAAIAIpAwghACACQTBqEO2AgIAAIQQgAkEwahDugICAACEFIAJBMGoQ7YCAgAAhBiACQTBqEO6AgIAAIQECQCAGEOGAgIAARw0AQbyCwIAAQQgQ74CAgAAgARCLgICAABCEgICAACIBQv8Bg0LNAFINByACIABCOIYgAEKA/gODQiiGhCAAQoCA/AeDQhiGIABCgICA+A+DQgiGhIQgAEIIiEKAgID4D4MgAEIYiEKAgPwHg4QgAEIoiEKA/gODIABCOIiEhIQiADcDECACIAU3AwggAiAENgIYAkAQ3YCAgAAgAkEIaiABEOSAgIAADQAgAkEIakGogcCAAEEQELCAgIAAIAIoAggNCCACQQhqIAIpAxAQsYCAgAAMBwsCQAJAIAJBCGogARDfgICAACIHIAMQ5oCAgABFDQAgAkEwahDdgICAACABIAQgBSAAEOiAgIAAIAIoAjBFDQEgAikDOCADEKCAgIAARQ0BCyACQQhqQaCBwIAAQQgQsICAgAAgAigCCA0IIAJBCGogAikDEBCxgICAAAwHCyACKQMAIQBBxILAgABBChDEgICAACEBIAIgAzcDKCACIAA3AyBBACEEA0ACQCAEQRBHDQBBACEEAkADQCAEQRBGDQEgAkEwaiAEaiACQSBqIARqKQMANwMAIARBCGohBAwACwsCQCAHIAEgAkEwakECENeAgIAAEPCAgIAADQAgAkEIakGNgcCAAEEJELCAgIAAIAIoAggNCiACQQhqIAIpAxAQsYCAgAAMCQsgAkEIakGWgcCAAEEKELCAgIAAIAIoAggNCSACQQhqIAIpAxAQsYCAgAAMCAsgAkEwaiAEakICNwMAIARBCGohBAwACwtCg4CAgBAQq4CAgAAAC0KDgICAgIIBEKuAgIAAAAtCg4CAgNCJARCrgICAAAALEPGAgIAAAAtCg4CAgICCARCrgICAAAALQoOAgIDAiQEQq4CAgAAACyACKQMQIQAgAikDCFANAQsACyACQcAAaiSAgICAACAAC3UCAn8BfgJAAkAgACgCBCICIAFqIgEgAkkNACABIAAoAgAiAykDABCKgICAAEIgiKdLDQEgAykDACACrUIghkIEhCABrUIghkIEhBCagICAACEEIAAgATYCBCAEDwsQ24CAgAAAC0KDgICAgP0AEKuAgIAAAAsfACAAQgQgAa1CIIZCBIQgAq1CIIZCBIQQkICAgAAaC7kBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkAgAEEEEOuAgIAAIgIQioCAgABCgICAgHCDQoCAgIDAAFINACABQQA2AgwgAhCKgICAAEKAgICAcINCgICAgMAAUg0BIAIgAUEMakEEEOyAgIAAIAEoAgwhACABQRBqJICAgIAAIABBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyDwtCg4CAgICCARCrgICAAAALEPGAgIAAAAv/AQMBfwF+An8jgICAgABBwABrIgEkgICAgAACQAJAIABBIBDrgICAACICEIqAgIAAQoCAgIBwg0KAgICAgARSDQAgAUEgakEYaiIAQgA3AwAgAUEgakEQaiIDQgA3AwAgAUEgakEIaiIEQgA3AwAgAUIANwMgIAIQioCAgABCgICAgHCDQoCAgICABFINASACIAFBIGpBIBDsgICAACABQRhqIAApAwA3AwAgAUEQaiADKQMANwMAIAFBCGogBCkDADcDACABIAEpAyA3AwAgARCzgICAACECIAFBwABqJICAgIAAIAIPC0KDgICAgIIBEKuAgIAAAAsQ8YCAgAAACxoAIACtQiCGQgSEIAGtQiCGQgSEEI6AgIAACzQBAX9BASEDAkACQAJAIAAgASACEImAgIAAp0H/AXEOAgECAAsQ24CAgAAAC0EAIQMLIAMLCQAQ24CAgAAAC30CAX8BfiOAgICAAEEwayIBJICAgIAAIAFBIGogACkDCBD0gICAAAJAIAEoAiBBAUcNAAALIAEgASkDKDcDCCABIAApAwA3AxAgASAANQIQQiCGQgSENwMYQcyBwIAAQQMgAUEIakEDEMaAgIAAIQIgAUEwaiSAgICAACACCwMAAAs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQjICAgAAhAQsgAEIANwMAIAAgATcDCAtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEI2AgIAAIQELIAAgAzcDACAAIAE3AwgLMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEJKAgIAAGgvbAQIBfgR/AkACQCACQQlLDQBCACEDIAIhBCABIQUDQAJAIAQNACADQgiGQg6EIQMMAwtBASEGAkAgBS0AACIHQd8ARg0AAkAgB0FQakH/AXFBCkkNAAJAIAdBv39qQf8BcUEaSQ0AIAdBn39qQf8BcUEZSw0EIAdBRWohBgwCCyAHQUtqIQYMAQsgB0FSaiEGCyADQgaGIAatQv8Bg4QhAyAEQX9qIQQgBUEBaiEFDAALCyABrUIghkIEhCACrUIghkIEhBCPgICAACEDCyAAQgA3AwAgACADNwMIC60BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQcSEwIAAQQIgAkECEPaAgIAAIAIpAwAiAUL/AYNCBFINACACKQMIIgRC/wGDQgRSDQAgACABQiCIpzYCCCAAIARCIIg+AgRBACEDCyAAIAM2AgAgAkEQaiSAgICAAAtgAgF/AX4jgICAgABBEGsiAySAgICAACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBBxITAgABBAiADQQIQxoCAgAAhBCAAQgA3AwAgACAENwMIIANBEGokgICAgAALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQbKFwIAAQQkQsICAgAAgASgCAA0CIAEgASkDCBCxgICAAAwBCyABQZqFwIAAQQYQsICAgAAgASgCAA0BIAEgASkDCBCxgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC1YCAX8BfiOAgICAAEEQayIDJICAgIAAIAAQpYCAgAAhBCADIAEgAhD5gICAAAJAIAMoAgBBAUcNAAALIAQgAykDCEICEIGAgIAAGiADQRBqJICAgIAACwvFBQEAQYCAwAALuwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////////////RW5kcG9pbnRVbG4zMDJMb2NhbEVpZE5vdEV4ZWN1dGFibGVWZXJpZmllZEJ1dE5vdEV4ZWN1dGFibGVFeGVjdXRhYmxlRXhlY3V0ZWRWZXJpZnlpbmdWZXJpZmlhYmxlVmVyaWZpZWROb3RJbml0aWFsaXphYmxlbm9uY2VzZW5kZXJzcmNfZWlkAAC4ABAABQAAAL0AEAAGAAAAwwAQAAcAAABpbml0aWFsaXphYmxlaXNfdmFsaWRfcmVjZWl2ZV9saWJyYXJ5aW5ib3VuZF9ub25jZWxhenlfaW5ib3VuZF9ub25jZWluYm91bmRfcGF5bG9hZF9oYXNoAAAAEgAAAAF2ZXJpZmlhYmxldGhyZXNob2xkb3duZXJzaGlwX3RyYW5zZmVycmVkbmV3X293bmVyb2xkX293bmVyAABsARAACQAAAHUBEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAGwBEAAJAAAAdQEQAAkAAACmARAAAwAAAG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWRjYW5jZWxsZWRfcGVuZGluZ19vd25lcm93bmVy4AEQABcAAAD3ARAABQAAAG93bmVyc2hpcF9yZW5vdW5jZWQAdQEQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAOQIQAAkAAABOARAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAGMCEAAIAAAAawIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmcAv7sBDmNvbnRyYWN0c3BlY3YwAAAABAAAACJFcnJvcnMgZm9yIExheWVyWmVyb1ZpZXcgY29udHJhY3QuAAAAAAAAAAAAEkxheWVyWmVyb1ZpZXdFcnJvcgAAAAAAAQAAAClJbnZhbGlkIHBhY2tldCBoZWFkZXIgKGRzdF9laWQgbWlzbWF0Y2gpLgAAAAAAAApJbnZhbGlkRUlEAAAAAAABAAAAAAAAAGxVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAIdSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpQYXJzZXMgWERSLWVuY29kZWQgYG1pZ3JhdGlvbl9kYXRhYCBhbmQgY2FsbHMgYF9fbWlncmF0ZWAuIENsZWFycyB0aGUgbWlncmF0aW9uIGZsYWcgb24gc3VjY2Vzcy4AAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAE9QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLiBJcnJldmVyc2libGUuAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAZ1bG4zMDIAAAAAABMAAAAAAAAAAAAAAB1SZXR1cm5zIHRoZSBlbmRwb2ludCBhZGRyZXNzLgAAAAAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAAAbUmV0dXJucyB0aGUgVWxuMzAyIGFkZHJlc3MuAAAAAAZ1bG4zMDIAAAAAAAAAAAABAAAAEwAAAAAAAAAeUmV0dXJucyB0aGUgbG9jYWwgZW5kcG9pbnQgSUQuAAAAAAAJbG9jYWxfZWlkAAAAAAAAAAAAAAEAAAAEAAAAAAAAAFBDaGVja3MgaWYgYSBtZXNzYWdpbmcgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4gYW5kIHJlY2VpdmVyLgAAAA1pbml0aWFsaXphYmxlAAAAAAAAAgAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAQAAAAAAAAC0Q2hlY2tzIGlmIGEgbWVzc2FnZSBjYW4gYmUgdmVyaWZpZWQgYXQgdGhlIGVuZHBvaW50LgoKVmVyaWZpZXM6CjEuIFJlY2VpdmUgbGlicmFyeSBpcyB2YWxpZCBmb3IgdGhpcyByZWNlaXZlciBhbmQgc291cmNlCjIuIEVuZHBvaW50IG5vbmNlIGNoZWNrIHBhc3NlcwozLiBQYXlsb2FkIGhhc2ggaXMgbm90IGVtcHR5AAAACnZlcmlmaWFibGUAAAAAAAQAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAAAAAAtyZWNlaXZlX2xpYgAAAAATAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAEAAAABAAAAAAAAAClSZXR1cm5zIHRoZSBleGVjdXRpb24gc3RhdGUgb2YgYSBtZXNzYWdlLgAAAAAAAApleGVjdXRhYmxlAAAAAAACAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAfQAAAADkV4ZWN1dGlvblN0YXRlAAAAAAAAAAAA7lJldHVybnMgdGhlIGNvbWJpbmVkIHZlcmlmaWNhdGlvbiBzdGF0ZSBvZiBhIG1lc3NhZ2UuCgpUaGlzIGZ1bmN0aW9uIGNoZWNrczoKMS4gUGFja2V0IGhlYWRlciB2YWxpZGl0eSAoZHN0X2VpZCBtYXRjaGVzIGxvY2FsX2VpZCkKMi4gRW5kcG9pbnQgaW5pdGlhbGl6YWJsZSBzdGF0dXMKMy4gRW5kcG9pbnQgdmVyaWZpYWJsZSBzdGF0dXMKNC4gVUxOIHZlcmlmaWFibGUgc3RhdHVzIChEVk4gY29uZmlybWF0aW9ucykAAAAAAA51bG5fdmVyaWZpYWJsZQAAAAAAAgAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAQAAB9AAAAARVmVyaWZpY2F0aW9uU3RhdGUAAAAAAAACAAAAAAAAAAAAAAAUTGF5ZXJaZXJvVmlld1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAIRW5kcG9pbnQAAAAAAAAAAAAAAAZVbG4zMDIAAAAAAAAAAAAAAAAACExvY2FsRWlkAAAAAgAAAIFSZXByZXNlbnRzIHRoZSBleGVjdXRpb24gc3RhdGUgb2YgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKVXNlZCBieSBleGVjdXRvcnMgdG8gZGV0ZXJtaW5lIHdoZW4gYSBtZXNzYWdlIGlzIHJlYWR5IHRvIGJlIGRlbGl2ZXJlZC4AAAAAAAAAAAAADkV4ZWN1dGlvblN0YXRlAAAAAAAEAAAAAAAAAD5NZXNzYWdlIGlzIG5vdCByZWFkeSBmb3IgZXhlY3V0aW9uIC0gd2FpdGluZyBmb3IgdmVyaWZpY2F0aW9uLgAAAAAADU5vdEV4ZWN1dGFibGUAAAAAAAAAAAAARk1lc3NhZ2UgaXMgdmVyaWZpZWQgYnV0IGNhbm5vdCBiZSBleGVjdXRlZCB5ZXQgKHByaW9yIG5vbmNlcyBwZW5kaW5nKS4AAAAAABhWZXJpZmllZEJ1dE5vdEV4ZWN1dGFibGUAAAAAAAAAIE1lc3NhZ2UgaXMgcmVhZHkgdG8gYmUgZXhlY3V0ZWQuAAAACkV4ZWN1dGFibGUAAAAAAAAAAAAiTWVzc2FnZSBoYXMgYWxyZWFkeSBiZWVuIGV4ZWN1dGVkLgAAAAAACEV4ZWN1dGVkAAAAAgAAAIhSZXByZXNlbnRzIHRoZSB2ZXJpZmljYXRpb24gc3RhdGUgb2YgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGF0IHRoZSBVTE4gbGV2ZWwuCgpVc2VkIGJ5IERWTnMgYW5kIGV4ZWN1dG9ycyB0byB0cmFjayB2ZXJpZmljYXRpb24gcHJvZ3Jlc3MuAAAAAAAAABFWZXJpZmljYXRpb25TdGF0ZQAAAAAAAAQAAAAAAAAAM0RWTnMgYXJlIHN0aWxsIGNvbGxlY3Rpbmcgc2lnbmF0dXJlcy9jb25maXJtYXRpb25zLgAAAAAJVmVyaWZ5aW5nAAAAAAAAAAAAAEBIYXMgZW5vdWdoIERWTiBjb25maXJtYXRpb25zLCByZWFkeSB0byBiZSBjb21taXR0ZWQgdG8gZW5kcG9pbnQuAAAAClZlcmlmaWFibGUAAAAAAAAAAAAhQWxyZWFkeSB2ZXJpZmllZCBhdCB0aGUgZW5kcG9pbnQuAAAAAAAACFZlcmlmaWVkAAAAAAAAACVDYW5ub3QgYmUgaW5pdGlhbGl6ZWQgKHBhdGggYmxvY2tlZCkuAAAAAAAAEE5vdEluaXRpYWxpemFibGUAAAAFAAAAAAAAAAAAAAAKUGFja2V0U2VudAAAAAAAAQAAAAtwYWNrZXRfc2VudAAAAAADAAAAAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAAAAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAAAAAAADHNlbmRfbGlicmFyeQAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA5QYWNrZXRWZXJpZmllZAAAAAAAAQAAAA9wYWNrZXRfdmVyaWZpZWQAAAAAAwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAMcGF5bG9hZF9oYXNoAAAD7gAAACAAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9QYWNrZXREZWxpdmVyZWQAAAAAAQAAABBwYWNrZXRfZGVsaXZlcmVkAAAAAgAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAIAAAAFAAAAAAAAAAAAAAAOTHpSZWNlaXZlQWxlcnQAAAAAAAEAAAAQbHpfcmVjZWl2ZV9hbGVydAAAAAkAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAEAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAAA2dhcwAAAAALAAAAAAAAAAAAAAAFdmFsdWUAAAAAAAALAAAAAAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAAAAAAAKZXh0cmFfZGF0YQAAAAAADgAAAAAAAAAAAAAABnJlYXNvbgAAAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAABlpyb1NldAAAAAAAAQAAAAd6cm9fc2V0AAAAAAEAAAAAAAAAA3pybwAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALRGVsZWdhdGVTZXQAAAAAAQAAAAxkZWxlZ2F0ZV9zZXQAAAACAAAAAAAAAARvYXBwAAAAEwAAAAEAAAAAAAAACGRlbGVnYXRlAAAD6AAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABNJbmJvdW5kTm9uY2VTa2lwcGVkAAAAAAEAAAAVaW5ib3VuZF9ub25jZV9za2lwcGVkAAAAAAAABAAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAEAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAABW5vbmNlAAAAAAAABgAAAAEAAAACAAAABQAAAAAAAAAAAAAADlBhY2tldE5pbGlmaWVkAAAAAAABAAAAD3BhY2tldF9uaWxpZmllZAAAAAAFAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAQAAAAAAAAAMcGF5bG9hZF9oYXNoAAAD6AAAA+4AAAAgAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALUGFja2V0QnVybnQAAAAAAQAAAAxwYWNrZXRfYnVybnQAAAAFAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAQAAAAAAAAAMcGF5bG9hZF9oYXNoAAAD7gAAACAAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABFMaWJyYXJ5UmVnaXN0ZXJlZAAAAAAAAAEAAAASbGlicmFyeV9yZWdpc3RlcmVkAAAAAAABAAAAAAAAAAduZXdfbGliAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABVEZWZhdWx0U2VuZExpYnJhcnlTZXQAAAAAAAABAAAAGGRlZmF1bHRfc2VuZF9saWJyYXJ5X3NldAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAAAAAAAB25ld19saWIAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAGERlZmF1bHRSZWNlaXZlTGlicmFyeVNldAAAAAEAAAAbZGVmYXVsdF9yZWNlaXZlX2xpYnJhcnlfc2V0AAAAAAIAAAAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAAAAAAB25ld19saWIAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAG0RlZmF1bHRSZWNlaXZlTGliVGltZW91dFNldAAAAAABAAAAH2RlZmF1bHRfcmVjZWl2ZV9saWJfdGltZW91dF9zZXQAAAAAAgAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAHdGltZW91dAAAAAPoAAAH0AAAAAdUaW1lb3V0AAAAAAAAAAACAAAABQAAAAAAAAAAAAAADlNlbmRMaWJyYXJ5U2V0AAAAAAABAAAAEHNlbmRfbGlicmFyeV9zZXQAAAADAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAAAAAAAAduZXdfbGliAAAAA+gAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAARUmVjZWl2ZUxpYnJhcnlTZXQAAAAAAAABAAAAE3JlY2VpdmVfbGlicmFyeV9zZXQAAAAAAwAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAHbmV3X2xpYgAAAAPoAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAGFJlY2VpdmVMaWJyYXJ5VGltZW91dFNldAAAAAEAAAAbcmVjZWl2ZV9saWJyYXJ5X3RpbWVvdXRfc2V0AAAAAAMAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAAAAAAHdGltZW91dAAAAAPoAAAH0AAAAAdUaW1lb3V0AAAAAAAAAAACAAAABQAAAAAAAAAAAAAAC0NvbXBvc2VTZW50AAAAAAEAAAAMY29tcG9zZV9zZW50AAAABQAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAAEENvbXBvc2VEZWxpdmVyZWQAAAABAAAAEWNvbXBvc2VfZGVsaXZlcmVkAAAAAAAABAAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAACAAAABQAAAAAAAAAAAAAADkx6Q29tcG9zZUFsZXJ0AAAAAAABAAAAEGx6X2NvbXBvc2VfYWxlcnQAAAAKAAAAAAAAAARmcm9tAAAAEwAAAAEAAAAAAAAAAnRvAAAAAAATAAAAAQAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAQAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAQAAAAAAAAAFaW5kZXgAAAAAAAAEAAAAAQAAAAAAAAADZ2FzAAAAAAsAAAAAAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAAAAAAGcmVhc29uAAAAAAAOAAAAAAAAAAIAAAAEAAAAAAAAAAAAAAANRW5kcG9pbnRFcnJvcgAAAAAAABkAAAAvTGlicmFyeSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgd2l0aCB0aGUgZW5kcG9pbnQAAAAAEUFscmVhZHlSZWdpc3RlcmVkAAAAAAAAAQAAADZDb21wb3NlIG1lc3NhZ2UgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgR1VJRCBhbmQgaW5kZXgAAAAAAA1Db21wb3NlRXhpc3RzAAAAAAAAAgAAADZDb21wb3NlIG1lc3NhZ2Ugbm90IGZvdW5kIGZvciB0aGUgZ2l2ZW4gR1VJRCBhbmQgaW5kZXgAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAADpEZWZhdWx0IHJlY2VpdmUgbGlicmFyeSBpcyBub3Qgc2V0IGZvciB0aGUgc291cmNlIGVuZHBvaW50AAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAA8RGVmYXVsdCBzZW5kIGxpYnJhcnkgaXMgbm90IHNldCBmb3IgdGhlIGRlc3RpbmF0aW9uIGVuZHBvaW50AAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAL1N1cHBsaWVkIG5hdGl2ZSB0b2tlbiBmZWUgaXMgbGVzcyB0aGFuIHJlcXVpcmVkAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAALFN1cHBsaWVkIFpSTyB0b2tlbiBmZWUgaXMgbGVzcyB0aGFuIHJlcXVpcmVkAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAACtUaW1lb3V0IGV4cGlyeSBpcyBpbnZhbGlkIChhbHJlYWR5IGV4cGlyZWQpAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACAAAACBGZWUgYW1vdW50IGlzIGludmFsaWQgKG5lZ2F0aXZlKQAAABBJbnZhbGlkRmVlQW1vdW50AAAACQAAACtDb21wb3NlIGluZGV4IGV4Y2VlZHMgbWF4aW11bSBhbGxvd2VkIHZhbHVlAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAALE5vbmNlIGlzIGludmFsaWQgZm9yIHRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uAAAADEludmFsaWROb25jZQAAAAsAAAAwUGF5bG9hZCBoYXNoIGlzIGludmFsaWQgKGVtcHR5IGhhc2ggbm90IGFsbG93ZWQpAAAAEkludmFsaWRQYXlsb2FkSGFzaAAAAAAADAAAAEFSZWNlaXZlIGxpYnJhcnkgaXMgbm90IHZhbGlkIGZvciB0aGUgcmVjZWl2ZXIgYW5kIHNvdXJjZSBlbmRwb2ludAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAMU9wZXJhdGlvbiByZXF1aXJlcyBhIG5vbi1kZWZhdWx0IChjdXN0b20pIGxpYnJhcnkAAAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAJ0xpYnJhcnkgbXVzdCBzdXBwb3J0IHJlY2VpdmluZyBtZXNzYWdlcwAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAsTGlicmFyeSBtdXN0IGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgZW5kcG9pbnQAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAJUxpYnJhcnkgbXVzdCBzdXBwb3J0IHNlbmRpbmcgbWVzc2FnZXMAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAADlNZXNzYWdpbmcgcGF0aCBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4AAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAL01lc3NhZ2UgY2Fubm90IGJlIHZlcmlmaWVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAArUGF5bG9hZCBoYXNoIGRvZXMgbm90IG1hdGNoIHRoZSBzdG9yZWQgaGFzaAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAJ05ldyB2YWx1ZSBpcyB0aGUgc2FtZSBhcyBleGlzdGluZyB2YWx1ZQAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAC9DYWxsZXIgaXMgbm90IGF1dGhvcml6ZWQgKG5vdCBPQXBwIG9yIGRlbGVnYXRlKQAAAAAMVW5hdXRob3JpemVkAAAAFgAAACtFbmRwb2ludCBJRCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBsaWJyYXJ5AAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAADlaUk8gZmVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8gd2hlbiBwYXlfaW5fenJvIGlzIHRydWUAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAABxaUk8gdG9rZW4gYWRkcmVzcyBpcyBub3Qgc2V0AAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAM1VuaXggdGltZXN0YW1wIGluIHNlY29uZHMgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAAGZXhwaXJ5AAAAAAAGAAAAQ1RoZSBvbGQgbGlicmFyeSBhZGRyZXNzIHRoYXQgcmVtYWlucyB2YWxpZCBkdXJpbmcgdGhlIGdyYWNlIHBlcmlvZC4AAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAAAAAAAAAAAAtVbG4zMDJFcnJvcgAAAAAUAAAARkRlZmF1bHQgZXhlY3V0b3IgY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0IGZvciB0aGUgZGVzdGluYXRpb24gZW5kcG9pbnQAAAAAAB1EZWZhdWx0RXhlY3V0b3JDb25maWdOb3RGb3VuZAAAAAAAAAEAAABERGVmYXVsdCByZWNlaXZlIFVMTiBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQgZm9yIHRoZSBzb3VyY2UgZW5kcG9pbnQAAAAfRGVmYXVsdFJlY2VpdmVVbG5Db25maWdOb3RGb3VuZAAAAAACAAAARkRlZmF1bHQgc2VuZCBVTE4gY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0IGZvciB0aGUgZGVzdGluYXRpb24gZW5kcG9pbnQAAAAAABxEZWZhdWx0U2VuZFVsbkNvbmZpZ05vdEZvdW5kAAAAAwAAAC9PcHRpb25hbCBEVk5zIGxpc3QgY29udGFpbnMgZHVwbGljYXRlIGFkZHJlc3NlcwAAAAAVRHVwbGljYXRlT3B0aW9uYWxEVk5zAAAAAAAABAAAAC9SZXF1aXJlZCBEVk5zIGxpc3QgY29udGFpbnMgZHVwbGljYXRlIGFkZHJlc3NlcwAAAAAVRHVwbGljYXRlUmVxdWlyZWREVk5zAAAAAAAABQAAADhDb25maWd1cmF0aW9uIGJ5dGVzIGZhaWxlZCB0byBwYXJzZSBhcyBleHBlY3RlZCBYRFIgdHlwZQAAAA1JbnZhbGlkQ29uZmlnAAAAAAAABgAAADxDb25maWcgdHlwZSBpcyBub3Qgb25lIG9mIEVYRUNVVE9SLCBTRU5EX1VMTiwgb3IgUkVDRUlWRV9VTE4AAAARSW52YWxpZENvbmZpZ1R5cGUAAAAAAAAHAAAAO0NvbmZpcm1hdGlvbnMgbXVzdCBiZSB6ZXJvIHdoZW4gdXNpbmcgZGVmYXVsdCBjb25maXJtYXRpb25zAAAAABRJbnZhbGlkQ29uZmlybWF0aW9ucwAAAAgAAABAUGFja2V0IGhlYWRlciBkZXN0aW5hdGlvbiBFSUQgZG9lcyBub3QgbWF0Y2ggdGhpcyBlbmRwb2ludCdzIEVJRAAAAApJbnZhbGlkRUlEAAAAAAAJAAAAMk1lc3NhZ2Ugc2l6ZSBleGNlZWRzIGV4ZWN1dG9yJ3MgY29uZmlndXJlZCBtYXhpbXVtAAAAAAASSW52YWxpZE1lc3NhZ2VTaXplAAAAAAAKAAAAMU9wdGlvbmFsIERWTnMgY291bnQgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgKDEyNykAAAAAAAAXSW52YWxpZE9wdGlvbmFsRFZOQ291bnQAAAAACwAAADxPcHRpb25hbCBEVk5zIG11c3QgYmUgZW1wdHkgd2hlbiB1c2luZyBkZWZhdWx0IG9wdGlvbmFsIERWTnMAAAATSW52YWxpZE9wdGlvbmFsRFZOcwAAAAAMAAAATU9wdGlvbmFsIERWTiB0aHJlc2hvbGQgaXMgaW52YWxpZCAobXVzdCBiZSAwIHdpdGggbm8gRFZOcywgb3IgMSB0byBEVk4gY291bnQpAAAAAAAAG0ludmFsaWRPcHRpb25hbERWTlRocmVzaG9sZAAAAAANAAAAMVJlcXVpcmVkIERWTnMgY291bnQgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgKDEyNykAAAAAAAAXSW52YWxpZFJlcXVpcmVkRFZOQ291bnQAAAAADgAAADxSZXF1aXJlZCBEVk5zIG11c3QgYmUgZW1wdHkgd2hlbiB1c2luZyBkZWZhdWx0IHJlcXVpcmVkIERWTnMAAAATSW52YWxpZFJlcXVpcmVkRFZOcwAAAAAPAAAASVNlbmRlciBhZGRyZXNzIG11c3QgYmUgYSBjb250cmFjdCAoQy1hZGRyZXNzKSwgbm90IGFuIGFjY291bnQgKEctYWRkcmVzcykAAAAAAAAUSW52YWxpZFNlbmRlckFkZHJlc3MAAAAQAAAAUkNvbmZpZ3VyYXRpb24gbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBEVk4gKHJlcXVpcmVkIG9yIG9wdGlvbmFsIHdpdGggdGhyZXNob2xkID4gMCkAAAAAABBVbG5BdExlYXN0T25lRFZOAAAAEQAAAD1FbmRwb2ludCBJRCBpcyBub3Qgc3VwcG9ydGVkIChtaXNzaW5nIGRlZmF1bHQgY29uZmlndXJhdGlvbnMpAAAAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAASAAAAME1lc3NhZ2UgaGFzIG5vdCBiZWVuIHZlcmlmaWVkIGJ5IGVub3VnaCBEVk5zIHlldAAAAAlWZXJpZnlpbmcAAAAAAAATAAAAKEV4ZWN1dG9yIG1heCBtZXNzYWdlIHNpemUgY2Fubm90IGJlIHplcm8AAAAPWmVyb01lc3NhZ2VTaXplAAAAABQAAAAFAAAAAAAAAAAAAAARRXhlY3V0b3JDb25maWdTZXQAAAAAAAABAAAAE2V4ZWN1dG9yX2NvbmZpZ19zZXQAAAAAAwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAAAAAAAGY29uZmlnAAAAAAfQAAAAEk9BcHBFeGVjdXRvckNvbmZpZwAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAQU2VuZFVsbkNvbmZpZ1NldAAAAAEAAAATc2VuZF91bG5fY29uZmlnX3NldAAAAAADAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAE1JlY2VpdmVVbG5Db25maWdTZXQAAAAAAQAAABZyZWNlaXZlX3Vsbl9jb25maWdfc2V0AAAAAAADAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAGURlZmF1bHRFeGVjdXRvckNvbmZpZ3NTZXQAAAAAAAABAAAAHGRlZmF1bHRfZXhlY3V0b3JfY29uZmlnc19zZXQAAAABAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAHVNldERlZmF1bHRFeGVjdXRvckNvbmZpZ1BhcmFtAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAYRGVmYXVsdFNlbmRVbG5Db25maWdzU2V0AAAAAQAAABxkZWZhdWx0X3NlbmRfdWxuX2NvbmZpZ3Nfc2V0AAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABhTZXREZWZhdWx0VWxuQ29uZmlnUGFyYW0AAAAAAAAAAgAAAAUAAAAAAAAAAAAAABtEZWZhdWx0UmVjZWl2ZVVsbkNvbmZpZ3NTZXQAAAAAAQAAAB9kZWZhdWx0X3JlY2VpdmVfdWxuX2NvbmZpZ3Nfc2V0AAAAAAEAAAAAAAAABnBhcmFtcwAAAAAD6gAAB9AAAAAYU2V0RGVmYXVsdFVsbkNvbmZpZ1BhcmFtAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPRXhlY3V0b3JGZWVQYWlkAAAAAAEAAAARZXhlY3V0b3JfZmVlX3BhaWQAAAAAAAADAAAAAAAAAAhleGVjdXRvcgAAABMAAAABAAAAAAAAAARndWlkAAAD7gAAACAAAAABAAAAAAAAAANmZWUAAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAApEVk5GZWVQYWlkAAAAAAABAAAADGR2bl9mZWVfcGFpZAAAAAMAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABGR2bnMAAAPqAAAAEwAAAAAAAAAAAAAABGZlZXMAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9QYXlsb2FkVmVyaWZpZWQAAAAAAQAAABBwYXlsb2FkX3ZlcmlmaWVkAAAABAAAAAAAAAADZHZuAAAAABMAAAABAAAAAAAAAAZoZWFkZXIAAAAAAA4AAAAAAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAAAAAACnByb29mX2hhc2gAAAAAA+4AAAAgAAAAAAAAAAIAAAABAAAAOFVsdHJhIExpZ2h0IE5vZGUgY29uZmlndXJhdGlvbiBmb3IgbWVzc2FnZSB2ZXJpZmljYXRpb24uAAAAAAAAAAlVbG5Db25maWcAAAAAAAAEAAAASk51bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkIGJlZm9yZSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBiZWdpbnMuAAAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAAAzTWluaW11bSBudW1iZXIgb2Ygb3B0aW9uYWwgRFZOcyByZXF1aXJlZCB0byB2ZXJpZnkuAAAAABZvcHRpb25hbF9kdm5fdGhyZXNob2xkAAAAAAAEAAAAQExpc3Qgb2YgRFZOIGFkZHJlc3NlcyBmcm9tIHdoaWNoIGEgdGhyZXNob2xkIG51bWJlciBtdXN0IHZlcmlmeS4AAAANb3B0aW9uYWxfZHZucwAAAAAAA+oAAAATAAAARkxpc3Qgb2YgRFZOIGFkZHJlc3NlcyB0aGF0IG11c3QgQUxMIHZlcmlmeSB0aGUgbWVzc2FnZSAobm8gdGhyZXNob2xkKS4AAAAAAA1yZXF1aXJlZF9kdm5zAAAAAAAD6gAAABMAAAABAAAAPE9BcHAtc3BlY2lmaWMgVUxOIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0IG92ZXJyaWRlIGZsYWdzLgAAAAAAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAQAAABFT0FwcC1zcGVjaWZpYyBVTE4gY29uZmlndXJhdGlvbiAodXNlZCB3aGVuIGRlZmF1bHRzIGFyZSBub3QgYXBwbGllZCkuAAAAAAAACnVsbl9jb25maWcAAAAAB9AAAAAJVWxuQ29uZmlnAAAAAAAAJVdoZXRoZXIgdG8gdXNlIGRlZmF1bHQgY29uZmlybWF0aW9ucy4AAAAAAAAZdXNlX2RlZmF1bHRfY29uZmlybWF0aW9ucwAAAAAAAAEAAAAlV2hldGhlciB0byB1c2UgZGVmYXVsdCBvcHRpb25hbCBEVk5zLgAAAAAAABl1c2VfZGVmYXVsdF9vcHRpb25hbF9kdm5zAAAAAAAAAQAAACVXaGV0aGVyIHRvIHVzZSBkZWZhdWx0IHJlcXVpcmVkIERWTnMuAAAAAAAAGXVzZV9kZWZhdWx0X3JlcXVpcmVkX2R2bnMAAAAAAAABAAAAAQAAAFJQYXJhbWV0ZXIgZm9yIHNldHRpbmcgZGVmYXVsdCBVTE4gY29uZmlndXJhdGlvbiBmb3IgYSBkZXN0aW5hdGlvbi9zb3VyY2UgZW5kcG9pbnQuAAAAAAAAAAAAGFNldERlZmF1bHRVbG5Db25maWdQYXJhbQAAAAIAAAAoVGhlIFVMTiBjb25maWd1cmF0aW9uIHRvIHNldCBhcyBkZWZhdWx0LgAAAAZjb25maWcAAAAAB9AAAAAJVWxuQ29uZmlnAAAAAAAAS1RoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoZm9yIHNlbmQpIG9yIHNvdXJjZSBlbmRwb2ludCBJRCAoZm9yIHJlY2VpdmUpLgAAAAADZWlkAAAAAAQAAAABAAAALEV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gZm9yIG1lc3NhZ2UgZGVsaXZlcnkuAAAAAAAAAA5FeGVjdXRvckNvbmZpZwAAAAAAAgAAAENBZGRyZXNzIG9mIHRoZSBleGVjdXRvciBjb250cmFjdCByZXNwb25zaWJsZSBmb3IgbWVzc2FnZSBleGVjdXRpb24uAAAAAAhleGVjdXRvcgAAABMAAAA5TWF4aW11bSBzaXplIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIChpbiBieXRlcykuAAAAAAAAEG1heF9tZXNzYWdlX3NpemUAAAAEAAAAAQAAAFtPQXBwLXNwZWNpZmljIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uCgpJZiBleGVjdXRvciBpcyBgTm9uZWAsIHRoZSBkZWZhdWx0IGV4ZWN1dG9yIGlzIHVzZWQuAAAAAAAAAAAST0FwcEV4ZWN1dG9yQ29uZmlnAAAAAAACAAAAaEFkZHJlc3Mgb2YgdGhlIGV4ZWN1dG9yIGNvbnRyYWN0IHRvIGJlIHVzZWQgZm9yIG1lc3NhZ2UgZXhlY3V0aW9uLiBOb25lIG1lYW5zIHVzZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uAAAACGV4ZWN1dG9yAAAD6AAAABMAAABcTWF4aW11bSBzaXplIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIChpbiBieXRlcykuIDAgbWVhbnMgdXNlIGRlZmF1bHQgY29uZmlndXJhdGlvbi4AAAAQbWF4X21lc3NhZ2Vfc2l6ZQAAAAQAAAABAAAAUFBhcmFtZXRlciBmb3Igc2V0dGluZyBkZWZhdWx0IGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuAAAAAAAAAB1TZXREZWZhdWx0RXhlY3V0b3JDb25maWdQYXJhbQAAAAAAAAIAAAAtVGhlIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gdG8gc2V0IGFzIGRlZmF1bHQuAAAAAAAABmNvbmZpZwAAAAAH0AAAAA5FeGVjdXRvckNvbmZpZwAAAAAAHFRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAHAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBwAAAAAAAAAKSW52YWxpZFR0bAAAAAAECAAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQJAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECgAAAAAAAAALT3duZXJOb3RTZXQAAAAECwAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQMAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAMAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAAAAAAAA5VcGdyYWRlc0Zyb3plbgAAAAAEHAAAAAQAAAAYTXVsdGlTaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aVNpZ0Vycm9yAAAAAAAACQAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABCUAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQmAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJwAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQoAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKQAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQqAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKwAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCwAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlTaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAPEV2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgY2FuY2VsbGVkLgAAAAAAAAAaT3duZXJzaGlwVHJhbnNmZXJDYW5jZWxsZWQAAAAAAAEAAAAcb3duZXJzaGlwX3RyYW5zZmVyX2NhbmNlbGxlZAAAAAIAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAF2NhbmNlbGxlZF9wZW5kaW5nX293bmVyAAAAABMAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAiwEOY29udHJhY3RtZXRhdjAAAAAAAAAABmJpbnZlcgAAAAAABTAuMC4xAAAAAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMS4wIzg2YzUwYTFlYTRmODdiNDBhZGQzMDY0ZmY5ZGY5NWM3NTUzNTY1YzUAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMC4wI2E2NDkyNWU5MzkxYzNkM2IzZWY4ZTUzZGM2MGMyM2RiOWU2YTgyZTQA";
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 = "f98131c421cf42155df337d9d65de113f3dcd82c9546edbb1cdc2aaa51a930f9";
16
+ export declare const WASM_HASH = "d871b71ff5f540d1a9a72ec62e1e481a531804047b538de2f5cde3c30b5c52f5";
17
17
  /**
18
18
  * Get the WASM bytecode as a Buffer
19
19
  * Use this to upload the WASM to the network
@@ -77,78 +77,153 @@ export type VerificationState = {
77
77
  values: void;
78
78
  };
79
79
  export declare const EndpointError: {
80
+ /**
81
+ * Library is already registered with the endpoint
82
+ */
80
83
  1: {
81
84
  message: string;
82
85
  };
86
+ /**
87
+ * Compose message already exists for this GUID and index
88
+ */
83
89
  2: {
84
90
  message: string;
85
91
  };
92
+ /**
93
+ * Compose message not found for the given GUID and index
94
+ */
86
95
  3: {
87
96
  message: string;
88
97
  };
98
+ /**
99
+ * Default receive library is not set for the source endpoint
100
+ */
89
101
  4: {
90
102
  message: string;
91
103
  };
104
+ /**
105
+ * Default send library is not set for the destination endpoint
106
+ */
92
107
  5: {
93
108
  message: string;
94
109
  };
110
+ /**
111
+ * Supplied native token fee is less than required
112
+ */
95
113
  6: {
96
114
  message: string;
97
115
  };
116
+ /**
117
+ * Supplied ZRO token fee is less than required
118
+ */
98
119
  7: {
99
120
  message: string;
100
121
  };
122
+ /**
123
+ * Timeout expiry is invalid (already expired)
124
+ */
101
125
  8: {
102
126
  message: string;
103
127
  };
128
+ /**
129
+ * Fee amount is invalid (negative)
130
+ */
104
131
  9: {
105
132
  message: string;
106
133
  };
134
+ /**
135
+ * Compose index exceeds maximum allowed value
136
+ */
107
137
  10: {
108
138
  message: string;
109
139
  };
140
+ /**
141
+ * Nonce is invalid for the requested operation
142
+ */
110
143
  11: {
111
144
  message: string;
112
145
  };
146
+ /**
147
+ * Payload hash is invalid (empty hash not allowed)
148
+ */
113
149
  12: {
114
150
  message: string;
115
151
  };
152
+ /**
153
+ * Receive library is not valid for the receiver and source endpoint
154
+ */
116
155
  13: {
117
156
  message: string;
118
157
  };
158
+ /**
159
+ * Operation requires a non-default (custom) library
160
+ */
119
161
  14: {
120
162
  message: string;
121
163
  };
164
+ /**
165
+ * Library must support receiving messages
166
+ */
122
167
  15: {
123
168
  message: string;
124
169
  };
170
+ /**
171
+ * Library must be registered with the endpoint
172
+ */
125
173
  16: {
126
174
  message: string;
127
175
  };
176
+ /**
177
+ * Library must support sending messages
178
+ */
128
179
  17: {
129
180
  message: string;
130
181
  };
182
+ /**
183
+ * Messaging path cannot be initialized for the given origin
184
+ */
131
185
  18: {
132
186
  message: string;
133
187
  };
188
+ /**
189
+ * Message cannot be verified for the given origin
190
+ */
134
191
  19: {
135
192
  message: string;
136
193
  };
194
+ /**
195
+ * Payload hash does not match the stored hash
196
+ */
137
197
  20: {
138
198
  message: string;
139
199
  };
200
+ /**
201
+ * New value is the same as existing value
202
+ */
140
203
  21: {
141
204
  message: string;
142
205
  };
206
+ /**
207
+ * Caller is not authorized (not OApp or delegate)
208
+ */
143
209
  22: {
144
210
  message: string;
145
211
  };
212
+ /**
213
+ * Endpoint ID is not supported by the library
214
+ */
146
215
  23: {
147
216
  message: string;
148
217
  };
218
+ /**
219
+ * ZRO fee must be greater than zero when pay_in_zro is true
220
+ */
149
221
  24: {
150
222
  message: string;
151
223
  };
224
+ /**
225
+ * ZRO token address is not set
226
+ */
152
227
  25: {
153
228
  message: string;
154
229
  };
@@ -263,11 +338,11 @@ export interface MessageLibVersion {
263
338
  */
264
339
  export interface Timeout {
265
340
  /**
266
- * Unix timestamp when the timeout expires.
341
+ * Unix timestamp in seconds when the timeout expires.
267
342
  */
268
343
  expiry: u64;
269
344
  /**
270
- * The new library address to transition to.
345
+ * The old library address that remains valid during the grace period.
271
346
  */
272
347
  lib: string;
273
348
  }
@@ -408,63 +483,126 @@ export declare const WorkerOptionsError: {
408
483
  };
409
484
  };
410
485
  export declare const Uln302Error: {
486
+ /**
487
+ * Default executor configuration is not set for the destination endpoint
488
+ */
411
489
  1: {
412
490
  message: string;
413
491
  };
492
+ /**
493
+ * Default receive ULN configuration is not set for the source endpoint
494
+ */
414
495
  2: {
415
496
  message: string;
416
497
  };
498
+ /**
499
+ * Default send ULN configuration is not set for the destination endpoint
500
+ */
417
501
  3: {
418
502
  message: string;
419
503
  };
504
+ /**
505
+ * Optional DVNs list contains duplicate addresses
506
+ */
420
507
  4: {
421
508
  message: string;
422
509
  };
510
+ /**
511
+ * Required DVNs list contains duplicate addresses
512
+ */
423
513
  5: {
424
514
  message: string;
425
515
  };
516
+ /**
517
+ * Configuration bytes failed to parse as expected XDR type
518
+ */
426
519
  6: {
427
520
  message: string;
428
521
  };
522
+ /**
523
+ * Config type is not one of EXECUTOR, SEND_ULN, or RECEIVE_ULN
524
+ */
429
525
  7: {
430
526
  message: string;
431
527
  };
528
+ /**
529
+ * Confirmations must be zero when using default confirmations
530
+ */
432
531
  8: {
433
532
  message: string;
434
533
  };
534
+ /**
535
+ * Packet header destination EID does not match this endpoint's EID
536
+ */
435
537
  9: {
436
538
  message: string;
437
539
  };
540
+ /**
541
+ * Message size exceeds executor's configured maximum
542
+ */
438
543
  10: {
439
544
  message: string;
440
545
  };
546
+ /**
547
+ * Optional DVNs count exceeds maximum allowed (127)
548
+ */
441
549
  11: {
442
550
  message: string;
443
551
  };
552
+ /**
553
+ * Optional DVNs must be empty when using default optional DVNs
554
+ */
444
555
  12: {
445
556
  message: string;
446
557
  };
558
+ /**
559
+ * Optional DVN threshold is invalid (must be 0 with no DVNs, or 1 to DVN count)
560
+ */
447
561
  13: {
448
562
  message: string;
449
563
  };
564
+ /**
565
+ * Required DVNs count exceeds maximum allowed (127)
566
+ */
450
567
  14: {
451
568
  message: string;
452
569
  };
570
+ /**
571
+ * Required DVNs must be empty when using default required DVNs
572
+ */
453
573
  15: {
454
574
  message: string;
455
575
  };
576
+ /**
577
+ * Sender address must be a contract (C-address), not an account (G-address)
578
+ */
456
579
  16: {
457
580
  message: string;
458
581
  };
582
+ /**
583
+ * Configuration must have at least one DVN (required or optional with threshold > 0)
584
+ */
459
585
  17: {
460
586
  message: string;
461
587
  };
588
+ /**
589
+ * Endpoint ID is not supported (missing default configurations)
590
+ */
462
591
  18: {
463
592
  message: string;
464
593
  };
594
+ /**
595
+ * Message has not been verified by enough DVNs yet
596
+ */
465
597
  19: {
466
598
  message: string;
467
599
  };
600
+ /**
601
+ * Executor max message size cannot be zero
602
+ */
603
+ 20: {
604
+ message: string;
605
+ };
468
606
  };
469
607
  /**
470
608
  * Ultra Light Node configuration for message verification.
@@ -617,6 +755,9 @@ export declare const OwnableError: {
617
755
  1035: {
618
756
  message: string;
619
757
  };
758
+ 1036: {
759
+ message: string;
760
+ };
620
761
  };
621
762
  /**
622
763
  * BytesExtError: 1040-1049
@@ -641,9 +782,9 @@ export declare const UpgradeableError: {
641
782
  };
642
783
  };
643
784
  /**
644
- * MultisigError: 1060-1069
785
+ * MultiSigError: 1060-1069
645
786
  */
646
- export declare const MultisigError: {
787
+ export declare const MultiSigError: {
647
788
  1060: {
648
789
  message: string;
649
790
  };
@@ -668,8 +809,11 @@ export declare const MultisigError: {
668
809
  1067: {
669
810
  message: string;
670
811
  };
812
+ 1068: {
813
+ message: string;
814
+ };
671
815
  };
672
- export type MultisigStorage = {
816
+ export type MultiSigStorage = {
673
817
  tag: "Signers";
674
818
  values: void;
675
819
  } | {
@@ -716,137 +860,44 @@ export type UpgradeableStorage = {
716
860
  export interface Client {
717
861
  /**
718
862
  * Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
719
- * The type of data required for migration.
720
863
  * Upgrades the contract to new WASM bytecode.
721
864
  * Sets a migration flag that must be cleared by calling `migrate`.
722
865
  */
723
866
  upgrade: ({ new_wasm_hash }: {
724
867
  new_wasm_hash: Buffer;
725
- }, txnOptions?: {
726
- /**
727
- * The fee to pay for the transaction. Default: BASE_FEE
728
- */
729
- fee?: number;
730
- /**
731
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
732
- */
733
- timeoutInSeconds?: number;
734
- /**
735
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
736
- */
737
- simulate?: boolean;
738
- }) => Promise<AssembledTransaction<null>>;
868
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
739
869
  /**
740
870
  * Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
741
871
  * Runs migration logic after an upgrade.
742
- * Can only be called when the migration flag is set by a previous `upgrade` call.
872
+ * Parses XDR-encoded `migration_data` and calls `__migrate`. Clears the migration flag on success.
743
873
  */
744
874
  migrate: ({ migration_data }: {
745
875
  migration_data: Buffer;
746
- }, txnOptions?: {
747
- /**
748
- * The fee to pay for the transaction. Default: BASE_FEE
749
- */
750
- fee?: number;
751
- /**
752
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
753
- */
754
- timeoutInSeconds?: number;
755
- /**
756
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
757
- */
758
- simulate?: boolean;
759
- }) => Promise<AssembledTransaction<null>>;
876
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
760
877
  /**
761
878
  * Construct and simulate a freeze 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.
762
- * Permanently freezes the contract, preventing any future upgrades.
763
- * This action is irreversible.
764
- */
765
- freeze: (txnOptions?: {
766
- /**
767
- * The fee to pay for the transaction. Default: BASE_FEE
768
- */
769
- fee?: number;
770
- /**
771
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
772
- */
773
- timeoutInSeconds?: number;
774
- /**
775
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
776
- */
777
- simulate?: boolean;
778
- }) => Promise<AssembledTransaction<null>>;
879
+ * Permanently freezes the contract, preventing any future upgrades. Irreversible.
880
+ */
881
+ freeze: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
779
882
  /**
780
883
  * Construct and simulate a is_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.
781
884
  * Returns whether the contract is frozen (upgrades disabled).
782
885
  */
783
- is_frozen: (txnOptions?: {
784
- /**
785
- * The fee to pay for the transaction. Default: BASE_FEE
786
- */
787
- fee?: number;
788
- /**
789
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
790
- */
791
- timeoutInSeconds?: number;
792
- /**
793
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
794
- */
795
- simulate?: boolean;
796
- }) => Promise<AssembledTransaction<boolean>>;
886
+ is_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
797
887
  /**
798
888
  * 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.
799
889
  */
800
- authorizer: (txnOptions?: {
801
- /**
802
- * The fee to pay for the transaction. Default: BASE_FEE
803
- */
804
- fee?: number;
805
- /**
806
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
807
- */
808
- timeoutInSeconds?: number;
809
- /**
810
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
811
- */
812
- simulate?: boolean;
813
- }) => Promise<AssembledTransaction<string>>;
890
+ authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
814
891
  /**
815
892
  * 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.
816
893
  * Returns the current owner address, or None if no owner is set.
817
894
  */
818
- owner: (txnOptions?: {
819
- /**
820
- * The fee to pay for the transaction. Default: BASE_FEE
821
- */
822
- fee?: number;
823
- /**
824
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
825
- */
826
- timeoutInSeconds?: number;
827
- /**
828
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
829
- */
830
- simulate?: boolean;
831
- }) => Promise<AssembledTransaction<Option<string>>>;
895
+ owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
832
896
  /**
833
897
  * 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.
834
898
  * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
835
899
  */
836
- pending_owner: (txnOptions?: {
837
- /**
838
- * The fee to pay for the transaction. Default: BASE_FEE
839
- */
840
- fee?: number;
841
- /**
842
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
843
- */
844
- timeoutInSeconds?: number;
845
- /**
846
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
847
- */
848
- simulate?: boolean;
849
- }) => Promise<AssembledTransaction<Option<string>>>;
900
+ pending_owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
850
901
  /**
851
902
  * 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.
852
903
  * Transfers ownership immediately to a new address.
@@ -860,20 +911,7 @@ export interface Client {
860
911
  */
861
912
  transfer_ownership: ({ new_owner }: {
862
913
  new_owner: string;
863
- }, txnOptions?: {
864
- /**
865
- * The fee to pay for the transaction. Default: BASE_FEE
866
- */
867
- fee?: number;
868
- /**
869
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
870
- */
871
- timeoutInSeconds?: number;
872
- /**
873
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
874
- */
875
- simulate?: boolean;
876
- }) => Promise<AssembledTransaction<null>>;
914
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
877
915
  /**
878
916
  * 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.
879
917
  * Proposes an ownership transfer to a new address.
@@ -895,20 +933,7 @@ export interface Client {
895
933
  propose_ownership_transfer: ({ new_owner, ttl }: {
896
934
  new_owner: string;
897
935
  ttl: u32;
898
- }, txnOptions?: {
899
- /**
900
- * The fee to pay for the transaction. Default: BASE_FEE
901
- */
902
- fee?: number;
903
- /**
904
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
905
- */
906
- timeoutInSeconds?: number;
907
- /**
908
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
909
- */
910
- simulate?: boolean;
911
- }) => Promise<AssembledTransaction<null>>;
936
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
912
937
  /**
913
938
  * 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.
914
939
  * Accepts a pending 2-step ownership transfer.
@@ -918,20 +943,7 @@ export interface Client {
918
943
  * # Panics
919
944
  * - `NoPendingTransfer` if there is no pending transfer (or it expired)
920
945
  */
921
- accept_ownership: (txnOptions?: {
922
- /**
923
- * The fee to pay for the transaction. Default: BASE_FEE
924
- */
925
- fee?: number;
926
- /**
927
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
928
- */
929
- timeoutInSeconds?: number;
930
- /**
931
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
932
- */
933
- simulate?: boolean;
934
- }) => Promise<AssembledTransaction<null>>;
946
+ accept_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
935
947
  /**
936
948
  * 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.
937
949
  * Permanently renounces ownership.
@@ -940,20 +952,7 @@ export interface Client {
940
952
  * - `OwnerNotSet` if no owner is currently set
941
953
  * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
942
954
  */
943
- renounce_ownership: (txnOptions?: {
944
- /**
945
- * The fee to pay for the transaction. Default: BASE_FEE
946
- */
947
- fee?: number;
948
- /**
949
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
950
- */
951
- timeoutInSeconds?: number;
952
- /**
953
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
954
- */
955
- simulate?: boolean;
956
- }) => Promise<AssembledTransaction<null>>;
955
+ renounce_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
957
956
  /**
958
957
  * 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.
959
958
  * Extends the instance TTL.
@@ -966,20 +965,7 @@ export interface Client {
966
965
  extend_instance_ttl: ({ threshold, extend_to }: {
967
966
  threshold: u32;
968
967
  extend_to: u32;
969
- }, txnOptions?: {
970
- /**
971
- * The fee to pay for the transaction. Default: BASE_FEE
972
- */
973
- fee?: number;
974
- /**
975
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
976
- */
977
- timeoutInSeconds?: number;
978
- /**
979
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
980
- */
981
- simulate?: boolean;
982
- }) => Promise<AssembledTransaction<null>>;
968
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
983
969
  /**
984
970
  * 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.
985
971
  * Sets TTL configs for instance and persistent storage.
@@ -998,38 +984,12 @@ export interface Client {
998
984
  set_ttl_configs: ({ instance, persistent }: {
999
985
  instance: Option<TtlConfig>;
1000
986
  persistent: Option<TtlConfig>;
1001
- }, txnOptions?: {
1002
- /**
1003
- * The fee to pay for the transaction. Default: BASE_FEE
1004
- */
1005
- fee?: number;
1006
- /**
1007
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1008
- */
1009
- timeoutInSeconds?: number;
1010
- /**
1011
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1012
- */
1013
- simulate?: boolean;
1014
- }) => Promise<AssembledTransaction<null>>;
987
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1015
988
  /**
1016
989
  * 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.
1017
990
  * Returns the current TTL configs as (instance_config, persistent_config).
1018
991
  */
1019
- ttl_configs: (txnOptions?: {
1020
- /**
1021
- * The fee to pay for the transaction. Default: BASE_FEE
1022
- */
1023
- fee?: number;
1024
- /**
1025
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1026
- */
1027
- timeoutInSeconds?: number;
1028
- /**
1029
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1030
- */
1031
- simulate?: boolean;
1032
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
992
+ ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1033
993
  /**
1034
994
  * 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.
1035
995
  * Permanently freezes TTL configs, preventing any future modifications.
@@ -1040,92 +1000,27 @@ export interface Client {
1040
1000
  * # Panics
1041
1001
  * - `TtlConfigAlreadyFrozen` if already frozen
1042
1002
  */
1043
- freeze_ttl_configs: (txnOptions?: {
1044
- /**
1045
- * The fee to pay for the transaction. Default: BASE_FEE
1046
- */
1047
- fee?: number;
1048
- /**
1049
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1050
- */
1051
- timeoutInSeconds?: number;
1052
- /**
1053
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1054
- */
1055
- simulate?: boolean;
1056
- }) => Promise<AssembledTransaction<null>>;
1003
+ freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1057
1004
  /**
1058
1005
  * 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.
1059
1006
  * Returns whether TTL configs are frozen.
1060
1007
  */
1061
- is_ttl_configs_frozen: (txnOptions?: {
1062
- /**
1063
- * The fee to pay for the transaction. Default: BASE_FEE
1064
- */
1065
- fee?: number;
1066
- /**
1067
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1068
- */
1069
- timeoutInSeconds?: number;
1070
- /**
1071
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1072
- */
1073
- simulate?: boolean;
1074
- }) => Promise<AssembledTransaction<boolean>>;
1008
+ is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1075
1009
  /**
1076
1010
  * Construct and simulate a endpoint transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1077
1011
  * Returns the endpoint address.
1078
1012
  */
1079
- endpoint: (txnOptions?: {
1080
- /**
1081
- * The fee to pay for the transaction. Default: BASE_FEE
1082
- */
1083
- fee?: number;
1084
- /**
1085
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1086
- */
1087
- timeoutInSeconds?: number;
1088
- /**
1089
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1090
- */
1091
- simulate?: boolean;
1092
- }) => Promise<AssembledTransaction<string>>;
1013
+ endpoint: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
1093
1014
  /**
1094
1015
  * Construct and simulate a uln302 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.
1095
1016
  * Returns the Uln302 address.
1096
1017
  */
1097
- uln302: (txnOptions?: {
1098
- /**
1099
- * The fee to pay for the transaction. Default: BASE_FEE
1100
- */
1101
- fee?: number;
1102
- /**
1103
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1104
- */
1105
- timeoutInSeconds?: number;
1106
- /**
1107
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1108
- */
1109
- simulate?: boolean;
1110
- }) => Promise<AssembledTransaction<string>>;
1018
+ uln302: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
1111
1019
  /**
1112
1020
  * Construct and simulate a local_eid transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1113
1021
  * Returns the local endpoint ID.
1114
1022
  */
1115
- local_eid: (txnOptions?: {
1116
- /**
1117
- * The fee to pay for the transaction. Default: BASE_FEE
1118
- */
1119
- fee?: number;
1120
- /**
1121
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1122
- */
1123
- timeoutInSeconds?: number;
1124
- /**
1125
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1126
- */
1127
- simulate?: boolean;
1128
- }) => Promise<AssembledTransaction<u32>>;
1023
+ local_eid: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>;
1129
1024
  /**
1130
1025
  * Construct and simulate a initializable 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.
1131
1026
  * Checks if a messaging path can be initialized for the given origin and receiver.
@@ -1133,20 +1028,7 @@ export interface Client {
1133
1028
  initializable: ({ origin, receiver }: {
1134
1029
  origin: Origin;
1135
1030
  receiver: string;
1136
- }, txnOptions?: {
1137
- /**
1138
- * The fee to pay for the transaction. Default: BASE_FEE
1139
- */
1140
- fee?: number;
1141
- /**
1142
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1143
- */
1144
- timeoutInSeconds?: number;
1145
- /**
1146
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1147
- */
1148
- simulate?: boolean;
1149
- }) => Promise<AssembledTransaction<boolean>>;
1031
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1150
1032
  /**
1151
1033
  * Construct and simulate a verifiable transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1152
1034
  * Checks if a message can be verified at the endpoint.
@@ -1161,20 +1043,7 @@ export interface Client {
1161
1043
  receiver: string;
1162
1044
  receive_lib: string;
1163
1045
  payload_hash: Buffer;
1164
- }, txnOptions?: {
1165
- /**
1166
- * The fee to pay for the transaction. Default: BASE_FEE
1167
- */
1168
- fee?: number;
1169
- /**
1170
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1171
- */
1172
- timeoutInSeconds?: number;
1173
- /**
1174
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1175
- */
1176
- simulate?: boolean;
1177
- }) => Promise<AssembledTransaction<boolean>>;
1046
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1178
1047
  /**
1179
1048
  * Construct and simulate a executable 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.
1180
1049
  * Returns the execution state of a message.
@@ -1182,20 +1051,7 @@ export interface Client {
1182
1051
  executable: ({ origin, receiver }: {
1183
1052
  origin: Origin;
1184
1053
  receiver: string;
1185
- }, txnOptions?: {
1186
- /**
1187
- * The fee to pay for the transaction. Default: BASE_FEE
1188
- */
1189
- fee?: number;
1190
- /**
1191
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1192
- */
1193
- timeoutInSeconds?: number;
1194
- /**
1195
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1196
- */
1197
- simulate?: boolean;
1198
- }) => Promise<AssembledTransaction<ExecutionState>>;
1054
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<ExecutionState>>;
1199
1055
  /**
1200
1056
  * Construct and simulate a uln_verifiable 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.
1201
1057
  * Returns the combined verification state of a message.
@@ -1209,20 +1065,7 @@ export interface Client {
1209
1065
  uln_verifiable: ({ packet_header, payload_hash }: {
1210
1066
  packet_header: Buffer;
1211
1067
  payload_hash: Buffer;
1212
- }, txnOptions?: {
1213
- /**
1214
- * The fee to pay for the transaction. Default: BASE_FEE
1215
- */
1216
- fee?: number;
1217
- /**
1218
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1219
- */
1220
- timeoutInSeconds?: number;
1221
- /**
1222
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1223
- */
1224
- simulate?: boolean;
1225
- }) => Promise<AssembledTransaction<VerificationState>>;
1068
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<VerificationState>>;
1226
1069
  }
1227
1070
  export declare class Client extends ContractClient {
1228
1071
  readonly options: ContractClientOptions;