@layerzerolabs/protocol-stellar-v2 0.2.19 → 0.2.21

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 (249) hide show
  1. package/.turbo/turbo-build.log +795 -791
  2. package/.turbo/turbo-lint.log +325 -155
  3. package/.turbo/turbo-test.log +1398 -1277
  4. package/Cargo.lock +122 -111
  5. package/Cargo.toml +32 -16
  6. package/contracts/common-macros/Cargo.toml +7 -7
  7. package/contracts/common-macros/src/auth.rs +18 -37
  8. package/contracts/common-macros/src/contract_ttl.rs +18 -7
  9. package/contracts/common-macros/src/lib.rs +31 -14
  10. package/contracts/common-macros/src/lz_contract.rs +38 -7
  11. package/contracts/common-macros/src/storage.rs +251 -292
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
  13. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +6 -12
  14. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +12 -17
  15. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
  16. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +2 -7
  17. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +20 -14
  18. package/contracts/common-macros/src/tests/upgradeable.rs +26 -4
  19. package/contracts/common-macros/src/ttl_configurable.rs +2 -10
  20. package/contracts/common-macros/src/ttl_extendable.rs +2 -10
  21. package/contracts/common-macros/src/upgradeable.rs +61 -26
  22. package/contracts/common-macros/src/utils.rs +0 -9
  23. package/contracts/endpoint-v2/src/lib.rs +3 -2
  24. package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +2 -2
  25. package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +3 -3
  26. package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +4 -4
  27. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +17 -5
  28. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
  29. package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +2 -2
  30. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +2 -2
  31. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +6 -6
  32. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +67 -37
  33. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +5 -5
  34. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +44 -54
  35. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +7 -7
  36. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +8 -8
  37. package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +3 -3
  38. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +4 -4
  39. package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +3 -3
  40. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +2 -2
  41. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +3 -3
  42. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +2 -2
  43. package/contracts/layerzero-views/Cargo.toml +0 -1
  44. package/contracts/layerzero-views/src/layerzero_view.rs +1 -13
  45. package/contracts/macro-integration-tests/Cargo.toml +5 -15
  46. package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +48 -0
  47. package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +170 -0
  48. package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +154 -0
  49. package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +338 -0
  50. package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +435 -0
  51. package/contracts/macro-integration-tests/tests/runtime.rs +1 -0
  52. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +8 -0
  53. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +5 -0
  54. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +8 -0
  55. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +71 -0
  56. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +10 -0
  57. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +5 -0
  58. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +8 -0
  59. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +5 -0
  60. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +8 -0
  61. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +5 -0
  62. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +38 -0
  63. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +96 -0
  64. package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +64 -0
  65. package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +46 -0
  66. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +8 -0
  67. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +1 -1
  68. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +1 -1
  69. package/contracts/macro-integration-tests/tests/ui_oapp.rs +11 -0
  70. package/contracts/message-libs/message-lib-common/Cargo.toml +0 -1
  71. package/contracts/message-libs/message-lib-common/src/errors.rs +1 -1
  72. package/contracts/message-libs/treasury/Cargo.toml +0 -2
  73. package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +2 -2
  74. package/contracts/message-libs/uln-302/src/events.rs +4 -0
  75. package/contracts/message-libs/uln-302/src/send_uln.rs +22 -6
  76. package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +2 -2
  77. package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +2 -2
  78. package/contracts/message-libs/uln-302/src/tests/receive_uln302/verify.rs +2 -2
  79. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_executor_config.rs +2 -2
  80. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +2 -2
  81. package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +21 -67
  82. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
  83. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +2 -2
  84. package/contracts/oapps/counter/Cargo.toml +5 -6
  85. package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
  86. package/contracts/oapps/counter/integration_tests/utils.rs +19 -12
  87. package/contracts/oapps/oapp/src/errors.rs +1 -1
  88. package/contracts/oapps/oapp/src/interfaces/mod.rs +3 -0
  89. package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +47 -0
  90. package/contracts/oapps/oapp/src/lib.rs +1 -0
  91. package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +4 -4
  92. package/contracts/oapps/oapp/src/oapp_core.rs +5 -5
  93. package/contracts/oapps/oapp/src/oapp_options_type3.rs +12 -4
  94. package/contracts/oapps/oapp/src/oapp_receiver.rs +14 -9
  95. package/contracts/oapps/oapp/src/tests/mod.rs +4 -4
  96. package/contracts/oapps/oapp/src/tests/oapp_core.rs +223 -0
  97. package/contracts/oapps/oapp/src/tests/oapp_options_type3.rs +240 -0
  98. package/contracts/oapps/oapp/src/tests/oapp_receiver.rs +381 -0
  99. package/contracts/oapps/oapp/src/tests/oapp_sender.rs +569 -0
  100. package/contracts/oapps/oapp-macros/Cargo.toml +8 -4
  101. package/contracts/oapps/oapp-macros/src/generators.rs +9 -34
  102. package/contracts/oapps/oapp-macros/src/lib.rs +3 -0
  103. package/contracts/oapps/oapp-macros/src/tests/mod.rs +2 -0
  104. package/contracts/oapps/oapp-macros/src/tests/oapp.rs +88 -0
  105. package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +86 -0
  106. package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +103 -0
  107. package/contracts/oapps/oft/integration-tests/utils.rs +28 -8
  108. package/contracts/oapps/oft/src/extensions/oft_fee.rs +153 -75
  109. package/contracts/oapps/oft/src/extensions/pausable.rs +61 -12
  110. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +198 -134
  111. package/contracts/oapps/oft/src/oft.rs +45 -50
  112. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
  113. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +4 -26
  114. package/contracts/oapps/oft-core/Cargo.toml +1 -4
  115. package/contracts/oapps/oft-core/integration-tests/setup.rs +3 -3
  116. package/contracts/oapps/oft-core/integration-tests/utils.rs +21 -3
  117. package/contracts/oapps/oft-core/src/errors.rs +3 -2
  118. package/contracts/oapps/oft-core/src/events.rs +6 -0
  119. package/contracts/oapps/oft-core/src/lib.rs +1 -1
  120. package/contracts/oapps/oft-core/src/oft_core.rs +341 -246
  121. package/contracts/oapps/oft-core/src/storage.rs +7 -3
  122. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -0
  123. package/contracts/oapps/oft-core/src/tests/test_decimals.rs +37 -2
  124. package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +2 -2
  125. package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +323 -0
  126. package/contracts/oapps/oft-core/src/tests/test_send.rs +2 -2
  127. package/contracts/oapps/oft-core/src/tests/test_utils.rs +61 -16
  128. package/contracts/upgrader/src/lib.rs +30 -57
  129. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
  130. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
  131. package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
  132. package/contracts/utils/Cargo.toml +0 -1
  133. package/contracts/utils/src/buffer_reader.rs +1 -0
  134. package/contracts/utils/src/errors.rs +4 -2
  135. package/contracts/utils/src/multisig.rs +17 -8
  136. package/contracts/utils/src/ownable.rs +6 -6
  137. package/contracts/utils/src/testing_utils.rs +124 -54
  138. package/contracts/utils/src/tests/multisig.rs +12 -12
  139. package/contracts/utils/src/tests/ownable.rs +6 -6
  140. package/contracts/utils/src/tests/testing_utils.rs +50 -167
  141. package/contracts/utils/src/tests/ttl_configurable.rs +5 -5
  142. package/contracts/utils/src/tests/upgradeable.rs +372 -175
  143. package/contracts/utils/src/ttl_configurable.rs +13 -7
  144. package/contracts/utils/src/upgradeable.rs +48 -23
  145. package/contracts/workers/dvn/Cargo.toml +6 -6
  146. package/contracts/workers/dvn/src/auth.rs +12 -42
  147. package/contracts/workers/dvn/src/dvn.rs +15 -40
  148. package/contracts/workers/dvn/src/errors.rs +0 -1
  149. package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
  150. package/contracts/workers/dvn/src/lib.rs +4 -3
  151. package/contracts/workers/dvn/src/tests/auth.rs +1 -1
  152. package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
  153. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
  154. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
  155. package/contracts/workers/dvn/src/tests/setup.rs +5 -9
  156. package/contracts/workers/dvn-fee-lib/Cargo.toml +2 -2
  157. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +38 -22
  158. package/contracts/workers/dvn-fee-lib/src/lib.rs +12 -2
  159. package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +17 -16
  160. package/contracts/workers/executor/Cargo.toml +4 -0
  161. package/contracts/workers/executor/src/executor.rs +15 -36
  162. package/contracts/workers/executor/src/lib.rs +2 -2
  163. package/contracts/workers/executor/src/tests/auth.rs +394 -0
  164. package/contracts/workers/executor/src/tests/executor.rs +410 -0
  165. package/contracts/workers/executor/src/tests/mod.rs +3 -0
  166. package/contracts/workers/executor/src/tests/setup.rs +250 -0
  167. package/contracts/workers/executor-fee-lib/Cargo.toml +7 -1
  168. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +62 -15
  169. package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
  170. package/contracts/workers/executor-fee-lib/src/lib.rs +11 -2
  171. package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
  172. package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
  173. package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
  174. package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
  175. package/contracts/workers/executor-helper/Cargo.toml +0 -1
  176. package/contracts/workers/executor-helper/src/lib.rs +3 -0
  177. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
  178. package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
  179. package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
  180. package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
  181. package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
  182. package/contracts/workers/price-feed/Cargo.toml +7 -1
  183. package/contracts/workers/price-feed/src/events.rs +1 -1
  184. package/contracts/workers/price-feed/src/lib.rs +12 -4
  185. package/contracts/workers/price-feed/src/price_feed.rs +5 -21
  186. package/contracts/workers/price-feed/src/storage.rs +1 -1
  187. package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
  188. package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
  189. package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
  190. package/contracts/workers/price-feed/src/types.rs +1 -1
  191. package/contracts/workers/worker/src/errors.rs +1 -4
  192. package/contracts/workers/worker/src/lib.rs +0 -2
  193. package/contracts/workers/worker/src/storage.rs +32 -29
  194. package/contracts/workers/worker/src/tests/setup.rs +2 -8
  195. package/contracts/workers/worker/src/tests/worker.rs +96 -74
  196. package/contracts/workers/worker/src/worker.rs +75 -75
  197. package/docs/error-spec.md +55 -0
  198. package/docs/layerzero-v2-on-stellar.md +447 -0
  199. package/docs/oapp-guide.md +212 -0
  200. package/docs/oft-guide.md +314 -0
  201. package/package.json +3 -3
  202. package/sdk/.turbo/turbo-test.log +268 -263
  203. package/sdk/dist/generated/bml.d.ts +12 -4
  204. package/sdk/dist/generated/bml.js +9 -7
  205. package/sdk/dist/generated/counter.d.ts +306 -298
  206. package/sdk/dist/generated/counter.js +48 -46
  207. package/sdk/dist/generated/dvn.d.ts +450 -411
  208. package/sdk/dist/generated/dvn.js +66 -64
  209. package/sdk/dist/generated/dvn_fee_lib.d.ts +294 -338
  210. package/sdk/dist/generated/dvn_fee_lib.js +33 -64
  211. package/sdk/dist/generated/endpoint.d.ts +108 -100
  212. package/sdk/dist/generated/endpoint.js +21 -19
  213. package/sdk/dist/generated/executor.d.ts +414 -370
  214. package/sdk/dist/generated/executor.js +58 -55
  215. package/sdk/dist/generated/executor_fee_lib.d.ts +333 -377
  216. package/sdk/dist/generated/executor_fee_lib.js +34 -65
  217. package/sdk/dist/generated/executor_helper.d.ts +26 -190
  218. package/sdk/dist/generated/executor_helper.js +23 -28
  219. package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
  220. package/sdk/dist/generated/layerzero_view.js +294 -0
  221. package/sdk/dist/generated/oft.d.ts +408 -385
  222. package/sdk/dist/generated/oft.js +89 -92
  223. package/sdk/dist/generated/price_feed.d.ts +385 -429
  224. package/sdk/dist/generated/price_feed.js +50 -81
  225. package/sdk/dist/generated/sml.d.ts +108 -100
  226. package/sdk/dist/generated/sml.js +21 -19
  227. package/sdk/dist/generated/treasury.d.ts +108 -100
  228. package/sdk/dist/generated/treasury.js +21 -19
  229. package/sdk/dist/generated/uln302.d.ts +108 -100
  230. package/sdk/dist/generated/uln302.js +23 -21
  231. package/sdk/dist/generated/upgrader.d.ts +189 -18
  232. package/sdk/dist/generated/upgrader.js +84 -4
  233. package/sdk/dist/index.d.ts +1 -0
  234. package/sdk/dist/index.js +2 -0
  235. package/sdk/package.json +1 -1
  236. package/sdk/src/index.ts +3 -0
  237. package/sdk/test/oft-sml.test.ts +4 -4
  238. package/sdk/test/suites/localnet.ts +84 -20
  239. package/sdk/test/upgrader.test.ts +2 -3
  240. package/tools/ts-bindings-gen/src/main.rs +2 -1
  241. package/contracts/ERROR_SPEC.md +0 -44
  242. package/contracts/endpoint-v2/ARCHITECTURE.md +0 -233
  243. package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +0 -175
  244. package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +0 -212
  245. package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +0 -153
  246. package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +0 -294
  247. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
  248. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
  249. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
@@ -4,17 +4,16 @@ import type { u32, u64, u128, i128, Option } from '@stellar/stellar-sdk/contract
4
4
  export * from '@stellar/stellar-sdk';
5
5
  export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
- export type MigrationData = void;
8
7
  /**
9
8
  * Embedded WASM bytecode (base64-encoded)
10
- * Size: 56667 bytes (55.34 KB)
9
+ * Size: 57505 bytes (56.16 KB)
11
10
  */
