@layerzerolabs/protocol-stellar-v2 0.2.21 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/.turbo/turbo-build.log +347 -271
  2. package/.turbo/turbo-lint.log +277 -208
  3. package/.turbo/turbo-test.log +1700 -1370
  4. package/Cargo.lock +22 -51
  5. package/Cargo.toml +6 -1
  6. package/contracts/common-macros/src/auth.rs +10 -9
  7. package/contracts/common-macros/src/contract_ttl.rs +1 -4
  8. package/contracts/common-macros/src/error.rs +1 -3
  9. package/contracts/common-macros/src/lib.rs +65 -61
  10. package/contracts/common-macros/src/storage.rs +212 -65
  11. package/contracts/common-macros/src/tests/auth.rs +75 -6
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +383 -350
  13. package/contracts/common-macros/src/tests/error.rs +9 -21
  14. package/contracts/common-macros/src/tests/lz_contract.rs +80 -0
  15. package/contracts/common-macros/src/tests/mod.rs +2 -0
  16. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -3
  17. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +28 -1
  18. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +8 -43
  19. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +6 -29
  20. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +31 -0
  21. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +8 -0
  22. package/contracts/common-macros/src/tests/storage/extract_fields.rs +87 -0
  23. package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +223 -0
  24. package/contracts/common-macros/src/tests/storage/gen_args.rs +65 -0
  25. package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +78 -0
  26. package/contracts/common-macros/src/tests/storage/gen_key.rs +108 -0
  27. package/contracts/common-macros/src/tests/storage/gen_params.rs +105 -0
  28. package/contracts/common-macros/src/tests/{storage.rs → storage/generate_storage.rs} +54 -129
  29. package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +48 -0
  30. package/contracts/common-macros/src/tests/storage/mod.rs +16 -0
  31. package/contracts/common-macros/src/tests/storage/parse_default.rs +164 -0
  32. package/contracts/common-macros/src/tests/storage/parse_name.rs +159 -0
  33. package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +124 -0
  34. package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +174 -0
  35. package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +412 -0
  36. package/contracts/common-macros/src/tests/storage/storage_kind.rs +39 -0
  37. package/contracts/common-macros/src/tests/storage/test_setup.rs +25 -0
  38. package/contracts/common-macros/src/tests/storage/validate_attrs.rs +138 -0
  39. package/contracts/common-macros/src/tests/storage/variant_config.rs +226 -0
  40. package/contracts/common-macros/src/tests/test_helpers.rs +4 -10
  41. package/contracts/common-macros/src/tests/ttl_configurable.rs +2 -2
  42. package/contracts/common-macros/src/tests/ttl_extendable.rs +32 -0
  43. package/contracts/common-macros/src/tests/upgradeable.rs +118 -2
  44. package/contracts/common-macros/src/ttl_configurable.rs +1 -4
  45. package/contracts/common-macros/src/upgradeable.rs +21 -3
  46. package/contracts/endpoint-v2/Cargo.toml +0 -4
  47. package/contracts/endpoint-v2/src/endpoint_v2.rs +37 -17
  48. package/contracts/endpoint-v2/src/errors.rs +26 -1
  49. package/contracts/endpoint-v2/src/interfaces/layerzero_endpoint_v2.rs +1 -1
  50. package/contracts/endpoint-v2/src/interfaces/message_lib_manager.rs +4 -4
  51. package/contracts/endpoint-v2/src/interfaces/messaging_composer.rs +2 -2
  52. package/contracts/endpoint-v2/src/lib.rs +0 -1
  53. package/contracts/endpoint-v2/src/message_lib_manager.rs +39 -8
  54. package/contracts/endpoint-v2/src/messaging_channel.rs +36 -4
  55. package/contracts/endpoint-v2/src/messaging_composer.rs +18 -4
  56. package/contracts/endpoint-v2/src/storage.rs +9 -1
  57. package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +2 -2
  58. package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +1 -1
  59. package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
  60. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +3 -3
  61. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +5 -5
  62. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +2 -2
  63. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +5 -5
  64. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +3 -3
  65. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +1 -1
  66. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +4 -3
  67. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +7 -2
  68. package/contracts/endpoint-v2/src/tests/messaging_composer/mod.rs +4 -0
  69. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +7 -2
  70. package/contracts/layerzero-views/src/layerzero_view.rs +0 -1
  71. package/contracts/layerzero-views/src/tests/mod.rs +1 -0
  72. package/contracts/layerzero-views/src/tests/types_tests.rs +31 -0
  73. package/contracts/layerzero-views/src/types.rs +2 -3
  74. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +61 -0
  75. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +97 -0
  76. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +99 -0
  77. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +3 -0
  78. package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +5 -0
  79. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +86 -0
  80. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +47 -0
  81. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +77 -0
  82. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +114 -0
  83. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +105 -0
  84. package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +242 -0
  85. package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +9 -0
  86. package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +54 -0
  87. package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +13 -0
  88. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +1 -0
  89. package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +70 -1
  90. package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +219 -0
  91. package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +41 -0
  92. package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +48 -16
  93. package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +10 -0
  94. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +96 -3
  95. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +4 -0
  96. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +64 -0
  97. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +16 -0
  98. package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +305 -0
  99. package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +3 -0
  100. package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +59 -0
  101. package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +88 -0
  102. package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
  103. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +6 -0
  104. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +7 -0
  105. package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +102 -0
  106. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +6 -0
  107. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +7 -0
  108. package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +83 -0
  109. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +11 -0
  110. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +7 -0
  111. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +11 -0
  112. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +7 -0
  113. package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +22 -0
  114. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +6 -0
  115. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +7 -0
  116. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +20 -0
  117. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +20 -0
  118. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +8 -0
  119. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +7 -0
  120. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +10 -0
  121. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +7 -0
  122. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +20 -0
  123. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +86 -0
  124. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +45 -0
  125. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +34 -0
  126. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +30 -0
  127. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +39 -0
  128. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +28 -0
  129. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +8 -0
  130. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +7 -0
  131. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +20 -0
  132. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +12 -0
  133. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +20 -0
  134. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +5 -0
  135. package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +49 -0
  136. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +8 -0
  137. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +7 -0
  138. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +19 -0
  139. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +12 -0
  140. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +1 -1
  141. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -8
  142. package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +39 -0
  143. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +7 -1
  144. package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +1 -1
  145. package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +1 -1
  146. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +11 -0
  147. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +7 -0
  148. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +11 -0
  149. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +7 -0
  150. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +11 -0
  151. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +7 -0
  152. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +1 -1
  153. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +13 -0
  154. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +7 -0
  155. package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +102 -0
  156. package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +43 -0
  157. package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +38 -0
  158. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +14 -0
  159. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +71 -0
  160. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +8 -0
  161. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +7 -0
  162. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/{minimal_contract.rs → basic.rs} +2 -0
  163. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +28 -0
  164. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +32 -0
  165. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +8 -0
  166. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +7 -0
  167. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +23 -0
  168. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +21 -0
  169. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +11 -0
  170. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +29 -0
  171. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +20 -0
  172. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +71 -0
  173. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +10 -0
  174. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +79 -0
  175. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +8 -0
  176. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +7 -0
  177. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +43 -0
  178. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +35 -0
  179. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +30 -0
  180. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +29 -0
  181. package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +12 -0
  182. package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +12 -0
  183. package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +11 -0
  184. package/contracts/macro-integration-tests/tests/ui_multisig.rs +11 -0
  185. package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +12 -0
  186. package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +11 -0
  187. package/contracts/message-libs/blocked-message-lib/Cargo.toml +1 -1
  188. package/contracts/message-libs/blocked-message-lib/src/lib.rs +4 -1
  189. package/contracts/message-libs/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +108 -0
  190. package/contracts/message-libs/blocked-message-lib/src/tests/mod.rs +4 -0
  191. package/contracts/message-libs/blocked-message-lib/src/tests/setup.rs +40 -0
  192. package/contracts/message-libs/simple-message-lib/src/lib.rs +1 -1
  193. package/contracts/message-libs/simple-message-lib/src/tests/mod.rs +2 -0
  194. package/contracts/message-libs/simple-message-lib/src/tests/setup.rs +124 -0
  195. package/contracts/message-libs/simple-message-lib/src/tests/simple_message_lib_tests.rs +309 -0
  196. package/contracts/message-libs/uln-302/src/errors.rs +21 -0
  197. package/contracts/message-libs/uln-302/src/interfaces/receive_uln.rs +1 -1
  198. package/contracts/message-libs/uln-302/src/receive_uln.rs +6 -4
  199. package/contracts/message-libs/uln-302/src/send_uln.rs +15 -6
  200. package/contracts/message-libs/uln-302/src/storage.rs +5 -5
  201. package/contracts/message-libs/uln-302/src/tests/uln302/get_config.rs +71 -0
  202. package/contracts/message-libs/uln-302/src/tests/uln302/mod.rs +1 -0
  203. package/contracts/message-libs/uln-302/src/uln302.rs +3 -0
  204. package/contracts/oapps/counter/Cargo.toml +2 -0
  205. package/contracts/oapps/counter/integration_tests/mod.rs +1 -0
  206. package/contracts/oapps/counter/integration_tests/setup_sml.rs +6 -4
  207. package/contracts/oapps/counter/integration_tests/setup_uln.rs +12 -5
  208. package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +67 -0
  209. package/contracts/oapps/counter/src/tests/mod.rs +1 -0
  210. package/contracts/oapps/counter/src/tests/test_u256_ext.rs +48 -0
  211. package/contracts/oapps/oapp/src/lib.rs +0 -3
  212. package/contracts/oapps/oapp/src/tests/mod.rs +1 -0
  213. package/contracts/oapps/oft/integration-tests/setup.rs +2 -3
  214. package/contracts/oapps/oft/src/lib.rs +3 -0
  215. package/contracts/oapps/oft/src/tests/extensions/mod.rs +3 -0
  216. package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +240 -0
  217. package/contracts/oapps/oft/src/tests/extensions/pausable.rs +141 -0
  218. package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +447 -0
  219. package/contracts/oapps/oft/src/tests/mod.rs +2 -0
  220. package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +180 -0
  221. package/contracts/oapps/oft/src/tests/oft_types/mod.rs +1 -0
  222. package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -3
  223. package/contracts/oapps/oft-core/src/lib.rs +2 -2
  224. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -1
  225. package/contracts/oapps/oft-core/src/tests/{test_oft_version.rs → test_oft_version_and_approval.rs} +9 -0
  226. package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -43
  227. package/contracts/upgrader/src/tests/test_upgrader.rs +18 -0
  228. package/contracts/utils/src/auth.rs +2 -2
  229. package/contracts/utils/src/buffer_reader.rs +61 -10
  230. package/contracts/utils/src/buffer_writer.rs +35 -20
  231. package/contracts/utils/src/bytes_ext.rs +1 -2
  232. package/contracts/utils/src/errors.rs +5 -3
  233. package/contracts/utils/src/multisig.rs +59 -36
  234. package/contracts/utils/src/option_ext.rs +3 -3
  235. package/contracts/utils/src/ownable.rs +12 -6
  236. package/contracts/utils/src/tests/auth.rs +179 -0
  237. package/contracts/utils/src/tests/buffer_reader.rs +203 -1
  238. package/contracts/utils/src/tests/buffer_writer.rs +176 -5
  239. package/contracts/utils/src/tests/mod.rs +2 -0
  240. package/contracts/utils/src/tests/multisig.rs +170 -141
  241. package/contracts/utils/src/tests/option_ext.rs +1 -1
  242. package/contracts/utils/src/tests/ownable.rs +156 -161
  243. package/contracts/utils/src/tests/test_helper.rs +21 -1
  244. package/contracts/utils/src/tests/testing_utils.rs +84 -2
  245. package/contracts/utils/src/tests/ttl_configurable.rs +66 -86
  246. package/contracts/utils/src/tests/ttl_extendable.rs +64 -0
  247. package/contracts/utils/src/tests/upgradeable.rs +115 -6
  248. package/contracts/utils/src/ttl_configurable.rs +22 -12
  249. package/contracts/utils/src/ttl_extendable.rs +1 -3
  250. package/contracts/utils/src/upgradeable.rs +21 -24
  251. package/contracts/workers/dvn/src/auth.rs +1 -1
  252. package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
  253. package/contracts/workers/dvn/src/storage.rs +1 -1
  254. package/contracts/workers/dvn/src/tests/auth.rs +136 -3
  255. package/contracts/workers/dvn/src/tests/mod.rs +0 -1
  256. package/contracts/workers/dvn/src/tests/setup.rs +4 -10
  257. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +279 -0
  258. package/contracts/workers/executor-helper/src/tests/setup.rs +106 -1
  259. package/contracts/workers/worker/src/worker.rs +1 -1
  260. package/docs/oft-guide.md +5 -5
  261. package/package.json +5 -7
  262. package/sdk/.turbo/turbo-test.log +662 -466
  263. package/sdk/LICENSE +23 -0
  264. package/sdk/dist/generated/bml.d.ts +101 -106
  265. package/sdk/dist/generated/bml.js +108 -26
  266. package/sdk/dist/generated/counter.d.ts +123 -484
  267. package/sdk/dist/generated/counter.js +103 -25
  268. package/sdk/dist/generated/dvn.d.ts +141 -699
  269. package/sdk/dist/generated/dvn.js +106 -28
  270. package/sdk/dist/generated/dvn_fee_lib.d.ts +31 -248
  271. package/sdk/dist/generated/dvn_fee_lib.js +27 -24
  272. package/sdk/dist/generated/endpoint.d.ts +158 -836
  273. package/sdk/dist/generated/endpoint.js +107 -29
  274. package/sdk/dist/generated/executor.d.ts +139 -671
  275. package/sdk/dist/generated/executor.js +106 -28
  276. package/sdk/dist/generated/executor_fee_lib.d.ts +109 -264
  277. package/sdk/dist/generated/executor_fee_lib.js +106 -28
  278. package/sdk/dist/generated/executor_helper.d.ts +95 -92
  279. package/sdk/dist/generated/executor_helper.js +103 -25
  280. package/sdk/dist/generated/layerzero_view.d.ts +178 -335
  281. package/sdk/dist/generated/layerzero_view.js +172 -33
  282. package/sdk/dist/generated/oft.d.ts +137 -680
  283. package/sdk/dist/generated/oft.js +103 -25
  284. package/sdk/dist/generated/price_feed.d.ts +45 -444
  285. package/sdk/dist/generated/price_feed.js +27 -24
  286. package/sdk/dist/generated/sml.d.ts +119 -428
  287. package/sdk/dist/generated/sml.js +103 -25
  288. package/sdk/dist/generated/treasury.d.ts +109 -288
  289. package/sdk/dist/generated/treasury.js +103 -25
  290. package/sdk/dist/generated/uln302.d.ts +190 -527
  291. package/sdk/dist/generated/uln302.js +170 -31
  292. package/sdk/dist/generated/upgrader.d.ts +14 -34
  293. package/sdk/dist/generated/upgrader.js +24 -21
  294. package/sdk/package.json +3 -4
  295. package/sdk/test/counter-sml.test.ts +218 -142
  296. package/sdk/test/counter-uln.test.ts +189 -145
  297. package/sdk/test/oft-sml.test.ts +173 -156
  298. package/sdk/test/suites/constants.ts +7 -1
  299. package/sdk/test/suites/globalSetup.ts +140 -74
  300. package/sdk/turbo.json +1 -1
  301. package/tools/ts-bindings-gen/Cargo.toml +4 -4
  302. package/tools/ts-bindings-gen/src/main.rs +4 -0
  303. package/turbo.json +3 -0
  304. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +0 -1072
  305. package/contracts/endpoint-v2/src/constants.rs +0 -52
  306. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +0 -12
  307. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +0 -7
  308. package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +0 -20
  309. package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +0 -15
  310. package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +0 -16
  311. package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +0 -26
  312. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +0 -21
  313. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +0 -12
  314. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +0 -7
  315. package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +0 -14
  316. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +0 -14
  317. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +0 -16
  318. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +0 -15
  319. package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +0 -14
  320. package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +0 -19
  321. package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +0 -15
  322. package/contracts/message-libs/simple-message-lib/src/test.rs +0 -280
  323. package/contracts/oapps/oapp/src/macro_tests/mod.rs +0 -1
  324. package/contracts/workers/dvn/src/tests/multisig/mod.rs +0 -3
  325. package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +0 -132
  326. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +0 -109
  327. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +0 -106
  328. /package/contracts/oapps/oapp/src/{macro_tests → tests}/test_macros.rs +0 -0
@@ -6,14 +6,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
7
  /**
8
8
  * Embedded WASM bytecode (base64-encoded)
9
- * Size: 61037 bytes (59.61 KB)
9
+ * Size: 60817 bytes (59.39 KB)
10
10
  */
