@layerzerolabs/protocol-stellar-v2 0.2.22 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/.turbo/turbo-build.log +347 -271
  2. package/.turbo/turbo-lint.log +277 -208
  3. package/.turbo/turbo-test.log +1700 -1370
  4. package/Cargo.lock +22 -51
  5. package/Cargo.toml +6 -1
  6. package/contracts/common-macros/src/auth.rs +10 -9
  7. package/contracts/common-macros/src/contract_ttl.rs +1 -4
  8. package/contracts/common-macros/src/error.rs +1 -3
  9. package/contracts/common-macros/src/lib.rs +65 -61
  10. package/contracts/common-macros/src/storage.rs +212 -65
  11. package/contracts/common-macros/src/tests/auth.rs +75 -6
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +383 -350
  13. package/contracts/common-macros/src/tests/error.rs +9 -21
  14. package/contracts/common-macros/src/tests/lz_contract.rs +80 -0
  15. package/contracts/common-macros/src/tests/mod.rs +2 -0
  16. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -3
  17. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +28 -1
  18. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +8 -43
  19. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +6 -29
  20. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +31 -0
  21. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +8 -0
  22. package/contracts/common-macros/src/tests/storage/extract_fields.rs +87 -0
  23. package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +223 -0
  24. package/contracts/common-macros/src/tests/storage/gen_args.rs +65 -0
  25. package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +78 -0
  26. package/contracts/common-macros/src/tests/storage/gen_key.rs +108 -0
  27. package/contracts/common-macros/src/tests/storage/gen_params.rs +105 -0
  28. package/contracts/common-macros/src/tests/{storage.rs → storage/generate_storage.rs} +54 -129
  29. package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +48 -0
  30. package/contracts/common-macros/src/tests/storage/mod.rs +16 -0
  31. package/contracts/common-macros/src/tests/storage/parse_default.rs +164 -0
  32. package/contracts/common-macros/src/tests/storage/parse_name.rs +159 -0
  33. package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +124 -0
  34. package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +174 -0
  35. package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +412 -0
  36. package/contracts/common-macros/src/tests/storage/storage_kind.rs +39 -0
  37. package/contracts/common-macros/src/tests/storage/test_setup.rs +25 -0
  38. package/contracts/common-macros/src/tests/storage/validate_attrs.rs +138 -0
  39. package/contracts/common-macros/src/tests/storage/variant_config.rs +226 -0
  40. package/contracts/common-macros/src/tests/test_helpers.rs +4 -10
  41. package/contracts/common-macros/src/tests/ttl_configurable.rs +2 -2
  42. package/contracts/common-macros/src/tests/ttl_extendable.rs +32 -0
  43. package/contracts/common-macros/src/tests/upgradeable.rs +118 -2
  44. package/contracts/common-macros/src/ttl_configurable.rs +1 -4
  45. package/contracts/common-macros/src/upgradeable.rs +21 -3
  46. package/contracts/endpoint-v2/Cargo.toml +0 -4
  47. package/contracts/endpoint-v2/src/endpoint_v2.rs +37 -17
  48. package/contracts/endpoint-v2/src/errors.rs +26 -1
  49. package/contracts/endpoint-v2/src/interfaces/layerzero_endpoint_v2.rs +1 -1
  50. package/contracts/endpoint-v2/src/interfaces/message_lib_manager.rs +4 -4
  51. package/contracts/endpoint-v2/src/interfaces/messaging_composer.rs +2 -2
  52. package/contracts/endpoint-v2/src/lib.rs +0 -1
  53. package/contracts/endpoint-v2/src/message_lib_manager.rs +39 -8
  54. package/contracts/endpoint-v2/src/messaging_channel.rs +36 -4
  55. package/contracts/endpoint-v2/src/messaging_composer.rs +18 -4
  56. package/contracts/endpoint-v2/src/storage.rs +9 -1
  57. package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +2 -2
  58. package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +1 -1
  59. package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
  60. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +3 -3
  61. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +5 -5
  62. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +2 -2
  63. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +5 -5
  64. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +3 -3
  65. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +1 -1
  66. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +4 -3
  67. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +7 -2
  68. package/contracts/endpoint-v2/src/tests/messaging_composer/mod.rs +4 -0
  69. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +7 -2
  70. package/contracts/layerzero-views/src/layerzero_view.rs +0 -1
  71. package/contracts/layerzero-views/src/tests/mod.rs +1 -0
  72. package/contracts/layerzero-views/src/tests/types_tests.rs +31 -0
  73. package/contracts/layerzero-views/src/types.rs +2 -3
  74. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +61 -0
  75. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +97 -0
  76. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +99 -0
  77. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +3 -0
  78. package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +5 -0
  79. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +86 -0
  80. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +47 -0
  81. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +77 -0
  82. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +114 -0
  83. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +105 -0
  84. package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +242 -0
  85. package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +9 -0
  86. package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +54 -0
  87. package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +13 -0
  88. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +1 -0
  89. package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +70 -1
  90. package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +219 -0
  91. package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +41 -0
  92. package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +48 -16
  93. package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +10 -0
  94. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +96 -3
  95. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +4 -0
  96. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +64 -0
  97. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +16 -0
  98. package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +305 -0
  99. package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +3 -0
  100. package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +59 -0
  101. package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +88 -0
  102. package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
  103. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +6 -0
  104. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +7 -0
  105. package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +102 -0
  106. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +6 -0
  107. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +7 -0
  108. package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +83 -0
  109. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +11 -0
  110. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +7 -0
  111. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +11 -0
  112. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +7 -0
  113. package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +22 -0
  114. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +6 -0
  115. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +7 -0
  116. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +20 -0
  117. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +20 -0
  118. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +8 -0
  119. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +7 -0
  120. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +10 -0
  121. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +7 -0
  122. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +20 -0
  123. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +86 -0
  124. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +45 -0
  125. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +34 -0
  126. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +30 -0
  127. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +39 -0
  128. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +28 -0
  129. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +8 -0
  130. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +7 -0
  131. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +20 -0
  132. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +12 -0
  133. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +20 -0
  134. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +5 -0
  135. package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +49 -0
  136. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +8 -0
  137. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +7 -0
  138. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +19 -0
  139. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +12 -0
  140. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +1 -1
  141. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -8
  142. package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +39 -0
  143. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +7 -1
  144. package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +1 -1
  145. package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +1 -1
  146. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +11 -0
  147. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +7 -0
  148. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +11 -0
  149. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +7 -0
  150. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +11 -0
  151. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +7 -0
  152. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +1 -1
  153. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +13 -0
  154. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +7 -0
  155. package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +102 -0
  156. package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +43 -0
  157. package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +38 -0
  158. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +14 -0
  159. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +71 -0
  160. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +8 -0
  161. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +7 -0
  162. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/{minimal_contract.rs → basic.rs} +2 -0
  163. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +28 -0
  164. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +32 -0
  165. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +8 -0
  166. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +7 -0
  167. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +23 -0
  168. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +21 -0
  169. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +11 -0
  170. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +29 -0
  171. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +20 -0
  172. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +71 -0
  173. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +10 -0
  174. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +79 -0
  175. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +8 -0
  176. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +7 -0
  177. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +43 -0
  178. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +35 -0
  179. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +30 -0
  180. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +29 -0
  181. package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +12 -0
  182. package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +12 -0
  183. package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +11 -0
  184. package/contracts/macro-integration-tests/tests/ui_multisig.rs +11 -0
  185. package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +12 -0
  186. package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +11 -0
  187. package/contracts/message-libs/blocked-message-lib/Cargo.toml +1 -1
  188. package/contracts/message-libs/blocked-message-lib/src/lib.rs +4 -1
  189. package/contracts/message-libs/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +108 -0
  190. package/contracts/message-libs/blocked-message-lib/src/tests/mod.rs +4 -0
  191. package/contracts/message-libs/blocked-message-lib/src/tests/setup.rs +40 -0
  192. package/contracts/message-libs/simple-message-lib/src/lib.rs +1 -1
  193. package/contracts/message-libs/simple-message-lib/src/tests/mod.rs +2 -0
  194. package/contracts/message-libs/simple-message-lib/src/tests/setup.rs +124 -0
  195. package/contracts/message-libs/simple-message-lib/src/tests/simple_message_lib_tests.rs +309 -0
  196. package/contracts/message-libs/uln-302/src/errors.rs +21 -0
  197. package/contracts/message-libs/uln-302/src/interfaces/receive_uln.rs +1 -1
  198. package/contracts/message-libs/uln-302/src/receive_uln.rs +6 -4
  199. package/contracts/message-libs/uln-302/src/send_uln.rs +15 -6
  200. package/contracts/message-libs/uln-302/src/storage.rs +5 -5
  201. package/contracts/message-libs/uln-302/src/tests/uln302/get_config.rs +71 -0
  202. package/contracts/message-libs/uln-302/src/tests/uln302/mod.rs +1 -0
  203. package/contracts/message-libs/uln-302/src/uln302.rs +3 -0
  204. package/contracts/oapps/counter/Cargo.toml +2 -0
  205. package/contracts/oapps/counter/integration_tests/mod.rs +1 -0
  206. package/contracts/oapps/counter/integration_tests/setup_sml.rs +6 -4
  207. package/contracts/oapps/counter/integration_tests/setup_uln.rs +12 -5
  208. package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +67 -0
  209. package/contracts/oapps/counter/src/tests/mod.rs +1 -0
  210. package/contracts/oapps/counter/src/tests/test_u256_ext.rs +48 -0
  211. package/contracts/oapps/oapp/src/lib.rs +0 -3
  212. package/contracts/oapps/oapp/src/tests/mod.rs +1 -0
  213. package/contracts/oapps/oft/integration-tests/setup.rs +2 -3
  214. package/contracts/oapps/oft/src/lib.rs +3 -0
  215. package/contracts/oapps/oft/src/tests/extensions/mod.rs +3 -0
  216. package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +240 -0
  217. package/contracts/oapps/oft/src/tests/extensions/pausable.rs +141 -0
  218. package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +447 -0
  219. package/contracts/oapps/oft/src/tests/mod.rs +2 -0
  220. package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +180 -0
  221. package/contracts/oapps/oft/src/tests/oft_types/mod.rs +1 -0
  222. package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -3
  223. package/contracts/oapps/oft-core/src/lib.rs +2 -2
  224. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -1
  225. package/contracts/oapps/oft-core/src/tests/{test_oft_version.rs → test_oft_version_and_approval.rs} +9 -0
  226. package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -43
  227. package/contracts/upgrader/src/tests/test_upgrader.rs +18 -0
  228. package/contracts/utils/src/auth.rs +2 -2
  229. package/contracts/utils/src/buffer_reader.rs +61 -10
  230. package/contracts/utils/src/buffer_writer.rs +35 -20
  231. package/contracts/utils/src/bytes_ext.rs +1 -2
  232. package/contracts/utils/src/errors.rs +5 -3
  233. package/contracts/utils/src/multisig.rs +59 -36
  234. package/contracts/utils/src/option_ext.rs +3 -3
  235. package/contracts/utils/src/ownable.rs +12 -6
  236. package/contracts/utils/src/tests/auth.rs +179 -0
  237. package/contracts/utils/src/tests/buffer_reader.rs +203 -1
  238. package/contracts/utils/src/tests/buffer_writer.rs +176 -5
  239. package/contracts/utils/src/tests/mod.rs +2 -0
  240. package/contracts/utils/src/tests/multisig.rs +170 -141
  241. package/contracts/utils/src/tests/option_ext.rs +1 -1
  242. package/contracts/utils/src/tests/ownable.rs +156 -161
  243. package/contracts/utils/src/tests/test_helper.rs +21 -1
  244. package/contracts/utils/src/tests/testing_utils.rs +84 -2
  245. package/contracts/utils/src/tests/ttl_configurable.rs +66 -86
  246. package/contracts/utils/src/tests/ttl_extendable.rs +64 -0
  247. package/contracts/utils/src/tests/upgradeable.rs +115 -6
  248. package/contracts/utils/src/ttl_configurable.rs +22 -12
  249. package/contracts/utils/src/ttl_extendable.rs +1 -3
  250. package/contracts/utils/src/upgradeable.rs +21 -24
  251. package/contracts/workers/dvn/src/auth.rs +1 -1
  252. package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
  253. package/contracts/workers/dvn/src/storage.rs +1 -1
  254. package/contracts/workers/dvn/src/tests/auth.rs +136 -3
  255. package/contracts/workers/dvn/src/tests/mod.rs +0 -1
  256. package/contracts/workers/dvn/src/tests/setup.rs +4 -10
  257. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +279 -0
  258. package/contracts/workers/executor-helper/src/tests/setup.rs +106 -1
  259. package/contracts/workers/worker/src/worker.rs +1 -1
  260. package/docs/oft-guide.md +5 -5
  261. package/package.json +5 -7
  262. package/sdk/.turbo/turbo-test.log +662 -466
  263. package/sdk/LICENSE +23 -0
  264. package/sdk/dist/generated/bml.d.ts +101 -106
  265. package/sdk/dist/generated/bml.js +108 -26
  266. package/sdk/dist/generated/counter.d.ts +123 -484
  267. package/sdk/dist/generated/counter.js +103 -25
  268. package/sdk/dist/generated/dvn.d.ts +141 -699
  269. package/sdk/dist/generated/dvn.js +106 -28
  270. package/sdk/dist/generated/dvn_fee_lib.d.ts +31 -248
  271. package/sdk/dist/generated/dvn_fee_lib.js +27 -24
  272. package/sdk/dist/generated/endpoint.d.ts +158 -836
  273. package/sdk/dist/generated/endpoint.js +107 -29
  274. package/sdk/dist/generated/executor.d.ts +139 -671
  275. package/sdk/dist/generated/executor.js +106 -28
  276. package/sdk/dist/generated/executor_fee_lib.d.ts +109 -264
  277. package/sdk/dist/generated/executor_fee_lib.js +106 -28
  278. package/sdk/dist/generated/executor_helper.d.ts +95 -92
  279. package/sdk/dist/generated/executor_helper.js +103 -25
  280. package/sdk/dist/generated/layerzero_view.d.ts +178 -335
  281. package/sdk/dist/generated/layerzero_view.js +172 -33
  282. package/sdk/dist/generated/oft.d.ts +137 -680
  283. package/sdk/dist/generated/oft.js +103 -25
  284. package/sdk/dist/generated/price_feed.d.ts +45 -444
  285. package/sdk/dist/generated/price_feed.js +27 -24
  286. package/sdk/dist/generated/sml.d.ts +119 -428
  287. package/sdk/dist/generated/sml.js +103 -25
  288. package/sdk/dist/generated/treasury.d.ts +109 -288
  289. package/sdk/dist/generated/treasury.js +103 -25
  290. package/sdk/dist/generated/uln302.d.ts +190 -527
  291. package/sdk/dist/generated/uln302.js +170 -31
  292. package/sdk/dist/generated/upgrader.d.ts +14 -34
  293. package/sdk/dist/generated/upgrader.js +24 -21
  294. package/sdk/package.json +3 -4
  295. package/sdk/test/counter-sml.test.ts +218 -142
  296. package/sdk/test/counter-uln.test.ts +189 -145
  297. package/sdk/test/oft-sml.test.ts +173 -156
  298. package/sdk/test/suites/constants.ts +7 -1
  299. package/sdk/test/suites/globalSetup.ts +140 -74
  300. package/sdk/turbo.json +1 -1
  301. package/tools/ts-bindings-gen/Cargo.toml +4 -4
  302. package/tools/ts-bindings-gen/src/main.rs +4 -0
  303. package/turbo.json +3 -0
  304. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +0 -1072
  305. package/contracts/endpoint-v2/src/constants.rs +0 -52
  306. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +0 -12
  307. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +0 -7
  308. package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +0 -20
  309. package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +0 -15
  310. package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +0 -16
  311. package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +0 -26
  312. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +0 -21
  313. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +0 -12
  314. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +0 -7
  315. package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +0 -14
  316. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +0 -14
  317. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +0 -16
  318. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +0 -15
  319. package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +0 -14
  320. package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +0 -19
  321. package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +0 -15
  322. package/contracts/message-libs/simple-message-lib/src/test.rs +0 -280
  323. package/contracts/oapps/oapp/src/macro_tests/mod.rs +0 -1
  324. package/contracts/workers/dvn/src/tests/multisig/mod.rs +0 -3
  325. package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +0 -132
  326. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +0 -109
  327. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +0 -106
  328. /package/contracts/oapps/oapp/src/{macro_tests → tests}/test_macros.rs +0 -0
@@ -5,14 +5,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
5
5
  export * as rpc from '@stellar/stellar-sdk/rpc';
6
6
  /**
7
7
  * Embedded WASM bytecode (base64-encoded)
8
- * Size: 34116 bytes (33.32 KB)
8
+ * Size: 36129 bytes (35.28 KB)
9
9
  */