12
- export declare const WASM_BASE64 = "AGFzbQEAAAABzgEhYAJ+fgF+YAF+AX5gA35+fgF+YAABfmAEfn5+fgF+YAN/f38AYAF/AX5gA35+fgBgA39+fgBgAABgAAF/YAF/AGACf38AYAJ+fgF/YAJ+fgBgA35+fwBgAn9+AGABfgBgAn5/AGAEf39/fwF+YAF+AX9gAn9/AX5gAX8Bf2AFfn9/f38AYAN+f38BfmACf38Bf2ADf35+AX5gA39/fgBgB35+fn5+fn4BfmAFf35/fn4AYAR+fn9/AX5gCX5+fn5+fn5+fgF+YAN/f38BfwKhAjABbAExAAABYQEwAAEBdgEzAAEBdgExAAABYgE4AAEBYgE2AAABYgFmAAIBYwEyAAIBYwExAAEBdgFkAAABdgEyAAABdgE2AAABeAExAAABdgFfAAMBeAE0AAMBaQEwAAEBdgE4AAEBeAE3AAMBeAEwAAABYgFlAAABYgEwAAEBYwEwAAIBbAFfAAIBbAEyAAABaQFfAAEBZAFfAAIBaQE4AAEBaQE3AAEBYgE0AAMBYgFfAAEBbAE2AAEBeAEzAAMBeAE4AAMBYgEzAAABbQFhAAQBdgFnAAABYgFtAAIBaQE2AAABYgFqAAABYgEyAAQBbQE5AAIBbAEwAAABbAE4AAABeAE1AAEBbAE3AAQBaQEzAAABaQE1AAEBaQE0AAEDogGgAQUGBwgJCgsMBg0DAw4KDwMQDQwNEQkKBRAIEgMQEAsFARMRFBIDFQMMEgwKDBQWAwMUChQKBhQMEBcQDAgCEBAMGBkKEBAQFhUaARsAAAsLAAALABECABEAEREBAwMBAwEBAQMDAwMBAxwdCBwMFQABAwIeHwwMBgwRCwIAAQsBAwMAEAYDDAMDAAAQERIBAwMBAwACCQUQEAUMBQwQICAEBQFwAQEBBQMBABEGIQR/AUGAgMAAC38AQcyCwAALfwBB+IrAAAt/AEGAi8AACweNBzUGbWVtb3J5AgAMX19jaGVja19hdXRoAG0Kc2V0X3BhdXNlZAB6GXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAfA1zZXRfYWxsb3dsaXN0AH0Mc2V0X2RlbnlsaXN0AIABGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAIEBE3NldF9kZXBvc2l0X2FkZHJlc3MAgwEac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAhQESc2V0X3dvcmtlcl9mZWVfbGliAIYBDnNldF9wcmljZV9mZWVkAIgBCGlzX2FkbWluAIsBBmFkbWlucwCMAQZwYXVzZWQAjQEYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAI4BDG1lc3NhZ2VfbGlicwCPAQ9pc19vbl9hbGxvd2xpc3QAkAEOaXNfb25fZGVueWxpc3QAkQEHaGFzX2FjbACSAQ5hbGxvd2xpc3Rfc2l6ZQCTARZkZWZhdWx0X211bHRpcGxpZXJfYnBzAJQBD2RlcG9zaXRfYWRkcmVzcwCVAQpwcmljZV9mZWVkAJYBGmdldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAJcBDndvcmtlcl9mZWVfbGliAJgBB2dldF9mZWUAmQEKYXNzaWduX2pvYgCcAQ5zZXRfZHN0X2NvbmZpZwCfAQpkc3RfY29uZmlnAKABA3ZpZAChAQ5oYXNoX2NhbGxfZGF0YQCiAQ1fX2NvbnN0cnVjdG9yAKQBCXNldF9hZG1pbgCrARNxdW9ydW1fY2hhbmdlX2FkbWluAKwBB3VwZ3JhZGUArQEHbWlncmF0ZQCvAQphdXRob3JpemVyALEBD3NldF90dGxfY29uZmlncwCyAQt0dGxfY29uZmlncwC1ARJmcmVlemVfdHRsX2NvbmZpZ3MAtwEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuALgBE2V4dGVuZF9pbnN0YW5jZV90dGwAuQEKc2V0X3NpZ25lcgC6AQ1zZXRfdGhyZXNob2xkAL4BC2dldF9zaWduZXJzAL8BDXRvdGFsX3NpZ25lcnMAwAEJaXNfc2lnbmVyAMEBCXRocmVzaG9sZADCARF2ZXJpZnlfc2lnbmF0dXJlcwDDARN2ZXJpZnlfbl9zaWduYXR1cmVzAMQBAV8DAQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwqsswGgASIAIAAQsYCAgAAgAa1CIIZCBIQgAq1CIIZCBIQQsoCAgAAL0QECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIAAoAgAOAwABAgALIAFBmILAgABBAxDHgICAACABKAIADQMgASABKQMIEMiAgIAADAILIAFBm4LAgABBCRDHgICAACABKAIADQIgASABKQMIIAA1AgRCIIZCBIQQyYCAgAAMAQsgAUGkgsCAAEEIEMeAgIAAIAEoAgANASABIAEpAwggACkDCBDJgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCxEAIABCASABIAIQrICAgAAaCzcBAX5CACEDAkACQCABQgJRDQAgAadBAXENASAAIAI3AwhCASEDCyAAIAM3AwAPCxC0gICAAAALCQAQxYGAgAAAC4sBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqELaAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC3gICAAAtBACEBAkBBABC4gICAACICQgIQuYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABCwwAIABBARDKgYCAAAsbACAArUIghkIEhCABrUIghkIEhBCqgICAABoLwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQZKFwIAAQQYQx4CAgAAgASgCAA0DIAEgASkDCBDIgICAAAwCCyABQZiFwIAAQQgQx4CAgAAgASgCAA0CIAEgASkDCBDIgICAAAwBCyABQaCFwIAAQQoQx4CAgAAgASgCAA0BIAEgASkDCBDIgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCpgICAAEIBUQsVAQF+ELuAgIAAIgAQgYCAgAAaIAALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEJGAgIAAIQEgAEEQaiSAgICAACABC1gBAX8jgICAgABBEGsiAiSAgICAACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgACABEL2AgIAAEL6AgIAAIAJBEGokgICAgAALRgIBfwF+QQAhAAJAAkBBARCngYCAACIBQgIQuYCAgABFDQAgAUICEICAgIAAIgFC/wGDQgRSDQEgAUIgiKchAAsgAA8LAAuSBQQBfwV+An8BfiOAgICAAEEwayIDJICAgIAAIANBIGoQtoCAgAACQCADKAIgQQFHDQAgAygCJCADKAIoELeAgIAACwJAAkACQAJAAkACQCACRQ0AIAIgARCCgICAAEIgiKdLDQEQv4CAgAAhBCABEIKAgIAAQiCIIQVCACEGQQAhAgJAA0AgBiAFUQ0FAkAgASAGQiCGQgSEEIOAgIAAIgdC/wGDQsgAUg0AIAcQhICAgAAhCCAGQv////8PUQ0CIAhCgICAgHCDQoCAgICQCFINAiAHEISAgIAAQv////+PCFgNBSAHQoSAgICACBCFgICAACEIIAdCBEKEgICAgAgQhoCAgAAiBxCEgICAAEKAgICAcINCgICAgIAIUg0CIANBIGogACAHIAhCIIinIglBZWoiCiAJIApB/wFxQQRJG61C/wGDQiCGQgSEEIeAgIAAQoSAgIAQQoSAgICQCBCGgICAABCIgICAAEKEgICAwAFChICAgIAEEIaAgIAAEMCAgIAAIAMoAiBBAUYNAiADKQMoIQcCQCACQQFxRQ0AIAcgCxDBgICAAEEYdEEYdUEATA0ICyAEEIKAgIAAIQggA0EANgIIIAMgBDcDACADIAhCIIg+AgwDQCADQSBqIAMQwoCAgAAgA0EQaiADKQMgIAMpAygQs4CAgAAgAygCEEEBRw0JIAMpAxggBxDDgICAAEUNAAsgBkIBfCEGQQEhAiAHIQsMAQsLIAZC/////w9SGgsQtICAgAAAC0KDgICAsIUBEMSAgIAAAAtCg4CAgOCEARDEgICAAAALEMWAgIAAAAsgA0EwaiSAgICAAA8LQoOAgICghQEQxICAgAAAC0KDgICAgIUBEMSAgIAAAAuNAQQBfwF+AX8BfiOAgICAAEEQayIAJICAgIAAAkACQEEAEKeBgIAAIgFCARC5gICAACICRQ0AIAFCARCAgICAACIDQv8Bg0LLAFINASAAQQRqEM6AgIAAIAAoAgRFDQAgACgCCCAAKAIMEKiBgIAACxCNgICAACEBIABBEGokgICAgAAgAyABIAIbDwsACzYBAX5CASECAkAgARCEgICAAEKAgICAcINCgICAgMACUg0AIAAgATcDCEIAIQILIAAgAjcDAAsXACAAIAEQkoCAgAAiAUIAVSABQgBTawuRAQICfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIAEoAggiAyABKAIMSQ0AIABCAjcDAAwBCyACIAEpAwAgA61CIIZCBIQQg4CAgAAQu4GAgAACQCADQQFqIgNFDQAgAikDACEEIAAgAikDCDcDCCAAIAQ3AwAgASADNgIIDAELELSAgIAAAAsgAkEQaiSAgICAAAsRACAAIAEQwYCAgABB/wFxRQsLACAAEKuAgIAAGgsJABC0gICAAAALUgECfyOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAACxC9gICAACEBIABBEGokgICAgAAgAQtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhDGgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQnoGAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEJ6BgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC/YCAwF/AX4BfyOAgICAAEEwayICJICAgIAAEMuAgIAAIQMCQAJAAkACQAJAAkAgAQ0AIAMQgoCAgABC/////x9YDQEgAkEIaiADIAAQiYCAgAAQzICAgAAgAigCCCIEQQJGDQIgBEEBcUUNAyACKAIMIgQgAxCCgICAAEIgiKdPDQUgAyAErUIghkIEhBCKgICAACEDDAULIAMgABCJgICAAEICUQ0DQoOAgICAlgEQxICAgAAAC0KDgICAwJYBEMSAgIAAAAsQtICAgAAAC0KDgICAkJYBEMSAgIAAAAsgAyAAEIuAgIAAIQMLIAJBCjYCICACQSBqIAMQzYCAgAAgAkEUahDOgICAAAJAIAIoAhRBAUcNACACQSBqIAIoAhggAigCHBDPgICAAAtCjuauueqM5NU4ENCAgIAAIQMgAiAANwMoIAIgAa03AyAgA0HAhcCAAEECIAJBIGpBAhDRgICAABCMgICAABogAkEwaiSAgICAAAusAQIBfwN+I4CAgIAAQTBrIgAkgICAgAAgAEEQahC2gICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQt4CAgAALIABBCjYCECAAIABBEGoQ2oCAgAACQCAAKQMAIgFQDQAgAEEkahDOgICAACAAKAIkQQFHDQAgAEEQaiAAKAIoIAAoAiwQz4CAgAALIAApAwghAhCNgICAACEDIABBMGokgICAgAAgAiADIAGnGws9AQJ/AkACQCABQgJSDQBBACECDAELQQFBAiABQv8Bg0IEURshAiABQiCIpyEDCyAAIAM2AgQgACACNgIACxUAIAAQ5YCAgAAgAUIBEJaAgIAAGgsMACAAQQIQyoGAgAALIgAgABDlgICAACABrUIghkIEhCACrUIghkIEhBCygICAAAtjAwF/AX4BfyOAgICAAEEQayIBJICAgIAAIAEgADcDAEICIQJBASEDAkADQCADRQ0BIANBf2ohAyAAIQIMAAsLIAEgAjcDCCABQQhqQQEQnoGAgAAhACABQRBqJICAgIAAIAALLgACQCABIANGDQAACyAArUIghkIEhCACrUIghkIEhCABrUIghkIEhBCogICAAAsnACAAEIGAgIAAGgJAIAAQ04CAgAANAEKDgICA8JcBEMSAgIAAAAsLXQEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELeAgIAACxDLgICAACAAEImAgIAAIQAgAUEQaiSAgICAACAAQgJSC9ECAwF/An4BfyOAgICAAEEwayICJICAgIAAENWAgIAAIgMgABCJgICAACEEAkACQAJAAkACQCABDQAgAkEIaiAEEMyAgIAAIAIoAggiBUECRg0BIAVBAXFFDQIgAigCDCIFIAMQgoCAgABCIIinTw0EIAMgBa1CIIZCBIQQioCAgAAhAwwECyAEQgJRDQJCg4CAgOCWARDEgICAAAALELSAgIAAAAtCg4CAgPCWARDEgICAAAALIAMgABCLgICAACEDCyACQQY2AiAgAkEgaiADEM2AgIAAIAJBFGoQzoCAgAACQCACKAIUQQFHDQAgAkEgaiACKAIYIAIoAhwQz4CAgAALQdCFwIAAQRkQ1oCAgAAQ0ICAgAAhAyACIAGtNwMoIAIgADcDICADQYCGwIAAQQIgAkEgakECENGAgIAAEIyAgIAAGiACQTBqJICAgIAAC6wBAgF/A34jgICAgABBMGsiACSAgICAACAAQRBqELaAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC3gICAAAsgAEEGNgIQIAAgAEEQahDagICAAAJAIAApAwAiAVANACAAQSRqEM6AgIAAIAAoAiRBAUcNACAAQRBqIAAoAiggACgCLBDPgICAAAsgACkDCCECEI2AgIAAIQMgAEEwaiSAgICAACACIAMgAacbC0UCAX8BfiOAgICAAEEQayICJICAgIAAIAIgACABEMaBgIAAAkAgAigCAEEBRw0AAAsgAikDCCEDIAJBEGokgICAgAAgAwt1AgF/AX4jgICAgABBIGsiACSAgICAACAAQRBqELaAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC3gICAAAsgAEECNgIQIAAgAEEQahDYgICAACAAKQMIIQEgACkDAEG9CRDZgICAACAAQSBqJICAgIAAIAELTQECfkIAIQICQAJAIAEQ5YCAgAAiA0ICELmAgIAARQ0AIANCAhCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALKQACQCAAp0EBcUUNAA8LIAFB0HZqrUIghkKDgICAgJYBfBDEgICAAAALTQECfkIAIQICQAJAIAEQ5YCAgAAiA0IBELmAgIAARQ0AIANCARCAgICAACICQv8Bg0LLAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALdwEDfyOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQk2AhAgAEEIaiAAQRBqENyAgIAAIAAoAgghASAAKAIMIQIgAEEgaiSAgICAACACQQAgAUEBcRsLWgIBfgF/AkACQAJAIAEQ5YCAgAAiAkICELmAgIAADQBBACEBDAELIAJCAhCAgICAACICQv8Bg0IEUg0BIAJCIIinIQNBASEBCyAAIAM2AgQgACABNgIADwsAC4wBAQJ/I4CAgIAAQSBrIgEkgICAgAAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALIAFBCDYCACABIAA3AwgCQCABEN6AgIAAIgJFDQAgAUEUahDOgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQz4CAgAALIAFBIGokgICAgAAgAgsSACAAEOWAgIAAQgEQuYCAgAALdQIBfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEQahC2gICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQt4CAgAALIABBAzYCECAAIABBEGoQ2ICAgAAgACkDCCEBIAApAwBBwQkQ2YCAgAAgAEEgaiSAgICAACABC3UCAX8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQE2AhAgACAAQRBqENiAgIAAIAApAwghASAAKQMAQbUJENmAgIAAIABBIGokgICAgAAgAQuMAQECfyOAgICAAEEgayIBJICAgIAAIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQc2AgAgASAANwMIAkAgARDegICAACICRQ0AIAFBFGoQzoCAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEM+AgIAACyABQSBqJICAgIAAIAILdwEDfyOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQQ2AhAgAEEIaiAAQRBqENyAgIAAIAAoAgghASAAKAIMIQIgAEEgaiSAgICAACACQQAgAUEBcRsLXQEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELeAgIAACxDVgICAACAAEImAgIAAIQAgAUEQaiSAgICAACAAQgJSC48BAgJ/AX4jgICAgABBEGsiACSAgICAACAAELaAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC3gICAAAtBACEBIABBADYCAAJAIAAQ5YCAgAAiAkICELmAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQumBAIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOCwABAgMEBQYHCAkKAAsgAUH4icCAAEEGEMeAgIAAIAEoAgANCyABIAEpAwgQyICAgAAMCgsgAUH+icCAAEEOEMeAgIAAIAEoAgANCiABIAEpAwgQyICAgAAMCQsgAUGMisCAAEEJEMeAgIAAIAEoAgANCSABIAEpAwgQyICAgAAMCAsgAUGVisCAAEEMEMeAgIAAIAEoAgANCCABIAEpAwgQyICA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yABSDQAgARCEgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEI+AgIAAIQELIAAgAzcDACAAIAE3AwgLSgIBfgF/QgIhAgJAIAEoAggiAyABKAIMTw0AIAAgASkDACADrUIghkIEhBCDgICAADcDCCABIANBAWo2AghCACECCyAAIAI3AwALHAAgACABrUIghkIEhCACrUIghkIEhBCkgICAAAsZAAJAIAEgAEkNACABIABrDwsQtICAgAAAC4wBAgF/AX4jgICAgABBEGsiACSAgICAACAAELaAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC3gICAAAsgAEEANgIAAkACQCAAELGAgIAAIgFCAhC5gICAAEUNACABQgIQgICAgAAiAUL/AYNCBFENAQALEMWAgIAAAAsgAEEQaiSAgICAACABQiCIpwvTAQICfwN+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUHwgsCAAEEDIAJBCGpBAxDpgICAACACKQMIIgFC/wGDQssAUg0AIAIpAxAiBUL/AYNCzQBSDQACQCACKQMYIganQf8BcSIDQcoARg0AIANBDkcNAQsgACABNwMYIAAgBjcDECAAIAU3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAu+AQICfwF+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUGYg8CAAEECIAJBAhDpgICAACACQRBqIAIpAwAQx4GAgAAgAigCEA0AIAIpAxghASACQRBqIAIpAwgQ7oCAgAAgAigCEA0AIAAgAikDGDcDECAAIAE3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAvgAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUG4g8CAAEEDIAJBCGpBAxDpgICAACACKQMIIgFC/wGDQssAUg0AIAJBIGogAikDEBDHgYCAACACKAIgDQAgAikDKCEFIAJBIGogAikDGBDugICAACACKAIgDQAgAikDKCEEIAAgATcDGCAAIAQ3AxAgACAFNwMIQgAhBAsgACAENwMAIAJBMGokgICAgAALlgECAX4CfyAAKQMAIQEDQAJAIAFQRQ0AQYCAxAAPCwJAAkAgAUIwiKdBP3EiAkEBRw0AQd8AIQIMAQsCQAJAAkAgAkF/akELTw0AQS4hAwwBCwJAIAJBdGpBGk8NAEE1IQMMAQsgAkElTQ0BQTshAwsgAiADaiECDAELIAAgAUIGhiIBNwMADAELCyAAIAFCBoY3AwAgAgsaACAArUIghkIEhCABrUIghkIEhBChgICAAAujAgIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAxC2gICAAAJAIAMoAgBBAUcNACADKAIEIAMoAggQt4CAgAALEJyAgIAAIQQgAyAAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYCACAEIAQQhICAgABCgICAgHCDQgSEIANBBBCjgYCAACEEIAMgAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhDcDACAEIAQQhICAgABCgICAgHCDQgSEIANBCBCjgYCAACACEJ2AgIAAEJOAgIAAEIiAgIAAIQEgA0EQaiSAgICAACABC50CAgJ/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALELqAgIAAIQAQ5ICAgAAgAnNBAXFFDQEgAUEANgIAIAEgAkICEPuAgIAAAkACQCACQQFxDQBCjtKq3O6sz/UAENCAgIAAIQMgASAANwMAIANB9IbAgABBASABQQEQ0YCAgAAQjICAgAAaDAELQo7SqtzurAMQ0ICAgAAhAyABIAA3AwAgA0HkhsCAAEEBIAFBARDRgICAABCMgICAABoLIAFBEGokgICAgABCAg8LAAtCg4CAgMCXARDEgICAAAALGgAgABDlgICAACABrUL/AYMgAhCWgICAABoLjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQtoCAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELeAgIAACxC6gICAABogACADQQFxENSAgIAAIAJBEGokgICAgABCAg8LAAujAwEDfyOAgICAAEEgayICJICAgIAAAkACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALELqAgIAAGiAAEOGAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBBzYCECACIAA3AxggAkEQahDlgICAAEIBEJeAgIAAGhDbgICAACIERQ0FIARBf2ohBAwBCyAEDQMgAkEHNgIQIAIgADcDGCACQRBqEP6AgIAAIAJBBGoQzoCAgAACQCACKAIEQQFHDQAgAkEQaiACKAIIIAIoAgwQz4CAgAALENuAgIAAQQFqIgRFDQQLIAQQ/4CAgABBkIbAgABBDRDWgICAABDQgICAACEBIAIgADcDGCACIAOtNwMQIAFBqIbAgABBAiACQRBqQQIQ0YCAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgKCXARDEgICAAAALQoOAgICglgEQxICAgAAACxC0gICAAAALDgAgAEEBQgEQ+4CAgAALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBCTYCACABIAAQzIGAgAAgAUEQaiSAgICAAAvuAgEDfyOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBEGoQtoCAgAACQCACKAIQQQFHDQAgAigCFCACKAIYELeAgIAACxC6gICAABogABDdgICAACEEAkACQCADQQFxDQAgBEUNAyACQQg2AhAgAiAANwMYIAJBEGoQ5YCAgABCARCXgICAABoMAQsgBA0DIAJBCDYCECACIAA3AxggAkEQahD+gICAACACQQRqEM6AgIAAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDPgICAAAtBuIbAgABBDBDWgICAABDQgICAACEBIAIgADcDGCACIAOtNwMQIAFBzIbAgABBAiACQRBqQQIQ0YCAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgLCXARDEgICAAAALQoOAgICwlgEQxICAgAAAC3oBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEEahC2gICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQt4CAgAALIAAQ0oCAgAAgAUIgiKcQgoGAgAAgAkEQaiSAgICAAEICDwsAC3ICAX8BfiOAgICAAEEQayIBJICAgIAAIAFBBDYCACABIAAQzIGAgABB/IbAgABBGhDWgICAABDQgICAACECIAEgAK1CIIZCBIQ3AwAgAkGkh8CAAEEBIAFBARDRgICAABCMgICAABogAUEQaiSAgICAAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhC2gICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQt4CAgAALIAAQ0oCAgAAgARCEgYCAAEGsh8CAAEETENaAgIAAENCAgIAAIQAgAiABNwMAIABB0IfAgABBASACQQEQ0YCAgAAQjICAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEBNgIAIAEgABDNgYCAACABQRBqJICAgIAAC5cCAQF/I4CAgIAAQSBrIgMkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJC/wGDQsgAUg0AIANBEGoQtoCAgAACQCADKAIQQQFHDQAgAygCFCADKAIYELeAgIAACyAAENKAgIAAIANBBTYCECADIAFCIIg+AhQgA0EQahDlgICAACACQgEQloCAgAAaIANBBGoQzoCAgAACQCADKAIEQQFHDQAgA0EQaiADKAIIIAMoAgwQz4CAgAALQfiHwIAAQRoQ1oCAgAAQ0ICAgAAhACADIAI3AxggAyABQoSAgIBwgzcDECAAQaiIwIAAQQIgA0EQakECENGAgIAAEIyAgIAAGiADQSBqJICAgIAAQgIPCwALrAEBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAIQtoCAgAACQCACKAIAQQFHDQAgAigCBCACKAIIELeAgIAACyAAENKAgIAAIAEQh4GAgABBuIjAgABBEhDWgICAABDQgICAACEAIAIgATcDACAAQdSIwIAAQQEgAkEBENGAgIAAEIyAgIAAGiACQRBqJICAgIAAQgIPCwALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBAzYCACABIAAQzYGAgAAgAUEQaiSAgICAAAt/AQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgABDSgICAACABEImBgIAAIAEQioGAgAAgAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQI2AgAgASAAEM2BgIAAIAFBEGokgICAgAALXQIBfwF+I4CAgIAAQRBrIgEkgICAgABB2IfAgABBDhDWgICAABDQgICAACECIAEgADcDCCACQfCHwIAAQQEgAUEIakEBENGAgIAAEIyAgIAAGiABQRBqJICAgIAACxsAAkAgAEL/AYNCzQBRDQAACyAAENOAgIAArQsIABDLgICAAAsJABDkgICAAK0LGwACQCAAQv8Bg0LNAFENAAALIAAQ44CAgACtCwgAENWAgIAACxsAAkAgAEL/AYNCzQBRDQAACyAAEOGAgIAArQsbAAJAIABC/wGDQs0AUQ0AAAsgABDdgICAAK0LGwACQCAAQv8Bg0LNAFENAAALIAAQ5oCAgACtCw8AENuAgIAArUIghkIEhAsPABDigICAAK1CIIZCBIQLCAAQ4ICAgAALCAAQ14CAgAALyAECAn8BfiOAgICAAEEgayIBJICAgIAAAkAgAEL/AYNCBFINACAAQiCIpyECIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQU2AgAgASACNgIEQgIhAAJAIAEQ5YCAgAAiA0IBELmAgIAARQ0AIANCARCAgICAACIAQv8Bg0LIAFINASABQRRqEM6AgIAAIAEoAhRBAUcNACABIAEoAhggASgCHBDPgICAAAsgAUEgaiSAgICAACAADwsACwgAEN+AgIAAC80BAQF/I4CAgIAAQSBrIgckgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANC/wGDQsgAUg0AIAdBEGogBBDugICAACAHKAIQQQFGDQAgB0EQaiAFEO+AgIAAIAcoAhBBAUYNACAGQv8Bg0LIAFINACAHIAEgAkIgiKcgBykDGCAGEJqBgIAAIAdBEGogBykDACAHKQMIEJuBgIAAIAcoAhBBAUYNACAHKQMYIQEgB0EgaiSAgICAACABDwsAC6YFBAF/Bn4CfwJ+I4CAgIAAQeAAayIFJICAgIAAIAUQtoCAgAACQCAFKAIAQQFHDQAgBSgCBCAFKAIIELeAgIAACwJAEOSAgIAADQACQCABEOaAgIAARQ0AIAUgAhCdgYCAAAJAAkAgBSgCAEEBcUUNACAFKQMoIQYgBSkDICEHIAUpAxghCCAFKQMQIQkgBTUCMCEKENeAgIAAIQsQ4oCAgAAhDBDGgICAACENEN+AgIAAIQ4QkYCAgAAhDwJAAkAgA0L//////////wBWDQAgA0IIhkIGhCEDDAELIAMQmICAgAAhAwsgBUHQAGogByAGEOyAgIAAIAUoAlANASAFKQNYIQYgBUHQAGogCSAIEOyAgIAAIAUoAlBBAUYNASAFKQNYIQcgBSABNwNIIAUgCzcDOCAFIAQ3AzAgBSAHNwMgIAUgBjcDGCAFIAKtQiCGQgSENwMQIAUgDK1CIIZCBIQ3AwggBSADNwMAIAUgCkIghkIEhDcDKCAFIA2tQiCGQgSENwNAIAVBqInAgABBCiAFQQoQ0YCAgAA3A1ggBSAPNwNQQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAUgAmogBUHQAGogAmopAwA3AwAgAkEIaiECDAALCwJAAkAgDkKO1Oq1kNeyASAFQQIQnoGAgAAQmYCAgAAiA6dB/wFxIgJBxQBGDQACQCACQQtHDQAgA0I/hyEBIANCCIchAwwCCxC0gICAAAALIAMQmoCAgAAhASADEJuAgIAAIQMLIAAgAzcDACAAIAE3AwggBUHgAGokgICAgAAPCyAFIAJqQgI3AwAgAkEIaiECDAALC0KDgICAIBDEgICAAAsAC0KDgICAkJcBEMSAgIAAAAtCg4CAgKCYARDEgICAAAALWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQpYCAgAAhAQsgAEIANwMAIAAgATcDCAvHAgEBfyOAgICAAEHAAGsiBySAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANC/wGDQsgAUg0AIAcgBBDugICAACAHKAIAQQFGDQAgByAFEO+AgIAAIAcoAgBBAUYNACAGQv8Bg0LIAFINACAHKQMIIQMgBxC2gICAAAJAIAcoAgBBAUcNACAHKAIEIAcoAggQt4CAgAALIAAQgYCAgAAaIAAQ44CAgABFDQEgByABIAJCIIinIAMgBhCagYCAABDggICAACEAIAdBMGogBykDACAHKQMIEJuBgIAAIAcoAjBBAUcNAgsAC0KDgICAgJgBEMSAgIAAAAsgBykDOCEBIAcgADcDKCAHIAE3AyBBtILAgABBAiAHQSBqQQIQ0YCAgAAhACAHQcAAaiSAgICAACAAC/QBAgF/AX4jgICAgABB0ABrIgIkgICAgAAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALIAJBATYCACACIAE2AgQCQAJAAkAgAhCxgICAACIDQgEQuYCAgABFDQAgAkEQaiADQgEQgICAgAAQ6ICAgAAgAigCEEEBcUUNAQALIABCADcDCCAAQgA3AwAMAQsgAEEQaiACQRBqQRBqQTAQz4GAgAAaIABCADcDCCAAQgE3AwAgAkEQahDOgICAACACKAIQQQFHDQAgAiACKAIUIAIoAhgQsICAgAALIAJB0ABqJICAgIAACxoAIACtQiCGQgSEIAGtQiCGQgSEEKOAgIAAC/YEBQF/AX4BfwF+An8jgICAgABB4AFrIgIkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQssAUg0AIAJB8ABqELaAgIAAAkAgAigCcEEBRw0AIAIoAnQgAigCeBC3gICAAAsgABDSgICAACABEIKAgIAAQiCIIQMgAkHwAGpBEGohBEIAIQACQANAIAAgA1ENASABIABCIIZCBIQQg4CAgAAhBUEAIQYCQANAIAZBEEYNASACQeAAaiAGakICNwMAIAZBCGohBgwACwsCQAJAIAVC/wGDQswAUg0A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CyACIAAQi4CAgAAQvIGAgAAgAEEBEL2BgIAAIAFBMGokgICAgAALuAECAX8CfiOAgICAAEEQayIBJICAgIAAAkACQCAARQ0AIAAQv4CAgAAQgoCAgABCIIinSw0BQQEQp4GAgAAgAK1CIIZCBIQiAkICEJaAgIAAGkGAhMCAAEENENaAgIAAENCAgIAAIQMgASACNwMIIANBmITAgABBASABQQhqQQEQ0YCAgAAQjICAgAAaIAFBEGokgICAgAAPC0KDgICAsIUBEMSAgIAAAAtCg4CAgJCFARDEgICAAAALmgEBAn8jgICAgABBEGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBEECRg0AIANBBGoQtoCAgAACQCADKAIEQQFHDQAgAygCCCADKAIMELeAgIAACyAAENKAgIAAIAEgBEEBcRDKgICAACADQRBqJICAgIAAQgIPCwALjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQtoCAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELeAgIAACxC6gICAABogACADQQFxEMqAgIAAIAJBEGokgICAgABCAg8LAAt/AQF/I4CAgIAAQRBrIgEkgICAgAAgASAAEO6AgIAAAkAgASgCAEEBRg0AIAEpAwghABC6gICAABogARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALQQEQroGAgAAgABCegICAABogAUEQaiSAgICAAEICDwsACxgAELCBgIAAIACtQv8Bg0ICEJaAgIAAGgulAQEBfyOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCAlINABC6gICAABogAUEEahC2gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQt4CAgAALAkACQBCwgYCAACIAQgIQuYCAgABFDQAgAEICEICAgIAAp0H/AXEOAgABAgtCg4CAgKCDARDEgICAAAALQQAQroGAgAAgAUEQaiSAgICAAEICDwsAC2ACAX8BfiOAgICAAEEQayIAJICAgIAAIABBqoXAgABBCRDHgICAAAJAAkAgACgCAA0AIAAgACkDCBDIgICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQsIABC7gICAAAuHBQEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQs4GAgAACQAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABELOBgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQtoCAgAACQCACKAIoQQFHDQAgAigCLCACKAIwELeAgIAACxC6gICAABoCQAJAAkAQtYCAgAANABCfgICAACEAEKCAgIAAQiCIIgEgAEIgiCIAVA0EIAGnIACnayIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABDEgICAAAALQoOAgIDA/wAQxICAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBClgYCAAAwBC0EBELiAgIAAQgIQl4CAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBCmgYCAAAwBC0ECELiAgIAAQgIQl4CAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBzITAgABBDxDWgICAABDQgICAACEAIAJBKGoQtIGAgAAhASACIAJBNGoQtIGAgAA3A0ggAiABNwNAIABB8ITAgABBAiACQcAAakECENGAgIAAEIyAgIAAGiACQdAAaiSAgICAAEICDwsACxC0gICAAAALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEMiBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELaBgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQtoCAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQELeAgIAACyAAQQhqELaAgIAAIABBFGoiARDOgICAACAAQTBqIABBCGoQtoGAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABELaBgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhCegYCAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQyYGAgAAPCyAAQgA3AwAgAEICNwMIC6sBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahC2gICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQt4CAgAALELqAgIAAGgJAELWAgIAARQ0AQoOAgIDg/wAQxICAgAAAC0EAELiAgIAAQgFCAhCWgICAABpBgIXAgABBEhDWgICAABDQgICAAEEEQQAgAEEYakEAENGAgIAAEIyAgIAAGiAAQSBqJICAgIAAQgILCQAQtYCAgACtCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinELeAgIAAQgIPCwAL3AICAn8BfiOAgICAAEEgayICJICAgIAAIAJBEGogABC7gYCAAAJAAkACQAJAIAIoAhBBAUYNAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACKQMYIQAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALELqAgIAAGgJAAkAgA0EBcQ0AIAJBCGoQv4CAgAAiASAAEImAgIAAEMyAgIAAIAIoAggiA0ECRg0DIANFDQQCQCACKAIMIgMgARCCgICAAEIgiKdPDQAgASADrUIghkIEhBCKgICAACEBCyABEIKAgIAAIQQQvYCAgAAgBEIgiKdLDQUgARC8gYCAACAAQQAQvYGAgAAMAQsgABCpgYCAAAsgAkEgaiSAgICAAEICDwsACxC0gICAAAALQoOAgICAhQEQxICAgAAAC0KDgICAkIUBEMSAgIAAAAsjAAJAIAFC/wGDQsgAUQ0AIABCATcDAA8LIAAgARDAgICAAAtbAQF/I4CAgIAAQRBrIgEkgICAgABBABCngYCAACAAQgEQloCAgAAaIAFBBGoQzoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKiBgIAACyABQRBqJICAgIAAC9ABAwF/AX4BfyOAgICAAEEgayICJICAgIAAQeyDwIAAQQoQ1oCAgAAhAyACIAA3AwggAiADNwMAQQAhBANAAkAgBEEQRw0AQQAhBAJAA0AgBEEQRg0BIAJBEGogBGogAiAEaikDADcDACAEQQhqIQQMAAsLIAJBEGpBAhCegYCAACEAIAIgAa1C/wGDNwMQIABB+IPAgABBASACQRBqQQEQ0YCAgAAQjICAgAAaIAJBIGokgICAgAAPCyACQRBqIARqQgI3AwAgBEEIaiEEDAALC20BAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgAUEEahC2gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQt4CAgAALELqAgIAAGiAAQiCIpxCqgYCAACABQRBqJICAgIAAQgIPCwALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEL+AgIAAIQEgAEEQaiSAgICAACABC2QCAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAACxC/gICAABCCgICAACEBIABBEGokgICAgAAgAUKAgICAcINCBIQL3AECAX8CfiOAgICAAEEwayIBJICAgIAAIAFBIGogABC7gYCAAAJAIAEoAiBBAUYNACABKQMoIQIgAUEgahC2gICAAAJAIAEoAiBBAUcNACABKAIkIAEoAigQt4CAgAALEL+AgIAAIgAQgoCAgAAhAyABQQA2AgggASAANwMAIAEgA0IgiD4CDAJAA0AgAUEgaiABEMKAgIAAIAFBEGogASkDICABKQMoELOAgIAAIAEpAxAiAKdBAUcNASABKQMYIAIQw4CAgABFDQALCyABQTBqJICAgIAAIAAPCwALDwAQxoCAgACtQiCGQgSEC1QBAX8jgICAgABBEGsiAiSAgICAACACIAAQ7oCAgAACQCACKAIAQQFGDQAgAUL/AYNCywBSDQAgAikDCCABELyAgIAAIAJBEGokgICAgABCAg8LAAtlAQF/I4CAgIAAQRBrIgMkgICAgAAgAyAAEO6AgIAAAkAgAygCAEEBRg0AIAFC/wGDQssAUg0AIAJC/wGDQgRSDQAgAykDCCABIAJCIIinEL6AgIAAIANBEGokgICAgABCAg8LAAsDAAAL2wECAX4EfwJAAkAgAkEJSw0AQgAhAyACIQQgASEFA0ACQCAEDQAgA0IIhkIOhCEDDAMLQQEhBgJAIAUtAAAiB0HfAEYNAAJAIAdBUGpB/wFxQQpJDQACQCAHQb9/akH/AXFBGkkNACAHQZ9/akH/AXFBGUsNBCAHQUVqIQYMAgsgB0FLaiEGDAELIAdBUmohBgsgA0IGhiAGrUL/AYOEIQMgBEF/aiEEIAVBAWohBQwACwsgAa1CIIZCBIQgAq1CIIZCBIQQpoCAgAAhAwsgAEIANwMAIAAgAzcDCAuzAgMBfwF+AX8jgICAgABBIGsiAiSAgICAAAJAAkAgAUL/AYNCywBRDQAgAEIBNwMADAELIAEQgoCAgAAhAyACQQA2AgggAiABNwMAIAIgA0IgiD4CDCACQRBqIAIQ8ICAgAACQCACKQMQIgFCAlENACABp0EBcQ0AAkAgAikDGCIBp0H/AXEiBEHKAEYNACAEQQ5HDQELAkAgAUHQg8CAAEEBEPGAgIAAQv////8PVg0AIAIoAgggAigCDBDygICAAEEBSw0AIAJBEGogAhDwgICAACACKQMQIgFCAlENACABp0EBcQ0AIAJBEGogAikDGBDugICAACACKAIQDQAgAikDGCEBIABCADcDACAAIAE3AwgMAgsgAEIBNwMADAELIABCATcDAAsgAkEgaiSAgICAAAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUG8hMCAAEECIAJBAhDpgICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQbyEwIAAQQIgA0ECENGAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC3cCAn8BfiOAgICAAEEQayICJICAgIAAQQAhAwJAAkAgARC4gICAACIEQgIQuYCAgABFDQAgAkEEaiAEQgIQgICAgAAQyIGAgABBASEDIAIoAgRBAUYNASAAIAIpAgg3AgQLIAAgAzYCACACQRBqJICAgIAADwsAC1YCAX8BfiOAgICAAEEQayIDJICAgIAAIAAQuICAgAAhBCADIAEgAhDJgYCAAAJAIAMoAgBBAUcNAAALIAQgAykDCEICEJaAgIAAGiADQRBqJICAgIAACxwAIAAQ5YCAgAAgAa1CIIZCBIRCAhCWgICAABoLFQAgABDlgICAACABQgIQloCAgAAaC7kHAQx/I4CAgIAAQRBrIQMCQAJAIAJBEE8NACAAIQQMAQsCQCAAIABBACAAa0EDcSIFaiIGTw0AIAVBf2ohByAAIQQgASEIAkAgBUUNACAFIQkgACEEIAEhCANAIAQgCC0AADoAACAIQQFqIQggBEEBaiEEIAlBf2oiCQ0ACwsgB0EHSQ0AA0AgBCAILQAAOgAAIARBAWogCEEBai0AADoAACAEQQJqIAhBAmotAAA6AAAgBEEDaiAIQQNqLQAAOgAAIARBBGogCEEEai0AADoAACAEQQVqIAhBBWotAAA6AAAgBEEGaiAIQQZqLQAAOgAAIARBB2ogCEEHai0AADoAACAIQQhqIQggBEEIaiIEIAZHDQALCyAGIAIgBWsiCUF8cSIHaiEEAkACQCABIAVqIghBA3EiAQ0AIAYgBE8NASAIIQEDQCAGIAEoAgA2AgAgAUEEaiEBIAZBBGoiBiAESQ0ADAILC0EAIQIgA0EANgIMIANBDGogAXIhBQJAQQQgAWsiCkEBcUUNACAFIAgtAAA6AABBASECCwJAIApBAnFFDQAgBSACaiAIIAJqLwEAOwEACyAIIAFrIQIgAUEDdCELIAMoAgwhBQJAAkAgBkEEaiAESQ0AIAYhDAwBC0EAIAtrQRhxIQ0DQCAGIAUgC3YgAkEEaiICKAIAIgUgDXRyNgIAIAZBCGohCiAGQQRqIgwhBiAKIARJDQALC0EAIQYgA0EAOgAIIANBADoABgJAAkAgAUEBRw0AIANBCGohDUEAIQFBACEKQQAhDgwBCyACQQVqLQAAIQogAyACQQRqLQAAIgE6AAggCkEIdCEKQQIhDiADQQZqIQ0LAkAgCEEBcUUNACANIAJBBGogDmotAAA6AAAgAy0ABkEQdCEGIAMtAAghAQsgDCAKIAZyIAFB/wFxckEAIAtrQRhxdCAFIAt2cjYCAAsgCUEDcSECIAggB2ohAQsCQCAEIAQgAmoiBk8NACACQX9qIQkCQCACQQdxIghFDQADQCAEIAEtAAA6AAAgAUEBaiEBIARBAWohBCAIQX9qIggNAAsLIAlBB0kNAANAIAQgAS0AADoAACAEQQFqIAFBAWotAAA6AAAgBEECaiABQQJqLQAAOgAAIARBA2ogAUEDai0AADoAACAEQQRqIAFBBGotAAA6AAAgBEEFaiABQQVqLQAAOgAAIARBBmogAUEGai0AADoAACAEQQdqIAFBB2otAAA6AAAgAUEIaiEBIARBCGoiBCAGRw0ACwsgAAsOACAAIAEgAhDOgYCAAAsLggsBAEGAgMAAC/gKQ3JlYXRlQ29udHJhY3RIb3N0Rm5DcmVhdGVDb250cmFjdFdpdGhDdG9ySG9zdEZuRAEQAAgAAAAAABAAFAAAABQAEAAcAAAAc2V0X2RzdF9jb25maWdwYXJhbXNWABAABgAAAH8EEAAQAAAAjwQQAAMAAACWAxAADgAAAGNvbmZpZwAAfAAQAAYAAAASBBAABwAAAGZ1bmNcARAABAAAAJQAEAAEAAAAMgEQAAIAAABxdW9ydW1fY2hhbmdlX2FkbWluZXhwaXJhdGlvbnNpZ25hdHVyZXN2aWQAAMMAEAAKAAAAnwQQAAYAAADNABAACgAAANcAEAADAAAATm9uZUFkbWluAAAA/AAQAAQAAAAAARAABQAAAFZpZERzdENvbmZpZ1VzZWRIYXNoYW1vdW50dG8sARAABgAAADIBEAACAAAAQ29udHJhY3QAAAASAAAAAAAAAABXYXNtYXJnc2NvbnRyYWN0Zm5fbmFtZQBcARAABAAAAGABEAAIAAAAaAEQAAcAAABleGVjdXRhYmxlc2FsdAAAiAEQAAoAAACSARAABAAAAGNvbnN0cnVjdG9yX2FyZ3OoARAAEAAAAIgBEAAKAAAAkgEQAAQAAABYARAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc2lnbmVyX3NldAAAswIQAAYAAAB0aHJlc2hvbGRfc2V0dGhyZXNob2xkAAANAhAACQAAAFNpZ25lcnNUaHJlc2hvbGRleHRlbmRfdG8AAAAwAhAACQAAAA0CEAAJAAAAdHRsX2NvbmZpZ3Nfc2V0aW5zdGFuY2VwZXJzaXN0ZW50AAAAWwIQAAgAAABjAhAACgAAAHR0bF9jb25maWdzX2Zyb3plbkZyb3plbkluc3RhbmNlUGVyc2lzdGVudE1pZ3JhdGluZ2FjdGl2ZWFkbWluAACzAhAABgAAALkCEAAFAAAAc2V0X3N1cHBvcnRlZF9tZXNzYWdlX2xpYm1lc3NhZ2VfbGlic3VwcG9ydGVkAAAA6QIQAAsAAAD0AhAACQAAAHNldF9hbGxvd2xpc3RhbGxvd2Vkb2FwcB0DEAAHAAAAJAMQAAQAAABzZXRfZGVueWxpc3RkZW5pZWQAAEQDEAAGAAAAJAMQAAQAAABwYXVzZXIAAFwDEAAGAAAAdW5wYXVzZXJsAxAACAAAAHNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzbXVsdGlwbGllcl9icHOWAxAADgAAAHNldF9kZXBvc2l0X2FkZHJlc3NkZXBvc2l0X2FkZHJlc3MAAL8DEAAPAAAAc2V0X3ByaWNlX2ZlZWRwcmljZV9mZWVk5gMQAAoAAABzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlc2RzdF9laWRvcHRpb25fdHlwZXMAAAASBBAABwAAABkEEAAMAAAAc2V0X3dvcmtlcl9mZWVfbGliZmVlX2xpYgAAAEoEEAAHAAAAY29uZmlybWF0aW9uc2RlZmF1bHRfbXVsdGlwbGllcl9icHNmbG9vcl9tYXJnaW5fdXNkZ2Fzb3B0aW9uc3F1b3J1bXNlbmRlcgAAAFwEEAANAAAAaQQQABYAAAASBBAABwAAAH8EEAAQAAAAjwQQAAMAAACWAxAADgAAAJIEEAAHAAAA5gMQAAoAAACZBBAABgAAAJ8EEAAGAAAAUGF1c2VkRGVwb3NpdEFkZHJlc3NQcmljZUZlZWRXb3JrZXJGZWVMaWJEZWZhdWx0TXVsdGlwbGllckJwc1N1cHBvcnRlZE9wdGlvblR5cGVzTWVzc2FnZUxpYnNBbGxvd2xpc3REZW55bGlzdEFsbG93bGlzdFNpemVBZG1pbnMAk+4BDmNvbnRyYWN0c3BlY3YwAAAABAAAAAAAAAAAAAAACER2bkVycm9yAAAABwAAAAAAAAAPQXV0aERhdGFFeHBpcmVkAAAAAAEAAAAAAAAAD0VpZE5vdFN1cHBvcnRlZAAAAAACAAAAAAAAAA9IYXNoQWxyZWFkeVVzZWQAAAAAAwAAAAAAAAARSW52YWxpZEludm9jYXRpb24AAAAAAAAEAAAAAAAAAApJbnZhbGlkVmlkAAAAAAAFAAAAAAAAABFOb25Db250cmFjdEludm9rZQAAAAAAAAYAAAAAAAAACU9ubHlBZG1pbgAAAAAAAAcAAAAFAAAAAAAAAAAAAAAMU2V0RHN0Q29uZmlnAAAAAQAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAAAAAAIAAAABAAAAckNvbmZpZ3VyYXRpb24gZm9yIGEgZGVzdGluYXRpb24gY2hhaW4uCgpDb250YWlucyBmZWUgY2FsY3VsYXRpb24gcGFyYW1ldGVycyBzcGVjaWZpYyB0byBlYWNoIGRlc3RpbmF0aW9uIGVuZHBvaW50LgAAAAAAAAAAAAlEc3RDb25maWcAAAAAAAADAAAAO01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCBieSBuYXRpdmUgZGVjaW1hbHMgcmF0ZSkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAAC5HYXMgZm9yIHZlcmlmaWNhdGlvbiBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAADZ2FzAAAAAAoAAABnRmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDEwMCUpLgpJZiAwLCB0aGUgZGVmYXVsdCBtdWx0aXBsaWVyIGZyb20gd29ya2VyIGNvbmZpZyBpcyB1c2VkLgAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAABAAAANlBhcmFtZXRlciBmb3Igc2V0dGluZyBkZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9uLgAAAAAAAAAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAgAAACdUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkZXN0aW5hdGlvbi4AAAAABmNvbmZpZwAAAAAH0AAAAAlEc3RDb25maWcAAAAAAAAcVGhlIGRlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAABAAAAiVJlcHJlc2VudHMgYSBzaW5nbGUgY29udHJhY3QgaW52b2NhdGlvbiBmb3IgbXVsdGlzaWcgYXV0aG9yaXphdGlvbi4KClVzZWQgaW4gYGhhc2hfY2FsbF9kYXRhYCB0byBjb21wdXRlIHRoZSBoYXNoIHRoYXQgc2lnbmVycyBzaWduIG92ZXIuAAAAAAAAAAAAAARDYWxsAAAAAwAAABNGdW5jdGlvbiBhcmd1bWVudHMuAAAAAARhcmdzAAAD6gAAAAAAAAAYRnVuY3Rpb24gbmFtZSB0byBpbnZva2UuAAAABGZ1bmMAAAARAAAAGFRhcmdldCBjb250cmFjdCBhZGRyZXNzLgAAAAJ0bwAAAAAAEwAAAAAAAAA0VmFsaWRhdGVzIGF1dGhvcml6YXRpb24gZm9yIERWTiBjb250cmFjdCBvcGVyYXRpb25zLgAAAAxfX2NoZWNrX2F1dGgAAAADAAAAAAAAABFzaWduYXR1cmVfcGF5bG9hZAAAAAAAA+4AAAAgAAAAAAAAAAlhdXRoX2RhdGEAAAAAAAfQAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAAAAAAAA1hdXRoX2NvbnRleHRzAAAAAAAD6gAAB9AAAAAHQ29udGV4dAAAAAABAAAD6QAAA+0AAAAAAAAAAwAAAAEAAADHQXV0aGVudGljYXRpb24gZGF0YSBmb3IgRFZOIGNvbnRyYWN0IHRyYW5zYWN0aW9ucy4KClRoaXMgc3RydWN0IGlzIHVzZWQgd2l0aCBTb3JvYmFuJ3MgY3VzdG9tIGFjY291bnQgaW50ZXJmYWNlIHRvIGF1dGhvcml6ZQp0cmFuc2FjdGlvbnMgdGhyb3VnaCBhIGNvbWJpbmF0aW9uIG9mIGFkbWluIHNpZ25hdHVyZSBhbmQgbXVsdGlzaWcgcXVvcnVtLgAAAAAAAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAABAAAAERFeHBpcmF0aW9uIHRpbWVzdGFtcCAobGVkZ2VyIHRpbWUpIGFmdGVyIHdoaWNoIHRoaXMgYXV0aCBpcyBpbnZhbGlkLgAAAApleHBpcmF0aW9uAAAAAAAGAAAAPUVudGl0eSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbiAoYWRtaW4sIG9yIHBlcm1pc3Npb25sZXNzKS4AAAAAAAAGc2VuZGVyAAAAAAfQAAAABlNlbmRlcgAAAAAAPFNpZ25hdHVyZXMgZnJvbSBtdWx0aXNpZyBzaWduZXJzIChzZWNwMjU2azEsIDY1IGJ5dGVzIGVhY2gpLgAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAyVmVyaWZpZXIgSUQgLSBtdXN0IG1hdGNoIHRoZSBEVk4ncyBjb25maWd1cmVkIFZJRC4AAAAAAAN2aWQAAAAABAAAAAIAAAAAAAAAAAAAAAZTZW5kZXIAAAAAAAIAAAAAAAAALk5vIGV4cGxpY2l0IHNlbmRlciAocGVybWlzc2lvbmxlc3MgZXhlY3V0aW9uKS4AAAAAAAROb25lAAAAAQAAAI9BIHJlZ2lzdGVyZWQgYWRtaW4gKGVkMjU1MTkpIHN1Ym1pdHRpbmcgdGhlIHRyYW5zYWN0aW9uLgpUaGUgdHVwbGUgaXMgYChwdWJsaWNfa2V5LCBzaWduYXR1cmUpYCB3aGVyZSB0aGUgc2lnbmF0dXJlIGNvdmVycyB0aGUgU29yb2JhbiBwYXlsb2FkLgAAAAAFQWRtaW4AAAAAAAACAAAD7gAAACAAAAPuAAAAQAAAAAAAAADkU2V0cyB0aGUgcGF1c2VkIHN0YXRlIG9mIHRoZSB3b3JrZXIuCgpXaGVuIHBhdXNlZCwgdGhlIHdvcmtlciB3aWxsIHJlamVjdCBuZXcgam9iIGFzc2lnbm1lbnRzIChlLmcuLCBhc3NpZ25fam9iLCBnZXRfZmVlKS4KRXhpc3Rpbmcgam9icyBpbiBwcm9ncmVzcyBhcmUgbm90IGFmZmVjdGVkLgoKIyBBcmd1bWVudHMKKiBgcGF1c2VkYCAtIGB0cnVlYCB0byBwYXVzZSwgYGZhbHNlYCB0byB1bnBhdXNlAAAACnNldF9wYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAAAAABN1NldHMgd2hldGhlciBhIG1lc3NhZ2UgbGlicmFyeSBpcyBzdXBwb3J0ZWQgYnkgdGhpcyB3b3JrZXIuCgpNZXNzYWdlIGxpYnJhcmllcyAoZS5nLiwgVUxOMzAyKSBjYWxsIHdvcmtlcnMgdG8gYXNzaWduIGpvYnMuIE9ubHkgc3VwcG9ydGVkCmxpYnJhcmllcyBjYW4gaW50ZXJhY3Qgd2l0aCB0aGlzIHdvcmtlci4KCiMgQXJndW1lbnRzCiogYG1lc3NhZ2VfbGliYCAtIFRoZSBtZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwoqIGBzdXBwb3J0ZWRgIC0gYHRydWVgIHRvIGFkZCBzdXBwb3J0LCBgZmFsc2VgIHRvIHJlbW92ZSBzdXBwb3J0AAAAABlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAAAAAgAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAAAAAAJc3VwcG9ydGVkAAAAAAAAAQAAAAAAAAAAAAABWFNldHMgYWxsb3dsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKV2hlbiB0aGUgYWxsb3dsaXN0IGlzIGVtcHR5LCBhbGwgT0FwcHMgYXJlIGFsbG93ZWQgKHVubGVzcyBvbiBkZW55bGlzdCkuCldoZW4gdGhlIGFsbG93bGlzdCBpcyBub3QgZW1wdHksIG9ubHkgYWxsb3dsaXN0ZWQgT0FwcHMgYXJlIGFsbG93ZWQuCkRlbnlsaXN0IGFsd2F5cyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYWxsb3dsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGFsbG93ZWRgIC0gYHRydWVgIHRvIGFkZCB0byBhbGxvd2xpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAADXNldF9hbGxvd2xpc3QAAAAAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAHYWxsb3dlZAAAAAABAAAAAAAAAAAAAAEJU2V0cyBkZW55bGlzdCBzdGF0dXMgZm9yIGFuIE9BcHAgYWRkcmVzcy4KCkRlbnlsaXN0ZWQgT0FwcHMgYXJlIGJsb2NrZWQgZnJvbSB1c2luZyB0aGlzIHdvcmtlciwgZXZlbiBpZiB0aGV5J3JlIG9uCnRoZSBhbGxvd2xpc3QgKGRlbnlsaXN0IHRha2VzIHByZWNlZGVuY2UpLgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGRlbmllZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGRlbnlsaXN0LCBgZmFsc2VgIHRvIHJlbW92ZQAAAAAAAAxzZXRfZGVueWxpc3QAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAGZGVuaWVkAAAAAAABAAAAAAAAAAAAAAE7U2V0cyB0aGUgZGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMuCgpUaGUgbXVsdGlwbGllciBpcyBhcHBsaWVkIHRvIGJhc2UgZmVlcyBkdXJpbmcgZmVlIGNhbGN1bGF0aW9uLiBVc2VkIHdoZW4Kbm8gZGVzdGluYXRpb24tc3BlY2lmaWMgbXVsdGlwbGllciBpcyBjb25maWd1cmVkLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYG11bHRpcGxpZXJfYnBzYCAtIE11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDF4LCAxMjAwMCA9IDEuMngpAAAAABpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAAAAAAAAAAA8VNldHMgdGhlIGRlcG9zaXQgYWRkcmVzcyB3aGVyZSB3b3JrZXIgZmVlcyBhcmUgY29sbGVjdGVkLgoKV2hlbiBqb2JzIGFyZSBhc3NpZ25lZCwgZmVlcyBhcmUgZGlyZWN0ZWQgdG8gdGhpcyBhZGRyZXNzLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgY29sbGVjdGVkIGZlZXMAAAAAAAATc2V0X2RlcG9zaXRfYWRkcmVzcwAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAAAAADrU2V0cyBzdXBwb3J0ZWQgZXhlY3V0b3Igb3B0aW9uIHR5cGVzIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikKKiBgb3B0aW9uX3R5cGVzYCAtIEVuY29kZWQgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcwAAAAAac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAMAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAADZWlkAAAAAAQAAAAAAAAADG9wdGlvbl90eXBlcwAAAA4AAAAAAAAAAAAAARJTZXRzIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4KClRoZSBmZWUgbGlicmFyeSBjYWxjdWxhdGVzIGZlZXMgYmFzZWQgb24gZXhlY3V0b3Igb3B0aW9ucyBhbmQgcHJpY2UgZmVlZCBkYXRhLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYHdvcmtlcl9mZWVfbGliYCAtIEZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MgaW1wbGVtZW50aW5nIGBJRXhlY3V0b3JGZWVMaWJgAAAAAAASc2V0X3dvcmtlcl9mZWVfbGliAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAAAAAAESU2V0cyB0aGUgcHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzLgoKVGhlIHByaWNlIGZlZWQgcHJvdmlkZXMgZ2FzIHByaWNlcyBhbmQgZXhjaGFuZ2UgcmF0ZXMgZm9yIGNyb3NzLWNoYWluCmZlZSBjYWxjdWxhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgcHJpY2VfZmVlZGAgLSBQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgaW1wbGVtZW50aW5nIGBJTGF5ZXJaZXJvUHJpY2VGZWVkYAAAAAAADnNldF9wcmljZV9mZWVkAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAAAAAAFVSZXR1cm5zIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBhbiBhZG1pbi4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIFRoZSBhZGRyZXNzIHRvIGNoZWNrAAAAAAAACGlzX2FkbWluAAAAAQAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAQAAAAEAAAAAAAAAHFJldHVybnMgYWxsIGFkbWluIGFkZHJlc3Nlcy4AAAAGYWRtaW5zAAAAAAAAAAAAAQAAA+oAAAATAAAAAAAAACVSZXR1cm5zIHdoZXRoZXIgdGhlIHdvcmtlciBpcyBwYXVzZWQuAAAAAAAABnBhdXNlZAAAAAAAAAAAAAEAAAABAAAAAAAAAG9SZXR1cm5zIHdoZXRoZXIgYSBtZXNzYWdlIGxpYnJhcnkgaXMgc3VwcG9ydGVkLgoKIyBBcmd1bWVudHMKKiBgbWVzc2FnZV9saWJgIC0gTWVzc2FnZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MAAAAAGGlzX3N1cHBvcnRlZF9tZXNzYWdlX2xpYgAAAAEAAAAAAAAAC21lc3NhZ2VfbGliAAAAABMAAAABAAAAAQAAAAAAAABzUmV0dXJucyBhbGwgc3VwcG9ydGVkIG1lc3NhZ2UgbGlicmFyeSBhZGRyZXNzZXMuCgojIFJldHVybnMKVmVjdG9yIG9mIHN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzc2VzLgAAAAAMbWVzc2FnZV9saWJzAAAAAAAAAAEAAAPqAAAAEwAAAAAAAABaUmV0dXJucyB3aGV0aGVyIGFuIE9BcHAgaXMgb24gdGhlIGFsbG93bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAPaXNfb25fYWxsb3dsaXN0AAAAAAEAAAAAAAAABG9hcHAAAAATAAAAAQAAAAEAAAAAAAAAWVJldHVybnMgd2hldGhlciBhbiBPQXBwIGlzIG9uIHRoZSBkZW55bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAADmlzX29uX2RlbnlsaXN0AAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAAPtSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBoYXMgYWNjZXNzIGNvbnRyb2wgbGlzdCAoQUNMKSBwZXJtaXNzaW9uLgoKQUNMIGV2YWx1YXRpb24gb3JkZXI6CjEuIElmIG9uIGRlbnlsaXN0IOKGkiBkZW5pZWQKMi4gSWYgYWxsb3dsaXN0IGlzIGVtcHR5IE9SIG9uIGFsbG93bGlzdCDihpIgYWxsb3dlZAozLiBPdGhlcndpc2Ug4oaSIGRlbmllZAoKIyBBcmd1bWVudHMKKiBgc2VuZGVyYCAtIE9BcHAgY29udHJhY3QgYWRkcmVzcyB0byBjaGVjawAAAAAHaGFzX2FjbAAAAAABAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAQAAAAAAAAAxUmV0dXJucyB0aGUgbnVtYmVyIG9mIGFkZHJlc3NlcyBvbiB0aGUgYWxsb3dsaXN0LgAAAAAAAA5hbGxvd2xpc3Rfc2l6ZQAAAAAAAAAAAAEAAAAEAAAAAAAAADNSZXR1cm5zIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4AAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAAAAAABAAAABAAAAAAAAAA1UmV0dXJucyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIGZlZXMgYXJlIGNvbGxlY3RlZC4AAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAAAAAAAABAAAAEwAAAAAAAAAoUmV0dXJucyB0aGUgcHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzLgAAAApwcmljZV9mZWVkAAAAAAAAAAAAAQAAABMAAAAAAAAAfFJldHVybnMgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcyBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikAAAAaZ2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAAOAAAAAAAAADBSZXR1cm5zIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4AAAAOd29ya2VyX2ZlZV9saWIAAAAAAAAAAAABAAAAEwAAAAAAAAB4Q2FsY3VsYXRlcyB0aGUgdmVyaWZpY2F0aW9uIGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKQ2FsbGVkIGJ5IHRoZSBzZW5kIGxpYnJhcnkgdG8gcXVvdGUgRFZOIGZlZXMgYmVmb3JlIHNlbmRpbmcuAAAAB2dldF9mZWUAAAAABwAAAAAAAAAIc2VuZF9saWIAAAATAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAAAsAAAAAAAAAuEFzc2lnbnMgYSB2ZXJpZmljYXRpb24gam9iIHRvIHRoaXMgRFZOIGFuZCByZXR1cm5zIGZlZSBwYXltZW50IGluZm8uCgpDYWxsZWQgYnkgdGhlIHNlbmQgbGlicmFyeSB3aGVuIGEgbWVzc2FnZSBpcyBzZW50LiBUaGUgRFZOIHdpbGwgbGF0ZXIKdmVyaWZ5IHRoZSBtZXNzYWdlIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAKYXNzaWduX2pvYgAAAAAABwAAAAAAAAAIc2VuZF9saWIAAAATAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAAAAAERTZXRzIGRlc3RpbmF0aW9uIGNoYWluIGNvbmZpZ3VyYXRpb25zLiBSZXF1aXJlcyBhZG1pbiBhdXRob3JpemF0aW9uLgAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAADkRzdENvbmZpZ1BhcmFtAAAAAAAAAAAAAAAAAEFSZXR1cm5zIHRoZSBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGVuZHBvaW50IElELgAAAAAAAApkc3RfY29uZmlnAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAB9AAAAAJRHN0Q29uZmlnAAAAAAAAAAAAACVSZXR1cm5zIHRoZSBWZXJpZmllciBJRCBmb3IgdGhpcyBEVk4uAAAAAAAAA3ZpZAAAAAAAAAAAAQAAAAQAAAAAAAAAd0NvbXB1dGVzIHRoZSBoYXNoIG9mIGNhbGwgZGF0YSBmb3IgbXVsdGlzaWcgc2lnbmluZy4KCk9mZi1jaGFpbiBzaWduZXJzIHVzZSB0aGlzIHRvIGNvbXB1dGUgdGhlIGhhc2ggdGhleSBuZWVkIHRvIHNpZ24uAAAAAA5oYXNoX2NhbGxfZGF0YQAAAAAAAwAAAAAAAAADdmlkAAAAAAQAAAAAAAAACmV4cGlyYXRpb24AAAAAAAYAAAAAAAAABWNhbGxzAAAAAAAD6gAAB9AAAAAEQ2FsbAAAAAEAAAPuAAAAIAAAAAAAAAJkSW5pdGlhbGl6ZXMgdGhlIERWTiBjb250cmFjdC4KCiMgQXJndW1lbnRzCiogYHZpZGAgLSBWZXJpZmllciBJRCwgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgRFZOCiogYHNpZ25lcnNgIC0gSW5pdGlhbCBtdWx0aXNpZyBzaWduZXJzICgyMC1ieXRlIEV0aGVyZXVtIGFkZHJlc3NlcykKKiBgdGhyZXNob2xkYCAtIE1pbmltdW0gc2lnbmF0dXJlcyByZXF1aXJlZCBmb3IgbXVsdGlzaWcgb3BlcmF0aW9ucwoqIGBhZG1pbnNgIC0gSW5pdGlhbCBhZG1pbiBhZGRyZXNzZXMgZm9yIG9wZXJhdGlvbmFsIGZ1bmN0aW9ucwoqIGBzdXBwb3J0ZWRfbXNnbGlic2AgLSBNZXNzYWdlIGxpYnJhcmllcyB0aGlzIERWTiBzdXBwb3J0cyAoZS5nLiwgVUxOMzAyKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgZm9yIGZlZSBjYWxjdWxhdGlvbnMKKiBgZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc2AgLSBEZWZhdWx0IGZlZSBtdWx0aXBsaWVyICgxMDAwMCA9IDF4KQoqIGB3b3JrZXJfZmVlX2xpYmAgLSBGZWUgbGlicmFyeSBjb250cmFjdCBmb3IgY29tcHV0aW5nIERWTiBmZWVzCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgZmVlIHBheW1lbnRzAAAADV9fY29uc3RydWN0b3IAAAAAAAAJAAAAAAAAAAN2aWQAAAAABAAAAAAAAAAHc2lnbmVycwAAAAPqAAAD7gAAABQAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAABmFkbWlucwAAAAAD6gAAABMAAAAAAAAAEXN1cHBvcnRlZF9tc2dsaWJzAAAAAAAD6gAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAAAAAABalNldHMgYWRtaW4gc3RhdHVzIGZvciBhbiBhZGRyZXNzLiBDYW4gYmUgY2FsbGVkIGJ5IGFuIGV4aXN0aW5nIGFkbWluLgoKVGhpcyBhbGxvd3MgZXhpc3RpbmcgYWRtaW5zIHRvIGFkZCBvciByZW1vdmUgb3RoZXIgYWRtaW5zIHdpdGhvdXQgZ29pbmcgdGhyb3VnaAp0aGUgb3duZXIvbXVsdGlzaWcgcGF0aC4KCiMgQXJndW1lbnRzCiogYGNhbGxlcmAgLSBUaGUgYWRtaW4gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIGB0cnVlYCB0byBhZGQgYWRtaW4sIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAJc2V0X2FkbWluAAAAAAAAAwAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAAAAABfEFsbG93cyB0aGUgcXVvcnVtIHRvIGFkZC9yZW1vdmUgYWRtaW5zIHdpdGhvdXQgcmVxdWlyaW5nIGFuIGFkbWluIHNpZ25hdHVyZS4KClRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIG5vcm1hbCBhZG1pbiB2ZXJpZmljYXRpb24gaW4gYF9fY2hlY2tfYXV0aGAsCnJlcXVpcmluZyBvbmx5IG11bHRpc2lnIHF1b3J1bSBzaWduYXR1cmVzLiBNdXN0IGJlIGNhbGxlZCBhcyBhIHNpbmdsZQpvcGVyYXRpb24gKGNhbm5vdCBiZSBidW5kbGVkIHdpdGggb3RoZXIgY2FsbHMpLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIGB0cnVlYCB0byBhZGQgYWRtaW4sIGBmYWxzZWAgdG8gcmVtb3ZlAAAAE3F1b3J1bV9jaGFuZ2VfYWRtaW4AAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAH0AAAAA1NaWdyYXRpb25EYXRhAAAAAAAAAAAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAIAAAAAAAAAAAAAAApEdm5TdG9yYWdlAAAAAAADAAAAAAAAAAAAAAADVmlkAAAAAAEAAAAAAAAACURzdENvbmZpZwAAAAAAAAEAAAAEAAAAAQAAAAAAAAAIVXNlZEhhc2gAAAABAAAD7gAAACAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAABJQWRkcyBvciByZW1vdmVzIGEgc2lnbmVyIGZyb20gdGhlIG11bHRpc2lnLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAAAAAApzZXRfc2lnbmVyAAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAERTZXRzIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIChxdW9ydW0pLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAA1zZXRfdGhyZXNob2xkAAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAAAAAAH1JldHVybnMgYWxsIHJlZ2lzdGVyZWQgc2lnbmVycy4AAAAAC2dldF9zaWduZXJzAAAAAAAAAAABAAAD6gAAA+4AAAAUAAAAAAAAAC9SZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBzaWduZXJzLgAAAAANdG90YWxfc2lnbmVycwAAAAAAAAAAAAABAAAABAAAAAAAAAAsQ2hlY2tzIGlmIGFuIGFkZHJlc3MgaXMgYSByZWdpc3RlcmVkIHNpZ25lci4AAAAJaXNfc2lnbmVyAAAAAAAAAQAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBjdXJyZW50IHNpZ25hdHVyZSB0aHJlc2hvbGQgKHF1b3J1bSkuAAAAAAAACXRocmVzaG9sZAAAAAAAAAAAAAABAAAABAAAAAAAAAA1VmVyaWZpZXMgc2lnbmF0dXJlcyBhZ2FpbnN0IHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC4AAAAAAAARdmVyaWZ5X3NpZ25hdHVyZXMAAAAAAAACAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAAAAAAAC9WZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgYSBjdXN0b20gdGhyZXNob2xkLgAAAAATdmVyaWZ5X25fc2lnbmF0dXJlcwAAAAADAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAAAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAAAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAAAAAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJh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ciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAEAAAAHVBhY2tldENvZGVjVjFFcnJvcjogMTEwMC0xMTA5AAAAAAAAAAAAABJQYWNrZXRDb2RlY1YxRXJyb3IAAAAAAAIAAAAAAAAAE0ludmFsaWRQYWNrZXRIZWFkZXIAAAAETAAAAAAAAAAUSW52YWxpZFBhY2tldFZlcnNpb24AAARNAAAABAAAAB1Xb3JrZXJPcHRpb25zRXJyb3I6IDExMTAtMTExOQAAAAAAAAAAAAASV29ya2VyT3B0aW9uc0Vycm9yAAAAAAAJAAAAAAAAABJJbnZhbGlkQnl0ZXNMZW5ndGgAAAAABFYAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTEAAAAAAARXAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUyAAAAAAAEWAAAAAAAAAARSW52YWxpZE9wdGlvblR5cGUAAAAAAARZAAAAAAAAAA5JbnZhbGlkT3B0aW9ucwAAAAAEWgAAAAAAAAAPSW52YWxpZFdvcmtlcklkAAAABFsAAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMUdhc092ZXJmbG93AAAAAAAEXAAAAAAAAAAgTGVnYWN5T3B0aW9uc1R5cGUyQW1vdW50T3ZlcmZsb3cAAARdAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTJHYXNPdmVyZmxvdwAAAAAABF4AAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQLAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAEAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGgAAAAQAAAAYTXVsdGlzaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aXNpZ0Vycm9yAAAAAAAACAAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJQAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCYAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEJwAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCgAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKQAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCoAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQrAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAEAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAAAAEAAAAFldvcmtlckVycm9yOiAxMjAwLTEyOTkAAAAAAAAAAAALV29ya2VyRXJyb3IAAAAAEwAAAAAAAAASQWRtaW5BbHJlYWR5RXhpc3RzAAAAAASwAAAAAAAAAA1BZG1pbk5vdEZvdW5kAAAAAAAEsQAAAAAAAAASQWxyZWFkeU9uQWxsb3dsaXN0AAAAAASyAAAAAAAAABFBbHJlYWR5T25EZW55bGlzdAAAAAAABLMAAAAAAAAAG0F0dGVtcHRpbmdUb1JlbW92ZU9ubHlBZG1pbgAAAAS0AAAAAAAAABREZXBvc2l0QWRkcmVzc05vdFNldAAABLUAAAAAAAAAGk1lc3NhZ2VMaWJBbHJlYWR5U3VwcG9ydGVkAAAAAAS2AAAAAAAAABZNZXNzYWdlTGliTm90U3VwcG9ydGVkAAAAAAS3AAAAAAAAABBOb0FkbWluc1Byb3ZpZGVkAAAEuAAAAAAAAAAKTm90QWxsb3dlZAAAAAAEuQAAAAAAAAAOTm90T25BbGxvd2xpc3QAAAAABLoAAAAAAAAADU5vdE9uRGVueWxpc3QAAAAAAAS7AAAAAAAAABRQYXVzZVN0YXR1c1VuY2hhbmdlZAAABLwAAAAAAAAAD1ByaWNlRmVlZE5vdFNldAAAAAS9AAAAAAAAAAxSZUluaXRpYWxpemUAAAS+AAAAAAAAAAxVbmF1dGhvcml6ZWQAAAS/AAAAAAAAABVVbnN1cHBvcnRlZE1lc3NhZ2VMaWIAAAAAAATAAAAAAAAAABJXb3JrZXJGZWVMaWJOb3RTZXQAAAAABMEAAAAAAAAADldvcmtlcklzUGF1c2VkAAAAAATCAAAABQAAAAAAAAAAAAAACFNldEFkbWluAAAAAQAAAAlzZXRfYWRtaW4AAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABZTZXRTdXBwb3J0ZWRNZXNzYWdlTGliAAAAAAABAAAAGXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAAAAAACAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAAAAAAAAAAAJc3VwcG9ydGVkAAAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAADFNldEFsbG93bGlzdAAAAAEAAAANc2V0X2FsbG93bGlzdAAAAAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAAAAAAHYWxsb3dlZAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALU2V0RGVueWxpc3QAAAAAAQAAAAxzZXRfZGVueWxpc3QAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAAAAAABmRlbmllZAAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAABlBhdXNlZAAAAAAAAQAAAAZwYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlcgAAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAACFVucGF1c2VkAAAAAQAAAAh1bnBhdXNlZAAAAAEAAAAAAAAACHVucGF1c2VyAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAF1NldERlZmF1bHRNdWx0aXBsaWVyQnBzAAAAAAEAAAAac2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAEAAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAARU2V0RGVwb3NpdEFkZHJlc3MAAAAAAAABAAAAE3NldF9kZXBvc2l0X2FkZHJlc3MAAAAAAQAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAxTZXRQcmljZUZlZWQAAAABAAAADnNldF9wcmljZV9mZWVkAAAAAAABAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXU2V0U3VwcG9ydGVkT3B0aW9uVHlwZXMAAAAAAQAAABpzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAMb3B0aW9uX3R5cGVzAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAAD1NldFdvcmtlckZlZUxpYgAAAAABAAAAEnNldF93b3JrZXJfZmVlX2xpYgAAAAAAAQAAAAAAAAAHZmVlX2xpYgAAAAATAAAAAAAAAAIAAAABAAAA4VBhcmFtZXRlcnMgZm9yIERWTiBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIHZlcmlmaWNhdGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAAAgAAAAAAAAAAAAAADVdvcmtlclN0b3JhZ2UAAAAAAAALAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAAAAAAAAAAAA5EZXBvc2l0QWRkcmVzcwAAAAAAAAAAAAAAAAAJUHJpY2VGZWVkAAAAAAAAAAAAAAAAAAAMV29ya2VyRmVlTGliAAAAAAAAAAAAAAAURGVmYXVsdE11bHRpcGxpZXJCcHMAAAABAAAAAAAAABRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAEAAAAEAAAAAAAAAAAAAAALTWVzc2FnZUxpYnMAAAAAAQAAAAAAAAAJQWxsb3dsaXN0AAAAAAAAAQAAABMAAAABAAAAAAAAAAhEZW55bGlzdAAAAAEAAAATAAAAAAAAAAAAAAANQWxsb3dsaXN0U2l6ZQAAAAAAAAAAAAAAAAAABkFkbWlucwAAAIsBDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZiaW52ZXIAAAAAAAUwLjAuMQAAAAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIzLjQuMCM2NzNkNmM0ZjIzNjhkMjgyZDI1ZGEyOWJkYTU1YzIxYjhiZTY5Y2E2AAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABcAAAAA";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABzgEhYAJ+fgF+YAF+AX5gA35+fgF+YAABfmAEfn5+fgF+YAN/f38AYAF/AX5gA35+fgBgA39+fgBgAABgAAF/YAF/AGACf38AYAF/AX9gAn5+AX9gAn5+AGADfn5/AGACf34AYAF+AGACfn8AYAR/f39/AX5gAX4Bf2ACf38BfmAFfn9/f38AYAN+f38BfmACf38Bf2ADf35+AX5gA39/fgBgB35+fn5+fn4BfmAFf35/fn4AYAR+fn9/AX5gCX5+fn5+fn5+fgF+YAN/f38BfwKhAjABbAExAAABYQEwAAEBdgEzAAEBdgExAAABYgE4AAEBYgE2AAABYgFmAAIBYwEyAAIBYwExAAEBdgFkAAABdgEyAAABdgE2AAABeAExAAABdgFfAAMBeAE0AAMBaQEwAAEBdgE4AAEBeAE3AAMBeAEwAAABYgFlAAABYgEwAAEBYwEwAAIBbAFfAAIBbAEyAAABaQFfAAEBZAFfAAIBaQE4AAEBaQE3AAEBYgE0AAMBYgFfAAEBbAE2AAEBeAEzAAMBeAE4AAMBaQEzAAABaQE1AAEBaQE0AAEBYgEzAAABbQFhAAQBdgFnAAABYgFtAAIBaQE2AAABYgFqAAABYgEyAAQBbQE5AAIBbAEwAAABbAE4AAABeAE1AAEBbAE3AAQDqAGmAQUGBwgJCgsMDQoGDgMDDwoQAxEODA4SCQoFEQgTAxERCwUBFBIVEwMWCwwMCgwVDQsLFQoVCgYVEwwRFxEMCAIREQwYGQoRERENFhoBGwAAAAsLAAALABICABIAEhIDAQMBAwEDAQEDAwABAwMcHQgcDBYAAQMCHh8MDAYMEgsCAQsBAwwDAwAREhMBAwMBAwACAAARBgMMAwMJBRERBQYMBREMICAEBQFwAQEBBQMBABEGIQR/AUGAgMAAC38AQeCDwAALfwBB8IrAAAt/AEHwisAACwejBzcGbWVtb3J5AgAMX19jaGVja19hdXRoAG8Kc2V0X3BhdXNlZAB8CXNldF9hZG1pbgB+GXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAfw1zZXRfYWxsb3dsaXN0AIABDHNldF9kZW55bGlzdACDARpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwCEARNzZXRfZGVwb3NpdF9hZGRyZXNzAIYBGnNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAIgBEnNldF93b3JrZXJfZmVlX2xpYgCJAQ5zZXRfcHJpY2VfZmVlZACLAQZwYXVzZWQAjgEIaXNfYWRtaW4AjwEGYWRtaW5zAJABGGlzX3N1cHBvcnRlZF9tZXNzYWdlX2xpYgCRAQxtZXNzYWdlX2xpYnMAkgEPaXNfb25fYWxsb3dsaXN0AJMBDmFsbG93bGlzdF9zaXplAJQBDmlzX29uX2RlbnlsaXN0AJUBB2hhc19hY2wAlgEWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwCXAQ9kZXBvc2l0X2FkZHJlc3MAmAEaZ2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAmgEOd29ya2VyX2ZlZV9saWIAmwEKcHJpY2VfZmVlZACcAQdnZXRfZmVlAJ0BCmFzc2lnbl9qb2IAoAEOc2V0X2RzdF9jb25maWcAowEKZHN0X2NvbmZpZwCkAQN2aWQApQEOaGFzaF9jYWxsX2RhdGEApgENX19jb25zdHJ1Y3RvcgCoARJzZXRfYWRtaW5fYnlfYWRtaW4ArwEHdXBncmFkZQCwAQdtaWdyYXRlALIBBmZyZWV6ZQCzAQlpc19mcm96ZW4AtQEKYXV0aG9yaXplcgC2AQpzZXRfc2lnbmVyALcBDXNldF90aHJlc2hvbGQAuwELZ2V0X3NpZ25lcnMAvAENdG90YWxfc2lnbmVycwC9AQlpc19zaWduZXIAvgEJdGhyZXNob2xkAL8BEXZlcmlmeV9zaWduYXR1cmVzAMABE3ZlcmlmeV9uX3NpZ25hdHVyZXMAwQETZXh0ZW5kX2luc3RhbmNlX3R0bADCAQ9zZXRfdHRsX2NvbmZpZ3MAwwELdHRsX2NvbmZpZ3MAxgESZnJlZXplX3R0bF9jb25maWdzAMgBFWlzX3R0bF9jb25maWdzX2Zyb3plbgDJAQFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMKtbYBpgEiACAAELGAgIAAIAGtQiCGQgSEIAKtQiCGQgSEELKAgIAAC9EBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAKAIADgMAAQIACyABQY2CwIAAQQMQyYCAgAAgASgCAA0DIAEgASkDCBDKgICAAAwCCyABQZCCwIAAQQkQyYCAgAAgASgCAA0CIAEgASkDCCAANQIEQiCGQgSEEMuAgIAADAELIAFBmYLAgABBCBDJgICAACABKAIADQEgASABKQMIIAApAwgQy4CAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsRACAAQgEgASACEK+AgIAAGgs3AQF+QgAhAwJAAkAgAUICUQ0AIAGnQQFxDQEgACACNwMIQgEhAwsgACADNwMADwsQtICAgAAACwkAEMqBgIAAAAtYAQJ/I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALQQAQuICAgAAhASAAQRBqJICAgIAAIAFB/QFxCwwAIABBARDQgYCAAAsbACAArUIghkIEhCABrUIghkIEhBCtgICAABoLRwIBfwF+QQIhAQJAIAAQz4GAgAAiAkICELuAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIAELiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAAC0EAIQECQEEAELqAgIAAIgJCAhC7gICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQaaGwIAAQQYQyYCAgAAgASgCAA0DIAEgASkDCBDKgICAAAwCCyABQayGwIAAQQgQyYCAgAAgASgCAA0CIAEgASkDCBDKgICAAAwBCyABQbSGwIAAQQoQyYCAgAAgASgCAA0BIAEgASkDCBDKgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCsgICAAEIBUQsVAQF+EL2AgIAAIgAQgYCAgAAaIAALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEJGAgIAAIQEgAEEQaiSAgICAACABC1gBAX8jgICAgABBEGsiAiSAgICAACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgACABEL+AgIAAEMCAgIAAIAJBEGokgICAgAALRgIBfwF+QQAhAAJAAkBBARCrgYCAACIBQgIQu4CAgABFDQAgAUICEICAgIAAIgFC/wGDQgRSDQEgAUIgiKchAAsgAA8LAAuSBQQBfwV+An8BfiOAgICAAEEwayIDJICAgIAAIANBIGoQtoCAgAACQCADKAIgQQFHDQAgAygCJCADKAIoELeAgIAACwJAAkACQAJAAkACQCACRQ0AIAIgARCCgICAAEIgiKdLDQEQwYCAgAAhBCABEIKAgIAAQiCIIQVCACEGQQAhAgJAA0AgBiAFUQ0FAkAgASAGQiCGQgSEEIOAgIAAIgdC/wGDQsgAUg0AIAcQhICAgAAhCCAGQv////8PUQ0CIAhCgICAgHCDQoCAgICQCFINAiAHEISAgIAAQv////+PCFgNBSAHQoSAgICACBCFgICAACEIIAdCBEKEgICAgAgQhoCAgAAiBxCEgICAAEKAgICAcINCgICAgIAIUg0CIANBIGogACAHIAhCIIinIglBZWoiCiAJIApB/wFxQQRJG61C/wGDQiCGQgSEEIeAgIAAQoSAgIAQQoSAgICQCBCGgICAABCIgICAAEKEgICAwAFChICAgIAEEIaAgIAAEMKAgIAAIAMoAiBBAUYNAiADKQMoIQcCQCACQQFxRQ0AIAcgCxDDgICAAEEYdEEYdUEATA0ICyAEEIKAgIAAIQggA0EANgIIIAMgBDcDACADIAhCIIg+AgwDQCADQSBqIAMQxICAgAAgA0EQaiADKQMgIAMpAygQs4CAgAAgAygCEEEBRw0JIAMpAxggBxDFgICAAEUNAAsgBkIBfCEGQQEhAiAHIQsMAQsLIAZC/////w9SGgsQtICAgAAAC0KDgICAsIUBEMaAgIAAAAtCg4CAgOCEARDGgICAAAALEMeAgIAAAAsgA0EwaiSAgICAAA8LQoOAgICghQEQxoCAgAAAC0KDgICAgIUBEMaAgIAAAAuNAQQBfwF+AX8BfiOAgICAAEEQayIAJICAgIAAAkACQEEAEKuBgIAAIgFCARC7gICAACICRQ0AIAFCARCAgICAACIDQv8Bg0LLAFINASAAQQRqENCAgIAAIAAoAgRFDQAgACgCCCAAKAIMEKyBgIAACxCNgICAACEBIABBEGokgICAgAAgAyABIAIbDwsACzYBAX5CASECAkAgARCEgICAAEKAgICAcINCgICAgMACUg0AIAAgATcDCEIAIQILIAAgAjcDAAsXACAAIAEQkoCAgAAiAUIAVSABQgBTawuRAQICfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIAEoAggiAyABKAIMSQ0AIABCAjcDAAwBCyACIAEpAwAgA61CIIZCBIQQg4CAgAAQuIGAgAACQCADQQFqIgNFDQAgAikDACEEIAAgAikDCDcDCCAAIAQ3AwAgASADNgIIDAELELSAgIAAAAsgAkEQaiSAgICAAAsRACAAIAEQw4CAgABB/wFxRQsLACAAEK6AgIAAGgsJABC0gICAAAALUgECfyOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAACxC/gICAACEBIABBEGokgICAgAAgAQtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhDLgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQooGAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEKKBgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC80CAwF/An4BfyOAgICAAEEwayICJICAgIAAEM2AgIAAIgMgABCJgICAACEEAkACQAJAAkACQCABDQAgAkEIaiAEEM6AgIAAIAIoAggiBUECRg0BIAVBAXFFDQIgAigCDCIFIAMQgoCAgABCIIinTw0EIAMgBa1CIIZCBIQQioCAgAAhAwwECyAEQgJRDQJCg4CAgICWARDGgICAAAALELSAgIAAAAtCg4CAgJCWARDGgICAAAALIAMgABCLgICAACEDCyACQQE2AiAgAkEgaiADEM+AgIAAIAJBFGoQ0ICAgAACQCACKAIUQQFHDQAgAkEgaiACKAIYIAIoAhwQ0YCAgAALQo7mrrnqjOTVOBDSgICAACEDIAIgADcDKCACIAGtNwMgIANB1IbAgABBAiACQSBqQQIQ04CAgAAQjICAgAAaIAJBMGokgICAgAALqQECAX8DfiOAgICAAEEwayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQE2AgAgAEEQaiAAENuAgIAAAkAgACkDECIBUA0AIABBJGoQ0ICAgAAgACgCJEEBRw0AIAAgACgCKCAAKAIsENGAgIAACxCNgICAACECIAApAxghAyAAQTBqJICAgIAAIAMgAiABpxsLPQECfwJAAkAgAUICUg0AQQAhAgwBC0EBQQIgAUL/AYNCBFEbIQIgAUIgiKchAwsgACADNgIEIAAgAjYCAAsVACAAEOaAgIAAIAFCARCWgICAABoLDAAgAEECENCBgIAACyIAIAAQ5oCAgAAgAa1CIIZCBIQgAq1CIIZCBIQQsoCAgAALYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKKBgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQq4CAgAALJwAgABCBgICAABoCQCAAENWAgIAADQBCg4CAgMCXARDGgICAAAALC10BAX8jgICAgABBEGsiASSAgICAACABQQRqELaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC3gICAAAsQzYCAgAAgABCJgICAACEAIAFBEGokgICAgAAgAEICUgvRAgMBfwJ+AX8jgICAgABBMGsiAiSAgICAABDXgICAACIDIAAQiYCAgAAhBAJAAkACQAJAAkAgAQ0AIAJBCGogBBDOgICAACACKAIIIgVBAkYNASAFQQFxRQ0CIAIoAgwiBSADEIKAgIAAQiCIp08NBCADIAWtQiCGQgSEEIqAgIAAIQMMBAsgBEICUQ0CQoOAgIDQlgEQxoCAgAAACxC0gICAAAALQoOAgIDglgEQxoCAgAAACyADIAAQi4CAgAAhAwsgAkECNgIgIAJBIGogAxDPgICAACACQRRqENCAgIAAAkAgAigCFEEBRw0AIAJBIGogAigCGCACKAIcENGAgIAAC0HkhsCAAEEZENiAgIAAENKAgIAAIQMgAiABrTcDKCACIAA3AyAgA0GUh8CAAEECIAJBIGpBAhDTgICAABCMgICAABogAkEwaiSAgICAAAupAQIBfwN+I4CAgIAAQTBrIgAkgICAgAAgAEEQahC2gICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQt4CAgAALIABBAjYCACAAQRBqIAAQ24CAgAACQCAAKQMQIgFQDQAgAEEkahDQgICAACAAKAIkQQFHDQAgACAAKAIoIAAoAiwQ0YCAgAALEI2AgIAAIQIgACkDGCEDIABBMGokgICAgAAgAyACIAGnGwtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARDLgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLVgEBfyOAgICAAEEQayIBJICAgIAAIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQo2AgAgACABENqAgIAAIAFBEGokgICAgAALTQECfkIAIQICQAJAIAEQ5oCAgAAiA0ICELuAgIAARQ0AIANCAhCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALTQECfkIAIQICQAJAIAEQ5oCAgAAiA0IBELuAgIAARQ0AIANCARCAgICAACICQv8Bg0LLAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALdwEDfyOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQQ2AhAgAEEIaiAAQRBqEN2AgIAAIAAoAgghASAAKAIMIQIgAEEgaiSAgICAACACQQAgAUEBcRsLWgIBfgF/AkACQAJAIAEQ5oCAgAAiAkICELuAgIAADQBBACEBDAELIAJCAhCAgICAACICQv8Bg0IEUg0BIAJCIIinIQNBASEBCyAAIAM2AgQgACABNgIADwsAC4wBAQJ/I4CAgIAAQSBrIgEkgICAgAAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALIAFBBTYCACABIAA3AwgCQCABEN+AgIAAIgJFDQAgAUEUahDQgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQ0YCAgAALIAFBIGokgICAgAAgAgsSACAAEOaAgIAAQgEQu4CAgAALVgEBfyOAgICAAEEQayIBJICAgIAAIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQk2AgAgACABENqAgIAAIAFBEGokgICAgAALVgEBfyOAgICAAEEQayIBJICAgIAAIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQc2AgAgACABENqAgIAAIAFBEGokgICAgAALjAEBAn8jgICAgABBIGsiASSAgICAACABELaAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC3gICAAAsgAUEDNgIAIAEgADcDCAJAIAEQ34CAgAAiAkUNACABQRRqENCAgIAAIAEoAhRBAUcNACABIAEoAhggASgCHBDRgICAAAsgAUEgaiSAgICAACACC3cBA38jgICAgABBIGsiACSAgICAACAAQRBqELaAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC3gICAAAsgAEEGNgIQIABBCGogAEEQahDdgICAACAAKAIIIQEgACgCDCECIABBIGokgICAgAAgAkEAIAFBAXEbC10BAX8jgICAgABBEGsiASSAgICAACABQQRqELaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC3gICAAAsQ14CAgAAgABCJgICAACEAIAFBEGokgICAgAAgAEICUguPAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgABC2gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQt4CAgAALQQAhASAAQQA2AgACQCAAEOaAgIAAIgJCAhC7gICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELpgQCAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIADgsAAQIDBAUGBwgJCgALIAFB8InAgABBBhDJgICAACABKAIADQsgASABKQMIEMqAgIAADAoLIAFB9onAgABBBhDJgICAACABKAIADQogASABKQMIEMqAgIAADAkLIAFB/InAgABBCxDJgICAACABKAIADQkgASABKQMIEMqAgIAADAgLIAFBh4rAgABBCRDJgICAACABKAIADQggASABKQMIIAApAwgQy4CAgAAMBwsgAUGQisCAAEENEMmAgIAAIAEoAgANByABIAEpAwgQyoCAgAAMBgsgAUGdisCAAEEIEMmAgIAAIAEoAgANBiABIAEpAwggACkDCBDLgICAAAwFCyABQaWKwIAAQRQQyYCAgAAgASgCAA0FIAEgASkDCBDKgICAAAwECyABQbmKwIAAQQ4QyYCAgAAgASgCAA0EIAEgASkDCBDKgICAAAwDCyABQceKwIAAQRQQyYCAgAAgASgCAA0DIAEgASkDCCAANQIEQiCGQgSEEMuAgIAADAILIAFB24rAgABBDBDJgICAACABKAIADQIgASABKQMIEMqAgIAADAELIAFB54rAgABBCRDJgICAACABKAIADQEgASABKQMIEMqAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILfAECfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELeAgIAACwJAAkAgABDegICAAEUNAEEAIQIMAQsCQBDcgICAAA0AQQEhAgwBCyAAEOKAgIAAIQILIAFBEGokgICAgAAgAgspAAJAIACnQQFxRQ0ADwsgAUHQdmqtQiCGQoOAgICAlgGEEMaAgIAAAAtpAgF/AX4CQCABKAIIIgIgASgCDEkNACAAQgI3AwAPCyABKQMAIAKtQiCGQgSEEIOAgIAAIQMCQCACQQFqIgJFDQAgACADNwMIIAEgAjYCCCAAIANC/wGDQs0AUq03AwAPCxC0gICAAAALlQICAn8EfiOAgICAAEHAAGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUG4gcCAAEEDIAJBCGpBAxDrgICAACACQSBqIAIpAwgQ7ICAgAAgAigCIEEBRg0AIAIpAzghASACKQMwIQYgAkEgaiACKQMQEOyAgIAAIAIoAiBBAUYNACACKQMYIgdC/wGDQgRSDQAgAikDOCEEIAIpAzAhBSAAIAY3AyAgACAFNwMQIAAgATcDKCAAIAQ3AxggACAHQiCIPgIwQgAhBUIAIQQLIAAgBTcDACAAIAQ3AwggAkHAAGokgICAgAALMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEKWAgIAAGgt7AgF/AX4CQAJAAkAgAadB/wFxIgJBxABGDQAgAkEKRw0BQgAhAyAAQgA3AxggACABQgiINwMQDAILIAEQooCAgAAhAyABEKOAgIAAIQEgACADNwMYIAAgATcDEEIAIQMMAQsgAEKDkICAgAE3AwhCASEDCyAAIAM3AwALrgECAX8CfiOAgICAAEEgayICJICAgIAAIAJBCGogASkDECABKQMYEO6AgIAAQgEhAwJAIAIoAggNACACKQMQIQQgAkEIaiABKQMAIAEpAwgQ7oCAgAAgAigCCA0AIAIgAikDEDcDECACIAQ3AwggAiABNQIgQiCGQgSENwMYIABBuIHAgABBAyACQQhqQQMQ04CAgAA3AwhCACEDCyAAIAM3AwAgAkEgaiSAgICAAAtGAAJAAkAgAUL//////////wBWIAJCAFIgAlAbDQAgAUIIhkIKhCECDAELIAIgARChgICAACECCyAAQgA3AwAgACACNwMIC5ESCAF/AX4BfwN+An8BfgF/A34jgICAgABBwABrIgMkgICAgAAgA0EQaiAAEPCAgIAAAkAgAygCEEEBRg0AIAMpAxghBEEAIQUCQANAIAVBIEYNASADQRBqIAVqQgI3AwAgBUEIaiEFDAALCyABQv8Bg0LMAFINACABQZiBwIAAQQQgA0EQakEEEOuAgIAAIANBMGogAykDEBDxgICAACADKAIwDQAgAykDGCIBQv8Bg0LLAFINACADKQM4IQYgARCCgICAACEAIANBADYCCCADIAE3AwAgAyAAQiCIPgIMIANBMGogAxDygICAACADKQMwIgFCAlENACABp0EBcQ0AAkAgAykDOCIBp0H/AXEiBUHKAEYNACAFQQ5HDQELAkACQAJAIAFB8IDAgABBAhDzgICAAEIgiKcOAgABAwsgAygCCCADKAIMEPSAgIAADQJBACEFDAELIAMoAgggAygCDBD0gICAAEECSw0BIANBMGogAxDygICAACADKQMwIgFCAlENASABp0EBcQ0BIANBMGogAykDOBDwgICAACADKAIwDQEgAykDOCEHIANBMGogAxDygICAACADKQMwIgFCAlENASABp0EBcQ0BIAMpAzgiAEL/AYNCyABSDQFBASEFIAAQhICAgABCgICAgHCDQoCAgICACFINAQsgAykDICIIQv8Bg0LLAFINACADKQMoIgFC/wGDQgRSDQAgAkL/AYNCywBSDQAgAUIgiKchCSADQRBqELaAgIAAAkAgAygCEEEBRw0AIAMoAhQgAygCGBC3gICAAAsCQAJAAkAQ9YCAgAAgCUYNAEKDgICAwAAhAQwBCwJAAkAQjoCAgAAiAadB/wFxIgpBBkYNACAKQcAARw0DIAEQj4CAgAAhAQwBCyABQgiIIQELAkAgBiABVg0AQoOAgIAQIQEMAQsCQAJAIAIQgoCAgABCgICAgHCDQoCAgIAQUg0AIAIQgoCAgABCgICAgBBUDQAgAhCQgICAACIBQv8Bg0LLAFINBCABEIKAgIAAIQsgA0EANgIIIAMgATcDACADIAtCIIg+AgwgA0EQaiADEPKAgIAAIAMpAxAiAUICUQ0EIAGnQQFxDQQCQCADKQMYIgGnQf8BcSIKQcoARg0AIApBDkcNBQsCQAJAAkACQCABQbCAwIAAQQMQ84CAgABCIIinDgMAAQIICyADKAIIIAMoAgwQ9ICAgABBAUsNByADQTBqIAMQ8oCAgAAgAykDMCIBQgJRDQcgAadBAXENByADQRBqIAMpAzgQ9oCAgAAgAygCEEEBRg0HIAMpAyAhASADKQMYEJGAgIAAEJKAgIAAQgBSDQNBhILAgABBCRDYgICAACELAkAgAUL/AYNCDlINACALQv8Bg0IOUQ0DCyABIAsQkoCAgABQDQQMAwsgAygCCCADKAIMEPSAgIAAQQFLDQYgA0EwaiADEPKAgIAAIAMpAzAiAUICUQ0GIAGnQQFxDQYgA0EQaiADKQM4EPeAgIAAIAMoAhBFDQIMBgsgAygCCCADKAIMEPSAgIAAQQFLDQUgA0EwaiADEPKAgIAAIAMpAzAiAUICUQ0FIAGnQQFxDQUgA0EQaiADKQM4EPiAgIAAIAMoAhBFDQEMBQsgAyALQgiINwMQIAMgAUIIiDcDMAJAA0AgA0EwahD5gICAACEKIANBEGoQ+YCAgAAhDCAKQYCAxABGDQEgCiAMRw0CDAALCyAMQYCAxABGDQELQoOAgIDgACEBIAVFDQFB4IPAgABBDBD6gICAACAHEJOAgIAAEJSAgIAAIgtC/wGDQs0AUg0DIAsQ1YCAgABFDQEgByAEIAAQlYCAgAAaCxCNgICAACENIAIQgoCAgABCIIghDkIAIQFCBCEAAkADQCAOIAFRDQECQAJAIAIgABCDgICAACIHQv8Bg0LLAFINAEEAIQogBxCCgICAACEEIANBADYCCCADIAc3AwAgAyAEQiCIPgIMIANBEGogAxDygICAAEEBIQUCQAJAIAMpAxAiB0ICUQ0AQQEhBSAHp0EBcQ0AAkAgAykDGCIPp0H/AXEiDEHKAEYNACAMQQ5HDQELAkACQAJAIA9BsIDAgABBAxDzgICAAEIgiKcOAwABAgQLQQEhBSADKAIIIAMoAgwQ9ICAgABBAUsNAiADQTBqIAMQ8oCAgAAgAykDMCIHQgJRDQIgB6dBAXENAiADQRBqIAMpAzgQ9oCAgAAgAygCEA0CIAMpAyghByADKQMgIQQgAykDGCELQQEhCkEAIQUMAwtBASEFIAMoAgggAygCDBD0gICAAEEBSw0BIANBMGogAxDygICAACADKQMwIgdCAlENASAHp0EBcQ0BIANBEGogAykDOBD3gICAACADKAIQDQEgAykDICEEIAMpAxghC0EAIQVBACEKDAILQQEhBSADKAIIIAMoAgwQ9ICAgABBAUsNACADQTBqIAMQ8oCAgAAgAykDMCIHQgJRDQAgB6dBAXENACADQRBqIAMpAzgQ+ICAgAAgAygCEA0AIAMpAyghByADKQMgIQQgAykDGCELQQAhBUEAIQoMAQsLIAFC/////w9RDQUgBQ0FIAoNAUKDgICA0AAhAQwECyABQv////8PUhoMBAsgAyALNwMgIAMgBDcDGCADIAc3AxAgAEKAgICAEHwhACABQgF8IQEgDUHsgcCAAEEDIANBEGpBAxDTgICAABCLgICAACENDAALCyAJIAYgDRD7gICAACEBIANBAjYCECADIAE3AxgCQCADQRBqELGAgIAAIgJCARC7gICAAEUNAEEBIQUCQAJAIAJCARCAgICAAKdB/wFxDgIAAQULQQAhBQsgA0EwahDQgICAAAJAIAMoAjBBAUcNACADQRBqIAMoAjQgAygCOBCwgICAAAsgBUUNAEKDgICAMCEBDAELIANBAjYCECADIAE3AxggA0EQahCxgICAAEIBQgEQloCAgAAaIANBMGoQ0ICAgAACQCADKAIwQQFHDQAgA0EQaiADKAI0IAMoAjgQsICAgAALIAEgCBC+gICAAEICIQELIANBwABqJICAgIAAIAEPCxC0gICAAAALAAtCAQF+QgEhAgJAIAFC/wGDQsgAUg0AIAEQhICAgABCgICAgHCDQoCAgICABFINACAAIAE3AwhCACECCyAAIAI3AwALXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCPgICAACEBCyAAIAM3AwAgACABNwMIC0oCAX4Bf0ICIQICQCABKAIIIgMgASgCDE8NACAAIAEpAwAgA61CIIZCBIQQg4CAgAA3AwggASADQQFqNgIIQgAhAgsgACACNwMACxwAIAAgAa1CIIZCBIQgAq1CIIZCBIQQp4CAgAALGQACQCABIABJDQAgASAAaw8LELSAgIAAAAuMAQIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABC2gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQt4CAgAALIABBADYCAAJAAkAgABCxgICAACIBQgIQu4CAgABFDQAgAUICEICAgIAAIgFC/wGDQgRRDQEACxDHgICAAAALIABBEGokgICAgAAgAUIgiKcL0wECAn8DfiOAgICAAEEgayICJICAgIAAQQAhAwJAA0AgA0EYRg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFBhITAgABBAyACQQhqQQMQ64CAgAAgAikDCCIBQv8Bg0LLAFINACACKQMQIgVC/wGDQs0AUg0AAkAgAikDGCIGp0H/AXEiA0HKAEYNACADQQ5HDQELIAAgATcDGCAAIAY3AxAgACAFNwMIQgAhBAsgACAENwMAIAJBIGokgICAgAALvgECAn8BfiOAgICAAEEgayICJICAgIAAQQAhAwJAA0AgA0EQRg0BIAIgA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFBrITAgABBAiACQQIQ64CAgAAgAkEQaiACKQMAEMyBgIAAIAIoAhANACACKQMYIQEgAkEQaiACKQMIEPCAgIAAIAIoAhANACAAIAIpAxg3AxAgACABNwMIQgAhBAsgACAENwMAIAJBIGokgICAgAAL4AECAn8CfiOAgICAAEEwayICJICAgIAAQQAhAwJAA0AgA0EYRg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFBzITAgABBAyACQQhqQQMQ64CAgAAgAikDCCIBQv8Bg0LLAFINACACQSBqIAIpAxAQzIGAgAAgAigCIA0AIAIpAyghBSACQSBqIAIpAxgQ8ICAgAAgAigCIA0AIAIpAyghBCAAIAE3AxggACAENwMQIAAgBTcDCEIAIQQLIAAgBDcDACACQTBqJICAgIAAC5YBAgF+An8gACkDACEBA0ACQCABUEUNAEGAgMQADwsCQAJAIAFCMIinQT9xIgJBAUcNAEHfACECDAELAkACQAJAIAJBf2pBC08NAEEuIQMMAQsCQCACQXRqQRpPDQBBNSEDDAELIAJBJU0NAUE7IQMLIAIgA2ohAgwBCyAAIAFCBoYiATcDAAwBCwsgACABQgaGNwMAIAILGgAgAK1CIIZCBIQgAa1CIIZCBIQQpICAgAALowICAX8BfiOAgICAAEEQayIDJICAgIAAIAMQtoCAgAACQCADKAIAQQFHDQAgAygCBCADKAIIELeAgIAACxCcgICAACEEIAMgAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AgAgBCAEEISAgIAAQoCAgIBwg0IEhCADQQQQp4GAgAAhBCADIAFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwAgBCAEEISAgIAAQoCAgIBwg0IEhCADQQgQp4GAgAAgAhCdgICAABCTgICAABCIgICAACEBIANBEGokgICAgAAgAQudAgICfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACxC8gICAACEAEOWAgIAAIAJzQQFxRQ0BIAFBADYCACABIAJCAhD9gICAAAJAAkAgAkEBcQ0AQo7SqtzurM/1ABDSgICAACEDIAEgADcDACADQYiIwIAAQQEgAUEBENOAgIAAEIyAgIAAGgwBC0KO0qrc7qwDENKAgIAAIQMgASAANwMAIANB+IfAgABBASABQQEQ04CAgAAQjICAgAAaCyABQRBqJICAgIAAQgIPCwALQoOAgICglwEQxoCAgAAACxoAIAAQ5oCAgAAgAa1C/wGDIAIQloCAgAAaC40BAQJ/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsQvICAgAAaIAAgA0EBcRDMgICAACACQRBqJICAgIAAQgIPCwALjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQtoCAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELeAgIAACxC8gICAABogACADQQFxENaAgIAAIAJBEGokgICAgABCAg8LAAujAwEDfyOAgICAAEEgayICJICAgIAAAkACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALELyAgIAAGiAAEOKAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBAzYCECACIAA3AxggAkEQahDmgICAAEIBEJeAgIAAGhDcgICAACIERQ0FIARBf2ohBAwBCyAEDQMgAkEDNgIQIAIgADcDGCACQRBqEIGBgIAAIAJBBGoQ0ICAgAACQCACKAIEQQFHDQAgAkEQaiACKAIIIAIoAgwQ0YCAgAALENyAgIAAQQFqIgRFDQQLIAQQgoGAgABBpIfAgABBDRDYgICAABDSgICAACEBIAIgADcDGCACIAOtNwMQIAFBvIfAgABBAiACQRBqQQIQ04CAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgICXARDGgICAAAALQoOAgICglgEQxoCAgAAACxC0gICAAAALDgAgAEEBQgEQ/YCAgAALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBBDYCACABIAAQ04GAgAAgAUEQaiSAgICAAAvuAgEDfyOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBEGoQtoCAgAACQCACKAIQQQFHDQAgAigCFCACKAIYELeAgIAACxC8gICAABogABDegICAACEEAkACQCADQQFxDQAgBEUNAyACQQU2AhAgAiAANwMYIAJBEGoQ5oCAgABCARCXgICAABoMAQsgBA0DIAJBBTYCECACIAA3AxggAkEQahCBgYCAACACQQRqENCAgIAAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDRgICAAAtBzIfAgABBDBDYgICAABDSgICAACEBIAIgADcDGCACIAOtNwMQIAFB4IfAgABBAiACQRBqQQIQ04CAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgJCXARDGgICAAAALQoOAgICwlgEQxoCAgAAAC3oBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEEahC2gICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQt4CAgAALIAAQ1ICAgAAgAUIgiKcQhYGAgAAgAkEQaiSAgICAAEICDwsAC3ICAX8BfiOAgICAAEEQayIBJICAgIAAIAFBBjYCACABIAAQ04GAgABBkIjAgABBGhDYgICAABDSgICAACECIAEgAK1CIIZCBIQ3AwAgAkG4iMCAAEEBIAFBARDTgICAABCMgICAABogAUEQaiSAgICAAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhC2gICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQt4CAgAALIAAQ1ICAgAAgARCHgYCAAEHAiMCAAEETENiAgIAAENKAgIAAIQAgAiABNwMAIABB5IjAgABBASACQQEQ04CAgAAQjICAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEHNgIAIAEgABDSgYCAACABQRBqJICAgIAAC5cCAQF/I4CAgIAAQSBrIgMkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJC/wGDQsgAUg0AIANBEGoQtoCAgAACQCADKAIQQQFHDQAgAygCFCADKAIYELeAgIAACyAAENSAgIAAIANBCDYCECADIAFCIIg+AhQgA0EQahDmgICAACACQgEQloCAgAAaIANBBGoQ0ICAgAACQCADKAIEQQFHDQAgA0EQaiADKAIIIAMoAgwQ0YCAgAALQYyJwIAAQRoQ2ICAgAAQ0oCAgAAhACADIAI3AxggAyABQoSAgIBwgzcDECAAQbyJwIAAQQIgA0EQakECENOAgIAAEIyAgIAAGiADQSBqJICAgIAAQgIPCwALrAEBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAIQtoCAgAACQCACKAIAQQFHDQAgAigCBCACKAIIELeAgIAACyAAENSAgIAAIAEQioGAgABBzInAgABBEhDYgICAABDSgICAACEAIAIgATcDACAAQeiJwIAAQQEgAkEBENOAgIAAEIyAgIAAGiACQRBqJICAgIAAQgIPCwALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBCTYCACABIAAQ0oGAgAAgAUEQaiSAgICAAAt/AQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgABDUgICAACABEIyBgIAAIAEQjYGAgAAgAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQo2AgAgASAAENKBgIAAIAFBEGokgICAgAALXQIBfwF+I4CAgIAAQRBrIgEkgICAgABB7IjAgABBDhDYgICAABDSgICAACECIAEgADcDCCACQYSJwIAAQQEgAUEIakEBENOAgIAAEIyAgIAAGiABQRBqJICAgIAACwkAEOWAgIAArQsbAAJAIABC/wGDQs0AUQ0AAAsgABDVgICAAK0LCAAQzYCAgAALGwACQCAAQv8Bg0LNAFENAAALIAAQ5ICAgACtCwgAENeAgIAACxsAAkAgAEL/AYNCzQBRDQAACyAAEOKAgIAArQsPABDcgICAAK1CIIZCBIQLGwACQCAAQv8Bg0LNAFENAAALIAAQ3oCAgACtCxsAAkAgAEL/AYNCzQBRDQAACyAAEOeAgIAArQsPABDjgICAAK1CIIZCBIQLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDhgICAACAAKQMAIAAp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gICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQbuFwIAAQQkQyYCAgAAgASgCAA0CIAEgASkDCBDKgICAAAwBCyABQbSFwIAAQQcQyYCAgAAgASgCAA0BIAEgASkDCBDKgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCyIAQQAQq4GAgAAgAK1CIIZCBIQgAa1CIIZCBIQQsoCAgAAL3wECAX8CfiOAgICAAEEwayIBJICAgIAAAkACQCAAQeyEwIAAQRQQ+oCAgAAQxYCAgAANABDBgICAACICEIKAgIAAIQMgAUEANgIIIAEgAjcDACABIANCIIg+AgwDQCABQSBqIAEQxICAgAAgAUEQaiABKQMgIAEpAygQs4CAgAAgASgCEEEBRw0CIAEpAxggABDFgICAAEUNAAtCg4CAgPCEARDGgICAAAALQoOAgIDQhAEQxoCAgAAACyACIAAQi4CAgAAQuYGAgAAgAEEBELqBgIAAIAFBMGokgICAgAALuAECAX8CfiOAgICAAEEQayIBJICAgIAAAkACQCAARQ0AIAAQwYCAgAAQgoCAgABCIIinSw0BQQEQq4GAgAAgAK1CIIZCBIQiAkICEJaAgIAAGkGUhcCAAEENENiAgIAAENKAgIAAIQMgASACNwMIIANBrIXAgABBASABQQhqQQEQ04CAgAAQjICAgAAaIAFBEGokgICAgAAPC0KDgICAsIUBEMaAgIAAAAtCg4CAgJCFARDGgICAAAALmgEBAn8jgICAgABBEGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBEECRg0AIANBBGoQtoCAgAACQCADKAIEQQFHDQAgAygCCCADKAIMELeAgIAACyAAENSAgIAAIAEgBEEBcRDMgICAACADQRBqJICAgIAAQgIPCwALmQEBAX8jgICAgABBEGsiASSAgICAACABIAAQ8ICAgAACQAJAIAEoAgBBAUYNACABKQMIIQAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALELyAgIAAGhC1gICAAA0BQQEQsYGAgAAgABCegICAABogAUEQaiSAgICAAEICDwsAC0KDgICAwIMBEMaAgIAAAAsMAEEBIAAQtIGAgAALrgEBAX8jgICAgABBEGsiASSAgICAAAJAAkACQCAAQv8Bg0LIAFINACABQQRqELaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC3gICAAAsQvICAgAAaQQEQuICAgABB/QFxRQ0BIAAQlICAgABC/wGDQgJSDQJBABCxgYCAACABQRBqJICAgIAAQgIPCwALQoOAgICwgwEQxoCAgAAAC0KDgICAoIMBEMaAgIAAAAtbAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALELyAgIAAGkEAQQEQtIGAgAAgAEEQaiSAgICAAEICCxoAIAAQz4GAgAAgAa1C/wGDQgIQloCAgAAaCwkAELWAgIAArQsIABC9gICAAAvcAgICfwF+I4CAgIAAQSBrIgIkgICAgAAgAkEQaiAAELiBgIAAAkACQAJAAkAgAigCEEEBRg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAIpAxghACACQRBqELaAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC3gICAAAsQvICAgAAaAkACQCADQQFxDQAgAkEIahDBgICAACIBIAAQiYCAgAAQzoCAgAAgAigCCCIDQQJGDQMgA0UNBAJAIAIoAgwiAyABEIKAgIAAQiCIp08NACABIAOtQiCGQgSEEIqAgIAAIQELIAEQgoCAgAAhBBC/gICAACAEQiCIp0sNBSABELmBgIAAIABBABC6gYCAAAwBCyAAEK2BgIAACyACQSBqJICAgIAAQgIPCwALELSAgIAAAAtCg4CAgICFARDGgICAAAALQoOAgICQhQEQxoCAgAAACyMAAkAgAUL/AYNCyABRDQAgAEIBNwMADwsgACABEMKAgIAAC1sBAX8jgICAgABBEGsiASSAgICAAEEAEKuBgIAAIABCARCWgICAABogAUEEahDQgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrIGAgAALIAFBEGokgICAgAAL0AEDAX8BfgF/I4CAgIAAQSBrIgIkgICAgABBgIXAgABBChDYgICAACEDIAIgADcDCCACIAM3AwBBACEEA0ACQCAEQRBHDQBBACEEAkADQCAEQRBGDQEgAkEQaiAEaiACIARqKQMANwMAIARBCGohBAwACwsgAkEQakECEKKBgIAAIQAgAiABrUL/AYM3AxAgAEGMhcCAAEEBIAJBEGpBARDTgICAABCMgICAABogAkEgaiSAgICAAA8LIAJBEGogBGpCAjcDACAEQQhqIQQMAAsLbQEBfyOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCBFINACABQQRqELaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC3gICAAAsQvICAgAAaIABCIIinEK6BgIAAIAFBEGokgICAgABCAg8LAAtUAgF/AX4jgICAgABBEGsiACSAgICAACAAQQRqELaAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC3gICAAAsQwYCAgAAhASAAQRBqJICAgIAAIAELZAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEMGAgIAAEIKAgIAAIQEgAEEQaiSAgICAACABQoCAgIBwg0IEhAvcAQIBfwJ+I4CAgIAAQTBrIgEkgICAgAAgAUEgaiAAELiBgIAAAkAgASgCIEEBRg0AIAEpAyghAiABQSBqELaAgIAAAkAgASgCIEEBRw0AIAEoAiQgASgCKBC3gICAAAsQwYCAgAAiABCCgICAACEDIAFBADYCCCABIAA3AwAgASADQiCIPgIMAkADQCABQSBqIAEQxICAgAAgAUEQaiABKQMgIAEpAygQs4CAgAAgASkDECIAp0EBRw0BIAEpAxggAhDFgICAAEUNAAsLIAFBMGokgICAgAAgAA8LAAsPABDIgICAAK1CIIZCBIQLVAEBfyOAgICAAEEQayICJICAgIAAIAIgABDwgICAAAJAIAIoAgBBAUYNACABQv8Bg0LLAFINACACKQMIIAEQvoCAgAAgAkEQaiSAgICAAEICDwsAC2UBAX8jgICAgABBEGsiAySAgICAACADIAAQ8ICAgAACQCADKAIAQQFGDQAgAUL/AYNCywBSDQAgAkL/AYNCBFINACADKQMIIAEgAkIgiKcQwICAgAAgA0EQaiSAgICAAEICDwsACzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinELeAgIAAQgIPCwALhwUBBX8jgICAgABB0ABrIgIk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AAAAlAAQAAMAAABfARAAEAAAAG8BEAADAAAAKgQQAA4AAABjb25maWcAANAAEAAGAAAApgQQAAcAAABmdW5j8AEQAAQAAADoABAABAAAACcBEAACAAAAc2V0X2FkbWluVmlkRHN0Q29uZmlnVXNlZEhhc2hhbW91bnR0bwAAACEBEAAGAAAAJwEQAAIAAABjb25maXJtYXRpb25zZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc2Zsb29yX21hcmdpbl91c2RnYXNvcHRpb25zcXVvcnVtc2VuZGVyAAAAPAEQAA0AAABJARAAFgAAAKYEEAAHAAAAXwEQABAAAABvARAAAwAAACoEEAAOAAAAcgEQAAcAAAB6BBAACgAAAHkBEAAGAAAAfwEQAAYAAABDb250cmFjdAAAABIAAAAAAAAAAFdhc21hcmdzY29udHJhY3Rmbl9uYW1lAPABEAAEAAAA9AEQAAgAAAD8ARAABwAAAGV4ZWN1dGFibGVzYWx0AAAcAhAACgAAACYCEAAEAAAAY29uc3RydWN0b3JfYXJnczwCEAAQAAAAHAIQAAoAAAAmAhAABAAAAOwBEAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzaWduZXJfc2V0AABHAxAABgAAAHRocmVzaG9sZF9zZXR0aHJlc2hvbGQAAKECEAAJAAAAU2lnbmVyc1RocmVzaG9sZGV4dGVuZF90bwAAAMQCEAAJAAAAoQIQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAADvAhAACAAAAPcCEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50TWlncmF0aW5nYWN0aXZlYWRtaW4AAEcDEAAGAAAATQMQAAUAAABzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGlibWVzc2FnZV9saWJzdXBwb3J0ZWQAAAB9AxAACwAAAIgDEAAJAAAAc2V0X2FsbG93bGlzdGFsbG93ZWRvYXBwsQMQAAcAAAC4AxAABAAAAHNldF9kZW55bGlzdGRlbmllZAAA2AMQAAYAAAC4AxAABAAAAHBhdXNlcgAA8AMQAAYAAAB1bnBhdXNlcgAEEAAIAAAAc2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHNtdWx0aXBsaWVyX2JwcyoEEAAOAAAAc2V0X2RlcG9zaXRfYWRkcmVzc2RlcG9zaXRfYWRkcmVzcwAAUwQQAA8AAABzZXRfcHJpY2VfZmVlZHByaWNlX2ZlZWR6BBAACgAAAHNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzZHN0X2VpZG9wdGlvbl90eXBlcwAAAKYEEAAHAAAArQQQAAwAAABzZXRfd29ya2VyX2ZlZV9saWJmZWVfbGliAAAA3gQQAAcAAABQYXVzZWRBZG1pbnNNZXNzYWdlTGlic0FsbG93bGlzdEFsbG93bGlzdFNpemVEZW55bGlzdERlZmF1bHRNdWx0aXBsaWVyQnBzRGVwb3NpdEFkZHJlc3NTdXBwb3J0ZWRPcHRpb25UeXBlc1dvcmtlckZlZUxpYlByaWNlRmVlZADn8AEOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAAIRHZuRXJyb3IAAAAGAAAAAAAAAA9BdXRoRGF0YUV4cGlyZWQAAAAAAQAAAAAAAAAPRWlkTm90U3VwcG9ydGVkAAAAAAIAAAAAAAAAD0hhc2hBbHJlYWR5VXNlZAAAAAADAAAAAAAAAApJbnZhbGlkVmlkAAAAAAAEAAAAAAAAABFOb25Db250cmFjdEludm9rZQAAAAAAAAUAAAAAAAAACU9ubHlBZG1pbgAAAAAAAAYAAAAFAAAAAAAAAAAAAAAMU2V0RHN0Q29uZmlnAAAAAQAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAGU2VuZGVyAAAAAAACAAAAAAAAAC5ObyBleHBsaWNpdCBzZW5kZXIgKHBlcm1pc3Npb25sZXNzIGV4ZWN1dGlvbikuAAAAAAAETm9uZQAAAAEAAACPQSByZWdpc3RlcmVkIGFkbWluIChlZDI1NTE5KSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbi4KVGhlIHR1cGxlIGlzIGAocHVibGljX2tleSwgc2lnbmF0dXJlKWAgd2hlcmUgdGhlIHNpZ25hdHVyZSBjb3ZlcnMgdGhlIFNvcm9iYW4gcGF5bG9hZC4AAAAABUFkbWluAAAAAAAAAgAAA+4AAAAgAAAD7gAAAEAAAAABAAAAx0F1dGhlbnRpY2F0aW9uIGRhdGEgZm9yIERWTiBjb250cmFjdCB0cmFuc2FjdGlvbnMuCgpUaGlzIHN0cnVjdCBpcyB1c2VkIHdpdGggU29yb2JhbidzIGN1c3RvbSBhY2NvdW50IGludGVyZmFjZSB0byBhdXRob3JpemUKdHJhbnNhY3Rpb25zIHRocm91Z2ggYSBjb21iaW5hdGlvbiBvZiBhZG1pbiBzaWduYXR1cmUgYW5kIG11bHRpc2lnIHF1b3J1bS4AAAAAAAAAABNUcmFuc2FjdGlvbkF1dGhEYXRhAAAAAAQAAABERXhwaXJhdGlvbiB0aW1lc3RhbXAgKGxlZGdlciB0aW1lKSBhZnRlciB3aGljaCB0aGlzIGF1dGggaXMgaW52YWxpZC4AAAAKZXhwaXJhdGlvbgAAAAAABgAAAD1FbnRpdHkgc3VibWl0dGluZyB0aGUgdHJhbnNhY3Rpb24gKGFkbWluLCBvciBwZXJtaXNzaW9ubGVzcykuAAAAAAAABnNlbmRlcgAAAAAH0AAAAAZTZW5kZXIAAAAAADxTaWduYXR1cmVzIGZyb20gbXVsdGlzaWcgc2lnbmVycyAoc2VjcDI1NmsxLCA2NSBieXRlcyBlYWNoKS4AAAAKc2lnbmF0dXJlcwAAAAAD6gAAA+4AAABBAAAAMlZlcmlmaWVyIElEIC0gbXVzdCBtYXRjaCB0aGUgRFZOJ3MgY29uZmlndXJlZCBWSUQuAAAAAAADdmlkAAAAAAQAAAABAAAAckNvbmZpZ3VyYXRpb24gZm9yIGEgZGVzdGluYXRpb24gY2hhaW4uCgpDb250YWlucyBmZWUgY2FsY3VsYXRpb24gcGFyYW1ldGVycyBzcGVjaWZpYyB0byBlYWNoIGRlc3RpbmF0aW9uIGVuZHBvaW50LgAAAAAAAAAAAAlEc3RDb25maWcAAAAAAAADAAAAO01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCBieSBuYXRpdmUgZGVjaW1hbHMgcmF0ZSkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAAC5HYXMgZm9yIHZlcmlmaWNhdGlvbiBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAADZ2FzAAAAAAoAAABnRmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDEwMCUpLgpJZiAwLCB0aGUgZGVmYXVsdCBtdWx0aXBsaWVyIGZyb20gd29ya2VyIGNvbmZpZyBpcyB1c2VkLgAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAABAAAANlBhcmFtZXRlciBmb3Igc2V0dGluZyBkZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9uLgAAAAAAAAAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAgAAACdUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkZXN0aW5hdGlvbi4AAAAABmNvbmZpZwAAAAAH0AAAAAlEc3RDb25maWcAAAAAAAAcVGhlIGRlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAABAAAAiVJlcHJlc2VudHMgYSBzaW5nbGUgY29udHJhY3QgaW52b2NhdGlvbiBmb3IgbXVsdGlzaWcgYXV0aG9yaXphdGlvbi4KClVzZWQgaW4gYGhhc2hfY2FsbF9kYXRhYCB0byBjb21wdXRlIHRoZSBoYXNoIHRoYXQgc2lnbmVycyBzaWduIG92ZXIuAAAAAAAAAAAAAARDYWxsAAAAAwAAABNGdW5jdGlvbiBhcmd1bWVudHMuAAAAAARhcmdzAAAD6gAAAAAAAAAYRnVuY3Rpb24gbmFtZSB0byBpbnZva2UuAAAABGZ1bmMAAAARAAAAGFRhcmdldCBjb250cmFjdCBhZGRyZXNzLgAAAAJ0bwAAAAAAEwAAAAAAAAA0VmFsaWRhdGVzIGF1dGhvcml6YXRpb24gZm9yIERWTiBjb250cmFjdCBvcGVyYXRpb25zLgAAAAxfX2NoZWNrX2F1dGgAAAADAAAAAAAAABFzaWduYXR1cmVfcGF5bG9hZAAAAAAAA+4AAAAgAAAAAAAAAAlhdXRoX2RhdGEAAAAAAAfQAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAAAAAAAA1hdXRoX2NvbnRleHRzAAAAAAAD6gAAB9AAAAAHQ29udGV4dAAAAAABAAAD6QAAAAIAAAADAAAAAAAAAORTZXRzIHRoZSBwYXVzZWQgc3RhdGUgb2YgdGhlIHdvcmtlci4KCldoZW4gcGF1c2VkLCB0aGUgd29ya2VyIHdpbGwgcmVqZWN0IG5ldyBqb2IgYXNzaWdubWVudHMgKGUuZy4sIGFzc2lnbl9qb2IsIGdldF9mZWUpLgpFeGlzdGluZyBqb2JzIGluIHByb2dyZXNzIGFyZSBub3QgYWZmZWN0ZWQuCgojIEFyZ3VtZW50cwoqIGBwYXVzZWRgIC0gYHRydWVgIHRvIHBhdXNlLCBgZmFsc2VgIHRvIHVucGF1c2UAAAAKc2V0X3BhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAAAAAD9U2V0cyBhZG1pbiBzdGF0dXMgZm9yIGFuIGFkZHJlc3MuCgpBZG1pbnMgY2FuIGNvbmZpZ3VyZSB3b3JrZXIgc2V0dGluZ3MgbGlrZSBmZWUgbXVsdGlwbGllcnMsIGRlcG9zaXQgYWRkcmVzc2VzLAphbmQgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcy4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIFRoZSBhZGRyZXNzIHRvIHNldCBhZG1pbiBzdGF0dXMgZm9yCiogYGFjdGl2ZWAgLSBgdHJ1ZWAgdG8gYWRkIGFkbWluLCBgZmFsc2VgIHRvIHJlbW92ZQAAAAAAAAlzZXRfYWRtaW4AAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAAAAABN1NldHMgd2hldGhlciBhIG1lc3NhZ2UgbGlicmFyeSBpcyBzdXBwb3J0ZWQgYnkgdGhpcyB3b3JrZXIuCgpNZXNzYWdlIGxpYnJhcmllcyAoZS5nLiwgVUxOMzAyKSBjYWxsIHdvcmtlcnMgdG8gYXNzaWduIGpvYnMuIE9ubHkgc3VwcG9ydGVkCmxpYnJhcmllcyBjYW4gaW50ZXJhY3Qgd2l0aCB0aGlzIHdvcmtlci4KCiMgQXJndW1lbnRzCiogYG1lc3NhZ2VfbGliYCAtIFRoZSBtZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwoqIGBzdXBwb3J0ZWRgIC0gYHRydWVgIHRvIGFkZCBzdXBwb3J0LCBgZmFsc2VgIHRvIHJlbW92ZSBzdXBwb3J0AAAAABlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAAAAAgAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAAAAAAJc3VwcG9ydGVkAAAAAAAAAQAAAAAAAAAAAAABWFNldHMgYWxsb3dsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKV2hlbiB0aGUgYWxsb3dsaXN0IGlzIGVtcHR5LCBhbGwgT0FwcHMgYXJlIGFsbG93ZWQgKHVubGVzcyBvbiBkZW55bGlzdCkuCldoZW4gdGhlIGFsbG93bGlzdCBpcyBub3QgZW1wdHksIG9ubHkgYWxsb3dsaXN0ZWQgT0FwcHMgYXJlIGFsbG93ZWQuCkRlbnlsaXN0IGFsd2F5cyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYWxsb3dsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGFsbG93ZWRgIC0gYHRydWVgIHRvIGFkZCB0byBhbGxvd2xpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAADXNldF9hbGxvd2xpc3QAAAAAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAHYWxsb3dlZAAAAAABAAAAAAAAAAAAAAEJU2V0cyBkZW55bGlzdCBzdGF0dXMgZm9yIGFuIE9BcHAgYWRkcmVzcy4KCkRlbnlsaXN0ZWQgT0FwcHMgYXJlIGJsb2NrZWQgZnJvbSB1c2luZyB0aGlzIHdvcmtlciwgZXZlbiBpZiB0aGV5J3JlIG9uCnRoZSBhbGxvd2xpc3QgKGRlbnlsaXN0IHRha2VzIHByZWNlZGVuY2UpLgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGRlbmllZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGRlbnlsaXN0LCBgZmFsc2VgIHRvIHJlbW92ZQAAAAAAAAxzZXRfZGVueWxpc3QAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAGZGVuaWVkAAAAAAABAAAAAAAAAAAAAAE7U2V0cyB0aGUgZGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMuCgpUaGUgbXVsdGlwbGllciBpcyBhcHBsaWVkIHRvIGJhc2UgZmVlcyBkdXJpbmcgZmVlIGNhbGN1bGF0aW9uLiBVc2VkIHdoZW4Kbm8gZGVzdGluYXRpb24tc3BlY2lmaWMgbXVsdGlwbGllciBpcyBjb25maWd1cmVkLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYG11bHRpcGxpZXJfYnBzYCAtIE11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDF4LCAxMjAwMCA9IDEuMngpAAAAABpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAAAAAAAAAAA8VNldHMgdGhlIGRlcG9zaXQgYWRkcmVzcyB3aGVyZSB3b3JrZXIgZmVlcyBhcmUgY29sbGVjdGVkLgoKV2hlbiBqb2JzIGFyZSBhc3NpZ25lZCwgZmVlcyBhcmUgZGlyZWN0ZWQgdG8gdGhpcyBhZGRyZXNzLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgY29sbGVjdGVkIGZlZXMAAAAAAAATc2V0X2RlcG9zaXRfYWRkcmVzcwAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAAAAAEJU2V0cyBzdXBwb3J0ZWQgZXhlY3V0b3Igb3B0aW9uIHR5cGVzIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikKKiBgb3B0aW9uX3R5cGVzYCAtIFN1cHBvcnRlZCBvcHRpb24gdHlwZXMuIEVhY2ggYnl0ZSByZXByZXNlbnRzIGFuIG9wdGlvbiB0eXBlLgAAAAAAABpzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAwAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAANlaWQAAAAABAAAAAAAAAAMb3B0aW9uX3R5cGVzAAAADgAAAAAAAAAAAAABElNldHMgdGhlIHdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzLgoKVGhlIGZlZSBsaWJyYXJ5IGNhbGN1bGF0ZXMgZmVlcyBiYXNlZCBvbiBleGVjdXRvciBvcHRpb25zIGFuZCBwcmljZSBmZWVkIGRhdGEuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgd29ya2VyX2ZlZV9saWJgIC0gRmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcyBpbXBsZW1lbnRpbmcgYElFeGVjdXRvckZlZUxpYmAAAAAAABJzZXRfd29ya2VyX2ZlZV9saWIAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAOd29ya2VyX2ZlZV9saWIAAAAAABMAAAAAAAAAAAAAARJTZXRzIHRoZSBwcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MuCgpUaGUgcHJpY2UgZmVlZCBwcm92aWRlcyBnYXMgcHJpY2VzIGFuZCBleGNoYW5nZSByYXRlcyBmb3IgY3Jvc3MtY2hhaW4KZmVlIGNhbGN1bGF0aW9ucy4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBpbXBsZW1lbnRpbmcgYElMYXllclplcm9QcmljZUZlZWRgAAAAAAAOc2V0X3ByaWNlX2ZlZWQAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAKcHJpY2VfZmVlZAAAAAAAEwAAAAAAAAAAAAAAJVJldHVybnMgd2hldGhlciB0aGUgd29ya2VyIGlzIHBhdXNlZC4AAAAAAAAGcGF1c2VkAAAAAAAAAAAAAQAAAAEAAAAAAAAAVVJldHVybnMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFkbWluLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gY2hlY2sAAAAAAAAIaXNfYWRtaW4AAAABAAAAAAAAAAVhZG1pbgAAAAAAABMAAAABAAAAAQAAAAAAAAAcUmV0dXJucyBhbGwgYWRtaW4gYWRkcmVzc2VzLgAAAAZhZG1pbnMAAAAAAAAAAAABAAAD6gAAABMAAAAAAAAAb1JldHVybnMgd2hldGhlciBhIG1lc3NhZ2UgbGlicmFyeSBpcyBzdXBwb3J0ZWQuCgojIEFyZ3VtZW50cwoqIGBtZXNzYWdlX2xpYmAgLSBNZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwAAAAAYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAQAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAEAAAABAAAAAAAAAHNSZXR1cm5zIGFsbCBzdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGFkZHJlc3Nlcy4KCiMgUmV0dXJucwpWZWN0b3Igb2Ygc3VwcG9ydGVkIG1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzZXMuAAAAAAxtZXNzYWdlX2xpYnMAAAAAAAAAAQAAA+oAAAATAAAAAAAAAFpSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBpcyBvbiB0aGUgYWxsb3dsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MAAAAAAA9pc19vbl9hbGxvd2xpc3QAAAAAAQAAAAAAAAAEb2FwcAAAABMAAAABAAAAAQAAAAAAAAAxUmV0dXJucyB0aGUgbnVtYmVyIG9mIGFkZHJlc3NlcyBvbiB0aGUgYWxsb3dsaXN0LgAAAAAAAA5hbGxvd2xpc3Rfc2l6ZQAAAAAAAAAAAAEAAAAEAAAAAAAAAFlSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBpcyBvbiB0aGUgZGVueWxpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIE9BcHAgY29udHJhY3QgYWRkcmVzcwAAAAAAAA5pc19vbl9kZW55bGlzdAAAAAAAAQAAAAAAAAAEb2FwcAAAABMAAAABAAAAAQAAAAAAAAD5UmV0dXJucyB3aGV0aGVyIGFuIE9BcHAgaGFzIGFjY2VzcyBjb250cm9sIGxpc3QgKEFDTCkgcGVybWlzc2lvbi4KCkFDTCBldmFsdWF0aW9uIG9yZGVyOgoxLiBJZiBvbiBkZW55bGlzdCDihpIgZGVuaWVkCjIuIElmIGFsbG93bGlzdCBpcyBlbXB0eSBPUiBvbiBhbGxvd2xpc3Qg4oaSIGFsbG93ZWQKMy4gT3RoZXJ3aXNlIOKGkiBkZW5pZWQKCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzIHRvIGNoZWNrAAAAAAAAB2hhc19hY2wAAAAAAQAAAAAAAAAEb2FwcAAAABMAAAABAAAAAQAAAAAAAAAzUmV0dXJucyB0aGUgZGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMuAAAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAAAAAAAQAAAAQAAAAAAAAANVJldHVybnMgdGhlIGRlcG9zaXQgYWRkcmVzcyB3aGVyZSBmZWVzIGFyZSBjb2xsZWN0ZWQuAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAHxSZXR1cm5zIHN1cHBvcnRlZCBvcHRpb24gdHlwZXMgZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpAAAAGmdldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAAAAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAADgAAAAAAAAAwUmV0dXJucyB0aGUgd29ya2VyIGZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MuAAAADndvcmtlcl9mZWVfbGliAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAChSZXR1cm5zIHRoZSBwcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MuAAAACnByaWNlX2ZlZWQAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAeENhbGN1bGF0ZXMgdGhlIHZlcmlmaWNhdGlvbiBmZWUgZm9yIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4KCkNhbGxlZCBieSB0aGUgc2VuZCBsaWJyYXJ5IHRvIHF1b3RlIERWTiBmZWVzIGJlZm9yZSBzZW5kaW5nLgAAAAdnZXRfZmVlAAAAAAcAAAAAAAAACHNlbmRfbGliAAAAEwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAADXBhY2tldF9oZWFkZXIAAAAAAAAOAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAAAAAAAAB29wdGlvbnMAAAAADgAAAAEAAAALAAAAAAAAALhBc3NpZ25zIGEgdmVyaWZpY2F0aW9uIGpvYiB0byB0aGlzIERWTiBhbmQgcmV0dXJucyBmZWUgcGF5bWVudCBpbmZvLgoKQ2FsbGVkIGJ5IHRoZSBzZW5kIGxpYnJhcnkgd2hlbiBhIG1lc3NhZ2UgaXMgc2VudC4gVGhlIERWTiB3aWxsIGxhdGVyCnZlcmlmeSB0aGUgbWVzc2FnZSBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAACmFzc2lnbl9qb2IAAAAAAAcAAAAAAAAACHNlbmRfbGliAAAAEwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAADXBhY2tldF9oZWFkZXIAAAAAAAAOAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAAAAAAAAB29wdGlvbnMAAAAADgAAAAEAAAfQAAAADEZlZVJlY2lwaWVudAAAAAAAAABEU2V0cyBkZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9ucy4gUmVxdWlyZXMgYWRtaW4gYXV0aG9yaXphdGlvbi4AAAAOc2V0X2RzdF9jb25maWcAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAAAAAAAAAABBUmV0dXJucyB0aGUgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBzcGVjaWZpYyBlbmRwb2ludCBJRC4AAAAAAAAKZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAA+gAAAfQAAAACURzdENvbmZpZwAAAAAAAAAAAAAlUmV0dXJucyB0aGUgVmVyaWZpZXIgSUQgZm9yIHRoaXMgRFZOLgAAAAAAAAN2aWQAAAAAAAAAAAEAAAAEAAAAAAAAAHdDb21wdXRlcyB0aGUgaGFzaCBvZiBjYWxsIGRhdGEgZm9yIG11bHRpc2lnIHNpZ25pbmcuCgpPZmYtY2hhaW4gc2lnbmVycyB1c2UgdGhpcyB0byBjb21wdXRlIHRoZSBoYXNoIHRoZXkgbmVlZCB0byBzaWduLgAAAAAOaGFzaF9jYWxsX2RhdGEAAAAAAAMAAAAAAAAAA3ZpZAAAAAAEAAAAAAAAAApleHBpcmF0aW9uAAAAAAAGAAAAAAAAAAVjYWxscwAAAAAAA+oAAAfQAAAABENhbGwAAAABAAAD7gAAACAAAAAAAAACZEluaXRpYWxpemVzIHRoZSBEVk4gY29udHJhY3QuCgojIEFyZ3VtZW50cwoqIGB2aWRgIC0gVmVyaWZpZXIgSUQsIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIERWTgoqIGBzaWduZXJzYCAtIEluaXRpYWwgbXVsdGlzaWcgc2lnbmVycyAoMjAtYnl0ZSBFdGhlcmV1bSBhZGRyZXNzZXMpCiogYHRocmVzaG9sZGAgLSBNaW5pbXVtIHNpZ25hdHVyZXMgcmVxdWlyZWQgZm9yIG11bHRpc2lnIG9wZXJhdGlvbnMKKiBgYWRtaW5zYCAtIEluaXRpYWwgYWRtaW4gYWRkcmVzc2VzIGZvciBvcGVyYXRpb25hbCBmdW5jdGlvbnMKKiBgc3VwcG9ydGVkX21zZ2xpYnNgIC0gTWVzc2FnZSBsaWJyYXJpZXMgdGhpcyBEVk4gc3VwcG9ydHMgKGUuZy4sIFVMTjMwMikKKiBgcHJpY2VfZmVlZGAgLSBQcmljZSBmZWVkIGNvbnRyYWN0IGZvciBmZWUgY2FsY3VsYXRpb25zCiogYGRlZmF1bHRfbXVsdGlwbGllcl9icHNgIC0gRGVmYXVsdCBmZWUgbXVsdGlwbGllciAoMTAwMDAgPSAxeCkKKiBgd29ya2VyX2ZlZV9saWJgIC0gRmVlIGxpYnJhcnkgY29udHJhY3QgZm9yIGNvbXB1dGluZyBEVk4gZmVlcwoqIGBkZXBvc2l0X2FkZHJlc3NgIC0gQWRkcmVzcyB0byByZWNlaXZlIGZlZSBwYXltZW50cwAAAA1fX2NvbnN0cnVjdG9yAAAAAAAACQAAAAAAAAADdmlkAAAAAAQAAAAAAAAAB3NpZ25lcnMAAAAD6gAAA+4AAAAUAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAZhZG1pbnMAAAAAA+oAAAATAAAAAAAAABFzdXBwb3J0ZWRfbXNnbGlicwAAAAAAA+oAAAATAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAA53b3JrZXJfZmVlX2xpYgAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAWpTZXRzIGFkbWluIHN0YXR1cyBmb3IgYW4gYWRkcmVzcy4gQ2FuIGJlIGNhbGxlZCBieSBhbiBleGlzdGluZyBhZG1pbi4KClRoaXMgYWxsb3dzIGV4aXN0aW5nIGFkbWlucyB0byBhZGQgb3IgcmVtb3ZlIG90aGVyIGFkbWlucyB3aXRob3V0IGdvaW5nIHRocm91Z2gKdGhlIG93bmVyL211bHRpc2lnIHBhdGguCgojIEFyZ3VtZW50cwoqIGBjYWxsZXJgIC0gVGhlIGFkbWluIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGFkbWluYCAtIFRoZSBhZGRyZXNzIHRvIHNldCBhZG1pbiBzdGF0dXMgZm9yCiogYGFjdGl2ZWAgLSBgdHJ1ZWAgdG8gYWRkIGFkbWluLCBgZmFsc2VgIHRvIHJlbW92ZQAAAAAAEnNldF9hZG1pbl9ieV9hZG1pbgAAAAAAAwAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAAAAAAlVRoZSB0eXBlIG9mIGRhdGEgcmVxdWlyZWQgZm9yIG1pZ3JhdGlvbi4KVXBncmFkZXMgdGhlIGNvbnRyYWN0IHRvIG5ldyBXQVNNIGJ5dGVjb2RlLgpTZXRzIGEgbWlncmF0aW9uIGZsYWcgdGhhdCBtdXN0IGJlIGNsZWFyZWQgYnkgY2FsbGluZyBgbWlncmF0ZWAuAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAB2UnVucyBtaWdyYXRpb24gbG9naWMgYWZ0ZXIgYW4gdXBncmFkZS4KQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIG1pZ3JhdGlvbiBmbGFnIGlzIHNldCBieSBhIHByZXZpb3VzIGB1cGdyYWRlYCBjYWxsLgAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAF5QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLgpUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuAAAAAAAGZnJlZXplAAAAAAAAAAAAAAAAAAAAAAA7UmV0dXJucyB3aGV0aGVyIHRoZSBjb250cmFjdCBpcyBmcm96ZW4gKHVwZ3JhZGVzIGRpc2FibGVkKS4AAAAACWlzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAAAAABJQWRkcyBvciByZW1vdmVzIGEgc2lnbmVyIGZyb20gdGhlIG11bHRpc2lnLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAAAAAApzZXRfc2lnbmVyAAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAERTZXRzIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIChxdW9ydW0pLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAA1zZXRfdGhyZXNob2xkAAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAAAAAAH1JldHVybnMgYWxsIHJlZ2lzdGVyZWQgc2lnbmVycy4AAAAAC2dldF9zaWduZXJzAAAAAAAAAAABAAAD6gAAA+4AAAAUAAAAAAAAAC9SZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBzaWduZXJzLgAAAAANdG90YWxfc2lnbmVycwAAAAAAAAAAAAABAAAABAAAAAAAAAAsQ2hlY2tzIGlmIGFuIGFkZHJlc3MgaXMgYSByZWdpc3RlcmVkIHNpZ25lci4AAAAJaXNfc2lnbmVyAAAAAAAAAQAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBjdXJyZW50IHNpZ25hdHVyZSB0aHJlc2hvbGQgKHF1b3J1bSkuAAAAAAAACXRocmVzaG9sZAAAAAAAAAAAAAABAAAABAAAAAAAAAA1VmVyaWZpZXMgc2lnbmF0dXJlcyBhZ2FpbnN0IHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC4AAAAAAAARdmVyaWZ5X3NpZ25hdHVyZXMAAAAAAAACAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAAAAAAAC9WZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgYSBjdXN0b20gdGhyZXNob2xkLgAAAAATdmVyaWZ5X25fc2lnbmF0dXJlcwAAAAADAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0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AAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAAAAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAAAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAAAAAADFVuYXV0aG9yaXplZAAAABYAAAAAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAAAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQAAAAEAAAAtUGFyYW1ldGVycyBmb3Igc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAAA9NZXNzYWdpbmdQYXJhbXMAAAAABQAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAcVGhlIG1lc3NhZ2UgcGF5bG9hZCB0byBzZW5kLgAAAAdtZXNzYWdlAAAAAA4AAAAhRW5jb2RlZCBleGVjdXRvciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAABAAAA4VBhcmFtZXRlcnMgZm9yIERWTiBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIHZlcmlmaWNhdGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAABAAAAB1QYWNrZXRDb2RlY1YxRXJyb3I6IDExMDAtMTEwOQAAAAAAAAAAAAASUGFja2V0Q29kZWNWMUVycm9yAAAAAAACAAAAAAAAABNJbnZhbGlkUGFja2V0SGVhZGVyAAAABEwAAAAAAAAAFEludmFsaWRQYWNrZXRWZXJzaW9uAAAETQAAAAQAAAAdV29ya2VyT3B0aW9uc0Vycm9yOiAxMTEwLTExMTkAAAAAAAAAAAAAEldvcmtlck9wdGlvbnNFcnJvcgAAAAAACQAAAAAAAAASSW52YWxpZEJ5dGVzTGVuZ3RoAAAAAARWAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUxAAAAAAAEVwAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMgAAAAAABFgAAAAAAAAAEUludmFsaWRPcHRpb25UeXBlAAAAAAAEWQAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAABFoAAAAAAAAAD0ludmFsaWRXb3JrZXJJZAAAAARbAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTFHYXNPdmVyZmxvdwAAAAAABFwAAAAAAAAAIExlZ2FjeU9wdGlvbnNUeXBlMkFtb3VudE92ZXJmbG93AAAEXQAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUyR2FzT3ZlcmZsb3cAAAAAAAReAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAAAAEAAAAFldvcmtlckVycm9yOiAxMjAwLTEyOTkAAAAAAAAAAAALV29ya2VyRXJyb3IAAAAAEAAAAAAAAAASQWRtaW5BbHJlYWR5RXhpc3RzAAAAAASwAAAAAAAAAA1BZG1pbk5vdEZvdW5kAAAAAAAEsQAAAAAAAAASQWxyZWFkeU9uQWxsb3dsaXN0AAAAAASyAAAAAAAAABFBbHJlYWR5T25EZW55bGlzdAAAAAAABLMAAAAAAAAAFERlcG9zaXRBZGRyZXNzTm90U2V0AAAEtAAAAAAAAAAaTWVzc2FnZUxpYkFscmVhZHlTdXBwb3J0ZWQAAAAABLUAAAAAAAAAFk1lc3NhZ2VMaWJOb3RTdXBwb3J0ZWQAAAAABLYAAAAAAAAACk5vdEFsbG93ZWQAAAAABLcAAAAAAAAADk5vdE9uQWxsb3dsaXN0AAAAAAS4AAAAAAAAAA1Ob3RPbkRlbnlsaXN0AAAAAAAEuQAAAAAAAAAUUGF1c2VTdGF0dXNVbmNoYW5nZWQAAAS6AAAAAAAAAA9QcmljZUZlZWROb3RTZXQAAAAEuwAAAAAAAAAMVW5hdXRob3JpemVkAAAEvAAAAAAAAAAVVW5zdXBwb3J0ZWRNZXNzYWdlTGliAAAAAAAEvQAAAAAAAAASV29ya2VyRmVlTGliTm90U2V0AAAAAAS+AAAAAAAAAA5Xb3JrZXJJc1BhdXNlZAAAAAAEvwAAAAUAAAAAAAAAAAAAAAhTZXRBZG1pbgAAAAEAAAAJc2V0X2FkbWluAAAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAWU2V0U3VwcG9ydGVkTWVzc2FnZUxpYgAAAAAAAQAAABlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAAAAAgAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAAAAAAAAAAACXN1cHBvcnRlZAAAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAxTZXRBbGxvd2xpc3QAAAABAAAADXNldF9hbGxvd2xpc3QAAAAAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAAAAAAB2FsbG93ZWQAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAAC1NldERlbnlsaXN0AAAAAAEAAAAMc2V0X2RlbnlsaXN0AAAAAgAAAAAAAAAEb2FwcAAAABMAAAAAAAAAAAAAAAZkZW5pZWQAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAZQYXVzZWQAAAAAAAEAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAZwYXVzZXIAAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAhVbnBhdXNlZAAAAAEAAAAIdW5wYXVzZWQAAAABAAAAAAAAAAh1bnBhdXNlcgAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABdTZXREZWZhdWx0TXVsdGlwbGllckJwcwAAAAABAAAAGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAABAAAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAAAAAACAAAABQAAAAAAAAAAAAAAEVNldERlcG9zaXRBZGRyZXNzAAAAAAAAAQAAABNzZXRfZGVwb3NpdF9hZGRyZXNzAAAAAAEAAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAMU2V0UHJpY2VGZWVkAAAAAQAAAA5zZXRfcHJpY2VfZmVlZAAAAAAAAQAAAAAAAAAKcHJpY2VfZmVlZAAAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAF1NldFN1cHBvcnRlZE9wdGlvblR5cGVzAAAAAAEAAAAac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAADG9wdGlvbl90eXBlcwAAAA4AAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9TZXRXb3JrZXJGZWVMaWIAAAAAAQAAABJzZXRfd29ya2VyX2ZlZV9saWIAAAAAAAEAAAAAAAAAB2ZlZV9saWIAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADVdvcmtlclN0b3JhZ2UAAAAAAAALAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAAAAAAAAAAAAZBZG1pbnMAAAAAAAAAAAAAAAAAC01lc3NhZ2VMaWJzAAAAAAEAAAAAAAAACUFsbG93bGlzdAAAAAAAAAEAAAATAAAAAAAAAAAAAAANQWxsb3dsaXN0U2l6ZQAAAAAAAAEAAAAAAAAACERlbnlsaXN0AAAAAQAAABMAAAAAAAAAAAAAABREZWZhdWx0TXVsdGlwbGllckJwcwAAAAAAAAAAAAAADkRlcG9zaXRBZGRyZXNzAAAAAAABAAAAAAAAABRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAEAAAAEAAAAAAAAAAAAAAAMV29ya2VyRmVlTGliAAAAAAAAAAAAAAAJUHJpY2VGZWVkAAAAAIsBDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZiaW52ZXIAAAAAAAUwLjAuMQAAAAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjAuMSM5NDE0NDgwNzllY2NmOTU2MjdkMmZmZWExM2JhMjY4ZTMwNWE5MDc3AAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABkAAAAAAFMOY29udHJhY3RtZXRhdjAAAAAAAAAABmNsaXZlcgAAAAAALzI1LjAuMCNhNjQ5MjVlOTM5MWMzZDNiM2VmOGU1M2RjNjBjMjNkYjllNmE4MmU0AA==";
13
12
  /**
14
13
  * Pre-computed WASM hash (SHA-256)
15
14
  * Use this when the WASM is already uploaded on-chain
16
15
  */