11
- export declare const WASM_BASE64 = "AGFzbQEAAAABgQIpYAF+AX5gAn5+AX5gA35+fgF+YAR+fn5+AX5gAAF+YAF+AX9gAn9/AX9gBX5+fn5+AGACf38BfmADfn5+AGAEf39/fwBgA39/fwBgBH9/fn4AYAN/f38BfmABfwBgAn9/AGACfn8BfmABfgBgAn5+AX9gAn9+AGAAAGAAAX9gAX8BfmACfn8AYAN/fn4AYAR/fn5+AGAEf39/fwF+YAV/fn9+fgBgA35/fwBgAX8Bf2ACf34Bf2AFfn9/f38AYAZ/fn5+fn8AYAV/fn5+fgBgBn5+fn5+fgF+YAR+fn5+AGACfn4AYAJ+fwF/YAR+fn9/AX5gBH9+fn8AYAN/f38BfwLlASYBdgEzAAABdgExAAEBYgFtAAIBbAE3AAMBbAFfAAIBYgE4AAABYgFlAAEBbAExAAEBYgE0AAQBYQEwAAABYgFfAAABYgFmAAIBeAE3AAQBeAExAAEBbAEyAAEBdgFfAAQBZAFfAAIBYQE2AAABaQFfAAABaQEwAAABYgExAAMBYgEzAAEBdgFnAAEBaQE4AAABaQE3AAABaQE2AAEBYgFqAAEBYgEyAAMBbQE5AAIBbQFhAAMBeAEwAAEBYgEwAAABeAE0AAQBeAEzAAQBeAE4AAQBbAEwAAEBbAE4AAEBeAE1AAADuwG5AQUGBwEICQcKCAsIDAANDg8IDhARCBIOCg8IEwsEFBUWFAQEDhcUDhYOBAsTGAETBBYZDxgaERsOExwTHR4eDhQOBA8EFg8EBA4UFQwLDwQLDBMTHxMOCAALICECAQEBAAEAEgQAAAQABAATCCEEBAUEBAQBABMTFgIWEyEDFQAiDw8RIwQEBAQAJAEUFRgEBAEBExYEDwQEBAQAAQAAEwEiFgglARQmAgEAAhQLEwsPCyAnISEnKCghBAUBcAEBAQUDAQARBiEEfwFBgIDAAAt/AEH0iMAAC38AQaKLwAALfwBBsIvAAAsHoQc1Bm1lbW9yeQIADnNldF9yYXRlX2xpbWl0AIEBEXJhdGVfbGltaXRfY29uZmlnAIIBFHJhdGVfbGltaXRfaW5fZmxpZ2h0AIMBE3JhdGVfbGltaXRfY2FwYWNpdHkAhAETc2V0X2RlZmF1bHRfZmVlX2JwcwCFAQtzZXRfZmVlX2JwcwCGARdzZXRfZmVlX2RlcG9zaXRfYWRkcmVzcwCHAQ9kZWZhdWx0X2ZlZV9icHMAiQEHZmVlX2JwcwCKARFlZmZlY3RpdmVfZmVlX2JwcwCLARNmZWVfZGVwb3NpdF9hZGRyZXNzAIwBCnNldF9wYXVzZWQAjQEJaXNfcGF1c2VkAI4BCXF1b3RlX29mdACPAQV0b2tlbgCTAQ9zaGFyZWRfZGVjaW1hbHMAlAEXZGVjaW1hbF9jb252ZXJzaW9uX3JhdGUAlgERYXBwcm92YWxfcmVxdWlyZWQAlwENbXNnX2luc3BlY3RvcgCYARFzZXRfbXNnX2luc3BlY3RvcgCaAQpxdW90ZV9zZW5kAJ4BBHNlbmQAogENX19jb25zdHJ1Y3RvcgClAQhvZnRfdHlwZQCqAQphdXRob3JpemVyAKsBBW93bmVyAKwBDXBlbmRpbmdfb3duZXIArQESdHJhbnNmZXJfb3duZXJzaGlwAK4BGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyALABEGFjY2VwdF9vd25lcnNoaXAAtAEScmVub3VuY2Vfb3duZXJzaGlwALUBE2V4dGVuZF9pbnN0YW5jZV90dGwAtgEPc2V0X3R0bF9jb25maWdzALcBC3R0bF9jb25maWdzALoBEmZyZWV6ZV90dGxfY29uZmlncwC8ARVpc190dGxfY29uZmlnc19mcm96ZW4AvQEMb2FwcF92ZXJzaW9uAL4BCGVuZHBvaW50AL8BBHBlZXIAwAEIc2V0X3BlZXIAwQEMc2V0X2RlbGVnYXRlAMIBFWFsbG93X2luaXRpYWxpemVfcGF0aADDAQpuZXh0X25vbmNlAMUBCmx6X3JlY2VpdmUAxgEVaXNfY29tcG9zZV9tc2dfc2VuZGVyAM0BEGVuZm9yY2VkX29wdGlvbnMAzgEUc2V0X2VuZm9yY2VkX29wdGlvbnMAzwEPY29tYmluZV9vcHRpb25zANABAV8DAQtvZnRfdmVyc2lvbgC+AQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwq46wG5Aa4BAwF/AX4Cf0ECIQECQCAAQv8Bg0LLAFINACAAEICAgIAAIgJCgICAgBBUDQACQCAAQgQQgYCAgAAiAKdB/wFxIgNBygBGDQAgA0EORw0BCyACQiCIpyEDAkACQAJAIABByIHAgACtQiCGQgSEQoSAgIAgEIKAgIAAQiCIpw4CAAEDC0EBIAMQp4CAgAANAkEAIQQMAQtBASEEQQEgAxCngICAAA0BCyAEIQELIAELGQACQCABIABJDQAgASAAaw8LEOWAgIAAAAuxAQECfyOAgICAAEEwayIFJICAgIAAIAUgAyAEEKmAgIAANwMQIAUgAjcDCCAFIAE3AwBBACEGA0ACQCAGQRhHDQBBACEGAkADQCAGQRhGDQEgBUEYaiAGaiAFIAZqKQMANwMAIAZBCGohBgwACwsgAEKO7uqVvrbe8wAgBUEYakEDEKqAgIAAEKuAgIAAIAVBMGokgICAgAAPCyAFQRhqIAZqQgI3AwAgBkEIaiEGDAALC0MBAX8jgICAgABBEGsiAiSAgICAACACIAAgARDZgICAAAJAIAIoAgBBAUcNAAALIAIpAwghASACQRBqJICAgIAAIAELGgAgAK1CIIZCBIQgAa1CIIZCBIQQloCAgAALIQACQCAAIAEgAhCQgICAAEL/AYNCAlENABDlgICAAAALC7EBAQJ/I4CAgIAAQTBrIgUkgICAgAAgBSADIAQQqYCAgAA3AxAgBSACNwMIIAUgATcDAEEAIQYDQAJAIAZBGEcNAEEAIQYCQANAIAZBGEYNASAFQRhqIAZqIAUgBmopAwA3AwAgBkEIaiEGDAALCyAAQo7u6pW+tt7zACAFQRhqQQMQqoCAgAAQq4CAgAAgBUEwaiSAgICAAA8LIAVBGGogBmpCAjcDACAGQQhqIQYMAAsLJwAgACABEK6AgIAAQgEgAq1CIIZCBIQgA61CIIZCBIQQg4CAgAAaC/oBAgF/An4jgICAgABBMGsiAiSAgICAACACQSBqQcCCwIAAQQkQ0ICAgAACQAJAIAIoAiANACACKQMoIQMCQAJAIAFBAXFFDQAgAkEgakG/gcCAAEEIENCAgIAAIAIoAiANAiACQSBqIAIpAygQ0YCAgAAMAQsgAkEgakG4gcCAAEEHENCAgIAAIAIoAiANASACQSBqIAIpAygQ0YCAgAALIAIpAyghBCACKQMgpw0AIAIgBDcDECACIAM3AwggAiAArUIghkIEhDcDGCACQSBqIAJBCGoQ2ICAgAAgAigCIEUNAQsACyACKQMoIQMgAkEwaiSAgICAACADCycAQQEgABCwgICAAEIBIAGtQiCGQgSEIAKtQiCGQgSEEIOAgIAAGgvHAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQAJAAkAgAA4DAAECAAsgAkGAgMCAAEENENCAgIAAIAIoAgANAyACIAIpAwgQ0YCAgAAMAgsgAkGNgMCAAEEGENCAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ0oCAgAAMAQsgAkGTgMCAAEERENCAgIAAIAIoAgANASACIAIpAwgQ0YCAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsdACAAIAEQsICAgAAgAhCygICAACADEISAgIAAGgtBAQF/I4CAgIAAQRBrIgEkgICAgAAgASAAENSAgIAAAkAgASgCAEEBRw0AAAsgASkDCCEAIAFBEGokgICAgAAgAAvPAQIBfwN+I4CAgIAAQRBrIgMkgICAgAAgA0EEahC0gICAAAJAIAMoAgRBAUcNACADKAIIIAMoAgwQtYCAgAALIAAgARC2gICAACIEEIWAgIAAIQUgAikDACEGAkACQCAFQoCAgIAQVA0AAkAgBhCFgICAAEKAgICAEFoNACAEIQYMAQsgBhCFgICAAEL/////H1gNASACELeAgIAAIAQgBkECELiAgIAAEIaAgIAAIQYLIANBEGokgICAgAAgBg8LQoOAgICA+gEQuYCAgAAACwwAIABBARDVgYCAAAsbACAArUIghkIEhCABrUIghkIEhBCkgICAABoLvQEEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAACACQQRqELSAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC1gICAAAsCQAJAIAAgARC6gICAACIDQgEQu4CAgAAiBEUNACADQgEQh4CAgAAiBUL/AYNCyABSDQEgAkEEahC8gICAACACKAIEQQFHDQAgACABIAIoAgggAigCDBC9gICAAAsQiICAgAAhAyACQRBqJICAgIAAIAUgAyAEGw8LAAu9AQIBfwF+I4CAgIAAQRBrIgEkgICAgAAgAUEANgIIIAEgADYCBAJAAkACQCABQQRqQQIQyIGAgAAiAhCFgICAAEKAgICAcINCgICAgCBSDQAgAUEAOwEOIAIQhYCAgABCgICAgHCDQoCAgIAgUg0BIAIgAUEOakECEN+AgIAAIAEvAQ5BgAZHDQIgAUEQaiSAgICAAA8LQoOAgICAggEQuYCAgAAACxDLgYCAAAALQoOAgICA+gEQuYCAgAAACyUAIAAgAa1CIIZCBIQgABCFgICAAEKAgICAcINCBIQQi4CAgAALCwAgABClgICAABoLigECAX8BfiOAgICAAEEwayICJICAgIAAIAJBIGpBnIXAgABBDxDQgICAAAJAAkAgAigCIA0AIAIgAikDKDcDCCACIAGtQiCGQgSENwMYIAIgAK1CIIZCBIQ3AxAgAkEgaiACQQhqENiAgIAAIAIoAiBFDQELAAsgAikDKCEDIAJBMGokgICAgAAgAwsPACAAIAEQo4CAgABCAVELDAAgAEECENWBgIAACycAIAAgARC6gICAAEIBIAKtQiCGQgSEIAOtQiCGQgSEEIOAgIAAGgvGAQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAhC0gICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtYCAgAALAkACQAJAQQEgARC/gICAACIDQgEQu4CAgABFDQAgAiADQgEQh4CAgAAQwICAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwghAyAAQgE3AwAgACADNwMIIAIQvICAgAAgAigCAEEBRw0AIAEgAigCBCACKAIIEMGAgIAACyACQRBqJICAgIAAC5sBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIABBAXFFDQAgAkHYhMCAAEEEENCAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ0oCAgAAMAQsgAkHQhMCAAEEIENCAgIAAIAIoAgANASACIAIpAwgQ0YCAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsjAAJAIAFC/wGDQsgAUQ0AIABCATcDAA8LIAAgARDggICAAAsnAEEBIAAQv4CAgABCASABrUIghkIEhCACrUIghkIEhBCDgICAABoLhwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAACwJAAkBBACAAEL+AgIAAIgFCAhC7gICAAEUNACABQgIQh4CAgAAiAUL/AYNCzQBRDQEACxDDgICAAAALIABBEGokgICAgAAgAQsJABDlgICAAAALiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAAC0EAIQECQEEAEMWAgIAAIgJCAhC7gICAAEUNAEEBIQECQAJAIAJCAhCHgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQYqLwIAAQQYQ0ICAgAAgASgCAA0DIAEgASkDCBDRgICAAAwCCyABQZCLwIAAQQgQ0ICAgAAgASgCAA0CIAEgASkDCBDRgICAAAwBCyABQZiLwIAAQQoQ0ICAgAAgASgCAA0BIAEgASkDCBDRgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AEMeAgIAAEImAgIAAGgtmAgF/AX4jgICAgABBEGsiACSAgICAACAAELSAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC1gICAAAsgABDJgICAACAAKQMIIQEgACkDAEGKCBDKgICAACAAQRBqJICAgIAAIAELSgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDJgICAACAAKQMIIQEgACkDAEGKCBDKgICAACABEImAgIAAGiAAQRBqJICAgIAAIAELUAEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELWAgIAACyAAEM6AgIAAIAFBEGokgICAgAALKQACQCAAp0EBcUUNAA8LIAFB+ndqrUIghkKDgICA4IABfBC5gICAAAALQgEBfyOAgICAAEEQayIAJICAgIAAIAAQzICAgAACQCAAKQMAUA0AQoOAgICwgQEQuYCAgAAACyAAQRBqJICAgIAAC5MBAgF/An4jgICAgABBEGsiASSAgICAACABQQRqELSAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC1gICAAAtCACECAkACQEEBEM2AgIAAIgNCABC7gICAAEUNACADQgAQh4CAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMAIAFBEGokgICAgAAPCwALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQZ2KwIAAQQwQ0ICAgAAgASgCAA0CIAEgASkDCBDRgICAAAwBCyABQZiKwIAAQQUQ0ICAgAAgASgCAA0BIAEgASkDCBDRgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC00BAn5CACEBAkACQEEAEM2AgIAAIgJCAhC7gICAAEUNACACQgIQh4CAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsAC2ACAX8BfiOAgICAAEEQayIAJICAgIAAIABB/4LAgABBBxDQgICAAAJAAkAgACgCAA0AIAAgACkDCBDRgICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhDSgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQqoCAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEKqAgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC1YBAX8jgICAgABBEGsiAiSAgICAAAJAAkACQCAAp0EBcQ0AQgIhAAwBCyACIAEQ1ICAgAAgAigCAEEBcQ0BIAIpAwghAAsgAkEQaiSAgICAACAADwsACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCSgICAACEBCyAAQgA3AwAgACABNwMIC2ACAX8BfiOAgICAAEEQayIAJICAgIAAIABBmIHAgABBBhDQgICAAAJAAkAgACgCAA0AIAAgACkDCBDRgICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQtnAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQCAAKAIAQQFxDQBCAiECDAELIAEgACkDECAAKQMYIAApAyAQ14CAgAAgASgCAEEBcQ0BIAEpAwghAgsgAUEQaiSAgICAACACDwsAC4UBAQF/I4CAgIAAQRBrIgQkgICAgAAgBCABIAIQ2YCAgABCASECAkAgBCgCAA0AIAQpAwghASAEIAMQ1ICAgAAgBCgCAA0AIAQgBCkDCDcDCCAEIAE3AwAgAEHsgcCAAEECIARBAhDagICAADcDCEIAIQILIAAgAjcDACAEQRBqJICAgIAAC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCqgICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtbAAJAAkAgAUKAgICAgICAwAB8Qv//////////AFYNACABIAGFIAIgAUI/h4WEQgBSDQAgAUIIhkILhCEBDAELIAIgARCZgICAACEBCyAAQgA3AwAgACABNwMICy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQnICAgAALHgACQCAAp0EBcUUNAA8LQoOAgICQ+gEQuYCAgAAAC6cHAwF/BX4DfyOAgICAAEHwAGsiBSSAgICAACACKQMwIgYQhYCAgAAhByAFQRBqEN2AgIAAAkACQAJAIAUpAxAiCCAFKQMYIgmEUA0AIAIpAyAhCgJAIAMgBEKAgICAgICAgIB/hYRCAFINACAIIAmDQn9RDQELIAUgAyAEIAggCRDagYCAAAJAIAUpAwhCAVkNACAFKQMAIQQCQAJAAkAgB0L/////D1YNACAFIAQ3AzggBSAKNwMwQgAhBiAFQgA3AxAgBUEgaiELQQEhDAwBCyAFQRBqIAEQioCAgABBBBC4gICAACIDQgRChICAgMAAEIuAgIAAEN6AgIAAIAUoAhBBAUYNBSAFKQMYIQggBUEANgJYIAggBUHYAGpBBBDfgICAACAFKAJYIgtB////B3ENAQJAAkACQCALQRh2DgIAAQQLIAVB2ABqIANChICAgMAAQoSAgICAARCLgICAABDegICAACAFKAJYQQFGDQcgBSkDYCEIIAVBADYCWCAIIAVB2ABqQQQQ34CAgAAgBSgCWA0DIAVB2ABqIANChICAgIABQoSAgICABRCLgICAABDggICAACAFKAJYQQFHDQEMBwsgBUHYAGogA0KEgICAwABChICAgMAEEIuAgIAAEOCAgIAAIAUoAlhBAUYNBgsgBSkDYCEDIAVBKGohCyAFIAQ3AzggBSAKNwMwIAVCATcDICAFIAM3AxggBUIBNwMQQQIhDAsgCyAGNwMAIAVBEGoQ4YCAgAAhCyAFEIiAgIAANwNYIAVB2ABqIAoQ4oCAgAAgBBDjgICAACENAkACQCALDQAgDSkDACEEDAELIAdC/////w9YDQEgDSADEOKAgIAAIQsgBSgCIEUNASALKQMAIAUpAygQhoCAgAAhBAsgAigCQCAMIAJBKGoQs4CAgAAhAyAFQcgAahDkgICAACAFKAJIQQFHDQMgBSkDUCEKEIyAgIAAIQggBSADNwNoIAUgBDcDYCAFIAg3A1hBACECA0ACQCACQRhHDQBBACECAkADQCACQRhGDQEgBUEQaiACaiAFQdgAaiACaikDADcDACACQQhqIQIMAAsLIApCjvKotY2fuwEgBUEQakEDEKqAgIAAEKuAgIAADAULIAVBEGogAmpCAjcDACACQQhqIQIMAAsLEMOAgIAAAAtCg4CAgLD3AhC5gICAAAALEOWAgIAAAAsgACADNwMIIAAgBDcDACAFQfAAaiSAgICAAA8LAAuQAgICfwR+I4CAgIAAQcAAayIBJICAgIAAIAFBOGoQ5oCAgAACQAJAIAEoAjhBAXFFDQACQCABKAI8IgINAEIAIQNCASEEDAILQgAhA0IKIQVCASEEQgAhBgJAA0ACQCACQQFxRQ0AIAFBADYCNCABQSBqIAQgAyAFIAYgAUE0ahDXgYCAACABKAI0DQIgASkDKCEDIAEpAyAhBCACQQFGDQQLIAFBADYCHCABIAUgBiAFIAYgAUEcahDXgYCAACABKAIcDQEgASkDCCEGIAEpAwAhBSACQQF2IQIMAAsLEOWAgIAAAAtCg4CAgKD3AhC5gICAAAALIAAgBDcDACAAIAM3AwggAUHAAGokgICAgAALNgEBfkIBIQICQCABEIWAgIAAQoCAgIBwg0KAgICAwABSDQAgACABNwMIQgAhAgsgACACNwMACx8AIABCBCABrUIghkIEhCACrUIghkIEhBCUgICAABoLNgEBfkIBIQICQCABEIWAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMACzMBAX9BACEBAkAgACkDAFANACAAKAIQQQFHDQAgACkDGBCFgICAAEL/////D1YhAQsgAQvCAQEEfyOAgICAAEHAAGsiAiSAgICAACACQSBqQRhqIgNCADcDACACQSBqQRBqIgRCADcDACACQSBqQQhqIgVCADcDACACQgA3AyAgASACQSBqQSAQ34CAgAAgAkEYaiADKQMANwMAIAJBEGogBCkDADcDACACQQhqIAUpAwA3AwAgAiACKQMgNwMAIAApAwAhASAAIAEgARCFgICAAEKAgICAcINCBIQgAkEgEMyBgIAANwMAIAJBwABqJICAgIAAIAALpwEBAX8jgICAgABBEGsiAiSAgICAACACIAFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwggACkDACEBIAAgASABEIWAgIAAQoCAgIBwg0IEhCACQQhqQQgQzIGAgAA3AwAgAkEQaiSAgICAACAACwwAIABBAhDogICAAAsJABDRgYCAAAALWAMBfwF+AX9BACEBAkACQEEAEJ2BgIAAIgJCAhC7gICAAEUNACACQgIQh4CAgAAiAkL/AYNCBFINASACQiCIpyEDQQEhAQsgACADNgIEIAAgATYCAA8LAAtOAgF/AX4jgICAgABBEGsiACSAgICAACAAQQEQ6ICAgAACQCAAKAIADQBCg4CAgKD3AhC5gICAAAALIAApAwghASAAQRBqJICAgIAAIAELTQECfkIAIQICQAJAIAEQnYGAgAAiA0ICELuAgIAARQ0AIANCAhCHgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC0gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtYCAgAALEOeAgIAAIQEgAEEQaiSAgICAACABC5MBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAELCAgIAAQgEQu4CAgABFDQAgARC8gICAAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBCvgICAAAsgASAAEOuAgIAAAkAgASgCAEUNACABKQMIIQIMAgsQw4CAgAAACxDsgICAACECCyABQRBqJICAgIAAIAILnwECAX8BfiOAgICAAEEQayICJICAgIAAAkACQAJAQQEgARCwgICAACIDQgEQu4CAgABFDQAgAiADQgEQh4CAgAAQ94CAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwgh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ACACIAAgARDSgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKqAgIAAIQAgAUEQaiSAgICAACAAC/EBAgF/BH4jgICAgABB4ABrIgMkgICAgAAgAxC0gICAAAJAIAMoAgBBAUcNACADKAIEIAMoAggQtYCAgAALIAMgASACEPKAgIAAAkACQAJAIAMoAgBBAXENAEL///////////8AIQRCfyEFDAELIAMpAxAhBiADKQMYIQQgA0HQAGogA0EQahDzgICAACAEIAMpA1giBYUgBCAEIAV9IAYgAykDUCIHVK19IgWFg0J/Vw0BIAVCACAFQgBVGyEEQgAgBiAHfSAFQgBTGyEFCyAAIAU3AwAgACAENwMIIANB4ABqJICAgIAADwsQ5YCAgAAAC6IDAgF/BX4jgICAgABBwABrIgYkgICAgAAQ74CAgAAgBkEwahDdgICAACAGKQM4IQcgBikDMCEIAkACQAJAAkACQCAFEOqAgIAAIglQDQBBAiAGELCAgIAAQgIQu4CAgABFDQIgBkEANgIsIAZBEGogASACIAlCACAGQSxqENeBgIAAIAYoAiwNAyAGKQMQIglCj84AfCIKQp6cAVYgBikDGCILIAogCVStfCIKQgBSIApQGw0BCyAGQTBqIAEgAiAIIAcQgIGAgAAgBikDMCIIIQEgBikDOCIHIQIMAwsgBiAJIAtCkM4AQgAQ2oGAgAAgAiAGKQMIIgmFIAIgAiAJfSABIAYpAwAiCVStfSIKhYNCAFMNASAGQTBqIAEgCX0gCiAIIAcQgIGAgAAgBikDOCEHIAYpAzAhCAwCC0KDgICA0IMDELmAgIAAAAsQ5YCAgAAACwJAIAggA1QgByAEUyAHIARRG0UNAEKDgICAwPcCELmAgIAAAAsgACAINwMQIAAgATcDACAAIAc3AxggACACNwMIIAZBwABqJICAgIAAC60BAQF/I4CAgIAAQTBrIgUkgICAgAACQAJAIAMgBIRQDQACQCABIAJCgICAgICAgICAf4WEQgBSDQAgAyAEg0J/UQ0BCyAFQSBqIAEgAiADIAQQ2oGAgAAgBUEANgIcIAUgBSkDICAFKQMoIAMgBCAFQRxqENeBgIAAIAUoAhxFDQELEOWAgIAAAAsgBSkDCCEEIAAgBSkDADcDACAAIAQ3AwggBUEwaiSAgICAAAveBAMCfwJ+A38jgICAgABB0AFrIgMkgICAgAACQAJAAkACQAJAIAAQpoCAgABB/wFxIgRBAkYNACABQv8Bg0IEUg0AAkACQCACQgJSDQBCACEFDAELIAMgAhD4gICAACADKAIAQQFxDQEgAykDGCECIAMpAxAhBiADKQMgIQBCASEFCyABQiCIpyEHEMaAgIAAIAMQtICAgAACQCADKAIAQQFHDQAgAygCBCADKAIIELWAgIAACyADIAQgBxDygICAACAFpyEIAkACQCADKAIAIglBAXFFDQAgCEEBcUUNACADKQMQIAaFIAMpAxggAoWEQgBSDQEgAykDICAAUg0BDAYLIAkgCHJBAXFFDQULIAhBAXFFDQEgAkIAUw0CIABCAFENAgJAAkAgCUEBcUUNACADQdAAaiADQRBqIghBwAAQ3YGAgAAaIANB8ABqIAgQ84CAgAAQ9ICAgAAhAQwBCxD0gICAACEBIANCADcDeCADQgA3A3ALIAMgBjcDUCADIAA3A2AgAyABNwOAASADIAI3A1ggBCAHIANB0ABqEPWAgIAAIAMgAjcDqAEgAyAGNwOgASADQgA3A5gBIAMgBTcDkAEgAyAHNgLAASADIAQ6AMQBIAMgADcDsAEgA0GQAWoQ+4CAgAAMAwsACyAHIAQQroCAgABCARCOgICAABogA0IANwOYASADQgA3A5ABIAMgBzYCwAEgAyAEOgDEASADQZABahD7gICAAAwBC0KDgICAsIYDELmAgIAAAAsgA0HQAWokgICAgABCAg8LQoOAgIDAhgMQuYCAgAAAC9YBAQN/I4CAgIAAQYABayICJICAgIAAAkAgABCmgICAAEH/AXEiA0ECRg0AIAFC/wGDQgRSDQAgAUIgiKchBCACQTBqELSAgIAAAkAgAigCMEEBRw0AIAIoAjQgAigCOBC1gICAAAsgAkEwaiADIAQQ8oCAgAACQAJAIAIoAjBBAXENAEIAIQEMAQsgAiACKQNINwMYIAIgAikDQDcDECACIAIpA1A3AyBCASEBCyACIAE3AwAgAkIANwMIIAIQ1oCAgAAhASACQYABaiSAgICAACABDwsAC8QBAQN/I4CAgIAAQfAAayICJICAgIAAAkAgABCmgICAAEH/AXEiA0ECRg0AIAFC/wGDQgRSDQAgAUIgiKchBCACELSAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC1gICAAAsgAiADIAQQ8oCAgABCACEBQgAhAAJAIAIoAgBBAXFFDQAgAkHQAGpBEGogAkEQahDzgICAACACKQNoIQAgAikDYCEBCyABIAAQqYCAgAAhASACQfAAaiSAgICAACABDwsAC2cBAn8jgICAgABBEGsiAiSAgICAAAJAIAAQpoCAgABB/wFxIgNBAkYNACABQv8Bg0IEUg0AIAIgAyABQiCIpxD+gICAACACKQMAIAIpAwgQqYCAgAAhASACQRBqJICAgIAAIAEPCwAL8wECAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABD3gICAAAJAAkACQCABKAIAQQFGDQAgASkDCCEAEMaAgIAAIAEQtICAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELWAgIAACyAAQpHOAFoNARDsgICAACAAUQ0CQQAgASAAQgIQsYCAgABBpIDAgABBExD8gICAABD9gICAACECIAEgABCygICAADcDACACQcCAwIAAQQEgAUEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDAgwMQuYCAgAAAC0KDgICA4IMDELmAgIAAAAu1AwQBfwF+A38BfiOAgICAAEEgayICJICAgIAAAkACQAJAAkACQCAAQv8Bg0IEUg0AAkACQCABQgJSDQBCACEDDAELIAJBEGogARD3gICAACACKAIQQQFGDQEgAikDGCEBQgEhAwsgAEIgiKchBBDGgICAACACQRBqELSAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC1gICAAAsgAiAEEOuAgIAAIAOnIQUCQAJAIAIoAgAiBkEBRw0AIAVFDQAgAikDCCABUg0BDAYLIAYgBXJBAXFFDQULIAVFDQEgAUKRzgBaDQJBASAEIAFCARCxgICAACACQRBqELyAgIAAIAIoAhBBAUcNAyAEIAIoAhQgAigCGBCvgICAAAwDCwALQQEgBBCwgICAAEIBEI6AgIAAGgwBC0KDgICAwIMDELmAgIAAAAtByIDAgABBCxD8gICAABD9gICAACEHIAIgAyABENOAgIAANwMYIAIgAEKEgICAcIM3AxAgB0HUgMCAAEECIAJBEGpBAhDagICAABCNgICAABogAkEgaiSAgICAAEICDwtCg4CAgOCDAxC5gICAAAAL4wECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQCAAQv8Bg0LNAFINABDGgICAACABELSAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC1gICAAAsgARDugICAAAJAIAEoAgBBAUcNACABKQMIIAAQiIGAgAANAgtBAiABELCAgIAAIABCAhCEgICAABpB5IDAgABBFxD8gICAABD9gICAACECIAEgADcDACACQZCBwIAAQQEgAUEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDggwMQuYCAgAAACw0AIAAgARCegICAAFALWgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC0gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtYCAgAALEOyAgIAAELKAgIAAIQEgAEEQaiSAgICAACABC3cBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgARC0gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtYCAgAALIAEgAEIgiKcQ64CAgAAgASkDACABKQMIENOAgIAAIQAgAUEQaiSAgICAACAADwsAC24BAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgAUEEahC0gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtYCAgAALIABCIIinEOqAgIAAELKAgIAAIQAgAUEQaiSAgICAACAADwsAC1QCAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAACxDtgICAACEBIABBEGokgICAgAAgAQvfAQICfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AEMaAgIAAIAEQtICAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELWAgIAACxDwgICAACACc0EBcUUNARDVgICAACACrSIAQgIQhICAgAAaQZ6BwIAAQQoQ/ICAgAAQ/YCAgAAhAyABIAA3AwAgA0GwgcCAAEEBIAFBARDagICAABCNgICAABogAUEQaiSAgICAAEICDwsAC0KDgICA8IQDELmAgIAAAAtTAQJ/I4CAgIAAQRBrIgAkgICAgAAgAEEEahC0gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtYCAgAALEPCAgIAAIQEgAEEQaiSAgICAACABrQulBQcBfwN+AX8CfgF/AX4CfyOAgICAAEGgAWsiASSAgICAACABIAAQkIGAgAACQAJAAkACQCABKAIAQQFxDQAgASkDKCECIAEpAyAhAyABKQMYIQAgASkDECEEIAEoAlAhBSABELSAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC1gICAAAsgAEJ/Vw0BEI+AgIAAGiABIAQgACADIAIgBRD/gICAACABKQMIIgIgASkDGCIDhSACIAIgA30gASkDACIEIAEpAxAiBlStfSIAhYNCAFMNAgJAAkAgBCAGfSIHQgBSIABCAFUgAFAbDQAQj4CAgAAhAAwBCyABQSBqIQhB+ILAgABBBxCRgYCAACEJIAEgADcDCCABIAc3AwAgASAJNwMQIAFCAjcDgAEgASEKQQEhCwJAA0AgC0EBcUUNASAKQRBqKQMAIQAgAUHoAGogCikDACAKKQMIENmAgIAAIAEoAmhBAUYNAyABIAEpA3A3A5gBIAEgADcDkAEgAUHkiMCAAEECIAFBkAFqQQIQ2oCAgAA3A4ABQQAhCyAIIQoMAAsLIAFBgAFqQQEQqoCAgAAhAAsgAUEQakEBIAUQ/oCAgAAgAUGQAWogASkDECABKQMYENmAgIAAIAEoApABDQAgASkDmAEhByABQZABakIAQgAQ2YCAgAAgASgCkAFBAUYNACABIAEpA5gBNwOIASABIAc3A4ABQayIwIAAQQIgAUGAAWpBAhDagICAACEHIAFBkAFqIAQgAiAGIAMQkoGAgAAgASgCkAFBAUcNAwsAC0KDgICAgPcCELmAgIAAAAsQ5YCAgAAACyABIAEpA5gBNwN4IAEgADcDcCABIAc3A2ggAUHoAGpBAxCqgICAACEAIAFBoAFqJICAgIAAIAALhgMCAn8JfiOAgICAAEHgAGsiAiSAgICAAEEAIQMCQANAIANBOEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUHkh8CAAEEHIAJBCGpBBxD5gICAACACQcAAaiACKQMIEPqAgIAAIAIoAkBBAUYNACACKQMQIgFC/wGDQsgAUg0AIAIpAxgiBkL/AYNCBFINACACKQMgIgdC/wGDQsgAUg0AIAIpA1ghCCACKQNQIQkgAkHAAGogAikDKBD6gICAACACKAJAQQFGDQAgAikDMCIKQv8Bg0LIAFINACACKQNYIQsgAikDUCEMIAJBwABqIAIpAzgQwICAgAAgAigCQA0AIAIpA0ghBCAAIAw3AyAgACAJNwMQIAAgBkIgiKc2AlAgACAKNwNIIAAgATcDQCAAIAc3AzggACAENwMwIAAgCzcDKCAAIAg3AxhCACEFQgAhBAsgACAFNwMAIAAgBDcDCCACQeAAaiSAgICAAAsaACAArUIghkIEhCABrUIghkIEhBCVgICAAAuHAQEBfyOAgICAAEEQayIFJICAgIAAIAUgAyAEENmAgIAAQgEhBAJAIAUoAgANACAFKQMIIQMgBSABIAIQ2YCAgAAgBSgCAA0AIAUgBSkDCDcDCCAFIAM3AwAgAEG8iMCAAEECIAVBAhDagICAADcDCEIAIQQLIAAgBDcDACAFQRBqJICAgIAACwgAEOmAgIAAC6EBAQN/I4CAgIAAQSBrIgAkgICAgAAgAEEUahC0gICAAAJAIAAoAhRBAUcNACAAKAIYIAAoAhwQtYCAgAALEOeAgIAAEJWBgIAAIQEgAEEIahDmgICAAAJAAkAgACgCCEEBcUUNACABIAAoAgwiAkkNASAAQSBqJICAgIAAIAEgAmutQiCGQgSEDwtCg4CAgKD3AhC5gICAAAALEOWAgIAAAAs1AAJAIABCjvCx0+zFqtMAEI+AgIAAEJCAgIAAIgBC/wGDQgRRDQAQ5YCAgAAACyAAQiCIpwtjAgF/AX4jgICAgABBEGsiACSAgICAACAAELSAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC1gICAAAsgABDdgICAACAAKQMAIAApAwgQqYCAgAAhASAAQRBqJICAgIAAIAELSgEBfyOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAACyAAQRBqJICAgIAAQgALYwIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABC0gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtYCAgAALIAAQ5ICAgAAgACkDACAAKQMIEJmBgIAAIQEgAEEQaiSAgICAACABCw0AIAFCAiAAp0EBcRsL3QECAX8CfiOAgICAAEEQayIBJICAgIAAIAEgABCbgYCAAAJAIAEpAwAiAEICUQ0AIAEpAwghAhDGgICAACABELSAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC1gICAAAsCQAJAIACnQQFxRQ0AQQIgAhCcgYCAAAwBC0ECEJ2BgIAAQgIQjoCAgAAaC0HshsCAAEEREPyAgIAAEP2AgIAAIQMgASAAIAIQmYGAgAA3AwAgA0GIh8CAAEEBIAFBARDagICAABCNgICAABogAUEQaiSAgICAAEICDwsACzkAAkAgAUICUQ0AAkAgAUL/AYNCzQBRDQAgAEICNwMADwsgACABNwMIIABCATcDAA8LIABCADcDAAsVACAAEJ2BgIAAIAFCAhCEgICAABoLwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQZCHwIAAQQwQ0ICAgAAgASgCAA0DIAEgASkDCBDRgICAAAwCCyABQZyHwIAAQQUQ0ICAgAAgASgCAA0CIAEgASkDCBDRgICAAAwBCyABQaGHwIAAQQwQ0ICAgAAgASgCAA0BIAEgASkDCBDRgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC9IEAgN/An4jgICAgABB4AFrIgMkgICAgAACQCAAQv8Bg0LNAFINACADQdAAaiABEJCBgIAAIAMoAlBBAXENACADIANB4ABqQdAAEN2BgIAAIQRBASACp0H/AXEiA0EAR0EBdCADQQFGGyIFQQJGDQAgBEHQAGoQtICAgAACQCAEKAJQQQFHDQAgBCgCVCAEKAJYELWAgIAACwJAIAQpAwgiAUJ/Vw0AIARB0ABqIAQpAwAgASAEKQMQIAQpAxggBCgCQCIDEP+AgIAAIARB0ABqIAAgBCAEKQNgIAQpA2gQ3ICAgAAgBCkDUCEAIAQpA1ghASAEQdAAaiADEL6AgIAAIAQpA1ghAiAEKQNQENuAgIAAEMKAgIAAIQYQjICAgAAhByAEIAU6AMwBIAQgATcDwAEgBCAANwO4ASAEIAI3A7ABIAQgAzYCyAEgBCAEQbABahCfgYCAADcD2AEgBCAHNwPQAUEAIQMCQAJAA0ACQCADQRBHDQBBACEDAkADQCADQRBGDQEgBEHQAGogA2ogBEHQAWogA2opAwA3AwAgA0EIaiEDDAALCyAEQdAAaiAGQo7UudruBiAEQdAAakECEKqAgIAAEJCAgIAAEKCBgIAAIAQoAlBBAXENAiAEQdAAaiAEKQNgIAQpA2ggBCkDcCAEKQN4EKGBgIAAIAQoAlBBAUcNAwwFCyAEQdAAaiADakICNwMAIANBCGohAwwACwsQ5YCAgAAACyAEKQNYIQAgBEHgAWokgICAgAAgAA8LQoOAgICA9wIQuYCAgAAACwALcwIBfwF+I4CAgIAAQTBrIgEkgICAgAAgASAAKQMANwMoIAEgADEAHDcDICABIAApAxA3AxggASAAKQMINwMQIAEgADUCGEIghkIEhDcDCEGgg8CAAEEFIAFBCGpBBRDagICAACECIAFBMGokgICAgAAgAgvvAQICfwN+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCACEEQgEhBQJAIAFC/wGDQswAUg0AIAFBgITAgABBAiACQQIQ+YCAgAAgAkEQaiACKQMAEPqAgIAAIAIoAhBBAUYNACACKQMoIQEgAikDICEGIAJBEGogAikDCBD6gICAACACKAIQQQFGDQAgAikDICEEIAAgAikDKDcDKCAAIAQ3AyAgACABNwMYIAAgBjcDEEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJBMGokgICAgAALhwEBAX8jgICAgABBEGsiBSSAgICAACAFIAEgAhDZgICAAEIBIQICQCAFKAIADQAgBSkDCCEBIAUgAyAEENmAgIAAIAUoAgANACAFIAUpAwg3AwggBSABNwMAIABBgITAgABBAiAFQQIQ2oCAgAA3AwhCACECCyAAIAI3AwAgBUEQaiSAgICAAAuNDAQBfwZ+An8EfiOAgICAAEHwAWsiBCSAgICAAAJAIABC/wGDQs0AUg0AIARB0ABqIAEQkIGAgAAgBCgCUEEBcQ0AIAQgBEHgAGpB0AAQ3YGAgAAiBEHQAGogAhCggYCAACAEKAJQQQFxDQAgA0L/AYNCzQBSDQAgBCkDeCEFIAQpA3AhBiAEKQNoIQcgBCkDYCEIIARB0ABqELSAgIAAAkAgBCgCUEEBRw0AIAQoAlQgBCgCWBC1gICAAAsgABCJgICAABoCQAJAAkAgBCkDCCIBQn9XDQAgBCkDACECIAQpAxghCSAEKQMQIQogBCgCQCELEKOBgIAAIQwgBEHQAGogAiABIAogCSALEP+AgIAAEOmAgIAAIQkgDEUNASAEIAQpA2AiAiAEKQNoIgEQqYCAgAA3A+ABIAQgADcD2AFBACEMA0ACQCAMQRBHDQBBACEMAkADQCAMQRBGDQEgBEG4AWogDGogBEHYAWogDGopAwA3AwAgDEEIaiEMDAALCyAJQo7mt/0JIARBuAFqQQIQqoCAgAAQq4CAgAAMBAsgBEG4AWogDGpCAjcDACAMQQhqIQwMAAsLQoOAgICA9wIQuYCAgAAACyAJIAAQjICAgAAgBCkDYCICIAQpA2giARCsgICAAAtBASALIAIgARDxgICAAEEAIAsgAiABEPaAgIAAAkACQAJAIAQpA1giCSABhSAJIAkgAX0gBCkDUCIKIAJUrX0iDYWDQgBTDQAQ54CAgAAhDgJAIAogAn0iDyANhFANACAOIAAQ7YCAgAAgDyANEKiAgIAACyAEQdAAaiAAIAQgAiABENyAgIAAIAQpA1ghDSAEKQNQIQ4QwoCAgAAQpIGAgAAgABDCgICAACAIIAcQrICAgAACQCAGIAWEUA0AIARB0ABqEMKAgIAAQo7o9x8Qj4CAgAAQkICAgAAQm4GAgAAgBCkDUCIHQgJRDQEgB6dBAXFFDQMgBCkDWCAAEMKAgIAAIAYgBRCsgICAAAsgBEHQAGogCxC+gICAACAEKQNYIQcgBCkDUBDbgICAABDCgICAACEIEIyAgIAAIQ8gBCAGQgBSIAVCAFUgBVAbOgDUASAEIA03A8gBIAQgDjcDwAEgBCAHNwO4ASAEIAs2AtABIARBuAFqEJ+BgIAAIQUgBCADNwPoASAEIAU3A+ABIAQgDzcD2AFBACEMA0ACQCAMQRhHDQBBACEMAkADQCAMQRhGDQEgBEHQAGogDGogBEHYAWogDGopAwA3AwAgDEEIaiEMDAALCyAIQo7Ss5UOIARB0ABqQQMQqoCAgAAQkICAgAAhBUEAIQwCQANAIAxBGEYNASAEQdgBaiAMakICNwMAIAxBCGohDAwACwsgBUL/AYNCzABSDQIgBUGUhMCAAEEDIARB2AFqQQMQ+YCAgAAgBEHQAGogBCkD2AEQoIGAgAAgBCgCUEEBcQ0CIAQpA3ghBiAEKQNwIQMgBCkDaCENIAQpA2AhByAEQdAAaiAEKQPgARDAgICAACAEKAJQDQIgBCkDWCEFIARB0ABqIAQpA+gBEPeAgIAAIAQoAlBBAUYNAiAEKQNYIRBCjvKzlZ7Ir+kAEP2AgIAAIQggAiABEKmAgIAAIQ4gCiAJEKmAgIAAIQ8gBCAFNwNwIAQgADcDaCAEIAutQiCGQgSENwNgIAQgDzcDWCAEIA43A1AgCEGMhsCAAEEFIARB0ABqQQUQ2oCAgAAQjYCAgAAaIARBuAFqIAcgDSADIAYQoYGAgAAgBCgCuAENBSAEKQPAASEAIARBuAFqIBAQ1ICAgAAgBCgCuAFBAUYNBSAEIAQpA8ABNwNgIAQgBTcDWCAEIAA3A1BBlITAgABBAyAEQdAAakEDENqAgIAAIQAgBEHQAGogCiAJIAIgARCSgYCAACAEKAJQQQFHDQMMBQsgBEHQAGogDGpCAjcDACAMQQhqIQwMAAsLEOWAgIAAAAsgBCAEKQNYNwPgASAEIAA3A9gBIARB2AFqQQIQqoCAgAAhACAEQfABaiSAgICAACAADwtCg4CAgLD6ARC5gICAAAALAAudAQMBfwF+AX8jgICAgABBEGsiACSAgICAACAAQQRqELSAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC1gICAAAsCQAJAAkAQz4CAgAAiAUICELuAgIAARQ0AAkAgAUICEIeAgIAAIgFC/wGDQgRSDQBBACECIAFCIIinDgIDAgALAAsQw4CAgAAAC0EBIQILIABBEGokgICAgAAgAgs2AAJAIABBrITAgABBDBD8gICAABCPgICAABCQgICAACIAQv8Bg0LNAFENABDlgICAAAALIAAL7QIDAX8CfgJ/I4CAgIAAQRBrIgYkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAkL/AYNCzQBSDQAgBiADEJuBgIAAIAYpAwAiB0ICUQ0AIARC/wGDQgRSDQAgBUL/AYNCBFINACAGKQMIIQhCBCEDAkACQCAFQiCIpw4CAQACC0KEgICAECEDC0GAyx5BgNIfEKaBgIAAQYDLHkGA0h8Qp4GAgABBABDNgICAAEICELuAgIAADQEgARCogYCAAEEAIAYQv4CAgAAgAkICEISAgIAAGiACEIyAgIAAIAcgCBCpgYCAACAAEJWBgIAAIgkgBEIgiKciCkkNAkEBIAAQnIGAgABBABCdgYCAACAJIAprrUIghkIEhEICEISAgIAAGhDPgICAACADQgIQhICAgAAaIAZBEGokgICAgABCAg8LAAtCg4CAgJCBARC5gICAAAALQoOAgICQ9wIQuYCAgAAACw4AQQEgACABENaBgIAACw4AQQIgACABENaBgIAACw4AQQAgAEICELOBgIAAC7YBAwF/AX4BfyOAgICAAEEgayIEJICAgIAAQbiEwIAAQQwQ/ICAgAAhBSAEIAIgAxCZgYCAADcDCCAEIAE3AwBBACEGA0ACQCAGQRBHDQBBACEGAkADQCAGQRBGDQEgBEEQaiAGaiAEIAZqKQMANwMAIAZBCGohBgwACwsgACAFIARBEGpBAhCqgICAABCrgICAACAEQSBqJICAgIAADwsgBEEQaiAGakICNwMAIAZBCGohBgwACwsRAEKEgICAEEIEEKOBgIAAGwsIABDHgICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEMmAgIAAIAApAwAgACkDCBCZgYCAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEMyAgIAAIAApAwAgACkDCBCZgYCAACEBIABBEGokgICAgAAgAQt9AgF/AX4jgICAgABBEGsiASSAgICAAAJAIABC/wGDQs0AUg0AIAFBBGoQtICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELWAgIAACxDIgICAACECEMuAgIAAIAAQqIGAgAAgAiAAEK+BgIAAIAFBEGokgICAgABCAg8LAAthAgF/AX4jgICAgABBEGsiAiSAgICAAEGRicCAAEEVEPyAgIAAEP2AgIAAIQMgAiAANwMIIAIgATcDACADQbiJwIAAQQIgAkECENqAgIAAEI2AgIAAGiACQRBqJICAgIAAC9wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJBCGoQtICAgAACQCACKAIIQQFHDQAgAigCDCACKAIQELWAgIAACxDIgICAACEDAkACQCABQv////8PVg0AIAJBCGoQzICAgAAgAikDECEBIAIpAwhBiAgQyoCAgAAgASAAEIiBgIAARQ0DELGBgIAADAELELKBgIAAIAFCIIinSQ0DQQEgAEIAELOBgIAAQQEQzYCAgABCACABQoSAgIBwgyIBIAEQg4CAgAAaQciJwIAAQRYQ/ICAgAAQ/YCAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQeSJwIAAQQMgAkEIakEDENqAgIAAEI2AgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABELmAgIAAAAtCg4CAgPCAARC5gICAAAALEwBBARDNgICAAEIAEI6AgIAAGgszAQJ+EKGAgIAAIQACQBCigICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxDlgICAAAALFQAgABDNgICAACABIAIQhICAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAELSAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC1gICAAAsgABDMgICAACAAKQMIIQEgACkDAEGICBDKgICAACABEImAgIAAGiAAEM6AgIAAAkAgACgCAA0AEMOAgIAAAAsgACkDCCECELGBgIAAIAEQqIGAgAAgAiABEK+BgIAAIABBEGokgICAgABCAgugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABC0gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtYCAgAALEMiAgIAAIQEQy4CAgABBABDNgICAAEICEI6AgIAAGkH8icCAAEETEPyAgIAAEP2AgIAAIQIgACABNwMAIAJBkIrAgABBASAAQQEQ2oCAgAAQjYCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxC1gICAAEICDwsAC94EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABC4gYCAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABELiBgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQtICAgAACQCACKAIoQQFHDQAgAigCLCACKAIwELWAgIAACxDGgICAAAJAAkACQBDEgICAAA0AELKBgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AELmAgIAAAAtCg4CAgMD/ABC5gICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEKaBgIAADAELQQEQxYCAgABCAhCOgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEKeBgIAADAELQQIQxYCAgABCAhCOgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHEisCAAEEPEPyAgIAAEP2AgIAAIQAgAkEoahC5gYCAACEBIAIgAkE0ahC5gYCAADcDSCACIAE3A0AgAEHoisCAAEECIAJBwABqQQIQ2oCAgAAQjYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABENOBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELuBgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQtICAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQELWAgIAACyAAQQhqELSAgIAAIABBFGoiARC8gICAACAAQTBqIABBCGoQu4GAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABELuBgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhCqgICAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ1IGAgAAPCyAAQgA3AwAgAEICNwMIC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahC0gICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQtYCAgAALEMaAgIAAAkAQxICAgABFDQBCg4CAgOD/ABC5gICAAAALQQAQxYCAgABCAUICEISAgIAAGkH4isCAAEESEPyAgIAAEP2AgIAAQQRBACAAQRhqQQAQ2oCAgAAQjYCAgAAaIABBIGokgICAgABCAgsJABDEgICAAK0LogECAX8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQtICAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELWAgIAACyAAQRBqQgEQ1ICAgAACQAJAIAAoAhANACAAKQMYIQEgAEEQakIBENSAgIAAIAAoAhBBAUcNAQsACyAAIAApAxg3AwggACABNwMAIABBAhCqgICAACEBIABBIGokgICAgAAgAQsIABDCgICAAAtRAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0IEUQ0AAAsgASAAQiCIpxC+gICAACABKQMAIAEpAwgQmYGAgAAhACABQRBqJICAgIAAIAALugIEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQgRSDQACQAJAIAFCAlINAEIAIQEMAQsgAiABEMCAgIAAIAIoAgBBAUYNASACKQMIIQNCASEBCxDGgICAACACELSAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC1gICAAAtBASAAQiCIpyIEEL+AgIAAIQUCQAJAIAFQDQAgBSADQgEQhICAgAAaIAIQvICAgAAgAigCAEEBRw0BIAQgAigCBCACKAIIEMGAgIAADAELIAVCARCOgICAABoLQo7yqrzw1qrrABD9gICAACEFIAIgASADEJmBgIAANwMIIAIgAEKEgICAcIM3AwAgBUHkhMCAAEECIAJBAhDagICAABCNgICAABogAkEQaiSAgICAAEICDwsAC4cBAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQm4GAgAACQCABKQMAIgBCAlENACABKQMIIQIQxoCAgAAgARC0gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtYCAgAALEMKAgIAAEIyAgIAAIAAgAhCpgYCAACABQRBqJICAgIAAQgIPCwALmwECAn8BfiOAgICAAEEgayIBJICAgIAAIAEg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fCEGDAsLIAIgBHwgASADfCIEIAFUrXwgCn0gBCANVK19IQIgBCANfSEBIAYgDCALfEJ/fCIMIAtUrXwhBgwKCyAFQYABaiAMIAqAIgxCACAIIAlrIggQ2IGAgAAgBUHwAGogAyAEIAxCABDegYCAACAFQeAAaiAFKQNwIAUpA3ggCBDYgYCAACAFKQOIASAGfCAFKQOAASIGIAt8IgsgBlStfCEGIAcgAiAFKQNofSABIAUpA2AiDFStfSICeSABIAx9IgF5QsAAfCACQgBSG6ciCE0NASAIQT9NDQALIANQRQ0BDAILIAEgA1QiCCACIARUIAIgBFEbRQ0CIAshDAwHCyABIAOAIQILIAEgA4IhASAGIAsgAnwiDCALVK18IQZCACECDAULIAIgBH0gCK19IQIgASADfSEBIAYgC0IBfCIMUK18IQYMBAsgAiAEQgAgASADWiACIARaIAIgBFEbIggbfSABIANCACAIGyIEVK19IQIgASAEfSEBIAitIQwMAwsgASABIAOAIgwgA359IQFCACEGQgAhAgwCCyACIAIgA0L/////D4MiBIAiBiADfn1CIIYgAUIgiCIMhCAEgCICQiCGIAwgAiADfn1CIIYgAUL/////D4OEIgEgBIAiA4QhDCABIAMgBH59IQEgAkIgiCAGhCEGQgAhAgwBCyAFQTBqIAMgBEHAACAIayIIENuBgIAAIAVBIGogASACIAgQ24GAgABCACEGIAVBEGogA0IAIAUpAyAgBSkDMIAiDEIAEN6BgIAAIAUgBEIAIAxCABDegYCAACAFKQMQIQoCQAJAIAUpAwggBSkDGCINIAUpAwB8IgsgDVStfEIAUg0AIAEgClQiCCACIAtUIAIgC1EbRQ0BCyAEIAJ8IAMgAXwiASADVK18IAt9IAEgClStfSECIAxCf3whDCABIAp9IQEMAQsgAiALfSAIrX0hAiABIAp9IQFCACEGCyAAIAE3AxAgACAMNwMAIAAgAjcDGCAAIAY3AwggBUGwAWokgICAgAALoQEBAn8jgICAgABBIGsiBSSAgICAACAFQgAgAX0gASACQgBTIgYbQgAgAiABQgBSrXx9IAIgBhtCACADfSADIARCAFMiBhtCACAEIANCAFKtfH0gBCAGGxDZgYCAACAFKQMIIQMgAEIAIAUpAwAiAX0gASAEIAKFQgBT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dGVzZW5kX2NvbXBvc2VFbmRwb2ludFBlZXJlaWRwZWVyAFwCEAADAAAAXwIQAAQAAABtc2dfdHlwZW9wdGlvbnMAXAIQAAMAAAB0AhAACAAAAHwCEAAHAAAARW5mb3JjZWRPcHRpb25zZW5mb3JjZWRfb3B0aW9uX3NldGVuZm9yY2VkX29wdGlvbl9wYXJhbXO+AhAAFgAAAGFtb3VudF9yZWNlaXZlZF9sZGFtb3VudF9zZW50X2xkZHN0X2VpZGZyb21ndWlkANwCEAASAAAA7gIQAA4AAAD8AhAABwAAAAMDEAAEAAAABwMQAAQAAABvZnRfcmVjZWl2ZWRzcmNfZWlkdG8AAADcAhAAEgAAAAcDEAAEAAAAQAMQAAcAAABHAxAAAgAAAG1zZ19pbnNwZWN0b3Jfc2V0aW5zcGVjdG9yAAB9AxAACQAAAERlY2ltYWxzRGlmZlRva2VuTXNnSW5zcGVjdG9yYW1vdW50X2xkY29tcG9zZV9tc2dleHRyYV9vcHRpb25zbWluX2Ftb3VudF9sZG9mdF9jbWQAAK0DEAAJAAAAtgMQAAsAAAD8AhAABwAAAMEDEAANAAAAzgMQAA0AAADbAxAABwAAAEcDEAACAAAAbWF4X2Ftb3VudF9sZAAAABwEEAANAAAAzgMQAA0AAADcAhAAEgAAAO4CEAAOAAAAZGVzY3JpcHRpb25mZWVfYW1vdW50X2xkTAQQAAsAAABXBBAADQAAAAAAABIAAAAAAAAAAAAAABIAAAABdGhyZXNob2xkb3duZXJzaGlwX3RyYW5zZmVycmVkbmV3X293bmVyb2xkX293bmVypgQQAAkAAACvBBAACQAAAG93bmVyc2hpcF90cmFuc2ZlcnJpbmd0dGwAAACmBBAACQAAAK8EEAAJAAAA3gQQAAMAAABvd25lcnNoaXBfcmVub3VuY2VkAK8EEAAJAAAAT3duZXJQZW5kaW5nT3duZXJleHRlbmRfdG8AACkFEAAJAAAAiAQQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAABTBRAACAAAAFsFEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50AJPXAQ5jb250cmFjdHNwZWN2MAAAAAIAAAAAAAAAAAAAAA1PRlRGZWVTdG9yYWdlAAAAAAAAAwAAAAAAAAAAAAAADURlZmF1bHRGZWVCcHMAAAAAAAABAAAAAAAAAAZGZWVCcHMAAAAAAAEAAAAEAAAAAAAAAAAAAAARRmVlRGVwb3NpdEFkZHJlc3MAAAAAAAAEAAAAAAAAAAAAAAALT0ZURmVlRXJyb3IAAAAAAwAAAAAAAAANSW52YWxpZEZlZUJwcwAAAAAADBwAAAAAAAAAGEludmFsaWRGZWVEZXBvc2l0QWRkcmVzcwAADB0AAAAAAAAACVNhbWVWYWx1ZQAAAAAADB4AAAAFAAAAAAAAAAAAAAAQRGVmYXVsdEZlZUJwc1NldAAAAAEAAAATZGVmYXVsdF9mZWVfYnBzX3NldAAAAAABAAAAAAAAAAdmZWVfYnBzAAAAAAYAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAlGZWVCcHNTZXQAAAAAAAABAAAAC2ZlZV9icHNfc2V0AAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAA7VGhlIGZlZSByYXRlIGluIGJhc2lzIHBvaW50cywgb3IgTm9uZSBpZiB0aGUgZmVlIGlzIHJlbW92ZWQAAAAAB2ZlZV9icHMAAAAD6AAAAAYAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABRGZWVEZXBvc2l0QWRkcmVzc1NldAAAAAEAAAAXZmVlX2RlcG9zaXRfYWRkcmVzc19zZXQAAAAAAQAAAAAAAAATZmVlX2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAST0ZUUGF1c2FibGVTdG9yYWdlAAAAAAABAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAEAAAAAAAAAAAAAAAQT0ZUUGF1c2FibGVFcnJvcgAAAAIAAAAAAAAABlBhdXNlZAAAAAAMJgAAAAAAAAAUUGF1c2VTdGF0dXNVbmNoYW5nZWQAAAwnAAAABQAAAAAAAAAAAAAACVBhdXNlZFNldAAAAAAAAAEAAAAKcGF1c2VkX3NldAAAAAAAAQAAAAAAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAJRGlyZWN0aW9uAAAAAAAAAgAAAAAAAAAAAAAAB0luYm91bmQAAAAAAAAAAAAAAAAIT3V0Ym91bmQAAAABAAAAOUNvbmZpZ3VyYXRpb24gZm9yIHJhdGUgbGltaXRpbmcsIHVzZWQgYXMgaW5wdXQgcGFyYW1ldGVyLgAAAAAAAAAAAAAPUmF0ZUxpbWl0Q29uZmlnAAAAAAIAAAAAAAAABWxpbWl0AAAAAAAACwAAAAAAAAAOd2luZG93X3NlY29uZHMAAAAAAAYAAAAEAAAAAAAAAAAAAAAOUmF0ZUxpbWl0RXJyb3IAAAAAAAUAAAAAAAAAEUV4Y2VlZGVkUmF0ZUxpbWl0AAAAAAAMMAAAAAAAAAANSW52YWxpZEFtb3VudAAAAAAADDEAAAAAAAAAEEludmFsaWRUaW1lc3RhbXAAAAwyAAAAAAAAAA1JbnZhbGlkQ29uZmlnAAAAAAAMMwAAAAAAAAAJU2FtZVZhbHVlAAAAAAAMNAAAAAUAAAAAAAAAAAAAAAxSYXRlTGltaXRTZXQAAAABAAAADnJhdGVfbGltaXRfc2V0AAAAAAADAAAAAAAAAAlkaXJlY3Rpb24AAAAAAAfQAAAACURpcmVjdGlvbgAAAAAAAAAAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAEJUaGUgcmF0ZSBsaW1pdCBjb25maWd1cmF0aW9uLCBvciBOb25lIGlmIHRoZSByYXRlIGxpbWl0IGlzIHJlbW92ZWQAAAAAAAZjb25maWcAAAAAA+gAAAfQAAAAD1JhdGVMaW1pdENvbmZpZwAAAAAAAAAAAgAAAAMAAAAeVGhlIHR5cGUgb2YgT0ZUIG9wZXJhdGlvbiBtb2RlAAAAAAAAAAAAB09mdFR5cGUAAAAAAgAAACZMb2NrIHRva2VucyBvbiBzZW5kLCB1bmxvY2sgb24gcmVjZWl2ZQAAAAAACkxvY2tVbmxvY2sAAAAAAAAAAAAkQnVybiB0b2tlbnMgb24gc2VuZCwgbWludCBvbiByZWNlaXZlAAAACE1pbnRCdXJuAAAAAQAAAAAAAADqU2V0cyBvciByZW1vdmVzIGEgcmF0ZSBsaW1pdCBmb3IgYSBzcGVjaWZpYyBkaXJlY3Rpb24gYW5kIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZGlyZWN0aW9uYCAtIFRoZSBkaXJlY3Rpb24gKEluYm91bmQgb3IgT3V0Ym91bmQpCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgY29uZmlnYCAtIFRoZSByYXRlIGxpbWl0IGNvbmZpZ3VyYXRpb24sIG9yIE5vbmUgdG8gcmVtb3ZlIHRoZSByYXRlIGxpbWl0AAAAAAAOc2V0X3JhdGVfbGltaXQAAAAAAAMAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAANlaWQAAAAABAAAAAAAAAAGY29uZmlnAAAAAAPoAAAH0AAAAA9SYXRlTGltaXRDb25maWcAAAAAAAAAAAAAAABvUmV0dXJucyB0aGUgcmF0ZSBsaW1pdCBjb25maWd1cmF0aW9uIGZvciBhIGRpcmVjdGlvbiBhbmQgZW5kcG9pbnQuClJldHVybnMgTm9uZSBpZiBubyByYXRlIGxpbWl0IGlzIGNvbmZpZ3VyZWQuAAAAABFyYXRlX2xpbWl0X2NvbmZpZwAAAAAAAAIAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAH0AAAAA9SYXRlTGltaXRDb25maWcAAAAAAAAAAEJSZXR1cm5zIHRoZSBjdXJyZW50IGluLWZsaWdodCBhbW91bnQgZm9yIGEgZGlyZWN0aW9uIGFuZCBlbmRwb2ludC4AAAAAABRyYXRlX2xpbWl0X2luX2ZsaWdodAAAAAIAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAANlaWQAAAAABAAAAAEAAAALAAAAAAAAAG5SZXR1cm5zIHRoZSBhdmFpbGFibGUgY2FwYWNpdHkgZm9yIGEgZGlyZWN0aW9uIGFuZCBlbmRwb2ludC4KUmV0dXJucyBpMTI4OjpNQVggaWYgbm8gcmF0ZSBsaW1pdCBpcyBjb25maWd1cmVkLgAAAAAAE3JhdGVfbGltaXRfY2FwYWNpdHkAAAAAAgAAAAAAAAAJZGlyZWN0aW9uAAAAAAAH0AAAAAlEaXJlY3Rpb24AAAAAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAsAAAAAAAAAKlNldHMgdGhlIGRlZmF1bHQgZmVlIHJhdGUgaW4gYmFzaXMgcG9pbnRzLgAAAAAAE3NldF9kZWZhdWx0X2ZlZV9icHMAAAAAAQAAAAAAAAAPZGVmYXVsdF9mZWVfYnBzAAAAAAYAAAAAAAAAAAAAAMdTZXRzIG9yIHJlbW92ZXMgdGhlIGZlZSByYXRlIGZvciBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZHN0X2VpZGAgLSBUaGUgZGVzdGluYXRpb24gZW5kcG9pbnQgSUQKKiBgZmVlX2Jwc2AgLSBUaGUgZmVlIHJhdGUgKDAtMTAsMDAwKSwgb3IgTm9uZSB0byByZW1vdmUgdGhlIGZlZSBjb25maWd1cmF0aW9uAAAAAAtzZXRfZmVlX2JwcwAAAAACAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAAB2ZlZV9icHMAAAAD6AAAAAYAAAAAAAAAAAAAADhTZXRzIHRoZSBhZGRyZXNzIHdoZXJlIGNvbGxlY3RlZCBmZWVzIHdpbGwgYmUgZGVwb3NpdGVkLgAAABdzZXRfZmVlX2RlcG9zaXRfYWRkcmVzcwAAAAABAAAAAAAAABNmZWVfZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAC1SZXR1cm5zIHRoZSBkZWZhdWx0IGZlZSByYXRlIGluIGJhc2lzIHBvaW50cy4AAAAAAAAPZGVmYXVsdF9mZWVfYnBzAAAAAAAAAAABAAAABgAAAAAAAAA4UmV0dXJucyB0aGUgZmVlIHJhdGUgZm9yIGEgc3BlY2lmaWMgZGVzdGluYXRpb24sIGlmIHNldC4AAAAHZmVlX2JwcwAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAAAYAAAAAAAAAU1JldHVybnMgdGhlIGVmZmVjdGl2ZSBmZWUgcmF0ZSBmb3IgYSBkZXN0aW5hdGlvbiAoZGVzdGluYXRpb24tc3BlY2lmaWMgb3IgZGVmYXVsdCkuAAAAABFlZmZlY3RpdmVfZmVlX2JwcwAAAAAAAAEAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAAGAAAAAAAAACBSZXR1cm5zIHRoZSBmZWUgZGVwb3NpdCBhZGRyZXNzLgAAABNmZWVfZGVwb3NpdF9hZGRyZXNzAAAAAAAAAAABAAAAEwAAAAAAAACzU2V0cyB0aGUgcGF1c2VkIHN0YXRlIG9mIHRoZSBPRlQuCgpXaGVuIHBhdXNlZCwgdGhlIE9GVCB3aWxsIHJlamVjdCBuZXcgc2VuZC9yZWNlaXZlL3F1b3RlX3NlbmQvcXVvdGVfb2Z0IG9wZXJhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGBwYXVzZWRgIC0gYHRydWVgIHRvIHBhdXNlLCBgZmFsc2VgIHRvIHVucGF1c2UAAAAACnNldF9wYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAAAAAAJFJldHVybnMgdGhlIHBhdXNlZCBzdGF0ZSBvZiB0aGUgT0ZULgAAAAlpc19wYXVzZWQAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAlxdW90ZV9vZnQAAAAAAAABAAAAAAAAAApzZW5kX3BhcmFtAAAAAAfQAAAACVNlbmRQYXJhbQAAAAAAAAEAAAPtAAAAAwAAB9AAAAAIT0ZUTGltaXQAAAPqAAAH0AAAAAxPRlRGZWVEZXRhaWwAAAfQAAAACk9GVFJlY2VpcHQAAAAAAAAAAAA1UmV0cmlldmVzIHRoZSB0b2tlbiBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIE9GVC4AAAAAAAAFdG9rZW4AAAAAAAAAAAAAAQAAABMAAAAAAAAAJlJldHVybnMgT0ZUIHZlcnNpb24gYXMgKG1ham9yLCBtaW5vcikuAAAAAAALb2Z0X3ZlcnNpb24AAAAAAAAAAAEAAAPtAAAAAgAAAAYAAAAGAAAAAAAAAEFSZXRyaWV2ZXMgdGhlIHNoYXJlZCBkZWNpbWFscyB1c2VkIGZvciBjcm9zcy1jaGFpbiBub3JtYWxpemF0aW9uLgAAAAAAAA9zaGFyZWRfZGVjaW1hbHMAAAAAAAAAAAEAAAAEAAAAAAAAAElSZXRyaWV2ZXMgdGhlIGRlY2ltYWwgY29udmVyc2lvbiByYXRlIHVzZWQgZm9yIGNyb3NzLWNoYWluIG5vcm1hbGl6YXRpb24uAAAAAAAAF2RlY2ltYWxfY29udmVyc2lvbl9yYXRlAAAAAAAAAAABAAAACwAAAAAAAADqV2hldGhlciBhIHNlcGFyYXRlIHRva2VuIGFwcHJvdmFsIGlzIHJlcXVpcmVkIGJlZm9yZSBzZW5kaW5nLgoKSGVscHMgd2FsbGV0IGltcGxlbWVudGVycyBkZXRlcm1pbmUgaW50ZWdyYXRpb24gcmVxdWlyZW1lbnRzLgoKIyBSZXR1cm5zCi0gYHRydWVgIGlmIGEgc2VwYXJhdGUgdG9rZW4gYXBwcm92YWwgc3RlcCBpcyByZXF1aXJlZAotIGBmYWxzZWAgaWYgbm8gc2VwYXJhdGUgYXBwcm92YWwgaXMgbmVlZGVkAAAAAAARYXBwcm92YWxfcmVxdWlyZWQAAAAAAAAAAAAAAQAAAAEAAAAAAAAALVJldHVybnMgdGhlIG1lc3NhZ2UgaW5zcGVjdG9yIGFkZHJlc3MgaWYgc2V0LgAAAAAAAA1tc2dfaW5zcGVjdG9yAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAFlU2V0cyBvciByZW1vdmVzIHRoZSBtZXNzYWdlIGluc3BlY3RvciBhZGRyZXNzLgoKVGhlIG1lc3NhZ2UgaW5zcGVjdG9yIGlzIGFuIG9wdGlvbmFsIGNvbnRyYWN0IHRoYXQgdmFsaWRhdGVzIG91dGdvaW5nIG1lc3NhZ2VzCmFuZCBvcHRpb25zIGJlZm9yZSB0aGV5IGFyZSBzZW50IGNyb3NzLWNoYWluLiBJZiBzZXQsIHRoZSBpbnNwZWN0b3IncyBgaW5zcGVjdGAKbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGR1cmluZyBgc2VuZGAgYW5kIGBxdW90ZV9zZW5kYCBvcGVyYXRpb25zLgoKIyBBcmd1bWVudHMKKiBgaW5zcGVjdG9yYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBpbnNwZWN0b3IgY29udHJhY3QsIG9yIE5vbmUgdG8gcmVtb3ZlAAAAAAAAEXNldF9tc2dfaW5zcGVjdG9yAAAAAAAAAQAAAAAAAAAJaW5zcGVjdG9yAAAAAAAD6AAAABMAAAAAAAAAAAAAADtRdW90ZXMgYSBzZW5kIG9wZXJhdGlvbiBpbmNsdWRpbmcgTGF5ZXJaZXJvIG1lc3NhZ2luZyBmZWVzLgAAAAAKcXVvdGVfc2VuZAAAAAAAAwAAAAAAAAAEZnJvbQAAABMAAAAAAAAACnNlbmRfcGFyYW0AAAAAB9AAAAAJU2VuZFBhcmFtAAAAAAAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAAAQAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAAAAAAHRTZW5kcyB0b2tlbnMgY3Jvc3MtY2hhaW4gdG8gYW5vdGhlciBlbmRwb2ludC4KCkZyb20gbXVzdCBiZSBhdXRoZW50aWNhdGVkLgoKIyBSZXR1cm5zCihNZXNzYWdpbmdSZWNlaXB0LCBPRlRSZWNlaXB0KQAAAARzZW5kAAAABAAAAAAAAAAEZnJvbQAAABMAAAAAAAAACnNlbmRfcGFyYW0AAAAAB9AAAAAJU2VuZFBhcmFtAAAAAAAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAAAAAAADnJlZnVuZF9hZGRyZXNzAAAAAAATAAAAAQAAA+0AAAACAAAH0AAAABBNZXNzYWdpbmdSZWNlaXB0AAAH0AAAAApPRlRSZWNlaXB0AAAAAAAAAAAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAABgAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAACGVuZHBvaW50AAAAEwAAAAAAAAAIZGVsZWdhdGUAAAPoAAAAEwAAAAAAAAAPc2hhcmVkX2RlY2ltYWxzAAAAAAQAAAAAAAAACG9mdF90eXBlAAAH0AAAAAdPZnRUeXBlAAAAAAAAAAAAAAAAQ1JldHVybnMgdGhlIHR5cGUgb2Ygb3BlcmF0aW9uIGZvciB0aGlzIE9GVCAoTG9ja1VubG9jayBvciBNaW50QnVybikAAAAACG9mdF90eXBlAAAAAAAAAAEAAAfQAAAAB09mdFR5cGUAAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAK5SZXRyaWV2ZXMgdGhlIE9BcHAgdmVyc2lvbiBpbmZvcm1hdGlvbi4KCiMgUmV0dXJucwpBIHR1cGxlIGNvbnRhaW5pbmc6Ci0gYHNlbmRlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBTZW5kZXIKLSBgcmVjZWl2ZXJfdmVyc2lvbmA6IFRoZSB2ZXJzaW9uIG9mIHRoZSBPQXBwUmVjZWl2ZXIAAAAAAAxvYXBwX3ZlcnNpb24AAAAAAAAAAQAAA+0AAAACAAAABgAAAAYAAAAAAAAAbFJldHJpZXZlcyB0aGUgTGF5ZXJaZXJvIGVuZHBvaW50IGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBPQXBwLgoKIyBSZXR1cm5zClRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcwAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAADBUmV0cmlldmVzIHRoZSBwZWVyIChPQXBwKSBhc3NvY2lhdGVkIHdpdGggYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoKIyBSZXR1cm5zClRoZSBwZWVyIGFkZHJlc3MgKE9BcHAgaW5zdGFuY2UpIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludAAAAAAAAARwZWVyAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAD6AAAA+4AAAAgAAAAAAAAAOVTZXRzIG9yIHJlbW92ZXMgdGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgZm9yIGEgY29ycmVzcG9uZGluZyBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgcGVlcmAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgcGVlciB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQsIG9yIE5vbmUgdG8gcmVtb3ZlIHRoZSBwZWVyAAAAAAAACHNldF9wZWVyAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAAAAAI5TZXRzIHRoZSBkZWxlZ2F0ZSBhZGRyZXNzIGZvciB0aGUgT0FwcCBDb3JlLgoKIyBBcmd1bWVudHMKKiBgZGVsZWdhdGVgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGRlbGVnYXRlIHRvIGJlIHNldCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIGRlbGVnYXRlAAAAAAAMc2V0X2RlbGVnYXRlAAAAAQAAAAAAAAAIZGVsZWdhdGUAAAPoAAAAEwAAAAAAAAAAAAAAt0NoZWNrcyBpZiBhIG1lc3NhZ2luZyBwYXRoIGNhbiBiZSBpbml0aWFsaXplZCBmb3IgdGhlIGdpdmVuIG9yaWdpbi4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIG9mIHRoZSBtZXNzYWdlCgojIFJldHVybnMKVHJ1ZSBpZiB0aGUgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQsIGZhbHNlIG90aGVyd2lzZQAAAAAVYWxsb3dfaW5pdGlhbGl6ZV9wYXRoAAAAAAAAAQAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAEAAAAAAAAB+FJldHJpZXZlcyB0aGUgbmV4dCBub25jZSBmb3IgYSBnaXZlbiBzb3VyY2UgZW5kcG9pbnQgYW5kIHNlbmRlciBhZGRyZXNzLgoKVGhlIHBhdGggbm9uY2Ugc3RhcnRzIGZyb20gMS4gSWYgMCBpcyByZXR1cm5lZCBpdCBtZWFucyB0aGF0IHRoZXJlIGlzIE5PIG5vbmNlIG9yZGVyZWQgZW5mb3JjZW1lbnQuClRoaXMgaXMgcmVxdWlyZWQgYnkgdGhlIG9mZi1jaGFpbiBleGVjdXRvciB0byBkZXRlcm1pbmUgaWYgdGhlIE9BcHAgZXhwZWN0cyBtZXNzYWdlIGV4ZWN1dGlvbiB0byBiZSBvcmRlcmVkLgpUaGlzIGlzIGFsc28gZW5mb3JjZWQgYnkgdGhlIE9BcHAuCkJ5IGRlZmF1bHQgdGhpcyBpcyBOT1QgZW5hYmxlZCwgaS5lLiBuZXh0X25vbmNlIGlzIGhhcmRjb2RlZCB0byByZXR1cm4gMC4KCiMgQXJndW1lbnRzCiogYHNyY19laWRgIC0gVGhlIHNvdXJjZSBlbmRwb2ludCBJRAoqIGBzZW5kZXJgIC0gVGhlIHNlbmRlciBPQXBwIGFkZHJlc3MKCiMgUmV0dXJucwpUaGUgbmV4dCBub25jZQAAAApuZXh0X25vbmNlAAAAAAACAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAABAAAABgAAAAAAAAMjRW50cnkgcG9pbnQgZm9yIHJlY2VpdmluZyBtZXNzYWdlcyBvciBwYWNrZXRzIGZyb20gdGhlIExheWVyWmVybyBlbmRwb2ludC4KClRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzIGBjbGVhcl9wYXlsb2FkX2FuZF90cmFuc2ZlcmAgdG8gdmFsaWRhdGUgdGhlIG1lc3NhZ2UKYW5kIGNsZWFyIGl0IGZyb20gdGhlIGVuZHBvaW50LCB0aGVuIGRlbGVnYXRlcyB0byBgX19sel9yZWNlaXZlYCBmb3IgYXBwbGljYXRpb24gbG9naWMuCgojIEFyZ3VtZW50cwoqIGBleGVjdXRvcmAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgZXhlY3V0b3IgZm9yIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3M6Ci0gYHNyY19laWRgOiBUaGUgc291cmNlIGNoYWluIGVuZHBvaW50IElECi0gYHNlbmRlcmA6IFRoZSBzZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluCi0gYG5vbmNlYDogVGhlIG5vbmNlIG9mIHRoZSBtZXNzYWdlCiogYGd1aWRgIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVjZWl2ZWQgTGF5ZXJaZXJvIG1lc3NhZ2UKKiBgbWVzc2FnZWAgLSBUaGUgcGF5bG9hZCBvZiB0aGUgcmVjZWl2ZWQgbWVzc2FnZQoqIGBleHRyYV9kYXRhYCAtIEFkZGl0aW9uYWwgYXJiaXRyYXJ5IGRhdGEgcHJvdmlkZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgZXhlY3V0b3IKKiBgdmFsdWVgIC0gVGhlIG5hdGl2ZSB0b2tlbiB2YWx1ZSBzZW50IHdpdGggdGhlIG1lc3NhZ2UAAAAACmx6X3JlY2VpdmUAAAAAAAYAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAARndWlkAAAD7gAAACAAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAKZXh0cmFfZGF0YQAAAAAADgAAAAAAAAAFdmFsdWUAAAAAAAALAAAAAAAAAAAAAAHsSW5kaWNhdGVzIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBhbiBhcHByb3ZlZCBjb21wb3NlTXNnIHNlbmRlciB0byB0aGUgRW5kcG9pbnQuCgpBcHBsaWNhdGlvbnMgY2FuIG9wdGlvbmFsbHkgY2hvb3NlIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBjb21wb3NlTXNnIHNlbmRlcnMgdGhhdCBhcmUgTk9UIHRoZSBicmlkZ2luZyBsYXllci4KVGhlIGRlZmF1bHQgc2VuZGVyIElTIHRoZSBPQXBwUmVjZWl2ZXIgaW1wbGVtZW50ZXIuCgojIEFyZ3VtZW50cwoqIGBvcmlnaW5gIC0gVGhlIG9yaWdpbiBpbmZvcm1hdGlvbiBjb250YWluaW5nIHRoZSBzb3VyY2UgZW5kcG9pbnQgYW5kIHNlbmRlciBhZGRyZXNzCiogYG1lc3NhZ2VgIC0gVGhlIGx6UmVjZWl2ZSBwYXlsb2FkCiogYHNlbmRlcmAgLSBUaGUgc2VuZGVyIGFkZHJlc3MgdG8gY2hlY2sKCiMgUmV0dXJucwpUcnVlIGlmIHRoZSBzZW5kZXIgaXMgYSB2YWxpZCBjb21wb3NlTXNnIHNlbmRlciwgZmFsc2Ugb3RoZXJ3aXNlAAAAFWlzX2NvbXBvc2VfbXNnX3NlbmRlcgAAAAAAAAMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAQAAAAAAAADZUmV0cmlldmVzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoKIyBSZXR1cm5zClRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciB0aGUgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZQAAAAAAABBlbmZvcmNlZF9vcHRpb25zAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAEAAAAOAAAAAAAAAptTZXRzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBzcGVjaWZpYyBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlIGNvbWJpbmF0aW9ucy4KCk9ubHkgdGhlIGBhdXRob3JpemVyYCBvZiB0aGUgT0FwcCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLgpQcm92aWRlcyBhIHdheSBmb3IgdGhlIE9BcHAgdG8gZW5mb3JjZSB0aGluZ3MgbGlrZSBwYXlpbmcgZm9yIFByZUNyaW1lLCBBTkQvT1IgbWluaW11bSBkc3QgbHpSZWNlaXZlIGdhcyBhbW91bnRzIGV0Yy4KVGhlc2UgZW5mb3JjZWQgb3B0aW9ucyBjYW4gdmFyeSBhcyB0aGUgcG90ZW50aWFsIG9wdGlvbnMvZXhlY3V0aW9uIG9uIHRoZSByZW1vdGUgbWF5IGRpZmZlciBhcyBwZXIgdGhlIG1zZ190eXBlLgplLmcuIEFtb3VudCBvZiBselJlY2VpdmUoKSBnYXMgbmVjZXNzYXJ5IHRvIGRlbGl2ZXIgYSBsekNvbXBvc2UoKSBtZXNzYWdlIGFkZHMgb3ZlcmhlYWQgeW91IGRvbid0IHdhbnQgdG8gcGF5CmlmIHlvdSBhcmUgb25seSBtYWtpbmcgYSBzdGFuZGFyZCBMYXllclplcm8gbWVzc2FnZSBpZS4gbHpSZWNlaXZlKCkgV0lUSE9VVCBzZW5kQ29tcG9zZSgpLgoKIyBBcmd1bWVudHMKKiBgb3B0aW9uc2AgLSBBIHZlY3RvciBvZiBFbmZvcmNlZE9wdGlvblBhcmFtIHN0cnVjdHVyZXMgc3BlY2lmeWluZyBlbmZvcmNlZCBvcHRpb25zAAAAABRzZXRfZW5mb3JjZWRfb3B0aW9ucwAAAAEAAAAAAAAAB29wdGlvbnMAAAAD6gAAB9AAAAATRW5mb3JjZWRPcHRpb25QYXJhbQAAAAAAAAAAAAAAAnpDb21iaW5lcyBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgpJZiB0aGVyZSBpcyBhbiBlbmZvcmNlZCBselJlY2VpdmUgb3B0aW9uOgotIHtnYXNfbGltaXQ6IDIwMGssIHZhbHVlOiAxIFhMTX0gQU5EIGEgY2FsbGVyIHN1cHBsaWVzIGEgbHpSZWNlaXZlIG9wdGlvbjoge2dhc19saW1pdDogMTAwaywgdmFsdWU6IDAuNSBYTE19Ci0gVGhlIHJlc3VsdGluZyBvcHRpb25zIHdpbGwgYmUge2dhc19saW1pdDogMzAwaywgdmFsdWU6IDEuNSBYTE19IHdoZW4gdGhlIG1lc3NhZ2UgaXMgZXhlY3V0ZWQgb24gdGhlIHJlbW90ZSBsel9yZWNlaXZlKCkgZnVuY3Rpb24uClRoZSBwcmVzZW5jZSBvZiBkdXBsaWNhdGVkIG9wdGlvbnMgaXMgaGFuZGxlZCBvZmYtY2hhaW4gaW4gdGhlIHZlcmlmaWVyL2V4ZWN1dG9yLgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBtc2dfdHlwZWAgLSBUaGUgT0FwcCBtZXNzYWdlIHR5cGUKKiBgZXh0cmFfb3B0aW9uc2AgLSBBZGRpdGlvbmFsIG9wdGlvbnMgcGFzc2VkIGJ5IHRoZSBjYWxsZXIKCiMgUmV0dXJucwpUaGUgY29tYmluYXRpb24gb2YgY2FsbGVyIHNwZWNpZmllZCBvcHRpb25zIEFORCBlbmZvcmNlZCBvcHRpb25zAAAAAAAPY29tYmluZV9vcHRpb25zAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAADWV4dHJhX29wdGlvbnMAAAAAAAAOAAAAAQAAAA4AAAAFAAAAAAAAAAAAAAAKUGFja2V0U2VudAAAAAAAAQAAAAtwYWNrZXRfc2VudAAAAAADAAAAAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAAAAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAAAAAAADHNlbmRfbGlicmFyeQAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA5QYWNrZXRWZXJpZmllZAAAAAAAAQAAAA9wYWNrZXRfdmVyaWZpZWQAAAAAAwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAMcGF5bG9hZF9oYXNoAAAD7gAAACAAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9QYWNrZXREZWxpdmVyZWQAAAAAAQAAABBwYWNrZXRfZGVsaXZlcmVkAAAAAgAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAIAAAAFAAAAAAAAAAAAAAAOTHpSZWNlaXZlQWxlcnQAAAAAAAEAAAAQbHpfcmVjZWl2ZV9hbGVydAAAAAkAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAEAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAAA2dhcwAAAAALAAAAAAAAAAAAAAAFdmFsdWUAAAAAAAALAAAAAAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAAAAAAAKZXh0cmFfZGF0YQAAAAAADgAAAAAAAAAAAAAABnJlYXNvbgAAAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAABlpyb1NldAAAAAAAAQAAAAd6cm9fc2V0AAAAAAEAAAAAAAAAA3pybwAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALRGVsZWdhdGVTZXQAAAAAAQAAAAxkZWxlZ2F0ZV9zZXQAAAACAAAAAAAAAARvYXBwAAAAEwAAAAEAAAAAAAAACGRlbGVnYXRlAAAD6AAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABNJbmJvdW5kTm9uY2VTa2lwcGVkAAAAAAEAAAAVaW5ib3VuZF9ub25jZV9za2lwcGVkAAAAAAAABAAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAEAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAABW5vbmNlAAAAAAAABgAAAAEAAAACAAAABQAAAAAAAAAAAAAADlBhY2tldE5pbGlmaWVkAAAAAAABAAAAD3BhY2tldF9uaWxpZmllZAAAAAAFAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAQAAAAAAAAAMcGF5bG9hZF9oYXNoAAAD6AAAA+4AAAAgAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALUGFja2V0QnVybnQAAAAAAQAAAAxwYWNrZXRfYnVybnQAAAAFAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAQAAAAAAAAAMcGF5bG9hZF9oYXNoAAAD7gAAACAAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABFMaWJyYXJ5UmVnaXN0ZXJlZAAAAAAAAAEAAAASbGlicmFyeV9yZWdpc3RlcmVkAAAAAAABAAAAAAAAAAduZXdfbGliAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABVEZWZhdWx0U2VuZExpYnJhcnlTZXQAAAAAAAABAAAAGGRlZmF1bHRfc2VuZF9saWJyYXJ5X3NldAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAAAAAAAB25ld19saWIAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAGERlZmF1bHRSZWNlaXZlTGlicmFyeVNldAAAAAEAAAAbZGVmYXVsdF9yZWNlaXZlX2xpYnJhcnlfc2V0AAAAAAIAAAAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAAAAAAB25ld19saWIAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAG0RlZmF1bHRSZWNlaXZlTGliVGltZW91dFNldAAAAAABAAAAH2RlZmF1bHRfcmVjZWl2ZV9saWJfdGltZW91dF9zZXQAAAAAAgAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAHdGltZW91dAAAAAPoAAAH0AAAAAdUaW1lb3V0AAAAAAAAAAACAAAABQAAAAAAAAAAAAAADlNlbmRMaWJyYXJ5U2V0AAAAAAABAAAAEHNlbmRfbGlicmFyeV9zZXQAAAADAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAAAAAAAAduZXdfbGliAAAAA+gAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAARUmVjZWl2ZUxpYnJhcnlTZXQAAAAAAAABAAAAE3JlY2VpdmVfbGlicmFyeV9zZXQAAAAAAwAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAHbmV3X2xpYgAAAAPoAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAGFJlY2VpdmVMaWJyYXJ5VGltZW91dFNldAAAAAEAAAAbcmVjZWl2ZV9saWJyYXJ5X3RpbWVvdXRfc2V0AAAAAAMAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAAAAAAHdGltZW91dAAAAAPoAAAH0AAAAAdUaW1lb3V0AAAAAAAAAAACAAAABQAAAAAAAAAAAAAAC0NvbXBvc2VTZW50AAAAAAEAAAAMY29tcG9zZV9zZW50AAAABQAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAAEENvbXBvc2VEZWxpdmVyZWQAAAABAAAAEWNvbXBvc2VfZGVsaXZlcmVkAAAAAAAABAAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAACAAAABQAAAAAAAAAAAAAADkx6Q29tcG9zZUFsZXJ0AAAAAAABAAAAEGx6X2NvbXBvc2VfYWxlcnQAAAAKAAAAAAAAAARmcm9tAAAAEwAAAAEAAAAAAAAAAnRvAAAAAAATAAAAAQAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAQAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAQAAAAAAAAAFaW5kZXgAAAAAAAAEAAAAAQAAAAAAAAADZ2FzAAAAAAsAAAAAAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAAAAAAGcmVhc29uAAAAAAAOAAAAAAAAAAIAAAAEAAAAAAAAAAAAAAANRW5kcG9pbnRFcnJvcgAAAAAAABkAAAAAAAAAEUFscmVhZHlSZWdpc3RlcmVkAAAAAAAAAQAAAAAAAAANQ29tcG9zZUV4aXN0cwAAAAAAAAIAAAAAAAAAD0NvbXBvc2VOb3RGb3VuZAAAAAADAAAAAAAAABxEZWZhdWx0UmVjZWl2ZUxpYlVuYXZhaWxhYmxlAAAABAAAAAAAAAAZRGVmYXVsdFNlbmRMaWJVbmF2YWlsYWJsZQAAAAAAAAUAAAAAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAAAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAAAAAAAAQSW52YWxpZEZlZUFtb3VudAAAAAgAAAAAAAAADUludmFsaWRFeHBpcnkAAAAAAAAJAAAAAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAAAAAAAAxJbnZhbGlkTm9uY2UAAAALAAAAAAAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAAAAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAAAAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAAAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAAAAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAAAAAAAMVW5hdXRob3JpemVkAAAAFgAAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5l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IChPcHRpb25hbCkAAAALY29tcG9zZV9tc2cAAAAADgAAABtUaGUgZGVzdGluYXRpb24gZW5kcG9pbnQgSUQAAAAAB2RzdF9laWQAAAAABAAAADdBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBMYXllclplcm8gbWVzc2FnZSAoT3B0aW9uYWwpAAAAAA1leHRyYV9vcHRpb25zAAAAAAAADgAAAEVUaGUgbWluaW11bSBhbW91bnQgdG8gcmVjZWl2ZSBpbiBsb2NhbCBkZWNpbWFscyAoc2xpcHBhZ2UgcHJvdGVjdGlvbikAAAAAAAANbWluX2Ftb3VudF9sZAAAAAAAAAsAAAAqT0ZUIGNvbW1hbmQgZm9yIGN1c3RvbSBiZWhhdmlvciAoT3B0aW9uYWwpAAAAAAAHb2Z0X2NtZAAAAAAOAAAAOVRoZSByZWNpcGllbnQgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKQAAAAAAAAJ0bwAAAAAD7gAAACAAAAABAAAAIlRyYW5zZmVyIGxpbWl0cyBmb3IgT0ZUIG9wZXJhdGlvbnMAAAAAAAAAAAAIT0ZUTGltaXQAAAACAAAALFRoZSBtYXhpbXVtIGFtb3VudCB0byBzZW5kIGluIGxvY2FsIGRlY2ltYWxzAAAADW1heF9hbW91bnRfbGQAAAAAAAALAAAALFRoZSBtaW5pbXVtIGFtb3VudCB0byBzZW5kIGluIGxvY2FsIGRlY2ltYWxzAAAADW1pbl9hbW91bnRfbGQAAAAAAAALAAAAAQAAAD9SZWNlaXB0IGNvbnRhaW5pbmcgYW1vdW50cyBzZW50IGFuZCByZWNlaXZlZCBpbiBhbiBPRlQgdHJhbnNmZXIAAAAAAAAAAApPRlRSZWNlaXB0AAAAAAACAAAAM1RoZSBhbW91bnQgcmVjZWl2ZWQgaW4gbG9jYWwgZGVjaW1hbHMgb24gdGhlIHJlbW90ZQAAAAASYW1vdW50X3JlY2VpdmVkX2xkAAAAAAALAAAAIVRoZSBhbW91bnQgc2VudCBpbiBsb2NhbCBkZWNpbWFscwAAAAAAAA5hbW91bnRfc2VudF9sZAAAAAAACwAAAAEAAAAuRGV0YWlscyBhYm91dCBmZWVzIGNoYXJnZWQgaW4gYW4gT0ZUIG9wZXJhdGlvbgAAAAAAAAAAAAxPRlRGZWVEZXRhaWwAAAACAAAAGlRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZmVlAAAAAAALZGVzY3JpcHRpb24AAAAADgAAAH9UaGUgYW1vdW50IG9mIHRoZSBmZWUgaW4gbG9jYWwgZGVjaW1hbHMuIFBvc2l0aXZlIHZhbHVlcyByZXByZXNlbnQgZmVlcyBjaGFyZ2VkLAp3aGlsZSBuZWdhdGl2ZSB2YWx1ZXMgcmVwcmVzZW50IHJld2FyZHMgZ2l2ZW4uAAAAAA1mZWVfYW1vdW50X2xkAAAAAAAACwAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjAuMSM5NDE0NDgwNzllY2NmOTU2MjdkMmZmZWExM2JhMjY4ZTMwNWE5MDc3AABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAAB+gEoYAF+AX5gAn5+AX5gA35+fgF+YAABfmAEfn5+fgF+YAF+AX9gAn9/AX9gBX5+fn5+AGACf38BfmADfn5+AGAEf39+fgBgA39/fwF+YAAAYAF/AGACfn8BfmABfgBgAn5+AX9gAn9/AGACf34AYAABf2ABfwF+YAJ+fwBgA39/fwBgA39+fgBgBH9+fn4AYAR/f39/AX5gBX9+f35+AGADfn9/AGABfwF/YAJ/fgF/YAV+f39/fwBgBn9+fn5+fwBgBX9+fn5+AGAGfn5+fn5+AX5gBH5+fn4AYAJ+fgBgAn5/AX9gBH5+f38BfmAEf35+fwBgA39/fwF/AuUBJgF2ATMAAAF2ATEAAQFiAW0AAgFsAV8AAgFiATgAAAFiAWUAAQFsATEAAQFiATQAAwFsATcABAFhATAAAAFiAV8AAAFiAWYAAgF4ATcAAwF4ATEAAQFsATIAAQF2AV8AAwFkAV8AAgFhATYAAAFpAV8AAAFpATAAAAFiATEABAFiATMAAQF2AWcAAQFpATgAAAFpATcAAAFpATYAAQFiAWoAAQFiATIABAFtATkAAgFtAWEABAF4ATAAAQFiATAAAAF4ATQAAwF4ATMAAwF4ATgAAwFsATAAAQFsATgAAQF4ATUAAAO8AboBBQYHAQgJBwoIAAsMCA0ODwgQEREIEg0DDBMUDQ0RCAwDAw0VEAwNFA0DFhIXAxEUGAESFxkPGg0SGxIcHR0NDA0DEQMUAxEDDQwTChYRAxYKEhIeEg0IABYfIAIBAQEAAQADAAADAAMAEgggAwMFAwMDAQASEhQCFBIgBBMAIRERDyIDAwMDACMBDBMXAwMBEQESFAMNEQMDAwMAAQAAEgEhFAgkAQwlAgEAAgwWEhYRFh8mICAmJycgBAUBcAEBAQUDAQARBiEEfwFBgIDAAAt/AEH0iMAAC38AQeqLwAALfwBB8IvAAAsHoQc1Bm1lbW9yeQIADnNldF9yYXRlX2xpbWl0AIEBEXJhdGVfbGltaXRfY29uZmlnAIIBFHJhdGVfbGltaXRfaW5fZmxpZ2h0AIMBE3JhdGVfbGltaXRfY2FwYWNpdHkAhAETc2V0X2RlZmF1bHRfZmVlX2JwcwCFAQtzZXRfZmVlX2JwcwCGARdzZXRfZmVlX2RlcG9zaXRfYWRkcmVzcwCHAQ9kZWZhdWx0X2ZlZV9icHMAiAEHZmVlX2JwcwCJARFlZmZlY3RpdmVfZmVlX2JwcwCKARNmZWVfZGVwb3NpdF9hZGRyZXNzAIsBCnNldF9wYXVzZWQAjAEJaXNfcGF1c2VkAI0BCXF1b3RlX29mdACOAQV0b2tlbgCSAQ9zaGFyZWRfZGVjaW1hbHMAkwEXZGVjaW1hbF9jb252ZXJzaW9uX3JhdGUAlQERYXBwcm92YWxfcmVxdWlyZWQAlgENbXNnX2luc3BlY3RvcgCXARFzZXRfbXNnX2luc3BlY3RvcgCZAQpxdW90ZV9zZW5kAJ0BBHNlbmQAoQENX19jb25zdHJ1Y3RvcgCkAQhvZnRfdHlwZQCpAQphdXRob3JpemVyAKoBBW93bmVyAKsBDXBlbmRpbmdfb3duZXIArAESdHJhbnNmZXJfb3duZXJzaGlwAK0BGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAK8BEGFjY2VwdF9vd25lcnNoaXAAswEScmVub3VuY2Vfb3duZXJzaGlwALQBE2V4dGVuZF9pbnN0YW5jZV90dGwAtQEPc2V0X3R0bF9jb25maWdzALcBC3R0bF9jb25maWdzALoBEmZyZWV6ZV90dGxfY29uZmlncwC9ARVpc190dGxfY29uZmlnc19mcm96ZW4AvgEMb2FwcF92ZXJzaW9uAL8BCGVuZHBvaW50AMABBHBlZXIAwQEIc2V0X3BlZXIAwgEMc2V0X2RlbGVnYXRlAMMBFWFsbG93X2luaXRpYWxpemVfcGF0aADEAQpuZXh0X25vbmNlAMYBCmx6X3JlY2VpdmUAxwEVaXNfY29tcG9zZV9tc2dfc2VuZGVyAM4BEGVuZm9yY2VkX29wdGlvbnMAzwEUc2V0X2VuZm9yY2VkX29wdGlvbnMA0AEPY29tYmluZV9vcHRpb25zANEBAV8DAQtvZnRfdmVyc2lvbgC/AQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwqy3QG6Aa4BAwF/AX4Cf0ECIQECQCAAQv8Bg0LLAFINACAAEICAgIAAIgJCgICAgBBUDQACQCAAQgQQgYCAgAAiAKdB/wFxIgNBygBGDQAgA0EORw0BCyACQiCIpyEDAkACQAJAIABByIHAgACtQiCGQgSEQoSAgIAgEIKAgIAAQiCIpw4CAAEDC0EBIAMQp4CAgAANAkEAIQQMAQtBASEEQQEgAxCngICAAA0BCyAEIQELIAELGQACQCABIABJDQAgASAAaw8LEOWAgIAAAAuxAQECfyOAgICAAEEwayIFJICAgIAAIAUgAyAEEKmAgIAANwMQIAUgAjcDCCAFIAE3AwBBACEGA0ACQCAGQRhHDQBBACEGAkADQCAGQRhGDQEgBUEYaiAGaiAFIAZqKQMANwMAIAZBCGohBgwACwsgAEKO7uqVvrbe8wAgBUEYakEDEKqAgIAAEKuAgIAAIAVBMGokgICAgAAPCyAFQRhqIAZqQgI3AwAgBkEIaiEGDAALC0MBAX8jgICAgABBEGsiAiSAgICAACACIAAgARDZgICAAAJAIAIoAgBBAUcNAAALIAIpAwghASACQRBqJICAgIAAIAELGgAgAK1CIIZCBIQgAa1CIIZCBIQQloCAgAALIQACQCAAIAEgAhCQgICAAEL/AYNCAlENABDlgICAAAALC7EBAQJ/I4CAgIAAQTBrIgUkgICAgAAgBSADIAQQqYCAgAA3AxAgBSACNwMIIAUgATcDAEEAIQYDQAJAIAZBGEcNAEEAIQYCQANAIAZBGEYNASAFQRhqIAZqIAUgBmopAwA3AwAgBkEIaiEGDAALCyAAQo7u6pW+tt7zACAFQRhqQQMQqoCAgAAQq4CAgAAgBUEwaiSAgICAAA8LIAVBGGogBmpCAjcDACAGQQhqIQYMAAsLHQAgACABEK6AgIAAIAIQr4CAgAAgAxCDgICAABoLxwECAX8BfiOAgICAAEEQayICJICAgIAAAkACQAJAAkACQAJAIAAOAwABAgALIAJBgIDAgABBDRDQgICAACACKAIADQMgAiACKQMIENGAgIAADAILIAJBjYDAgABBBhDQgICAACACKAIADQIgAiACKQMIIAGtQiCGQgSEENKAgIAADAELIAJBk4DAgABBERDQgICAACACKAIADQEgAiACKQMIENGAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLQQEBfyOAgICAAEEQayIBJICAgIAAIAEgABDYgICAAAJAIAEoAgBBAUcNAAALIAEpAwghACABQRBqJICAgIAAIAALjAEBA34QsYCAgAAgACABELKAgIAAIgMQhICAgAAhBCACKQMAIQUCQAJAIARCgICAgBBUDQACQCAFEISAgIAAQoCAgIAQWg0AIAMPCyAFEISAgIAAQv////8fWA0BIAIQs4CAgAAgAyAFQQIQtICAgAAQhYCAgAAhBQsgBQ8LQoOAgICA+gEQtYCAgAAAC0gBAX8jgICAgABBEGsiACSAgICAACAAQQRqELuBgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC2gYCAAAsgAEEQaiSAgICAAAtaAwF+AX8BfhCxgICAAAJAAkAgACABELaAgIAAIgJCARC3gICAACIDRQ0AIAJCARCGgICAACIEQv8Bg0LIAFINASAAIAEQuICAgAALIAQQh4CAgAAgAxsPCwALvQECAX8BfiOAgICAAEEQayIBJICAgIAAIAFBADYCCCABIAA2AgQCQAJAAkAgAUEEakECEMmBgIAAIgIQhICAgABCgICAgHCDQoCAgIAgUg0AIAFBADsBDiACEISAgIAAQoCAgIBwg0KAgICAIFINASACIAFBDmpBAhDfgICAACABLwEOQYAGRw0CIAFBEGokgICAgAAPC0KDgICAgIIBELWAgIAAAAsQzIGAgAAAC0KDgICAgPoBELWAgIAAAAslACAAIAGtQiCGQgSEIAAQhICAgABCgICAgHCDQgSEEIuAgIAACwsAIAAQpYCAgAAaC4oBAgF/AX4jgICAgABBMGsiAiSAgICAACACQSBqQZyFwIAAQQ8Q0ICAgAACQAJAIAIoAiANACACIAIpAyg3AwggAiABrUIghkIEhDcDGCACIACtQiCGQgSENwMQIAJBIGogAkEIahDUgICAACACKAIgRQ0BCwALIAIpAyghAyACQTBqJICAgIAAIAMLDwAgACABEKOAgIAAQgFRC2sCAX8CfiOAgICAAEEQayICJICAgIAAIAJBBGoQwoCAgAACQCACKAIEQQFHDQAgAjUCDCEDIAI1AgghBCAAIAEQtoCAgABCASAEQiCGQgSEIANCIIZCBIQQiICAgAAaCyACQRBqJICAgIAAC4sBAgF/AX4jgICAgABBEGsiAiSAgICAABCxgICAAAJAAkACQEEBIAEQuoCAgAAiA0IBELeAgIAARQ0AIAIgA0IBEIaAgIAAELuAgIAAIAIoAgBBAUcNAQALIABCADcDAAwBCyACKQMIIQMgAEIBNwMAIAAgAzcDCCABELyAgIAACyACQRBqJICAgIAAC5sBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIABBAXFFDQAgAkHYhMCAAEEEENCAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ0oCAgAAMAQsgAkHQhMCAAEEIENCAgIAAIAIoAgANASACIAIpAwgQ0YCAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsjAAJAIAFC/wGDQsgAUQ0AIABCATcDAA8LIAAgARDggICAAAtrAgF/An4jgICAgABBEGsiASSAgICAACABQQRqEMKAgIAAAkAgASgCBEEBRw0AIAE1AgwhAiABNQIIIQNBASAAELqAgIAAQgEgA0IghkIEhCACQiCGQgSEEIiAgIAAGgsgAUEQaiSAgICAAAtJAgF/AX4QsYCAgAACQAJAQQAgABC6gICAACIBQgIQt4CAgABFDQAgAUICEIaAgIAAIgFC/wGDQs0AUQ0BAAsQvoCAgAAACyABCwkAEOWAgIAAAAtNAgF/AX4QsYCAgABBACEAAkBBABDAgICAACIBQgIQt4CAgABFDQBBASEAAkACQCABQgIQhoCAgACnQf8BcQ4CAQIACwALQQAhAAsgAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFB0ovAgABBBhDQgICAACABKAIADQMgASABKQMIENGAgIAADAILIAFB2IvAgABBCBDQgICAACABKAIADQIgASABKQMIENGAgIAADAELIAFB4IvAgABBChDQgICAACABKAIADQEgASABKQMIENGAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILawIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahDCgICAAAJAIAEoAgRBAUcNACABNQIMIQIgATUCCCEDQQEgABCugICAAEIBIANCIIZCBIQgAkIghkIEhBCIgICAABoLIAFBEGokgICAgAALDAAgAEECENaBgIAAC2sCAX8CfiOAgICAAEEQayICJICAgIAAIAJBBGoQwoCAgAACQCACKAIEQQFHDQAgAjUCDCEDIAI1AgghBCAAIAEQxICAgABCASAEQiCGQgSEIANCIIZCBIQQiICAgAAaCyACQRBqJICAgIAAC/oBAgF/An4jgICAgABBMGsiAiSAgICAACACQSBqQcCCwIAAQQkQ0ICAgAACQAJAIAIoAiANACACKQMoIQMCQAJAIAFBAXFFDQAgAkEgakG/gcCAAEEIENCAgIAAIAIoAiANAiACQSBqIAIpAygQ0YCAgAAMAQsgAkEgakG4gcCAAEEHENCAgIAAIAIoAiANASACQSBqIAIpAygQ0YCAgAALIAIpAyghBCACKQMgpw0AIAIgBDcDECACIAM3AwggAiAArUIghkIEhDcDGCACQSBqIAJBCGoQ1ICAgAAgAigCIEUNAQsACyACKQMoIQMgAkEwaiSAgICAACADCw8AEMaAgIAAEImAgIAAGgtHAgF/AX4jgICAgABBEGsiACSAgICAABCxgICAACAAEMiAgIAAIAApAwghASAAKQMAQYsIEMmAgIAAIABBEGokgICAgAAgAQtsAgF/AX4jgICAgABBEGsiACSAgICAACAAEMiAgIAAIAApAwghASAAKQMAQYsIEMmAgIAAAkAgARDGgICAABDKgICAAA0AQoOAgIDggAEQtYCAgAAACyABEImAgIAAGiAAQRBqJICAgIAAIAELEAAQsYCAgAAgABDOgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8ELWAgIAAAAsNACAAIAEQnoCAgABQC0IBAX8jgICAgABBEGsiACSAgICAACAAEMyAgIAAAkAgACkDAFANAEKDgICAwIEBELWAgIAAAAsgAEEQaiSAgICAAAtTAQJ+ELGAgIAAQgAhAQJAAkBBARDNgICAACICQgAQt4CAgABFDQAgAkIAEIaAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFB5YrAgABBDBDQgICAACABKAIADQIgASABKQMIENGAgIAADAELIAFB4IrAgABBBRDQgICAACABKAIADQEgASABKQMIENGAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQzYCAgAAiAkICELeAgIAARQ0AIAJCAhCGgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALYAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEH/gsCAAEEHENCAgIAAAkACQCAAKAIADQAgACAAKQMIENGAgIAAIAAoAgBBAUcNAQsACyAAKQMIIQEgAEEQaiSAgICAACABC1ECAX8BfiOAgICAAEEQayIDJICAgIAAIAMgASACENOBgIAAQgEhBAJAIAMoAgANACAAIAMpAwg3AwhCACEECyAAIAQ3AwAgA0EQaiSAgICAAAtEAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABNwMIIAJBCGpBARCqgICAACEBIABCADcDACAAIAE3AwggAkEQaiSAgICAAAtIAQF/I4CAgIAAQRBrIgMkgICAgAAgAyACNwMIIAMgATcDACADQQIQqoCAgAAhAiAAQgA3AwAgACACNwMIIANBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEGYgcCAAEEGENCAgIAAAkACQCAAKAIADQAgACAAKQMIENGAgIAAIAAoAgBBAUcNAQsACyAAKQMIIQEgAEEQaiSAgICAACABC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCqgICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtnAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQCAAKAIAQQFxDQBCAiECDAELIAEgACkDECAAKQMYIAApAyAQ1oCAgAAgASgCAEEBcQ0BIAEpAwghAgsgAUEQaiSAgICAACACDwsAC4UBAQF/I4CAgIAAQRBrIgQkgICAgAAgBCABIAIQ2YCAgABCASECAkAgBCgCAA0AIAQpAwghASAEIAMQ2ICAgAAgBCgCAA0AIAQgBCkDCDcDCCAEIAE3AwAgAEHsgcCAAEECIARBAhDagICAADcDCEIAIQILIAAgAjcDACAEQRBqJICAgIAAC1YBAX8jgICAgABBEGsiAiSAgICAAAJAAkACQCAAp0EBcQ0AQgIhAAwBCyACIAEQ2ICAgAAgAigCAEEBcQ0BIAIpAwghAAsgAkEQaiSAgICAACAADwsACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCSgICAACEBCyAAQgA3AwAgACABNwMIC1sAAkACQCAB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KIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhDcDCCAAKQMAIQEgACABIAEQhICAgABCgICAgHCDQgSEIAJBCGpBCBDNgYCAADcDACACQRBqJICAgIAAIAALDAAgAEECEOiAgIAACwkAENKBgIAAAAtYAwF/AX4Bf0EAIQECQAJAQQAQnIGAgAAiAkICELeAgIAARQ0AIAJCAhCGgICAACICQv8Bg0IEUg0BIAJCIIinIQNBASEBCyAAIAM2AgQgACABNgIADwsAC04CAX8BfiOAgICAAEEQayIAJICAgIAAIABBARDogICAAAJAIAAoAgANAEKDgICAoPcCELWAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQtNAQJ+QgAhAgJAAkAgARCcgYCAACIDQgIQt4CAgABFDQAgA0ICEIaAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDAA8LAAsOABCxgICAABDngICAAAt0AgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQEEBIAAQroCAgABCARC3gICAAA0AEOuAgIAAIQIMAQsgABDBgICAACABIAAQ7ICAgAAgASgCAEUNASABKQMIIQILIAFBEGokgICAgAAgAg8LEL6AgIAAAAtqAgF/An4jgICAgABBEGsiACSAgICAAEIAIQECQAJAQQAgABCugICAACICQgIQt4CAgABFDQAgACACQgIQhoCAgAAQ94CAgAAgACgCAEEBRg0BIAApAwghAQsgAEEQaiSAgICAACABDwsAC4UBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQEEBIAEQroCAgAAiA0IBELeAgIAARQ0AIAIgA0IBEIaAgIAAEPeAgIAAIAIoAgBBAUcNAQALIABCADcDAAwBCyACKQMIIQMgAEIBNwMAIAAgAzcDCCABEMGAgIAACyACQRBqJICAgIAAC0wCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQ7oCAgAACQCAAKAIADQBCg4CAgNCDAxC1gICAAAALIAApAwghASAAQRBqJICAgIAAIAELTwECfkIAIQECQAJAQQIgABCugICAACICQgIQt4CAgABFDQAgAkICEIaAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAsdAAJAEPCAgIAADQAPC0KDgICA4IQDELWAgIAAAAtFAgF/AX5BACEAAkAQ04CAgAAiAUICELeAgIAARQ0AQQEhAAJAAkAgAUICEIaAgIAAp0H/AXEOAgECAAsAC0EAIQALIAALuwICAn8FfiOAgICAAEGQAWsiBCSAgICAAAJAAkACQCADQn9XDQAgBEHAAGogACABEPKAgIAAAkAgBCgCQEEBcUUNACAEIARB0ABqQcAAEN6BgIAAIgVBwABqIAUQ84CAgAAgBSkDQCEGIAUpA0ghByAFEPSAgIAANwMwIAcgBSkDCCIIhSAIIAggB30gBSkDACIJIAZUrX0iCoWDQgBTDQMgAkIAIAkgBn0gCkIAUxtWIAMgCkIAIApCAFUbIgpWIAMgClEbDQIgByADhUJ/hSAHIAcgA3wgBiACfCIDIAZUrXwiBoWDQgBTDQMgBSADNwMgIAUgBjcDKCAAIAEgBRD1gICAAAsgBEGQAWokgICAgAAPC0KDgICAkIYDELWAgIAAAAtCg4CAgICGAxC1gICAAAALEOWAgIAAAAvsAgQBfwF+AX8FfiOAgICAAEHQAGsiAySAgICAAAJAAkACQCACIAEQxICAgAAiBEIBELeAgIAARQ0AIARCARCGgICAACEEQQAhBQJAA0AgBUEYRg0BIANBCGogBWpCAjcDACAFQQhqIQUMAAsLAkAgBEL/AYNCzABSDQAgBEGogsCAAEEDIANBCGpBAxD5gICAACADQSBqIAMpAwgQ+ICAgAAgAygCIEEBcQ0AIAMpAzghBCADKQMwIQYgAykDQCEHIANBIGogAykDEBD6gICAACADKAIgQQFGDQAgAykDOCEIIAMpAzAhCSADQSBqIAMpAxgQ94CAgAAgAygCIEEBRw0CCwALIABCADcDCCAAQgA3AwAMAQsgAykDKCEKIAAgCTcDMCAAIAY3AxAgAEIANwMIIABCATcDACAAIAo3A0AgACAHNwMgIAAgCDcDOCAAIAQ3AxggAiABEMOAgIAACyADQdAAaiSAgICAAAvzAQIBfwR+I4CAgIAAQTBrIgIkgICAgAACQAJAEPSAgIAAIgMgASkDMCIEVA0AIAJBADYCLCACQRBqIAMgBH1CACABKQMAIAEpAwggAkEsahDYgYCAAAJAIAIoAiwNACABKQMQIgNQDQAgAiACKQMQIAIpAxggA0IAENuBgIAAIAEpAygiBCACKQMIIgOFIAQgBCADfSABKQMgIgUgAikDACIGVK19IgOFg0IAWQ0CCxDlgICAAAALQoOAgICghgMQtYCAgAAACyAAIANCACADQgBVGzcDCCAAQgAgBSAGfSADQgBTGzcDACACQTBqJICAgIAACz0CAX4BfwJAEKCAgIAAIgCnQf8BcSIBQQZGDQACQCABQcAARw0AIAAQk4CAgAAPCxDlgICAAAALIABCCIgL3AECAX8DfiOAgICAAEEwayIDJICAgIAAIAEgABDEgICAACEEIANBIGogAikDACACKQMIIAIpAxAQ1oCAgAACQAJAIAMoAiANACADKQMoIQUgA0EgaiACKQMgIAIpAygQ2YCAgAAgAygCIA0AIAMpAyghBiADQSBqIAIpAzAQ2ICAgAAgAygCIEEBRw0BCwALIAMgAykDKDcDGCADIAY3AxAgAyAFNwMIIARBqILAgABBAyADQQhqQQMQ2oCAgABCARCDgICAABogASAAEMOAgIAAIANBMGokgICAgAAL4wECAn8CfiOAgICAAEGQAWsiBCSAgICAAAJAAkAgA0J/Vw0AIARBwABqIAAgARDygICAAAJAIAQoAkBBAXFFDQAgBCAEQdAAakHAABDegYCAACIFQcAAaiAFEPOAgIAAIAUpA0giBiADhSAGIAYgA30gBSkDQCIHIAJUrX0iA4WDQgBTDQIgBSADQgAgA0IAVRs3AyggBUIAIAcgAn0gA0IAUxs3AyAgBRD0gICAADcDMCAAIAEgBRD1gICAAAsgBEGQAWokgICAgAAPC0KDgICAkIYDELWAgIAAAAsQ5YCAgAAAC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQk4CAgAAhAQsgACADNwMAIAAgATcDCAviAQICfwN+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCACEEQgEhBQJAIAFC/wGDQswAUg0AIAFB7IHAgABBAiACQQIQ+YCAgAAgAkEQaiACKQMAEPqAgIAAIAIoAhBBAUYNACACKQMoIQEgAikDICEGIAJBEGogAikDCBD3gICAACACKAIQDQAgAikDGCEEIAAgBjcDECAAIAQ3AyAgACABNwMYQgAhBUIAIQQLIAAgBTcDACAAIAQ3AwggAkEwaiSAgICAAAsxAAJAIAIgBEYNAAALIAAgAa1CIIZCBIQgA61CIIZCBIQgAq1CIIZCBIQQnYCAgAAaC30CAX8BfgJAAkACQAJAIAGnQf8BcSICQcUARg0AIAJBC0cNAiAAIAFCP4c3AxggACABQgiHNwMQDAELIAEQl4CAgAAhAyABEJiAgIAAIQEgACADNwMYIAAgATcDEAtCACEBDAELIABCg5CAgIABNwMIQgEhAQsgACABNwMAC/oBAgF/A34jgICAgABBIGsiASSAgICAAEHJgsCAAEEOEPyAgIAAEP2AgIAAIQIgABDVgICAACEDAkACQAJAAkAgAC0ANEEBRw0AIAFBCGpBv4HAgABBCBDQgICAACABKAIIDQIgAUEIaiABKQMQENGAgIAADAELIAFBCGpBuIHAgABBBxDQgICAACABKAIIDQEgAUEIaiABKQMQENGAgIAACyABKQMQIQQgASkDCFANAQsACyABIAQ3AxAgASADNwMIIAEgADUCMEIghkIEhDcDGCACQeCCwIAAQQMgAUEIakEDENqAgIAAEI2AgIAAGiABQSBqJICAgIAAC0UCAX8BfiOAgICAAEEQayICJICAgIAAIAIgACABENOBgIAAAkAgAigCAEEBRw0AAAsgAikDCCEDIAJBEGokgICAgAAgAwtjAwF/AX4BfyOAgICAAEEQayIBJICAgIAAIAEgADcDAEICIQJBASEDAkADQCADRQ0BIANBf2ohAyAAIQIMAAsLIAEgAjcDCCABQQhqQQEQqoCAgAAhACABQRBqJICAgIAAIAAL0gECAX8EfiOAgICAAEHgAGsiAySAgICAABCxgICAACADIAEgAhDygICAAAJAAkACQCADKAIAQQFxDQBC////////////ACEEQn8hBQwBCyADKQMQIQYgAykDGCEEIANB0ABqIANBEGoQ84CAgAAgBCADKQNYIgWFIAQgBCAFfSAGIAMpA1AiB1StfSIFhYNCf1cNASAFQgAgBUIAVRshBEIAIAYgB30gBUIAUxshBQsgACAFNwMAIAAgBDcDCCADQeAAaiSAgICAAA8LEOWAgIAAAAuiAwIBfwV+I4CAgIAAQcAAayIGJICAgIAAEO+AgIAAIAZBMGoQ3YCAgAAgBikDOCEHIAYpAzAhCAJAAkACQAJAAkAgBRDqgICAACIJUA0AQQIgBhCugICAAEICELeAgIAARQ0CIAZBADYCLCAGQRBqIAEgAiAJQgAgBkEsahDYgYCAACAGKAIsDQMgBikDECIJQo/OAHwiCkKenAFWIAYpAxgiCyAKIAlUrXwiCkIAUiAKUBsNAQsgBkEwaiABIAIgCCAHEICBgIAAIAYpAzAiCCEBIAYpAzgiByECDAMLIAYgCSALQpDOAEIAENuBgIAAIAIgBikDCCIJhSACIAIgCX0gASAGKQMAIglUrX0iCoWDQgBTDQEgBkEwaiABIAl9IAogCCAHEICBgIAAIAYpAzghByAGKQMwIQgMAgtCg4CAgNCDAxC1gICAAAALEOWAgIAAAAsCQCAIIANUIAcgBFMgByAEURtFDQBCg4CAgMD3AhC1gICAAAALIAAgCDcDECAAIAE3AwAgACAHNwMYIAAgAjcDCCAGQcAAaiSAgICAAAutAQEBfyOAgICAAEEwayIFJICAgIAAAkACQCADIASEUA0AAkAgASACQoCAgICAgICAgH+FhEIAUg0AIAMgBINCf1ENAQsgBUEgaiABIAIgAyAEENuBgIAAIAVBADYCHCAFIAUpAyAgBSkDKCADIAQgBUEcahDYgYCAACAFKAIcRQ0BCxDlgICAAAALIAUpAwghBCAAIAUpAwA3AwAgACAENwMIIAVBMGokgICAgAALvQQDAn8CfgN/I4CAgIAAQdABayIDJICAgIAAAkACQAJAAkACQCAAEKaAgIAAQf8BcSIEQQJGDQAgAUL/AYNCBFINAAJAAkAgAkICUg0AQgAhBQwBCyADIAIQ+ICAgAAgAygCAEEBcQ0BIAMpAxghAiADKQMQIQYgAykDICEAQgEhBQsQxYCAgAAQsYCAgAAgAyAEIAFCIIinIgcQ8oCAgAAgBachCAJAAkAgAygCACIJQQFxRQ0AIAhBAXFFDQAgAykDECAGhSADKQMYIAKFhEIAUg0BIAMpAyAgAFINAQwGCyAJIAhyQQFxRQ0FCyAIQQFxRQ0BIAJCAFMNAiAAQgBRDQICQAJAIAlBAXFFDQAgA0HQAGogA0EQaiIIQcAAEN6BgIAAGiADQfAAaiAIEPOAgIAAEPSAgIAAIQEMAQsQ9ICAgAAhASADQgA3A3ggA0IANwNwCyADIAY3A1AgAyAANwNgIAMgATcDgAEgAyACNwNYIAQgByADQdAAahD1gICAACADIAI3A6gBIAMgBjcDoAEgA0IANwOYASADIAU3A5ABIAMgBzYCwAEgAyAEOgDEASADIAA3A7ABIANBkAFqEPuAgIAADAMLAAsgByAEEMSAgIAAQgEQjoCAgAAaIANCADcDmAEgA0IANwOQASADIAc2AsABIAMgBDoAxAEgA0GQAWoQ+4CAgAAMAQtCg4CAgLCGAxC1gICAAAALIANB0AFqJICAgIAAQgIPC0KDgICAwIYDELWAgIAAAAuwAQECfyOAgICAAEGAAWsiAiSAgICAAAJAIAAQpoCAgABB/wFxIgNBAkYNACABQv8Bg0IEUg0AELGAgIAAIAJBMGogAyABQiCIpxDygICAAAJAAkAgAigCMEEBcQ0AQgAhAQwBCyACIAIpA0g3AxggAiACKQNANwMQIAIgAikDUDcDIEIBIQELIAIgATcDACACQgA3AwggAhDVgICAACEBIAJBgAFqJICAgIAAIAEPCwALoQEBAn8jgICAgABB8ABrIgIkgICAgAACQCAAEKaAgIAAQf8BcSIDQQJGDQAgAUL/AYNCBFINABCxgICAACACIAMgAUIgiKcQ8oCAgABCACEBQgAhAAJAIAIoAgBBAXFFDQAgAkHQAGpBEGogAkEQahDzgICAACACKQNoIQAgAikDYCEBCyABIAAQqYCAgAAhASACQfAAaiSAgICAACABDwsAC2cBAn8jgICAgABBEGsiAiSAgICAAAJAIAAQpoCAgABB/wFxIgNBAkYNACABQv8Bg0IEUg0AIAIgAyABQiCIpxD+gICAACACKQMAIAIpAwgQqYCAgAAhASACQRBqJICAgIAAIAEPCwAL1AECAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABD3gICAAAJAAkACQCABKAIAQQFGDQAgASkDCCEAEMWAgIAAELGAgIAAIABCkc4AWg0BEOuAgIAAIABRDQJBACABIABCAhCtgICAAEGkgMCAAEETEPyAgIAAEP2AgIAAIQIgASAAEK+AgIAANwMAIAJBwIDAgABBASABQQEQ2oCAgAAQjYCAgAAaIAFBEGokgICAgABCAg8LAAtCg4CAgMCDAxC1gICAAAALQoOAgIDggwMQtYCAgAAAC/ICBAF/AX4DfwF+I4CAgIAAQSBrIgIkgICAgAACQAJAAkACQAJAIABC/wGDQgRSDQACQAJAIAFCAlINAEIAIQMMAQsgAkEQaiABEPeAgIAAIAIoAhBBAUYNASACKQMYIQFCASEDCxDFgICAABCxgICAACACIABCIIinIgQQ7ICAgAAgA6chBQJAAkAgAigCACIGQQFHDQAgBUUNACACKQMIIAFSDQEMBgsgBiAFckEBcUUNBQsgBUUNASABQpHOAFoNAkEBIAQgAUIBEK2AgIAAIAQQwYCAgAAMAwsAC0EBIAQQroCAgABCARCOgICAABoMAQtCg4CAgMCDAxC1gICAAAALQciAwIAAQQsQ/ICAgAAQ/YCAgAAhByACIAMgARDXgICAADcDGCACIABChICAgHCDNwMQIAdB1IDAgABBAiACQRBqQQIQ2oCAgAAQjYCAgAAaIAJBIGokgICAgABCAg8LQoOAgIDggwMQtYCAgAAAC8QBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkAgAEL/AYNCzQBSDQAQxYCAgAAQsYCAgAAgARDugICAAAJAIAEoAgBBAUcNACABKQMIIAAQyoCAgAANAgtBAiABEK6AgIAAIABCAhCDgICAABpB5IDAgABBFxD8gICAABD9gICAACECIAEgADcDACACQZCBwIAAQQEgAUEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDggwMQtYCAgAAACxQAELGAgIAAEOuAgIAAEK+AgIAAC1cBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRRDQAACxCxgICAACABIABCIIinEOyAgIAAIAEpAwAgASkDCBDXgICAACEAIAFBEGokgICAgAAgAAspAAJAIABC/wGDQgRRDQAACxCxgICAACAAQiCIpxDqgICAABCvgICAAAsOABCxgICAABDtgICAAAvDAQICfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AEMWAgIAAELGAgIAAEPCAgIAAIAJzQQFxRQ0BENOAgIAAIAKtIgBCAhCDgICAABpBnoHAgABBChD8gICAABD9gICAACEDIAEgADcDCCADQbCBwIAAQQEgAUEIakEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDwhAMQtYCAgAAACw8AELGAgIAAEPCAgIAArQuGBQcBfwN+AX8CfgF/AX4CfyOAgICAAEGgAWsiASSAgICAACABIAAQj4GAgAACQAJAAkACQCABKAIAQQFxDQAgASkDGCEAIAEpAyghAiABKQMgIQMgASkDECEEIAEoAlAhBRCxgICAACAAQn9XDQEQj4CAgAAaIAEgBCAAIAMgAiAFEP+AgIAAIAEpAwgiAiABKQMYIgOFIAIgAiADfSABKQMAIgQgASkDECIGVK19IgCFg0IAUw0CAkACQCAEIAZ9IgdCAFIgAEIAVSAAUBsNABCPgICAACEADAELIAFBIGohCEH4gsCAAEEHEJCBgIAAIQkgASAANwMIIAEgBzcDACABIAk3AxAgAUICNwOAASABIQpBASELAkADQCALQQFxRQ0BIApBEGopAwAhACABQegAaiAKKQMAIAopAwgQ2YCAgAAgASgCaEEBRg0DIAEgASkDcDcDmAEgASAANwOQASABQeSIwIAAQQIgAUGQAWpBAhDagICAADcDgAFBACELIAghCgwACwsgAUGAAWpBARCqgICAACEACyABQRBqQQEgBRD+gICAACABQZABaiABKQMQIAEpAxgQ2YCAgAAgASgCkAENACABKQOYASEHIAFBkAFqQgBCABDZgICAACABKAKQAUEBRg0AIAEgASkDmAE3A4gBIAEgBzcDgAFBrIjAgABBAiABQYABakECENqAgIAAIQcgAUGQAWogBCACIAYgAxCRgYCAACABKAKQAUEBRw0DCwALQoOAgICA9wIQtYCAgAAACxDlgICAAAALIAEgASkDmAE3A3ggASAANwNwIAEgBzcDaCABQegAakEDEKqAgIAAIQAgAUGgAWokgICAgAAgAAuGAwICfwl+I4CAgIAAQeAAayICJICAgIAAQQAhAwJAA0AgA0E4Rg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgAhBEIBIQUCQCABQv8Bg0LMAFINACABQeSHwIAAQQcgAkEIakEHEPmAgIAAIAJBwABqIAIpAwgQ+oCAgAAgAigCQEEBRg0AIAIpAxAiAUL/AYNCyABSDQAgAikDGCIGQv8Bg0IEUg0A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CyAEQRBqIAZqQgI3AwAgBkEIaiEGDAALCxEAQoSAgIAQQgQQooGAgAAbCwgAEMaAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQyICAgAAgACkDACAAKQMIEJiBgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQzICAgAAgACkDACAAKQMIEJiBgIAAIQEgAEEQaiSAgICAACABCzwBAX4CQCAAQv8Bg0LNAFENAAALELGAgIAAEMeAgIAAIQEQy4CAgAAgABCngYCAACABIAAQroGAgABCAgthAgF/AX4jgICAgABBEGsiAiSAgICAAEGRicCAAEEVEPyAgIAAEP2AgIAAIQMgAiAANwMIIAIgATcDACADQbiJwIAAQQIgAkECENqAgIAAEI2AgIAAGiACQRBqJICAgIAAC/wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AELGAgIAAEMeAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahDMgICAACACKQMQIQEgAikDCEGJCBDJgICAACABIAAQyoCAgABFDQMQsIGAgABB/InAgABBHBD8gICAABD9gICAACEAIAIgAzcDECACIAE3AwggAEG0isCAAEECIAJBCGpBAhDagICAABCNgICAABoMAQsQsYGAgAAgAUIgiKdJDQNBASAAQgAQsoGAgABBARDNgICAAEIAIAFChICAgHCDIgEgARCIgICAABpByInAgABBFhD8gICAABD9gICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARB5InAgABBAyACQQhqQQMQ2oCAgAAQjYCAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDwgAEQtYCAgAAAC0KDgICAgIEBELWAgIAAAAsTAEEBEM2AgIAAQgAQjoCAgAAaCzMBAn4QoYCAgAAhAAJAEKKAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LEOWAgIAAAAsVACAAEM2AgIAAIAEgAhCDgICAABoLiAECAX8CfiOAgICAAEEQayIAJICAgIAAELGAgIAAIAAQzICAgAAgACkDCCEBIAApAwBBiQgQyYCAgAAgARCJgICAABogABDOgICAAAJAIAAoAgANABC+gICAAAALIAApAwghAhCwgYCAACABEKeBgIAAIAIgARCugYCAACAAQRBqJICAgIAAQgILhAECAX8CfiOAgICAAEEQayIAJICAgIAAELGAgIAAEMeAgIAAIQEQy4CAgABBABDNgICAAEICEI6AgIAAGkHEisCAAEETEPyAgIAAEP2AgIAAIQIgACABNwMIIAJB2IrAgABBASAAQQhqQQEQ2oCAgAAQjYCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxC2gYCAAEICDwsACxsAIACtQiCGQgSEIAGtQiCGQgSEEKSAgIAAGgu8BAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQuIGAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARC4gYCAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGBDFgICAABCxgICAAAJAAkACQBC/gICAAA0AELGBgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AELWAgIAAAAtCg4CAgMD/ABC1gICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEKWBgIAADAELQQEQwICAgABCAhCOgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEKaBgIAADAELQQIQwICAgABCAhCOgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEGMi8CAAEEPEPyAgIAAEP2AgIAAIQAgAkEoahC5gYCAACEBIAIgAkE0ahC5gYCAADcDSCACIAE3A0AgAEGwi8CAAEECIAJBwABqQQIQ2oCAgAAQjYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABENSBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELyBgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgugAQICfwF+I4CAgIAAQcAAayIAJICAgIAAELGAgIAAIABBCGoQu4GAgAAgAEEUaiIBEMKAgIAAIABBMGogAEEIahC8gYCAAAJAAkAgACgCMA0AIAApAzghAiAAQTBqIAEQvIGAgAAgACgCMEEBRw0BCwALIAAgACkDODcDKCAAIAI3AyAgAEEgakECEKqAgIAAIQIgAEHAAGokgICAgAAgAgsMACAAQQEQ1oGAgAALMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ1YGAgAAPCyAAQgA3AwAgAEICNwMIC4gBAQF/I4CAgIAAQRBrIgAkgICAgAAQxYCAgAAQsYCAgAACQBC/gICAAEUNAEKDgICA4P8AELWAgIAAAAtBABDAgICAAEIBQgIQg4CAgAAaQcCLwIAAQRIQ/ICAgAAQ/YCAgABBBEEAIABBCGpBABDagICAABCNgICAABogAEEQaiSAgICAAEICCwkAEL+AgIAArQuAAQIBfwF+I4CAgIAAQSBrIgAkgICAgAAQsYCAgAAgAEEQakIBENiAgIAAAkACQCAAKAIQDQAgACkDGCEBIABBEGpCARDYgICAACAAKAIQQQFHDQELAAsgACAAKQMYNwMIIAAgATcDACAAQQIQqoCAgAAhASAAQSBqJICAgIAAIAELCAAQvYCAgAALUQEBfyOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCBFENAAALIAEgAEIgiKcQuYCAgAAgASkDACABKQMIEJiBgIAAIQAgAUEQaiSAgICAACAAC/8BBAF/AX4BfwF+I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0IEUg0AAkACQCABQgJSDQBCACEBDAELIAIgARC7gICAACACKAIAQQFGDQEgAikDCCEDQgEhAQsQxYCAgAAQsYCAgABBASAAQiCIpyIEELqAgIAAIQUCQAJAIAFQDQAgBSADQgEQg4CAgAAaIAQQvICAgAAMAQsgBUIBEI6AgIAAGgtCjvKqvPDWqusAEP2AgIAAIQUgAiABIAMQmIGAgAA3AwggAiAAQoSAgIBwgzcDACAFQeSEwIAAQQIgAkECENqAgIAAEI2AgIAAGiACQRBqJICAgIAAQgIPCwALZwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEJqBgIAAAkAgASkDACIAQgJSDQAACyABKQMIIQIQxYCAgAAQsYCAgAAQvYCAgAAQjICAgAAgACACEKiBgIAAIAFBEGokgICAgABCAgt+AwF/AX4BfyOAgICAAEEgayIBJICAgIAAIAEgABDFgYCAAAJAIAEoAgBBAUYNACABKQMIIQIgASgCGCEDELGAgIAAIAEgAxC5gICAAEIAIQACQCABKAIAQQFHDQAgASkDCCACEMqAgIAArSEACyABQSBqJICAgIAAIAAPCwAL4gECAn8CfiOAgICAAEEwayICJICAgIAAQQAhAwJAA0AgA0EYRg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFB1IPAgABBAyACQQhqQQMQ+YCAgAAgAkEgaiACKQMIEPeAgIAAIAIoAiANACACKQMoIQEgAkEgaiACKQMQELuAgIAAIAIoAiANACACKQMYIgVC/wGDQgRSDQAgAikDKCEEIAAgATcDECAAIAQ3AwggACAFQiCIPgIYQgAhBAsgACAENwMAIAJBMGokgICAgAALVgEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCBFINACACIAEQu4CAgAAgAigCAEEBRg0AELGAgIAAQgAQr4CAgAAhACACQRBqJICAgIAAIAAPCwALmA8EAn8DfgF/AX4jgICAgABBsAFrIgYkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgBkEgaiABEMWBgIAAIAYoAiBBAUYNACAGKAI4IQcgBikDMCEIIAYpAyghASAGQSBqIAIQu4CAgAAgBigCIEEBRg0AIANC/wGDQsgAUg0AIAYpAyghCSAGIAM3AxggBEL/AYNCyABSDQAgBkEgaiAFEPqAgIAAIAYoAiBBAUYNACAGKQM4IQIgBikDMCEEELGAgIAAEIyAgIAAIQMQvYCAgAAhBSAAEImAgIAAGgJAIAQgAoRCAFENACAFEKOBgIAAIAAgAyAEIAIQqICAgAALIAZBIGogBxC5gICAAAJAIAYoAiBBAUcNACAGKQMoIAEQyoCAgABFDQAgBikDGCEAIAZBgAFqIAgQ2ICAgAAgBigCgAFBAUYNASAGKQOIASECIAYgATcDKCAGIAI3AyAgBiAHrUIghkIEhCIKNwMwQdSDwIAAQQMgBkEgakEDENqAgIAAIQEgBiAANwOgASAGIAk3A5gBIAYgAzcDkAEgBiABNwOIASAGIAM3A4ABQQAhCwNAAkAgC0EoRw0AQQAhCwJAA0AgC0EoRg0BIAZBIGogC2ogBkGAAWogC2opAwA3AwAgC0EIaiELDAALCyAFQo7uprWMBSAGQSBqQQUQqoCAgAAQq4CAgAAgBkEANgKEASAGIAZBGGo2AoABIAZBgAFqEMiBgIAAIQMCQCAGQYABakEIEMmBgIAAIgAQhICAgABCgICAgHCDQoCAgICAAVINAEIAIQEgBkIANwMgAkAgABCEgICAAEKAgICAcINCgICAgIABUg0AIAAgBkEgakEIEN+AgIAAIAYpAyAiAEI4hiAAQoD+A4NCKIaEIABCgID8B4NCGIYgAEKAgID4D4NCCIaEhCAAQgiIQoCAgPgPgyAAQhiIQoCA/AeDhCAAQiiIQoD+A4MgAEI4iISEhCEAAkACQCAGKAKAASkDACAGKAKEARDKgYCAAA0ADAELIAZBgAFqEMiBgIAAIQQgBiAGQYABaiAGKAKAASkDACAGKAKEARDKgYCAABDJgYCAACIMNwM4IAYgBDcDKEIBIQELIAYgADcDSCAGIAM3A0AgBiABNwMwIAYgATcDIAJAQgEgAxDLgYCAACICEJGAgIAAQgJSDQBCACADEMuBgIAAIQILIAZBgAFqEN2AgIAAIAZBADYCFCAGIABCACAGKQOAASAGKQOIASAGQRRqENiBgIAAAkAgBigCFA0AIAYpAwghACAGKQMAIQMQ74CAgAAQooGAgAAhCxDpgICAACEFIAtFDQcgBiADIAAQqYCAgAA3A2AgBiACNwNYQQAhCwNAAkAgC0EQRw0AQQAhCwJAA0AgC0EQRg0BIAZBgAFqIAtqIAZB2ABqIAtqKQMANwMAIAtBCGohCwwACwsgBUKO8rPXDCAGQYABakECEKqAgIAAEKuAgIAADAoLIAZBgAFqIAtqQgI3AwAgC0EIaiELDAALCxDlgICAAAALEMyBgIAAAAtCg4CAgICCARC1gICAAAALIAZBIGogC2pCAjcDACALQQhqIQsMAAsLQoOAgICg+gEQtYCAgAAACwALIAUQjICAgAAgAiADIAAQqICAgAALQQAgByADIAAQ8YCAgABBASAHIAMgABD2gICAAAJAIAZBIGoQ4YCAgABFDQACQCABp0UNACAGEIeAgIAANwNYIAZB2ABqIAgQ44CAgAAhCyAGIAdBGHQgB0GA/gNxQQh0ciAHQQh2QYD+A3EgB0EYdnJyNgKAASALKQMAIQEgCyABIAEQhICAgABCgICAgHCDQgSEIAZBgAFqQQQQzYGAgAAiATcDACAGIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQ3A4gBIAYgAEI4hiAAQoD+A4NCKIaEIABCgID8B4NCGIYgAEKAgID4D4NCCIaEhCAAQgiIQoCAgPgPgyAAQhiIQoCA/AeDhCAAQiiIQoD+A4MgAEI4iISEhDcDgAEgCyABIAEQhICAgABCgICAgHCDQgSEIAZBgAFqQRAQzYGAgAA3AwAgCyAEEOKAgIAAKQMAIAwQhYCAgAAhARC9gICAACEEEIyAgIAAIQVBxITAgABBDBD8gICAACEIIAYgATcDeCAGQgQ3A3AgBiAJNwNoIAYgAjcDYCAGIAU3A1hBACELA0ACQCALQShHDQBBACELAkADQCALQShGDQEgBkGAAWogC2ogBkHYAGogC2opAwA3AwAgC0EIaiELDAALCyAEIAggBkGAAWpBBRCqgICAABCrgICAAAwDCyAGQYABaiALakICNwMAIAtBCGohCwwACwsQvoCAgAAAC0G0hsCAAEEMEPyAgIAAEP2AgIAAIQEgAyAAEKmAgIAAIQAgBiACNwOYASAGIAo3A5ABIAYgCTcDiAEgBiAANwOAASABQcyGwIAAQQQgBkGAAWpBBBDagICAABCNgICAABogBkGwAWokgICAgABCAguBAgMBfwF+An8jgICAgABBwABrIgEkgICAgAACQAJAIABBIBDJgYCAACICEISAgIAAQoCAgIBwg0KAgICAgARSDQAgAUEgakEYaiIAQgA3AwAgAUEgakEQaiIDQgA3AwAgAUEgakEIaiIEQgA3AwAgAUIANwMgIAIQhICAgABCgICAgHCDQoCAgICABFINASACIAFBIGpBIBDfgICAACABQRhqIAApAwA3AwAgAUEQaiADKQMANwMAIAFBCGogBCkDADcDACABIAEpAyA3AwAgAUEgEJCBgIAAIQIgAUHAAGokgICAgAAgAg8LQoOAgICAggEQtYCAgAAACxDMgYCAAAALdQICfwF+AkACQCAAKAIEIgIgAWoiASACSQ0AIAEgACgCACIDKQMAEISAgIAAQiCIp0sNASADKQMAIAKtQiCGQgSEIAGtQiCGQgSEEIuAgIAAIQQgACABNgIEIAQPCxDlgICAAAALQoOAgICA/QAQtYCAgAAACycBAX8CQCAAEISAgIAAQiCIpyICIAFJDQAgAiABaw8LEOWAgIAAAAtGAQF/AkBBgInAgABB9IjAgAAgAKdBAXEiAhtBCEEMIAIbEJCBgIAAIAEQhYCAgAAQn4CAgAAiAEL/AYNCzQBRDQAACyAACwkAEOWAgIAAAAseACAAIAEgAq1CIIZCBIQgA61CIIZCBIQQm4CAgAALagECfyOAgICAAEEgayIDJICAgIAAIAMgABDFgYCAAAJAIAMoAgBBAUYNACABQv8Bg0LIAFINACACQv8Bg0LNAFINABCxgICAABCMgICAACACEMqAgIAAIQQgA0EgaiSAgICAACAErQ8LAAsvAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxCygICAAA8LAAvLAwcBfwN+AX8BfgF/AX4CfyOAgICAAEEgayIBJICAgIAAAkACQCAAQv8Bg0LLAFINABDFgICAABCxgICAACAAEICAgIAAQiCIIQJCACEDAkADQCADIAJRDQEgACADQiCGQgSEEIGAgIAAIQRBACEFAkADQCAFQRhGDQEgAUEIaiAFakICNwMAIAVBCGohBQwACwtBASEFAkAgBEL/AYNCzABSDQAgBEGEhcCAAEEDIAFBCGpBAxD5gICAACABKQMIIgRC/wGDQgRSDQAgASkDECIGQv8Bg0IEUg0AIAcgBkIgiKcgASkDGCIGQv8Bg0LIAFIiBRshByAIIAYgBRshCCAJIARCIIinIAUbIQkLIANC/////w9RDQMgBQ0DIAEgBzYCFCABIAk2AhAgASAINwMIIAFBCGoQs4CAgAAgASkDCCEEIAEoAhAiBSABKAIUIgoQtoCAgAAgBEIBEIOAgIAAGiAFIAoQuICAgAAgA0IBfCEDDAALC0GrhcCAAEETEPyAgIAAEP2AgIAAIQMgASAANwMIIANB1IXAgABBASABQQhqQQEQ2oCAgAAQjYCAgAAaIAFBIGokgICAgABCAg8LAAsQ5YCAgAAAC2kBAX8jgICAgABBEGsiAySAgICAAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACACQv8Bg0LIAFINACADIAI3AwggAEIgiKcgAUIgiKcgA0EIahCwgICAACEAIANBEGokgICAgAAgAA8LAAsDAAAL2wECAX4EfwJAAkAgAkEJSw0AQgAhAyACIQQgASEFA0ACQCAEDQAgA0IIhkIOhCEDDAMLQQEhBgJAIAUtAAAiB0HfAEYNAAJAIAdBUGpB/wFxQQpJDQACQCAHQb9/akH/AXFBGkkNACAHQZ9/akH/AXFBGUsNBCAHQUVqIQYMAgsgB0FLaiEGDAELIAdBUmohBgsgA0IGhiAGrUL/AYOEIQMgBEF/aiEEIAVBAWohBQwACwsgAa1CIIZCBIQgAq1CIIZCBIQQmoCAgAAhAwsgAEIANwMAIAAgAzcDCAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUH8isCAAEECIAJBAhD5gICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQfyKwIAAQQIgA0ECENqAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC3cCAn8BfiOAgICAAEEQayICJICAgIAAQQAhAwJAAkAgARDAgICAACIEQgIQt4CAgABFDQAgAkEEaiAEQgIQhoCAgAAQ1IGAgABBASEDIAIoAgRBAUYNASAAIAIpAgg3AgQLIAAgAzYCACACQRBqJICAgIAADwsAC1YCAX8BfiOAgICAAEEQayIDJICAgIAAIAAQwICAgAAhBCADIAEgAhDVgYCAAAJAIAMoAgBBAUcNAAALIAQgAykDCEICEIOAgIAAGiADQRBqJICAgIAAC9UDAwF/An4CfyOAgICAAEHgAGsiBiSAgICAAEIAIQdCACEIQQAhCQJAIAEgAoRQDQAgAyAEhFANAEIAIAN9IAMgBEIAUyIJGyEHQgAgAX0gASACQgBTIgobIQhCACAEIANCAFKtfH0gBCAJGyEDIAQgAoUhBAJAAkBCACACIAFCAFKtfH0gAiAKGyICUA0AAkAgA1ANACAGQdAAaiAHIAMgCCACEN+BgIAAQQEhCSAGKQNYIQEgBikDUCECDAILIAZBwABqIAcgAyAIQgAQ34GAgAAgBkEwaiAHIAMgAkIAEN+BgIAAIAYpA0giAiAGKQMwfCIBIAJUIAYpAzhCAFJyIQkgBikDQCECDAELAkAgA1ANACAGQSBqIAdCACAIIAIQ34GAgAAgBkEQaiADQgAgCCACEN+BgIAAIAYpAygiAiAGKQMQfCIBIAJUIAYpAxhCAFJyIQkgBikDICECDAELIAYgByADIAggAhDfgYCAAEEAIQkgBikDCCEBIAYpAwAhAgtCACACfSACIARCAFMiChshCEIAIAEgAkIAUq18fSABIAobIgcgBIVCAFkNAEEBIQkLIAAgCDcDACAFIAk2AgAgACAHNwMIIAZB4ABqJICAgIAAC1cBAX4CQAJAIANBwABxDQAgA0UNASACIANBP3GtIgSGIAFBACADa0E/ca2IhCECIAEgBIYhAQwBCyABIANBP3GthiECQgAhAQsgACABNwMAIAAgAjcDCAvRCAQBfwF+A38EfiOAgICAAEGwAWsiBSSAgICAAEIAIQYCQAJAAkACQAJAIAR5IAN5QsAAfCAEQgBSG6ciByACeSABeULAAHwgAkIAUhunIghNDQAgCEE/Sw0BIAdB3wBLDQIgByAIa0EgSQ0DIAVBoAFqIAMgBEHgACAHayIJENyBgIAAIAU1AqABQgF8IQpCACELQgAhBgJAAkACQAJAA0AgBUGQAWogASACQcAAIAhrIggQ3IGAgAAgBSkDkAEhDAJAIAggCU8NACAFQdAAaiADIAQgCBDcgYCAAAJAAkAgBSkDUCIKUEUNAAwBCyAMIAqAIQwLIAVBwABqIAMgBCAMQgAQ34GAgAACQCABIAUpA0AiDVQiCCACIAUpA0giClQgAiAKURsNACACIAp9IAitfSECIAEgDX0hASAGIAsgDHwiDCALVK18IQYMCwsgAiAEfCABIAN8IgQgAVStfCAKfSAEIA1UrX0hAiAEIA19IQEgBiAMIAt8Qn98IgwgC1StfCEGDAoLIAVBgAFqIAwgCoAiDEIAIAggCWsiCBDZgYCAACAFQfAAaiADIAQgDEIAEN+BgIAAIAVB4ABqIAUpA3AgBSkDeCAIENmBgIAAIAUpA4gBIAZ8IAUpA4ABIgYgC3wiCyAGVK18IQYgByACIAUpA2h9IAEgBSkDYCIMVK19IgJ5IAEgDH0iAXlCwAB8IAJCAFIbpyIITQ0BIAhBP00NAAsgA1BFDQEMAgsgASADVCIIIAIgBFQgAiAEURtFDQIgCyEMDAcLIAEgA4AhAgsgASADgiEBIAYgCyACfCIMIAtUrXwhBkIAIQIMBQsgAiAEfSAIrX0hAiABIAN9IQEgBiALQgF8IgxQrXwhBgwECyACIARCACABIANaIAIgBFogAiAEURsiCBt9IAEgA0IAIAgbIgRUrX0hAiABIAR9IQEgCK0hDAwDCyABIAEgA4AiDCADfn0hAUIAIQZCACECDAILIAIgAiADQv////8PgyIEgCIGIAN+fUIghiABQiCIIgyEIASAIgJCIIYgDCACIAN+fUIghiABQv////8Pg4QiASAEgCIDhCEMIAEgAyAEfn0hASACQiCIIAaEIQZCACECDAELIAVBMGogAyAEQcAAIAhrIggQ3IGAgAAgBUEgaiABIAIgCBDcgYCAAEIAIQYgBUEQaiADQgAgBSkDICAFKQMwgCIMQgAQ34GAgAAgBSAEQgAgDEIAEN+BgIAAIAUpAxAhCgJAAkAgBSkDCCAFKQMYIg0gBSkDAHwiCyANVK18QgBSDQAgASAKVCIIIAIgC1QgAiALURtFDQELIAQgAnwgAyABfCIBIANUrXwgC30gASAKVK19IQIgDEJ/fCEMIAEgCn0hAQwBCyACIAt9IAitfSECIAEgCn0hAUIAIQYLIAAgATcDECAAIAw3AwAgACACNwMYIAAgBjcDCCAFQbABaiSAgICAAAuhAQECfyOAgICAAEEgayIFJICAgIAAIAVCACABfSABIAJCAFMiBhtCACACIAFCAFKtfH0gAiAGG0IAIAN9IAMgBEIAUyIGG0IAIAQgA0IAUq18fSAEIAYbENqBgIAAIAUpAwghAyAAQgAgBSkDACIBfSABIAQgAoVCAFMiBhs3AwAgAEIAIAMgAUIAUq18fSADIAYbNwMIIAVBIGokgICAgAALVwEBfgJAAkAgA0HAAHENACADRQ0BIAJBACADa0E/ca2GIAEgA0E/ca0iBIiEIQEgAiAEiCECDAELIAIgA0E/ca2IIQFCACECCyAAIAE3AwAgACACNwMIC7kHAQx/I4CAgIAAQRBrIQMCQAJAIAJBEE8NACAAIQQMAQsCQCAAIABBACAAa0EDcSIFaiIGTw0AIAVBf2ohByAAIQQgASEIAkAgBUUNACAFIQkgACEEIAEhCANAIAQgCC0AADoAACAIQQFqIQggBEEBaiEEIAlBf2oiCQ0ACwsgB0EHSQ0AA0AgBCAILQAAOgAAIARBAWogCEEBai0AADoAACAEQQJqIAhBAmotAAA6AAAgBEEDaiAIQQNqLQAAOgAAIARBBGogCEEEai0AADoAACAEQQVqIAhBBWotAAA6AAAgBEEGaiAIQQZqLQAAOgAAIARBB2ogCEEHai0AADoAACAIQQhqIQggBEEIaiIEIAZHDQALCyAGIAIgBWsiCUF8cSIHaiEEAkACQCABIAVqIghBA3EiAQ0AIAYgBE8NASAIIQEDQCAGIAEoAgA2AgAgAUEEaiEBIAZBBGoiBiAESQ0ADAILC0EAIQIgA0EANgIMIANBDGogAXIhBQJAQQQgAWsiCkEBcUUNACAFIAgtAAA6AABBASECCwJAIApBAnFFDQAgBSACaiAIIAJqLwEAOwEACyAIIAFrIQIgAUEDdCELIAMoAgwhBQJAAkAgBkEEaiAESQ0AIAYhDAwBC0EAIAtrQRhxIQ0DQCAGIAUgC3YgAkEEaiICKAIAIgUgDXRyNgIAIAZBCGohCiAGQQRqIgwhBiAKIARJDQALC0EAIQYgA0EAOgAIIANBADoABgJAAkAgAUEBRw0AIANBCGohDUEAIQFBACEKQQAhDgwBCyACQQVqLQAAIQogAyACQQRqLQAAIgE6AAggCkEIdCEKQQIhDiADQQZqIQ0LAkAgCEEBcUUNACANIAJBBGogDmotAAA6AAAgAy0ABkEQdCEGIAMtAAghAQsgDCAKIAZyIAFB/wFxckEAIAtrQRhxdCAFIAt2cjYCAAsgCUEDcSECIAggB2ohAQsCQCAEIAQgAmoiBk8NACACQX9qIQkCQCACQQdxIghFDQADQCAEIAEtAAA6AAAgAUEBaiEBIARBAWohBCAIQX9qIggNAAsLIAlBB0kNAANAIAQgAS0AADoAACAEQQFqIAFBAWotAAA6AAAgBEECaiABQQJqLQAAOgAAIARBA2ogAUEDai0AADoAACAEQQRqIAFBBGotAAA6AAAgBEEFaiABQQVqLQAAOgAAIARBBmogAUEGai0AADoAACAEQQdqIAFBB2otAAA6AAAgAUEIaiEBIARBCGoiBCAGRw0ACwsgAAsOACAAIAEgAhDdgYCAAAtuAQZ+IAAgA0L/////D4MiBSABQv////8PgyIGfiIHIANCIIgiCCAGfiIGIAUgAUIgiCIJfnwiBUIghnwiCjcDACAAIAggCX4gBSAGVK1CIIYgBUIgiIR8IAogB1StfCAEIAF+IAMgAn58fDcDCAsL9AsBAEGAgMAAC+oLRGVmYXVsdEZlZUJwc0ZlZUJwc0ZlZURlcG9zaXRBZGRyZXNzZGVmYXVsdF9mZWVfYnBzX3NldGZlZV9icHMAADcAEAAHAAAAZmVlX2Jwc19zZXQA/AIQAAcAAAA3ABAABwAAAGZlZV9kZXBvc2l0X2FkZHJlc3Nfc2V0ZmVlX2RlcG9zaXRfYWRkcmVzcwAAewAQABMAAABQYXVzZWRwYXVzZWRfc2V0cGF1c2VkAACoABAABgAAAEluYm91bmRPdXRib3VuZAC4ABAABwAAAL8AEAAIAAAAbGltaXR3aW5kb3dfc2Vjb25kcwDYABAABQAAAN0AEAAOAAAAY29uZmlnaW5fZmxpZ2h0X29uX2xhc3RfdXBkYXRlbGFzdF91cGRhdGUAAAD8ABAABgAAAAIBEAAYAAAAGgEQAAsAAABSYXRlTGltaXRyYXRlX2xpbWl0X3NldGRpcmVjdGlvbvwAEAAGAAAAVwEQAAkAAABcAhAAAwAAAE9GVCBGZWVPZnRUeXBlbWVzc2FnZXBheV9pbl96cm9yZWNlaXZlcgD8AhAABwAAAIYBEAAHAAAAfAIQAAcAAACNARAACgAAAJcBEAAIAAAAbm9uY2VzZW5kZXIAyAEQAAUAAADNARAABgAAAEADEAAHAAAAbmF0aXZlX2ZlZXpyb19mZWUAAADsARAACgAAAPYBEAAHAAAAZmVlABACEAADAAAABwMQAAQAAADIARAABQAAAG5hdGl2ZV90b2tlbnNldF9kZWxlZ2F0ZXNlbmRfY29tcG9zZUVuZHBvaW50UGVlcmVpZHBlZXIAXAIQAAMAAABfAhAABAAAAG1zZ190eXBlb3B0aW9ucwBcAhAAAwAAAHQCEAAIAAAAfAIQAAcAAABFbmZvcmNlZE9wdGlvbnNlbmZvcmNlZF9vcHRpb25fc2V0ZW5mb3JjZWRfb3B0aW9uX3BhcmFtc74CEAAWAAAAYW1vdW50X3JlY2VpdmVkX2xkYW1vdW50X3NlbnRfbGRkc3RfZWlkZnJvbWd1aWQA3AIQABIAAADuAhAADgAAAPwCEAAHAAAAAwMQAAQAAAAHAxAABAAAAG9mdF9yZWNlaXZlZHNyY19laWR0bwAAANwCEAASAAAABwMQAAQAAABAAxAABwAAAEcDEAACAAAAbXNnX2luc3BlY3Rvcl9zZXRpbnNwZWN0b3IAAH0DEAAJAAAARGVjaW1hbHNEaWZmVG9rZW5Nc2dJbnNwZWN0b3JhbW91bnRfbGRjb21wb3NlX21zZ2V4dHJhX29wdGlvbnNtaW5fYW1vdW50X2xkb2Z0X2NtZAAArQMQAAkAAAC2AxAACwAAAPwCEAAHAAAAwQMQAA0AAADOAxAADQAAANsDEAAHAAAARwMQAAIAAABtYXhfYW1vdW50X2xkAAAAHAQQAA0AAADOAxAADQAAANwCEAASAAAA7gIQAA4AAABkZXNjcmlwdGlvbmZlZV9hbW91bnRfbGRMBBAACwAAAFcEEAANAAAAAAAAEgAAAAAAAAAAAAAAEgAAAAF0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXKmBBAACQAAAK8EEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAKYEEAAJAAAArwQQAAkAAADeBBAAAwAAAG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWRjYW5jZWxsZWRfcGVuZGluZ19vd25lcm93bmVyGAUQABcAAAAvBRAABQAAAG93bmVyc2hpcF9yZW5vdW5jZWQArwQQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAcQUQAAkAAACIBBAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAJsFEAAIAAAAowUQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnQA++IBDmNvbnRyYWN0c3BlY3YwAAAAAgAAAAAAAAAAAAAADU9GVEZlZVN0b3JhZ2UAAAAAAAADAAAAAAAAAAAAAAANRGVmYXVsdEZlZUJwcwAAAAAAAAEAAAAAAAAABkZlZUJwcwAAAAAAAQAAAAQAAAAAAAAAAAAAABFGZWVEZXBvc2l0QWRkcmVzcwAAAAAAAAQAAAAAAAAAAAAAAAtPRlRGZWVFcnJvcgAAAAADAAAAAAAAAA1JbnZhbGlkRmVlQnBzAAAAAAAMHAAAAAAAAAAYSW52YWxpZEZlZURlcG9zaXRBZGRyZXNzAAAMHQAAAAAAAAAJU2FtZVZhbHVlAAAAAAAMHgAAAAUAAAAAAAAAAAAAABBEZWZhdWx0RmVlQnBzU2V0AAAAAQAAABNkZWZhdWx0X2ZlZV9icHNfc2V0AAAAAAEAAAAAAAAAB2ZlZV9icHMAAAAABgAAAAAAAAACAAAABQAAAAAAAAAAAAAACUZlZUJwc1NldAAAAAAAAAEAAAALZmVlX2Jwc19zZXQAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAADtUaGUgZmVlIHJhdGUgaW4gYmFzaXMgcG9pbnRzLCBvciBOb25lIGlmIHRoZSBmZWUgaXMgcmVtb3ZlZAAAAAAHZmVlX2JwcwAAAAPoAAAABgAAAAAAAAACAAAABQAAAAAAAAAAAAAAFEZlZURlcG9zaXRBZGRyZXNzU2V0AAAAAQAAABdmZWVfZGVwb3NpdF9hZGRyZXNzX3NldAAAAAABAAAAAAAAABNmZWVfZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABJPRlRQYXVzYWJsZVN0b3JhZ2UAAAAAAAEAAAAAAAAAAAAAAAZQYXVzZWQAAAAAAAQAAAAAAAAAAAAAABBPRlRQYXVzYWJsZUVycm9yAAAAAgAAAAAAAAAGUGF1c2VkAAAAAAwmAAAAAAAAABRQYXVzZVN0YXR1c1VuY2hhbmdlZAAADCcAAAAFAAAAAAAAAAAAAAAJUGF1c2VkU2V0AAAAAAAAAQAAAApwYXVzZWRfc2V0AAAAAAABAAAAAAAAAAZwYXVzZWQAAAAAAAEAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAlEaXJlY3Rpb24AAAAAAAACAAAAAAAAAAAAAAAHSW5ib3VuZAAAAAAAAAAAAAAAAAhPdXRib3VuZAAAAAEAAAA5Q29uZmlndXJhdGlvbiBmb3IgcmF0ZSBsaW1pdGluZywgdXNlZCBhcyBpbnB1dCBwYXJhbWV0ZXIuAAAAAAAAAAAAAA9SYXRlTGltaXRDb25maWcAAAAAAgAAAAAAAAAFbGltaXQAAAAAAAALAAAAAAAAAA53aW5kb3dfc2Vjb25kcwAAAAAABgAAAAQAAAAAAAAAAAAAAA5SYXRlTGltaXRFcnJvcgAAAAAABQAAAAAAAAARRXhjZWVkZWRSYXRlTGltaXQAAAAAAAwwAAAAAAAAAA1JbnZhbGlkQW1vdW50AAAAAAAMMQAAAAAAAAAQSW52YWxpZFRpbWVzdGFtcAAADDIAAAAAAAAADUludmFsaWRDb25maWcAAAAAAAwzAAAAAAAAAAlTYW1lVmFsdWUAAAAAAAw0AAAABQAAAAAAAAAAAAAADFJhdGVMaW1pdFNldAAAAAEAAAAOcmF0ZV9saW1pdF9zZXQAAAAAAAMAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAAAAAAADZWlkAAAAAAQAAAAAAAAAQlRoZSByYXRlIGxpbWl0IGNvbmZpZ3VyYXRpb24sIG9yIE5vbmUgaWYgdGhlIHJhdGUgbGltaXQgaXMgcmVtb3ZlZAAAAAAABmNvbmZpZwAAAAAD6AAAB9AAAAAPUmF0ZUxpbWl0Q29uZmlnAAAAAAAAAAACAAAAAwAAAB5UaGUgdHlwZSBvZiBPRlQgb3BlcmF0aW9uIG1vZGUAAAAAAAAAAAAHT2Z0VHlwZQAAAAACAAAAJkxvY2sgdG9rZW5zIG9uIHNlbmQsIHVubG9jayBvbiByZWNlaXZlAAAAAAAKTG9ja1VubG9jawAAAAAAAAAAACRCdXJuIHRva2VucyBvbiBzZW5kLCBtaW50IG9uIHJlY2VpdmUAAAAITWludEJ1cm4AAAABAAAAAAAAAOpTZXRzIG9yIHJlbW92ZXMgYSByYXRlIGxpbWl0IGZvciBhIHNwZWNpZmljIGRpcmVjdGlvbiBhbmQgZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBkaXJlY3Rpb25gIC0gVGhlIGRpcmVjdGlvbiAoSW5ib3VuZCBvciBPdXRib3VuZCkKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBjb25maWdgIC0gVGhlIHJhdGUgbGltaXQgY29uZmlndXJhdGlvbiwgb3IgTm9uZSB0byByZW1vdmUgdGhlIHJhdGUgbGltaXQAAAAAAA5zZXRfcmF0ZV9saW1pdAAAAAAAAwAAAAAAAAAJZGlyZWN0aW9uAAAAAAAH0AAAAAlEaXJlY3Rpb24AAAAAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAZjb25maWcAAAAAA+gAAAfQAAAAD1JhdGVMaW1pdENvbmZpZwAAAAAAAAAAAAAAAG9SZXR1cm5zIHRoZSByYXRlIGxpbWl0IGNvbmZpZ3VyYXRpb24gZm9yIGEgZGlyZWN0aW9uIGFuZCBlbmRwb2ludC4KUmV0dXJucyBOb25lIGlmIG5vIHJhdGUgbGltaXQgaXMgY29uZmlndXJlZC4AAAAAEXJhdGVfbGltaXRfY29uZmlnAAAAAAAAAgAAAAAAAAAJZGlyZWN0aW9uAAAAAAAH0AAAAAlEaXJlY3Rpb24AAAAAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAfQAAAAD1JhdGVMaW1pdENvbmZpZwAAAAAAAAAAQlJldHVybnMgdGhlIGN1cnJlbnQgaW4tZmxpZ2h0IGFtb3VudCBmb3IgYSBkaXJlY3Rpb24gYW5kIGVuZHBvaW50LgAAAAAAFHJhdGVfbGltaXRfaW5fZmxpZ2h0AAAAAgAAAAAAAAAJZGlyZWN0aW9uAAAAAAAH0AAAAAlEaXJlY3Rpb24AAAAAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAsAAAAAAAAAblJldHVybnMgdGhlIGF2YWlsYWJsZSBjYXBhY2l0eSBmb3IgYSBkaXJlY3Rpb24gYW5kIGVuZHBvaW50LgpSZXR1cm5zIGkxMjg6Ok1BWCBpZiBubyByYXRlIGxpbWl0IGlzIGNvbmZpZ3VyZWQuAAAAAAATcmF0ZV9saW1pdF9jYXBhY2l0eQAAAAACAAAAAAAAAAlkaXJlY3Rpb24AAAAAAAfQAAAACURpcmVjdGlvbgAAAAAAAAAAAAADZWlkAAAAAAQAAAABAAAACwAAAAAAAAAqU2V0cyB0aGUgZGVmYXVsdCBmZWUgcmF0ZSBpbiBiYXNpcyBwb2ludHMuAAAAAAATc2V0X2RlZmF1bHRfZmVlX2JwcwAAAAABAAAAAAAAAA9kZWZhdWx0X2ZlZV9icHMAAAAABgAAAAAAAAAAAAAAx1NldHMgb3IgcmVtb3ZlcyB0aGUgZmVlIHJhdGUgZm9yIGEgc3BlY2lmaWMgZGVzdGluYXRpb24gZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBkc3RfZWlkYCAtIFRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRAoqIGBmZWVfYnBzYCAtIFRoZSBmZWUgcmF0ZSAoMC0xMCwwMDApLCBvciBOb25lIHRvIHJlbW92ZSB0aGUgZmVlIGNvbmZpZ3VyYXRpb24AAAAAC3NldF9mZWVfYnBzAAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAHZmVlX2JwcwAAAAPoAAAABgAAAAAAAAAAAAAAOFNldHMgdGhlIGFkZHJlc3Mgd2hlcmUgY29sbGVjdGVkIGZlZXMgd2lsbCBiZSBkZXBvc2l0ZWQuAAAAF3NldF9mZWVfZGVwb3NpdF9hZGRyZXNzAAAAAAEAAAAAAAAAE2ZlZV9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAAAAAAALVJldHVybnMgdGhlIGRlZmF1bHQgZmVlIHJhdGUgaW4gYmFzaXMgcG9pbnRzLgAAAAAAAA9kZWZhdWx0X2ZlZV9icHMAAAAAAAAAAAEAAAAGAAAAAAAAADhSZXR1cm5zIHRoZSBmZWUgcmF0ZSBmb3IgYSBzcGVjaWZpYyBkZXN0aW5hdGlvbiwgaWYgc2V0LgAAAAdmZWVfYnBzAAAAAAEAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAPoAAAABgAAAAAAAABTUmV0dXJucyB0aGUgZWZmZWN0aXZlIGZlZSByYXRlIGZvciBhIGRlc3RpbmF0aW9uIChkZXN0aW5hdGlvbi1zcGVjaWZpYyBvciBkZWZhdWx0KS4AAAAAEWVmZmVjdGl2ZV9mZWVfYnBzAAAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAAYAAAAAAAAAIFJldHVybnMgdGhlIGZlZSBkZXBvc2l0IGFkZHJlc3MuAAAAE2ZlZV9kZXBvc2l0X2FkZHJlc3MAAAAAAAAAAAEAAAATAAAAAAAAALNTZXRzIHRoZSBwYXVzZWQgc3RhdGUgb2YgdGhlIE9GVC4KCldoZW4gcGF1c2VkLCB0aGUgT0ZUIHdpbGwgcmVqZWN0IG5ldyBzZW5kL3JlY2VpdmUvcXVvdGVfc2VuZC9xdW90ZV9vZnQgb3BlcmF0aW9ucy4KCiMgQXJndW1lbnRzCiogYHBhdXNlZGAgLSBgdHJ1ZWAgdG8gcGF1c2UsIGBmYWxzZWAgdG8gdW5wYXVzZQAAAAAKc2V0X3BhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAAAAAAkUmV0dXJucyB0aGUgcGF1c2VkIHN0YXRlIG9mIHRoZSBPRlQuAAAACWlzX3BhdXNlZAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAACXF1b3RlX29mdAAAAAAAAAEAAAAAAAAACnNlbmRfcGFyYW0AAAAAB9AAAAAJU2VuZFBhcmFtAAAAAAAAAQAAA+0AAAADAAAH0AAAAAhPRlRMaW1pdAAAA+oAAAfQAAAADE9GVEZlZURldGFpbAAAB9AAAAAKT0ZUUmVjZWlwdAAAAAAAAAAAADVSZXRyaWV2ZXMgdGhlIHRva2VuIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMgT0ZULgAAAAAAAAV0b2tlbgAAAAAAAAAAAAABAAAAEwAAAAAAAAAmUmV0dXJucyBPRlQgdmVyc2lvbiBhcyAobWFqb3IsIG1pbm9yKS4AAAAAAAtvZnRfdmVyc2lvbgAAAAAAAAAAAQAAA+0AAAACAAAABgAAAAYAAAAAAAAAQVJldHJpZXZlcyB0aGUgc2hhcmVkIGRlY2ltYWxzIHVzZWQgZm9yIGNyb3NzLWNoYWluIG5vcm1hbGl6YXRpb24uAAAAAAAAD3NoYXJlZF9kZWNpbWFscwAAAAAAAAAAAQAAAAQAAAAAAAAASVJldHJpZXZlcyB0aGUgZGVjaW1hbCBjb252ZXJzaW9uIHJhdGUgdXNlZCBmb3IgY3Jvc3MtY2hhaW4gbm9ybWFsaXphdGlvbi4AAAAAAAAXZGVjaW1hbF9jb252ZXJzaW9uX3JhdGUAAAAAAAAAAAEAAAALAAAAAAAAAOpXaGV0aGVyIGEgc2VwYXJhdGUgdG9rZW4gYXBwcm92YWwgaXMgcmVxdWlyZWQgYmVmb3JlIHNlbmRpbmcuCgpIZWxwcyB3YWxsZXQgaW1wbGVtZW50ZXJzIGRldGVybWluZSBpbnRlZ3JhdGlvbiByZXF1aXJlbWVudHMuCgojIFJldHVybnMKLSBgdHJ1ZWAgaWYgYSBzZXBhcmF0ZSB0b2tlbiBhcHByb3ZhbCBzdGVwIGlzIHJlcXVpcmVkCi0gYGZhbHNlYCBpZiBubyBzZXBhcmF0ZSBhcHByb3ZhbCBpcyBuZWVkZWQAAAAAABFhcHByb3ZhbF9yZXF1aXJlZAAAAAAAAAAAAAABAAAAAQAAAAAAAAAtUmV0dXJucyB0aGUgbWVzc2FnZSBpbnNwZWN0b3IgYWRkcmVzcyBpZiBzZXQuAAAAAAAADW1zZ19pbnNwZWN0b3IAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAWVTZXRzIG9yIHJlbW92ZXMgdGhlIG1lc3NhZ2UgaW5zcGVjdG9yIGFkZHJlc3MuCgpUaGUgbWVzc2FnZSBpbnNwZWN0b3IgaXMgYW4gb3B0aW9uYWwgY29udHJhY3QgdGhhdCB2YWxpZGF0ZXMgb3V0Z29pbmcgbWVzc2FnZXMKYW5kIG9wdGlvbnMgYmVmb3JlIHRoZXkgYXJlIHNlbnQgY3Jvc3MtY2hhaW4uIElmIHNldCwgdGhlIGluc3BlY3RvcidzIGBpbnNwZWN0YAptZXRob2Qgd2lsbCBiZSBjYWxsZWQgZHVyaW5nIGBzZW5kYCBhbmQgYHF1b3RlX3NlbmRgIG9wZXJhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGBpbnNwZWN0b3JgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGluc3BlY3RvciBjb250cmFjdCwgb3IgTm9uZSB0byByZW1vdmUAAAAAAAARc2V0X21zZ19pbnNwZWN0b3IAAAAAAAABAAAAAAAAAAlpbnNwZWN0b3IAAAAAAAPoAAAAEwAAAAAAAAAAAAAAO1F1b3RlcyBhIHNlbmQgb3BlcmF0aW9uIGluY2x1ZGluZyBMYXllclplcm8gbWVzc2FnaW5nIGZlZXMuAAAAAApxdW90ZV9zZW5kAAAAAAADAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAKc2VuZF9wYXJhbQAAAAAH0AAAAAlTZW5kUGFyYW0AAAAAAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAABAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAAAAAAAdFNlbmRzIHRva2VucyBjcm9zcy1jaGFpbiB0byBhbm90aGVyIGVuZHBvaW50LgoKRnJvbSBtdXN0IGJlIGF1dGhlbnRpY2F0ZWQuCgojIFJldHVybnMKKE1lc3NhZ2luZ1JlY2VpcHQsIE9GVFJlY2VpcHQpAAAABHNlbmQAAAAEAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAKc2VuZF9wYXJhbQAAAAAH0AAAAAlTZW5kUGFyYW0AAAAAAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAAAAAAAAOcmVmdW5kX2FkZHJlc3MAAAAAABMAAAABAAAD7QAAAAIAAAfQAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAfQAAAACk9GVFJlY2VpcHQAAAAAAAAAAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAAGAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAhkZWxlZ2F0ZQAAA+gAAAATAAAAAAAAAA9zaGFyZWRfZGVjaW1hbHMAAAAABAAAAAAAAAAIb2Z0X3R5cGUAAAfQAAAAB09mdFR5cGUAAAAAAAAAAAAAAABDUmV0dXJucyB0aGUgdHlwZSBvZiBvcGVyYXRpb24gZm9yIHRoaXMgT0ZUIChMb2NrVW5sb2NrIG9yIE1pbnRCdXJuKQAAAAAIb2Z0X3R5cGUAAAAAAAAAAQAAB9AAAAAHT2Z0VHlwZQAAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAErVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAAAAAAArlJldHJpZXZlcyB0aGUgT0FwcCB2ZXJzaW9uIGluZm9ybWF0aW9uLgoKIyBSZXR1cm5zCkEgdHVwbGUgY29udGFpbmluZzoKLSBgc2VuZGVyX3ZlcnNpb25gOiBUaGUgdmVyc2lvbiBvZiB0aGUgT0FwcFNlbmRlcgotIGByZWNlaXZlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBSZWNlaXZlcgAAAAAADG9hcHBfdmVyc2lvbgAAAAAAAAABAAAD7QAAAAIAAAAGAAAABgAAAAAAAABsUmV0cmlldmVzIHRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggdGhlIE9BcHAuCgojIFJldHVybnMKVGhlIExheWVyWmVybyBlbmRwb2ludCBhZGRyZXNzAAAACGVuZHBvaW50AAAAAAAAAAEAAAATAAAAAAAAAMFSZXRyaWV2ZXMgdGhlIHBlZXIgKE9BcHApIGFzc29jaWF0ZWQgd2l0aCBhIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECgojIFJldHVybnMKVGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGVuZHBvaW50AAAAAAAABHBlZXIAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAD7gAAACAAAAAAAAAA5VNldHMgb3IgcmVtb3ZlcyB0aGUgcGVlciBhZGRyZXNzIChPQXBwIGluc3RhbmNlKSBmb3IgYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBwZWVyYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBwZWVyIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIHBlZXIAAAAAAAAIc2V0X3BlZXIAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAEcGVlcgAAA+gAAAPuAAAAIAAAAAAAAAAAAAAAjlNldHMgdGhlIGRlbGVnYXRlIGFkZHJlc3MgZm9yIHRoZSBPQXBwIENvcmUuCgojIEFyZ3VtZW50cwoqIGBkZWxlZ2F0ZWAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgZGVsZWdhdGUgdG8gYmUgc2V0LCBvciBOb25lIHRvIHJlbW92ZSB0aGUgZGVsZWdhdGUAAAAAAAxzZXRfZGVsZWdhdGUAAAABAAAAAAAAAAhkZWxlZ2F0ZQAAA+gAAAATAAAAAAAAAAAAAAC3Q2hlY2tzIGlmIGEgbWVzc2FnaW5nIHBhdGggY2FuIGJlIGluaXRpYWxpemVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luLgoKIyBBcmd1bWVudHMKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gb2YgdGhlIG1lc3NhZ2UKCiMgUmV0dXJucwpUcnVlIGlmIHRoZSBwYXRoIGNhbiBiZSBpbml0aWFsaXplZCwgZmFsc2Ugb3RoZXJ3aXNlAAAAABVhbGxvd19pbml0aWFsaXplX3BhdGgAAAAAAAABAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAABAAAAAQAAAAAAAAH4UmV0cmlldmVzIHRoZSBuZXh0IG5vbmNlIGZvciBhIGdpdmVuIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3MuCgpUaGUgcGF0aCBub25jZSBzdGFydHMgZnJvbSAxLiBJZiAwIGlzIHJldHVybmVkIGl0IG1lYW5zIHRoYXQgdGhlcmUgaXMgTk8gbm9uY2Ugb3JkZXJlZCBlbmZvcmNlbWVudC4KVGhpcyBpcyByZXF1aXJlZCBieSB0aGUgb2ZmLWNoYWluIGV4ZWN1dG9yIHRvIGRldGVybWluZSBpZiB0aGUgT0FwcCBleHBlY3RzIG1lc3NhZ2UgZXhlY3V0aW9uIHRvIGJlIG9yZGVyZWQuClRoaXMgaXMgYWxzbyBlbmZvcmNlZCBieSB0aGUgT0FwcC4KQnkgZGVmYXVsdCB0aGlzIGlzIE5PVCBlbmFibGVkLCBpLmUuIG5leHRfbm9uY2UgaXMgaGFyZGNvZGVkIHRvIHJldHVybiAwLgoKIyBBcmd1bWVudHMKKiBgc3JjX2VpZGAgLSBUaGUgc291cmNlIGVuZHBvaW50IElECiogYHNlbmRlcmAgLSBUaGUgc2VuZGVyIE9BcHAgYWRkcmVzcwoKIyBSZXR1cm5zClRoZSBuZXh0IG5vbmNlAAAACm5leHRfbm9uY2UAAAAAAAIAAAAAAAAAB3NyY19laWQAAAAABAAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAEAAAAGAAAAAAAAAyNFbnRyeSBwb2ludCBmb3IgcmVjZWl2aW5nIG1lc3NhZ2VzIG9yIHBhY2tldHMgZnJvbSB0aGUgTGF5ZXJaZXJvIGVuZHBvaW50LgoKVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgYGNsZWFyX3BheWxvYWRfYW5kX3RyYW5zZmVyYCB0byB2YWxpZGF0ZSB0aGUgbWVzc2FnZQphbmQgY2xlYXIgaXQgZnJvbSB0aGUgZW5kcG9pbnQsIHRoZW4gZGVsZWdhdGVzIHRvIGBfX2x6X3JlY2VpdmVgIGZvciBhcHBsaWNhdGlvbiBsb2dpYy4KCiMgQXJndW1lbnRzCiogYGV4ZWN1dG9yYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBleGVjdXRvciBmb3IgdGhlIHJlY2VpdmVkIG1lc3NhZ2UKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gaW5mb3JtYXRpb24gY29udGFpbmluZyB0aGUgc291cmNlIGVuZHBvaW50IGFuZCBzZW5kZXIgYWRkcmVzczoKLSBgc3JjX2VpZGA6IFRoZSBzb3VyY2UgY2hhaW4gZW5kcG9pbnQgSUQKLSBgc2VuZGVyYDogVGhlIHNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4KLSBgbm9uY2VgOiBUaGUgbm9uY2Ugb2YgdGhlIG1lc3NhZ2UKKiBgZ3VpZGAgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZWNlaXZlZCBMYXllclplcm8gbWVzc2FnZQoqIGBtZXNzYWdlYCAtIFRoZSBwYXlsb2FkIG9mIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYGV4dHJhX2RhdGFgIC0gQWRkaXRpb25hbCBhcmJpdHJhcnkgZGF0YSBwcm92aWRlZCBieSB0aGUgY29ycmVzcG9uZGluZyBleGVjdXRvcgoqIGB2YWx1ZWAgLSBUaGUgbmF0aXZlIHRva2VuIHZhbHVlIHNlbnQgd2l0aCB0aGUgbWVzc2FnZQAAAAAKbHpfcmVjZWl2ZQAAAAAABgAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAexJbmRpY2F0ZXMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFwcHJvdmVkIGNvbXBvc2VNc2cgc2VuZGVyIHRvIHRoZSBFbmRwb2ludC4KCkFwcGxpY2F0aW9ucyBjYW4gb3B0aW9uYWxseSBjaG9vc2UgdG8gaW1wbGVtZW50IHNlcGFyYXRlIGNvbXBvc2VNc2cgc2VuZGVycyB0aGF0IGFyZSBOT1QgdGhlIGJyaWRnaW5nIGxheWVyLgpUaGUgZGVmYXVsdCBzZW5kZXIgSVMgdGhlIE9BcHBSZWNlaXZlciBpbXBsZW1lbnRlci4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3MKKiBgbWVzc2FnZWAgLSBUaGUgbHpSZWNlaXZlIHBheWxvYWQKKiBgc2VuZGVyYCAtIFRoZSBzZW5kZXIgYWRkcmVzcyB0byBjaGVjawoKIyBSZXR1cm5zClRydWUgaWYgdGhlIHNlbmRlciBpcyBhIHZhbGlkIGNvbXBvc2VNc2cgc2VuZGVyLCBmYWxzZSBvdGhlcndpc2UAAAAVaXNfY29tcG9zZV9tc2dfc2VuZGVyAAAAAAAAAwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAAABAAAAAAAAANlSZXRyaWV2ZXMgdGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZS4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgbXNnX3R5cGVgIC0gVGhlIE9BcHAgbWVzc2FnZSB0eXBlCgojIFJldHVybnMKVGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIHRoZSBnaXZlbiBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlAAAAAAAAEGVuZm9yY2VkX29wdGlvbnMAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAIbXNnX3R5cGUAAAAEAAAAAQAAAA4AAAAAAAACm1NldHMgdGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIHNwZWNpZmljIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUgY29tYmluYXRpb25zLgoKT25seSB0aGUgYGF1dGhvcml6ZXJgIG9mIHRoZSBPQXBwIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uClByb3ZpZGVzIGEgd2F5IGZvciB0aGUgT0FwcCB0byBlbmZvcmNlIHRoaW5ncyBsaWtlIHBheWluZyBmb3IgUHJlQ3JpbWUsIEFORC9PUiBtaW5pbXVtIGRzdCBselJlY2VpdmUgZ2FzIGFtb3VudHMgZXRjLgpUaGVzZSBlbmZvcmNlZCBvcHRpb25zIGNhbiB2YXJ5IGFzIHRoZSBwb3RlbnRpYWwgb3B0aW9ucy9leGVjdXRpb24gb24gdGhlIHJlbW90ZSBtYXkgZGlmZmVyIGFzIHBlciB0aGUgbXNnX3R5cGUuCmUuZy4gQW1vdW50IG9mIGx6UmVjZWl2ZSgpIGdhcyBuZWNlc3NhcnkgdG8gZGVsaXZlciBhIGx6Q29tcG9zZSgpIG1lc3NhZ2UgYWRkcyBvdmVyaGVhZCB5b3UgZG9uJ3Qgd2FudCB0byBwYXkKaWYgeW91IGFyZSBvbmx5IG1ha2luZyBhIHN0YW5kYXJkIExheWVyWmVybyBtZXNzYWdlIGllLiBselJlY2VpdmUoKSBXSVRIT1VUIHNlbmRDb21wb3NlKCkuCgojIEFyZ3VtZW50cwoqIGBvcHRpb25zYCAtIEEgdmVjdG9yIG9mIEVuZm9yY2VkT3B0aW9uUGFyYW0gc3RydWN0dXJlcyBzcGVjaWZ5aW5nIGVuZm9yY2VkIG9wdGlvbnMAAAAAFHNldF9lbmZvcmNlZF9vcHRpb25zAAAAAQAAAAAAAAAHb3B0aW9ucwAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAAAAAACekNvbWJpbmVzIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZS4KCklmIHRoZXJlIGlzIGFuIGVuZm9yY2VkIGx6UmVjZWl2ZSBvcHRpb246Ci0ge2dhc19saW1pdDogMjAwaywgdmFsdWU6IDEgWExNfSBBTkQgYSBjYWxsZXIgc3VwcGxpZXMgYSBselJlY2VpdmUgb3B0aW9uOiB7Z2FzX2xpbWl0OiAxMDBrLCB2YWx1ZTogMC41IFhMTX0KLSBUaGUgcmVzdWx0aW5nIG9wdGlvbnMgd2lsbCBiZSB7Z2FzX2xpbWl0OiAzMDBrLCB2YWx1ZTogMS41IFhMTX0gd2hlbiB0aGUgbWVzc2FnZSBpcyBleGVjdXRlZCBvbiB0aGUgcmVtb3RlIGx6X3JlY2VpdmUoKSBmdW5jdGlvbi4KVGhlIHByZXNlbmNlIG9mIGR1cGxpY2F0ZWQgb3B0aW9ucyBpcyBoYW5kbGVkIG9mZi1jaGFpbiBpbiB0aGUgdmVyaWZpZXIvZXhlY3V0b3IuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoqIGBleHRyYV9vcHRpb25zYCAtIEFkZGl0aW9uYWwgb3B0aW9ucyBwYXNzZWQgYnkgdGhlIGNhbGxlcgoKIyBSZXR1cm5zClRoZSBjb21iaW5hdGlvbiBvZiBjYWxsZXIgc3BlY2lmaWVkIG9wdGlvbnMgQU5EIGVuZm9yY2VkIG9wdGlvbnMAAAAAAA9jb21iaW5lX29wdGlvbnMAAAAAAwAAAAAA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bmF0aXZlIHRva2VuIGZlZSBpcyBsZXNzIHRoYW4gcmVxdWlyZWQAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAsU3VwcGxpZWQgWlJPIHRva2VuIGZlZSBpcyBsZXNzIHRoYW4gcmVxdWlyZWQAAAASSW5zdWZmaWNpZW50WnJvRmVlAAAAAAAHAAAAK1RpbWVvdXQgZXhwaXJ5IGlzIGludmFsaWQgKGFscmVhZHkgZXhwaXJlZCkAAAAADUludmFsaWRFeHBpcnkAAAAAAAAIAAAAIEZlZSBhbW91bnQgaXMgaW52YWxpZCAobmVnYXRpdmUpAAAAEEludmFsaWRGZWVBbW91bnQAAAAJAAAAK0NvbXBvc2UgaW5kZXggZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgdmFsdWUAAAAADEludmFsaWRJbmRleAAAAAoAAAAsTm9uY2UgaXMgaW52YWxpZCBmb3IgdGhlIHJlcXVlc3RlZCBvcGVyYXRpb24AAAAMSW52YWxpZE5vbmNlAAAACwAAADBQYXlsb2FkIGhhc2ggaXMgaW52YWxpZCAoZW1wdHkgaGFzaCBub3QgYWxsb3dlZCkAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAQVJlY2VpdmUgbGlicmFyeSBpcyBub3QgdmFsaWQgZm9yIHRoZSByZWNlaXZlciBhbmQgc291cmNlIGVuZHBvaW50AAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAxT3BlcmF0aW9uIHJlcXVpcmVzIGEgbm9uLWRlZmF1bHQgKGN1c3RvbSkgbGlicmFyeQAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAnTGlicmFyeSBtdXN0IHN1cHBvcnQgcmVjZWl2aW5nIG1lc3NhZ2VzAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAACxMaWJyYXJ5IG11c3QgYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBlbmRwb2ludAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAlTGlicmFyeSBtdXN0IHN1cHBvcnQgc2VuZGluZyBtZXNzYWdlcwAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAOU1lc3NhZ2luZyBwYXRoIGNhbm5vdCBiZSBpbml0aWFsaXplZCBmb3IgdGhlIGdpdmVuIG9yaWdpbgAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAvTWVzc2FnZSBjYW5ub3QgYmUgdmVyaWZpZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4AAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAACtQYXlsb2FkIGhhc2ggZG9lcyBub3QgbWF0Y2ggdGhlIHN0b3JlZCBoYXNoAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAnTmV3IHZhbHVlIGlzIHRoZSBzYW1lIGFzIGV4aXN0aW5nIHZhbHVlAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAL0NhbGxlciBpcyBub3QgYXV0aG9yaXplZCAobm90IE9BcHAgb3IgZGVsZWdhdGUpAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAK0VuZHBvaW50IElEIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGxpYnJhcnkAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAOVpSTyBmZWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyB3aGVuIHBheV9pbl96cm8gaXMgdHJ1ZQAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAHFpSTyB0b2tlbiBhZGRyZXNzIGlzIG5vdCBzZXQAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAzVW5peCB0aW1lc3RhbXAgaW4gc2Vjb25kcyB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAAAAZleHBpcnkAAAAAAAYAAABDVGhlIG9sZCBsaWJyYXJ5IGFkZHJlc3MgdGhhdCByZW1haW5zIHZhbGlkIGR1cmluZyB0aGUgZ3JhY2UgcGVyaW9kLgAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAABAAAABRPQXBwRXJyb3I6IDIwMDAtMjA5OQAAAAAAAAAJT0FwcEVycm9yAAAAAAAABAAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAAB9AAAAAAAAAABk5vUGVlcgAAAAAH0QAAAAAAAAAIT25seVBlZXIAAAfSAAAAAAAAABNacm9Ub2tlblVuYXZhaWxhYmxlAAAAB9MAAAACAAAAAAAAAAAAAAAPT0FwcENvcmVTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAEAAAAAAAAABFBlZXIAAAABAAAABAAAAAUAAAAAAAAAAAAAAAdQZWVyU2V0AAAAAAEAAAAIcGVlcl9zZXQAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAIAAAAAAAAAAAAAABdPQXBwT3B0aW9uc1R5cGUzU3RvcmFnZQAAAAABAAAAAQAAAAAAAAAPRW5mb3JjZWRPcHRpb25zAAAAAAIAAAAEAAAABAAAAAUAAAAAAAAAAAAAABFFbmZvcmNlZE9wdGlvblNldAAAAAAAAAEAAAATZW5mb3JjZWRfb3B0aW9uX3NldAAAAAABAAAAAAAAABZlbmZvcmNlZF9vcHRpb25fcGFyYW1zAAAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAACAAAABAAAABNPRlRFcnJvcjogMzAwMC0zMDk5AAAAAAAAAAAIT0ZURXJyb3IAAAAFAAAAAAAAAA1JbnZhbGlkQW1vdW50AAAAAAALuAAAAAAAAAAUSW52YWxpZExvY2FsRGVjaW1hbHMAAAu5AAAAAAAAAA5Ob3RJbml0aWFsaXplZAAAAAALugAAAAAAAAAIT3ZlcmZsb3cAAAu7AAAAAAAAABBTbGlwcGFnZUV4Y2VlZGVkAAALvAAAAAUAAAAAAAAAAAAAAAdPRlRTZW50AAAAAAEAAAAIb2Z0X3NlbnQAAAAFAAAAAAAAAARndWlkAAAD7gAAACAAAAAAAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAAAAAADmFtb3VudF9zZW50X2xkAAAAAAALAAAAAAAAAAAAAAASYW1vdW50X3JlY2VpdmVkX2xkAAAAAAALAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALT0ZUUmVjZWl2ZWQAAAAAAQAAAAxvZnRfcmVjZWl2ZWQAAAAEAAAAAAAAAARndWlkAAAD7gAAACAAAAAAAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAAAAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAAAAAAEmFtb3VudF9yZWNlaXZlZF9sZAAAAAAACwAAAAAAAAACAAAABQAAAAAAAAAAAAAAD01zZ0luc3BlY3RvclNldAAAAAABAAAAEW1zZ19pbnNwZWN0b3Jfc2V0AAAAAAAAAQAAAAAAAAAJaW5zcGVjdG9yAAAAAAAD6AAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAApPRlRTdG9yYWdlAAAAAAADAAAAAAAAAAAAAAAMRGVjaW1hbHNEaWZmAAAAAAAAAAAAAAAFVG9rZW4AAAAAAAAAAAAAAAAAAAxNc2dJbnNwZWN0b3IAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgT0ZUIHRva2VucyBjcm9zcy1jaGFpbgAAAAAAAAAAAAAJU2VuZFBhcmFtAAAAAAAABwAAACRUaGUgYW1vdW50IHRvIHNlbmQgaW4gbG9jYWwgZGVjaW1hbHMAAAAJYW1vdW50X2xkAAAAAAAACwAAADhDb21wb3NlIG1lc3NhZ2UgdG8gZXhlY3V0ZSBvbiB0aGUgZGVzdGluYXRpb24gKE9wdGlvbmFsKQAAAAtjb21wb3NlX21zZwAAAAAOAAAAG1RoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRAAAAAAHZHN0X2VpZAAAAAAEAAAAN0FkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIExheWVyWmVybyBtZXNzYWdlIChPcHRpb25hbCkAAAAADWV4dHJhX29wdGlvbnMAAAAAAAAOAAAARVRoZSBtaW5pbXVtIGFtb3VudCB0byByZWNlaXZlIGluIGxvY2FsIGRlY2ltYWxzIChzbGlwcGFnZSBwcm90ZWN0aW9uKQAAAAAAAA1taW5fYW1vdW50X2xkAAAAAAAACwAAACpPRlQgY29tbWFuZCBmb3IgY3VzdG9tIGJlaGF2aW9yIChPcHRpb25hbCkAAAAAAAdvZnRfY21kAAAAAA4AAAA5VGhlIHJlY2lwaWVudCBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpAAAAAAAAAnRvAAAAAAPuAAAAIAAAAAEAAAAiVHJhbnNmZXIgbGltaXRzIGZvciBPRlQgb3BlcmF0aW9ucwAAAAAAAAAAAAhPRlRMaW1pdAAAAAIAAAAsVGhlIG1heGltdW0gYW1vdW50IHRvIHNlbmQgaW4gbG9jYWwgZGVjaW1hbHMAAAANbWF4X2Ftb3VudF9sZAAAAAAAAAsAAAAsVGhlIG1pbmltdW0gYW1vdW50IHRvIHNlbmQgaW4gbG9jYWwgZGVjaW1hbHMAAAANbWluX2Ftb3VudF9sZAAAAAAAAAsAAAABAAAAP1JlY2VpcHQgY29udGFpbmluZyBhbW91bnRzIHNlbnQgYW5kIHJlY2VpdmVkIGluIGFuIE9GVCB0cmFuc2ZlcgAAAAAAAAAACk9GVFJlY2VpcHQAAAAAAAIAAAAzVGhlIGFtb3VudCByZWNlaXZlZCBpbiBsb2NhbCBkZWNpbWFscyBvbiB0aGUgcmVtb3RlAAAAABJhbW91bnRfcmVjZWl2ZWRfbGQAAAAAAAsAAAAhVGhlIGFtb3VudCBzZW50IGluIGxvY2FsIGRlY2ltYWxzAAAAAAAADmFtb3VudF9zZW50X2xkAAAAAAALAAAAAQAAAC5EZXRhaWxzIGFib3V0IGZlZXMgY2hhcmdlZCBpbiBhbiBPRlQgb3BlcmF0aW9uAAAAAAAAAAAADE9GVEZlZURldGFpbAAAAAIAAAAaVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBmZWUAAAAAAAtkZXNjcmlwdGlvbgAAAAAOAAAAf1RoZSBhbW91bnQgb2YgdGhlIGZlZSBpbiBsb2NhbCBkZWNpbWFscy4gUG9zaXRpdmUgdmFsdWVzIHJlcHJlc2VudCBmZWVzIGNoYXJnZWQsCndoaWxlIG5lZ2F0aXZlIHZhbHVlcyByZXByZXNlbnQgcmV3YXJkcyBnaXZlbi4AAAAADWZlZV9hbW91bnRfbGQAAAAAAAALAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAHAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBwAAAAAAAAAKSW52YWxpZFR0bAAAAAAECAAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQJAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECgAAAAAAAAALT3duZXJOb3RTZXQAAAAECwAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQMAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAMAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAAAAAAAA5VcGdyYWRlc0Zyb3plbgAAAAAEHAAAAAQAAAAYTXVsdGlTaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aVNpZ0Vycm9yAAAAAAAACQAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABCUAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQmAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJwAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQoAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKQAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQqAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKwAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCwAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlTaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAPEV2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgY2FuY2VsbGVkLgAAAAAAAAAaT3duZXJzaGlwVHJhbnNmZXJDYW5jZWxsZWQAAAAAAAEAAAAcb3duZXJzaGlwX3RyYW5zZmVyX2NhbmNlbGxlZAAAAAIAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAF2NhbmNlbGxlZF9wZW5kaW5nX293bmVyAAAAABMAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABvDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMS4wIzg2YzUwYTFlYTRmODdiNDBhZGQzMDY0ZmY5ZGY5NWM3NTUzNTY1YzUAAFMOY29udHJhY3RtZXRhdjAAAAAAAAAABmNsaXZlcgAAAAAALzI1LjAuMCNhNjQ5MjVlOTM5MWMzZDNiM2VmOGU1M2RjNjBjMjNkYjllNmE4MmU0AA==";
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 = "6ded194b3d2189d1ab1b2bb0c877f3f758363aff666fbff8a67c25b545bad453";
16
+ export declare const WASM_HASH = "ecf9c8191d272ba8c743e743738241148f509549b9a5ab41be11ad50e1bffd0f";
17
17
  /**
18
18
  * Get the WASM bytecode as a Buffer
19
19
  * Use this to upload the WASM to the network
@@ -91,78 +91,153 @@ export declare enum OftType {
91
91
  MintBurn = 1
92
92
  }
93
93
  export declare const EndpointError: {
94
+ /**
95
+ * Library is already registered with the endpoint
96
+ */
94
97
  1: {
95
98
  message: string;
96
99
  };