10
- export const WASM_BASE64 = "AGFzbQEAAAABmQEaYAJ+fgF+YAN+fn4BfmABfgF+YAR+fn5+AX5gAAF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAABf2ABfwBgAX8Bf2AAAGACfn8AYAF+AGADf39/AGACfn4AYAN/fn4AYAJ/fwF+YAR/f39/AX5gA35/fgF/YAR/fn5+AX9gBn9+fn9+fgBgA35/fwBgA35+fgF/YAV+f39/fwACowEbAWwBMQAAAWwBXwABAWEBMAACAXgBMAAAAWwBNgACAWIBMAACAWwBNwADAXgBMQAAAWwBMgAAAXYBXwAEAWQBXwABAWIBOAACAWIBZQAAAWkBXwACAWkBMAACAWIBMwAAAWIBagAAAWIBMQADAW0BOQABAW0BYQADAXYBZwAAAXgBMwAEAXgBOAAEAWwBMAAAAWwBOAAAAXgBNQACAWIBZgABA2FgBQYHCAcHCQoFCwkGDAQECg0MCg4GCg8IBAYCCAoCBAUEBAQABAIOEAAMCRESAhMEDAQAAAgFBQYEBQUSBAQBDAQEBAQECQAIFAMVABYBABIXCwYSGAwGDAgIGQ8IDwYPBQMBABEGIQR/AUGAgMAAC38AQbyCwAALfwBB84TAAAt/AEGAhcAACwefAxwGbWVtb3J5AgAHdXBncmFkZQA1B21pZ3JhdGUAOAZmcmVlemUAOQlpc19mcm96ZW4AOwphdXRob3JpemVyADwFb3duZXIAPQ1wZW5kaW5nX293bmVyAD8SdHJhbnNmZXJfb3duZXJzaGlwAEAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAQxBhY2NlcHRfb3duZXJzaGlwAEoScmVub3VuY2Vfb3duZXJzaGlwAEwTZXh0ZW5kX2luc3RhbmNlX3R0bABND3NldF90dGxfY29uZmlncwBOC3R0bF9jb25maWdzAFMSZnJlZXplX3R0bF9jb25maWdzAFcVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAFgNX19jb25zdHJ1Y3RvcgBZCGVuZHBvaW50AFsGdWxuMzAyAF0JbG9jYWxfZWlkAF8NaW5pdGlhbGl6YWJsZQBhCnZlcmlmaWFibGUAZApleGVjdXRhYmxlAGYOdWxuX3ZlcmlmaWFibGUAaQFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMKoFZgTQECfkIAIQICQAJAIAEQnICAgAAiA0ICEJ2AgIAARQ0AIANCAhCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQcCAwIAAQQgQsYCAgAAgASgCAA0DIAEgASkDCBCygICAAAwCCyABQciAwIAAQQYQsYCAgAAgASgCAA0CIAEgASkDCBCygICAAAwBCyABQc6AwIAAQQgQsYCAgAAgASgCAA0BIAEgASkDCBCygICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCXgICAAEIBUQsVACAAEJyAgIAAIAFCAhCBgICAABoLDwAgACABEKCAgIAAQQFzCw0AIAAgARCDgICAAFALWAECfyOAgICAAEEQayIAJICAgIAAIABBBGoQooCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKOAgIAAC0EAEKSAgIAAIQEgAEEQaiSAgICAACABQf0BcQsMACAAQQEQ1ICAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQmICAgAAaC0cCAX8BfkECIQECQCAAEPmAgIAAIgJCAhCdgICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyABC4sBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqEKKAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBCjgICAAAtBACEBAkBBABCmgICAACICQgIQnYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUHShMCAAEEGELGAgIAAIAEoAgANAyABIAEpAwgQsoCAgAAMAgsgAUHYhMCAAEEIELGAgIAAIAEoAgANAiABIAEpAwgQsoCAgAAMAQsgAUHghMCAAEEKELGAgIAAIAEoAgANASABIAEpAwgQsoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPABCogICAABCCgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCigICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQo4CAgAALIAAQqoCAgAAgACkDCCEBIAApAwBBiggQq4CAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQqoCAgAAgACkDCCEBIAApAwBBiggQq4CAgAAgARCCgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqEKKAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCjgICAAAsgABCwgICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQroCAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAEK2AgIAAAkAgACkDAFANAEKDgICAsIEBEK6AgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCigICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQo4CAgAALQgAhAgJAAkBBARCvgICAACIDQgAQnYCAgABFDQAgA0IAEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsACwsAIAAQmYCAgAAaC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUHlg8CAAEEMELGAgIAAIAEoAgANAiABIAEpAwgQsoCAgAAMAQsgAUHgg8CAAEEFELGAgIAAIAEoAgANASABIAEpAwgQsoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABCvgICAACICQgIQnYCAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhD2gICAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQ1oCAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALDgBBgIDAgAAQtICAgAALDAAgAEEgEO6AgIAAC5gBAQF/I4CAgIAAQRBrIgEkgICAgAAgASAAELaAgIAAAkACQCABKAIAQQFGDQAgASkDCCEAIAEQooCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKOAgIAACxCngICAABChgICAAA0BQQEQt4CAgAAgABCEgICAABogAUEQaiSAgICAAEICDwsAC0KDgICAwIMBEK6AgIAAAAtCAQF+QgEhAgJAIAFC/wGDQsgAUg0AIAEQi4CAgABCgICAgHCDQoCAgICABFINACAAIAE3AwhCACECCyAAIAI3AwALDABBASAAELqAgIAAC60BAQF/I4CAgIAAQRBrIgEkgICAgAACQAJAAkAgAEL/AYNCyABSDQAgAUEEahCigICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQo4CAgAALEKeAgIAAQQEQpICAgABB/QFxRQ0BIAAQhYCAgABC/wGDQgJSDQJBABC3gICAACABQRBqJICAgIAAQgIPCwALQoOAgICwgwEQroCAgAAAC0KDgICAoIMBEK6AgIAAAAtaAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahCigICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQo4CAgAALEKeAgIAAQQBBARC6gICAACAAQRBqJICAgIAAQgILGgAgABD5gICAACABrUL/AYNCAhCBgICAABoLCQAQoYCAgACtCwgAEKiAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQqoCAgAAgACkDACAAKQMIEL6AgIAAIQEgAEEQaiSAgICAACABCw0AIAFCAiAAp0EBcRsLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCtgICAACAAKQMAIAApAwgQvoCAgAAhASAAQRBqJICAgIAAIAELfQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINACABQQRqEKKAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCjgICAAAsQqYCAgAAhAhCsgICAACAAEMGAgIAAIAIgABDCgICAACABQRBqJICAgIAAQgIPCwALDgBBACAAQgIQxoCAgAALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABB14LAgABBFRDHgICAABDIgICAACEDIAIgADcDCCACIAE3AwAgA0GAg8CAAEECIAJBAhDJgICAABCHgICAABogAkEQaiSAgICAAAvdAgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQhqEKKAgIAAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCjgICAAAsQqYCAgAAhAwJAAkAgAUL/////D1YNACACQQhqEK2AgIAAIAIpAxAhASACKQMIQYgIEKuAgIAAIAEgABCDgICAAFBFDQMQxICAgAAMAQsQxYCAgAAgAUIgiKdJDQNBASAAQgAQxoCAgABBARCvgICAAEIAIAFChICAgHCDIgEgARCGgICAABpBkIPAgABBFhDHgICAABDIgICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARBrIPAgABBAyACQQhqQQMQyYCAgAAQh4CAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQroCAgAAAC0KDgICA8IABEK6AgIAAAAsTAEEBEK+AgIAAQgAQiICAgAAaCzMBAn4QlYCAgAAhAAJAEJaAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LENqAgIAAAAsVACAAEK+AgIAAIAEgAhCBgICAABoLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ9oCAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARDWgICAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJKAgIAAC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAEKKAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCjgICAAAsgABCtgICAACAAKQMIIQEgACkDAEGICBCrgICAACABEIKAgIAAGiAAELCAgIAAAkAgACgCAA0AEMuAgIAAAAsgACkDCCECEMSAgIAAIAEQwYCAgAAgAiABEMKAgIAAIABBEGokgICAgABCAgsJABDagICAAAALoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQooCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKOAgIAACxCpgICAACEBEKyAgIAAQQAQr4CAgABCAhCIgICAABpBxIPAgABBExDHgICAABDIgICAACECIAAgATcDACACQdiDwIAAQQEgAEEBEMmAgIAAEIeAgIAAGiAAQRBqJICAgIAAQgILMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQo4CAgABCAg8LAAveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQz4CAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDPgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEKKAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBCjgICAAAsQp4CAgAACQAJAAkAQpYCAgAANABDFgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABCugICAAAALQoOAgIDA/wAQroCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBDQgICAAAwBC0EBEKaAgIAAQgIQiICAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBDRgICAAAwBC0ECEKaAgIAAQgIQiICAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBjITAgABBDxDHgICAABDIgICAACEAIAJBKGoQ0oCAgAAhASACIAJBNGoQ0oCAgAA3A0ggAiABNwNAIABBsITAgABBAiACQcAAakECEMmAgIAAEIeAgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARD3gICAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAACw4AQQEgACABEPqAgIAACw4AQQIgACABEPqAgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDVgICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEKKAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCjgICAAAsgAEEIahCigICAACAAQRRqIgFBAhDUgICAACAAQTBqIABBCGoQ1YCAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABENWAgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhDWgICAACECIABBwABqJICAgIAAIAILdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABEKaAgIAAIgRCAhCdgICAAEUNACACQQRqIARCAhCAgICAABD3gICAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ+ICAgAAPCyAAQgA3AwAgAEICNwMICxoAIACtQiCGQgSEIAGtQiCGQgSEEJSAgIAAC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCigICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQo4CAgAALEKeAgIAAAkAQpYCAgABFDQBCg4CAgOD/ABCugICAAAALQQAQpoCAgABCAUICEIGAgIAAGkHAhMCAAEESEMeAgIAAEMiAgIAAQQRBACAAQRhqQQAQyYCAgAAQh4CAgAAaIABBIGokgICAgABCAgsJABClgICAAK0LywEAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAJC/wGDQs0AUg0AQYDLHkGA0h8Q0ICAgABBgMseQYDSHxDRgICAAEEAEK+AgIAAQgIQnYCAgAANASAAEMGAgIAAQQAgARCegICAAEEBIAIQnoCAgAAgAUKO0q4VEImAgIAAEIqAgIAAIgFC/wGDQgRSDQJBAhCcgICAACABQoSAgIBwg0ICEIGAgIAAGkICDwsAC0KDgICAkIEBEK6AgIAAAAsQ2oCAgAAACwkAEPKAgIAAAAsIABDcgICAAAtrAgF/AX4jgICAgABBEGsiACSAgICAACAAEKKAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCjgICAAAsgAEEAEJuAgIAAAkAgACgCAA0AEMuAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQsIABDegICAAAtrAgF/AX4jgICAgABBEGsiACSAgICAACAAEKKAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCjgICAAAsgAEEBEJuAgIAAAkAgACgCAA0AEMuAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQsPABDggICAAK1CIIZCBIQLiAECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQooCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKOAgIAACwJAAkBBAhCcgICAACIBQgIQnYCAgABFDQAgAUICEICAgIAAIgFC/wGDQgRRDQEACxDLgICAAAALIABBEGokgICAgAAgAUIgiKcLugEBAn8jgICAgABBwABrIgIkgICAgAAgAkEgaiAAEOKAgIAAAkAgAigCIEEBRg0AIAJBCGpBEGogAkE4aikDADcDACACQRBqIAJBIGpBEGopAwA3AwAgAiACKQMoNwMIIAFC/wGDQs0AUg0AIAJBIGoQooCAgAACQCACKAIgQQFHDQAgAigCJCACKAIoEKOAgIAACxDcgICAACACQQhqIAEQ44CAgAAhAyACQcAAaiSAgICAACADrQ8LAAviAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUHMgcCAAEEDIAJBCGpBAxD1gICAACACQSBqIAIpAwgQ9ICAgAAgAigCIA0AIAIpAyghASACQSBqIAIpAxAQtoCAgAAgAigCIA0AIAIpAxgiBUL/AYNCBFINACACKQMoIQQgACABNwMQIAAgBDcDCCAAIAVCIIg+AhhCACEECyAAIAQ3AwAgAkEwaiSAgICAAAu6AQIBfwJ+I4CAgIAAQSBrIgMkgICAgABB5IHAgABBDRDHgICAACEEIAEQ8YCAgAAhBSADIAI3AwggAyAFNwMAQQAhAQN/AkAgAUEQRw0AQQAhAQJAA0AgAUEQRg0BIANBEGogAWogAyABaikDADcDACABQQhqIQEMAAsLIAAgBCADQRBqQQIQ1oCAgAAQ74CAgAAhASADQSBqJICAgIAAIAEPCyADQRBqIAFqQgI3AwAgAUEIaiEBDAALC7YBAQJ/I4CAgIAAQcAAayIEJICAgIAAIARBIGogABDigICAAAJAIAQoAiBBAUYNACAEQQhqQRBqIARBOGopAwA3AwAgBEEQaiAEQSBqQRBqKQMANwMAIAQgBCkDKDcDCCABQv8Bg0LNAFINACACQv8Bg0LNAFINACAEQSBqIAMQtoCAgAAgBCgCIEEBRg0AIARBCGogASACIAQpAygQ5YCAgAAhBSAEQcAAaiSAgICAACAFrQ8LAAurAwMBfwN+AX8jgICAgABBMGsiBCSAgICAACAEQRhqEKKAgIAAAkAgBCgCGEEBRw0AIAQoAhwgBCgCIBCjgICAAAsQ3ICAgAAhBSAANQIQIQZB8YHAgABBGBDHgICAACEHIAQgAjcDECAEIAZCIIZCBIQ3AwggBCABNwMAQQAhCAJAAkADQAJAIAhBGEcNAEEAIQgCQANAIAhBGEYNASAEQRhqIAhqIAQgCGopAwA3AwAgCEEIaiEIDAALCyAFIAcgBEEYakEDENaAgIAAEO+AgIAARQ0CQcSCwIAAQQoQx4CAgAAhAiAAEPGAgIAAIQYgBCABNwMIIAQgBjcDAEEAIQgDQAJAIAhBEEcNAEEAIQgCQANAIAhBEEYNASAEQRhqIAhqIAQgCGopAwA3AwAgCEEIaiEIDAALCyAFIAIgBEEYakECENaAgIAAEO+AgIAARQ0EIAMQs4CAgAAQoICAgABBAXMhCAwFCyAEQRhqIAhqQgI3AwAgCEEIaiEIDAALCyAEQRhqIAhqQgI3AwAgCEEIaiEIDAALC0EAIQgLIARBMGokgICAgAAgCAv6BQICfwZ+I4CAgIAAQdAAayICJICAgIAAIAJBCGogABDigICAAAJAAkAgAigCCEEBRg0AIAFC/wGDQs0AUg0AIAIoAiAhAyACKQMYIQAgAikDECEEIAJBCGoQooCAgAACQCACKAIIQQFHDQAgAigCDCACKAIQEKOAgIAACyACQShqENyAgIAAIgUgASADIAQgABDngICAABCzgICAACEGQaCAwIAAELSAgIAAIQcCQAJAAkACQCACKAIoDQBBloLAgABBEhDHgICAACEHIAIgBDcDSCACIAE3AzggAiADrUIghkIEhDcDQEEAIQMDQAJAIANBGEcNAEEAIQMCQANAIANBGEYNASACQQhqIANqIAJBOGogA2opAwA3AwAgA0EIaiEDDAALCyAAIAUgByACQQhqQQMQ1oCAgAAQ6ICAgABWDQMgAkEIakGFgcCAAEEIELGAgIAAIAIoAggNBiACQQhqIAIpAxAQsoCAgAAMBQsgAkEIaiADakICNwMAIANBCGohAwwACwsCQCACKQMwIgggBxCfgICAAEUNAEGJgsCAAEENEMeAgIAAIQkgAiAENwNIIAIgATcDOCACIAOtQiCGQgSENwNAQQAhAwNAAkAgA0EYRw0AQQAhAwJAA0AgA0EYRg0BIAJBCGogA2ogAkE4aiADaikDADcDACADQQhqIQMMAAsLIAAgBSAJIAJBCGpBAxDWgICAABDogICAAFYNAiACQQhqQfuAwIAAQQoQsYCAgAAgAigCCA0GIAJBCGogAikDEBCygICAAAwFCyACQQhqIANqQgI3AwAgA0EIaiEDDAALCyAIIAYQn4CAgABFDQAgCCAHEJ+AgIAADQELIAJBCGpB1oDAgABBDRCxgICAACACKAIIDQIgAkEIaiACKQMQELKAgIAADAELIAJBCGpB44DAgABBGBCxgICAACACKAIIDQEgAkEIaiACKQMQELKAgIAACyACKQMQIQEgAikDCFANAQsACyACQdAAaiSAgICAACABC64CAgF/AX4jgICAgABBwABrIgYkgICAgABBqILAgABBFBDHgICAACEHIAZBIGogBRDzgICAAAJAIAYoAiBBAUYNACAGIAYpAyg3AxggBiAENwMQIAYgAjcDACAGIAOtQiCGQgSENwMIQQAhAwJAA0ACQCADQSBHDQBBACEDAkADQCADQSBGDQEgBkEgaiADaiAGIANqKQMANwMAIANBCGohAwwACwsCQAJAIAEgByAGQSBqQQQQ1oCAgAAQioCAgAAiBUICUg0AQgAhBQwBCyAGQSBqIAUQtoCAgAAgBigCIEEBRg0DIAYpAyghBEIBIQULIAAgBDcDCCAAIAU3AwAgBkHAAGokgICAgAAPCyAGQSBqIANqQgI3AwAgA0EIaiEDDAALCxDagICAAAALAAtRAQF/I4CAgIAAQRBrIgMkgICAgAAgAyAAIAEgAhCKgICAABD0gICAAAJAIAMoAgBBAUcNABDagICAAAALIAMpAwghAiADQRBqJICAgIAAIAIL5QgGAX8BfgF/AX4BfwF+I4CAgIAAQcAAayICJICAgIAAAkACQCAAQv8Bg0LIAFINACACIAA3AwAgAkEIaiABELaAgIAAIAIoAghBAUYNACACKQMQIQMgAkEIahCigICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQo4CAgAALAkACQCACKQMAEIuAgIAAQoCAgIBwg0KAgICAkApSDQAgAkEANgI0IAIgAjYCMAJAIAJBMGpBARDqgICAACIAEIuAgIAAQoCAgIBwg0KAgICAEFINACACQQA6AAgCQCAAEIuAgIAAQoCAgIBwg0KAgICAEFINACAAIAJBCGpBARDrgICAAAJAIAItAAhBAUcNAAJAIAJBMGpBCBDqgICAACIAEIuAgIAAQoCAgIBwg0KAgICAgAFSDQAgAkIANwMIIAAQi4CAgABCgICAgHCDQoCAgICAAVINAiAAIAJBCGpBCBDrgICAACACKQMIIQAgAkEwahDsgICAACEEIAJBMGoQ7YCAgAAhBSACQTBqEOyAgIAAIQYgAkEwahDtgICAACEBAkAgBhDggICAAEcNAEG8gsCAAEEIEO6AgIAAIAEQjICAgAAQhYCAgAAiAUL/AYNCzQBSDQcgAiAAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISEIgA3AxAgAiAFNwMIIAIgBDYCGAJAENyAgIAAIAJBCGogARDjgICAAA0AIAJBCGpBqIHAgABBEBCxgICAACACKAIIDQggAkEIaiACKQMQELKAgIAADAcLAkACQCACQQhqIAEQ3oCAgAAiByADEOWAgIAARQ0AIAJBMGoQ3ICAgAAgASAEIAUgABDngICAACACKAIwRQ0BIAIpAzggAxCggICAAEUNAQsgAkEIakGggcCAAEEIELGAgIAAIAIoAggNCCACQQhqIAIpAxAQsoCAgAAMBwsgAikDACEAQcSCwIAAQQoQx4CAgAAhASACIAM3AyggAiAANwMgQQAhBANAAkAgBEEQRw0AQQAhBAJAA0AgBEEQRg0BIAJBMGogBGogAkEgaiAEaikDADcDACAEQQhqIQQMAAsLAkAgByABIAJBMGpBAhDWgICAABDvgICAAA0AIAJBCGpBjYHAgABBCRCxgICAACACKAIIDQogAkEIaiACKQMQELKAgIAADAkLIAJBCGpBloHAgABBChCxgICAACACKAIIDQkgAkEIaiACKQMQELKAgIAADAgLIAJBMGogBGpCAjcDACAEQQhqIQQMAAsLQoOAgIAQEK6AgIAAAAtCg4CAgICCARCugICAAAALQoOAgIDQiQEQroCAgAAACxDwgICAAAALQoOAgICAggEQroCAgAAAC0KDgICAwIkBEK6AgIAAAAsgAikDECEAIAIpAwhQDQELAAsgAkHAAGokgICAgAAgAAt1AgJ/AX4CQAJAIAAoAgQiAiABaiIBIAJJDQAgASAAKAIAIgMpAwAQi4CAgABCIIinSw0BIAMpAwAgAq1CIIZCBIQgAa1CIIZCBIQQmoCAgAAhBCAAIAE2AgQgBA8LENqAgIAAAAtCg4CAgID9ABCugICAAAALHwAgAEIEIAGtQiCGQgSEIAKtQiCGQgSEEJGAgIAAGgu5AQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABBBBDqgICAACICEIuAgIAAQoCAgIBwg0KAgICAwABSDQAgAUEANgIMIAIQi4CAgABCgICAgHCDQoCAgIDAAFINASACIAFBDGpBBBDrgICAACABKAIMIQAgAUEQaiSAgICAACAAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycg8LQoOAgICAggEQroCAgAAACxDwgICAAAAL/wEDAX8BfgJ/I4CAgIAAQcAAayIBJICAgIAAAkACQCAAQSAQ6oCAgAAiAhCLgICAAEKAgICAcINCgICAgIAEUg0AIAFBIGpBGGoiAEIANwMAIAFBIGpBEGoiA0IANwMAIAFBIGpBCGoiBEIANwMAIAFCADcDICACEIuAgIAAQoCAgIBwg0KAgICAgARSDQEgAiABQSBqQSAQ64CAgAAgAUEYaiAAKQMANwMAIAFBEGogAykDADcDACABQQhqIAQpAwA3AwAgASABKQMgNwMAIAEQtICAgAAhAiABQcAAaiSAgICAACACDwtCg4CAgICCARCugICAAAALEPCAgIAAAAsaACAArUIghkIEhCABrUIghkIEhBCPgICAAAs0AQF/QQEhAwJAAkACQCAAIAEgAhCKgICAAKdB/wFxDgIBAgALENqAgIAAAAtBACEDCyADCwkAENqAgIAAAAt9AgF/AX4jgICAgABBMGsiASSAgICAACABQSBqIAApAwgQ84CAgAACQCABKAIgQQFHDQAACyABIAEpAyg3AwggASAAKQMANwMQIAEgADUCEEIghkIEhDcDGEHMgcCAAEEDIAFBCGpBAxDJgICAACECIAFBMGokgICAgAAgAgsDAAALOwACQAJAIAFC//////////8AVg0AIAFCCIZCBoQhAQwBCyABEI2AgIAAIQELIABCADcDACAAIAE3AwgLXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCOgICAACEBCyAAIAM3AwAgACABNwMICzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCTgICAABoL2wECAX4EfwJAAkAgAkEJSw0AQgAhAyACIQQgASEFA0ACQCAEDQAgA0IIhkIOhCEDDAMLQQEhBgJAIAUtAAAiB0HfAEYNAAJAIAdBUGpB/wFxQQpJDQACQCAHQb9/akH/AXFBGkkNACAHQZ9/akH/AXFBGUsNBCAHQUVqIQYMAgsgB0FLaiEGDAELIAdBUmohBgsgA0IGhiAGrUL/AYOEIQMgBEF/aiEEIAVBAWohBQwACwsgAa1CIIZCBIQgAq1CIIZCBIQQkICAgAAhAwsgAEIANwMAIAAgAzcDCAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUH8g8CAAEECIAJBAhD1gICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQfyDwIAAQQIgA0ECEMmAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUHqhMCAAEEJELGAgIAAIAEoAgANAiABIAEpAwgQsoCAgAAMAQsgAUHShMCAAEEGELGAgIAAIAEoAgANASABIAEpAwgQsoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtWAgF/AX4jgICAgABBEGsiAySAgICAACAAEKaAgIAAIQQgAyABIAIQ+ICAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCBgICAABogA0EQaiSAgICAAAsL/QQBAEGAgMAAC/MEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////0VuZHBvaW50VWxuMzAyTG9jYWxFaWROb3RFeGVjdXRhYmxlVmVyaWZpZWRCdXROb3RFeGVjdXRhYmxlRXhlY3V0YWJsZUV4ZWN1dGVkVmVyaWZ5aW5nVmVyaWZpYWJsZVZlcmlmaWVkTm90SW5pdGlhbGl6YWJsZW5vbmNlc2VuZGVyc3JjX2VpZAAAuAAQAAUAAAC9ABAABgAAAMMAEAAHAAAAaW5pdGlhbGl6YWJsZWlzX3ZhbGlkX3JlY2VpdmVfbGlicmFyeWluYm91bmRfbm9uY2VsYXp5X2luYm91bmRfbm9uY2VpbmJvdW5kX3BheWxvYWRfaGFzaAAAABIAAAABdmVyaWZpYWJsZXRocmVzaG9sZG93bmVyc2hpcF90cmFuc2ZlcnJlZG5ld19vd25lcm9sZF9vd25lcgAAbAEQAAkAAAB1ARAACQAAAG93bmVyc2hpcF90cmFuc2ZlcnJpbmd0dGwAAABsARAACQAAAHUBEAAJAAAApgEQAAMAAABvd25lcnNoaXBfcmVub3VuY2VkAHUBEAAJAAAAT3duZXJQZW5kaW5nT3duZXJleHRlbmRfdG8AAPEBEAAJAAAATgEQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAAAbAhAACAAAACMCEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50TWlncmF0aW5nAKOmAQ5jb250cmFjdHNwZWN2MAAAAAQAAAAiRXJyb3JzIGZvciBMYXllclplcm9WaWV3IGNvbnRyYWN0LgAAAAAAAAAAABJMYXllclplcm9WaWV3RXJyb3IAAAAAAAEAAAApSW52YWxpZCBwYWNrZXQgaGVhZGVyIChkc3RfZWlkIG1pc21hdGNoKS4AAAAAAAAKSW52YWxpZEVJRAAAAAAAAQAAAAAAAACVVGhlIHR5cGUgb2YgZGF0YSByZXF1aXJlZCBmb3IgbWlncmF0aW9uLgpVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAHZSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGZsYWcgaXMgc2V0IGJ5IGEgcHJldmlvdXMgYHVwZ3JhZGVgIGNhbGwuAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAAAAAAAAAAAXlBlcm1hbmVudGx5IGZyZWV6ZXMgdGhlIGNvbnRyYWN0LCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgdXBncmFkZXMuClRoaXMgYWN0aW9uIGlzIGlycmV2ZXJzaWJsZS4AAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAZ1bG4zMDIAAAAAABMAAAAAAAAAAAAAAB1SZXR1cm5zIHRoZSBlbmRwb2ludCBhZGRyZXNzLgAAAAAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAAAbUmV0dXJucyB0aGUgVWxuMzAyIGFkZHJlc3MuAAAAAAZ1bG4zMDIAAAAAAAAAAAABAAAAEwAAAAAAAAAeUmV0dXJucyB0aGUgbG9jYWwgZW5kcG9pbnQgSUQuAAAAAAAJbG9jYWxfZWlkAAAAAAAAAAAAAAEAAAAEAAAAAAAAAFBDaGVja3MgaWYgYSBtZXNzYWdpbmcgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4gYW5kIHJlY2VpdmVyLgAAAA1pbml0aWFsaXphYmxlAAAAAAAAAgAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAQAAAAAAAAC0Q2hlY2tzIGlmIGEgbWVzc2FnZSBjYW4gYmUgdmVyaWZpZWQgYXQgdGhlIGVuZHBvaW50LgoKVmVyaWZpZXM6CjEuIFJlY2VpdmUgbGlicmFyeSBpcyB2YWxpZCBmb3IgdGhpcyByZWNlaXZlciBhbmQgc291cmNlCjIuIEVuZHBvaW50IG5vbmNlIGNoZWNrIHBhc3NlcwozLiBQYXlsb2FkIGhhc2ggaXMgbm90IGVtcHR5AAAACnZlcmlmaWFibGUAAAAAAAQAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAAAAAAtyZWNlaXZlX2xpYgAAAAATAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAEAAAABAAAAAAAAAClSZXR1cm5zIHRoZSBleGVjdXRpb24gc3RhdGUgb2YgYSBtZXNzYWdlLgAAAAAAAApleGVjdXRhYmxlAAAAAAACAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAfQAAAADkV4ZWN1dGlvblN0YXRlAAAAAAAAAAAA7lJldHVybnMgdGhlIGNvbWJpbmVkIHZlcmlmaWNhdGlvbiBzdGF0ZSBvZiBhIG1lc3NhZ2UuCgpUaGlzIGZ1bmN0aW9uIGNoZWNrczoKMS4gUGFja2V0IGhlYWRlciB2YWxpZGl0eSAoZHN0X2VpZCBtYXRjaGVzIGxvY2FsX2VpZCkKMi4gRW5kcG9pbnQgaW5pdGlhbGl6YWJsZSBzdGF0dXMKMy4gRW5kcG9pbnQgdmVyaWZpYWJsZSBzdGF0dXMKNC4gVUxOIHZlcmlmaWFibGUgc3RhdHVzIChEVk4gY29uZmlybWF0aW9ucykAAAAAAA51bG5fdmVyaWZpYWJsZQAAAAAAAgAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAQAAB9AAAAARVmVyaWZpY2F0aW9uU3RhdGUAAAAAAAACAAAAAAAAAAAAAAAUTGF5ZXJaZXJvVmlld1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAIRW5kcG9pbnQAAAAAAAAAAAAAAAZVbG4zMDIAAAAAAAAAAAAAAAAACExvY2FsRWlkAAAAAgAAAIFSZXByZXNlbnRzIHRoZSBleGVjdXRpb24gc3RhdGUgb2YgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKVXNlZCBieSBleGVjdXRvcnMgdG8gZGV0ZXJtaW5lIHdoZW4gYSBtZXNzYWdlIGlzIHJlYWR5IHRvIGJlIGRlbGl2ZXJlZC4AAAAAAAAAAAAADkV4ZWN1dGlvblN0YXRlAAAAAAAEAAAAAAAAAD5NZXNzYWdlIGlzIG5vdCByZWFkeSBmb3IgZXhlY3V0aW9uIC0gd2FpdGluZyBmb3IgdmVyaWZpY2F0aW9uLgAAAAAADU5vdEV4ZWN1dGFibGUAAAAAAAAAAAAARk1lc3NhZ2UgaXMgdmVyaWZpZWQgYnV0IGNhbm5vdCBiZSBleGVjdXRlZCB5ZXQgKHByaW9yIG5vbmNlcyBwZW5kaW5nKS4AAAAAABhWZXJpZmllZEJ1dE5vdEV4ZWN1dGFibGUAAAAAAAAAIE1lc3NhZ2UgaXMgcmVhZHkgdG8gYmUgZXhlY3V0ZWQuAAAACkV4ZWN1dGFibGUAAAAAAAAAAAAiTWVzc2FnZSBoYXMgYWxyZWFkeSBiZWVuIGV4ZWN1dGVkLgAAAAAACEV4ZWN1dGVkAAAAAgAAAIhSZXByZXNlbnRzIHRoZSB2ZXJpZmljYXRpb24gc3RhdGUgb2YgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGF0IHRoZSBVTE4gbGV2ZWwuCgpVc2VkIGJ5IERWTnMgYW5kIGV4ZWN1dG9ycyB0byB0cmFjayB2ZXJpZmljYXRpb24gcHJvZ3Jlc3MuAAAAAAAAABFWZXJpZmljYXRpb25TdGF0ZQAAAAAAAAQAAAAAAAAAM0RWTnMgYXJlIHN0aWxsIGNvbGxlY3Rpbmcgc2lnbmF0dXJlcy9jb25maXJtYXRpb25zLgAAAAAJVmVyaWZ5aW5nAAAAAAAAAAAAAEBIYXMgZW5vdWdoIERWTiBjb25maXJtYXRpb25zLCByZWFkeSB0byBiZSBjb21taXR0ZWQgdG8gZW5kcG9pbnQuAAAAClZlcmlmaWFibGUAAAAAAAAAAAAhQWxyZWFkeSB2ZXJpZmllZCBhdCB0aGUgZW5kcG9pbnQuAAAAAAAACFZlcmlmaWVkAAAAAAAAACVDYW5ub3QgYmUgaW5pdGlhbGl6ZWQgKHBhdGggYmxvY2tlZCkuAAAAAAAAEE5vdEluaXRpYWxpemFibGUAAAAFAAAAAAAAAAAAAAAKUGFja2V0U2VudAAAAAAAAQAAAAtwYWNrZXRfc2VudAAAAAADAAAAAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAAAAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAAAAAAADHNlbmRfbGlicmFyeQAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA5QYWNrZXRWZXJpZmllZAAAAAAA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Clplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAAAAAAAAAAAAtVbG4zMDJFcnJvcgAAAAATAAAAAAAAAB1EZWZhdWx0RXhlY3V0b3JDb25maWdOb3RGb3VuZAAAAAAAAAEAAAAAAAAAH0RlZmF1bHRSZWNlaXZlVWxuQ29uZmlnTm90Rm91bmQAAAAAAgAAAAAAAAAcRGVmYXVsdFNlbmRVbG5Db25maWdOb3RGb3VuZAAAAAMAAAAAAAAAFUR1cGxpY2F0ZU9wdGlvbmFsRFZOcwAAAAAAAAQAAAAAAAAAFUR1cGxpY2F0ZVJlcXVpcmVkRFZOcwAAAAAAAAUAAAAAAAAADUludmFsaWRDb25maWcAAAAAAAAGAAAAAAAAABFJbnZhbGlkQ29uZmlnVHlwZQAAAAAAAAcAAAAAAAAAFEludmFsaWRDb25maXJtYXRpb25zAAAACAAAAAAAAAAKSW52YWxpZEVJRAAAAAAACQAAAAAAAAASSW52YWxpZE1lc3NhZ2VTaXplAAAAAAAKAAAAAAAAABdJbnZhbGlkT3B0aW9uYWxEVk5Db3VudAAAAAALAAAAAAAAABNJbnZhbGlkT3B0aW9uYWxEVk5zAAAAAAwAAAAAAAAAG0ludmFsaWRPcHRpb25hbERWTlRocmVzaG9sZAAAAAANAAAAAAAAABdJbnZhbGlkUmVxdWlyZWREVk5Db3VudAAAAAAOAAAAAAAAABNJbnZhbGlkUmVxdWlyZWREVk5zAAAAAA8AAAAAAAAAEFVsbkF0TGVhc3RPbmVEVk4AAAAQAAAAAAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAEQAAAAAAAAAJVmVyaWZ5aW5nAAAAAAAAEgAAAAAAAAAPWmVyb01lc3NhZ2VTaXplAAAAABMAAAAFAAAAAAAAAAAAAAARRXhlY3V0b3JDb25maWdTZXQAAAAAAAABAAAAE2V4ZWN1dG9yX2NvbmZpZ19zZXQAAAAAAwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAAAAAAAGY29uZmlnAAAAAAfQAAAAEk9BcHBFeGVjdXRvckNvbmZpZwAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAQU2VuZFVsbkNvbmZpZ1NldAAAAAEAAAATc2VuZF91bG5fY29uZmlnX3NldAAAAAADAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAE1JlY2VpdmVVbG5Db25maWdTZXQAAAAAAQAAABZyZWNlaXZlX3Vsbl9jb25maWdfc2V0AAAAAAADAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAGURlZmF1bHRFeGVjdXRvckNvbmZpZ3NTZXQAAAAAAAABAAAAHGRlZmF1bHRfZXhlY3V0b3JfY29uZmlnc19zZXQAAAABAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAHVNldERlZmF1bHRFeGVjdXRvckNvbmZpZ1BhcmFtAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAYRGVmYXVsdFNlbmRVbG5Db25maWdzU2V0AAAAAQAAABxkZWZhdWx0X3NlbmRfdWxuX2NvbmZpZ3Nfc2V0AAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABhTZXREZWZhdWx0VWxuQ29uZmlnUGFyYW0AAAAAAAAAAgAAAAUAAAAAAAAAAAAAABtEZWZhdWx0UmVjZWl2ZVVsbkNvbmZpZ3NTZXQAAAAAAQAAAB9kZWZhdWx0X3JlY2VpdmVfdWxuX2NvbmZpZ3Nfc2V0AAAAAAEAAAAAAAAABnBhcmFtcwAAAAAD6gAAB9AAAAAYU2V0RGVmYXVsdFVsbkNvbmZpZ1BhcmFtAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPRXhlY3V0b3JGZWVQYWlkAAAAAAEAAAARZXhlY3V0b3JfZmVlX3BhaWQAAAAAAAADAAAAAAAAAAhleGVjdXRvcgAAABMAAAABAAAAAAAAAARndWlkAAAD7gAAACAAAAABAAAAAAAAAANmZWUAAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAApEVk5GZWVQYWlkAAAAAAABAAAADGR2bl9mZWVfcGFpZAAAAAMAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABGR2bnMAAAPqAAAAEwAAAAAAAAAAAAAABGZlZXMAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9QYXlsb2FkVmVyaWZpZWQAAAAAAQAAABBwYXlsb2FkX3ZlcmlmaWVkAAAABAAAAAAAAAADZHZuAAAAABMAAAABAAAAAAAAAAZoZWFkZXIAAAAAAA4AAAAAAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAAAAAACnByb29mX2hhc2gAAAAAA+4AAAAgAAAAAAAAAAIAAAABAAAAOFVsdHJhIExpZ2h0IE5vZGUgY29uZmlndXJhdGlvbiBmb3IgbWVzc2FnZSB2ZXJpZmljYXRpb24uAAAAAAAAAAlVbG5Db25maWcAAAAAAAAEAAAASk51bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkIGJlZm9yZSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBiZWdpbnMuAAAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAAAzTWluaW11bSBudW1iZXIgb2Ygb3B0aW9uYWwgRFZOcyByZXF1aXJlZCB0byB2ZXJpZnkuAAAAABZvcHRpb25hbF9kdm5fdGhyZXNob2xkAAAAAAAEAAAAQExpc3Qgb2YgRFZOIGFkZHJlc3NlcyBmcm9tIHdoaWNoIGEgdGhyZXNob2xkIG51bWJlciBtdXN0IHZlcmlmeS4AAAANb3B0aW9uYWxfZHZucwAAAAAAA+oAAAATAAAARkxpc3Qgb2YgRFZOIGFkZHJlc3NlcyB0aGF0IG11c3QgQUxMIHZlcmlmeSB0aGUgbWVzc2FnZSAobm8gdGhyZXNob2xkKS4AAAAAAA1yZXF1aXJlZF9kdm5zAAAAAAAD6gAAABMAAAABAAAAPE9BcHAtc3BlY2lmaWMgVUxOIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0IG92ZXJyaWRlIGZsYWdzLgAAAAAAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAQAAABFT0FwcC1zcGVjaWZpYyBVTE4gY29uZmlndXJhdGlvbiAodXNlZCB3aGVuIGRlZmF1bHRzIGFyZSBub3QgYXBwbGllZCkuAAAAAAAACnVsbl9jb25maWcAAAAAB9AAAAAJVWxuQ29uZmlnAAAAAAAAJVdoZXRoZXIgdG8gdXNlIGRlZmF1bHQgY29uZmlybWF0aW9ucy4AAAAAAAAZdXNlX2RlZmF1bHRfY29uZmlybWF0aW9ucwAAAAAAAAEAAAAlV2hldGhlciB0byB1c2UgZGVmYXVsdCBvcHRpb25hbCBEVk5zLgAAAAAAABl1c2VfZGVmYXVsdF9vcHRpb25hbF9kdm5zAAAAAAAAAQAAACVXaGV0aGVyIHRvIHVzZSBkZWZhdWx0IHJlcXVpcmVkIERWTnMuAAAAAAAAGXVzZV9kZWZhdWx0X3JlcXVpcmVkX2R2bnMAAAAAAAABAAAAAQAAAFJQYXJhbWV0ZXIgZm9yIHNldHRpbmcgZGVmYXVsdCBVTE4gY29uZmlndXJhdGlvbiBmb3IgYSBkZXN0aW5hdGlvbi9zb3VyY2UgZW5kcG9pbnQuAAAAAAAAAAAAGFNldERlZmF1bHRVbG5Db25maWdQYXJhbQAAAAIAAAAoVGhlIFVMTiBjb25maWd1cmF0aW9uIHRvIHNldCBhcyBkZWZhdWx0LgAAAAZjb25maWcAAAAAB9AAAAAJVWxuQ29uZmlnAAAAAAAAS1RoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoZm9yIHNlbmQpIG9yIHNvdXJjZSBlbmRwb2ludCBJRCAoZm9yIHJlY2VpdmUpLgAAAAADZWlkAAAAAAQAAAABAAAALEV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gZm9yIG1lc3NhZ2UgZGVsaXZlcnkuAAAAAAAAAA5FeGVjdXRvckNvbmZpZwAAAAAAAgAAAENBZGRyZXNzIG9mIHRoZSBleGVjdXRvciBjb250cmFjdCByZXNwb25zaWJsZSBmb3IgbWVzc2FnZSBleGVjdXRpb24uAAAAAAhleGVjdXRvcgAAABMAAAA5TWF4aW11bSBzaXplIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIChpbiBieXRlcykuAAAAAAAAEG1heF9tZXNzYWdlX3NpemUAAAAEAAAAAQAAAFtPQXBwLXNwZWNpZmljIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uCgpJZiBleGVjdXRvciBpcyBgTm9uZWAsIHRoZSBkZWZhdWx0IGV4ZWN1dG9yIGlzIHVzZWQuAAAAAAAAAAAST0FwcEV4ZWN1dG9yQ29uZmlnAAAAAAACAAAAaEFkZHJlc3Mgb2YgdGhlIGV4ZWN1dG9yIGNvbnRyYWN0IHRvIGJlIHVzZWQgZm9yIG1lc3NhZ2UgZXhlY3V0aW9uLiBOb25lIG1lYW5zIHVzZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uAAAACGV4ZWN1dG9yAAAD6AAAABMAAABcTWF4aW11bSBzaXplIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIChpbiBieXRlcykuIDAgbWVhbnMgdXNlIGRlZmF1bHQgY29uZmlndXJhdGlvbi4AAAAQbWF4X21lc3NhZ2Vfc2l6ZQAAAAQAAAABAAAAUFBhcmFtZXRlciBmb3Igc2V0dGluZyBkZWZhdWx0IGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuAAAAAAAAAB1TZXREZWZhdWx0RXhlY3V0b3JDb25maWdQYXJhbQAAAAAAAAIAAAAtVGhlIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gdG8gc2V0IGFzIGRlZmF1bHQuAAAAAAAABmNvbmZpZwAAAAAH0AAAAA5FeGVjdXRvckNvbmZpZwAAAAAAHFRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAiwEOY29udHJhY3RtZXRhdjAAAAAAAAAABmJpbnZlcgAAAAAABTAuMC4xAAAAAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMC4xIzk0MTQ0ODA3OWVjY2Y5NTYyN2QyZmZlYTEzYmEyNjhlMzA1YTkwNzcAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMC4wI2E2NDkyNWU5MzkxYzNkM2IzZWY4ZTUzZGM2MGMyM2RiOWU2YTgyZTQA";
10
+ export const WASM_BASE64 = "AGFzbQEAAAABmQEaYAJ+fgF+YAN+fn4BfmABfgF+YAR+fn5+AX5gAAF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAABf2AAAGABfwF/YAF/AGACfn8AYAF+AGADf39/AGACfn4AYAJ/fwF+YAR/f39/AX5gA39+fgBgA35/fgF/YAR/fn5+AX9gBn9+fn9+fgBgA35/fwBgA35+fgF/YAV+f39/fwACowEbAWwBMQAAAWwBXwABAWEBMAACAWwBNgACAWIBMAACAXgBMQAAAWwBNwADAWwBMgAAAXYBXwAEAWQBXwABAWIBOAACAWIBZQAAAWkBXwACAWkBMAACAWIBMwAAAWIBagAAAWIBMQADAW0BOQABAW0BYQADAXYBZwAAAXgBMAAAAXgBMwAEAXgBOAAEAWwBMAAAAWwBOAAAAXgBNQACAWIBZgABA2JhBQYHCAcHCQoLCQYKBAQMDQ4KDAYMDwgEBgIIDAIEBQQEBAAEAg4QAAoRAhIJEwQKBAAFAAgFBQYEDAUFEQQEAQoEBAQEBAkACBQDFQAWAQARFwsGERgKBgoICBkPCA8GDwUDAQARBiEEfwFBgIDAAAt/AEG8gsAAC38AQbuFwAALfwBBwIXAAAsHnwMcBm1lbW9yeQIAB3VwZ3JhZGUANAdtaWdyYXRlADcGZnJlZXplADgJaXNfZnJvemVuADoKYXV0aG9yaXplcgA7BW93bmVyADwNcGVuZGluZ19vd25lcgA+EnRyYW5zZmVyX293bmVyc2hpcAA/GnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAEIQYWNjZXB0X293bmVyc2hpcABJEnJlbm91bmNlX293bmVyc2hpcABLE2V4dGVuZF9pbnN0YW5jZV90dGwATA9zZXRfdHRsX2NvbmZpZ3MATgt0dGxfY29uZmlncwBTEmZyZWV6ZV90dGxfY29uZmlncwBYFWlzX3R0bF9jb25maWdzX2Zyb3plbgBZDV9fY29uc3RydWN0b3IAWghlbmRwb2ludABcBnVsbjMwMgBeCWxvY2FsX2VpZABgDWluaXRpYWxpemFibGUAYgp2ZXJpZmlhYmxlAGUKZXhlY3V0YWJsZQBnDnVsbl92ZXJpZmlhYmxlAGoBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCphQYU0BAn5CACECAkACQCABEJyAgIAAIgNCAhCdgICAAEUNACADQgIQgICAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUHAgMCAAEEIELCAgIAAIAEoAgANAyABIAEpAwgQsYCAgAAMAgsgAUHIgMCAAEEGELCAgIAAIAEoAgANAiABIAEpAwgQsYCAgAAMAQsgAUHOgMCAAEEIELCAgIAAIAEoAgANASABIAEpAwgQsYCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQl4CAgABCAVELFQAgABCcgICAACABQgIQgYCAgAAaCw8AIAAgARCggICAAEEBcwsNACAAIAEQlICAgABQCxQAEKKAgIAAQQAQo4CAgABB/QFxC0gBAX8jgICAgABBEGsiACSAgICAACAAQQRqENSAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBDNgICAAAsgAEEQaiSAgICAAAtHAgF/AX5BAiEBAkAgABD6gICAACICQgIQnYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAQtNAgF/AX4QooCAgABBACEAAkBBABClgICAACIBQgIQnYCAgABFDQBBASEAAkACQCABQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAAsgAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBmoXAgABBBhCwgICAACABKAIADQMgASABKQMIELGAgIAADAILIAFBoIXAgABBCBCwgICAACABKAIADQIgASABKQMIELGAgIAADAELIAFBqIXAgABBChCwgICAACABKAIADQEgASABKQMIELGAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQp4CAgAAQgoCAgAAaC0cCAX8BfiOAgICAAEEQayIAJICAgIAAEKKAgIAAIAAQqYCAgAAgACkDCCEBIAApAwBBiwgQqoCAgAAgAEEQaiSAgICAACABC2wCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQqYCAgAAgACkDCCEBIAApAwBBiwgQqoCAgAACQCABEKeAgIAAEKCAgIAADQBCg4CAgOCAARCrgICAAAALIAEQgoCAgAAaIABBEGokgICAgAAgAQsQABCigICAACAAEK+AgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQq4CAgAAACwsAIAAQmYCAgAAaC0IBAX8jgICAgABBEGsiACSAgICAACAAEK2AgIAAAkAgACkDAFANAEKDgICAwIEBEKuAgIAAAAsgAEEQaiSAgICAAAtTAQJ+EKKAgIAAQgAhAQJAAkBBARCugICAACICQgAQnYCAgABFDQAgAkIAEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBrYTAgABBDBCwgICAACABKAIADQIgASABKQMIELGAgIAADAELIAFBqITAgABBBRCwgICAACABKAIADQEgASABKQMIELGAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQroCAgAAiAkICEJ2AgIAARQ0AIAJCAhCAgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQ94CAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBENeAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAACw4AQYCAwIAAELOAgIAACwwAIABBIBDvgICAAAt5AQF/I4CAgIAAQRBrIgEkgICAgAAgASAAELWAgIAAAkACQCABKAIAQQFGDQAgASkDCCEAEKaAgIAAEKKAgIAAEKGAgIAADQFBARC2gICAACAAEIOAgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDAgwEQq4CAgAAAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCKgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAsMAEEBIAAQuYCAgAALbQACQAJAAkAgAEL/AYNCyABSDQAQpoCAgAAQooCAgABBARCjgICAAEH9AXFFDQEgABCEgICAAEL/AYNCAlINAkEAELaAgIAAQgIPCwALQoOAgICwgwEQq4CAgAAAC0KDgICAoIMBEKuAgIAAAAs1ABCmgICAABCigICAAAJAEKGAgIAARQ0AQoOAgIDAgwEQq4CAgAAAC0EAQQEQuYCAgABCAgsaACAAEPqAgIAAIAGtQv8Bg0ICEIGAgIAAGgsJABChgICAAK0LCAAQp4CAgAALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCpgICAACAAKQMAIAApAwgQvYCAgAAhASAAQRBqJICAgIAAIAELDQAgAUICIACnQQFxGws+AgF/AX4jgICAgABBEGsiACSAgICAACAAEK2AgIAAIAApAwAgACkDCBC9gICAACEBIABBEGokgICAgAAgAQs8AQF+AkAgAEL/AYNCzQBRDQAACxCigICAABCogICAACEBEKyAgIAAIAAQwICAgAAgASAAEMGAgIAAQgILDgBBACAAQgIQyICAgAALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABB14LAgABBFRDEgICAABDFgICAACEDIAIgADcDCCACIAE3AwAgA0GAg8CAAEECIAJBAhDGgICAABCFgICAABogAkEQaiSAgICAAAv8AgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINABCigICAABCogICAACEDAkACQCABQv////8PVg0AIAJBCGoQrYCAgAAgAikDECEBIAIpAwhBiQgQqoCAgAAgASAAEKCAgIAARQ0DEMOAgIAAQcSDwIAAQRwQxICAgAAQxYCAgAAhACACIAM3AxAgAiABNwMIIABB/IPAgABBAiACQQhqQQIQxoCAgAAQhYCAgAAaDAELEMeAgIAAIAFCIIinSQ0DQQEgAEIAEMiAgIAAQQEQroCAgABCACABQoSAgIBwgyIBIAEQhoCAgAAaQZCDwIAAQRYQxICAgAAQxYCAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQayDwIAAQQMgAkEIakEDEMaAgIAAEIWAgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA8IABEKuAgIAAAAtCg4CAgICBARCrgICAAAALEwBBARCugICAAEIAEIeAgIAAGgtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARD3gICAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBENeAgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQkYCAgAALMwECfhCVgICAACEAAkAQloCAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQ24CAgAAACxUAIAAQroCAgAAgASACEIGAgIAAGguIAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAQooCAgAAgABCtgICAACAAKQMIIQEgACkDAEGJCBCqgICAACABEIKAgIAAGiAAEK+AgIAAAkAgACgCAA0AEMqAgIAAAAsgACkDCCECEMOAgIAAIAEQwICAgAAgAiABEMGAgIAAIABBEGokgICAgABCAgsJABDbgICAAAALhAECAX8CfiOAgICAAEEQayIAJICAgIAAEKKAgIAAEKiAgIAAIQEQrICAgABBABCugICAAEICEIeAgIAAGkGMhMCAAEETEMSAgIAAEMWAgIAAIQIgACABNwMIIAJBoITAgABBASAAQQhqQQEQxoCAgAAQhYCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxDNgICAAEICDwsACxsAIACtQiCGQgSEIAGtQiCGQgSEEJiAgIAAGgu8BAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQz4CAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDPgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGBCmgICAABCigICAAAJAAkACQBCkgICAAA0AEMeAgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEKuAgIAAAAtCg4CAgMD/ABCrgICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQENCAgIAADAELQQEQpYCAgABCAhCHgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgENGAgIAADAELQQIQpYCAgABCAhCHgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHUhMCAAEEPEMSAgIAAEMWAgIAAIQAgAkEoahDSgICAACEBIAIgAkE0ahDSgICAADcDSCACIAE3A0AgAEH4hMCAAEECIAJBwABqQQIQxoCAgAAQhYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEPiAgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALDgBBASAAIAEQ+4CAgAALDgBBAiAAIAEQ+4CAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAENaAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAguiAQICfwF+I4CAgIAAQcAAayIAJICAgIAAEKKAgIAAIABBCGoQ1ICAgAAgAEEUaiIBQQIQ1YCAgAAgAEEwaiAAQQhqENaAgIAAAkACQCAAKAIwDQAgACkDOCECIABBMGogARDWgICAACAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgAjcDICAAQSBqQQIQ14CAgAAhAiAAQcAAaiSAgICAACACCwwAIABBARDVgICAAAt3AgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQAJAIAEQpYCAgAAiBEICEJ2AgIAARQ0AIAJBBGogBEICEICAgIAAEPiAgIAAQQEhAyACKAIEQQFGDQEgACACKQIINwIECyAAIAM2AgAgAkEQaiSAgICAAA8LAAswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBD5gICAAA8LIABCADcDACAAQgI3AwgLGgAgAK1CIIZCBIQgAa1CIIZCBIQQk4CAgAALiAEBAX8jgICAgABBEGsiACSAgICAABCmgICAABCigICAAAJAEKSAgIAARQ0AQoOAgIDg/wAQq4CAgAAAC0EAEKWAgIAAQgFCAhCBgICAABpBiIXAgABBEhDEgICAABDFgICAAEEEQQAgAEEIakEAEMaAgIAAEIWAgIAAGiAAQRBqJICAgIAAQgILCQAQpICAgACtC8sBAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0LNAFINAEGAyx5BgNIfENCAgIAAQYDLHkGA0h8Q0YCAgABBABCugICAAEICEJ2AgIAADQEgABDAgICAAEEAIAEQnoCAgABBASACEJ6AgIAAIAFCjtKuFRCIgICAABCJgICAACIBQv8Bg0IEUg0CQQIQnICAgAAgAUKEgICAcINCAhCBgICAABpCAg8LAAtCg4CAgKCBARCrgICAAAALENuAgIAAAAsJABDzgICAAAALCAAQ3YCAgAALTAIBfwF+I4CAgIAAQRBrIgAkgICAgAAQooCAgAAgAEEAEJuAgIAAAkAgACgCAA0AEMqAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQsIABDfgICAAAtMAgF/AX4jgICAgABBEGsiACSAgICAABCigICAACAAQQEQm4CAgAACQCAAKAIADQAQyoCAgAAACyAAKQMIIQEgAEEQaiSAgICAACABCw8AEOGAgIAArUIghkIEhAtIAQF+EKKAgIAAAkACQEECEJyAgIAAIgBCAhCdgICAAEUNACAAQgIQgICAgAAiAEL/AYNCBFENAQALEMqAgIAAAAsgAEIgiKcLmAEBAn8jgICAgABBwABrIgIkgICAgAAgAkEgaiAAEOOAgIAAAkAgAigCIEEBRg0AIAJBCGpBEGogAkE4aikDADcDACACQRBqIAJBIGpBEGopAwA3AwAgAiACKQMoNwMIIAFC/wGDQs0AUg0AEKKAgIAAEN2AgIAAIAJBCGogARDkgICAACEDIAJBwABqJICAgIAAIAOtDwsAC+IBAgJ/An4jgICAgABBMGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQcyBwIAAQQMgAkEIakEDEPaAgIAAIAJBIGogAikDCBD1gICAACACKAIgDQAgAikDKCEBIAJBIGogAikDEBC1gICAACACKAIgDQAgAikDGCIFQv8Bg0IEUg0AIAIpAyghBCAAIAE3AxAgACAENwMIIAAgBUIgiD4CGEIAIQQLIAAgBDcDACACQTBqJICAgIAAC7oBAgF/An4jgICAgABBIGsiAySAgICAAEHkgcCAAEENEMSAgIAAIQQgARDygICAACEFIAMgAjcDCCADIAU3AwBBACEBA38CQCABQRBHDQBBACEBAkADQCABQRBGDQEgA0EQaiABaiADIAFqKQMANwMAIAFBCGohAQwACwsgACAEIANBEGpBAhDXgICAABDwgICAACEBIANBIGokgICAgAAgAQ8LIANBEGogAWpCAjcDACABQQhqIQEMAAsLtgEBAn8jgICAgABBwABrIgQkgICAgAAgBEEgaiAAEOOAgIAAAkAgBCgCIEEBRg0AIARBCGpBEGogBEE4aikDADcDACAEQRBqIARBIGpBEGopAwA3AwAgBCAEKQMoNwMIIAFC/wGDQs0AUg0AIAJC/wGDQs0AUg0AIARBIGogAxC1gICAACAEKAIgQQFGDQAgBEEIaiABIAIgBCkDKBDmgICAACEFIARBwABqJICAgIAAIAWtDwsAC4kDAwF/A34BfyOAgICAAEEwayIEJICAgIAAEKKAgIAAEN2AgIAAIQUgADUCECEGQfGBwIAAQRgQxICAgAAhByAEIAI3AxAgBCAGQiCGQgSENwMIIAQgATcDAEEAIQgCQAJAA0ACQCAIQRhHDQBBACEIAkADQCAIQRhGDQEgBEEYaiAIaiAEIAhqKQMANwMAIAhBCGohCAwACwsgBSAHIARBGGpBAxDXgICAABDwgICAAEUNAkHEgsCAAEEKEMSAgIAAIQIgABDygICAACEGIAQgATcDCCAEIAY3AwBBACEIA0ACQCAIQRBHDQBBACEIAkADQCAIQRBGDQEgBEEYaiAIaiAEIAhqKQMANwMAIAhBCGohCAwACwsgBSACIARBGGpBAhDXgICAABDwgICAAEUNBCADELKAgIAAEKCAgIAAQQFzIQgMBQsgBEEYaiAIakICNwMAIAhBCGohCAwACwsgBEEYaiAIakICNwMAIAhBCGohCAwACwtBACEICyAEQTBqJICAgIAAIAgL2AUCAn8GfiOAgICAAEHQAGsiAiSAgICAACACQQhqIAAQ44CAgAACQAJAIAIoAghBAUYNACABQv8Bg0LNAFINACACKAIgIQMgAikDGCEAIAIpAxAhBBCigICAACACQShqEN2AgIAAIgUgASADIAQgABDogICAABCygICAACEGQaCAwIAAELOAgIAAIQcCQAJAAkACQCACKAIoDQBBloLAgABBEhDEgICAACEHIAIgBDcDSCACIAE3AzggAiADrUIghkIEhDcDQEEAIQMDQAJAIANBGEcNAEEAIQMCQANAIANBGEYNASACQQhqIANqIAJBOGogA2opAwA3AwAgA0EIaiEDDAALCyAAIAUgByACQQhqQQMQ14CAgAAQ6YCAgABWDQMgAkEIakGFgcCAAEEIELCAgIAAIAIoAggNBiACQQhqIAIpAxAQsYCAgAAMBQsgAkEIaiADakICNwMAIANBCGohAwwACwsCQCACKQMwIgggBxCfgICAAEUNAEGJgsCAAEENEMSAgIAAIQkgAiAENwNIIAIgATcDOCACIAOtQiCGQgSENwNAQQAhAwNAAkAgA0EYRw0AQQAhAwJAA0AgA0EYRg0BIAJBCGogA2ogAkE4aiADaikDADcDACADQQhqIQMMAAsLIAAgBSAJIAJBCGpBAxDXgICAABDpgICAAFYNAiACQQhqQfuAwIAAQQoQsICAgAAgAigCCA0GIAJBCGogAikDEBCxgICAAAwFCyACQQhqIANqQgI3AwAgA0EIaiEDDAALCyAIIAYQn4CAgABFDQAgCCAHEJ+AgIAADQELIAJBCGpB1oDAgABBDRCwgICAACACKAIIDQIgAkEIaiACKQMQELGAgIAADAELIAJBCGpB44DAgABBGBCwgICAACACKAIIDQEgAkEIaiACKQMQELGAgIAACyACKQMQIQEgAikDCFANAQsACyACQdAAaiSAgICAACABC64CAgF/AX4jgICAgABBwABrIgYkgICAgABBqILAgABBFBDEgICAACEHIAZBIGogBRD0gICAAAJAIAYoAiBBAUYNACAGIAYpAyg3AxggBiAENwMQIAYgAjcDACAGIAOtQiCGQgSENwMIQQAhAwJAA0ACQCADQSBHDQBBACEDAkADQCADQSBGDQEgBkEgaiADaiAGIANqKQMANwMAIANBCGohAwwACwsCQAJAIAEgByAGQSBqQQQQ14CAgAAQiYCAgAAiBUICUg0AQgAhBQwBCyAGQSBqIAUQtYCAgAAgBigCIEEBRg0DIAYpAyghBEIBIQULIAAgBDcDCCAAIAU3AwAgBkHAAGokgICAgAAPCyAGQSBqIANqQgI3AwAgA0EIaiEDDAALCxDbgICAAAALAAtRAQF/I4CAgIAAQRBrIgMkgICAgAAgAyAAIAEgAhCJgICAABD1gICAAAJAIAMoAgBBAUcNABDbgICAAAALIAMpAwghAiADQRBqJICAgIAAIAILwwgGAX8BfgF/AX4BfwF+I4CAgIAAQcAAayICJICAgIAAAkACQCAAQv8Bg0LIAFINACACIAA3AwAgAkEIaiABELWAgIAAIAIoAghBAUYNACACKQMQIQMQooCAgAACQAJAIAIpAwAQioCAgABCgICAgHCDQoCAgICQClINACACQQA2AjQgAiACNgIwAkAgAkEwakEBEOuAgIAAIgAQioCAgABCgICAgHCDQoCAgIAQUg0AIAJBADoACAJAIAAQioCAgABCgICAgHCDQoCAgIAQUg0AIAAgAkEIakEBEOyAgIAAAkAgAi0ACEEBRw0AAkAgAkEwakEIEOuAgIAAIgAQioCAgABCgICAgHCDQoCAgICAAVINACACQgA3AwggABCKgICAAEKAgICAcINCgICAgIABUg0CIAAgAkEIakEIEOyAgIAAIAIpAwghACACQTBqEO2AgIAAIQQgAkEwahDugICAACEFIAJBMGoQ7YCAgAAhBiACQTBqEO6AgIAAIQECQCAGEOGAgIAARw0AQbyCwIAAQQgQ74CAgAAgARCLgICAABCEgICAACIBQv8Bg0LNAFINByACIABCOIYgAEKA/gODQiiGhCAAQoCA/AeDQhiGIABCgICA+A+DQgiGhIQgAEIIiEKAgID4D4MgAEIYiEKAgPwHg4QgAEIoiEKA/gODIABCOIiEhIQiADcDECACIAU3AwggAiAENgIYAkAQ3YCAgAAgAkEIaiABEOSAgIAADQAgAkEIakGogcCAAEEQELCAgIAAIAIoAggNCCACQQhqIAIpAxAQsYCAgAAMBwsCQAJAIAJBCGogARDfgICAACIHIAMQ5oCAgABFDQAgAkEwahDdgICAACABIAQgBSAAEOiAgIAAIAIoAjBFDQEgAikDOCADEKCAgIAARQ0BCyACQQhqQaCBwIAAQQgQsICAgAAgAigCCA0IIAJBCGogAikDEBCxgICAAAwHCyACKQMAIQBBxILAgABBChDEgICAACEBIAIgAzcDKCACIAA3AyBBACEEA0ACQCAEQRBHDQBBACEEAkADQCAEQRBGDQEgAkEwaiAEaiACQSBqIARqKQMANwMAIARBCGohBAwACwsCQCAHIAEgAkEwakECENeAgIAAEPCAgIAADQAgAkEIakGNgcCAAEEJELCAgIAAIAIoAggNCiACQQhqIAIpAxAQsYCAgAAMCQsgAkEIakGWgcCAAEEKELCAgIAAIAIoAggNCSACQQhqIAIpAxAQsYCAgAAMCAsgAkEwaiAEakICNwMAIARBCGohBAwACwtCg4CAgBAQq4CAgAAAC0KDgICAgIIBEKuAgIAAAAtCg4CAgNCJARCrgICAAAALEPGAgIAAAAtCg4CAgICCARCrgICAAAALQoOAgIDAiQEQq4CAgAAACyACKQMQIQAgAikDCFANAQsACyACQcAAaiSAgICAACAAC3UCAn8BfgJAAkAgACgCBCICIAFqIgEgAkkNACABIAAoAgAiAykDABCKgICAAEIgiKdLDQEgAykDACACrUIghkIEhCABrUIghkIEhBCagICAACEEIAAgATYCBCAEDwsQ24CAgAAAC0KDgICAgP0AEKuAgIAAAAsfACAAQgQgAa1CIIZCBIQgAq1CIIZCBIQQkICAgAAaC7kBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkAgAEEEEOuAgIAAIgIQioCAgABCgICAgHCDQoCAgIDAAFINACABQQA2AgwgAhCKgICAAEKAgICAcINCgICAgMAAUg0BIAIgAUEMakEEEOyAgIAAIAEoAgwhACABQRBqJICAgIAAIABBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyDwtCg4CAgICCARCrgICAAAALEPGAgIAAAAv/AQMBfwF+An8jgICAgABBwABrIgEkgICAgAACQAJAIABBIBDrgICAACICEIqAgIAAQoCAgIBwg0KAgICAgARSDQAgAUEgakEYaiIAQgA3AwAgAUEgakEQaiIDQgA3AwAgAUEgakEIaiIEQgA3AwAgAUIANwMgIAIQioCAgABCgICAgHCDQoCAgICABFINASACIAFBIGpBIBDsgICAACABQRhqIAApAwA3AwAgAUEQaiADKQMANwMAIAFBCGogBCkDADcDACABIAEpAyA3AwAgARCzgICAACECIAFBwABqJICAgIAAIAIPC0KDgICAgIIBEKuAgIAAAAsQ8YCAgAAACxoAIACtQiCGQgSEIAGtQiCGQgSEEI6AgIAACzQBAX9BASEDAkACQAJAIAAgASACEImAgIAAp0H/AXEOAgECAAsQ24CAgAAAC0EAIQMLIAMLCQAQ24CAgAAAC30CAX8BfiOAgICAAEEwayIBJICAgIAAIAFBIGogACkDCBD0gICAAAJAIAEoAiBBAUcNAAALIAEgASkDKDcDCCABIAApAwA3AxAgASAANQIQQiCGQgSENwMYQcyBwIAAQQMgAUEIakEDEMaAgIAAIQIgAUEwaiSAgICAACACCwMAAAs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQjICAgAAhAQsgAEIANwMAIAAgATcDCAtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEI2AgIAAIQELIAAgAzcDACAAIAE3AwgLMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEJKAgIAAGgvbAQIBfgR/AkACQCACQQlLDQBCACEDIAIhBCABIQUDQAJAIAQNACADQgiGQg6EIQMMAwtBASEGAkAgBS0AACIHQd8ARg0AAkAgB0FQakH/AXFBCkkNAAJAIAdBv39qQf8BcUEaSQ0AIAdBn39qQf8BcUEZSw0EIAdBRWohBgwCCyAHQUtqIQYMAQsgB0FSaiEGCyADQgaGIAatQv8Bg4QhAyAEQX9qIQQgBUEBaiEFDAALCyABrUIghkIEhCACrUIghkIEhBCPgICAACEDCyAAQgA3AwAgACADNwMIC60BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQcSEwIAAQQIgAkECEPaAgIAAIAIpAwAiAUL/AYNCBFINACACKQMIIgRC/wGDQgRSDQAgACABQiCIpzYCCCAAIARCIIg+AgRBACEDCyAAIAM2AgAgAkEQaiSAgICAAAtgAgF/AX4jgICAgABBEGsiAySAgICAACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBBxITAgABBAiADQQIQxoCAgAAhBCAAQgA3AwAgACAENwMIIANBEGokgICAgAALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQbKFwIAAQQkQsICAgAAgASgCAA0CIAEgASkDCBCxgICAAAwBCyABQZqFwIAAQQYQsICAgAAgASgCAA0BIAEgASkDCBCxgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC1YCAX8BfiOAgICAAEEQayIDJICAgIAAIAAQpYCAgAAhBCADIAEgAhD5gICAAAJAIAMoAgBBAUcNAAALIAQgAykDCEICEIGAgIAAGiADQRBqJICAgIAACwvFBQEAQYCAwAALuwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////////////RW5kcG9pbnRVbG4zMDJMb2NhbEVpZE5vdEV4ZWN1dGFibGVWZXJpZmllZEJ1dE5vdEV4ZWN1dGFibGVFeGVjdXRhYmxlRXhlY3V0ZWRWZXJpZnlpbmdWZXJpZmlhYmxlVmVyaWZpZWROb3RJbml0aWFsaXphYmxlbm9uY2VzZW5kZXJzcmNfZWlkAAC4ABAABQAAAL0AEAAGAAAAwwAQAAcAAABpbml0aWFsaXphYmxlaXNfdmFsaWRfcmVjZWl2ZV9saWJyYXJ5aW5ib3VuZF9ub25jZWxhenlfaW5ib3VuZF9ub25jZWluYm91bmRfcGF5bG9hZF9oYXNoAAAAEgAAAAF2ZXJpZmlhYmxldGhyZXNob2xkb3duZXJzaGlwX3RyYW5zZmVycmVkbmV3X293bmVyb2xkX293bmVyAABsARAACQAAAHUBEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAGwBEAAJAAAAdQEQAAkAAACmARAAAwAAAG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWRjYW5jZWxsZWRfcGVuZGluZ19vd25lcm93bmVy4AEQABcAAAD3ARAABQAAAG93bmVyc2hpcF9yZW5vdW5jZWQAdQEQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAOQIQAAkAAABOARAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAGMCEAAIAAAAawIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmcAv7sBDmNvbnRyYWN0c3BlY3YwAAAABAAAACJFcnJvcnMgZm9yIExheWVyWmVyb1ZpZXcgY29udHJhY3QuAAAAAAAAAAAAEkxheWVyWmVyb1ZpZXdFcnJvcgAAAAAAAQAAAClJbnZhbGlkIHBhY2tldCBoZWFkZXIgKGRzdF9laWQgbWlzbWF0Y2gpLgAAAAAAAApJbnZhbGlkRUlEAAAAAAABAAAAAAAAAGxVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAIdSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpQYXJzZXMgWERSLWVuY29kZWQgYG1pZ3JhdGlvbl9kYXRhYCBhbmQgY2FsbHMgYF9fbWlncmF0ZWAuIENsZWFycyB0aGUgbWlncmF0aW9uIGZsYWcgb24gc3VjY2Vzcy4AAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAE9QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLiBJcnJldmVyc2libGUuAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAZ1bG4zMDIAAAAAABMAAAAAAAAAAAAAAB1SZXR1cm5zIHRoZSBlbmRwb2ludCBhZGRyZXNzLgAAAAAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAAAbUmV0dXJucyB0aGUgVWxuMzAyIGFkZHJlc3MuAAAAAAZ1bG4zMDIAAAAAAAAAAAABAAAAEwAAAAAAAAAeUmV0dXJucyB0aGUgbG9jYWwgZW5kcG9pbnQgSUQuAAAAAAAJbG9jYWxfZWlkAAAAAAAAAAAAAAEAAAAEAAAAAAAAAFBDaGVja3MgaWYgYSBtZXNzYWdpbmcgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4gYW5kIHJlY2VpdmVyLgAAAA1pbml0aWFsaXphYmxlAAAAAAAAAgAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAQAAAAAAAAC0Q2hlY2tzIGlmIGEgbWVzc2FnZSBjYW4gYmUgdmVyaWZpZWQgYXQgdGhlIGVuZHBvaW50LgoKVmVyaWZpZXM6CjEuIFJlY2VpdmUgbGlicmFyeSBpcyB2YWxpZCBmb3IgdGhpcyByZWNlaXZlciBhbmQgc291cmNlCjIuIEVuZHBvaW50IG5vbmNlIGNoZWNrIHBhc3NlcwozLiBQYXlsb2FkIGhhc2ggaXMgbm90IGVtcHR5AAAACnZlcmlmaWFibGUAAAAAAAQAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAAAAAAtyZWNlaXZlX2xpYgAAAAATAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAEAAAABAAAAAAAAAClSZXR1cm5zIHRoZSBleGVjdXRpb24gc3RhdGUgb2YgYSBtZXNzYWdlLgAAAAAAAApleGVjdXRhYmxlAAAAAAACAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAfQAAAADkV4ZWN1dGlvblN0YXRlAAAAAAAAAAAA7lJldHVybnMgdGhlIGNvbWJpbmVkIHZlcmlmaWNhdGlvbiBzdGF0ZSBvZiBhIG1lc3NhZ2UuCgpUaGlzIGZ1bmN0aW9uIGNoZWNrczoKMS4gUGFja2V0IGhlYWRlciB2YWxpZGl0eSAoZHN0X2VpZCBtYXRjaGVzIGxvY2FsX2VpZCkKMi4gRW5kcG9pbnQgaW5pdGlhbGl6YWJsZSBzdGF0dXMKMy4gRW5kcG9pbnQgdmVyaWZpYWJsZSBzdGF0dXMKNC4gVUxOIHZlcmlmaWFibGUgc3RhdHVzIChEVk4gY29uZmlybWF0aW9ucykAAAAAAA51bG5fdmVyaWZpYWJsZQAAAAAAAgAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAQAAB9AAAAARVmVyaWZpY2F0aW9uU3RhdGUAAAAAAAACAAAAAAAAAAAAAAAUTGF5ZXJaZXJvVmlld1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAIRW5kcG9pbnQAAAAAAAAAAAAAAAZVbG4zMDIAAAAAAAAAAAAAAAAACExvY2FsRWlkAAAAAgAAAIFSZXByZXNlbnRzIHRoZSBleGVjdXRpb24gc3RhdGUgb2YgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKVXNlZCBieSBleGVjdXRvcnMgdG8gZGV0ZXJtaW5lIHdoZW4gYSBtZXNzYWdlIGlzIHJlYWR5IHRvIGJlIGRlbGl2ZXJlZC4AAAAAAAAAAAAADkV4ZWN1dGlvblN0YXRlAAAAAAAEAAAAAAAAAD5NZXNzYWdlIGlzIG5vdCByZWFkeSBmb3IgZXhlY3V0aW9uIC0gd2FpdGluZyBmb3IgdmVyaWZpY2F0aW9uLgAAAAAADU5vdEV4ZWN1dGFibGUAAAAAAAAAAAAARk1lc3NhZ2UgaXMgdmVyaWZpZWQgYnV0IGNhbm5vdCBiZSBleGVjdXRlZCB5ZXQgKHByaW9yIG5vbmNlcyBwZW5kaW5nKS4AAAAAABhWZXJpZmllZEJ1dE5vdEV4ZWN1dGFibGUAAAAAAAAAIE1lc3NhZ2UgaXMgcmVhZHkgdG8gYmUgZXhlY3V0ZWQuAAAACkV4ZWN1dGFibGUAAAAAAAAAAAAiTWVzc2FnZSBoYXMgYWxyZWFkeSBiZWVuIGV4ZWN1dGVkLgAAAAAACEV4ZWN1dGVkAAAAAgAAAIhSZXByZXNlbnRzIHRoZSB2ZXJpZmljYXRpb24gc3RhdGUgb2YgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGF0IHRoZSBVTE4gbGV2ZWwuCgpVc2VkIGJ5IERWTnMgYW5kIGV4ZWN1dG9ycyB0byB0cmFjayB2ZXJpZmljYXRpb24gcHJvZ3Jlc3MuAAAAAAAAABFWZXJpZmljYXRpb25TdGF0ZQAAAAAAAAQAAAAAAAAAM0RWTnMgYXJlIHN0aWxsIGNvbGxlY3Rpbmcgc2lnbmF0dXJlcy9jb25maXJtYXRpb25zLgAAAAAJVmVyaWZ5aW5nAAAAAAAAAAAAAEBIYXMgZW5vdWdoIERWTiBjb25maXJtYXRpb25zLCByZWFkeSB0byBiZSBjb21taXR0ZWQgdG8gZW5kcG9pbnQuAAAAClZlcmlmaWFibGUAAAAAAAAAAAAhQWxyZWFkeSB2ZXJpZmllZCBhdCB0aGUgZW5kcG9pbnQuAAAAAAAACFZlcmlmaWVkAAAAAAAAACVDYW5ub3QgYmUgaW5pdGlhbGl6ZWQgKHBhdGggYmxvY2tlZCkuAAAAAAAAEE5vdEluaXRpYWxpemFibGUAAAAFAAAAAAAAAAAAAAAKUGFja2V0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b2tlbiBmZWUgaXMgbGVzcyB0aGFuIHJlcXVpcmVkAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAACtUaW1lb3V0IGV4cGlyeSBpcyBpbnZhbGlkIChhbHJlYWR5IGV4cGlyZWQpAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACAAAACBGZWUgYW1vdW50IGlzIGludmFsaWQgKG5lZ2F0aXZlKQAAABBJbnZhbGlkRmVlQW1vdW50AAAACQAAACtDb21wb3NlIGluZGV4IGV4Y2VlZHMgbWF4aW11bSBhbGxvd2VkIHZhbHVlAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAALE5vbmNlIGlzIGludmFsaWQgZm9yIHRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uAAAADEludmFsaWROb25jZQAAAAsAAAAwUGF5bG9hZCBoYXNoIGlzIGludmFsaWQgKGVtcHR5IGhhc2ggbm90IGFsbG93ZWQpAAAAEkludmFsaWRQYXlsb2FkSGFzaAAAAAAADAAAAEFSZWNlaXZlIGxpYnJhcnkgaXMgbm90IHZhbGlkIGZvciB0aGUgcmVjZWl2ZXIgYW5kIHNvdXJjZSBlbmRwb2ludAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAMU9wZXJhdGlvbiByZXF1aXJlcyBhIG5vbi1kZWZhdWx0IChjdXN0b20pIGxpYnJhcnkAAAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAJ0xpYnJhcnkgbXVzdCBzdXBwb3J0IHJlY2VpdmluZyBtZXNzYWdlcwAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAsTGlicmFyeSBtdXN0IGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgZW5kcG9pbnQAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAJUxpYnJhcnkgbXVzdCBzdXBwb3J0IHNlbmRpbmcgbWVzc2FnZXMAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAADlNZXNzYWdpbmcgcGF0aCBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4AAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAL01lc3NhZ2UgY2Fubm90IGJlIHZlcmlmaWVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAArUGF5bG9hZCBoYXNoIGRvZXMgbm90IG1hdGNoIHRoZSBzdG9yZWQgaGFzaAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAJ05ldyB2YWx1ZSBpcyB0aGUgc2FtZSBhcyBleGlzdGluZyB2YWx1ZQAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAC9DYWxsZXIgaXMgbm90IGF1dGhvcml6ZWQgKG5vdCBPQXBwIG9yIGRlbGVnYXRlKQAAAAAMVW5hdXRob3JpemVkAAAAFgAAACtFbmRwb2ludCBJRCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBsaWJyYXJ5AAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAADlaUk8gZmVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8gd2hlbiBwYXlfaW5fenJvIGlzIHRydWUAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAABxaUk8gdG9rZW4gYWRkcmVzcyBpcyBub3Qgc2V0AAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAM1VuaXggdGltZXN0YW1wIGluIHNlY29uZHMgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAAGZXhwaXJ5AAAAAAAGAAAAQ1RoZSBvbGQgbGlicmFyeSBhZGRyZXNzIHRoYXQgcmVtYWlucyB2YWxpZCBkdXJpbmcgdGhlIGdyYWNlIHBlcmlvZC4AAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAAAAAAAAAAAAtVbG4zMDJFcnJvcgAAAAAUAAAARkRlZmF1bHQgZXhlY3V0b3IgY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0IGZvciB0aGUgZGVzdGluYXRpb24gZW5kcG9pbnQAAAAAAB1EZWZhdWx0RXhlY3V0b3JDb25maWdOb3RGb3VuZAAAAAAAAAEAAABERGVmYXVsdCByZWNlaXZlIFVMTiBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQgZm9yIHRoZSBzb3VyY2UgZW5kcG9pbnQAAAAfRGVmYXVsdFJlY2VpdmVVbG5Db25maWdOb3RGb3VuZAAAAAACAAAARkRlZmF1bHQgc2VuZCBVTE4gY29uZmlndXJhdGlvbiBpcyBub3Qgc2V0IGZvciB0aGUgZGVzdGluYXRpb24gZW5kcG9pbnQAAAAAABxEZWZhdWx0U2VuZFVsbkNvbmZpZ05vdEZvdW5kAAAAAwAAAC9PcHRpb25hbCBEVk5zIGxpc3QgY29udGFpbnMgZHVwbGljYXRlIGFkZHJlc3NlcwAAAAAVRHVwbGljYXRlT3B0aW9uYWxEVk5zAAAAAAAABAAAAC9SZXF1aXJlZCBEVk5zIGxpc3QgY29udGFpbnMgZHVwbGljYXRlIGFkZHJlc3NlcwAAAAAVRHVwbGljYXRlUmVxdWlyZWREVk5zAAAAAAAABQAAADhDb25maWd1cmF0aW9uIGJ5dGVzIGZhaWxlZCB0byBwYXJzZSBhcyBleHBlY3RlZCBYRFIgdHlwZQAAAA1JbnZhbGlkQ29uZmlnAAAAAAAABgAAADxDb25maWcgdHlwZSBpcyBub3Qgb25lIG9mIEVYRUNVVE9SLCBTRU5EX1VMTiwgb3IgUkVDRUlWRV9VTE4AAAARSW52YWxpZENvbmZpZ1R5cGUAAAAAAAAHAAAAO0NvbmZpcm1hdGlvbnMgbXVzdCBiZSB6ZXJvIHdoZW4gdXNpbmcgZGVmYXVsdCBjb25maXJtYXRpb25zAAAAABRJbnZhbGlkQ29uZmlybWF0aW9ucwAAAAgAAABAUGFja2V0IGhlYWRlciBkZXN0aW5hdGlvbiBFSUQgZG9lcyBub3QgbWF0Y2ggdGhpcyBlbmRwb2ludCdzIEVJRAAAAApJbnZhbGlkRUlEAAAAAAAJAAAAMk1lc3NhZ2Ugc2l6ZSBleGNlZWRzIGV4ZWN1dG9yJ3MgY29uZmlndXJlZCBtYXhpbXVtAAAAAAASSW52YWxpZE1lc3NhZ2VTaXplAAAAAAAKAAAAMU9wdGlvbmFsIERWTnMgY291bnQgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgKDEyNykAAAAAAAAXSW52YWxpZE9wdGlvbmFsRFZOQ291bnQAAAAACwAAADxPcHRpb25hbCBEVk5zIG11c3QgYmUgZW1wdHkgd2hlbiB1c2luZyBkZWZhdWx0IG9wdGlvbmFsIERWTnMAAAATSW52YWxpZE9wdGlvbmFsRFZOcwAAAAAMAAAATU9wdGlvbmFsIERWTiB0aHJlc2hvbGQgaXMgaW52YWxpZCAobXVzdCBiZSAwIHdpdGggbm8gRFZOcywgb3IgMSB0byBEVk4gY291bnQpAAAAAAAAG0ludmFsaWRPcHRpb25hbERWTlRocmVzaG9sZAAAAAANAAAAMVJlcXVpcmVkIERWTnMgY291bnQgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgKDEyNykAAAAAAAAXSW52YWxpZFJlcXVpcmVkRFZOQ291bnQAAAAADgAAADxSZXF1aXJlZCBEVk5zIG11c3QgYmUgZW1wdHkgd2hlbiB1c2luZyBkZWZhdWx0IHJlcXVpcmVkIERWTnMAAAATSW52YWxpZFJlcXVpcmVkRFZOcwAAAAAPAAAASVNlbmRlciBhZGRyZXNzIG11c3QgYmUgYSBjb250cmFjdCAoQy1hZGRyZXNzKSwgbm90IGFuIGFjY291bnQgKEctYWRkcmVzcykAAAAAAAAUSW52YWxpZFNlbmRlckFkZHJlc3MAAAAQAAAAUkNvbmZpZ3VyYXRpb24gbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBEVk4gKHJlcXVpcmVkIG9yIG9wdGlvbmFsIHdpdGggdGhyZXNob2xkID4gMCkAAAAAABBVbG5BdExlYXN0T25lRFZOAAAAEQAAAD1FbmRwb2ludCBJRCBpcyBub3Qgc3VwcG9ydGVkIChtaXNzaW5nIGRlZmF1bHQgY29uZmlndXJhdGlvbnMpAAAAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAASAAAAME1lc3NhZ2UgaGFzIG5vdCBiZWVuIHZlcmlmaWVkIGJ5IGVub3VnaCBEVk5zIHlldAAAAAlWZXJpZnlpbmcAAAAAAAATAAAAKEV4ZWN1dG9yIG1heCBtZXNzYWdlIHNpemUgY2Fubm90IGJlIHplcm8AAAAPWmVyb01lc3NhZ2VTaXplAAAAABQAAAAFAAAAAAAAAAAAAAARRXhlY3V0b3JDb25maWdTZXQAAAAAAAABAAAAE2V4ZWN1dG9yX2NvbmZpZ19zZXQAAAAAAwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAAAAAAAGY29uZmlnAAAAAAfQAAAAEk9BcHBFeGVjdXRvckNvbmZpZwAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAQU2VuZFVsbkNvbmZpZ1NldAAAAAEAAAATc2VuZF91bG5fY29uZmlnX3NldAAAAAADAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAE1JlY2VpdmVVbG5Db25maWdTZXQAAAAAAQAAABZyZWNlaXZlX3Vsbl9jb25maWdfc2V0AAAAAAADAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAGURlZmF1bHRFeGVjdXRvckNvbmZpZ3NTZXQAAAAAAAABAAAAHGRlZmF1bHRfZXhlY3V0b3JfY29uZmlnc19zZXQAAAABAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAHVNldERlZmF1bHRFeGVjdXRvckNvbmZpZ1BhcmFtAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAYRGVmYXVsdFNlbmRVbG5Db25maWdzU2V0AAAAAQAAABxkZWZhdWx0X3NlbmRfdWxuX2NvbmZpZ3Nfc2V0AAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABhTZXREZWZhdWx0VWxuQ29uZmlnUGFyYW0AAAAAAAAAAgAAAAUAAAAAAAAAAAAAABtEZWZhdWx0UmVjZWl2ZVVsbkNvbmZpZ3NTZXQAAAAAAQAAAB9kZWZhdWx0X3JlY2VpdmVfdWxuX2NvbmZpZ3Nfc2V0AAAAAAEAAAAAAAAABnBhcmFtcwAAAAAD6gAAB9AAAAAYU2V0RGVmYXVsdFVsbkNvbmZpZ1BhcmFtAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPRXhlY3V0b3JGZWVQYWlkAAAAAAEAAAARZXhlY3V0b3JfZmVlX3BhaWQAAAAAAAADAAAAAAAAAAhleGVjdXRvcgAAABMAAAABAAAAAAAAAARndWlkAAAD7gAAACAAAAABAAAAAAAAAANmZWUAAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAApEVk5GZWVQYWlkAAAAAAABAAAADGR2bl9mZWVfcGFpZAAAAAMAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABGR2bnMAAAPqAAAAEwAAAAAAAAAAAAAABGZlZXMAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9QYXlsb2FkVmVyaWZpZWQAAAAAAQAAABBwYXlsb2FkX3ZlcmlmaWVkAAAABAAAAAAAAAADZHZuAAAAABMAAAABAAAAAAAAAAZoZWFkZXIAAAAAAA4AAAAAAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAAAAAACnByb29mX2hhc2gAAAAAA+4AAAAgAAAAAAAAAAIAAAABAAAAOFVsdHJhIExpZ2h0IE5vZGUgY29uZmlndXJhdGlvbiBmb3IgbWVzc2FnZSB2ZXJpZmljYXRpb24uAAAAAAAAAAlVbG5Db25maWcAAAAAAAAEAAAASk51bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkIGJlZm9yZSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBiZWdpbnMuAAAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAAAzTWluaW11bSBudW1iZXIgb2Ygb3B0aW9uYWwgRFZOcyByZXF1aXJlZCB0byB2ZXJpZnkuAAAAABZvcHRpb25hbF9kdm5fdGhyZXNob2xkAAAAAAAEAAAAQExpc3Qgb2YgRFZOIGFkZHJlc3NlcyBmcm9tIHdoaWNoIGEgdGhyZXNob2xkIG51bWJlciBtdXN0IHZlcmlmeS4AAAANb3B0aW9uYWxfZHZucwAAAAAAA+oAAAATAAAARkxpc3Qgb2YgRFZOIGFkZHJlc3NlcyB0aGF0IG11c3QgQUxMIHZlcmlmeSB0aGUgbWVzc2FnZSAobm8gdGhyZXNob2xkKS4AAAAAAA1yZXF1aXJlZF9kdm5zAAAAAAAD6gAAABMAAAABAAAAPE9BcHAtc3BlY2lmaWMgVUxOIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0IG92ZXJyaWRlIGZsYWdzLgAAAAAAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAQAAABFT0FwcC1zcGVjaWZpYyBVTE4gY29uZmlndXJhdGlvbiAodXNlZCB3aGVuIGRlZmF1bHRzIGFyZSBub3QgYXBwbGllZCkuAAAAAAAACnVsbl9jb25maWcAAAAAB9AAAAAJVWxuQ29uZmlnAAAAAAAAJVdoZXRoZXIgdG8gdXNlIGRlZmF1bHQgY29uZmlybWF0aW9ucy4AAAAAAAAZdXNlX2RlZmF1bHRfY29uZmlybWF0aW9ucwAAAAAAAAEAAAAlV2hldGhlciB0byB1c2UgZGVmYXVsdCBvcHRpb25hbCBEVk5zLgAAAAAAABl1c2VfZGVmYXVsdF9vcHRpb25hbF9kdm5zAAAAAAAAAQAAACVXaGV0aGVyIHRvIHVzZSBkZWZhdWx0IHJlcXVpcmVkIERWTnMuAAAAAAAAGXVzZV9kZWZhdWx0X3JlcXVpcmVkX2R2bnMAAAAAAAABAAAAAQAAAFJQYXJhbWV0ZXIgZm9yIHNldHRpbmcgZGVmYXVsdCBVTE4gY29uZmlndXJhdGlvbiBmb3IgYSBkZXN0aW5hdGlvbi9zb3VyY2UgZW5kcG9pbnQuAAAAAAAAAAAAGFNldERlZmF1bHRVbG5Db25maWdQYXJhbQAAAAIAAAAoVGhlIFVMTiBjb25maWd1cmF0aW9uIHRvIHNldCBhcyBkZWZhdWx0LgAAAAZjb25maWcAAAAAB9AAAAAJVWxuQ29uZmlnAAAAAAAAS1RoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoZm9yIHNlbmQpIG9yIHNvdXJjZSBlbmRwb2ludCBJRCAoZm9yIHJlY2VpdmUpLgAAAAADZWlkAAAAAAQAAAABAAAALEV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gZm9yIG1lc3NhZ2UgZGVsaXZlcnkuAAAAAAAAAA5FeGVjdXRvckNvbmZpZwAAAAAAAgAAAENBZGRyZXNzIG9mIHRoZSBleGVjdXRvciBjb250cmFjdCByZXNwb25zaWJsZSBmb3IgbWVzc2FnZSBleGVjdXRpb24uAAAAAAhleGVjdXRvcgAAABMAAAA5TWF4aW11bSBzaXplIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIChpbiBieXRlcykuAAAAAAAAEG1heF9tZXNzYWdlX3NpemUAAAAEAAAAAQAAAFtPQXBwLXNwZWNpZmljIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uCgpJZiBleGVjdXRvciBpcyBgTm9uZWAsIHRoZSBkZWZhdWx0IGV4ZWN1dG9yIGlzIHVzZWQuAAAAAAAAAAAST0FwcEV4ZWN1dG9yQ29uZmlnAAAAAAACAAAAaEFkZHJlc3Mgb2YgdGhlIGV4ZWN1dG9yIGNvbnRyYWN0IHRvIGJlIHVzZWQgZm9yIG1lc3NhZ2UgZXhlY3V0aW9uLiBOb25lIG1lYW5zIHVzZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uAAAACGV4ZWN1dG9yAAAD6AAAABMAAABcTWF4aW11bSBzaXplIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIChpbiBieXRlcykuIDAgbWVhbnMgdXNlIGRlZmF1bHQgY29uZmlndXJhdGlvbi4AAAAQbWF4X21lc3NhZ2Vfc2l6ZQAAAAQAAAABAAAAUFBhcmFtZXRlciBmb3Igc2V0dGluZyBkZWZhdWx0IGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuAAAAAAAAAB1TZXREZWZhdWx0RXhlY3V0b3JDb25maWdQYXJhbQAAAAAAAAIAAAAtVGhlIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24gdG8gc2V0IGFzIGRlZmF1bHQuAAAAAAAABmNvbmZpZwAAAAAH0AAAAA5FeGVjdXRvckNvbmZpZwAAAAAAHFRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAHAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBwAAAAAAAAAKSW52YWxpZFR0bAAAAAAECAAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQJAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECgAAAAAAAAALT3duZXJOb3RTZXQAAAAECwAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQMAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAMAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAAAAAAAA5VcGdyYWRlc0Zyb3plbgAAAAAEHAAAAAQAAAAYTXVsdGlTaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aVNpZ0Vycm9yAAAAAAAACQAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABCUAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQmAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJwAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQoAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKQAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQqAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKwAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCwAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlTaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAPEV2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgY2FuY2VsbGVkLgAAAAAAAAAaT3duZXJzaGlwVHJhbnNmZXJDYW5jZWxsZWQAAAAAAAEAAAAcb3duZXJzaGlwX3RyYW5zZmVyX2NhbmNlbGxlZAAAAAIAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAF2NhbmNlbGxlZF9wZW5kaW5nX293bmVyAAAAABMAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAiwEOY29udHJhY3RtZXRhdjAAAAAAAAAABmJpbnZlcgAAAAAABTAuMC4xAAAAAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMS4wIzg2YzUwYTFlYTRmODdiNDBhZGQzMDY0ZmY5ZGY5NWM3NTUzNTY1YzUAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMC4wI2E2NDkyNWU5MzkxYzNkM2IzZWY4ZTUzZGM2MGMyM2RiOWU2YTgyZTQA";
11
11
  /**
12
12
  * Pre-computed WASM hash (SHA-256)
13
13
  * Use this when the WASM is already uploaded on-chain
14
14
  */