17
- export declare const WASM_HASH = "5c52cac1c298d768f8af85192d911b1f33f3885278ff4ae8f05b251c068d02a2";
16
+ export declare const WASM_HASH = "58784606010f24b0342599b3f6f0da7c5a0ed3254c26bdc4d64b51e71c213368";
18
17
  /**
19
18
  * Get the WASM bytecode as a Buffer
20
19
  * Use this to upload the WASM to the network
@@ -39,10 +38,38 @@ export declare const DvnError: {
39
38
  6: {
40
39
  message: string;
41
40
  };
42
- 7: {
43
- message: string;
44
- };
45
41
  };
42
+ export type Sender = {
43
+ tag: "None";
44
+ values: void;
45
+ } | {
46
+ tag: "Admin";
47
+ values: readonly [Buffer, Buffer];
48
+ };
49
+ /**
50
+ * Authentication data for DVN contract transactions.
51
+ *
52
+ * This struct is used with Soroban's custom account interface to authorize
53
+ * transactions through a combination of admin signature and multisig quorum.
54
+ */
55
+ export interface TransactionAuthData {
56
+ /**
57
+ * Expiration timestamp (ledger time) after which this auth is invalid.
58
+ */
59
+ expiration: u64;
60
+ /**
61
+ * Entity submitting the transaction (admin, or permissionless).
62
+ */
63
+ sender: Sender;
64
+ /**
65
+ * Signatures from multisig signers (secp256k1, 65 bytes each).
66
+ */
67
+ signatures: Array<Buffer>;
68
+ /**
69
+ * Verifier ID - must match the DVN's configured VID.
70
+ */
71
+ vid: u32;
72
+ }
46
73
  /**
47
74
  * Configuration for a destination chain.
48
75
  *
@@ -95,37 +122,6 @@ export interface Call {
95
122
  */