100
+ /**
101
+ * Compose message already exists for this GUID and index
102
+ */
97
103
  2: {
98
104
  message: string;
99
105
  };
106
+ /**
107
+ * Compose message not found for the given GUID and index
108
+ */
100
109
  3: {
101
110
  message: string;
102
111
  };
112
+ /**
113
+ * Default receive library is not set for the source endpoint
114
+ */
103
115
  4: {
104
116
  message: string;
105
117
  };
118
+ /**
119
+ * Default send library is not set for the destination endpoint
120
+ */
106
121
  5: {
107
122
  message: string;
108
123
  };
124
+ /**
125
+ * Supplied native token fee is less than required
126
+ */
109
127
  6: {
110
128
  message: string;
111
129
  };
130
+ /**
131
+ * Supplied ZRO token fee is less than required
132
+ */
112
133
  7: {
113
134
  message: string;
114
135
  };
136
+ /**
137
+ * Timeout expiry is invalid (already expired)
138
+ */
115
139
  8: {
116
140
  message: string;
117
141
  };
142
+ /**
143
+ * Fee amount is invalid (negative)
144
+ */
118
145
  9: {
119
146
  message: string;
120
147
  };
148
+ /**
149
+ * Compose index exceeds maximum allowed value
150
+ */
121
151
  10: {
122
152
  message: string;
123
153
  };