15
- export const WASM_HASH = "f98131c421cf42155df337d9d65de113f3dcd82c9546edbb1cdc2aaa51a930f9";
15
+ export const WASM_HASH = "d871b71ff5f540d1a9a72ec62e1e481a531804047b538de2f5cde3c30b5c52f5";
16
16
  /**
17
17
  * Get the WASM bytecode as a Buffer
18
18
  * Use this to upload the WASM to the network
@@ -30,30 +30,105 @@ export const LayerZeroViewError = {
30
30
  1: { message: "InvalidEID" }
31
31
  };
32
32
  export const EndpointError = {
33
+ /**
34
+ * Library is already registered with the endpoint
35
+ */
33
36
  1: { message: "AlreadyRegistered" },
37
+ /**
38
+ * Compose message already exists for this GUID and index
39
+ */
34
40
  2: { message: "ComposeExists" },
41
+ /**
42
+ * Compose message not found for the given GUID and index
43
+ */
35
44
  3: { message: "ComposeNotFound" },
45
+ /**
46
+ * Default receive library is not set for the source endpoint
47
+ */
36
48
  4: { message: "DefaultReceiveLibUnavailable" },
49
+ /**
50
+ * Default send library is not set for the destination endpoint
51
+ */
37
52
  5: { message: "DefaultSendLibUnavailable" },