96
123
  to: string;
97
124
  }
98
- /**
99
- * Authentication data for DVN contract transactions.
100
- *
101
- * This struct is used with Soroban's custom account interface to authorize
102
- * transactions through a combination of admin signature and multisig quorum.
103
- */
104
- export interface TransactionAuthData {
105
- /**
106
- * Expiration timestamp (ledger time) after which this auth is invalid.
107
- */
108
- expiration: u64;
109
- /**
110
- * Entity submitting the transaction (admin, or permissionless).
111
- */
112
- sender: Sender;
113
- /**
114
- * Signatures from multisig signers (secp256k1, 65 bytes each).
115
- */
116
- signatures: Array<Buffer>;
117
- /**
118
- * Verifier ID - must match the DVN's configured VID.
119
- */
120
- vid: u32;
121
- }
122
- export type Sender = {
123
- tag: "None";
124
- values: void;
125
- } | {
126
- tag: "Admin";
127
- values: readonly [Buffer, Buffer];
128
- };
129
125
  export type DvnStorage = {
130
126
  tag: "Vid";
131
127
  values: void;
@@ -424,6 +420,169 @@ export interface FeesAndPacket {
424
420
  */
425
421
  zro_fee_recipients: Array<FeeRecipient>;
426
422
  }
423
+ /**
424
+ * Parameters for DVN fee calculation.
425
+ *
426
+ * Contains all inputs needed by the fee library to calculate verification fees
427
+ * for cross-chain messages. Includes message parameters, common configuration,
428
+ * and destination-specific settings.
429
+ */
430
+ export interface DvnFeeParams {
431
+ /**
432
+ * Number of block confirmations required.
433
+ */
434
+ confirmations: u64;
435
+ /**
436
+ * Default fee multiplier in basis points (used if no dst-specific multiplier).
437
+ */
438
+ default_multiplier_bps: u32;
439
+ /**
440
+ * Destination endpoint ID (chain identifier).
441
+ */
442
+ dst_eid: u32;
443
+ /**
444
+ * Minimum fee margin in USD (scaled).
445
+ */
446
+ floor_margin_usd: u128;
447
+ /**
448
+ * ============================================================================================
449
+ * Destination-Specific Configuration
450
+ * ============================================================================================
451
+ * Gas estimate for verification on destination chain.
452
+ */
453
+ gas: u128;
454
+ /**
455
+ * Destination-specific fee multiplier in basis points (0 = use default).
456
+ */
457
+ multiplier_bps: u32;
458
+ /**
459
+ * DVN options
460
+ */
461
+ options: Buffer;
462
+ /**
463
+ * ============================================================================================
464
+ * Common Configuration
465
+ * ============================================================================================
466
+ * Price feed contract address for gas price and exchange rate data.
467
+ */
468
+ price_feed: string;
469
+ /**
470
+ * Number of required signatures (quorum).
471
+ */
472
+ quorum: u32;
473
+ /**
474
+ * ============================================================================================
475
+ * Message Parameters
476
+ * ============================================================================================
477
+ * The OApp sender address.
478
+ */
479
+ sender: string;
480
+ }
481
+ /**
482
+ * Parameters for executor fee calculation.
483
+ *
484
+ * Contains all inputs needed by the fee library to calculate execution fees
485
+ * for cross-chain messages. Includes message parameters, common configuration,
486
+ * and destination-specific settings.
487
+ */
488
+ export interface FeeParams {
489
+ /**
490
+ * Size of the message calldata in bytes.
491
+ */
492
+ calldata_size: u32;
493
+ /**
494
+ * Default fee multiplier in basis points (used if no dst-specific multiplier).
495
+ */
496
+ default_multiplier_bps: u32;
497
+ /**
498
+ * Destination endpoint ID (chain identifier).
499
+ */
500
+ dst_eid: u32;
501
+ /**
502
+ * Minimum fee margin in USD (scaled).
503
+ */
504
+ floor_margin_usd: u128;
505
+ /**
506
+ * Base gas for each lzCompose call on destination chain.
507
+ */
508
+ lz_compose_base_gas: u64;
509
+ /**
510
+ * ============================================================================================
511
+ * Destination-Specific Configuration
512
+ * ============================================================================================
513
+ * Base gas for lzReceive execution on destination chain.
514
+ */
515
+ lz_receive_base_gas: u64;
516
+ /**
517
+ * Destination-specific fee multiplier in basis points (0 = use default).
518
+ */
519
+ multiplier_bps: u32;
520
+ /**
521
+ * Maximum native token value that can be sent.
522
+ */
523
+ native_cap: u128;
524
+ /**
525
+ * Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
526
+ */
527
+ options: Buffer;
528
+ /**
529
+ * ============================================================================================
530
+ * Common Configuration
531
+ * ============================================================================================
532
+ * Price feed contract address for gas price and exchange rate data.
533
+ */
534
+ price_feed: string;
535
+ /**
536
+ * ============================================================================================
537
+ * Message Parameters
538
+ * ============================================================================================
539
+ * The OApp sender address.
540
+ */
541
+ sender: string;
542
+ }
543
+ /**
544
+ * Gas price information for a destination endpoint.
545
+ *
546
+ * Contains the exchange rate and gas costs needed for cross-chain fee calculations.
547
+ */
548
+ export interface Price {
549
+ /**
550
+ * Gas cost per byte of calldata on the destination chain.
551
+ */
552
+ gas_per_byte: u32;
553
+ /**
554
+ * Gas price in the smallest unit (wei for EVM, stroops for Stellar).
555
+ */
556
+ gas_price_in_unit: u64;
557
+ /**
558
+ * Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
559
+ * Used to convert destination chain gas costs to source chain native token.
560
+ */
561
+ price_ratio: u128;
562
+ }
563
+ /**
564
+ * Fee estimation result with detailed breakdown.
565
+ *
566
+ * Contains the calculated fee and all intermediate values used in the calculation.
567
+ */
568
+ export interface FeeEstimate {
569
+ /**
570
+ * Source chain native token price in USD (scaled).
571
+ */
572
+ native_price_usd: u128;
573
+ /**
574
+ * Price ratio used for the calculation.
575
+ */
576
+ price_ratio: u128;
577
+ /**
578
+ * Denominator for the price ratio (typically 10^20).
579
+ */
580
+ price_ratio_denominator: u128;
581
+ /**
582
+ * Total gas fee in source chain native token units.
583
+ */
584
+ total_gas_fee: i128;
585
+ }
427
586
  /**
428
587
  * PacketCodecV1Error: 1100-1109
429
588
  */
@@ -538,6 +697,12 @@ export declare const UpgradeableError: {
538
697
  1050: {
539
698
  message: string;
540
699
  };
700
+ 1051: {
701
+ message: string;
702
+ };
703
+ 1052: {
704
+ message: string;
705
+ };
541
706
  };
542
707
  /**
543
708
  * MultisigError: 1060-1069
@@ -606,6 +771,9 @@ export type TtlConfigStorage = {
606
771
  values: void;
607
772
  };
608
773
  export type UpgradeableStorage = {
774
+ tag: "Frozen";
775
+ values: void;
776
+ } | {
609
777
  tag: "Migrating";
610
778
  values: void;
611
779
  };
@@ -661,211 +829,39 @@ export declare const WorkerError: {
661
829
  1215: {
662
830
  message: string;
663
831
  };
664
- 1216: {
665
- message: string;
666
- };
667
- 1217: {
668
- message: string;
669
- };
670
- 1218: {
671
- message: string;
672
- };
673
832
  };
674
- /**
675
- * Parameters for DVN fee calculation.
676
- *
677
- * Contains all inputs needed by the fee library to calculate verification fees
678
- * for cross-chain messages. Includes message parameters, common configuration,
679
- * and destination-specific settings.
680
- */
681
- export interface DvnFeeParams {
682
- /**
683
- * Number of block confirmations required.
684
- */
685
- confirmations: u64;
686
- /**
687
- * Default fee multiplier in basis points (used if no dst-specific multiplier).
688
- */
689
- default_multiplier_bps: u32;
690
- /**
691
- * Destination endpoint ID (chain identifier).
692
- */
693
- dst_eid: u32;
694
- /**
695
- * Minimum fee margin in USD (scaled).
696
- */
697
- floor_margin_usd: u128;
698
- /**
699
- * ============================================================================================
700
- * Destination-Specific Configuration
701
- * ============================================================================================
702
- * Gas estimate for verification on destination chain.
703
- */
704
- gas: u128;
705
- /**
706
- * Destination-specific fee multiplier in basis points (0 = use default).
707
- */
708
- multiplier_bps: u32;
709
- /**
710
- * DVN options
711
- */
712
- options: Buffer;
713
- /**
714
- * ============================================================================================
715
- * Common Configuration
716
- * ============================================================================================
717
- * Price feed contract address for gas price and exchange rate data.
718
- */
719
- price_feed: string;
720
- /**
721
- * Number of required signatures (quorum).
722
- */
723
- quorum: u32;
724
- /**
725
- * ============================================================================================
726
- * Message Parameters
727
- * ============================================================================================
728
- * The OApp sender address.
729
- */
730
- sender: string;
731
- }
732
- /**
733
- * Parameters for executor fee calculation.
734
- *
735
- * Contains all inputs needed by the fee library to calculate execution fees
736
- * for cross-chain messages. Includes message parameters, common configuration,
737
- * and destination-specific settings.
738
- */
739
- export interface FeeParams {
740
- /**
741
- * Size of the message calldata in bytes.
742
- */
743
- calldata_size: u32;
744
- /**
745
- * Default fee multiplier in basis points (used if no dst-specific multiplier).
746
- */
747
- default_multiplier_bps: u32;
748
- /**
749
- * Destination endpoint ID (chain identifier).
750
- */
751
- dst_eid: u32;
752
- /**
753
- * Minimum fee margin in USD (scaled).
754
- */
755
- floor_margin_usd: u128;
756
- /**
757
- * Base gas for each lzCompose call on destination chain.
758
- */
759
- lz_compose_base_gas: u64;
760
- /**
761
- * ============================================================================================
762
- * Destination-Specific Configuration
763
- * ============================================================================================
764
- * Base gas for lzReceive execution on destination chain.
765
- */
766
- lz_receive_base_gas: u64;
767
- /**
768
- * Destination-specific fee multiplier in basis points (0 = use default).
769
- */
770
- multiplier_bps: u32;
771
- /**
772
- * Maximum native token value that can be sent.
773
- */
774
- native_cap: u128;
775
- /**
776
- * Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
777
- */
778
- options: Buffer;
779
- /**
780
- * ============================================================================================
781
- * Common Configuration
782
- * ============================================================================================
783
- * Price feed contract address for gas price and exchange rate data.
784
- */
785
- price_feed: string;
786
- /**
787
- * ============================================================================================
788
- * Message Parameters
789
- * ============================================================================================
790
- * The OApp sender address.
791
- */
792
- sender: string;
793
- }
794
- /**
795
- * Gas price information for a destination endpoint.
796
- *
797
- * Contains the exchange rate and gas costs needed for cross-chain fee calculations.
798
- */
799
- export interface Price {
800
- /**
801
- * Gas cost per byte of calldata on the destination chain.
802
- */
803
- gas_per_byte: u32;
804
- /**
805
- * Gas price in the smallest unit (wei for EVM, stroops for Stellar).
806
- */
807
- gas_price_in_unit: u64;
808
- /**
809
- * Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
810
- * Used to convert destination chain gas costs to source chain native token.
811
- */
812
- price_ratio: u128;
813
- }
814
- /**
815
- * Fee estimation result with detailed breakdown.
816
- *
817
- * Contains the calculated fee and all intermediate values used in the calculation.
818
- */
819
- export interface FeeEstimate {
820
- /**
821
- * Source chain native token price in USD (scaled).
822
- */
823
- native_price_usd: u128;
824
- /**
825
- * Price ratio used for the calculation.
826
- */
827
- price_ratio: u128;
828
- /**
829
- * Denominator for the price ratio (typically 10^20).
830
- */
831
- price_ratio_denominator: u128;
832
- /**
833
- * Total gas fee in source chain native token units.
834
- */
835
- total_gas_fee: i128;
836
- }
837
833
  export type WorkerStorage = {
838
834
  tag: "Paused";
839
835
  values: void;
840
836
  } | {
841
- tag: "DepositAddress";
837
+ tag: "Admins";
842
838
  values: void;
843
839
  } | {
844
- tag: "PriceFeed";
840
+ tag: "MessageLibs";
845
841
  values: void;
846
842
  } | {
847
- tag: "WorkerFeeLib";
848
- values: void;
843
+ tag: "Allowlist";
844
+ values: readonly [string];
849
845
  } | {
850
- tag: "DefaultMultiplierBps";
846
+ tag: "AllowlistSize";
851
847
  values: void;
852
848
  } | {
853
- tag: "SupportedOptionTypes";
854
- values: readonly [u32];
849
+ tag: "Denylist";
850
+ values: readonly [string];
855
851
  } | {
856
- tag: "MessageLibs";
852
+ tag: "DefaultMultiplierBps";
857
853
  values: void;
858
854
  } | {
859
- tag: "Allowlist";
860
- values: readonly [string];
855
+ tag: "DepositAddress";
856
+ values: void;
861
857
  } | {
862
- tag: "Denylist";
863
- values: readonly [string];
858
+ tag: "SupportedOptionTypes";
859
+ values: readonly [u32];
864
860
  } | {
865
- tag: "AllowlistSize";
861
+ tag: "WorkerFeeLib";
866
862
  values: void;
867
863
  } | {
868
- tag: "Admins";
864
+ tag: "PriceFeed";
869
865
  values: void;
870
866
  };
871
867
  export interface Client {
@@ -895,6 +891,34 @@ export interface Client {
895
891
  */
896
892
  simulate?: boolean;
897
893
  }) => Promise<AssembledTransaction<null>>;
894
+ /**
895
+ * Construct and simulate a set_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
896
+ * Sets admin status for an address.
897
+ *
898
+ * Admins can configure worker settings like fee multipliers, deposit addresses,
899
+ * and supported option types.
900
+ *
901
+ * # Arguments
902
+ * * `admin` - The address to set admin status for
903
+ * * `active` - `true` to add admin, `false` to remove
904
+ */
905
+ set_admin: ({ admin, active }: {
906
+ admin: string;
907
+ active: boolean;
908
+ }, txnOptions?: {
909
+ /**
910
+ * The fee to pay for the transaction. Default: BASE_FEE
911
+ */
912
+ fee?: number;
913
+ /**
914
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
915
+ */
916
+ timeoutInSeconds?: number;
917
+ /**
918
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
919
+ */
920
+ simulate?: boolean;
921
+ }) => Promise<AssembledTransaction<null>>;
898
922
  /**
899
923
  * Construct and simulate a set_supported_message_lib transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
900
924
  * Sets whether a message library is supported by this worker.
@@ -1042,7 +1066,7 @@ export interface Client {
1042
1066
  * # Arguments
1043
1067
  * * `admin` - Admin address (must provide authorization)
1044
1068
  * * `eid` - Destination endpoint ID (chain identifier)
1045
- * * `option_types` - Encoded supported option types
1069
+ * * `option_types` - Supported option types. Each byte represents an option type.
1046
1070
  */
1047
1071
  set_supported_option_types: ({ admin, eid, option_types }: {
1048
1072
  admin: string;
@@ -1118,15 +1142,10 @@ export interface Client {
1118
1142
  simulate?: boolean;
1119
1143
  }) => Promise<AssembledTransaction<null>>;
1120
1144
  /**
1121
- * Construct and simulate a is_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1122
- * Returns whether an address is an admin.
1123
- *
1124
- * # Arguments
1125
- * * `admin` - The address to check
1145
+ * Construct and simulate a paused transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1146
+ * Returns whether the worker is paused.
1126
1147
  */
1127
- is_admin: ({ admin }: {
1128
- admin: string;
1129
- }, txnOptions?: {
1148
+ paused: (txnOptions?: {
1130
1149
  /**
1131
1150
  * The fee to pay for the transaction. Default: BASE_FEE
1132
1151
  */
@@ -1141,10 +1160,15 @@ export interface Client {
1141
1160
  simulate?: boolean;
1142
1161
  }) => Promise<AssembledTransaction<boolean>>;
1143
1162
  /**
1144
- * Construct and simulate a admins transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1145
- * Returns all admin addresses.
1163
+ * Construct and simulate a is_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1164
+ * Returns whether an address is an admin.
1165
+ *
1166
+ * # Arguments
1167
+ * * `admin` - The address to check
1146
1168
  */
1147
- admins: (txnOptions?: {
1169
+ is_admin: ({ admin }: {
1170
+ admin: string;
1171
+ }, txnOptions?: {
1148
1172
  /**
1149
1173
  * The fee to pay for the transaction. Default: BASE_FEE
1150
1174
  */
@@ -1157,12 +1181,12 @@ export interface Client {
1157
1181
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1158
1182
  */
1159
1183
  simulate?: boolean;
1160
- }) => Promise<AssembledTransaction<Array<string>>>;
1184
+ }) => Promise<AssembledTransaction<boolean>>;
1161
1185
  /**
1162
- * Construct and simulate a paused transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1163
- * Returns whether the worker is paused.
1186
+ * Construct and simulate a admins transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1187
+ * Returns all admin addresses.
1164
1188
  */
1165
- paused: (txnOptions?: {
1189
+ admins: (txnOptions?: {
1166
1190
  /**
1167
1191
  * The fee to pay for the transaction. Default: BASE_FEE
1168
1192
  */
@@ -1175,7 +1199,7 @@ export interface Client {
1175
1199
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1176
1200
  */
1177
1201
  simulate?: boolean;
1178
- }) => Promise<AssembledTransaction<boolean>>;
1202
+ }) => Promise<AssembledTransaction<Array<string>>>;
1179
1203
  /**
1180
1204
  * Construct and simulate a is_supported_message_lib transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1181
1205
  * Returns whether a message library is supported.
@@ -1243,6 +1267,24 @@ export interface Client {
1243
1267
  */
1244
1268
  simulate?: boolean;
1245
1269
  }) => Promise<AssembledTransaction<boolean>>;
1270
+ /**
1271
+ * Construct and simulate a allowlist_size transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1272
+ * Returns the number of addresses on the allowlist.
1273
+ */
1274
+ allowlist_size: (txnOptions?: {
1275
+ /**
1276
+ * The fee to pay for the transaction. Default: BASE_FEE
1277
+ */
1278
+ fee?: number;
1279
+ /**
1280
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1281
+ */
1282
+ timeoutInSeconds?: number;
1283
+ /**
1284
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1285
+ */
1286
+ simulate?: boolean;
1287
+ }) => Promise<AssembledTransaction<u32>>;
1246
1288
  /**
1247
1289
  * Construct and simulate a is_on_denylist transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1248
1290
  * Returns whether an OApp is on the denylist.
@@ -1276,10 +1318,10 @@ export interface Client {
1276
1318
  * 3. Otherwise → denied
1277
1319
  *
1278
1320
  * # Arguments
1279
- * * `sender` - OApp contract address to check
1321
+ * * `oapp` - OApp contract address to check
1280
1322
  */
1281
- has_acl: ({ sender }: {
1282
- sender: string;
1323
+ has_acl: ({ oapp }: {
1324
+ oapp: string;
1283
1325
  }, txnOptions?: {
1284
1326
  /**
1285
1327
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1294,47 +1336,11 @@ export interface Client {
1294
1336
  */
1295
1337
  simulate?: boolean;
1296
1338
  }) => Promise<AssembledTransaction<boolean>>;
1297
- /**
1298
- * Construct and simulate a allowlist_size transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1299
- * Returns the number of addresses on the allowlist.
1300
- */
1301
- allowlist_size: (txnOptions?: {
1302
- /**
1303
- * The fee to pay for the transaction. Default: BASE_FEE
1304
- */
1305
- fee?: number;
1306
- /**
1307
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1308
- */
1309
- timeoutInSeconds?: number;
1310
- /**
1311
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1312
- */
1313
- simulate?: boolean;
1314
- }) => Promise<AssembledTransaction<u32>>;
1315
- /**
1316
- * Construct and simulate a default_multiplier_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1317
- * Returns the default fee multiplier in basis points.
1318
- */
1319
- default_multiplier_bps: (txnOptions?: {
1320
- /**
1321
- * The fee to pay for the transaction. Default: BASE_FEE
1322
- */
1323
- fee?: number;
1324
- /**
1325
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1326
- */
1327
- timeoutInSeconds?: number;
1328
- /**
1329
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1330
- */
1331
- simulate?: boolean;
1332
- }) => Promise<AssembledTransaction<u32>>;
1333
- /**
1334
- * Construct and simulate a deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1335
- * Returns the deposit address where fees are collected.
1339
+ /**
1340
+ * Construct and simulate a default_multiplier_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1341
+ * Returns the default fee multiplier in basis points.
1336
1342
  */
1337
- deposit_address: (txnOptions?: {
1343
+ default_multiplier_bps: (txnOptions?: {
1338
1344
  /**
1339
1345
  * The fee to pay for the transaction. Default: BASE_FEE
1340
1346
  */
@@ -1347,12 +1353,12 @@ export interface Client {
1347
1353
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1348
1354
  */
1349
1355
  simulate?: boolean;
1350
- }) => Promise<AssembledTransaction<string>>;
1356
+ }) => Promise<AssembledTransaction<u32>>;
1351
1357
  /**
1352
- * Construct and simulate a price_feed transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1353
- * Returns the price feed contract address.
1358
+ * Construct and simulate a deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1359
+ * Returns the deposit address where fees are collected.
1354
1360
  */
1355
- price_feed: (txnOptions?: {
1361
+ deposit_address: (txnOptions?: {
1356
1362
  /**
1357
1363
  * The fee to pay for the transaction. Default: BASE_FEE
1358
1364
  */
@@ -1365,7 +1371,7 @@ export interface Client {
1365
1371
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1366
1372
  */
1367
1373
  simulate?: boolean;
1368
- }) => Promise<AssembledTransaction<string>>;
1374
+ }) => Promise<AssembledTransaction<Option<string>>>;
1369
1375
  /**
1370
1376
  * Construct and simulate a get_supported_option_types transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1371
1377
  * Returns supported option types for a destination endpoint.
@@ -1406,7 +1412,25 @@ export interface Client {
1406
1412
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1407
1413
  */
1408
1414
  simulate?: boolean;
1409
- }) => Promise<AssembledTransaction<string>>;
1415
+ }) => Promise<AssembledTransaction<Option<string>>>;
1416
+ /**
1417
+ * Construct and simulate a price_feed transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1418
+ * Returns the price feed contract address.
1419
+ */
1420
+ price_feed: (txnOptions?: {
1421
+ /**
1422
+ * The fee to pay for the transaction. Default: BASE_FEE
1423
+ */
1424
+ fee?: number;
1425
+ /**
1426
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1427
+ */
1428
+ timeoutInSeconds?: number;
1429
+ /**
1430
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1431
+ */
1432
+ simulate?: boolean;
1433
+ }) => Promise<AssembledTransaction<Option<string>>>;
1410
1434
  /**
1411
1435
  * Construct and simulate a get_fee transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1412
1436
  * Calculates the verification fee for a cross-chain message.
@@ -1548,7 +1572,7 @@ export interface Client {
1548
1572
  simulate?: boolean;
1549
1573
  }) => Promise<AssembledTransaction<Buffer>>;
1550
1574
  /**
1551
- * Construct and simulate a set_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1575
+ * Construct and simulate a set_admin_by_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1552
1576
  * Sets admin status for an address. Can be called by an existing admin.
1553
1577
  *
1554
1578
  * This allows existing admins to add or remove other admins without going through
@@ -1559,7 +1583,7 @@ export interface Client {
1559
1583
  * * `admin` - The address to set admin status for
1560
1584
  * * `active` - `true` to add admin, `false` to remove
1561
1585
  */
1562
- set_admin: ({ caller, admin, active }: {
1586
+ set_admin_by_admin: ({ caller, admin, active }: {
1563
1587
  caller: string;
1564
1588
  admin: string;
1565
1589
  active: boolean;
@@ -1578,20 +1602,13 @@ export interface Client {
1578
1602
  simulate?: boolean;
1579
1603
  }) => Promise<AssembledTransaction<null>>;
1580
1604
  /**
1581
- * Construct and simulate a quorum_change_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1582
- * Allows the quorum to add/remove admins without requiring an admin signature.
1583
- *
1584
- * This function bypasses the normal admin verification in `__check_auth`,
1585
- * requiring only multisig quorum signatures. Must be called as a single
1586
- * operation (cannot be bundled with other calls).
1587
- *
1588
- * # Arguments
1589
- * * `admin` - The address to set admin status for
1590
- * * `active` - `true` to add admin, `false` to remove
1605
+ * Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1606
+ * The type of data required for migration.
1607
+ * Upgrades the contract to new WASM bytecode.
1608
+ * Sets a migration flag that must be cleared by calling `migrate`.
1591
1609
  */
1592
- quorum_change_admin: ({ admin, active }: {
1593
- admin: string;
1594
- active: boolean;
1610
+ upgrade: ({ new_wasm_hash }: {
1611
+ new_wasm_hash: Buffer;
1595
1612
  }, txnOptions?: {
1596
1613
  /**
1597
1614
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1607,10 +1624,12 @@ export interface Client {
1607
1624
  simulate?: boolean;
1608
1625
  }) => Promise<AssembledTransaction<null>>;
1609
1626
  /**
1610
- * Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1627
+ * Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1628
+ * Runs migration logic after an upgrade.
1629
+ * Can only be called when the migration flag is set by a previous `upgrade` call.
1611
1630
  */
1612
- upgrade: ({ new_wasm_hash }: {
1613
- new_wasm_hash: Buffer;
1631
+ migrate: ({ migration_data }: {
1632
+ migration_data: Buffer;
1614
1633
  }, txnOptions?: {
1615
1634
  /**
1616
1635
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1626,11 +1645,11 @@ export interface Client {
1626
1645
  simulate?: boolean;
1627
1646
  }) => Promise<AssembledTransaction<null>>;
1628
1647
  /**
1629
- * Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1648
+ * Construct and simulate a freeze transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1649
+ * Permanently freezes the contract, preventing any future upgrades.
1650
+ * This action is irreversible.
1630
1651
  */
1631
- migrate: ({ migration_data }: {
1632
- migration_data: MigrationData;
1633
- }, txnOptions?: {
1652
+ freeze: (txnOptions?: {
1634
1653
  /**
1635
1654
  * The fee to pay for the transaction. Default: BASE_FEE
1636
1655
  */
@@ -1644,6 +1663,24 @@ export interface Client {
1644
1663
  */
1645
1664
  simulate?: boolean;
1646
1665
  }) => Promise<AssembledTransaction<null>>;
1666
+ /**
1667
+ * Construct and simulate a is_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1668
+ * Returns whether the contract is frozen (upgrades disabled).
1669
+ */
1670
+ is_frozen: (txnOptions?: {
1671
+ /**
1672
+ * The fee to pay for the transaction. Default: BASE_FEE
1673
+ */
1674
+ fee?: number;
1675
+ /**
1676
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1677
+ */
1678
+ timeoutInSeconds?: number;
1679
+ /**
1680
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1681
+ */
1682
+ simulate?: boolean;
1683
+ }) => Promise<AssembledTransaction<boolean>>;
1647
1684
  /**
1648
1685
  * Construct and simulate a authorizer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1649
1686
  */
@@ -1662,23 +1699,12 @@ export interface Client {
1662
1699
  simulate?: boolean;
1663
1700
  }) => Promise<AssembledTransaction<string>>;
1664
1701
  /**
1665
- * Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1666
- * Sets TTL configs for instance and persistent storage.
1667
- *
1668
- * - `None` values remove the corresponding config (disables auto-extension for that type)
1669
- * - Validates that `threshold <= extend_to <= MAX_TTL`
1670
- *
1671
- * # Arguments
1672
- * - `instance` - TTL config for instance storage
1673
- * - `persistent` - TTL config for persistent storage
1674
- *
1675
- * # Panics
1676
- * - `TtlConfigFrozen` if configs are frozen
1677
- * - `InvalidTtlConfig` if validation fails
1702
+ * Construct and simulate a set_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1703
+ * Adds or removes a signer from the multisig. Requires owner authorization.
1678
1704
  */
1679
- set_ttl_configs: ({ instance, persistent }: {
1680
- instance: Option<TtlConfig>;
1681
- persistent: Option<TtlConfig>;
1705
+ set_signer: ({ signer, active }: {
1706
+ signer: Buffer;
1707
+ active: boolean;
1682
1708
  }, txnOptions?: {
1683
1709
  /**
1684
1710
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1694,10 +1720,12 @@ export interface Client {
1694
1720
  simulate?: boolean;
1695
1721
  }) => Promise<AssembledTransaction<null>>;
1696
1722
  /**
1697
- * Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1698
- * Returns the current TTL configs as (instance_config, persistent_config).
1723
+ * Construct and simulate a set_threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1724
+ * Sets the signature threshold (quorum). Requires owner authorization.
1699
1725
  */
1700
- ttl_configs: (txnOptions?: {
1726
+ set_threshold: ({ threshold }: {
1727
+ threshold: u32;
1728
+ }, txnOptions?: {
1701
1729
  /**
1702
1730
  * The fee to pay for the transaction. Default: BASE_FEE
1703
1731
  */
@@ -1710,18 +1738,12 @@ export interface Client {
1710
1738
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1711
1739
  */
1712
1740
  simulate?: boolean;
1713
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1741
+ }) => Promise<AssembledTransaction<null>>;
1714
1742
  /**
1715
- * Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1716
- * Permanently freezes TTL configs, preventing any future modifications.
1717
- *
1718
- * This is irreversible and provides immutability guarantees to users.
1719
- * Emits `TtlConfigsFrozen` event.
1720
- *
1721
- * # Panics
1722
- * - `TtlConfigAlreadyFrozen` if already frozen
1743
+ * Construct and simulate a get_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1744
+ * Returns all registered signers.
1723
1745
  */
1724
- freeze_ttl_configs: (txnOptions?: {
1746
+ get_signers: (txnOptions?: {
1725
1747
  /**
1726
1748
  * The fee to pay for the transaction. Default: BASE_FEE
1727
1749
  */
@@ -1734,12 +1756,12 @@ export interface Client {
1734
1756
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1735
1757
  */
1736
1758
  simulate?: boolean;
1737
- }) => Promise<AssembledTransaction<null>>;
1759
+ }) => Promise<AssembledTransaction<Array<Buffer>>>;
1738
1760
  /**
1739
- * Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1740
- * Returns whether TTL configs are frozen.
1761
+ * Construct and simulate a total_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1762
+ * Returns the total number of registered signers.
1741
1763
  */
1742
- is_ttl_configs_frozen: (txnOptions?: {
1764
+ total_signers: (txnOptions?: {
1743
1765
  /**
1744
1766
  * The fee to pay for the transaction. Default: BASE_FEE
1745
1767
  */
@@ -1752,19 +1774,13 @@ export interface Client {
1752
1774
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1753
1775
  */
1754
1776
  simulate?: boolean;
1755
- }) => Promise<AssembledTransaction<boolean>>;
1777
+ }) => Promise<AssembledTransaction<u32>>;
1756
1778
  /**
1757
- * Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1758
- * Extends the instance TTL.
1759
- *
1760
- * # Arguments
1761
- *
1762
- * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
1763
- * * `extend_to` - The TTL to extend to.
1779
+ * Construct and simulate a is_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1780
+ * Checks if an address is a registered signer.
1764
1781
  */
1765
- extend_instance_ttl: ({ threshold, extend_to }: {
1766
- threshold: u32;
1767
- extend_to: u32;
1782
+ is_signer: ({ signer }: {
1783
+ signer: Buffer;
1768
1784
  }, txnOptions?: {
1769
1785
  /**
1770
1786
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1778,15 +1794,12 @@ export interface Client {
1778
1794
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1779
1795
  */
1780
1796
  simulate?: boolean;
1781
- }) => Promise<AssembledTransaction<null>>;
1797
+ }) => Promise<AssembledTransaction<boolean>>;
1782
1798
  /**
1783
- * Construct and simulate a set_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1784
- * Adds or removes a signer from the multisig. Requires owner authorization.
1799
+ * Construct and simulate a threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1800
+ * Returns the current signature threshold (quorum).
1785
1801
  */
1786
- set_signer: ({ signer, active }: {
1787
- signer: Buffer;
1788
- active: boolean;
1789
- }, txnOptions?: {
1802
+ threshold: (txnOptions?: {
1790
1803
  /**
1791
1804
  * The fee to pay for the transaction. Default: BASE_FEE
1792
1805
  */
@@ -1799,13 +1812,14 @@ export interface Client {
1799
1812
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1800
1813
  */
1801
1814
  simulate?: boolean;
1802
- }) => Promise<AssembledTransaction<null>>;
1815
+ }) => Promise<AssembledTransaction<u32>>;
1803
1816
  /**
1804
- * Construct and simulate a set_threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1805
- * Sets the signature threshold (quorum). Requires owner authorization.
1817
+ * Construct and simulate a verify_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1818
+ * Verifies signatures against the configured threshold.
1806
1819
  */
1807
- set_threshold: ({ threshold }: {
1808
- threshold: u32;
1820
+ verify_signatures: ({ digest, signatures }: {
1821
+ digest: Buffer;
1822
+ signatures: Array<Buffer>;
1809
1823
  }, txnOptions?: {
1810
1824
  /**
1811
1825
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1821,10 +1835,14 @@ export interface Client {
1821
1835
  simulate?: boolean;
1822
1836
  }) => Promise<AssembledTransaction<null>>;
1823
1837
  /**
1824
- * Construct and simulate a get_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1825
- * Returns all registered signers.
1838
+ * Construct and simulate a verify_n_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1839
+ * Verifies signatures against a custom threshold.
1826
1840
  */
1827
- get_signers: (txnOptions?: {
1841
+ verify_n_signatures: ({ digest, signatures, threshold }: {
1842
+ digest: Buffer;
1843
+ signatures: Array<Buffer>;
1844
+ threshold: u32;
1845
+ }, txnOptions?: {
1828
1846
  /**
1829
1847
  * The fee to pay for the transaction. Default: BASE_FEE
1830
1848
  */
@@ -1837,12 +1855,20 @@ export interface Client {
1837
1855
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1838
1856
  */
1839
1857
  simulate?: boolean;
1840
- }) => Promise<AssembledTransaction<Array<Buffer>>>;
1858
+ }) => Promise<AssembledTransaction<null>>;
1841
1859
  /**
1842
- * Construct and simulate a total_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1843
- * Returns the total number of registered signers.
1860
+ * Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1861
+ * Extends the instance TTL.
1862
+ *
1863
+ * # Arguments
1864
+ *
1865
+ * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
1866
+ * * `extend_to` - The TTL to extend to.
1844
1867
  */
1845
- total_signers: (txnOptions?: {
1868
+ extend_instance_ttl: ({ threshold, extend_to }: {
1869
+ threshold: u32;
1870
+ extend_to: u32;
1871
+ }, txnOptions?: {
1846
1872
  /**
1847
1873
  * The fee to pay for the transaction. Default: BASE_FEE
1848
1874
  */
@@ -1855,13 +1881,25 @@ export interface Client {
1855
1881
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1856
1882
  */
1857
1883
  simulate?: boolean;
1858
- }) => Promise<AssembledTransaction<u32>>;
1884
+ }) => Promise<AssembledTransaction<null>>;
1859
1885
  /**
1860
- * Construct and simulate a is_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1861
- * Checks if an address is a registered signer.
1886
+ * Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1887
+ * Sets TTL configs for instance and persistent storage.
1888
+ *
1889
+ * - `None` values remove the corresponding config (disables auto-extension for that type)
1890
+ * - Validates that `threshold <= extend_to <= MAX_TTL`
1891
+ *
1892
+ * # Arguments
1893
+ * - `instance` - TTL config for instance storage
1894
+ * - `persistent` - TTL config for persistent storage
1895
+ *
1896
+ * # Panics
1897
+ * - `TtlConfigFrozen` if configs are frozen
1898
+ * - `InvalidTtlConfig` if validation fails
1862
1899
  */
1863
- is_signer: ({ signer }: {
1864
- signer: Buffer;
1900
+ set_ttl_configs: ({ instance, persistent }: {
1901
+ instance: Option<TtlConfig>;
1902
+ persistent: Option<TtlConfig>;
1865
1903
  }, txnOptions?: {
1866
1904
  /**
1867
1905
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1875,12 +1913,12 @@ export interface Client {
1875
1913
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1876
1914
  */
1877
1915
  simulate?: boolean;
1878
- }) => Promise<AssembledTransaction<boolean>>;
1916
+ }) => Promise<AssembledTransaction<null>>;
1879
1917
  /**
1880
- * Construct and simulate a threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1881
- * Returns the current signature threshold (quorum).
1918
+ * Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1919
+ * Returns the current TTL configs as (instance_config, persistent_config).
1882
1920
  */
1883
- threshold: (txnOptions?: {
1921
+ ttl_configs: (txnOptions?: {
1884
1922
  /**
1885
1923
  * The fee to pay for the transaction. Default: BASE_FEE
1886
1924
  */
@@ -1893,15 +1931,18 @@ export interface Client {
1893
1931
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1894
1932
  */
1895
1933
  simulate?: boolean;
1896
- }) => Promise<AssembledTransaction<u32>>;
1934
+ }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1897
1935
  /**
1898
- * Construct and simulate a verify_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1899
- * Verifies signatures against the configured threshold.
1936
+ * Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1937
+ * Permanently freezes TTL configs, preventing any future modifications.
1938
+ *
1939
+ * This is irreversible and provides immutability guarantees to users.
1940
+ * Emits `TtlConfigsFrozen` event.
1941
+ *
1942
+ * # Panics
1943
+ * - `TtlConfigAlreadyFrozen` if already frozen
1900
1944
  */
1901
- verify_signatures: ({ digest, signatures }: {
1902
- digest: Buffer;
1903
- signatures: Array<Buffer>;
1904
- }, txnOptions?: {
1945
+ freeze_ttl_configs: (txnOptions?: {
1905
1946
  /**
1906
1947
  * The fee to pay for the transaction. Default: BASE_FEE
1907
1948
  */
@@ -1916,14 +1957,10 @@ export interface Client {
1916
1957
  simulate?: boolean;
1917
1958
  }) => Promise<AssembledTransaction<null>>;
1918
1959
  /**
1919
- * Construct and simulate a verify_n_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1920
- * Verifies signatures against a custom threshold.
1960
+ * Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1961
+ * Returns whether TTL configs are frozen.
1921
1962
  */
1922
- verify_n_signatures: ({ digest, signatures, threshold }: {
1923
- digest: Buffer;
1924
- signatures: Array<Buffer>;
1925
- threshold: u32;
1926
- }, txnOptions?: {
1963
+ is_ttl_configs_frozen: (txnOptions?: {
1927
1964
  /**
1928
1965
  * The fee to pay for the transaction. Default: BASE_FEE
1929
1966
  */
@@ -1936,7 +1973,7 @@ export interface Client {
1936
1973
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1937
1974
  */
1938
1975
  simulate?: boolean;
1939
- }) => Promise<AssembledTransaction<null>>;
1976
+ }) => Promise<AssembledTransaction<boolean>>;
1940
1977
  }
1941
1978
  export declare class Client extends ContractClient {
1942
1979
  readonly options: ContractClientOptions;
@@ -1965,6 +2002,7 @@ export declare class Client extends ContractClient {
1965
2002
  constructor(options: ContractClientOptions);
1966
2003
  readonly fromJSON: {
1967
2004
  set_paused: (json: string) => AssembledTransaction<null>;
2005
+ set_admin: (json: string) => AssembledTransaction<null>;
1968
2006
  set_supported_message_lib: (json: string) => AssembledTransaction<null>;
1969
2007
  set_allowlist: (json: string) => AssembledTransaction<null>;
1970
2008
  set_denylist: (json: string) => AssembledTransaction<null>;
@@ -1973,36 +2011,32 @@ export declare class Client extends ContractClient {
1973
2011
  set_supported_option_types: (json: string) => AssembledTransaction<null>;
1974
2012
  set_worker_fee_lib: (json: string) => AssembledTransaction<null>;
1975
2013
  set_price_feed: (json: string) => AssembledTransaction<null>;
2014
+ paused: (json: string) => AssembledTransaction<boolean>;
1976
2015
  is_admin: (json: string) => AssembledTransaction<boolean>;
1977
2016
  admins: (json: string) => AssembledTransaction<string[]>;
1978
- paused: (json: string) => AssembledTransaction<boolean>;
1979
2017
  is_supported_message_lib: (json: string) => AssembledTransaction<boolean>;
1980
2018
  message_libs: (json: string) => AssembledTransaction<string[]>;
1981
2019
  is_on_allowlist: (json: string) => AssembledTransaction<boolean>;
2020
+ allowlist_size: (json: string) => AssembledTransaction<number>;
1982
2021
  is_on_denylist: (json: string) => AssembledTransaction<boolean>;
1983
2022
  has_acl: (json: string) => AssembledTransaction<boolean>;
1984
- allowlist_size: (json: string) => AssembledTransaction<number>;
1985
2023
  default_multiplier_bps: (json: string) => AssembledTransaction<number>;
1986
- deposit_address: (json: string) => AssembledTransaction<string>;
1987
- price_feed: (json: string) => AssembledTransaction<string>;
2024
+ deposit_address: (json: string) => AssembledTransaction<Option<string>>;
1988
2025
  get_supported_option_types: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
1989
- worker_fee_lib: (json: string) => AssembledTransaction<string>;
2026
+ worker_fee_lib: (json: string) => AssembledTransaction<Option<string>>;
2027
+ price_feed: (json: string) => AssembledTransaction<Option<string>>;
1990
2028
  get_fee: (json: string) => AssembledTransaction<bigint>;
1991
2029
  assign_job: (json: string) => AssembledTransaction<FeeRecipient>;
1992
2030
  set_dst_config: (json: string) => AssembledTransaction<null>;
1993
2031
  dst_config: (json: string) => AssembledTransaction<Option<DstConfig>>;
1994
2032
  vid: (json: string) => AssembledTransaction<number>;
1995
2033
  hash_call_data: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
1996
- set_admin: (json: string) => AssembledTransaction<null>;
1997
- quorum_change_admin: (json: string) => AssembledTransaction<null>;
2034
+ set_admin_by_admin: (json: string) => AssembledTransaction<null>;
1998
2035
  upgrade: (json: string) => AssembledTransaction<null>;
1999
2036
  migrate: (json: string) => AssembledTransaction<null>;
2037
+ freeze: (json: string) => AssembledTransaction<null>;
2038
+ is_frozen: (json: string) => AssembledTransaction<boolean>;
2000
2039
  authorizer: (json: string) => AssembledTransaction<string>;
2001
- set_ttl_configs: (json: string) => AssembledTransaction<null>;
2002
- ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
2003
- freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
2004
- is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
2005
- extend_instance_ttl: (json: string) => AssembledTransaction<null>;
2006
2040
  set_signer: (json: string) => AssembledTransaction<null>;
2007
2041
  set_threshold: (json: string) => AssembledTransaction<null>;
2008
2042
  get_signers: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>[]>;
@@ -2011,5 +2045,10 @@ export declare class Client extends ContractClient {
2011
2045
  threshold: (json: string) => AssembledTransaction<number>;
2012
2046
  verify_signatures: (json: string) => AssembledTransaction<null>;
2013
2047
  verify_n_signatures: (json: string) => AssembledTransaction<null>;
2048
+ extend_instance_ttl: (json: string) => AssembledTransaction<null>;
2049
+ set_ttl_configs: (json: string) => AssembledTransaction<null>;
2050
+ ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
2051
+ freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
2052
+ is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
2014
2053
  };
2015
2054
  }