154
+ /**
155
+ * Nonce is invalid for the requested operation
156
+ */
124
157
  11: {
125
158
  message: string;
126
159
  };
160
+ /**
161
+ * Payload hash is invalid (empty hash not allowed)
162
+ */
127
163
  12: {
128
164
  message: string;
129
165
  };
166
+ /**
167
+ * Receive library is not valid for the receiver and source endpoint
168
+ */
130
169
  13: {
131
170
  message: string;
132
171
  };
172
+ /**
173
+ * Operation requires a non-default (custom) library
174
+ */
133
175
  14: {
134
176
  message: string;
135
177
  };
178
+ /**
179
+ * Library must support receiving messages
180
+ */
136
181
  15: {
137
182
  message: string;
138
183
  };
184
+ /**
185
+ * Library must be registered with the endpoint
186
+ */
139
187
  16: {
140
188
  message: string;
141
189
  };
190
+ /**
191
+ * Library must support sending messages
192
+ */
142
193
  17: {
143
194
  message: string;
144
195
  };
196
+ /**
197
+ * Messaging path cannot be initialized for the given origin
198
+ */
145
199
  18: {
146
200
  message: string;
147
201
  };
202
+ /**
203
+ * Message cannot be verified for the given origin
204
+ */
148
205
  19: {
149
206
  message: string;
150
207
  };