53
+ /**
54
+ * Supplied native token fee is less than required
55
+ */
38
56
  6: { message: "InsufficientNativeFee" },
57
+ /**
58
+ * Supplied ZRO token fee is less than required
59
+ */
39
60
  7: { message: "InsufficientZroFee" },
40
- 8: { message: "InvalidFeeAmount" },
41
- 9: { message: "InvalidExpiry" },
61
+ /**
62
+ * Timeout expiry is invalid (already expired)
63
+ */
64
+ 8: { message: "InvalidExpiry" },
65
+ /**
66
+ * Fee amount is invalid (negative)
67
+ */
68
+ 9: { message: "InvalidFeeAmount" },
69
+ /**
70
+ * Compose index exceeds maximum allowed value
71
+ */
42
72
  10: { message: "InvalidIndex" },
73
+ /**
74
+ * Nonce is invalid for the requested operation
75
+ */
43
76
  11: { message: "InvalidNonce" },
77
+ /**
78
+ * Payload hash is invalid (empty hash not allowed)
79
+ */
44
80
  12: { message: "InvalidPayloadHash" },
81
+ /**
82
+ * Receive library is not valid for the receiver and source endpoint
83
+ */
45
84
  13: { message: "InvalidReceiveLibrary" },
85
+ /**
86
+ * Operation requires a non-default (custom) library
87
+ */
46
88
  14: { message: "OnlyNonDefaultLib" },