208
+ /**
209
+ * Payload hash does not match the stored hash
210
+ */
151
211
  20: {
152
212
  message: string;
153
213
  };
214
+ /**
215
+ * New value is the same as existing value
216
+ */
154
217
  21: {
155
218
  message: string;
156
219
  };
220
+ /**
221
+ * Caller is not authorized (not OApp or delegate)
222
+ */
157
223
  22: {
158
224
  message: string;
159
225
  };
226
+ /**
227
+ * Endpoint ID is not supported by the library
228
+ */
160
229
  23: {
161
230
  message: string;
162
231
  };
232
+ /**
233
+ * ZRO fee must be greater than zero when pay_in_zro is true
234
+ */
163
235
  24: {
164
236
  message: string;
165
237
  };
238
+ /**
239
+ * ZRO token address is not set
240
+ */
166
241
  25: {
167
242
  message: string;
168
243
  };
@@ -277,11 +352,11 @@ export interface MessageLibVersion {
277
352
  */
278
353
  export interface Timeout {
279
354
  /**
280
- * Unix timestamp when the timeout expires.
355
+ * Unix timestamp in seconds when the timeout expires.
281
356
  */
282
357
  expiry: u64;
283
358
  /**
284
- * The new library address to transition to.
359
+ * The old library address that remains valid during the grace period.
285
360
  */
286
361
  lib: string;
287
362
  }
@@ -569,6 +644,9 @@ export declare const OwnableError: {
569
644
  1035: {
570
645
  message: string;
571
646
  };
647
+ 1036: {
648
+ message: string;
649
+ };
572
650
  };
573
651
  /**
574
652
  * BytesExtError: 1040-1049
@@ -593,9 +671,9 @@ export declare const UpgradeableError: {
593
671
  };
594
672
  };
595
673
  /**
596
- * MultisigError: 1060-1069
674
+ * MultiSigError: 1060-1069
597
675
  */
598
- export declare const MultisigError: {
676
+ export declare const MultiSigError: {
599
677
  1060: {
600
678
  message: string;
601
679
  };
@@ -620,8 +698,11 @@ export declare const MultisigError: {
620
698
  1067: {
621
699
  message: string;
622
700
  };
701
+ 1068: {
702
+ message: string;
703
+ };
623
704
  };
624
- export type MultisigStorage = {
705
+ export type MultiSigStorage = {
625
706
  tag: "Signers";
626
707
  values: void;
627
708
  } | {
@@ -679,20 +760,7 @@ export interface Client {
679
760
  direction: Direction;
680
761
  eid: u32;
681
762
  config: Option<RateLimitConfig>;
682
- }, txnOptions?: {
683
- /**
684
- * The fee to pay for the transaction. Default: BASE_FEE
685
- */
686
- fee?: number;
687
- /**
688
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
689
- */
690
- timeoutInSeconds?: number;
691
- /**
692
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
693
- */
694
- simulate?: boolean;
695
- }) => Promise<AssembledTransaction<null>>;
763
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
696
764
  /**
697
765
  * Construct and simulate a rate_limit_config 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.
698
766
  * Returns the rate limit configuration for a direction and endpoint.
@@ -701,20 +769,7 @@ export interface Client {
701
769
  rate_limit_config: ({ direction, eid }: {
702
770
  direction: Direction;
703
771
  eid: u32;
704
- }, txnOptions?: {
705
- /**
706
- * The fee to pay for the transaction. Default: BASE_FEE
707
- */
708
- fee?: number;
709
- /**
710
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
711
- */
712
- timeoutInSeconds?: number;
713
- /**
714
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
715
- */
716
- simulate?: boolean;
717
- }) => Promise<AssembledTransaction<Option<RateLimitConfig>>>;
772
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<RateLimitConfig>>>;
718
773
  /**
719
774
  * Construct and simulate a rate_limit_in_flight 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.
720
775
  * Returns the current in-flight amount for a direction and endpoint.
@@ -722,20 +777,7 @@ export interface Client {
722
777
  rate_limit_in_flight: ({ direction, eid }: {
723
778
  direction: Direction;
724
779
  eid: u32;
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<i128>>;
780
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<i128>>;
739
781
  /**
740
782
  * Construct and simulate a rate_limit_capacity 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
783
  * Returns the available capacity for a direction and endpoint.
@@ -744,40 +786,14 @@ export interface Client {
744
786
  rate_limit_capacity: ({ direction, eid }: {
745
787
  direction: Direction;
746
788
  eid: u32;
747
- }, txnOptions?: {
748
- /**
749
- * The fee to pay for the transaction. Default: BASE_FEE
750
- */
751
- fee?: number;
752
- /**
753
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
754
- */
755
- timeoutInSeconds?: number;
756
- /**
757
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
758
- */
759
- simulate?: boolean;
760
- }) => Promise<AssembledTransaction<i128>>;
789
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<i128>>;
761
790
  /**
762
791
  * Construct and simulate a set_default_fee_bps 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.
763
792
  * Sets the default fee rate in basis points.
764
793
  */