89
+ /**
90
+ * Library must support receiving messages
91
+ */
47
92
  15: { message: "OnlyReceiveLib" },
93
+ /**
94
+ * Library must be registered with the endpoint
95
+ */
48
96
  16: { message: "OnlyRegisteredLib" },
97
+ /**
98
+ * Library must support sending messages
99
+ */
49
100
  17: { message: "OnlySendLib" },
101
+ /**
102
+ * Messaging path cannot be initialized for the given origin
103
+ */
50
104
  18: { message: "PathNotInitializable" },
105
+ /**
106
+ * Message cannot be verified for the given origin
107
+ */
51
108
  19: { message: "PathNotVerifiable" },
109
+ /**
110
+ * Payload hash does not match the stored hash
111
+ */
52
112
  20: { message: "PayloadHashNotFound" },
113
+ /**
114
+ * New value is the same as existing value
115
+ */
53
116
  21: { message: "SameValue" },
117
+ /**
118
+ * Caller is not authorized (not OApp or delegate)
119
+ */
54
120
  22: { message: "Unauthorized" },
121
+ /**
122
+ * Endpoint ID is not supported by the library
123
+ */
55
124
  23: { message: "UnsupportedEid" },
125
+ /**
126
+ * ZRO fee must be greater than zero when pay_in_zro is true
127
+ */
56
128
  24: { message: "ZeroZroFee" },