765
794
  set_default_fee_bps: ({ default_fee_bps }: {
766
795
  default_fee_bps: u64;
767
- }, txnOptions?: {
768
- /**
769
- * The fee to pay for the transaction. Default: BASE_FEE
770
- */
771
- fee?: number;
772
- /**
773
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
774
- */
775
- timeoutInSeconds?: number;
776
- /**
777
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
778
- */
779
- simulate?: boolean;
780
- }) => Promise<AssembledTransaction<null>>;
796
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
781
797
  /**
782
798
  * Construct and simulate a set_fee_bps 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.
783
799
  * Sets or removes the fee rate for a specific destination endpoint.
@@ -789,116 +805,38 @@ export interface Client {
789
805
  set_fee_bps: ({ dst_eid, fee_bps }: {
790
806
  dst_eid: u32;
791
807
  fee_bps: Option<u64>;
792
- }, txnOptions?: {
793
- /**
794
- * The fee to pay for the transaction. Default: BASE_FEE
795
- */
796
- fee?: number;
797
- /**
798
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
799
- */
800
- timeoutInSeconds?: number;
801
- /**
802
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
803
- */
804
- simulate?: boolean;
805
- }) => Promise<AssembledTransaction<null>>;
808
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
806
809
  /**
807
810
  * Construct and simulate a set_fee_deposit_address 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.
808
811
  * Sets the address where collected fees will be deposited.
809
812
  */