129
+ /**
130
+ * ZRO token address is not set
131
+ */
57
132
  25: { message: "ZroUnavailable" }
58
133
  };
59
134
  /**
@@ -78,25 +153,86 @@ export const WorkerOptionsError = {
78
153
  1118: { message: "LegacyOptionsType2GasOverflow" }
79
154
  };
80
155
  export const Uln302Error = {
156
+ /**
157
+ * Default executor configuration is not set for the destination endpoint
158
+ */
81
159
  1: { message: "DefaultExecutorConfigNotFound" },
160
+ /**
161
+ * Default receive ULN configuration is not set for the source endpoint
162
+ */
82
163
  2: { message: "DefaultReceiveUlnConfigNotFound" },
164
+ /**
165
+ * Default send ULN configuration is not set for the destination endpoint
166
+ */
83
167
  3: { message: "DefaultSendUlnConfigNotFound" },
168
+ /**
169
+ * Optional DVNs list contains duplicate addresses
170
+ */
84
171
  4: { message: "DuplicateOptionalDVNs" },
172
+ /**
173
+ * Required DVNs list contains duplicate addresses
174
+ */
85
175
  5: { message: "DuplicateRequiredDVNs" },
176
+ /**
177
+ * Configuration bytes failed to parse as expected XDR type
178
+ */
86
179
  6: { message: "InvalidConfig" },
180
+ /**
181
+ * Config type is not one of EXECUTOR, SEND_ULN, or RECEIVE_ULN
182
+ */
87
183
  7: { message: "InvalidConfigType" },
184
+ /**
185
+ * Confirmations must be zero when using default confirmations
186
+ */
88
187
  8: { message: "InvalidConfirmations" },
188
+ /**
189
+ * Packet header destination EID does not match this endpoint's EID
190
+ */
89
191
  9: { message: "InvalidEID" },
192
+ /**
193
+ * Message size exceeds executor's configured maximum
194
+ */
90
195
  10: { message: "InvalidMessageSize" },
196
+ /**
197
+ * Optional DVNs count exceeds maximum allowed (127)
198
+ */
91
199
  11: { message: "InvalidOptionalDVNCount" },
200
+ /**
201
+ * Optional DVNs must be empty when using default optional DVNs
202
+ */
92
203
  12: { message: "InvalidOptionalDVNs" },
204
+ /**
205
+ * Optional DVN threshold is invalid (must be 0 with no DVNs, or 1 to DVN count)
206
+ */
93
207
  13: { message: "InvalidOptionalDVNThreshold" },
208
+ /**
209
+ * Required DVNs count exceeds maximum allowed (127)
210
+ */
94
211
  14: { message: "InvalidRequiredDVNCount" },
212
+ /**
213
+ * Required DVNs must be empty when using default required DVNs
214
+ */
95
215
  15: { message: "InvalidRequiredDVNs" },
96
- 16: { message: "UlnAtLeastOneDVN" },
97
- 17: { message: "UnsupportedEid" },
98
- 18: { message: "Verifying" },
99
- 19: { message: "ZeroMessageSize" }
216
+ /**
217
+ * Sender address must be a contract (C-address), not an account (G-address)
218
+ */
219
+ 16: { message: "InvalidSenderAddress" },
220
+ /**
221
+ * Configuration must have at least one DVN (required or optional with threshold > 0)
222
+ */
223
+ 17: { message: "UlnAtLeastOneDVN" },
224
+ /**
225
+ * Endpoint ID is not supported (missing default configurations)
226
+ */
227
+ 18: { message: "UnsupportedEid" },
228
+ /**
229
+ * Message has not been verified by enough DVNs yet
230
+ */
231
+ 19: { message: "Verifying" },
232
+ /**
233
+ * Executor max message size cannot be zero
234
+ */
235
+ 20: { message: "ZeroMessageSize" }
100
236
  };
101
237
  /**
102
238
  * BufferReaderError: 1000-1009
@@ -123,12 +259,13 @@ export const TtlConfigurableError = {
123
259
  * OwnableError: 1030-1039
124
260
  */
125
261
  export const OwnableError = {
126
- 1030: { message: "InvalidPendingOwner" },
127
- 1031: { message: "InvalidTtl" },
128
- 1032: { message: "NoPendingTransfer" },
129
- 1033: { message: "OwnerAlreadySet" },
130
- 1034: { message: "OwnerNotSet" },
131
- 1035: { message: "TransferInProgress" }
262
+ 1030: { message: "InvalidAuthorizer" },
263
+ 1031: { message: "InvalidPendingOwner" },
264
+ 1032: { message: "InvalidTtl" },
265
+ 1033: { message: "NoPendingTransfer" },
266
+ 1034: { message: "OwnerAlreadySet" },
267
+ 1035: { message: "OwnerNotSet" },
268
+ 1036: { message: "TransferInProgress" }
132
269
  };
133
270
  /**
134
271
  * BytesExtError: 1040-1049
@@ -145,17 +282,18 @@ export const UpgradeableError = {
145
282
  1052: { message: "UpgradesFrozen" }
146
283
  };
147
284
  /**
148
- * MultisigError: 1060-1069
285
+ * MultiSigError: 1060-1069
149
286
  */