810
813
  set_fee_deposit_address: ({ fee_deposit_address }: {
811
814
  fee_deposit_address: string;
812
- }, txnOptions?: {
813
- /**
814
- * The fee to pay for the transaction. Default: BASE_FEE
815
- */
816
- fee?: number;
817
- /**
818
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
819
- */
820
- timeoutInSeconds?: number;
821
- /**
822
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
823
- */
824
- simulate?: boolean;
825
- }) => Promise<AssembledTransaction<null>>;
815
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
826
816
  /**
827
817
  * Construct and simulate a default_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
828
818
  * Returns the default fee rate in basis points.
829
819
  */
830
- default_fee_bps: (txnOptions?: {
831
- /**
832
- * The fee to pay for the transaction. Default: BASE_FEE
833
- */
834
- fee?: number;
835
- /**
836
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
837
- */
838
- timeoutInSeconds?: number;
839
- /**
840
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
841
- */
842
- simulate?: boolean;
843
- }) => Promise<AssembledTransaction<u64>>;
820
+ default_fee_bps: (options?: MethodOptions) => Promise<AssembledTransaction<u64>>;
844
821
  /**
845
822
  * Construct and simulate a fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
846
823
  * Returns the fee rate for a specific destination, if set.
847
824
  */
848
825
  fee_bps: ({ dst_eid }: {
849
826
  dst_eid: u32;
850
- }, txnOptions?: {
851
- /**
852
- * The fee to pay for the transaction. Default: BASE_FEE
853
- */
854
- fee?: number;
855
- /**
856
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
857
- */
858
- timeoutInSeconds?: number;
859
- /**
860
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
861
- */
862
- simulate?: boolean;
863
- }) => Promise<AssembledTransaction<Option<u64>>>;
827
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<u64>>>;
864
828
  /**
865
829
  * Construct and simulate a effective_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
866
830
  * Returns the effective fee rate for a destination (destination-specific or default).
867
831
  */
868
832
  effective_fee_bps: ({ dst_eid }: {
869
833
  dst_eid: u32;
870
- }, txnOptions?: {
871
- /**
872
- * The fee to pay for the transaction. Default: BASE_FEE
873
- */
874
- fee?: number;
875
- /**
876
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
877
- */
878
- timeoutInSeconds?: number;
879
- /**
880
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
881
- */
882
- simulate?: boolean;
883
- }) => Promise<AssembledTransaction<u64>>;
834
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<u64>>;
884
835
  /**
885
836
  * Construct and simulate a fee_deposit_address 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.
886
837
  * Returns the fee deposit address.
887
838
  */
888
- fee_deposit_address: (txnOptions?: {
889
- /**
890
- * The fee to pay for the transaction. Default: BASE_FEE
891
- */
892
- fee?: number;
893
- /**
894
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
895
- */
896
- timeoutInSeconds?: number;
897
- /**
898
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
899
- */
900
- simulate?: boolean;
901
- }) => Promise<AssembledTransaction<string>>;
839
+ fee_deposit_address: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
902
840
  /**
903
841
  * Construct and simulate a set_paused 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.
904
842
  * Sets the paused state of the OFT.
@@ -910,129 +848,38 @@ export interface Client {
910
848
  */
911
849
  set_paused: ({ paused }: {
912
850
  paused: boolean;
913
- }, txnOptions?: {
914
- /**
915
- * The fee to pay for the transaction. Default: BASE_FEE
916
- */
917
- fee?: number;
918
- /**
919
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
920
- */
921
- timeoutInSeconds?: number;
922
- /**
923
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
924
- */
925
- simulate?: boolean;
926
- }) => Promise<AssembledTransaction<null>>;
851
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
927
852
  /**
928
853
  * Construct and simulate a is_paused 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.
929
854
  * Returns the paused state of the OFT.
930
855
  */
931
- is_paused: (txnOptions?: {
932
- /**
933
- * The fee to pay for the transaction. Default: BASE_FEE
934
- */
935
- fee?: number;
936
- /**
937
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
938
- */
939
- timeoutInSeconds?: number;
940
- /**
941
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
942
- */
943
- simulate?: boolean;
944
- }) => Promise<AssembledTransaction<boolean>>;
856
+ is_paused: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
945
857
  /**
946
858
  * Construct and simulate a quote_oft 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.
947
859
  */
948
860
  quote_oft: ({ send_param }: {
949
861
  send_param: SendParam;
950
- }, txnOptions?: {
951
- /**
952
- * The fee to pay for the transaction. Default: BASE_FEE
953
- */
954
- fee?: number;
955
- /**
956
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
957
- */
958
- timeoutInSeconds?: number;
959
- /**
960
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
961
- */
962
- simulate?: boolean;
963
- }) => Promise<AssembledTransaction<readonly [OFTLimit, Array<OFTFeeDetail>, OFTReceipt]>>;
862
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<readonly [OFTLimit, Array<OFTFeeDetail>, OFTReceipt]>>;
964
863
  /**
965
864
  * Construct and simulate a token transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
966
865
  * Retrieves the token address associated with this OFT.
967
866
  */
968
- token: (txnOptions?: {
969
- /**
970
- * The fee to pay for the transaction. Default: BASE_FEE
971
- */
972
- fee?: number;
973
- /**
974
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
975
- */
976
- timeoutInSeconds?: number;
977
- /**
978
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
979
- */
980
- simulate?: boolean;
981
- }) => Promise<AssembledTransaction<string>>;
867
+ token: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
982
868
  /**
983
869
  * Construct and simulate a oft_version transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
984
870
  * Returns OFT version as (major, minor).
985
871
  */
986
- oft_version: (txnOptions?: {
987
- /**
988
- * The fee to pay for the transaction. Default: BASE_FEE
989
- */
990
- fee?: number;
991
- /**
992
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
993
- */
994
- timeoutInSeconds?: number;
995
- /**
996
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
997
- */
998
- simulate?: boolean;
999
- }) => Promise<AssembledTransaction<readonly [u64, u64]>>;
872
+ oft_version: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [u64, u64]>>;
1000
873
  /**
1001
874
  * Construct and simulate a shared_decimals 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.
1002
875
  * Retrieves the shared decimals used for cross-chain normalization.
1003
876
  */
1004
- shared_decimals: (txnOptions?: {
1005
- /**
1006
- * The fee to pay for the transaction. Default: BASE_FEE
1007
- */
1008
- fee?: number;
1009
- /**
1010
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1011
- */
1012
- timeoutInSeconds?: number;
1013
- /**
1014
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1015
- */
1016
- simulate?: boolean;
1017
- }) => Promise<AssembledTransaction<u32>>;
877
+ shared_decimals: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>;
1018
878
  /**
1019
879
  * Construct and simulate a decimal_conversion_rate 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.
1020
880
  * Retrieves the decimal conversion rate used for cross-chain normalization.
1021
881
  */
1022
- decimal_conversion_rate: (txnOptions?: {
1023
- /**
1024
- * The fee to pay for the transaction. Default: BASE_FEE
1025
- */
1026
- fee?: number;
1027
- /**
1028
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1029
- */
1030
- timeoutInSeconds?: number;
1031
- /**
1032
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1033
- */
1034
- simulate?: boolean;
1035
- }) => Promise<AssembledTransaction<i128>>;
882
+ decimal_conversion_rate: (options?: MethodOptions) => Promise<AssembledTransaction<i128>>;
1036
883
  /**
1037
884
  * Construct and simulate a approval_required 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.
1038
885
  * Whether a separate token approval is required before sending.
@@ -1043,38 +890,12 @@ export interface Client {
1043
890
  * - `true` if a separate token approval step is required
1044
891
  * - `false` if no separate approval is needed
1045
892
  */
1046
- approval_required: (txnOptions?: {
1047
- /**
1048
- * The fee to pay for the transaction. Default: BASE_FEE
1049
- */
1050
- fee?: number;
1051
- /**
1052
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1053
- */
1054
- timeoutInSeconds?: number;
1055
- /**
1056
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1057
- */
1058
- simulate?: boolean;
1059
- }) => Promise<AssembledTransaction<boolean>>;
893
+ approval_required: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1060
894
  /**
1061
895
  * Construct and simulate a msg_inspector 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.
1062
896
  * Returns the message inspector address if set.
1063
897
  */
1064
- msg_inspector: (txnOptions?: {
1065
- /**
1066
- * The fee to pay for the transaction. Default: BASE_FEE
1067
- */
1068
- fee?: number;
1069
- /**
1070
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1071
- */
1072
- timeoutInSeconds?: number;
1073
- /**
1074
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1075
- */
1076
- simulate?: boolean;
1077
- }) => Promise<AssembledTransaction<Option<string>>>;
898
+ msg_inspector: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
1078
899
  /**
1079
900
  * Construct and simulate a set_msg_inspector 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.
1080
901
  * Sets or removes the message inspector address.
@@ -1088,20 +909,7 @@ export interface Client {
1088
909
  */
1089
910
  set_msg_inspector: ({ inspector }: {
1090
911
  inspector: Option<string>;
1091
- }, txnOptions?: {
1092
- /**
1093
- * The fee to pay for the transaction. Default: BASE_FEE
1094
- */
1095
- fee?: number;
1096
- /**
1097
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1098
- */
1099
- timeoutInSeconds?: number;
1100
- /**
1101
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1102
- */
1103
- simulate?: boolean;
1104
- }) => Promise<AssembledTransaction<null>>;
912
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1105
913
  /**
1106
914
  * Construct and simulate a quote_send 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.
1107
915
  * Quotes a send operation including LayerZero messaging fees.
@@ -1110,20 +918,7 @@ export interface Client {
1110
918
  from: string;
1111
919
  send_param: SendParam;
1112
920
  pay_in_zro: boolean;
1113
- }, txnOptions?: {
1114
- /**
1115
- * The fee to pay for the transaction. Default: BASE_FEE
1116
- */
1117
- fee?: number;
1118
- /**
1119
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1120
- */
1121
- timeoutInSeconds?: number;
1122
- /**
1123
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1124
- */
1125
- simulate?: boolean;
1126
- }) => Promise<AssembledTransaction<MessagingFee>>;
921
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<MessagingFee>>;
1127
922
  /**
1128
923
  * Construct and simulate a send 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.
1129
924
  * Sends tokens cross-chain to another endpoint.
@@ -1138,91 +933,26 @@ export interface Client {
1138
933
  send_param: SendParam;
1139
934
  fee: MessagingFee;
1140
935
  refund_address: string;
1141
- }, txnOptions?: {
1142
- /**
1143
- * The fee to pay for the transaction. Default: BASE_FEE
1144
- */
1145
- fee?: number;
1146
- /**
1147
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1148
- */
1149
- timeoutInSeconds?: number;
1150
- /**
1151
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1152
- */
1153
- simulate?: boolean;
1154
- }) => Promise<AssembledTransaction<readonly [MessagingReceipt, OFTReceipt]>>;
936
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<readonly [MessagingReceipt, OFTReceipt]>>;
1155
937
  /**
1156
938
  * Construct and simulate a oft_type 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.
1157
939
  * Returns the type of operation for this OFT (LockUnlock or MintBurn)
1158
940
  */
1159
- oft_type: (txnOptions?: {
1160
- /**
1161
- * The fee to pay for the transaction. Default: BASE_FEE
1162
- */
1163
- fee?: number;
1164
- /**
1165
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1166
- */
1167
- timeoutInSeconds?: number;
1168
- /**
1169
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1170
- */
1171
- simulate?: boolean;
1172
- }) => Promise<AssembledTransaction<OftType>>;
941
+ oft_type: (options?: MethodOptions) => Promise<AssembledTransaction<OftType>>;
1173
942
  /**
1174
943
  * 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.
1175
944
  */
1176
- authorizer: (txnOptions?: {
1177
- /**
1178
- * The fee to pay for the transaction. Default: BASE_FEE
1179
- */
1180
- fee?: number;
1181
- /**
1182
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1183
- */
1184
- timeoutInSeconds?: number;
1185
- /**
1186
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1187
- */
1188
- simulate?: boolean;
1189
- }) => Promise<AssembledTransaction<string>>;
945
+ authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
1190
946
  /**
1191
947
  * 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.
1192
948
  * Returns the current owner address, or None if no owner is set.
1193
949
  */
1194
- owner: (txnOptions?: {
1195
- /**
1196
- * The fee to pay for the transaction. Default: BASE_FEE
1197
- */
1198
- fee?: number;
1199
- /**
1200
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1201
- */
1202
- timeoutInSeconds?: number;
1203
- /**
1204
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1205
- */
1206
- simulate?: boolean;
1207
- }) => Promise<AssembledTransaction<Option<string>>>;
950
+ owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
1208
951
  /**
1209
952
  * 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.
1210
953
  * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
1211
954
  */
1212
- pending_owner: (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<Option<string>>>;
955
+ pending_owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
1226
956
  /**
1227
957
  * 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.
1228
958
  * Transfers ownership immediately to a new address.
@@ -1236,20 +966,7 @@ export interface Client {
1236
966
  */
1237
967
  transfer_ownership: ({ new_owner }: {
1238
968
  new_owner: string;
1239
- }, txnOptions?: {
1240
- /**
1241
- * The fee to pay for the transaction. Default: BASE_FEE
1242
- */
1243
- fee?: number;
1244
- /**
1245
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1246
- */
1247
- timeoutInSeconds?: number;
1248
- /**
1249
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1250
- */
1251
- simulate?: boolean;
1252
- }) => Promise<AssembledTransaction<null>>;
969
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1253
970
  /**
1254
971
  * 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.
1255
972
  * Proposes an ownership transfer to a new address.
@@ -1271,20 +988,7 @@ export interface Client {
1271
988
  propose_ownership_transfer: ({ new_owner, ttl }: {
1272
989
  new_owner: string;
1273
990
  ttl: u32;
1274
- }, txnOptions?: {
1275
- /**
1276
- * The fee to pay for the transaction. Default: BASE_FEE
1277
- */
1278
- fee?: number;
1279
- /**
1280
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1281
- */
1282
- timeoutInSeconds?: number;
1283
- /**
1284
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1285
- */
1286
- simulate?: boolean;
1287
- }) => Promise<AssembledTransaction<null>>;
991
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1288
992
  /**
1289
993
  * 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.
1290
994
  * Accepts a pending 2-step ownership transfer.
@@ -1294,20 +998,7 @@ export interface Client {
1294
998
  * # Panics
1295
999
  * - `NoPendingTransfer` if there is no pending transfer (or it expired)
1296
1000
  */
1297
- accept_ownership: (txnOptions?: {
1298
- /**
1299
- * The fee to pay for the transaction. Default: BASE_FEE
1300
- */
1301
- fee?: number;
1302
- /**
1303
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1304
- */
1305
- timeoutInSeconds?: number;
1306
- /**
1307
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1308
- */
1309
- simulate?: boolean;
1310
- }) => Promise<AssembledTransaction<null>>;
1001
+ accept_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1311
1002
  /**
1312
1003
  * 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.
1313
1004
  * Permanently renounces ownership.
@@ -1316,20 +1007,7 @@ export interface Client {
1316
1007
  * - `OwnerNotSet` if no owner is currently set
1317
1008
  * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
1318
1009
  */
1319
- renounce_ownership: (txnOptions?: {
1320
- /**
1321
- * The fee to pay for the transaction. Default: BASE_FEE
1322
- */
1323
- fee?: number;
1324
- /**
1325
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1326
- */
1327
- timeoutInSeconds?: number;
1328
- /**
1329
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1330
- */
1331
- simulate?: boolean;
1332
- }) => Promise<AssembledTransaction<null>>;
1010
+ renounce_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1333
1011
  /**
1334
1012
  * 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.
1335
1013
  * Extends the instance TTL.
@@ -1342,20 +1020,7 @@ export interface Client {
1342
1020
  extend_instance_ttl: ({ threshold, extend_to }: {
1343
1021
  threshold: u32;
1344
1022
  extend_to: u32;
1345
- }, txnOptions?: {
1346
- /**
1347
- * The fee to pay for the transaction. Default: BASE_FEE
1348
- */
1349
- fee?: number;
1350
- /**
1351
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1352
- */
1353
- timeoutInSeconds?: number;
1354
- /**
1355
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1356
- */
1357
- simulate?: boolean;
1358
- }) => Promise<AssembledTransaction<null>>;
1023
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1359
1024
  /**
1360
1025
  * 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.
1361
1026
  * Sets TTL configs for instance and persistent storage.
@@ -1374,38 +1039,12 @@ export interface Client {
1374
1039
  set_ttl_configs: ({ instance, persistent }: {
1375
1040
  instance: Option<TtlConfig>;
1376
1041
  persistent: Option<TtlConfig>;
1377
- }, txnOptions?: {
1378
- /**
1379
- * The fee to pay for the transaction. Default: BASE_FEE
1380
- */
1381
- fee?: number;
1382
- /**
1383
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1384
- */
1385
- timeoutInSeconds?: number;
1386
- /**
1387
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1388
- */
1389
- simulate?: boolean;
1390
- }) => Promise<AssembledTransaction<null>>;
1042
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1391
1043
  /**
1392
1044
  * 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.
1393
1045
  * Returns the current TTL configs as (instance_config, persistent_config).
1394
1046
  */
1395
- ttl_configs: (txnOptions?: {
1396
- /**
1397
- * The fee to pay for the transaction. Default: BASE_FEE
1398
- */
1399
- fee?: number;
1400
- /**
1401
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1402
- */
1403
- timeoutInSeconds?: number;
1404
- /**
1405
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1406
- */
1407
- simulate?: boolean;
1408
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1047
+ ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1409
1048
  /**
1410
1049
  * 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.
1411
1050
  * Permanently freezes TTL configs, preventing any future modifications.
@@ -1416,38 +1055,12 @@ export interface Client {
1416
1055
  * # Panics
1417
1056
  * - `TtlConfigAlreadyFrozen` if already frozen
1418
1057
  */
1419
- freeze_ttl_configs: (txnOptions?: {
1420
- /**
1421
- * The fee to pay for the transaction. Default: BASE_FEE
1422
- */
1423
- fee?: number;
1424
- /**
1425
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1426
- */
1427
- timeoutInSeconds?: number;
1428
- /**
1429
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1430
- */
1431
- simulate?: boolean;
1432
- }) => Promise<AssembledTransaction<null>>;
1058
+ freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1433
1059
  /**
1434
1060
  * 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.
1435
1061
  * Returns whether TTL configs are frozen.
1436
1062
  */
1437
- is_ttl_configs_frozen: (txnOptions?: {
1438
- /**
1439
- * The fee to pay for the transaction. Default: BASE_FEE
1440
- */
1441
- fee?: number;
1442
- /**
1443
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1444
- */
1445
- timeoutInSeconds?: number;
1446
- /**
1447
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1448
- */
1449
- simulate?: boolean;
1450
- }) => Promise<AssembledTransaction<boolean>>;
1063
+ is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1451
1064
  /**
1452
1065
  * Construct and simulate a oapp_version transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1453
1066
  * Retrieves the OApp version information.
@@ -1457,20 +1070,7 @@ export interface Client {
1457
1070
  * - `sender_version`: The version of the OAppSender
1458
1071
  * - `receiver_version`: The version of the OAppReceiver
1459
1072
  */
1460
- oapp_version: (txnOptions?: {
1461
- /**
1462
- * The fee to pay for the transaction. Default: BASE_FEE
1463
- */
1464
- fee?: number;
1465
- /**
1466
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1467
- */
1468
- timeoutInSeconds?: number;
1469
- /**
1470
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1471
- */
1472
- simulate?: boolean;
1473
- }) => Promise<AssembledTransaction<readonly [u64, u64]>>;
1073
+ oapp_version: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [u64, u64]>>;
1474
1074
  /**
1475
1075
  * 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.
1476
1076
  * Retrieves the LayerZero endpoint address associated with the OApp.
@@ -1478,20 +1078,7 @@ export interface Client {
1478
1078
  * # Returns
1479
1079
  * The LayerZero endpoint address
1480
1080
  */
1481
- endpoint: (txnOptions?: {
1482
- /**
1483
- * The fee to pay for the transaction. Default: BASE_FEE
1484
- */
1485
- fee?: number;
1486
- /**
1487
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1488
- */
1489
- timeoutInSeconds?: number;
1490
- /**
1491
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1492
- */
1493
- simulate?: boolean;
1494
- }) => Promise<AssembledTransaction<string>>;
1081
+ endpoint: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
1495
1082
  /**
1496
1083
  * Construct and simulate a peer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1497
1084
  * Retrieves the peer (OApp) associated with a corresponding endpoint.
@@ -1504,20 +1091,7 @@ export interface Client {
1504
1091
  */
1505
1092
  peer: ({ eid }: {
1506
1093
  eid: u32;
1507
- }, txnOptions?: {
1508
- /**
1509
- * The fee to pay for the transaction. Default: BASE_FEE
1510
- */
1511
- fee?: number;
1512
- /**
1513
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1514
- */
1515
- timeoutInSeconds?: number;
1516
- /**
1517
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1518
- */
1519
- simulate?: boolean;
1520
- }) => Promise<AssembledTransaction<Option<Buffer>>>;
1094
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<Buffer>>>;
1521
1095
  /**
1522
1096
  * Construct and simulate a set_peer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1523
1097
  * Sets or removes the peer address (OApp instance) for a corresponding endpoint.
@@ -1529,20 +1103,7 @@ export interface Client {
1529
1103
  set_peer: ({ eid, peer }: {
1530
1104
  eid: u32;
1531
1105
  peer: Option<Buffer>;
1532
- }, txnOptions?: {
1533
- /**
1534
- * The fee to pay for the transaction. Default: BASE_FEE
1535
- */
1536
- fee?: number;
1537
- /**
1538
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1539
- */
1540
- timeoutInSeconds?: number;
1541
- /**
1542
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1543
- */
1544
- simulate?: boolean;
1545
- }) => Promise<AssembledTransaction<null>>;
1106
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1546
1107
  /**
1547
1108
  * Construct and simulate a set_delegate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1548
1109
  * Sets the delegate address for the OApp Core.
@@ -1552,20 +1113,7 @@ export interface Client {
1552
1113
  */
1553
1114
  set_delegate: ({ delegate }: {
1554
1115
  delegate: Option<string>;
1555
- }, txnOptions?: {
1556
- /**
1557
- * The fee to pay for the transaction. Default: BASE_FEE
1558
- */
1559
- fee?: number;
1560
- /**
1561
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1562
- */
1563
- timeoutInSeconds?: number;
1564
- /**
1565
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1566
- */
1567
- simulate?: boolean;
1568
- }) => Promise<AssembledTransaction<null>>;
1116
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1569
1117
  /**
1570
1118
  * Construct and simulate a allow_initialize_path transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1571
1119
  * Checks if a messaging path can be initialized for the given origin.
@@ -1578,20 +1126,7 @@ export interface Client {
1578
1126
  */
1579
1127
  allow_initialize_path: ({ origin }: {
1580
1128
  origin: Origin;
1581
- }, txnOptions?: {
1582
- /**
1583
- * The fee to pay for the transaction. Default: BASE_FEE
1584
- */
1585
- fee?: number;
1586
- /**
1587
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1588
- */
1589
- timeoutInSeconds?: number;
1590
- /**
1591
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1592
- */
1593
- simulate?: boolean;
1594
- }) => Promise<AssembledTransaction<boolean>>;
1129
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1595
1130
  /**
1596
1131
  * Construct and simulate a next_nonce transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1597
1132
  * Retrieves the next nonce for a given source endpoint and sender address.
@@ -1611,20 +1146,7 @@ export interface Client {
1611
1146
  next_nonce: ({ src_eid, sender }: {
1612
1147
  src_eid: u32;
1613
1148
  sender: Buffer;
1614
- }, txnOptions?: {
1615
- /**
1616
- * The fee to pay for the transaction. Default: BASE_FEE
1617
- */
1618
- fee?: number;
1619
- /**
1620
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1621
- */
1622
- timeoutInSeconds?: number;
1623
- /**
1624
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1625
- */
1626
- simulate?: boolean;
1627
- }) => Promise<AssembledTransaction<u64>>;
1149
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<u64>>;
1628
1150
  /**
1629
1151
  * Construct and simulate a lz_receive transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1630
1152
  * Entry point for receiving messages or packets from the LayerZero endpoint.
@@ -1650,20 +1172,7 @@ export interface Client {
1650
1172
  message: Buffer;
1651
1173
  extra_data: Buffer;
1652
1174
  value: i128;
1653
- }, txnOptions?: {
1654
- /**
1655
- * The fee to pay for the transaction. Default: BASE_FEE
1656
- */
1657
- fee?: number;
1658
- /**
1659
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1660
- */
1661
- timeoutInSeconds?: number;
1662
- /**
1663
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1664
- */
1665
- simulate?: boolean;
1666
- }) => Promise<AssembledTransaction<null>>;
1175
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1667
1176
  /**
1668
1177
  * Construct and simulate a is_compose_msg_sender transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1669
1178
  * Indicates whether an address is an approved composeMsg sender to the Endpoint.
@@ -1683,20 +1192,7 @@ export interface Client {
1683
1192
  origin: Origin;
1684
1193
  message: Buffer;
1685
1194
  sender: string;
1686
- }, txnOptions?: {
1687
- /**
1688
- * The fee to pay for the transaction. Default: BASE_FEE
1689
- */
1690
- fee?: number;
1691
- /**
1692
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1693
- */
1694
- timeoutInSeconds?: number;
1695
- /**
1696
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1697
- */
1698
- simulate?: boolean;
1699
- }) => Promise<AssembledTransaction<boolean>>;
1195
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1700
1196
  /**
1701
1197
  * Construct and simulate a enforced_options 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.
1702
1198
  * Retrieves the enforced options for a given endpoint and message type.
@@ -1711,20 +1207,7 @@ export interface Client {
1711
1207
  enforced_options: ({ eid, msg_type }: {
1712
1208
  eid: u32;
1713
1209
  msg_type: u32;
1714
- }, txnOptions?: {
1715
- /**
1716
- * The fee to pay for the transaction. Default: BASE_FEE
1717
- */
1718
- fee?: number;
1719
- /**
1720
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1721
- */
1722
- timeoutInSeconds?: number;
1723
- /**
1724
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1725
- */
1726
- simulate?: boolean;
1727
- }) => Promise<AssembledTransaction<Buffer>>;
1210
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>;
1728
1211
  /**
1729
1212
  * Construct and simulate a set_enforced_options 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.
1730
1213
  * Sets the enforced options for specific endpoint and message type combinations.
@@ -1740,20 +1223,7 @@ export interface Client {
1740
1223
  */
1741
1224
  set_enforced_options: ({ options }: {
1742
1225
  options: Array<EnforcedOptionParam>;
1743
- }, txnOptions?: {
1744
- /**
1745
- * The fee to pay for the transaction. Default: BASE_FEE
1746
- */
1747
- fee?: number;
1748
- /**
1749
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1750
- */
1751
- timeoutInSeconds?: number;
1752
- /**
1753
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1754
- */
1755
- simulate?: boolean;
1756
- }) => Promise<AssembledTransaction<null>>;
1226
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1757
1227
  /**
1758
1228
  * Construct and simulate a combine_options 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.
1759
1229
  * Combines options for a given endpoint and message type.
@@ -1775,20 +1245,7 @@ export interface Client {
1775
1245
  eid: u32;
1776
1246
  msg_type: u32;
1777
1247
  extra_options: Buffer;
1778
- }, txnOptions?: {
1779
- /**
1780
- * The fee to pay for the transaction. Default: BASE_FEE
1781
- */
1782
- fee?: number;
1783
- /**
1784
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1785
- */
1786
- timeoutInSeconds?: number;
1787
- /**
1788
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1789
- */
1790
- simulate?: boolean;
1791
- }) => Promise<AssembledTransaction<Buffer>>;
1248
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>;
1792
1249
  }
1793
1250
  export declare class Client extends ContractClient {
1794
1251
  readonly options: ContractClientOptions;