150
- export const MultisigError = {
287
+ export const MultiSigError = {
151
288
  1060: { message: "AlreadyInitialized" },
152
- 1061: { message: "InvalidSigner" },
153
- 1062: { message: "SignatureError" },
154
- 1063: { message: "SignerAlreadyExists" },
155
- 1064: { message: "SignerNotFound" },
156
- 1065: { message: "TotalSignersLessThanThreshold" },
157
- 1066: { message: "UnsortedSigners" },
158
- 1067: { message: "ZeroThreshold" }
289
+ 1061: { message: "InvalidAuthorizer" },
290
+ 1062: { message: "InvalidSigner" },
291
+ 1063: { message: "SignatureError" },
292
+ 1064: { message: "SignerAlreadyExists" },
293
+ 1065: { message: "SignerNotFound" },
294
+ 1066: { message: "TotalSignersLessThanThreshold" },
295
+ 1067: { message: "UnsortedSigners" },
296
+ 1068: { message: "ZeroThreshold" }
159
297
  };
160
298
  export class Client extends ContractClient {
161
299
  options;
@@ -168,9 +306,9 @@ export class Client extends ContractClient {
168
306
  }
169
307
  constructor(options) {
170
308
  super(new ContractSpec(["AAAABAAAACJFcnJvcnMgZm9yIExheWVyWmVyb1ZpZXcgY29udHJhY3QuAAAAAAAAAAAAEkxheWVyWmVyb1ZpZXdFcnJvcgAAAAAAAQAAAClJbnZhbGlkIHBhY2tldCBoZWFkZXIgKGRzdF9laWQgbWlzbWF0Y2gpLgAAAAAAAApJbnZhbGlkRUlEAAAAAAAB",
171
- "AAAAAAAAAJVUaGUgdHlwZSBvZiBkYXRhIHJlcXVpcmVkIGZvciBtaWdyYXRpb24uClVwZ3JhZGVzIHRoZSBjb250cmFjdCB0byBuZXcgV0FTTSBieXRlY29kZS4KU2V0cyBhIG1pZ3JhdGlvbiBmbGFnIHRoYXQgbXVzdCBiZSBjbGVhcmVkIGJ5IGNhbGxpbmcgYG1pZ3JhdGVgLgAAAAAAAAd1cGdyYWRlAAAAAAEAAAAAAAAADW5ld193YXNtX2hhc2gAAAAAAAPuAAAAIAAAAAA=",
172
- "AAAAAAAAAHZSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGZsYWcgaXMgc2V0IGJ5IGEgcHJldmlvdXMgYHVwZ3JhZGVgIGNhbGwuAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAA=",
173
- "AAAAAAAAAF5QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLgpUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuAAAAAAAGZnJlZXplAAAAAAAAAAAAAA==",
309
+ "AAAAAAAAAGxVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAA",
310
+ "AAAAAAAAAIdSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpQYXJzZXMgWERSLWVuY29kZWQgYG1pZ3JhdGlvbl9kYXRhYCBhbmQgY2FsbHMgYF9fbWlncmF0ZWAuIENsZWFycyB0aGUgbWlncmF0aW9uIGZsYWcgb24gc3VjY2Vzcy4AAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAA",
311
+ "AAAAAAAAAE9QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLiBJcnJldmVyc2libGUuAAAAAAZmcmVlemUAAAAAAAAAAAAA",
174
312
  "AAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAAB",
175
313
  "AAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAAT",
176
314
  "AAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEw==",
@@ -214,14 +352,14 @@ export class Client extends ContractClient {
214
352
  "AAAABQAAAAAAAAAAAAAAC0NvbXBvc2VTZW50AAAAAAEAAAAMY29tcG9zZV9zZW50AAAABQAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAC",
215
353
  "AAAABQAAAAAAAAAAAAAAEENvbXBvc2VEZWxpdmVyZWQAAAABAAAAEWNvbXBvc2VfZGVsaXZlcmVkAAAAAAAABAAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAAC",
216
354
  "AAAABQAAAAAAAAAAAAAADkx6Q29tcG9zZUFsZXJ0AAAAAAABAAAAEGx6X2NvbXBvc2VfYWxlcnQAAAAKAAAAAAAAAARmcm9tAAAAEwAAAAEAAAAAAAAAAnRvAAAAAAATAAAAAQAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAQAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAQAAAAAAAAAFaW5kZXgAAAAAAAAEAAAAAQAAAAAAAAADZ2FzAAAAAAsAAAAAAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAAAAAAGcmVhc29uAAAAAAAOAAAAAAAAAAI=",
217
- "AAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAAAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAAAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAAAAAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAAAAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAAAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAAAAAADFVuYXV0aG9yaXplZAAAABYAAAAAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAAAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQ==",
355
+ "AAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAL0xpYnJhcnkgaXMgYWxyZWFkeSByZWdpc3RlcmVkIHdpdGggdGhlIGVuZHBvaW50AAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAA2Q29tcG9zZSBtZXNzYWdlIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIEdVSUQgYW5kIGluZGV4AAAAAAANQ29tcG9zZUV4aXN0cwAAAAAAAAIAAAA2Q29tcG9zZSBtZXNzYWdlIG5vdCBmb3VuZCBmb3IgdGhlIGdpdmVuIEdVSUQgYW5kIGluZGV4AAAAAAAPQ29tcG9zZU5vdEZvdW5kAAAAAAMAAAA6RGVmYXVsdCByZWNlaXZlIGxpYnJhcnkgaXMgbm90IHNldCBmb3IgdGhlIHNvdXJjZSBlbmRwb2ludAAAAAAAHERlZmF1bHRSZWNlaXZlTGliVW5hdmFpbGFibGUAAAAEAAAAPERlZmF1bHQgc2VuZCBsaWJyYXJ5IGlzIG5vdCBzZXQgZm9yIHRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludAAAABlEZWZhdWx0U2VuZExpYlVuYXZhaWxhYmxlAAAAAAAABQAAAC9TdXBwbGllZCBuYXRpdmUgdG9rZW4gZmVlIGlzIGxlc3MgdGhhbiByZXF1aXJlZAAAAAAVSW5zdWZmaWNpZW50TmF0aXZlRmVlAAAAAAAABgAAACxTdXBwbGllZCBaUk8gdG9rZW4gZmVlIGlzIGxlc3MgdGhhbiByZXF1aXJlZAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAArVGltZW91dCBleHBpcnkgaXMgaW52YWxpZCAoYWxyZWFkeSBleHBpcmVkKQAAAAANSW52YWxpZEV4cGlyeQAAAAAAAAgAAAAgRmVlIGFtb3VudCBpcyBpbnZhbGlkIChuZWdhdGl2ZSkAAAAQSW52YWxpZEZlZUFtb3VudAAAAAkAAAArQ29tcG9zZSBpbmRleCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCB2YWx1ZQAAAAAMSW52YWxpZEluZGV4AAAACgAAACxOb25jZSBpcyBpbnZhbGlkIGZvciB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbgAAAAxJbnZhbGlkTm9uY2UAAAALAAAAMFBheWxvYWQgaGFzaCBpcyBpbnZhbGlkIChlbXB0eSBoYXNoIG5vdCBhbGxvd2VkKQAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAABBUmVjZWl2ZSBsaWJyYXJ5IGlzIG5vdCB2YWxpZCBmb3IgdGhlIHJlY2VpdmVyIGFuZCBzb3VyY2UgZW5kcG9pbnQAAAAAAAAVSW52YWxpZFJlY2VpdmVMaWJyYXJ5AAAAAAAADQAAADFPcGVyYXRpb24gcmVxdWlyZXMgYSBub24tZGVmYXVsdCAoY3VzdG9tKSBsaWJyYXJ5AAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAACdMaWJyYXJ5IG11c3Qgc3VwcG9ydCByZWNlaXZpbmcgbWVzc2FnZXMAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAALExpYnJhcnkgbXVzdCBiZSByZWdpc3RlcmVkIHdpdGggdGhlIGVuZHBvaW50AAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAACVMaWJyYXJ5IG11c3Qgc3VwcG9ydCBzZW5kaW5nIG1lc3NhZ2VzAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAA5TWVzc2FnaW5nIHBhdGggY2Fubm90IGJlIGluaXRpYWxpemVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAC9NZXNzYWdlIGNhbm5vdCBiZSB2ZXJpZmllZCBmb3IgdGhlIGdpdmVuIG9yaWdpbgAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAK1BheWxvYWQgaGFzaCBkb2VzIG5vdCBtYXRjaCB0aGUgc3RvcmVkIGhhc2gAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAACdOZXcgdmFsdWUgaXMgdGhlIHNhbWUgYXMgZXhpc3RpbmcgdmFsdWUAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAvQ2FsbGVyIGlzIG5vdCBhdXRob3JpemVkIChub3QgT0FwcCBvciBkZWxlZ2F0ZSkAAAAADFVuYXV0aG9yaXplZAAAABYAAAArRW5kcG9pbnQgSUQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbGlicmFyeQAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAA5WlJPIGZlZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIHdoZW4gcGF5X2luX3pybyBpcyB0cnVlAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAcWlJPIHRva2VuIGFkZHJlc3MgaXMgbm90IHNldAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQ==",
218
356
  "AAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACA=",
219
357
  "AAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQ=",
220
358
  "AAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAs=",
221
359
  "AAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAG",
222
360
  "AAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAA=",
223
361
  "AAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABA==",
224
- "AAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAAT",
362
+ "AAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAM1VuaXggdGltZXN0YW1wIGluIHNlY29uZHMgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAAGZXhwaXJ5AAAAAAAGAAAAQ1RoZSBvbGQgbGlicmFyeSBhZGRyZXNzIHRoYXQgcmVtYWlucyB2YWxpZCBkdXJpbmcgdGhlIGdyYWNlIHBlcmlvZC4AAAAAA2xpYgAAAAAT",
225
363
  "AAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQ=",
226
364
  "AAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAAT",
227
365
  "AAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQ=",
@@ -229,7 +367,7 @@ export class Client extends ContractClient {
229
367
  "AAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50",
230
368
  "AAAABAAAAB1QYWNrZXRDb2RlY1YxRXJyb3I6IDExMDAtMTEwOQAAAAAAAAAAAAASUGFja2V0Q29kZWNWMUVycm9yAAAAAAACAAAAAAAAABNJbnZhbGlkUGFja2V0SGVhZGVyAAAABEwAAAAAAAAAFEludmFsaWRQYWNrZXRWZXJzaW9uAAAETQ==",
231
369
  "AAAABAAAAB1Xb3JrZXJPcHRpb25zRXJyb3I6IDExMTAtMTExOQAAAAAAAAAAAAASV29ya2VyT3B0aW9uc0Vycm9yAAAAAAAJAAAAAAAAABJJbnZhbGlkQnl0ZXNMZW5ndGgAAAAABFYAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTEAAAAAAARXAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUyAAAAAAAEWAAAAAAAAAARSW52YWxpZE9wdGlvblR5cGUAAAAAAARZAAAAAAAAAA5JbnZhbGlkT3B0aW9ucwAAAAAEWgAAAAAAAAAPSW52YWxpZFdvcmtlcklkAAAABFsAAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMUdhc092ZXJmbG93AAAAAAAEXAAAAAAAAAAgTGVnYWN5T3B0aW9uc1R5cGUyQW1vdW50T3ZlcmZsb3cAAARdAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTJHYXNPdmVyZmxvdwAAAAAABF4=",
232
- "AAAABAAAAAAAAAAAAAAAC1VsbjMwMkVycm9yAAAAABMAAAAAAAAAHURlZmF1bHRFeGVjdXRvckNvbmZpZ05vdEZvdW5kAAAAAAAAAQAAAAAAAAAfRGVmYXVsdFJlY2VpdmVVbG5Db25maWdOb3RGb3VuZAAAAAACAAAAAAAAABxEZWZhdWx0U2VuZFVsbkNvbmZpZ05vdEZvdW5kAAAAAwAAAAAAAAAVRHVwbGljYXRlT3B0aW9uYWxEVk5zAAAAAAAABAAAAAAAAAAVRHVwbGljYXRlUmVxdWlyZWREVk5zAAAAAAAABQAAAAAAAAANSW52YWxpZENvbmZpZwAAAAAAAAYAAAAAAAAAEUludmFsaWRDb25maWdUeXBlAAAAAAAABwAAAAAAAAAUSW52YWxpZENvbmZpcm1hdGlvbnMAAAAIAAAAAAAAAApJbnZhbGlkRUlEAAAAAAAJAAAAAAAAABJJbnZhbGlkTWVzc2FnZVNpemUAAAAAAAoAAAAAAAAAF0ludmFsaWRPcHRpb25hbERWTkNvdW50AAAAAAsAAAAAAAAAE0ludmFsaWRPcHRpb25hbERWTnMAAAAADAAAAAAAAAAbSW52YWxpZE9wdGlvbmFsRFZOVGhyZXNob2xkAAAAAA0AAAAAAAAAF0ludmFsaWRSZXF1aXJlZERWTkNvdW50AAAAAA4AAAAAAAAAE0ludmFsaWRSZXF1aXJlZERWTnMAAAAADwAAAAAAAAAQVWxuQXRMZWFzdE9uZURWTgAAABAAAAAAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAARAAAAAAAAAAlWZXJpZnlpbmcAAAAAAAASAAAAAAAAAA9aZXJvTWVzc2FnZVNpemUAAAAAEw==",
370
+ "AAAABAAAAAAAAAAAAAAAC1VsbjMwMkVycm9yAAAAABQAAABGRGVmYXVsdCBleGVjdXRvciBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQgZm9yIHRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludAAAAAAAHURlZmF1bHRFeGVjdXRvckNvbmZpZ05vdEZvdW5kAAAAAAAAAQAAAEREZWZhdWx0IHJlY2VpdmUgVUxOIGNvbmZpZ3VyYXRpb24gaXMgbm90IHNldCBmb3IgdGhlIHNvdXJjZSBlbmRwb2ludAAAAB9EZWZhdWx0UmVjZWl2ZVVsbkNvbmZpZ05vdEZvdW5kAAAAAAIAAABGRGVmYXVsdCBzZW5kIFVMTiBjb25maWd1cmF0aW9uIGlzIG5vdCBzZXQgZm9yIHRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludAAAAAAAHERlZmF1bHRTZW5kVWxuQ29uZmlnTm90Rm91bmQAAAADAAAAL09wdGlvbmFsIERWTnMgbGlzdCBjb250YWlucyBkdXBsaWNhdGUgYWRkcmVzc2VzAAAAABVEdXBsaWNhdGVPcHRpb25hbERWTnMAAAAAAAAEAAAAL1JlcXVpcmVkIERWTnMgbGlzdCBjb250YWlucyBkdXBsaWNhdGUgYWRkcmVzc2VzAAAAABVEdXBsaWNhdGVSZXF1aXJlZERWTnMAAAAAAAAFAAAAOENvbmZpZ3VyYXRpb24gYnl0ZXMgZmFpbGVkIHRvIHBhcnNlIGFzIGV4cGVjdGVkIFhEUiB0eXBlAAAADUludmFsaWRDb25maWcAAAAAAAAGAAAAPENvbmZpZyB0eXBlIGlzIG5vdCBvbmUgb2YgRVhFQ1VUT1IsIFNFTkRfVUxOLCBvciBSRUNFSVZFX1VMTgAAABFJbnZhbGlkQ29uZmlnVHlwZQAAAAAAAAcAAAA7Q29uZmlybWF0aW9ucyBtdXN0IGJlIHplcm8gd2hlbiB1c2luZyBkZWZhdWx0IGNvbmZpcm1hdGlvbnMAAAAAFEludmFsaWRDb25maXJtYXRpb25zAAAACAAAAEBQYWNrZXQgaGVhZGVyIGRlc3RpbmF0aW9uIEVJRCBkb2VzIG5vdCBtYXRjaCB0aGlzIGVuZHBvaW50J3MgRUlEAAAACkludmFsaWRFSUQAAAAAAAkAAAAyTWVzc2FnZSBzaXplIGV4Y2VlZHMgZXhlY3V0b3IncyBjb25maWd1cmVkIG1heGltdW0AAAAAABJJbnZhbGlkTWVzc2FnZVNpemUAAAAAAAoAAAAxT3B0aW9uYWwgRFZOcyBjb3VudCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCAoMTI3KQAAAAAAABdJbnZhbGlkT3B0aW9uYWxEVk5Db3VudAAAAAALAAAAPE9wdGlvbmFsIERWTnMgbXVzdCBiZSBlbXB0eSB3aGVuIHVzaW5nIGRlZmF1bHQgb3B0aW9uYWwgRFZOcwAAABNJbnZhbGlkT3B0aW9uYWxEVk5zAAAAAAwAAABNT3B0aW9uYWwgRFZOIHRocmVzaG9sZCBpcyBpbnZhbGlkIChtdXN0IGJlIDAgd2l0aCBubyBEVk5zLCBvciAxIHRvIERWTiBjb3VudCkAAAAAAAAbSW52YWxpZE9wdGlvbmFsRFZOVGhyZXNob2xkAAAAAA0AAAAxUmVxdWlyZWQgRFZOcyBjb3VudCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCAoMTI3KQAAAAAAABdJbnZhbGlkUmVxdWlyZWREVk5Db3VudAAAAAAOAAAAPFJlcXVpcmVkIERWTnMgbXVzdCBiZSBlbXB0eSB3aGVuIHVzaW5nIGRlZmF1bHQgcmVxdWlyZWQgRFZOcwAAABNJbnZhbGlkUmVxdWlyZWREVk5zAAAAAA8AAABJU2VuZGVyIGFkZHJlc3MgbXVzdCBiZSBhIGNvbnRyYWN0IChDLWFkZHJlc3MpLCBub3QgYW4gYWNjb3VudCAoRy1hZGRyZXNzKQAAAAAAABRJbnZhbGlkU2VuZGVyQWRkcmVzcwAAABAAAABSQ29uZmlndXJhdGlvbiBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIERWTiAocmVxdWlyZWQgb3Igb3B0aW9uYWwgd2l0aCB0aHJlc2hvbGQgPiAwKQAAAAAAEFVsbkF0TGVhc3RPbmVEVk4AAAARAAAAPUVuZHBvaW50IElEIGlzIG5vdCBzdXBwb3J0ZWQgKG1pc3NpbmcgZGVmYXVsdCBjb25maWd1cmF0aW9ucykAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABIAAAAwTWVzc2FnZSBoYXMgbm90IGJlZW4gdmVyaWZpZWQgYnkgZW5vdWdoIERWTnMgeWV0AAAACVZlcmlmeWluZwAAAAAAABMAAAAoRXhlY3V0b3IgbWF4IG1lc3NhZ2Ugc2l6ZSBjYW5ub3QgYmUgemVybwAAAA9aZXJvTWVzc2FnZVNpemUAAAAAFA==",
233
371
  "AAAABQAAAAAAAAAAAAAAEUV4ZWN1dG9yQ29uZmlnU2V0AAAAAAAAAQAAABNleGVjdXRvcl9jb25maWdfc2V0AAAAAAMAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAAAAAAABmNvbmZpZwAAAAAH0AAAABJPQXBwRXhlY3V0b3JDb25maWcAAAAAAAAAAAAC",
234
372
  "AAAABQAAAAAAAAAAAAAAEFNlbmRVbG5Db25maWdTZXQAAAABAAAAE3NlbmRfdWxuX2NvbmZpZ19zZXQAAAAAAwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAAAAAAAGY29uZmlnAAAAAAfQAAAADU9BcHBVbG5Db25maWcAAAAAAAAAAAAAAg==",
235
373
  "AAAABQAAAAAAAAAAAAAAE1JlY2VpdmVVbG5Db25maWdTZXQAAAAAAQAAABZyZWNlaXZlX3Vsbl9jb25maWdfc2V0AAAAAAADAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAANT0FwcFVsbkNvbmZpZwAAAAAAAAAAAAAC",
@@ -248,15 +386,16 @@ export class Client extends ContractClient {
248
386
  "AAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPp",
249
387
  "AAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/I=",
250
388
  "AAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4=",
251
- "AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQL",
389
+ "AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAcAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEBgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQHAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQIAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAkAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQKAAAAAAAAAAtPd25lck5vdFNldAAAAAQLAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAw=",
252
390
  "AAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEA==",
253
391
  "AAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQc",
254
- "AAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCs=",
392
+ "AAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELA==",
255
393
  "AAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAC",
256
394
  "AAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAC",
257
- "AAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAA=",
395
+ "AAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAA=",
258
396
  "AAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAg==",
259
397
  "AAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAC",
398
+ "AAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAI=",
260
399
  "AAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAC",
261
400
  "AAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXI=",
262
401
  "AAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQ=",