@layerzerolabs/protocol-stellar-v2 0.2.20 → 0.2.22

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 (198) hide show
  1. package/.turbo/turbo-build.log +783 -802
  2. package/.turbo/turbo-lint.log +320 -157
  3. package/.turbo/turbo-test.log +1414 -1457
  4. package/Cargo.lock +109 -108
  5. package/Cargo.toml +32 -18
  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 +2 -2
  9. package/contracts/common-macros/src/lib.rs +27 -10
  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/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +6 -12
  13. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +12 -17
  14. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +2 -7
  15. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +20 -9
  16. package/contracts/common-macros/src/tests/upgradeable.rs +26 -4
  17. package/contracts/common-macros/src/ttl_configurable.rs +2 -10
  18. package/contracts/common-macros/src/ttl_extendable.rs +2 -10
  19. package/contracts/common-macros/src/upgradeable.rs +56 -15
  20. package/contracts/common-macros/src/utils.rs +0 -9
  21. package/contracts/endpoint-v2/src/lib.rs +3 -2
  22. package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +2 -2
  23. package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +3 -3
  24. package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +4 -4
  25. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +17 -5
  26. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
  27. package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +2 -2
  28. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +2 -2
  29. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +6 -6
  30. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +67 -37
  31. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +5 -5
  32. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +44 -54
  33. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +7 -7
  34. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +8 -8
  35. package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +3 -3
  36. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +4 -4
  37. package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +3 -3
  38. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +2 -2
  39. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +3 -3
  40. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +2 -2
  41. package/contracts/layerzero-views/Cargo.toml +0 -1
  42. package/contracts/layerzero-views/src/layerzero_view.rs +1 -13
  43. package/contracts/macro-integration-tests/Cargo.toml +5 -15
  44. package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +48 -0
  45. package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +170 -0
  46. package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +154 -0
  47. package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +338 -0
  48. package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +435 -0
  49. package/contracts/macro-integration-tests/tests/runtime.rs +1 -0
  50. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +8 -0
  51. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +5 -0
  52. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +8 -0
  53. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +71 -0
  54. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +10 -0
  55. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +5 -0
  56. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +8 -0
  57. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +5 -0
  58. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +8 -0
  59. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +5 -0
  60. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +38 -0
  61. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +96 -0
  62. package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +64 -0
  63. package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +46 -0
  64. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +8 -0
  65. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +1 -1
  66. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +1 -1
  67. package/contracts/macro-integration-tests/tests/ui_oapp.rs +11 -0
  68. package/contracts/message-libs/message-lib-common/Cargo.toml +0 -1
  69. package/contracts/message-libs/message-lib-common/src/errors.rs +1 -1
  70. package/contracts/message-libs/treasury/Cargo.toml +0 -2
  71. package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +2 -2
  72. package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +2 -2
  73. package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +2 -2
  74. package/contracts/message-libs/uln-302/src/tests/receive_uln302/verify.rs +2 -2
  75. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_executor_config.rs +2 -2
  76. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +2 -2
  77. package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +7 -27
  78. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
  79. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +2 -2
  80. package/contracts/oapps/counter/Cargo.toml +4 -6
  81. package/contracts/oapps/counter/integration_tests/utils.rs +19 -12
  82. package/contracts/oapps/oapp/src/errors.rs +1 -1
  83. package/contracts/oapps/oapp/src/interfaces/mod.rs +3 -0
  84. package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +47 -0
  85. package/contracts/oapps/oapp/src/lib.rs +1 -0
  86. package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +4 -4
  87. package/contracts/oapps/oapp/src/oapp_core.rs +5 -5
  88. package/contracts/oapps/oapp/src/oapp_options_type3.rs +12 -4
  89. package/contracts/oapps/oapp/src/oapp_receiver.rs +14 -9
  90. package/contracts/oapps/oapp/src/tests/mod.rs +4 -4
  91. package/contracts/oapps/oapp/src/tests/{test_oapp_core.rs → oapp_core.rs} +4 -4
  92. package/contracts/oapps/oapp/src/tests/{test_oapp_options_type3.rs → oapp_options_type3.rs} +3 -4
  93. package/contracts/oapps/oapp-macros/Cargo.toml +8 -4
  94. package/contracts/oapps/oapp-macros/src/generators.rs +9 -34
  95. package/contracts/oapps/oapp-macros/src/lib.rs +3 -0
  96. package/contracts/oapps/oapp-macros/src/tests/mod.rs +2 -0
  97. package/contracts/oapps/oapp-macros/src/tests/oapp.rs +88 -0
  98. package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +86 -0
  99. package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +103 -0
  100. package/contracts/oapps/oft/integration-tests/utils.rs +28 -8
  101. package/contracts/oapps/oft/src/extensions/oft_fee.rs +136 -74
  102. package/contracts/oapps/oft/src/extensions/pausable.rs +44 -10
  103. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +170 -130
  104. package/contracts/oapps/oft/src/oft.rs +19 -12
  105. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
  106. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +1 -1
  107. package/contracts/oapps/oft-core/Cargo.toml +1 -4
  108. package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -2
  109. package/contracts/oapps/oft-core/integration-tests/utils.rs +21 -3
  110. package/contracts/oapps/oft-core/src/errors.rs +3 -2
  111. package/contracts/oapps/oft-core/src/events.rs +6 -0
  112. package/contracts/oapps/oft-core/src/lib.rs +1 -1
  113. package/contracts/oapps/oft-core/src/oft_core.rs +115 -60
  114. package/contracts/oapps/oft-core/src/storage.rs +7 -3
  115. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -0
  116. package/contracts/oapps/oft-core/src/tests/test_decimals.rs +37 -2
  117. package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +2 -2
  118. package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +323 -0
  119. package/contracts/oapps/oft-core/src/tests/test_send.rs +2 -2
  120. package/contracts/oapps/oft-core/src/tests/test_utils.rs +59 -14
  121. package/contracts/utils/Cargo.toml +0 -1
  122. package/contracts/utils/src/errors.rs +1 -1
  123. package/contracts/utils/src/multisig.rs +17 -8
  124. package/contracts/utils/src/ownable.rs +6 -6
  125. package/contracts/utils/src/testing_utils.rs +124 -54
  126. package/contracts/utils/src/tests/multisig.rs +12 -12
  127. package/contracts/utils/src/tests/ownable.rs +6 -6
  128. package/contracts/utils/src/tests/testing_utils.rs +50 -167
  129. package/contracts/utils/src/tests/ttl_configurable.rs +5 -5
  130. package/contracts/utils/src/tests/upgradeable.rs +1 -1
  131. package/contracts/utils/src/ttl_configurable.rs +10 -4
  132. package/contracts/utils/src/upgradeable.rs +5 -5
  133. package/contracts/workers/dvn/Cargo.toml +5 -6
  134. package/contracts/workers/dvn/src/dvn.rs +2 -12
  135. package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
  136. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +37 -19
  137. package/contracts/workers/dvn-fee-lib/src/lib.rs +12 -2
  138. package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +15 -13
  139. package/contracts/workers/executor/Cargo.toml +3 -0
  140. package/contracts/workers/executor/src/executor.rs +2 -12
  141. package/contracts/workers/executor/src/lib.rs +2 -2
  142. package/contracts/workers/executor/src/tests/auth.rs +394 -0
  143. package/contracts/workers/executor/src/tests/executor.rs +410 -0
  144. package/contracts/workers/executor/src/tests/mod.rs +3 -0
  145. package/contracts/workers/executor/src/tests/setup.rs +250 -0
  146. package/contracts/workers/executor-fee-lib/Cargo.toml +5 -0
  147. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +1 -12
  148. package/contracts/workers/executor-fee-lib/src/lib.rs +8 -2
  149. package/contracts/workers/executor-helper/Cargo.toml +0 -1
  150. package/contracts/workers/price-feed/Cargo.toml +5 -0
  151. package/contracts/workers/price-feed/src/lib.rs +9 -4
  152. package/contracts/workers/price-feed/src/price_feed.rs +1 -11
  153. package/contracts/workers/worker/src/errors.rs +1 -1
  154. package/contracts/workers/worker/src/tests/setup.rs +1 -1
  155. package/contracts/workers/worker/src/tests/worker.rs +55 -41
  156. package/contracts/workers/worker/src/worker.rs +34 -25
  157. package/docs/error-spec.md +55 -0
  158. package/docs/layerzero-v2-on-stellar.md +447 -0
  159. package/docs/oapp-guide.md +212 -0
  160. package/docs/oft-guide.md +314 -0
  161. package/package.json +3 -3
  162. package/sdk/.turbo/turbo-test.log +260 -257
  163. package/sdk/dist/generated/bml.d.ts +3 -3
  164. package/sdk/dist/generated/bml.js +4 -4
  165. package/sdk/dist/generated/counter.d.ts +295 -295
  166. package/sdk/dist/generated/counter.js +43 -43
  167. package/sdk/dist/generated/dvn.d.ts +91 -91
  168. package/sdk/dist/generated/dvn.js +24 -24
  169. package/sdk/dist/generated/dvn_fee_lib.d.ts +92 -92
  170. package/sdk/dist/generated/dvn_fee_lib.js +25 -25
  171. package/sdk/dist/generated/endpoint.d.ts +99 -99
  172. package/sdk/dist/generated/endpoint.js +16 -16
  173. package/sdk/dist/generated/executor.d.ts +91 -91
  174. package/sdk/dist/generated/executor.js +24 -24
  175. package/sdk/dist/generated/executor_fee_lib.d.ts +92 -92
  176. package/sdk/dist/generated/executor_fee_lib.js +25 -25
  177. package/sdk/dist/generated/executor_helper.d.ts +3 -3
  178. package/sdk/dist/generated/executor_helper.js +4 -4
  179. package/sdk/dist/generated/layerzero_view.d.ts +186 -186
  180. package/sdk/dist/generated/layerzero_view.js +35 -35
  181. package/sdk/dist/generated/oft.d.ts +366 -352
  182. package/sdk/dist/generated/oft.js +74 -79
  183. package/sdk/dist/generated/price_feed.d.ts +198 -198
  184. package/sdk/dist/generated/price_feed.js +39 -39
  185. package/sdk/dist/generated/sml.d.ts +99 -99
  186. package/sdk/dist/generated/sml.js +16 -16
  187. package/sdk/dist/generated/treasury.d.ts +99 -99
  188. package/sdk/dist/generated/treasury.js +16 -16
  189. package/sdk/dist/generated/uln302.d.ts +99 -99
  190. package/sdk/dist/generated/uln302.js +16 -16
  191. package/sdk/dist/generated/upgrader.d.ts +3 -3
  192. package/sdk/dist/generated/upgrader.js +3 -3
  193. package/sdk/package.json +1 -1
  194. package/sdk/test/suites/localnet.ts +84 -20
  195. package/contracts/ERROR_SPEC.md +0 -51
  196. package/contracts/endpoint-v2/ARCHITECTURE.md +0 -233
  197. /package/contracts/oapps/oapp/src/tests/{test_oapp_receiver.rs → oapp_receiver.rs} +0 -0
  198. /package/contracts/oapps/oapp/src/tests/{test_oapp_sender.rs → oapp_sender.rs} +0 -0
@@ -6,14 +6,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
7
  /**
8
8
  * Embedded WASM bytecode (base64-encoded)
9
- * Size: 59665 bytes (58.27 KB)
9
+ * Size: 61037 bytes (59.61 KB)
10
10
  */
11
- export declare const WASM_BASE64 = "AGFzbQEAAAAB+gEoYAF+AX5gAn5+AX5gA35+fgF+YAR+fn5+AX5gAAF+YAF+AX9gAn9/AX9gBX5+fn5+AGACf38BfmADfn5+AGADf39/AGAEf39/fwBgBH9/fn4AYAN/f38BfmABfwBgAn9/AGACfn8BfmABfgBgAn5+AX9gAn9+AGAAAGAAAX9gAX8BfmACfn8AYAN/fn4AYAV/fn9+fgBgA35/fwBgAX8Bf2ACf34Bf2AFfn9/f38AYAR/f39/AX5gBn9+fn5+fwBgBX9+fn5+AGAGfn5+fn5+AX5gBH5+fn4AYAJ+fwF/YAR+fn9/AX5gAn5+AGAEf35+fwBgA39/fwF/AuUBJgF2ATMAAAF2ATEAAQFiAW0AAgFsATcAAwFsAV8AAgFiATgAAAFiAWUAAQFsATEAAQFiATQABAFhATAAAAFiAV8AAAFiAWYAAgF4ATEAAQFsATIAAQF2AV8ABAF4ATcABAFkAV8AAgFhATYAAAFpAV8AAAFpATAAAAFiATEAAwFiATMAAQF2AWcAAQFpATgAAAFpATcAAAFpATYAAQFiAWoAAQFiATIAAwFtATkAAgFtAWEAAwF4ATAAAQFiATAAAAF4ATQABAF4ATMABAF4ATgABAFsATAAAQFsATgAAQF4ATUAAAO4AbYBBQYHAQgJBwoICwgMAA0ODwgOEBEIEg4LDwgTCgQUFRYUBAQOFxQOFg4EChMPBBYYERkOExoTGxwcFBYTBAQUFQwGDwoKDAoEBBMPGw4WFR0YEx4KHwMIAAEBAQEAAQAAEgAABAAEAAQAEwggBAQFFAQEAhYTIAMVABMhDw8RIgQEAQACABMBIRYIIwEUJAIEBAABAQABExUWBA8EBAEEBAAlARQYBAQUChMKDwofJiAgJiAnJyAEBQFwAQEBBQMBABEGIQR/AUGAgMAAC38AQZCJwAALfwBBvovAAAt/AEHAi8AACwesBzYGbWVtb3J5AgAOc2V0X3JhdGVfbGltaXQAexB1bnNldF9yYXRlX2xpbWl0AH4RcmF0ZV9saW1pdF9jb25maWcAfxRyYXRlX2xpbWl0X2luX2ZsaWdodACAARNyYXRlX2xpbWl0X2NhcGFjaXR5AIEBE3NldF9kZWZhdWx0X2ZlZV9icHMAggELc2V0X2ZlZV9icHMAgwENdW5zZXRfZmVlX2JwcwCEARdzZXRfZmVlX2RlcG9zaXRfYWRkcmVzcwCFAQtoYXNfZmVlX2JwcwCHARFlZmZlY3RpdmVfZmVlX2JwcwCIAQ9kZWZhdWx0X2ZlZV9icHMAiQEHZmVlX2JwcwCKARNmZWVfZGVwb3NpdF9hZGRyZXNzAIsBCnNldF9wYXVzZWQAjAEJaXNfcGF1c2VkAI0BCXF1b3RlX29mdACOAQV0b2tlbgCSAQ9zaGFyZWRfZGVjaW1hbHMAkwEXZGVjaW1hbF9jb252ZXJzaW9uX3JhdGUAlgERYXBwcm92YWxfcmVxdWlyZWQAlwEKcXVvdGVfc2VuZACYAQRzZW5kAJwBDV9fY29uc3RydWN0b3IAoAEIb2Z0X3R5cGUApQEKYXV0aG9yaXplcgCmARBlbmZvcmNlZF9vcHRpb25zAKcBFHNldF9lbmZvcmNlZF9vcHRpb25zAKgBD2NvbWJpbmVfb3B0aW9ucwCpARVhbGxvd19pbml0aWFsaXplX3BhdGgAqgEKbmV4dF9ub25jZQCsAQpsel9yZWNlaXZlAK0BFWlzX2NvbXBvc2VfbXNnX3NlbmRlcgC0AQxvYXBwX3ZlcnNpb24AtQEIZW5kcG9pbnQAtgEEcGVlcgC3AQhzZXRfcGVlcgC5AQxzZXRfZGVsZWdhdGUAugEPc2V0X3R0bF9jb25maWdzALsBC3R0bF9jb25maWdzAL8BEmZyZWV6ZV90dGxfY29uZmlncwDBARVpc190dGxfY29uZmlnc19mcm96ZW4AwgETZXh0ZW5kX2luc3RhbmNlX3R0bADDAQVvd25lcgDEAQ1wZW5kaW5nX293bmVyAMUBEnRyYW5zZmVyX293bmVyc2hpcADGARpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgDIARBhY2NlcHRfb3duZXJzaGlwAMsBEnJlbm91bmNlX293bmVyc2hpcADMAQFfAwELb2Z0X3ZlcnNpb24AtQEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMK3OsBtgGuAQMBfwF+An9BAiEBAkAgAEL/AYNCywBSDQAgABCAgICAACICQoCAgIAQVA0AAkAgAEIEEIGAgIAAIgCnQf8BcSIDQcoARg0AIANBDkcNAQsgAkIgiKchAwJAAkACQCAAQeCBwIAArUIghkIEhEKEgICAIBCCgICAAEIgiKcOAgABAwtBASADEKeAgIAADQJBACEEDAELQQEhBEEBIAMQp4CAgAANAQsgBCEBCyABCxkAAkAgASAASQ0AIAEgAGsPCxDfgICAAAALsQEBAn8jgICAgABBMGsiBSSAgICAACAFIAMgBBCpgICAADcDECAFIAI3AwggBSABNwMAQQAhBgNAAkAgBkEYRw0AQQAhBgJAA0AgBkEYRg0BIAVBGGogBmogBSAGaikDADcDACAGQQhqIQYMAAsLIABCju7qlb623vMAIAVBGGpBAxCqgICAABCrgICAACAFQTBqJICAgIAADwsgBUEYaiAGakICNwMAIAZBCGohBgwACwtDAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ9oCAgAACQCACKAIAQQFHDQAACyACKQMIIQEgAkEQaiSAgICAACABCxoAIACtQiCGQgSEIAGtQiCGQgSEEJaAgIAACyEAAkAgACABIAIQkICAgABC/wGDQgJRDQAQ34CAgAAACwuxAQECfyOAgICAAEEwayIFJICAgIAAIAUgAyAEEKmAgIAANwMQIAUgAjcDCCAFIAE3AwBBACEGA0ACQCAGQRhHDQBBACEGAkADQCAGQRhGDQEgBUEYaiAGaiAFIAZqKQMANwMAIAZBCGohBgwACwsgAEKO7uqVvrbe8wAgBUEYakEDEKqAgIAAEKuAgIAAIAVBMGokgICAgAAPCyAFQRhqIAZqQgI3AwAgBkEIaiEGDAALCycAQQEgABCugICAAEIBIAGtQiCGQgSEIAKtQiCGQgSEEIOAgIAAGgvHAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQAJAAkAgAA4DAAECAAsgAkGAgMCAAEENENCAgIAAIAIoAgANAyACIAIpAwgQ0YCAgAAMAgsgAkGNgMCAAEEGENCAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ1YCAgAAMAQsgAkGTgMCAAEERENCAgIAAIAIoAgANASACIAIpAwgQ0YCAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsnACAAIAEQsICAgABCASACrUIghkIEhCADrUIghkIEhBCDgICAABoL+gECAX8CfiOAgICAAEEwayICJICAgIAAIAJBIGpByILAgABBCRDQgICAAAJAAkAgAigCIA0AIAIpAyghAwJAAkAgAUEBcUUNACACQSBqQdeBwIAAQQgQ0ICAgAAgAigCIA0CIAJBIGogAikDKBDRgICAAAwBCyACQSBqQdCBwIAAQQcQ0ICAgAAgAigCIA0BIAJBIGogAikDKBDRgICAAAsgAikDKCEEIAIpAyCnDQAgAiAENwMQIAIgAzcDCCACIACtQiCGQgSENwMYIAJBIGogAkEIahDSgICAACACKAIgRQ0BCwALIAIpAyghAyACQTBqJICAgIAAIAMLHQAgACABEK6AgIAAIAIQsoCAgAAgAxCEgICAABoLQQEBfyOAgICAAEEQayIBJICAgIAAIAEgABD3gICAAAJAIAEoAgBBAUcNAAALIAEpAwghACABQRBqJICAgIAAIAALzwECAX8DfiOAgICAAEEQayIDJICAgIAAIANBBGoQtICAgAACQCADKAIEQQFHDQAgAygCCCADKAIMELWAgIAACyAAIAEQtoCAgAAiBBCFgICAACEFIAIpAwAhBgJAAkAgBUKAgICAEFQNAAJAIAYQhYCAgABCgICAgBBaDQAgBCEGDAELIAYQhYCAgABC/////x9YDQEgAhC3gICAACAEIAZBAhC4gICAABCGgICAACEGCyADQRBqJICAgIAAIAYPC0KDgICAgPoBELmAgIAAAAsMACAAQQEQ0YGAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQpICAgAAaC70BBAF/AX4BfwF+I4CAgIAAQRBrIgIkgICAgAAgAkEEahC0gICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQtYCAgAALAkACQCAAIAEQuoCAgAAiA0IBELuAgIAAIgRFDQAgA0IBEIeAgIAAIgVC/wGDQsgAUg0BIAJBBGoQvICAgAAgAigCBEEBRw0AIAAgASACKAIIIAIoAgwQvYCAgAALEIiAgIAAIQMgAkEQaiSAgICAACAFIAMgBBsPCwALvQECAX8BfiOAgICAAEEQayIBJICAgIAAIAFBADYCCCABIAA2AgQCQAJAAkAgAUEEakECEK+BgIAAIgIQhYCAgABCgICAgHCDQoCAgIAgUg0AIAFBADsBDiACEIWAgIAAQoCAgIBwg0KAgICAIFINASACIAFBDmpBAhDagICAACABLwEOQYAGRw0CIAFBEGokgICAgAAPC0KDgICAgIIBELmAgIAAAAsQsoGAgAAAC0KDgICAgPoBELmAgIAAAAslACAAIAGtQiCGQgSEIAAQhYCAgABCgICAgHCDQgSEEIuAgIAACwsAIAAQpYCAgAAaC4oBAgF/AX4jgICAgABBMGsiAiSAgICAACACQSBqQeCFwIAAQQ8Q0ICAgAACQAJAIAIoAiANACACIAIpAyg3AwggAiABrUIghkIEhDcDGCACIACtQiCGQgSENwMQIAJBIGogAkEIahDSgICAACACKAIgRQ0BCwALIAIpAyghAyACQTBqJICAgIAAIAMLDwAgACABEKOAgIAAQgFRCwwAIABBAhDRgYCAAAsnACAAIAEQuoCAgABCASACrUIghkIEhCADrUIghkIEhBCDgICAABoLxgECAX8BfiOAgICAAEEQayICJICAgIAAIAIQtICAgAACQCACKAIAQQFHDQAgAigCBCACKAIIELWAgIAACwJAAkACQEEBIAEQv4CAgAAiA0IBELuAgIAARQ0AIAIgA0IBEIeAgIAAEMCAgIAAIAIoAgBBAUcNAQALIABCADcDAAwBCyACKQMIIQMgAEIBNwMAIAAgAzcDCCACELyAgIAAIAIoAgBBAUcNACABIAIoAgQgAigCCBDBgICAAAsgAkEQaiSAgICAAAubAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCAAQQFxRQ0AIAJBnIXAgABBBBDQgICAACACKAIADQIgAiACKQMIIAGtQiCGQgSEENWAgIAADAELIAJBlIXAgABBCBDQgICAACACKAIADQEgAiACKQMIENGAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLIwACQCABQv8Bg0LIAFENACAAQgE3AwAPCyAAIAEQ24CAgAALJwBBASAAEL+AgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQg4CAgAAaC4cBAgF/AX4jgICAgABBEGsiACSAgICAACAAQQRqELSAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC1gICAAAsCQAJAQQAgABC/gICAACIBQgIQu4CAgABFDQAgAUICEIeAgIAAIgFC/wGDQs0AUQ0BAAsQw4CAgAAACyAAQRBqJICAgIAAIAELCQAQ34CAgAAAC4sBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqELSAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC1gICAAAtBACEBAkBBABDFgICAACICQgIQu4CAgABFDQBBASEBAkACQCACQgIQh4CAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUGmi8CAAEEGENCAgIAAIAEoAgANAyABIAEpAwgQ0YCAgAAMAgsgAUGsi8CAAEEIENCAgIAAIAEoAgANAiABIAEpAwgQ0YCAgAAMAQsgAUG0i8CAAEEKENCAgIAAIAEoAgANASABIAEpAwgQ0YCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPABDHgICAABCJgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABC0gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtYCAgAALIAAQyYCAgAAgACkDCCEBIAApAwBBiggQyoCAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQyYCAgAAgACkDCCEBIAApAwBBiggQyoCAgAAgARCJgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqELSAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC1gICAAAsgABDOgICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQuYCAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAEMyAgIAAAkAgACkDAFANAEKDgICAsIEBELmAgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahC0gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtYCAgAALQgAhAgJAAkBBARDNgICAACIDQgAQu4CAgABFDQAgA0IAEIeAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsAC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUG5isCAAEEMENCAgIAAIAEoAgANAiABIAEpAwgQ0YCAgAAMAQsgAUG0isCAAEEFENCAgIAAIAEoAgANASABIAEpAwgQ0YCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABDNgICAACICQgIQu4CAgABFDQAgAkICEIeAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtgAgF/AX4jgICAgABBEGsiACSAgICAACAAQcODwIAAQQcQ0ICAgAACQAJAIAAoAgANACAAIAApAwgQ0YCAgAAgACgCAEEBRw0BCwALIAApAwghASAAQRBqJICAgIAAIAELUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQzoGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEKqAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCqgICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtgAgF/AX4jgICAgABBEGsiACSAgICAACAAQbCBwIAAQQYQ0ICAgAACQAJAIAAoAgANACAAIAApAwgQ0YCAgAAgACgCAEEBRw0BCwALIAApAwghASAAQRBqJICAgIAAIAELkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQdeBwIAAQQgQ0ICAgAAgASgCAA0CIAEgASkDCBDRgICAAAwBCyABQdCBwIAAQQcQ0ICAgAAgASgCAA0BIAEgASkDCBDRgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC0gBAX8jgICAgABBEGsiAySAgICAACADIAI3AwggAyABNwMAIANBAhCqgICAACECIABCADcDACAAIAI3AwggA0EQaiSAgICAAAseAAJAIACnQQFxRQ0ADwtCg4CAgJD6ARC5gICAAAAL7gUDAX8FfgN/I4CAgIAAQdAAayIFJICAgIAAIAIpAzAiBhCFgICAACEHIAVBEGoQ2ICAgAACQAJAAkACQCAFKQMQIgggBSkDGCIJhFANACACKQMgIQoCQCADIARCgICAgICAgICAf4WEQgBSDQAgCCAJg0J/UQ0BCyAFIAMgBCAIIAkQ1oGAgAAgBSkDCEIBWQ0BIAUpAwAhBAJAAkAgB0L/////D1YNACAFIAQ3AzggBSAKNwMwQgAhBiAFQgA3AxAgBUEgaiELQQEhDAwBCyAFQRBqIAEQioCAgABBBBC4gICAACIDQgRChICAgMAAEIuAgIAAENmAgIAAIAUoAhBBAUYNBCAFKQMYIQggBUEANgJAIAggBUHAAGpBBBDagICAACAFKAJAIgtB////B3ENAwJAAkACQCALQRh2DgIAAQYLIAVBwABqIANChICAgMAAQoSAgICAARCLgICAABDZgICAACAFKAJAQQFGDQYgBSkDSCEIIAVBADYCQCAIIAVBwABqQQQQ2oCAgAAgBSgCQA0FIAVBwABqIANChICAgIABQoSAgICABRCLgICAABDbgICAACAFKAJAQQFHDQEMBgsgBUHAAGogA0KEgICAwABChICAgMAEEIuAgIAAENuAgIAAIAUoAkBBAUYNBQsgBSkDSCEDIAVBKGohCyAFIAQ3AzggBSAKNwMwIAVCATcDICAFIAM3AxggBUIBNwMQQQIhDAsgCyAGNwMAIAVBEGoQ3ICAgAAhCyAFEIiAgIAANwNAIAVBwABqIAoQ3YCAgAAgBBDegICAACENAkACQCALDQAgDSkDACEEDAELIAdC/////w9YDQMgDSADEN2AgIAAIQsgBSgCIEUNAyALKQMAIAUpAygQhoCAgAAhBAsgACACKAJAIAwgAkEoahCzgICAADcDCCAAIAQ3AwAgBUHQAGokgICAgAAPCxDfgICAAAALQoOAgICg9wIQuYCAgAAACxDDgICAAAALAAuBAQIBfwF+I4CAgIAAQSBrIgEkgICAgAACQAJAQQAQ4ICAgAAiAkICELuAgIAARQ0AIAEgAkICEIeAgIAAEOGAgIAAIAEoAgBBAUcNAQALQoOAgICQ9wIQuYCAgAAACyABKQMQIQIgACABKQMYNwMIIAAgAjcDACABQSBqJICAgIAACzYBAX5CASECAkAgARCFgICAAEKAgICAcINCgICAgMAAUg0AIAAgATcDCEIAIQILIAAgAjcDAAsfACAAQgQgAa1CIIZCBIQgAq1CIIZCBIQQlICAgAAaCzYBAX5CASECAkAgARCFgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAszAQF/QQAhAQJAIAApAwBQDQAgACgCEEEBRw0AIAApAxgQhYCAgABC/////w9WIQELIAELwgEBBH8jgICAgABBwABrIgIkgICAgAAgAkEgakEYaiIDQgA3AwAgAkEgakEQaiIEQgA3AwAgAkEgakEIaiIFQgA3AwAgAkIANwMgIAEgAkEgakEgENqAgIAAIAJBGGogAykDADcDACACQRBqIAQpAwA3AwAgAkEIaiAFKQMANwMAIAIgAikDIDcDACAAKQMAIQEgACABIAEQhYCAgABCgICAgHCDQgSEIAJBIBCzgYCAADcDACACQcAAaiSAgICAACAAC6cBAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4DgyABQjiIhISENwMIIAApAwAhASAAIAEgARCFgICAAEKAgICAcINCBIQgAkEIakEIELOBgIAANwMAIAJBEGokgICAgAAgAAsJABDNgYCAAAALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQcWHwIAAQQUQ0ICAgAAgASgCAA0CIAEgASkDCBDRgICAAAwBCyABQbCHwIAAQRUQ0ICAgAAgASgCAA0BIAEgASkDCBDRgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC30CAX8BfgJAAkACQAJAIAGnQf8BcSICQcUARg0AIAJBC0cNAiAAIAFCP4c3AxggACABQgiHNwMQDAELIAEQl4CAgAAhAyABEJiAgIAAIQEgACADNwMYIAAgATcDEAtCACEBDAELIABCg5CAgIABNwMIQgEhAQsgACABNwMAC0cBAX4CQAJAQQEQ4ICAgAAiAEICELuAgIAARQ0AIABCAhCHgICAACIAQv8Bg0LNAFENAQALQoOAgICQ9wIQuYCAgAAACyAAC1QCAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAACxDigICAACEBIABBEGokgICAgAAgAQsdAAJAEOWAgIAADQAPC0KDgICA4IQDELmAgIAAAAtFAgF/AX5BACEAAkAQ04CAgAAiAUICELuAgIAARQ0AQQEhAAJAAkAgAUICEIeAgIAAp0H/AXEOAgECAAsAC0EAIQALIAALuAIEAX8CfgF/BH4jgICAgABB8ABrIgQkgICAgAACQAJAAkACQCAAIAEQ54CAgABFDQAgACABEOiAgIAAIARBMGogACABEOmAgIAAIAQoAjBBAXFFDQJCACEFQgAhBgJAIAQgBEHAAGpBMBDagYCAACIHKQMAIgggBykDECIJViAHKQMIIgogBykDGCILVSAKIAtRG0UNACAKIAuFIAogCiALfSAIIAlUrX0iBoWDQgBTDQIgCCAJfSEFCyACIAVWIAMgBlUgAyAGURsNAyALIAOFQn+FIAsgCyADfCAJIAJ8IgMgCVStfCIChYNCAFMNASAHIAM3AxAgByACNwMYIAAgASAHEOqAgIAACyAEQfAAaiSAgICAAA8LEN+AgIAAAAsQw4CAgAAAC0KDgICAgIYDELmAgIAAAAtlAQJ/I4CAgIAAQRBrIgIkgICAgAACQCABIAAQsICAgABCARC7gICAACIDRQ0AIAJBBGoQvICAgAAgAigCBEEBRw0AIAEgACACKAIIIAIoAgwQr4CAgAALIAJBEGokgICAgAAgAwuZAQIBfwJ+I4CAgIAAQfAAayICJICAgIAAIAJBMGogACABEOyAgIAAIAIpAzghAyACKQMwIQQgAkEwaiAAIAEQ6YCAgAACQCACKAIwQQFxDQAQw4CAgAAACyACIAJBwABqQTAQ2oGAgAAiAiADNwMYIAIgBDcDECACEO2AgIAANwMoIAAgASACEOqAgIAAIAJB8ABqJICAgIAAC5oDBAF/AX4BfwV+I4CAgIAAQcAAayIDJICAgIAAAkACQAJAIAIgARCwgICAACIEQgEQu4CAgABFDQAgBEIBEIeAgIAAIQRBACEFAkADQCAFQSBGDQEgAyAFakICNwMAIAVBCGohBQwACwsCQCAEQv8Bg0LMAFINACAEQaiCwIAAQQQgA0EEEPWAgIAAIANBIGogAykDABDhgICAACADKAIgQQFGDQAgAykDOCEEIAMpAzAhBiADQSBqIAMpAwgQ74CAgAAgAygCIA0AIAMpAyghByADQSBqIAMpAxAQ4YCAgAAgAygCIEEBRg0AIAMpAzghCCADKQMwIQkgA0EgaiADKQMYEO+AgIAAIAMoAiBBAUcNAgsACyAAQgA3AwggAEIANwMADAELIAMpAyghCiAAIAY3AyAgACAJNwMQIABCADcDCCAAQgE3AwAgACAHNwM4IAAgCjcDMCAAIAQ3AyggACAINwMYIANBIGoQvICAgAAgAygCIEUNACACIAEgAygCJCADKAIoEK+AgIAACyADQcAAaiSAgICAAAuWAgIBfwR+I4CAgIAAQTBrIgMkgICAgAAgASAAELCAgIAAIQQgA0EgaiACKQMQIAIpAxgQ9oCAgAACQCADKAIgDQAgAykDKCEFIANBIGogAikDKBD3gICAACADKAIgDQAgAykDKCEGIANBIGogAikDACACKQMIEPaAgIAAIAMoAiANACADKQMoIQcgA0EgaiACKQMgEPeAgIAAIAMoAiBBAUYNACADIAMpAyg3AxggAyAHNwMQIAMgBjcDCCADIAU3AwAgBEGogsCAAEEEIANBBBD4gICAAEIBEISAgIAAGiADELyAgIAAAkAgAygCAEEBRw0AIAEgACADKAIEIAMoAggQr4CAgAALIANBMGokgICAgAAPCwAL5gEEAX8CfgF/An4jgICAgABB8ABrIgQkgICAgAACQAJAAkAgACABEOeAgIAARQ0AIAAgARDogICAACAEQTBqIAAgARDpgICAACAEKAIwQQFxRQ0BQgAhBUIAIQYCQCACIAQgBEHAAGpBMBDagYCAACIHKQMQIghUIAMgBykDGCIJUyADIAlRG0UNACAJIAOFIAkgCSADfSAIIAJUrX0iBoWDQgBTDQMgCCACfSEFCyAHIAU3AxAgByAGNwMYIAAgASAHEOqAgIAACyAEQfAAaiSAgICAAA8LEMOAgIAAAAsQ34CAgAAAC80CAgF/B34jgICAgABB8ABrIgMkgICAgABCACEEQgAhBQJAAkACQAJAIAEgAhDngICAAEUNACADQTBqIAEgAhDpgICAACADKAIwQQFxRQ0CIAMpA1ghBiADKQNQIQcgAykDSCEEIAMpA0AhCCADKQNgIQkgAykDaCEFEO2AgIAAIgogBVQNAyADQQA2AiwgA0EQaiAKIAV9QgAgCCAEIANBLGoQ04GAgAAgAygCLA0BIAlQDQFCACEEIAMgAykDECADKQMYIAlCABDWgYCAAEIAIQUgAykDACIIIAdaIAMpAwgiCSAGWSAJIAZRGw0AIAYgCYUgBiAGIAl9IAcgCFStfSIFhYNCAFMNASAHIAh9IQQLIAAgBDcDACAAIAU3AwggA0HwAGokgICAgAAPCxDfgICAAAALEMOAgIAAAAtCg4CAgJCGAxC5gICAAAALPQIBfgF/AkAQoICAgAAiAKdB/wFxIgFBBkYNAAJAIAFBwABHDQAgABCTgICAAA8LEN+AgIAAAAsgAEIIiAtqAgF/An4jgICAgABBEGsiACSAgICAAEIAIQECQAJAQQAgABCugICAACICQgIQu4CAgABFDQAgACACQgIQh4CAgAAQ74CAgAAgACgCAEEBRg0BIAApAwghAQsgAEEQaiSAgICAACABDwsAC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQk4CAgAAhAQsgACADNwMAIAAgATcDCAufAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkBBASABEK6AgIAAIgNCARC7gICAAEUNACACIANCARCHgICAABDvgICAACACKAIAQQFHDQEACyAAQgA3AwAMAQsgAikDCCEDIABCATcDACAAIAM3AwggAhC8gICAACACKAIARQ0AIAEgAigCBCACKAIIEK2AgIAACyACQRBqJICAgIAAC2MBAn8jgICAgABBEGsiASSAgICAAAJAQQEgABCugICAAEIBELuAgIAAIgJFDQAgAUEEahC8gICAACABKAIEQQFHDQAgACABKAIIIAEoAgwQrYCAgAALIAFBEGokgICAgAAgAgtPAQJ+QgAhAQJAAkBBAiAAEK6AgIAAIgJCAhC7gICAAEUNACACQgIQh4CAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsAC4cBAgF/AX4jgICAgABBEGsiASSAgICAACABELSAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC1gICAAAsCQAJAAkAgABDxgICAAA0AEO6AgIAAIQIMAQsgASAAEPCAgIAAIAEoAgBFDQEgASkDCCECCyABQRBqJICAgIAAIAIPCxDDgICAAAALUgECfyOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAACxDlgICAACEBIABBEGokgICAgAAgAQsxAAJAIAIgBEYNAAALIAAgAa1CIIZCBIQgA61CIIZCBIQgAq1CIIZCBIQQnYCAgAAaC1sAAkACQCABQoCAgICAgIDAAHxC//////////8AVg0AIAEgAYUgAiABQj+HhYRCAFINACABQgiGQguEIQEMAQsgAiABEJmAgIAAIQELIABCADcDACAAIAE3AwgLOwACQAJAIAFC//////////8AVg0AIAFCCIZCBoQhAQwBCyABEJKAgIAAIQELIABCADcDACAAIAE3AwgLLgACQCABIANGDQAACyAArUIghkIEhCACrUIghkIEhCABrUIghkIEhBCcgICAAAuKAgIBfwZ+I4CAgIAAQcAAayIDJICAgIAAIAMQtICAgAACQCADKAIAQQFHDQAgAygCBCADKAIIELWAgIAACwJAAkACQAJAIAEgAhDngICAAA0AQv///////////wAhBEJ/IQUMAQsgAyABIAIQ6YCAgAAgAygCAEEBcUUNAiADKQMQIQYgAykDGCEHIAMgASACEOyAgIAAQgAhBUIAIQQgBiADKQMAIghWIAcgAykDCCIJVSAHIAlRG0UNACAHIAmFIAcgByAJfSAGIAhUrX0iBIWDQgBTDQEgBiAIfSEFCyAAIAU3AwAgACAENwMIIANBwABqJICAgIAADwsQ34CAgAAACxDDgICAAAALkwQCAX8FfiOAgICAAEHwAGsiBiSAgICAABDkgICAACAGQeAAahDYgICAACAGKQNoIQcgBikDYCEIAkACQAJAAkACQAJAIAUQ8YCAgAANABDugICAACEJDAELIAZB4ABqIAUQ8ICAgAAgBigCYEUNASAGKQNoIQkLAkACQCAJUEUNAEIAIQpCACEJDAELIAZB4ABqEPKAgIAAIAYoAmBFDQIgBkEANgJcIAZBwABqIAEgAiAJQgAgBkHcAGoQ04GAgAAgBigCXA0DIAZBMGogBikDQCAGKQNIQpDOAEIAENaBgIAAIAYpAzghCSAGKQMwIQoLIAIgCYUgAiACIAl9IAEgClStfSILhYNCAFMNAiAIIAeEUA0CAkAgASAKfSICIAtCgICA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gAAgAikDACACKQMIEKmAgIAAIQEgAkEQaiSAgICAACABDwsAC2cBAn8jgICAgABBEGsiAiSAgICAAAJAIAAQpoCAgABB/wFxIgNBAkYNACABQv8Bg0IEUg0AIAIgAyABQiCIpxD5gICAACACKQMAIAIpAwgQqYCAgAAhASACQRBqJICAgIAAIAEPCwAL8wECAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDvgICAAAJAAkACQCABKAIAQQFGDQAgASkDCCEAEMaAgIAAIAEQtICAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELWAgIAACyAAQpHOAFoNARDugICAACAAUQ0CQQAgASAAQgIQsYCAgABBpIDAgABBExD8gICAABD9gICAACECIAEgABCygICAADcDACACQcCAwIAAQQEgAUEBEPiAgIAAEIyAgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDAgwMQuYCAgAAAC0KDgICA8IMDELmAgIAAAAvdAgICfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCAAQv8Bg0IEUg0AIAIgARDvgICAACACKAIAQQFGDQAgAikDCCEBEMaAgIAAIAIQtICAgAACQCACKAIAQQFHDQAgAigCBCACKAIIELWAgIAACyABQpHOAFoNASAAQiCIpyIDEPGAgIAARQ0DIAIgAxDwgICAACACKAIARQ0CIAIpAwggAVINA0KDgICA8IMDELmAgIAACwALQoOAgIDAgwMQuYCAgAAACxDDgICAAAALQQEgAyABQgEQsYCAgAAgAhC8gICAAAJAIAIoAgBBAUcNACADIAIoAgQgAigCCBCtgICAAAtByIDAgABBCxD8gICAABD9gICAACEEIAIgARCygICAADcDCCACIABChICAgHCDNwMAIARB1IDAgABBAiACQQIQ+ICAgAAQjICAgAAaIAJBEGokgICAgABCAgvWAQICfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABC/wGDQgRSDQAgAEIgiKchAhDGgICAACABELSAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC1gICAAAsgAhDxgICAAEUNAUEBIAIQroCAgABCARCNgICAABpB5IDAgABBDRD8gICAABD9gICAACEDIAEgAEKEgICAcIM3AwAgA0H0gMCAAEEBIAFBARD4gICAABCMgICAABogAUEQaiSAgICAAEICDwsAC0KDgICA4IMDELmAgIAAAAvjAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABC/wGDQs0AUg0AEMaAgIAAIAEQtICAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELWAgIAACyABEPKAgIAAAkAgASgCAEEBRw0AIAEpAwggABCGgYCAAA0CC0ECIAEQroCAgAAgAEICEISAgIAAGkH8gMCAAEEXEPyAgIAAEP2AgIAAIQIgASAANwMAIAJBqIHAgABBASABQQEQ+ICAgAAQjICAgAAaIAFBEGokgICAgABCAg8LAAtCg4CAgPCDAxC5gICAAAALDQAgACABEJ6AgIAAUAtsAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0IEUg0AIAFBBGoQtICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELWAgIAACyAAQiCIpxDzgICAACEAIAFBEGokgICAgAAgAEIAUq0PCwALIwACQCAAQv8Bg0IEUQ0AAAsgAEIgiKcQ84CAgAAQsoCAgAALWgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC0gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtYCAgAALEO6AgIAAELKAgIAAIQEgAEEQaiSAgICAACABC6ABAQJ/I4CAgIAAQSBrIgEkgICAgAACQCAAQv8Bg0IEUg0AIABCIIinIQIgAUEQahC0gICAAAJAIAEoAhBBAUcNACABKAIUIAEoAhgQtYCAgAALIAEgAhDwgICAAAJAAkAgASgCAA0AQgIhAAwBCyABQRBqIAEpAwgQ94CAgAAgASgCEEEBcQ0BIAEpAxghAAsgAUEgaiSAgICAACAADwsAC3ECAX8BfiOAgICAAEEQayIAJICAgIAAIAAQtICAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELWAgIAACyAAEPKAgIAAAkAgACgCAA0AQoOAgIDQgwMQuYCAgAAACyAAKQMIIQEgAEEQaiSAgICAACABC98BAgJ/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAQxoCAgAAgARC0gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtYCAgAALEPSAgIAAIAJzQQFxRQ0BENOAgIAAIAKtIgBCAhCEgICAABpBtoHAgABBChD8gICAABD9gICAACEDIAEgADcDACADQciBwIAAQQEgAUEBEPiAgIAAEIyAgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDwhAMQuYCAgAAACwkAEPSAgIAArQuMBQcBfwN+AX8CfgF/AX4CfyOAgICAAEGgAWsiASSAgICAACABIAAQj4GAgAACQAJAAkAgASgCAEEBcQ0AIAEpAyghACABKQMgIQIgASkDGCEDIAEpAxAhBCABKAJQIQUgARC0gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtYCAgAALEI6AgIAAGiABIAQgAyACIAAgBRD6gICAACABKQMIIgIgASkDGCIDhSACIAIgA30gASkDACIEIAEpAxAiBlStfSIAhYNCAFMNAQJAAkAgBCAGfSIHQgBSIABCAFUgAFAbDQAQjoCAgAAhAAwBCyABQSBqIQhBvIPAgABBBxCQgYCAACEJIAEgADcDCCABIAc3AwAgASAJNwMQIAFCAjcDgAEgASEKQQEhCwJAA0AgC0EBcUUNASAKQRBqKQMAIQAgAUHoAGogCikDACAKKQMIEPaAgIAAIAEoAmhBAUYNAyABIAEpA3A3A5gBIAEgADcDkAEgAUGAicCAAEECIAFBkAFqQQIQ+ICAgAA3A4ABQQAhCyAIIQoMAAsLIAFBgAFqQQEQqoCAgAAhAAsgAUEQakEBIAUQ+YCAgAAgAUGQAWogASkDECABKQMYEPaAgIAAIAEoApABDQAgASkDmAEhByABQZABakIAQgAQ9oCAgAAgASgCkAFBAUYNACABIAEpA5gBNwOIASABIAc3A4ABQciIwIAAQQIgAUGAAWpBAhD4gICAACEHIAFBkAFqIAQgAiAGIAMQkYGAgAAgASgCkAFBAUcNAgsACxDfgICAAAALIAEgASkDmAE3A3ggASAANwNwIAEgBzcDaCABQegAakEDEKqAgIAAIQAgAUGgAWokgICAgAAgAAuGAwICfwl+I4CAgIAAQeAAayICJICAgIAAQQAhAwJAA0AgA0E4Rg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgAhBEIBIQUCQCABQv8Bg0LMAFINACABQYCIwIAAQQcgAkEIakEHEPWAgIAAIAJBwABqIAIpAwgQ4YCAgAAgAigCQEEBRg0AIAIpAxAiAUL/AYNCyABSDQAgAikDGCIGQv8Bg0IEUg0AIAIpAyAiB0L/AYNCyABSDQAgAikDWCEIIAIpA1AhCSACQcAAaiACKQMoEOGAgIAAIAIoAkBBAUYNACACKQMwIgpC/wGDQsgAUg0AIAIpA1ghCyACKQNQIQwgAkHAAGogAikDOBDAgICAACACKAJADQAgAikDSCEEIAAgDDcDICAAIAk3AxAgACAGQiCIpzYCUCAAIAo3A0ggACABNwNAIAAgBzcDOCAAIAQ3AzAgACALNwMoIAAgCDcDGEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJB4ABqJICAgIAACxoAIACtQiCGQgSEIAGtQiCGQgSEEJWAgIAAC4cBAQF/I4CAgIAAQRBrIgUkgICAgAAgBSADIAQQ9oCAgABCASEEAkAgBSgCAA0AIAUpAwghAyAFIAEgAhD2gICAACAFKAIADQAgBSAFKQMINwMIIAUgAzcDACAAQdiIwIAAQQIgBUECEPiAgIAANwMIQgAhBAsgACAENwMAIAVBEGokgICAgAALCAAQ44CAgAAL5AMDAn8CfgN/I4CAgIAAQTBrIgAkgICAgAAgAEEgahC0gICAAAJAIAAoAiBBAUcNACAAKAIkIAAoAigQtYCAgAALEOKAgIAAEJSBgIAAIQEgAEEgahDYgICAAAJAAkAgACkDICICQgBSIAApAygiA0IAVSADUCIEG0UNAAJAAkAgAkL/////j/C71oV/ViADQtuCtevinQFWIANC24K16+KdAVEbDQAgAEEQaiACIANCgICE/qbe4RFCABDYgYCAAEEKQQAgACkDECACIAJC//+D/qbe4RFWIANCAFIgBBsiBRsiA0L/x6+gJVYiBhshBCAFQQR0IQUCQCADQoDIr6AlgCADIAYbIgNCoI0GVA0AIARBBXIhBCADQqCNBoAhAwsgBCAFaiADpyIEQfb/F2ogBEGc/x9qcSAEQZj4N2ogBEHwsR9qcXNBEXZqIQQMAQsgACACIANCgICAgJDwu9aFf0LbgrXr4p0BENiBgIAAIAAoAgAiBEGgjQZuIAQgBEGfjQZLIgUbIgRB9v8XaiAEQZz/H2pxIARBmPg3aiAEQfCxH2pxc0ERdkElQSAgBRtqIQQLIAEgBEkNASAAQTBqJICAgIAAIAEgBGutQiCGQgSEDwsQlYGAgAAACxDfgICAAAALNQACQCAAQo7wsdPsxarTABCOgICAABCQgICAACIAQv8Bg0IEUQ0AEN+AgIAAAAsgAEIgiKcLCQAQzYGAgAAAC2MCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQtICAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELWAgIAACyAAENiAgIAAIAApAwAgACkDCBCpgICAACEBIABBEGokgICAgAAgAQtKAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahC0gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtYCAgAALIABBEGokgICAgABCAAu3BAIDfwJ+I4CAgIAAQeABayIDJICAgIAAAkAgAEL/AYNCzQBSDQAgA0HQAGogARCPgYCAACADKAJQQQFxDQAgAyADQeAAakHQABDagYCAACEEQQEgAqdB/wFxIgNBAEdBAXQgA0EBRhsiBUECRg0AIARB0ABqELSAgIAAAkAgBCgCUEEBRw0AIAQoAlQgBCgCWBC1gICAAAsgBEHQAGogBCkDACAEKQMIIAQpAxAgBCkDGCAEKAJAIgMQ+oCAgAAgBEHQAGogACAEIAQpA2AgBCkDaBDXgICAACAEKQNQIQAgBCkDWCEBIARB0ABqIAMQvoCAgAAgBCkDWCECIAQpA1AQ1oCAgAAQwoCAgAAhBhCPgICAACEHIAQgBToAzAEgBCABNwPAASAEIAA3A7gBIAQgAjcDsAEgBCADNgLIASAEIARBsAFqEJmBgIAANwPYASAEIAc3A9ABQQAhAwJAAkADQAJAIANBEEcNAEEAIQMCQANAIANBEEYNASAEQdAAaiADaiAEQdABaiADaikDADcDACADQQhqIQMMAAsLIARB0ABqIAZCjtS52u4GIARB0ABqQQIQqoCAgAAQkICAgAAQmoGAgAAgBCgCUEEBcQ0CIARB0ABqIAQpA2AgBCkDaCAEKQNwIAQpA3gQm4GAgAAgBCgCUEEBRw0DDAQLIARB0ABqIANqQgI3AwAgA0EIaiEDDAALCxDfgICAAAALIAQpA1ghACAEQeABaiSAgICAACAADwsAC3MCAX8BfiOAgICAAEEwayIBJICAgIAAIAEgACkDADcDKCABIAAxABw3AyAgASAAKQMQNwMYIAEgACkDCDcDECABIAA1AhhCIIZCBIQ3AwhB5IPAgABBBSABQQhqQQUQ+ICAgAAhAiABQTBqJICAgIAAIAIL7wECAn8DfiOAgICAAEEwayICJICAgIAAQQAhAwJAA0AgA0EQRg0BIAIgA2pCAjcDACADQQhqIQMMAAsLQgAhBEIBIQUCQCABQv8Bg0LMAFINACABQcSEwIAAQQIgAkECEPWAgIAAIAJBEGogAikDABDhgICAACACKAIQQQFGDQAgAikDKCEBIAIpAyAhBiACQRBqIAIpAwgQ4YCAgAAgAigCEEEBRg0AIAIpAyAhBCAAIAIpAyg3AyggACAENwMgIAAgATcDGCAAIAY3AxBCACEFQgAhBAsgACAFNwMAIAAgBDcDCCACQTBqJICAgIAAC4cBAQF/I4CAgIAAQRBrIgUkgICAgAAgBSABIAIQ9oCAgABCASECAkAgBSgCAA0AIAUpAwghASAFIAMgBBD2gICAACAFKAIADQAgBSAFKQMINwMIIAUgATcDACAAQcSEwIAAQQIgBUECEPiAgIAANwMIQgAhAgsgACACNwMAIAVBEGokgICAgAALvAwEAX8GfgJ/BH4jgICAgABB8AFrIgQkgICAgAACQCAAQv8Bg0LNAFINACAEQdAAaiABEI+BgIAAIAQoAlBBAXENACAEIARB4ABqQdAAENqBgIAAIgRB0ABqIAIQmoGAgAAgBCgCUEEBcQ0AIANC/wGDQs0AUg0AIAQpA3ghBSAEKQNwIQYgBCkDaCEHIAQpA2AhCCAEQdAAahC0gICAAAJAIAQoAlBBAUcNACAEKAJUIAQoAlgQtYCAgAALIAAQiYCAgAAaIAQpAxghASAEKQMQIQIgBCkDCCEJIAQpAwAhCiAEKAJAIQsQnYGAgAAhDCAEQdAAaiAKIAkgAiABIAsQ+oCAgAAQ44CAgAAhCQJAAkAgDEUNACAEIAQpA2AiAiAEKQNoIgEQqYCAgAA3A+ABIAQgADcD2AFBACEMA0ACQCAMQRBHDQBBACEMAkADQCAMQRBGDQEgBEG4AWogDGogBEHYAWogDGopAwA3AwAgDEEIaiEMDAALCyAJQo7mt/0JIARBuAFqQQIQqoCAgAAQq4CAgAAMAwsgBEG4AWogDGpCAjcDACAMQQhqIQwMAAsLIAkgABCPgICAACAEKQNgIgIgBCkDaCIBEKyAgIAAC0EBIAsgAiABEOaAgIAAQQAgCyACIAEQ64CAgAACQAJAAkACQAJAIAQpA1giCSABhSAJIAkgAX0gBCkDUCIKIAJUrX0iDYWDQgBTDQAQ4oCAgAAhDgJAIAogAn0iDyANhFANACAEQbgBahDygICAACAEKAK4AUUNBSAEQbgBahDygICAACAEKAK4AUUNBCAOIAAgBCkDwAEgDyANEKiAgIAACyAEQdAAaiAAIAQgAiABENeAgIAAIAQpA1ghDSAEKQNQIQ4QwoCAgAAQnoGAgAAgABDCgICAACAIIAcQrICAgAACQCAGIAWEUA0AIARB0ABqEMKAgIAAQo7o9x8QjoCAgAAQkICAgAAQn4GAgAAgBCkDUCIHQgJRDQEgB6dBAXFFDQMgBCkDWCAAEMKAgIAAIAYgBRCsgICAAAsgBEHQAGogCxC+gICAACAEKQNYIQcgBCkDUBDWgICAABDCgICAACEIEI+AgIAAIQ8gBCAGQgBSIAVCAFUgBVAbOgDUASAEIA03A8gBIAQgDjcDwAEgBCAHNwO4ASAEIAs2AtABIARBuAFqEJmBgIAAIQUgBCADNwPoASAEIAU3A+ABIAQgDzcD2AFBACEMA0ACQCAMQRhHDQBBACEMAkADQCAMQRhGDQEgBEHQAGogDGogBEHYAWogDGopAwA3AwAgDEEIaiEMDAALCyAIQo7Ss5UOIARB0ABqQQMQqoCAgAAQkICAgAAhBUEAIQwCQANAIAxBGEYNASAEQdgBaiAMakICNwMAIAxBCGohDAwACwsgBUL/AYNCzABSDQIgBUHYhMCAAEEDIARB2AFqQQMQ9YCAgAAgBEHQAGogBCkD2AEQmoGAgAAgBCgCUEEBcQ0CIAQpA3ghBiAEKQNwIQMgBCkDaCENIAQpA2AhByAEQdAAaiAEKQPgARDAgICAACAEKAJQDQIgBCkDWCEFIARB0ABqIAQpA+gBEO+AgIAAIAQoAlBBAUYNAiAEKQNYIRBCjvKzlZ7Ir+kAEP2AgIAAIQggAiABEKmAgIAAIQ4gCiAJEKmAgIAAIQ8gBCAFNwNwIAQgADcDaCAEIAutQiCGQgSENwNgIAQgDzcDWCAEIA43A1AgCEHQhsCAAEEFIARB0ABqQQUQ+ICAgAAQjICAgAAaIARBuAFqIAcgDSADIAYQm4GAgAAgBCgCuAENByAEKQPAASEAIARBuAFqIBAQ94CAgAAgBCgCuAFBAUYNByAEIAQpA8ABNwNgIAQgBTcDWCAEIAA3A1BB2ITAgABBAyAEQdAAakEDEPiAgIAAIQAgBEHQAGogCiAJIAIgARCRgYCAACAEKAJQQQFHDQMMBwsgBEHQAGogDGpCAjcDACAMQQhqIQwMAAsLEN+AgIAAAAsgBCAEKQNYNwPgASAEIAA3A9gBIARB2AFqQQIQqoCAgAAhACAEQfABaiSAgICAACAADwtCg4CAgLD6ARC5gICAAAALEMOAgIAAAAtCg4CAgNCDAxC5gICAAAALAAudAQMBfwF+AX8jgICAgABBEGsiACSAgICAACAAQQRqELSAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC1gICAAAsCQAJAAkAQz4CAgAAiAUICELuAgIAARQ0AAkAgAUICEIeAgIAAIgFC/wGDQgRSDQBBACECIAFCIIinDgIDAgALAAsQw4CAgAAAC0EBIQILIABBEGokgICAgAAgAgs2AAJAIABB8ITAgABBDBD8gICAABCOgICAABCQgICAACIAQv8Bg0LNAFENABDfgICAAAALIAALOQACQCABQgJRDQACQCABQv8Bg0LNAFENACAAQgI3AwAPCyAAIAE3AwggAEIBNwMADwsgAEIANwMAC6oEAwF/An4CfyOAgICAAEHQAGsiBiSAgICAAAJAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAJC/wGDQs0AUg0AIAZBwABqIAMQn4GAgAAgBikDQCIHQgJRDQAgBEL/AYNCBFINACAFQv8Bg0IEUg0AIAYpA0ghCEIEIQMCQAJAIAVCIIinDgIBAAILQoSAgIAQIQMLQYDLHkGA0h8QoYGAgABBgMseQYDSHxCigYCAAEEAEM2AgIAAQgIQu4CAgAANASABEKOBgIAAQQAgBhC/gICAACACQgIQhICAgAAaIAIQj4CAgAAgByAIEKSBgIAAIAAQlIGAgAAiCSAEQiCIpyIKSQ0CQQEQ4ICAgAAgAEICEISAgIAAGkIAIQECQCAJIAprIgkNAEIBIQUMBAtCCiEAQgEhBUIAIQICQANAAkAgCUEBcUUNACAGQQA2AjwgBkEgaiAFIAEgACACIAZBPGoQ04GAgAAgBigCPA0CIAYpAyghASAGKQMgIQUgCUEBRg0GCyAGQQA2AhwgBiAAIAIgACACIAZBHGoQ04GAgAAgBigCHA0BIAYpAwghAiAGKQMAIQAgCUEBdiEJDAALCxDfgICAAAsAC0KDgICAkIEBELmAgIAAAAtCg4CAgID3AhC5gICAAAALQQAQ4ICAgAAgBSABEKmAgIAAQgIQhICAgAAaEM+AgIAAIANCAhCEgICAABogBkHQAGokgICAgABCAgsOAEEBIAAgARDSgYCAAAsOAEECIAAgARDSgYCAAAsOAEEAIABCAhDKgYCAAAu2AQMBfwF+AX8jgICAgABBIGsiBCSAgICAAEH8hMCAAEEMEPyAgIAAIQUgBCACIAMQuIGAgAA3AwggBCABNwMAQQAhBgNAAkAgBkEQRw0AQQAhBgJAA0AgBkEQRg0BIARBEGogBmogBCAGaikDADcDACAGQQhqIQYMAAsLIAAgBSAEQRBqQQIQqoCAgAAQq4CAgAAgBEEgaiSAgICAAA8LIARBEGogBmpCAjcDACAGQQhqIQYMAAsLEQBChICAgBBCBBCdgYCAABsLCAAQx4CAgAALLwACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQtoCAgAAPCwALjwQHAX8DfgF/AX4BfwF+An8jgICAgABBMGsiASSAgICAAAJAAkAgAEL/AYNCywBSDQAQxoCAgAAgAUEIahC0gICAAAJAIAEoAghBAUcNACABKAIMIAEoAhAQtYCAgAALIAAQgICAgABCIIghAkIAIQMCQANAIAMgAlENASAAIANCIIZCBIQQgYCAgAAhBEEAIQUCQANAIAVBGEYNASABQQhqIAVqQgI3AwAgBUEIaiEFDAALC0EBIQUCQCAEQv8Bg0LMAFINACAEQciFwIAAQQMgAUEIakEDEPWAgIAAIAEpAwgiBEL/AYNCBFINACABKQMQIgZC/wGDQgRSDQAgByAGQiCIpyABKQMYIgZC/wGDQsgAUiIFGyEHIAggBiAFGyEIIAkgBEIgiKcgBRshCQsgA0L/////D1ENAyAFDQMgASAHNgIUIAEgCTYCECABIAg3AwggAUEIahC3gICAACABKQMIIQQgASgCECIFIAEoAhQiChC6gICAACAEQgEQhICAgAAaIAFBJGoQvICAgAACQCABKAIkQQFHDQAgBSAKIAEoAiggASgCLBC9gICAAAsgA0IBfCEDDAALC0HvhcCAAEETEPyAgIAAEP2AgIAAIQMgASAANwMIIANBmIbAgABBASABQQhqQQEQ+ICAgAAQjICAgAAaIAFBMGokgICAgABCAg8LAAsQ34CAgAAAC2kBAX8jgICAgABBEGsiAySAgICAAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACACQv8Bg0LIAFINACADIAI3AwggAEIgiKcgAUIgiKcgA0EIahCzgICAACEAIANBEGokgICAgAAgAA8LAAubAQICfwF+I4CAgIAAQSBrIgEkgICAgAAgASAAEKuBgIAAAkAgASgCAEEBRg0AIAEoAhghAiABKQMIIQMgARC0gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtYCAgAALIAEgAhC+gICAAEIAIQACQCABKAIAQQFHDQAgASkDCCADEIaBgIAArSEACyABQSBqJICAgIAAIAAPCwAL4gECAn8CfiOAgICAAEEwayICJICAgIAAQQAhAwJAA0AgA0EYRg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFBmITAgABBAyACQQhqQQMQ9YCAgAAgAkEgaiACKQMIEO+AgIAAIAIoAiANACACKQMoIQEgAkEgaiACKQMQEMCAgIAAIAIoAiANACACKQMYIgVC/wGDQgRSDQAgAikDKCEEIAAgATcDECAAIAQ3AwggACAFQiCIPgIYQgAhBAsgACAENwMAIAJBMGokgICAgAALdQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCBFINACACIAEQwICAgAAgAigCAEEBRg0AIAIQtICAgAACQCACKAIAQQFHDQAgAigCBCACKAIIELWAgIAAC0IAELKAgIAAIQAgAkEQaiSAgICAACAADwsAC7oPBAJ/A34BfwF+I4CAgIAAQbABayIGJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAZBIGogARCrgYCAACAGKAIgQQFGDQAgBigCOCEHIAYpAzAhCCAGKQMoIQEgBkEgaiACEMCAgIAAIAYoAiBBAUYNACADQv8Bg0LIAFINACAGKQMoIQkgBiADNwMYIARC/wGDQsgAUg0AIAZBIGogBRDhgICAACAGKAIgQQFGDQAgBikDOCEC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AwF/AX4CfyOAgICAAEHAAGsiASSAgICAAAJAAkAgAEEgEK+BgIAAIgIQhYCAgABCgICAgHCDQoCAgICABFINACABQSBqQRhqIgBCADcDACABQSBqQRBqIgNCADcDACABQSBqQQhqIgRCADcDACABQgA3AyAgAhCFgICAAEKAgICAcINCgICAgIAEUg0BIAIgAUEgakEgENqAgIAAIAFBGGogACkDADcDACABQRBqIAMpAwA3AwAgAUEIaiAEKQMANwMAIAEgASkDIDcDACABQSAQkIGAgAAhAiABQcAAaiSAgICAACACDwtCg4CAgICCARC5gICAAAALELKBgIAAAAt1AgJ/AX4CQAJAIAAoAgQiAiABaiIBIAJJDQAgASAAKAIAIgMpAwAQhYCAgABCIIinSw0BIAMpAwAgAq1CIIZCBIQgAa1CIIZCBIQQi4CAgAAhBCAAIAE2AgQgBA8LEN+AgIAAAAtCg4CAgID9ABC5gICAAAALJwEBfwJAIAAQhYCAgABCIIinIgIgAUkNACACIAFrDwsQ34CAgAAAC0YBAX8CQEGcicCAAEGQicCAACAAp0EBcSICG0EIQQwgAhsQkIGAgAAgARCGgICAABCfgICAACIAQv8Bg0LNAFENAAALIAALCQAQ34CAgAAACx4AIAAgASACrUIghkIEhCADrUIghkIEhBCbgICAAAuJAQECfyOAgICAAEEgayIDJICAgIAAIAMgABCrgYCAAAJAIAMoAgBBAUYNACABQv8Bg0LIAFINACACQv8Bg0LNAFINACADELSAgIAAAkAgAygCAEEBRw0AIAMoAgQgAygCCBC1gICAAAsQj4CAgAAgAhCGgYCAACEEIANBIGokgICAgAAgBK0PCwALogECAX8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQtICAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELWAgIAACyAAQRBqQgEQ94CAgAACQAJAIAAoAhANACAAKQMYIQEgAEEQakIBEPeAgIAAIAAoAhBBAUcNAQsACyAAIAApAxg3AwggACABNwMAIABBAhCqgICAACEBIABBIGokgICAgAAgAQsIABDCgICAAAtRAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0IEUQ0AAAsgASAAQiCIpxC+gICAACABKQMAIAEpAwgQuIGAgAAhACABQRBqJICAgIAAIAALDQAgAUICIACnQQFxGwu6AgQBfwF+AX8BfiOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCBFINAAJAAkAgAUICUg0AQgAhAQwBCyACIAEQwICAgAAgAigCAEEBRg0BIAIpAwghA0IBIQELEMaAgIAAIAIQtICAgAACQCACKAIAQQFHDQAgAigCBCACKAIIELWAgIAAC0EBIABCIIinIgQQv4CAgAAhBQJAAkAgAVANACAFIANCARCEgICAABogAhC8gICAACACKAIAQQFHDQEgBCACKAIEIAIoAggQwYCAgAAMAQsgBUIBEI2AgIAAGgtCjvKqvPDWqusAEP2AgIAAIQUgAiABIAMQuIGAgAA3AwggAiAAQoSAgIBwgzcDACAFQaiFwIAAQQIgAkECEPiAgIAAEIyAgIAAGiACQRBqJICAgIAAQgIPCwALhwECAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABCfgYCAAAJAIAEpAwAiAEICUQ0AIAEpAwghAhDGgICAACABELSAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC1gICAAAsQwoCAgAAQj4CAgAAgACACEKSBgIAAIAFBEGokgICAgABCAg8LAAveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQvIGAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARC8gYCAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqELSAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBC1gICAAAsQxoCAgAACQAJAAkAQxICAgAANABC9gYCAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABC5gICAAAALQoOAgIDA/wAQuYCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBChgYCAAAwBC0EBEMWAgIAAQgIQjYCAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBCigYCAAAwBC0ECEMWAgIAAQgIQjYCAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRB4IrAgABBDxD8gICAABD9gICAACEAIAJBKGoQvoGAgAAhASACIAJBNGoQvoGAgAA3A0ggAiABNwNAIABBhIvAgABBAiACQcAAakECEPiAgIAAEIyAgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARDPgYCAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAACzMBAn4QoYCAgAAhAAJAEKKAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LEN+AgIAAAAtDAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQwIGAgAACQCABKAIAQQFHDQAACyABKQMIIQIgAUEQaiSAgICAACACC8IBAgJ/AX4jgICAgABBwABrIgAkgICAgAAgAEEIahC0gICAAAJAIAAoAghBAUcNACAAKAIMIAAoAhAQtYCAgAALIABBCGoQtICAgAAgAEEUaiIBELyAgIAAIABBMGogAEEIahDAgYCAAAJAAkAgACgCMA0AIAApAzghAiAAQTBqIAEQwIGAgAAgACgCMEEBRw0BCwALIAAgACkDODcDKCAAIAI3AyAgAEEgakECEKqAgIAAIQIgAEHAAGokgICAgAAgAgswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBDQgYCAAA8LIABCADcDACAAQgI3AwgLqgEBAX8jgICAgABBIGsiACSAgICAACAAQQxqELSAgIAAAkAgACgCDEEBRw0AIAAoAhAgACgCFBC1gICAAAsQxoCAgAACQBDEgICAAEUNAEKDgICA4P8AELmAgIAAAAtBABDFgICAAEIBQgIQhICAgAAaQZSLwIAAQRIQ/ICAgAAQ/YCAgABBBEEAIABBGGpBABD4gICAABCMgICAABogAEEgaiSAgICAAEICCwkAEMSAgIAArQsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxC1gICAAEICDwsACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQyYCAgAAgACkDACAAKQMIELiBgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQzICAgAAgACkDACAAKQMIELiBgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahC0gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtYCAgAALEMiAgIAAIQIQy4CAgAAgABCjgYCAACACIAAQx4GAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQa2JwIAAQRUQ/ICAgAAQ/YCAgAAhAyACIAA3AwggAiABNwMAIANB1InAgABBAiACQQIQ+ICAgAAQjICAgAAaIAJBEGokgICAgAAL3AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahC0gICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQtYCAgAALEMiAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahDMgICAACACKQMQIQEgAikDCEGICBDKgICAACABIAAQhoGAgABFDQMQyYGAgAAMAQsQvYGAgAAgAUIgiKdJDQNBASAAQgAQyoGAgABBARDNgICAAEIAIAFChICAgHCDIgEgARCDgICAABpB5InAgABBFhD8gICAABD9gICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARBgIrAgABBAyACQQhqQQMQ+ICAgAAQjICAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQuYCAgAAAC0KDgICA8IABELmAgIAAAAsTAEEBEM2AgIAAQgAQjYCAgAAaCxUAIAAQzYCAgAAgASACEISAgIAAGgunAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABC0gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtYCAgAALIAAQzICAgAAgACkDCCEBIAApAwBBiAgQyoCAgAAgARCJgICAABogABDOgICAAAJAIAAoAgANABDDgICAAAALIAApAwghAhDJgYCAACABEKOBgIAAIAIgARDHgYCAACAAQRBq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BCANfSEBIAYgDCALfEJ/fCIMIAtUrXwhBgwKCyAFQYABaiAMIAqAIgxCACAIIAlrIggQ1IGAgAAgBUHwAGogAyAEIAxCABDbgYCAACAFQeAAaiAFKQNwIAUpA3ggCBDUgYCAACAFKQOIASAGfCAFKQOAASIGIAt8IgsgBlStfCEGIAcgAiAFKQNofSABIAUpA2AiDFStfSICeSABIAx9IgF5QsAAfCACQgBSG6ciCE0NASAIQT9NDQALIANQRQ0BDAILIAEgA1QiCCACIARUIAIgBFEbRQ0CIAshDAwHCyABIAOAIQILIAEgA4IhASAGIAsgAnwiDCALVK18IQZCACECDAULIAIgBH0gCK19IQIgASADfSEBIAYgC0IBfCIMUK18IQYMBAsgAiAEQgAgASADWiACIARaIAIgBFEbIggbfSABIANCACAIGyIEVK19IQIgASAEfSEBIAitIQwMAwsgASABIAOAIgwgA359IQFCACEGQgAhAgwCCyACIAIgA0L/////D4MiBIAiBiADfn1CIIYgAUIgiCIMhCAEgCICQiCGIAwgAiADfn1CIIYgAUL/////D4OEIgEgBIAiA4QhDCABIAMgBH59IQEgAkIgiCAGhCEGQgAhAgwBCyAFQTBqIAMgBEHAACAIayIIENeBgIAAIAVBIGogASACIAgQ14GAgABCACEGIAVBEGogA0IAIAUpAyAgBSkDMIAiDEIAENuBgIAAIAUgBEIAIAxCABDbgYCAACAFKQMQIQoCQAJAIAUpAwggBSkDGCINIAUpAwB8IgsgDVStfEIAUg0AIAEgClQiCCACIAtUIAIgC1EbRQ0BCyAEIAJ8IAMgAXwiASADVK18IAt9IAEgClStfSECIAxCf3whDCABIAp9IQEMAQsgAiALfSAIrX0hAiABIAp9IQFCACEGCyAAIAE3AxAgACAMNwMAIAAgAjcDGCAAIAY3AwggBUGwAWokgICAgAALoQEBAn8jgICAgABBIGsiBSSAgICAACAFQgAgAX0gASACQgBTIgYbQgAgAiABQgBSrXx9IAIgBhtCACADfSADIARCAFMiBhtCACAEIANCAFKtfH0gBCAGGxDVgYCAACAFKQMIIQMgAEIAIAUpAwAiAX0gASAEIAKFQgBTIgYbNwMAIABCACADIAFCAFKtfH0gAyAGGzcDCCAFQSBqJICA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AAAAEQIQAAYAAACEAxAABwAAAG5hdGl2ZV9mZWV6cm9fZmVlAAAAMAIQAAoAAAA6AhAABwAAAGZlZQBUAhAAAwAAAEsDEAAEAAAADAIQAAUAAABuYXRpdmVfdG9rZW5zZXRfZGVsZWdhdGVzZW5kX2NvbXBvc2VFbmRwb2ludFBlZXJlaWRwZWVyAKACEAADAAAAowIQAAQAAABtc2dfdHlwZW9wdGlvbnMAoAIQAAMAAAC4AhAACAAAAMACEAAHAAAARW5mb3JjZWRPcHRpb25zZW5mb3JjZWRfb3B0aW9uX3NldGVuZm9yY2VkX29wdGlvbl9wYXJhbXMCAxAAFgAAAGFtb3VudF9yZWNlaXZlZF9sZGFtb3VudF9zZW50X2xkZHN0X2VpZGZyb21ndWlkACADEAASAAAAMgMQAA4AAABAAxAABwAAAEcDEAAEAAAASwMQAAQAAABvZnRfcmVjZWl2ZWRzcmNfZWlkdG8AAAAgAxAAEgAAAEsDEAAEAAAAhAMQAAcAAACLAxAAAgAAAERlY2ltYWxDb252ZXJzaW9uUmF0ZVRva2VuYW1vdW50X2xkY29tcG9zZV9tc2dleHRyYV9vcHRpb25zbWluX2Ftb3VudF9sZG9mdF9jbWQAygMQAAkAAADTAxAACwAAAEADEAAHAAAA3gMQAA0AAADrAxAADQAAAPgDEAAHAAAAiwMQAAIAAABtYXhfYW1vdW50X2xkAAAAOAQQAA0AAADrAxAADQAAACADEAASAAAAMgMQAA4AAABkZXNjcmlwdGlvbmZlZV9hbW91bnRfbGRoBBAACwAAAHMEEAANAAAAAAAAEgAAAAAAAAAAAAAAEgAAAAF0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXLCBBAACQAAAMsEEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAMIEEAAJAAAAywQQAAkAAAD6BBAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAywQQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAARQUQAAkAAACkBBAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAG8FEAAIAAAAdwUQAAoAAAB0dGxfY29uZmlnc19m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cyB1c2VkIGZvciBjcm9zcy1jaGFpbiBub3JtYWxpemF0aW9uLgAAAAAAAA9zaGFyZWRfZGVjaW1hbHMAAAAAAAAAAAEAAAAEAAAAAAAAAElSZXRyaWV2ZXMgdGhlIGRlY2ltYWwgY29udmVyc2lvbiByYXRlIHVzZWQgZm9yIGNyb3NzLWNoYWluIG5vcm1hbGl6YXRpb24uAAAAAAAAF2RlY2ltYWxfY29udmVyc2lvbl9yYXRlAAAAAAAAAAABAAAACwAAAAAAAADqV2hldGhlciBhIHNlcGFyYXRlIHRva2VuIGFwcHJvdmFsIGlzIHJlcXVpcmVkIGJlZm9yZSBzZW5kaW5nLgoKSGVscHMgd2FsbGV0IGltcGxlbWVudGVycyBkZXRlcm1pbmUgaW50ZWdyYXRpb24gcmVxdWlyZW1lbnRzLgoKIyBSZXR1cm5zCi0gYHRydWVgIGlmIGEgc2VwYXJhdGUgdG9rZW4gYXBwcm92YWwgc3RlcCBpcyByZXF1aXJlZAotIGBmYWxzZWAgaWYgbm8gc2VwYXJhdGUgYXBwcm92YWwgaXMgbmVlZGVkAAAAAAARYXBwcm92YWxfcmVxdWlyZWQAAAAAAAAAAAAAAQAAAAEAAAAAAAAAO1F1b3RlcyBhIHNlbmQgb3BlcmF0aW9uIGluY2x1ZGluZyBMYXllclplcm8gbWVzc2FnaW5nIGZlZXMuAAAAAApxdW90ZV9zZW5kAAAAAAADAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAKc2VuZF9wYXJhbQAAAAAH0AAAAAlTZW5kUGFyYW0AAAAAAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAABAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAAAAAAAdFNlbmRzIHRva2VucyBjcm9zcy1jaGFpbiB0byBhbm90aGVyIGVuZHBvaW50LgoKRnJvbSBtdXN0IGJlIGF1dGhlbnRpY2F0ZWQuCgojIFJldHVybnMKKE1lc3NhZ2luZ1JlY2VpcHQsIE9GVFJlY2VpcHQpAAAABHNlbmQAAAAEAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAKc2VuZF9wYXJhbQAAAAAH0AAAAAlTZW5kUGFyYW0AAAAAAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAAAAAAAAOcmVmdW5kX2FkZHJlc3MAAAAAABMAAAABAAAD7QAAAAIAAAfQAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAfQAAAACk9GVFJlY2VpcHQAAAAAAAAAAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAAGAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAhkZWxlZ2F0ZQAAA+gAAAATAAAAAAAAAA9zaGFyZWRfZGVjaW1hbHMAAAAABAAAAAAAAAAIb2Z0X3R5cGUAAAfQAAAAB09mdFR5cGUAAAAAAAAAAAAAAABDUmV0dXJucyB0aGUgdHlwZSBvZiBvcGVyYXRpb24gZm9yIHRoaXMgT0ZUIChMb2NrVW5sb2NrIG9yIE1pbnRCdXJuKQAAAAAIb2Z0X3R5cGUAAAAAAAAAAQAAB9AAAAAHT2Z0VHlwZQAAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAAAAAAA2VJldHJpZXZlcyB0aGUgZW5mb3JjZWQgb3B0aW9ucyBmb3IgYSBnaXZlbiBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlLgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBtc2dfdHlwZWAgLSBUaGUgT0FwcCBtZXNzYWdlIHR5cGUKCiMgUmV0dXJucwpUaGUgZW5mb3JjZWQgb3B0aW9ucyBmb3IgdGhlIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUAAAAAAAAQZW5mb3JjZWRfb3B0aW9ucwAAAAIAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAABAAAADgAAAAAAAAKbU2V0cyB0aGUgZW5mb3JjZWQgb3B0aW9ucyBmb3Igc3BlY2lmaWMgZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZSBjb21iaW5hdGlvbnMuCgpPbmx5IHRoZSBgYXV0aG9yaXplcmAgb2YgdGhlIE9BcHAgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbi4KUHJvdmlkZXMgYSB3YXkgZm9yIHRoZSBPQXBwIHRvIGVuZm9yY2UgdGhpbmdzIGxpa2UgcGF5aW5nIGZvciBQcmVDcmltZSwgQU5EL09SIG1pbmltdW0gZHN0IGx6UmVjZWl2ZSBnYXMgYW1vdW50cyBldGMuClRoZXNlIGVuZm9yY2VkIG9wdGlvbnMgY2FuIHZhcnkgYXMgdGhlIHBvdGVudGlhbCBvcHRpb25zL2V4ZWN1dGlvbiBvbiB0aGUgcmVtb3RlIG1heSBkaWZmZXIgYXMgcGVyIHRoZSBtc2dfdHlwZS4KZS5nLiBBbW91bnQgb2YgbHpSZWNlaXZlKCkgZ2FzIG5lY2Vzc2FyeSB0byBkZWxpdmVyIGEgbHpDb21wb3NlKCkgbWVzc2FnZSBhZGRzIG92ZXJoZWFkIHlvdSBkb24ndCB3YW50IHRvIHBheQppZiB5b3UgYXJlIG9ubHkgbWFraW5nIGEgc3RhbmRhcmQgTGF5ZXJaZXJvIG1lc3NhZ2UgaWUuIGx6UmVjZWl2ZSgpIFdJVEhPVVQgc2VuZENvbXBvc2UoKS4KCiMgQXJndW1lbnRzCiogYG9wdGlvbnNgIC0gQSB2ZWN0b3Igb2YgRW5mb3JjZWRPcHRpb25QYXJhbSBzdHJ1Y3R1cmVzIHNwZWNpZnlpbmcgZW5mb3JjZWQgb3B0aW9ucwAAAAAUc2V0X2VuZm9yY2VkX29wdGlvbnMAAAABAAAAAAAAAAdvcHRpb25zAAAAA+oAAAfQAAAAE0VuZm9yY2VkT3B0aW9uUGFyYW0AAAAAAAAAAAAAAAJ6Q29tYmluZXMgb3B0aW9ucyBmb3IgYSBnaXZlbiBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlLgoKSWYgdGhlcmUgaXMgYW4gZW5mb3JjZWQgbHpSZWNlaXZlIG9wdGlvbjoKLSB7Z2FzX2xpbWl0OiAyMDBrLCB2YWx1ZTogMSBYTE19IEFORCBhIGNhbGxlciBzdXBwbGllcyBhIGx6UmVjZWl2ZSBvcHRpb246IHtnYXNfbGltaXQ6IDEwMGssIHZhbHVlOiAwLjUgWExNfQotIFRoZSByZXN1bHRpbmcgb3B0aW9ucyB3aWxsIGJlIHtnYXNfbGltaXQ6IDMwMGssIHZhbHVlOiAxLjUgWExNfSB3aGVuIHRoZSBtZXNzYWdlIGlzIGV4ZWN1dGVkIG9uIHRoZSByZW1vdGUgbHpfcmVjZWl2ZSgpIGZ1bmN0aW9uLgpUaGUgcHJlc2VuY2Ugb2YgZHVwbGljYXRlZCBvcHRpb25zIGlzIGhhbmRsZWQgb2ZmLWNoYWluIGluIHRoZSB2ZXJpZmllci9leGVjdXRvci4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgbXNnX3R5cGVgIC0gVGhlIE9BcHAgbWVzc2FnZSB0eXBlCiogYGV4dHJhX29wdGlvbnNgIC0gQWRkaXRpb25hbCBvcHRpb25zIHBhc3NlZCBieSB0aGUgY2FsbGVyCgojIFJldHVybnMKVGhlIGNvbWJpbmF0aW9uIG9mIGNhbGxlciBzcGVjaWZpZWQgb3B0aW9ucyBBTkQgZW5mb3JjZWQgb3B0aW9ucwAAAAAAD2NvbWJpbmVfb3B0aW9ucwAAAAADAAAAAAAAAANlaWQAAAAABAAAAAAAAAAIbXNnX3R5cGUAAAAEAAAAAAAAAA1leHRyYV9vcHRpb25zAAAAAAAADgAAAAEAAAAOAAAAAAAAALdDaGVja3MgaWYgYSBtZXNzYWdpbmcgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4uCgojIEFyZ3VtZW50cwoqIGBvcmlnaW5gIC0gVGhlIG9yaWdpbiBvZiB0aGUgbWVzc2FnZQoKIyBSZXR1cm5zClRydWUgaWYgdGhlIHBhdGggY2FuIGJlIGluaXRpYWxpemVkLCBmYWxzZSBvdGhlcndpc2UAAAAAFWFsbG93X2luaXRpYWxpemVfcGF0aAAAAAAAAAEAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAABAAAAAAAAAfhSZXRyaWV2ZXMgdGhlIG5leHQgbm9uY2UgZm9yIGEgZ2l2ZW4gc291cmNlIGVuZHBvaW50IGFuZCBzZW5kZXIgYWRkcmVzcy4KClRoZSBwYXRoIG5vbmNlIHN0YXJ0cyBmcm9tIDEuIElmIDAgaXMgcmV0dXJuZWQgaXQgbWVhbnMgdGhhdCB0aGVyZSBpcyBOTyBub25jZSBvcmRlcmVkIGVuZm9yY2VtZW50LgpUaGlzIGlzIHJlcXVpcmVkIGJ5IHRoZSBvZmYtY2hhaW4gZXhlY3V0b3IgdG8gZGV0ZXJtaW5lIGlmIHRoZSBPQXBwIGV4cGVjdHMgbWVzc2FnZSBleGVjdXRpb24gdG8gYmUgb3JkZXJlZC4KVGhpcyBpcyBhbHNvIGVuZm9yY2VkIGJ5IHRoZSBPQXBwLgpCeSBkZWZhdWx0IHRoaXMgaXMgTk9UIGVuYWJsZWQsIGkuZS4gbmV4dF9ub25jZSBpcyBoYXJkY29kZWQgdG8gcmV0dXJuIDAuCgojIEFyZ3VtZW50cwoqIGBzcmNfZWlkYCAtIFRoZSBzb3VyY2UgZW5kcG9pbnQgSUQKKiBgc2VuZGVyYCAtIFRoZSBzZW5kZXIgT0FwcCBhZGRyZXNzCgojIFJldHVybnMKVGhlIG5leHQgbm9uY2UAAAAKbmV4dF9ub25jZQAAAAAAAgAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAAQAAAAYAAAAAAAADI0VudHJ5IHBvaW50IGZvciByZWNlaXZpbmcgbWVzc2FnZXMgb3IgcGFja2V0cyBmcm9tIHRoZSBMYXllclplcm8gZW5kcG9pbnQuCgpUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBjYWxscyBgY2xlYXJfcGF5bG9hZF9hbmRfdHJhbnNmZXJgIHRvIHZhbGlkYXRlIHRoZSBtZXNzYWdlCmFuZCBjbGVhciBpdCBmcm9tIHRoZSBlbmRwb2ludCwgdGhlbiBkZWxlZ2F0ZXMgdG8gYF9fbHpfcmVjZWl2ZWAgZm9yIGFwcGxpY2F0aW9uIGxvZ2ljLgoKIyBBcmd1bWVudHMKKiBgZXhlY3V0b3JgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGV4ZWN1dG9yIGZvciB0aGUgcmVjZWl2ZWQgbWVzc2FnZQoqIGBvcmlnaW5gIC0gVGhlIG9yaWdpbiBpbmZvcm1hdGlvbiBjb250YWluaW5nIHRoZSBzb3VyY2UgZW5kcG9pbnQgYW5kIHNlbmRlciBhZGRyZXNzOgotIGBzcmNfZWlkYDogVGhlIHNvdXJjZSBjaGFpbiBlbmRwb2ludCBJRAotIGBzZW5kZXJgOiBUaGUgc2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbgotIGBub25jZWA6IFRoZSBub25jZSBvZiB0aGUgbWVzc2FnZQoqIGBndWlkYCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlY2VpdmVkIExheWVyWmVybyBtZXNzYWdlCiogYG1lc3NhZ2VgIC0gVGhlIHBheWxvYWQgb2YgdGhlIHJlY2VpdmVkIG1lc3NhZ2UKKiBgZXh0cmFfZGF0YWAgLSBBZGRpdGlvbmFsIGFyYml0cmFyeSBkYXRhIHByb3ZpZGVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGV4ZWN1dG9yCiogYHZhbHVlYCAtIFRoZSBuYXRpdmUgdG9rZW4gdmFsdWUgc2VudCB3aXRoIHRoZSBtZXNzYWdlAAAAAApsel9yZWNlaXZlAAAAAAAGAAAAAAAAAAhleGVjdXRvcgAAABMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAACmV4dHJhX2RhdGEAAAAAAA4AAAAAAAAABXZhbHVlAAAAAAAACwAAAAAAAAAAAAAB7EluZGljYXRlcyB3aGV0aGVyIGFuIGFkZHJlc3MgaXMgYW4gYXBwcm92ZWQgY29tcG9zZU1zZyBzZW5kZXIgdG8gdGhlIEVuZHBvaW50LgoKQXBwbGljYXRpb25zIGNhbiBvcHRpb25hbGx5IGNob29zZSB0byBpbXBsZW1lbnQgc2VwYXJhdGUgY29tcG9zZU1zZyBzZW5kZXJzIHRoYXQgYXJlIE5PVCB0aGUgYnJpZGdpbmcgbGF5ZXIuClRoZSBkZWZhdWx0IHNlbmRlciBJUyB0aGUgT0FwcFJlY2VpdmVyIGltcGxlbWVudGVyLgoKIyBBcmd1bWVudHMKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gaW5mb3JtYXRpb24gY29udGFpbmluZyB0aGUgc291cmNlIGVuZHBvaW50IGFuZCBzZW5kZXIgYWRkcmVzcwoqIGBtZXNzYWdlYCAtIFRoZSBselJlY2VpdmUgcGF5bG9hZAoqIGBzZW5kZXJgIC0gVGhlIHNlbmRlciBhZGRyZXNzIHRvIGNoZWNrCgojIFJldHVybnMKVHJ1ZSBpZiB0aGUgc2VuZGVyIGlzIGEgdmFsaWQgY29tcG9zZU1zZyBzZW5kZXIsIGZhbHNlIG90aGVyd2lzZQAAABVpc19jb21wb3NlX21zZ19zZW5kZXIAAAAAAAADAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAAEAAAAAAAAArlJldHJpZXZlcyB0aGUgT0FwcCB2ZXJzaW9uIGluZm9ybWF0aW9uLgoKIyBSZXR1cm5zCkEgdHVwbGUgY29udGFpbmluZzoKLSBgc2VuZGVyX3ZlcnNpb25gOiBUaGUgdmVyc2lvbiBvZiB0aGUgT0FwcFNlbmRlcgotIGByZWNlaXZlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBSZWNlaXZlcgAAAAAADG9hcHBfdmVyc2lvbgAAAAAAAAABAAAD7QAAAAIAAAAGAAAABgAAAAAAAABsUmV0cmlldmVzIHRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggdGhlIE9BcHAuCgojIFJldHVybnMKVGhlIExheWVyWmVybyBlbmRwb2ludCBhZGRyZXNzAAAACGVuZHBvaW50AAAAAAAAAAEAAAATAAAAAAAAAMFSZXRyaWV2ZXMgdGhlIHBlZXIgKE9BcHApIGFzc29jaWF0ZWQgd2l0aCBhIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECgojIFJldHVybnMKVGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGVuZHBvaW50AAAAAAAABHBlZXIAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAD7gAAACAAAAAAAAAA5VNldHMgb3IgcmVtb3ZlcyB0aGUgcGVlciBhZGRyZXNzIChPQXBwIGluc3RhbmNlKSBmb3IgYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBwZWVyYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBwZWVyIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIHBlZXIAAAAAAAAIc2V0X3BlZXIAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAEcGVlcgAAA+gAAAPuAAAAIAAAAAAAAAAAAAAAjlNldHMgdGhlIGRlbGVnYXRlIGFkZHJlc3MgZm9yIHRoZSBPQXBwIENvcmUuCgojIEFyZ3VtZW50cwoqIGBkZWxlZ2F0ZWAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgZGVsZWdhdGUgdG8gYmUgc2V0LCBvciBOb25lIHRvIHJlbW92ZSB0aGUgZGVsZWdhdGUAAAAAAAxzZXRfZGVsZWdhdGUAAAABAAAAAAAAAAhkZWxlZ2F0ZQAAA+gAAAATAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAA1FbmRwb2ludEVycm9yAAAAAAAAGQAAAAAAAAARQWxyZWFkeVJlZ2lzdGVyZWQAAAAAAAABAAAAAAAAAA1Db21wb3NlRXhpc3RzAAAAAAAAAgAAAAAAAAAPQ29tcG9zZU5vdEZvdW5kAAAAAAMAAAAAAAAAHERlZmF1bHRSZWNlaXZlTGliVW5hdmFpbGFibGUAAAAEAAAAAAAAABlEZWZhdWx0U2VuZExpYlVuYXZhaWxhYmxlAAAAAAAABQAAAAAAAAAVSW5zdWZmaWNpZW50TmF0aXZlRmVlAAAAAAAABgAAAAAAAAAS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bmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAoVW5peCB0aW1lc3RhbXAgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAZleHBpcnkAAAAAAAYAAAApVGhlIG5ldyBsaWJyYXJ5IGFkZHJlc3MgdG8gdHJhbnNpdGlvbiB0by4AAAAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAABAAAABRPQXBwRXJyb3I6IDIwMDAtMjA5OQAAAAAAAAAJT0FwcEVycm9yAAAAAAAABAAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAAB9AAAAAAAAAABk5vUGVlcgAAAAAH0QAAAAAAAAAIT25seVBlZXIAAAfSAAAAAAAAABNacm9Ub2tlblVuYXZhaWxhYmxlAAAAB9MAAAACAAAAAAAAAAAAAAAPT0FwcENvcmVTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAEAAAAAAAAABFBlZXIAAAABAAAABAAAAAUAAAAAAAAAAAAAAAdQZWVyU2V0AAAAAAEAAAAIcGVlcl9zZXQAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAIAAAAAAAAAAAAAABdPQXBwT3B0aW9uc1R5cGUzU3RvcmFnZQAAAAABAAAAAQAAAAAAAAAPRW5mb3JjZWRPcHRpb25zAAAAAAIAAAAEAAAABAAAAAUAAAAAAAAAAAAAABFFbmZvcmNlZE9wdGlvblNldAAAAAAAAAEAAAATZW5mb3JjZWRfb3B0aW9uX3NldAAAAAABAAAAAAAAABZlbmZvcmNlZF9vcHRpb25fcGFyYW1zAAAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAACAAAABAAAABNPRlRFcnJvcjogMzAwMC0zMDk5AAAAAAAAAAAIT0ZURXJyb3IAAAAEAAAAAAAAABRJbnZhbGlkTG9jYWxEZWNpbWFscwAAC7gAAAAAAAAADk5vdEluaXRpYWxpemVkAAAAAAu5AAAAAAAAAAhPdmVyZmxvdwAAC7oAAAAAAAAAEFNsaXBwYWdlRXhjZWVkZWQAAAu7AAAABQAAAAAAAAAAAAAAB09GVFNlbnQAAAAAAQAAAAhvZnRfc2VudAAAAAUAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAAAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAABGZyb20AAAATAAAAAAAAAAAAAAAOYW1vdW50X3NlbnRfbGQAAAAAAAsAAAAAAAAAAAAAABJhbW91bnRfcmVjZWl2ZWRfbGQAAAAAAAsAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAtPRlRSZWNlaXZlZAAAAAABAAAADG9mdF9yZWNlaXZlZAAAAAQAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAAAAAAAAAAAB3NyY19laWQAAAAABAAAAAAAAAAAAAAAAnRvAAAAAAATAAAAAAAAAAAAAAASYW1vdW50X3JlY2VpdmVkX2xkAAAAAAALAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAKT0ZUU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAAFURlY2ltYWxDb252ZXJzaW9uUmF0ZQAAAAAAAAAAAAAAAAAABVRva2VuAAAAAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIE9GVCB0b2tlbnMgY3Jvc3MtY2hhaW4AAAAAAAAAAAAACVNlbmRQYXJhbQAAAAAAAAcAAAAkVGhlIGFtb3VudCB0byBzZW5kIGluIGxvY2FsIGRlY2ltYWxzAAAACWFtb3VudF9sZAAAAAAAAAsAAAA4Q29tcG9zZSBtZXNzYWdlIHRvIGV4ZWN1dGUgb24gdGhlIGRlc3RpbmF0aW9uIChPcHRpb25hbCkAAAALY29tcG9zZV9tc2cAAAAADgAAABtUaGUgZGVzdGluYXRpb24gZW5kcG9pbnQgSUQAAAAAB2RzdF9laWQAAAAABAAAADdBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBMYXllclplcm8gbWVzc2FnZSAoT3B0aW9uYWwpAAAAAA1leHRyYV9vcHRpb25zAAAAAAAADgAAAEVUaGUgbWluaW11bSBhbW91bnQgdG8gcmVjZWl2ZSBpbiBsb2NhbCBkZWNpbWFscyAoc2xpcHBhZ2UgcHJvdGVjdGlvbikAAAAAAAANbWluX2Ftb3VudF9sZAAAAAAAAAsAAAAqT0ZUIGNvbW1hbmQgZm9yIGN1c3RvbSBiZWhhdmlvciAoT3B0aW9uYWwpAAAAAAAHb2Z0X2NtZAAAAAAOAAAAOVRoZSByZWNpcGllbnQgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKQAAAAAAAAJ0bwAAAAAD7gAAACAAAAABAAAAIlRyYW5zZmVyIGxpbWl0cyBmb3IgT0ZUIG9wZXJhdGlvbnMAAAAAAAAAAAAIT0ZUTGltaXQAAAACAAAALFRoZSBtYXhpbXVtIGFtb3VudCB0byBzZW5kIGluIGxvY2FsIGRlY2ltYWxzAAAADW1heF9hbW91bnRfbGQAAAAAAAALAAAALFRoZSBtaW5pbXVtIGFtb3VudCB0byBzZW5kIGluIGxvY2FsIGRlY2ltYWxzAAAADW1pbl9hbW91bnRfbGQAAAAAAAALAAAAAQAAAD9SZWNlaXB0IGNvbnRhaW5pbmcgYW1vdW50cyBzZW50IGFuZCByZWNlaXZlZCBpbiBhbiBPRlQgdHJhbnNmZXIAAAAAAAAAAApPRlRSZWNlaXB0AAAAAAACAAAAM1RoZSBhbW91bnQgcmVjZWl2ZWQgaW4gbG9jYWwgZGVjaW1hbHMgb24gdGhlIHJlbW90ZQAAAAASYW1vdW50X3JlY2VpdmVkX2xkAAAAAAALAAAAIVRoZSBhbW91bnQgc2VudCBpbiBsb2NhbCBkZWNpbWFscwAAAAAAAA5hbW91bnRfc2VudF9sZAAAAAAACwAAAAEAAAAuRGV0YWlscyBhYm91dCBmZWVzIGNoYXJnZWQgaW4gYW4gT0ZUIG9wZXJhdGlvbgAAAAAAAAAAAAxPRlRGZWVEZXRhaWwAAAACAAAAGlRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZmVlAAAAAAALZGVzY3JpcHRpb24AAAAADgAAAH9UaGUgYW1vdW50IG9mIHRoZSBmZWUgaW4gbG9jYWwgZGVjaW1hbHMuIFBvc2l0aXZlIHZhbHVlcyByZXByZXNlbnQgZmVlcyBjaGFyZ2VkLAp3aGlsZSBuZWdhdGl2ZSB2YWx1ZXMgcmVwcmVzZW50IHJld2FyZHMgZ2l2ZW4uAAAAAA1mZWVfYW1vdW50X2xkAAAAAAAACwAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAFwAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIzLjQuMCM2NzNkNmM0ZjIzNjhkMjgyZDI1ZGEyOWJkYTU1YzIxYjhiZTY5Y2E2AA==";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABgQIpYAF+AX5gAn5+AX5gA35+fgF+YAR+fn5+AX5gAAF+YAF+AX9gAn9/AX9gBX5+fn5+AGACf38BfmADfn5+AGAEf39/fwBgA39/fwBgBH9/fn4AYAN/f38BfmABfwBgAn9/AGACfn8BfmABfgBgAn5+AX9gAn9+AGAAAGAAAX9gAX8BfmACfn8AYAN/fn4AYAR/fn5+AGAEf39/fwF+YAV/fn9+fgBgA35/fwBgAX8Bf2ACf34Bf2AFfn9/f38AYAZ/fn5+fn8AYAV/fn5+fgBgBn5+fn5+fgF+YAR+fn5+AGACfn4AYAJ+fwF/YAR+fn9/AX5gBH9+fn8AYAN/f38BfwLlASYBdgEzAAABdgExAAEBYgFtAAIBbAE3AAMBbAFfAAIBYgE4AAABYgFlAAEBbAExAAEBYgE0AAQBYQEwAAABYgFfAAABYgFmAAIBeAE3AAQBeAExAAEBbAEyAAEBdgFfAAQBZAFfAAIBYQE2AAABaQFfAAABaQEwAAABYgExAAMBYgEzAAEBdgFnAAEBaQE4AAABaQE3AAABaQE2AAEBYgFqAAEBYgEyAAMBbQE5AAIBbQFhAAMBeAEwAAEBYgEwAAABeAE0AAQBeAEzAAQBeAE4AAQBbAEwAAEBbAE4AAEBeAE1AAADuwG5AQUGBwEICQcKCAsIDAANDg8IDhARCBIOCg8IEwsEFBUWFAQEDhcUDhYOBAsTGAETBBYZDxgaERsOExwTHR4eDhQOBA8EFg8EBA4UFQwLDwQLDBMTHxMOCAALICECAQEBAAEAEgQAAAQABAATCCEEBAUEBAQBABMTFgIWEyEDFQAiDw8RIwQEBAQAJAEUFRgEBAEBExYEDwQEBAQAAQAAEwEiFgglARQmAgEAAhQLEwsPCyAnISEnKCghBAUBcAEBAQUDAQARBiEEfwFBgIDAAAt/AEH0iMAAC38AQaKLwAALfwBBsIvAAAsHoQc1Bm1lbW9yeQIADnNldF9yYXRlX2xpbWl0AIEBEXJhdGVfbGltaXRfY29uZmlnAIIBFHJhdGVfbGltaXRfaW5fZmxpZ2h0AIMBE3JhdGVfbGltaXRfY2FwYWNpdHkAhAETc2V0X2RlZmF1bHRfZmVlX2JwcwCFAQtzZXRfZmVlX2JwcwCGARdzZXRfZmVlX2RlcG9zaXRfYWRkcmVzcwCHAQ9kZWZhdWx0X2ZlZV9icHMAiQEHZmVlX2JwcwCKARFlZmZlY3RpdmVfZmVlX2JwcwCLARNmZWVfZGVwb3NpdF9hZGRyZXNzAIwBCnNldF9wYXVzZWQAjQEJaXNfcGF1c2VkAI4BCXF1b3RlX29mdACPAQV0b2tlbgCTAQ9zaGFyZWRfZGVjaW1hbHMAlAEXZGVjaW1hbF9jb252ZXJzaW9uX3JhdGUAlgERYXBwcm92YWxfcmVxdWlyZWQAlwENbXNnX2luc3BlY3RvcgCYARFzZXRfbXNnX2luc3BlY3RvcgCaAQpxdW90ZV9zZW5kAJ4BBHNlbmQAogENX19jb25zdHJ1Y3RvcgClAQhvZnRfdHlwZQCqAQphdXRob3JpemVyAKsBBW93bmVyAKwBDXBlbmRpbmdfb3duZXIArQESdHJhbnNmZXJfb3duZXJzaGlwAK4BGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyALABEGFjY2VwdF9vd25lcnNoaXAAtAEScmVub3VuY2Vfb3duZXJzaGlwALUBE2V4dGVuZF9pbnN0YW5jZV90dGwAtgEPc2V0X3R0bF9jb25maWdzALcBC3R0bF9jb25maWdzALoBEmZyZWV6ZV90dGxfY29uZmlncwC8ARVpc190dGxfY29uZmlnc19mcm96ZW4AvQEMb2FwcF92ZXJzaW9uAL4BCGVuZHBvaW50AL8BBHBlZXIAwAEIc2V0X3BlZXIAwQEMc2V0X2RlbGVnYXRlAMIBFWFsbG93X2luaXRpYWxpemVfcGF0aADDAQpuZXh0X25vbmNlAMUBCmx6X3JlY2VpdmUAxgEVaXNfY29tcG9zZV9tc2dfc2VuZGVyAM0BEGVuZm9yY2VkX29wdGlvbnMAzgEUc2V0X2VuZm9yY2VkX29wdGlvbnMAzwEPY29tYmluZV9vcHRpb25zANABAV8DAQtvZnRfdmVyc2lvbgC+AQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwq46wG5Aa4BAwF/AX4Cf0ECIQECQCAAQv8Bg0LLAFINACAAEICAgIAAIgJCgICAgBBUDQACQCAAQgQQgYCAgAAiAKdB/wFxIgNBygBGDQAgA0EORw0BCyACQiCIpyEDAkACQAJAIABByIHAgACtQiCGQgSEQoSAgIAgEIKAgIAAQiCIpw4CAAEDC0EBIAMQp4CAgAANAkEAIQQMAQtBASEEQQEgAxCngICAAA0BCyAEIQELIAELGQACQCABIABJDQAgASAAaw8LEOWAgIAAAAuxAQECfyOAgICAAEEwayIFJICAgIAAIAUgAyAEEKmAgIAANwMQIAUgAjcDCCAFIAE3AwBBACEGA0ACQCAGQRhHDQBBACEGAkADQCAGQRhGDQEgBUEYaiAGaiAFIAZqKQMANwMAIAZBCGohBgwACwsgAEKO7uqVvrbe8wAgBUEYakEDEKqAgIAAEKuAgIAAIAVBMGokgICAgAAPCyAFQRhqIAZqQgI3AwAgBkEIaiEGDAALC0MBAX8jgICAgABBEGsiAiSAgICAACACIAAgARDZgICAAAJAIAIoAgBBAUcNAAALIAIpAwghASACQRBqJICAgIAAIAELGgAgAK1CIIZCBIQgAa1CIIZCBIQQloCAgAALIQACQCAAIAEgAhCQgICAAEL/AYNCAlENABDlgICAAAALC7EBAQJ/I4CAgIAAQTBrIgUkgICAgAAgBSADIAQQqYCAgAA3AxAgBSACNwMIIAUgATcDAEEAIQYDQAJAIAZBGEcNAEEAIQYCQANAIAZBGEYNASAFQRhqIAZqIAUgBmopAwA3AwAgBkEIaiEGDAALCyAAQo7u6pW+tt7zACAFQRhqQQMQqoCAgAAQq4CAgAAgBUEwaiSAgICAAA8LIAVBGGogBmpCAjcDACAGQQhqIQYMAAsLJwAgACABEK6AgIAAQgEgAq1CIIZCBIQgA61CIIZCBIQQg4CAgAAaC/oBAgF/An4jgICAgABBMGsiAiSAgICAACACQSBqQcCCwIAAQQkQ0ICAgAACQAJAIAIoAiANACACKQMoIQMCQAJAIAFBAXFFDQAgAkEgakG/gcCAAEEIENCAgIAAIAIoAiANAiACQSBqIAIpAygQ0YCAgAAMAQsgAkEgakG4gcCAAEEHENCAgIAAIAIoAiANASACQSBqIAIpAygQ0YCAgAALIAIpAyghBCACKQMgpw0AIAIgBDcDECACIAM3AwggAiAArUIghkIEhDcDGCACQSBqIAJBCGoQ2ICAgAAgAigCIEUNAQsACyACKQMoIQMgAkEwaiSAgICAACADCycAQQEgABCwgICAAEIBIAGtQiCGQgSEIAKtQiCGQgSEEIOAgIAAGgvHAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQAJAAkAgAA4DAAECAAsgAkGAgMCAAEENENCAgIAAIAIoAgANAyACIAIpAwgQ0YCAgAAMAgsgAkGNgMCAAEEGENCAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ0oCAgAAMAQsgAkGTgMCAAEERENCAgIAAIAIoAgANASACIAIpAwgQ0YCAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsdACAAIAEQsICAgAAgAhCygICAACADEISAgIAAGgtBAQF/I4CAgIAAQRBrIgEkgICAgAAgASAAENSAgIAAAkAgASgCAEEBRw0AAAsgASkDCCEAIAFBEGokgICAgAAgAAvPAQIBfwN+I4CAgIAAQRBrIgMkgICAgAAgA0EEahC0gICAAAJAIAMoAgRBAUcNACADKAIIIAMoAgwQtYCAgAALIAAgARC2gICAACIEEIWAgIAAIQUgAikDACEGAkACQCAFQoCAgIAQVA0AAkAgBhCFgICAAEKAgICAEFoNACAEIQYMAQsgBhCFgICAAEL/////H1gNASACELeAgIAAIAQgBkECELiAgIAAEIaAgIAAIQYLIANBEGokgICAgAAgBg8LQoOAgICA+gEQuYCAgAAACwwAIABBARDVgYCAAAsbACAArUIghkIEhCABrUIghkIEhBCkgICAABoLvQEEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAACACQQRqELSAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC1gICAAAsCQAJAIAAgARC6gICAACIDQgEQu4CAgAAiBEUNACADQgEQh4CAgAAiBUL/AYNCyABSDQEgAkEEahC8gICAACACKAIEQQFHDQAgACABIAIoAgggAigCDBC9gICAAAsQiICAgAAhAyACQRBqJICAgIAAIAUgAyAEGw8LAAu9AQIBfwF+I4CAgIAAQRBrIgEkgICAgAAgAUEANgIIIAEgADYCBAJAAkACQCABQQRqQQIQyIGAgAAiAhCFgICAAEKAgICAcINCgICAgCBSDQAgAUEAOwEOIAIQhYCAgABCgICAgHCDQoCAgIAgUg0BIAIgAUEOakECEN+AgIAAIAEvAQ5BgAZHDQIgAUEQaiSAgICAAA8LQoOAgICAggEQuYCAgAAACxDLgYCAAAALQoOAgICA+gEQuYCAgAAACyUAIAAgAa1CIIZCBIQgABCFgICAAEKAgICAcINCBIQQi4CAgAALCwAgABClgICAABoLigECAX8BfiOAgICAAEEwayICJICAgIAAIAJBIGpBnIXAgABBDxDQgICAAAJAAkAgAigCIA0AIAIgAikDKDcDCCACIAGtQiCGQgSENwMYIAIgAK1CIIZCBIQ3AxAgAkEgaiACQQhqENiAgIAAIAIoAiBFDQELAAsgAikDKCEDIAJBMGokgICAgAAgAwsPACAAIAEQo4CAgABCAVELDAAgAEECENWBgIAACycAIAAgARC6gICAAEIBIAKtQiCGQgSEIAOtQiCGQgSEEIOAgIAAGgvGAQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAhC0gICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtYCAgAALAkACQAJAQQEgARC/gICAACIDQgEQu4CAgABFDQAgAiADQgEQh4CAgAAQwICAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwghAyAAQgE3AwAgACADNwMIIAIQvICAgAAgAigCAEEBRw0AIAEgAigCBCACKAIIEMGAgIAACyACQRBqJICAgIAAC5sBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIABBAXFFDQAgAkHYhMCAAEEEENCAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ0oCAgAAMAQsgAkHQhMCAAEEIENCAgIAAIAIoAgANASACIAIpAwgQ0YCAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsjAAJAIAFC/wGDQsgAUQ0AIABCATcDAA8LIAAgARDggICAAAsnAEEBIAAQv4CAgABCASABrUIghkIEhCACrUIghkIEhBCDgICAABoLhwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAACwJAAkBBACAAEL+AgIAAIgFCAhC7gICAAEUNACABQgIQh4CAgAAiAUL/AYNCzQBRDQEACxDDgICAAAALIABBEGokgICAgAAgAQsJABDlgICAAAALiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAAC0EAIQECQEEAEMWAgIAAIgJCAhC7gICAAEUNAEEBIQECQAJAIAJCAhCHgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQYqLwIAAQQYQ0ICAgAAgASgCAA0DIAEgASkDCBDRgICAAAwCCyABQZCLwIAAQQgQ0ICAgAAgASgCAA0CIAEgASkDCBDRgICAAAwBCyABQZiLwIAAQQoQ0ICAgAAgASgCAA0BIAEgASkDCBDRgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AEMeAgIAAEImAgIAAGgtmAgF/AX4jgICAgABBEGsiACSAgICAACAAELSAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC1gICAAAsgABDJgICAACAAKQMIIQEgACkDAEGKCBDKgICAACAAQRBqJICAgIAAIAELSgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDJgICAACAAKQMIIQEgACkDAEGKCBDKgICAACABEImAgIAAGiAAQRBqJICAgIAAIAELUAEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELWAgIAACyAAEM6AgIAAIAFBEGokgICAgAALKQACQCAAp0EBcUUNAA8LIAFB+ndqrUIghkKDgICA4IABfBC5gICAAAALQgEBfyOAgICAAEEQayIAJICAgIAAIAAQzICAgAACQCAAKQMAUA0AQoOAgICwgQEQuYCAgAAACyAAQRBqJICAgIAAC5MBAgF/An4jgICAgABBEGsiASSAgICAACABQQRqELSAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC1gICAAAtCACECAkACQEEBEM2AgIAAIgNCABC7gICAAEUNACADQgAQh4CAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMAIAFBEGokgICAgAAPCwALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQZ2KwIAAQQwQ0ICAgAAgASgCAA0CIAEgASkDCBDRgICAAAwBCyABQZiKwIAAQQUQ0ICAgAAgASgCAA0BIAEgASkDCBDRgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC00BAn5CACEBAkACQEEAEM2AgIAAIgJCAhC7gICAAEUNACACQgIQh4CAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsAC2ACAX8BfiOAgICAAEEQayIAJICAgIAAIABB/4LAgABBBxDQgICAAAJAAkAgACgCAA0AIAAgACkDCBDRgICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhDSgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQqoCAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEKqAgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC1YBAX8jgICAgABBEGsiAiSAgICAAAJAAkACQCAAp0EBcQ0AQgIhAAwBCyACIAEQ1ICAgAAgAigCAEEBcQ0BIAIpAwghAAsgAkEQaiSAgICAACAADwsACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCSgICAACEBCyAAQgA3AwAgACABNwMIC2ACAX8BfiOAgICAAEEQayIAJICAgIAAIABBmIHAgABBBhDQgICAAAJAAkAgACgCAA0AIAAgACkDCBDRgICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQtnAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQCAAKAIAQQFxDQBCAiECDAELIAEgACkDECAAKQMYIAApAyAQ14CAgAAgASgCAEEBcQ0BIAEpAwghAgsgAUEQaiSAgICAACACDwsAC4UBAQF/I4CAgIAAQRBrIgQkgICAgAAgBCABIAIQ2YCAgABCASECAkAgBCgCAA0AIAQpAwghASAEIAMQ1ICAgAAgBCgCAA0AIAQgBCkDCDcDCCAEIAE3AwAgAEHsgcCAAEECIARBAhDagICAADcDCEIAIQILIAAgAjcDACAEQRBqJICAgIAAC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCqgICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtbAAJAAkAgAUKAgICAgICAwAB8Qv//////////AFYNACABIAGFIAIgAUI/h4WEQgBSDQAgAUIIhkILhCEBDAELIAIgARCZgICAACEBCyAAQgA3AwAgACABNwMICy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQnICAgAALHgACQCAAp0EBcUUNAA8LQoOAgICQ+gEQuYCAgAAAC6cHAwF/BX4DfyOAgICAAEHwAGsiBSSAgICAACACKQMwIgYQhYCAgAAhByAFQRBqEN2AgIAAAkACQAJAIAUpAxAiCCAFKQMYIgmEUA0AIAIpAyAhCgJAIAMgBEKAgICAgICAgIB/hYRCAFINACAIIAmDQn9RDQELIAUgAyAEIAggCRDagYCAAAJAIAUpAwhCAVkNACAFKQMAIQQCQAJAAkAgB0L/////D1YNACAFIAQ3AzggBSAKNwMwQgAhBiAFQgA3AxAgBUEgaiELQQEhDAwBCyAFQRBqIAEQioCAgABBBBC4gICAACIDQgRChICAgMAAEIuAgIAAEN6AgIAAIAUoAhBBAUYNBSAFKQMYIQggBUEANgJYIAggBUHYAGpBBBDfgICAACAFKAJYIgtB////B3ENAQJAAkACQCALQRh2DgIAAQQLIAVB2ABqIANChICAgMAAQoSAgICAARCLgICAABDegICAACAFKAJYQQFGDQcgBSkDYCEIIAVBADYCWCAIIAVB2ABqQQQQ34CAgAAgBSgCWA0DIAVB2ABqIANChICAgIABQoSAgICABRCLgICAABDggICAACAFKAJYQQFHDQEMBwsgBUHYAGogA0KEgICAwABChICAgMAEEIuAgIAAEOCAgIAAIAUoAlhBAUYNBgsgBSkDYCEDIAVBKGohCyAFIAQ3AzggBSAKNwMwIAVCATcDICAFIAM3AxggBUIBNwMQQQIhDAsgCyAGNwMAIAVBEGoQ4YCAgAAhCyAFEIiAgIAANwNYIAVB2ABqIAoQ4oCAgAAgBBDjgICAACENAkACQCALDQAgDSkDACEEDAELIAdC/////w9YDQEgDSADEOKAgIAAIQsgBSgCIEUNASALKQMAIAUpAygQhoCAgAAhBAsgAigCQCAMIAJBKGoQs4CAgAAhAyAFQcgAahDkgICAACAFKAJIQQFHDQMgBSkDUCEKEIyAgIAAIQggBSADNwNoIAUgBDcDYCAFIAg3A1hBACECA0ACQCACQRhHDQBBACECAkADQCACQRhGDQEgBUEQaiACaiAFQdgAaiACaikDADcDACACQQhqIQIMAAsLIApCjvKotY2fuwEgBUEQakEDEKqAgIAAEKuAgIAADAULIAVBEGogAmpCAjcDACACQQhqIQIMAAsLEMOAgIAAAAtCg4CAgLD3AhC5gICAAAALEOWAgIAAAAsgACADNwMIIAAgBDcDACAFQfAAaiSAgICAAA8LAAuQAgICfwR+I4CAgIAAQcAAayIBJICAgIAAIAFBOGoQ5oCAgAACQAJAIAEoAjhBAXFFDQACQCABKAI8IgINAEIAIQNCASEEDAILQgAhA0IKIQVCASEEQgAhBgJAA0ACQCACQQFxRQ0AIAFBADYCNCABQSBqIAQgAyAFIAYgAUE0ahDXgYCAACABKAI0DQIgASkDKCEDIAEpAyAhBCACQQFGDQQLIAFBADYCHCABIAUgBiAFIAYgAUEcahDXgYCAACABKAIcDQEgASkDCCEGIAEpAwAhBSACQQF2IQIMAAsLEOWAgIAAAAtCg4CAgKD3AhC5gICAAAALIAAgBDcDACAAIAM3AwggAUHAAGokgICAgAALNgEBfkIBIQICQCABEIWAgIAAQoCAgIBwg0KAgICAwABSDQAgACABNwMIQgAhAgsgACACNwMACx8AIABCBCABrUIghkIEhCACrUIghkIEhBCUgICAABoLNgEBfkIBIQICQCABEIWAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMACzMBAX9BACEBAkAgACkDAFANACAAKAIQQQFHDQAgACkDGBCFgICAAEL/////D1YhAQsgAQvCAQEEfyOAgICAAEHAAGsiAiSAgICAACACQSBqQRhqIgNCADcDACACQSBqQRBqIgRCADcDACACQSBqQQhqIgVCADcDACACQgA3AyAgASACQSBqQSAQ34CAgAAgAkEYaiADKQMANwMAIAJBEGogBCkDADcDACACQQhqIAUpAwA3AwAgAiACKQMgNwMAIAApAwAhASAAIAEgARCFgICAAEKAgICAcINCBIQgAkEgEMyBgIAANwMAIAJBwABqJICAgIAAIAALpwEBAX8jgICAgABBEGsiAiSAgICAACACIAFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwggACkDACEBIAAgASABEIWAgIAAQoCAgIBwg0IEhCACQQhqQQgQzIGAgAA3AwAgAkEQaiSAgICAACAACwwAIABBAhDogICAAAsJABDRgYCAAAALWAMBfwF+AX9BACEBAkACQEEAEJ2BgIAAIgJCAhC7gICAAEUNACACQgIQh4CAgAAiAkL/AYNCBFINASACQiCIpyEDQQEhAQsgACADNgIEIAAgATYCAA8LAAtOAgF/AX4jgICAgABBEGsiACSAgICAACAAQQEQ6ICAgAACQCAAKAIADQBCg4CAgKD3AhC5gICAAAALIAApAwghASAAQRBqJICAgIAAIAELTQECfkIAIQICQAJAIAEQnYGAgAAiA0ICELuAgIAARQ0AIANCAhCHgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC0gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtYCAgAALEOeAgIAAIQEgAEEQaiSAgICAACABC5MBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAELCAgIAAQgEQu4CAgABFDQAgARC8gICAAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBCvgICAAAsgASAAEOuAgIAAAkAgASgCAEUNACABKQMIIQIMAgsQw4CAgAAACxDsgICAACECCyABQRBqJICAgIAAIAILnwECAX8BfiOAgICAAEEQayICJICAgIAAAkACQAJAQQEgARCwgICAACIDQgEQu4CAgABFDQAgAiADQgEQh4CAgAAQ94CAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwgh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ACACIAAgARDSgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKqAgIAAIQAgAUEQaiSAgICAACAAC/EBAgF/BH4jgICAgABB4ABrIgMkgICAgAAgAxC0gICAAAJAIAMoAgBBAUcNACADKAIEIAMoAggQtYCAgAALIAMgASACEPKAgIAAAkACQAJAIAMoAgBBAXENAEL///////////8AIQRCfyEFDAELIAMpAxAhBiADKQMYIQQgA0HQAGogA0EQahDzgICAACAEIAMpA1giBYUgBCAEIAV9IAYgAykDUCIHVK19IgWFg0J/Vw0BIAVCACAFQgBVGyEEQgAgBiAHfSAFQgBTGyEFCyAAIAU3AwAgACAENwMIIANB4ABqJICAgIAADwsQ5YCAgAAAC6IDAgF/BX4jgICAgABBwABrIgYkgICAgAAQ74CAgAAgBkEwahDdgICAACAGKQM4IQcgBikDMCEIAkACQAJAAkACQCAFEOqAgIAAIglQDQBBAiAGELCAgIAAQgIQu4CAgABFDQIgBkEANgIsIAZBEGogASACIAlCACAGQSxqENeBgIAAIAYoAiwNAyAGKQMQIglCj84AfCIKQp6cAVYgBikDGCILIAogCVStfCIKQgBSIApQGw0BCyAGQTBqIAEgAiAIIAcQgIGAgAAgBikDMCIIIQEgBikDOCIHIQIMAwsgBiAJIAtCkM4AQgAQ2oGAgAAgAiAGKQMIIgmFIAIgAiAJfSABIAYpAwAiCVStfSIKhYNCAFMNASAGQTBqIAEgCX0gCiAIIAcQgIGAgAAgBikDOCEHIAYpAzAhCAwCC0KDgICA0IMDELmAgIAAAAsQ5YCAgAAACwJAIAggA1QgByAEUyAHIARRG0UNAEKDgICAwPcCELmAgIAAAAsgACAINwMQIAAgATcDACAAIAc3AxggACACNwMIIAZBwABqJICAgIAAC60BAQF/I4CAgIAAQTBrIgUkgICAgAACQAJAIAMgBIRQDQACQCABIAJCgICAgICAgICAf4WEQgBSDQAgAyAEg0J/UQ0BCyAFQSBqIAEgAiADIAQQ2oGAgAAgBUEANgIcIAUgBSkDICAFKQMoIAMgBCAFQRxqENeBgIAAIAUoAhxFDQELEOWAgIAAAAsgBSkDCCEEIAAgBSkDADcDACAAIAQ3AwggBUEwaiSAgICAAAveBAMCfwJ+A38jgICAgABB0AFrIgMkgICAgAACQAJAAkACQAJAIAAQpoCAgABB/wFxIgRBAkYNACABQv8Bg0IEUg0AAkACQCACQgJSDQBCACEFDAELIAMgAhD4gICAACADKAIAQQFxDQEgAykDGCECIAMpAxAhBiADKQMgIQBCASEFCyABQiCIpyEHEMaAgIAAIAMQtICAgAACQCADKAIAQQFHDQAgAygCBCADKAIIELWAgIAACyADIAQgBxDygICAACAFpyEIAkACQCADKAIAIglBAXFFDQAgCEEBcUUNACADKQMQIAaFIAMpAxggAoWEQgBSDQEgAykDICAAUg0BDAYLIAkgCHJBAXFFDQULIAhBAXFFDQEgAkIAUw0CIABCAFENAgJAAkAgCUEBcUUNACADQdAAaiADQRBqIghBwAAQ3YGAgAAaIANB8ABqIAgQ84CAgAAQ9ICAgAAhAQwBCxD0gICAACEBIANCADcDeCADQgA3A3ALIAMgBjcDUCADIAA3A2AgAyABNwOAASADIAI3A1ggBCAHIANB0ABqEPWAgIAAIAMgAjcDqAEgAyAGNwOgASADQgA3A5gBIAMgBTcDkAEgAyAHNgLAASADIAQ6AMQBIAMgADcDsAEgA0GQAWoQ+4CAgAAMAwsACyAHIAQQroCAgABCARCOgICAABogA0IANwOYASADQgA3A5ABIAMgBzYCwAEgAyAEOgDEASADQZABahD7gICAAAwBC0KDgICAsIYDELmAgIAAAAsgA0HQAWokgICAgABCAg8LQoOAgIDAhgMQuYCAgAAAC9YBAQN/I4CAgIAAQYABayICJICAgIAAAkAgABCmgICAAEH/AXEiA0ECRg0AIAFC/wGDQgRSDQAgAUIgiKchBCACQTBqELSAgIAAAkAgAigCMEEBRw0AIAIoAjQgAigCOBC1gICAAAsgAkEwaiADIAQQ8oCAgAACQAJAIAIoAjBBAXENAEIAIQEMAQsgAiACKQNINwMYIAIgAikDQDcDECACIAIpA1A3AyBCASEBCyACIAE3AwAgAkIANwMIIAIQ1oCAgAAhASACQYABaiSAgICAACABDwsAC8QBAQN/I4CAgIAAQfAAayICJICAgIAAAkAgABCmgICAAEH/AXEiA0ECRg0AIAFC/wGDQgRSDQAgAUIgiKchBCACELSAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC1gICAAAsgAiADIAQQ8oCAgABCACEBQgAhAAJAIAIoAgBBAXFFDQAgAkHQAGpBEGogAkEQahDzgICAACACKQNoIQAgAikDYCEBCyABIAAQqYCAgAAhASACQfAAaiSAgICAACABDwsAC2cBAn8jgICAgABBEGsiAiSAgICAAAJAIAAQpoCAgABB/wFxIgNBAkYNACABQv8Bg0IEUg0AIAIgAyABQiCIpxD+gICAACACKQMAIAIpAwgQqYCAgAAhASACQRBqJICAgIAAIAEPCwAL8wECAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABD3gICAAAJAAkACQCABKAIAQQFGDQAgASkDCCEAEMaAgIAAIAEQtICAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELWAgIAACyAAQpHOAFoNARDsgICAACAAUQ0CQQAgASAAQgIQsYCAgABBpIDAgABBExD8gICAABD9gICAACECIAEgABCygICAADcDACACQcCAwIAAQQEgAUEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDAgwMQuYCAgAAAC0KDgICA4IMDELmAgIAAAAu1AwQBfwF+A38BfiOAgICAAEEgayICJICAgIAAAkACQAJAAkACQCAAQv8Bg0IEUg0AAkACQCABQgJSDQBCACEDDAELIAJBEGogARD3gICAACACKAIQQQFGDQEgAikDGCEBQgEhAwsgAEIgiKchBBDGgICAACACQRBqELSAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC1gICAAAsgAiAEEOuAgIAAIAOnIQUCQAJAIAIoAgAiBkEBRw0AIAVFDQAgAikDCCABUg0BDAYLIAYgBXJBAXFFDQULIAVFDQEgAUKRzgBaDQJBASAEIAFCARCxgICAACACQRBqELyAgIAAIAIoAhBBAUcNAyAEIAIoAhQgAigCGBCvgICAAAwDCwALQQEgBBCwgICAAEIBEI6AgIAAGgwBC0KDgICAwIMDELmAgIAAAAtByIDAgABBCxD8gICAABD9gICAACEHIAIgAyABENOAgIAANwMYIAIgAEKEgICAcIM3AxAgB0HUgMCAAEECIAJBEGpBAhDagICAABCNgICAABogAkEgaiSAgICAAEICDwtCg4CAgOCDAxC5gICAAAAL4wECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQCAAQv8Bg0LNAFINABDGgICAACABELSAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC1gICAAAsgARDugICAAAJAIAEoAgBBAUcNACABKQMIIAAQiIGAgAANAgtBAiABELCAgIAAIABCAhCEgICAABpB5IDAgABBFxD8gICAABD9gICAACECIAEgADcDACACQZCBwIAAQQEgAUEBENqAgIAAEI2AgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDggwMQuYCAgAAACw0AIAAgARCegICAAFALWgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC0gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtYCAgAALEOyAgIAAELKAgIAAIQEgAEEQaiSAgICAACABC3cBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgARC0gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtYCAgAALIAEgAEIgiKcQ64CAgAAgASkDACABKQMIENOAgIAAIQAgAUEQaiSAgICAACAADwsAC24BAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgAUEEahC0gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtYCAgAALIABCIIinEOqAgIAAELKAgIAAIQAgAUEQaiSAgICAACAADwsAC1QCAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELWAgIAACxDtgICAACEBIABBEGokgICAgAAgAQvfAQICfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AEMaAgIAAIAEQtICAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELWAgIAACxDwgICAACACc0EBcUUNARDVgICAACACrSIAQgIQhICAgAAaQZ6BwIAAQQoQ/ICAgAAQ/YCA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gICAECEDC0GAyx5BgNIfEKaBgIAAQYDLHkGA0h8Qp4GAgABBABDNgICAAEICELuAgIAADQEgARCogYCAAEEAIAYQv4CAgAAgAkICEISAgIAAGiACEIyAgIAAIAcgCBCpgYCAACAAEJWBgIAAIgkgBEIgiKciCkkNAkEBIAAQnIGAgABBABCdgYCAACAJIAprrUIghkIEhEICEISAgIAAGhDPgICAACADQgIQhICAgAAaIAZBEGokgICAgABCAg8LAAtCg4CAgJCBARC5gICAAAALQoOAgICQ9wIQuYCAgAAACw4AQQEgACABENaBgIAACw4AQQIgACABENaBgIAACw4AQQAgAEICELOBgIAAC7YBAwF/AX4BfyOAgICAAEEgayIEJICAgIAAQbiEwIAAQQwQ/ICAgAAhBSAEIAIgAxCZgYCAADcDCCAEIAE3AwBBACEGA0ACQCAGQRBHDQBBACEGAkADQCAGQRBGDQEgBEEQaiAGaiAEIAZqKQMANwMAIAZBCGohBgwACwsgACAFIARBEGpBAhCqgICAABCrgICAACAEQSBqJICAgIAADwsgBEEQaiAGakICNwMAIAZBCGohBgwACwsRAEKEgICAEEIEEKOBgIAAGwsIABDHgICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEMmAgIAAIAApAwAgACkDCBCZgYCAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEMyAgIAAIAApAwAgACkDCBCZgYCAACEBIABBEGokgICAgAAgAQt9AgF/AX4jgICAgABBEGsiASSAgICAAAJAIABC/wGDQs0AUg0AIAFBBGoQtICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELWAgIAACxDIgICAACECEMuAgIAAIAAQqIGAgAAgAiAAEK+BgIAAIAFBEGokgICAgABCAg8LAAthAgF/AX4jgICAgABBEGsiAiSAgICAAEGRicCAAEEVEPyAgIAAEP2AgIAAIQMgAiAANwMIIAIgATcDACADQbiJwIAAQQIgAkECENqAgIAAEI2AgIAAGiACQRBqJICAgIAAC9wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJBCGoQtICAgAACQCACKAIIQQFHDQAgAigCDCACKAIQELWAgIAACxDIgICAACEDAkACQCABQv////8PVg0AIAJBCGoQzICAgAAgAikDECEBIAIpAwhBiAgQyoCAgAAgASAAEIiBgIAARQ0DELGBgIAADAELELKBgIAAIAFCIIinSQ0DQQEgAEIAELOBgIAAQQEQzYCAgABCACABQoSAgIBwgyIBIAEQg4CAgAAaQciJwIAAQRYQ/ICAgAAQ/YCAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQeSJwIAAQQMgAkEIakEDENqAgIAAEI2AgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABELmAgIAAAAtCg4CAgPCAARC5gICAAAALEwBBARDNgICAAEIAEI6AgIAAGgszAQJ+EKGAgIAAIQACQBCigICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxDlgICAAAALFQAgABDNgICAACABIAIQhICAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAELSAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC1gICAAAsgABDMgICAACAAKQMIIQEgACkDAEGICBDKgICAACABEImAgIAAGiAAEM6AgIAAAkAgACgCAA0AEMOAgIAAAAsgACkDCCECELGBgIAAIAEQqIGAgAAgAiABEK+BgIAAIABBEGokgICAgABCAgugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABC0gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtYCAgAALEMiAgIAAIQEQy4CAgABBABDNgICAAEICEI6AgIAAGkH8icCAAEETEPyAgIAAEP2AgIAAIQIgACABNwMAIAJBkIrAgABBASAAQQEQ2oCAgAAQjYCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxC1gICAAEICDwsAC94EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABC4gYCAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABELiBgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQtICAgAACQCACKAIoQQFHDQAgAigCLCACKAIwELWAgIAACxDGgICAAAJAAkACQBDEgICAAA0AELKBgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AELmAgIAAAAtCg4CAgMD/ABC5gICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEKaBgIAADAELQQEQxYCAgABCAhCOgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEKeBgIAADAELQQIQxYCAgABCAhCOgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHEisCAAEEPEPyAgIAAEP2AgIAAIQAgAkEoahC5gYCAACEBIAIgAkE0ahC5gYCAADcDSCACIAE3A0AgAEHoisCAAEECIAJBwABqQQIQ2oCAgAAQjYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABENOBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELuBgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQtICAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQELWAgIAACyAAQQhqELSAgIAAIABBFGoiARC8gICAACAAQTBqIABBCGoQu4GAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABELuBgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhCqgICAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ1IGAgAAPCyAAQgA3AwAgAEICNwMIC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahC0gICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQtYCAgAALEMaAgIAAAkAQxICAgABFDQBCg4CAgOD/ABC5gICAAAALQQAQxYCAgABCAUICEISAgIAAGkH4isCAAEESEPyAgIAAEP2AgIAAQQRBACAAQRhqQQAQ2oCAgAAQjYCAgAAaIABBIGokgICAgABCAgsJABDEgICAAK0LogECAX8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQtICAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELWAgIAACyAAQRBqQgEQ1ICAgAACQAJAIAAoAhANACAAKQMYIQEgAEEQakIBENSAgIAAIAAoAhBBAUcNAQsACyAAIAApAxg3AwggACABNwMAIABBAhCqgICAACEBIABBIGokgICAgAAgAQsIABDCgICAAAtRAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0IEUQ0AAAsgASAAQiCIpxC+gICAACABKQMAIAEpAwgQmYGAgAAhACABQRBqJICAgIAAIAALugIEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQgRSDQACQAJAIAFCAlINAEIAIQEMAQsgAiABEMCAgIAAIAIoAgBBAUYNASACKQMIIQNCASEBCxDGgICAACACELSAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC1gICAAAtBASAAQiCIpyIEEL+AgIAAIQUCQAJAIAFQDQAgBSADQgEQhICAgAAaIAIQvICAgAAgAigCAEEBRw0BIAQgAigCBCACKAIIEMGAgIAADAELIAVCARCOgICAABoLQo7yqrzw1qrrABD9gICAACEFIAIgASADEJmBgIAANwMIIAIgAEKEgICAcIM3AwAgBUHkhMCAAEECIAJBAhDagICAABCNgICAABogAkEQaiSAgICAAEICDwsAC4cBAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQm4GAgAACQCABKQMAIgBCAlENACABKQMIIQIQxoCAgAAgARC0gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtYCAgAALEMKAgIAAEIyAgIAAIAAgAhCpgYCAACABQRBqJICAgIAAQgIPCwALmwECAn8BfiOAgICAAEEgayIBJICAgIAAIAEg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fCEGDAsLIAIgBHwgASADfCIEIAFUrXwgCn0gBCANVK19IQIgBCANfSEBIAYgDCALfEJ/fCIMIAtUrXwhBgwKCyAFQYABaiAMIAqAIgxCACAIIAlrIggQ2IGAgAAgBUHwAGogAyAEIAxCABDegYCAACAFQeAAaiAFKQNwIAUpA3ggCBDYgYCAACAFKQOIASAGfCAFKQOAASIGIAt8IgsgBlStfCEGIAcgAiAFKQNofSABIAUpA2AiDFStfSICeSABIAx9IgF5QsAAfCACQgBSG6ciCE0NASAIQT9NDQALIANQRQ0BDAILIAEgA1QiCCACIARUIAIgBFEbRQ0CIAshDAwHCyABIAOAIQILIAEgA4IhASAGIAsgAnwiDCALVK18IQZCACECDAULIAIgBH0gCK19IQIgASADfSEBIAYgC0IBfCIMUK18IQYMBAsgAiAEQgAgASADWiACIARaIAIgBFEbIggbfSABIANCACAIGyIEVK19IQIgASAEfSEBIAitIQwMAwsgASABIAOAIgwgA359IQFCACEGQgAhAgwCCyACIAIgA0L/////D4MiBIAiBiADfn1CIIYgAUIgiCIMhCAEgCICQiCGIAwgAiADfn1CIIYgAUL/////D4OEIgEgBIAiA4QhDCABIAMgBH59IQEgAkIgiCAGhCEGQgAhAgwBCyAFQTBqIAMgBEHAACAIayIIENuBgIAAIAVBIGogASACIAgQ24GAgABCACEGIAVBEGogA0IAIAUpAyAgBSkDMIAiDEIAEN6BgIAAIAUgBEIAIAxCABDegYCAACAFKQMQIQoCQAJAIAUpAwggBSkDGCINIAUpAwB8IgsgDVStfEIAUg0AIAEgClQiCCACIAtUIAIgC1EbRQ0BCyAEIAJ8IAMgAXwiASADVK18IAt9IAEgClStfSECIAxCf3whDCABIAp9IQEMAQsgAiALfSAIrX0hAiABIAp9IQFCACEGCyAAIAE3AxAgACAMNwMAIAAgAjcDGCAAIAY3AwggBUGwAWokgICAgAALoQEBAn8jgICAgABBIGsiBSSAgICAACAFQgAgAX0gASACQgBTIgYbQgAgAiABQgBSrXx9IAIgBhtCACADfSADIARCAFMiBhtCACAEIANCAFKtfH0gBCAGGxDZgYCAACAFKQMIIQMgAEIAIAUpAwAiAX0gASAEIAKFQgBT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dGVzZW5kX2NvbXBvc2VFbmRwb2ludFBlZXJlaWRwZWVyAFwCEAADAAAAXwIQAAQAAABtc2dfdHlwZW9wdGlvbnMAXAIQAAMAAAB0AhAACAAAAHwCEAAHAAAARW5mb3JjZWRPcHRpb25zZW5mb3JjZWRfb3B0aW9uX3NldGVuZm9yY2VkX29wdGlvbl9wYXJhbXO+AhAAFgAAAGFtb3VudF9yZWNlaXZlZF9sZGFtb3VudF9zZW50X2xkZHN0X2VpZGZyb21ndWlkANwCEAASAAAA7gIQAA4AAAD8AhAABwAAAAMDEAAEAAAABwMQAAQAAABvZnRfcmVjZWl2ZWRzcmNfZWlkdG8AAADcAhAAEgAAAAcDEAAEAAAAQAMQAAcAAABHAxAAAgAAAG1zZ19pbnNwZWN0b3Jfc2V0aW5zcGVjdG9yAAB9AxAACQAAAERlY2ltYWxzRGlmZlRva2VuTXNnSW5zcGVjdG9yYW1vdW50X2xkY29tcG9zZV9tc2dleHRyYV9vcHRpb25zbWluX2Ftb3VudF9sZG9mdF9jbWQAAK0DEAAJAAAAtgMQAAsAAAD8AhAABwAAAMEDEAANAAAAzgMQAA0AAADbAxAABwAAAEcDEAACAAAAbWF4X2Ftb3VudF9sZAAAABwEEAANAAAAzgMQAA0AAADcAhAAEgAAAO4CEAAOAAAAZGVzY3JpcHRpb25mZWVfYW1vdW50X2xkTAQQAAsAAABXBBAADQAAAAAAABIAAAAAAAAAAAAAABIAAAABdGhyZXNob2xkb3duZXJzaGlwX3RyYW5zZmVycmVkbmV3X293bmVyb2xkX293bmVypgQQAAkAAACvBBAACQAAAG93bmVyc2hpcF90cmFuc2ZlcnJpbmd0dGwAAACmBBAACQAAAK8EEAAJAAAA3gQQAAMAAABvd25lcnNoaXBfcmVub3VuY2VkAK8EEAAJAAAAT3duZXJQZW5kaW5nT3duZXJleHRlbmRfdG8AACkFEAAJAAAAiAQQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAABTBRAACAAAAFsFEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50AJPXAQ5jb250cmFjdHNwZWN2MAAAAAIAAAAAAAAAAAAAAA1PRlRGZWVTdG9yYWdlAAAAAAAAAwAAAAAAAAAAAAAADURlZmF1bHRGZWVCcHMAAAAAAAABAAAAAAAAAAZGZWVCcHMAAAAAAAEAAAAEAAAAAAAAAAAAAAARRmVlRGVwb3NpdEFkZHJlc3MAAAAAAAAEAAAAAAAAAAAAAAALT0ZURmVlRXJyb3IAAAAAAwAAAAAAAAANSW52YWxpZEZlZUJwcwAAAAAADBwAAAAAAAAAGEludmFsaWRGZWVEZXBvc2l0QWRkcmVzcwAADB0AAAAAAAAACVNhbWVWYWx1ZQAAAAAADB4AAAAFAAAAAAAAAAAAAAAQRGVmYXVsdEZlZUJwc1NldAAAAAEAAAATZGVmYXVsdF9mZWVfYnBzX3NldAAAAAABAAAAAAAAAAdmZWVfYnBzAAAAAAYAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAlGZWVCcHNTZXQAAAAAAAABAAAAC2ZlZV9icHNfc2V0AAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAA7VGhlIGZlZSByYXRlIGluIGJhc2lzIHBvaW50cywgb3IgTm9uZSBpZiB0aGUgZmVlIGlzIHJlbW92ZWQAAAAAB2ZlZV9icHMAAAAD6AAAAAYAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABRGZWVEZXBvc2l0QWRkcmVzc1NldAAAAAEAAAAXZmVlX2RlcG9zaXRfYWRkcmVzc19zZXQAAAAAAQAAAAAAAAATZmVlX2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAST0ZUUGF1c2FibGVTdG9yYWdlAAAAAAABAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAEAAAAAAAAAAAAAAAQT0ZUUGF1c2FibGVFcnJvcgAAAAIAAAAAAAAABlBhdXNlZAAAAAAMJgAAAAAAAAAUUGF1c2VTdGF0dXNVbmNoYW5nZWQAAAwnAAAABQAAAAAAAAAAAAAACVBhdXNlZFNldAAAAAAAAAEAAAAKcGF1c2VkX3NldAAAAAAAAQAAAAAAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAJRGlyZWN0aW9uAAAAAAAAAgAAAAAAAAAAAAAAB0luYm91bmQAAAAAAAAAAAAAAAAIT3V0Ym91bmQAAAABAAAAOUNvbmZpZ3VyYXRpb24gZm9yIHJhdGUgbGltaXRpbmcsIHVzZWQgYXMgaW5wdXQgcGFyYW1ldGVyLgAAAAAAAAAAAAAPUmF0ZUxpbWl0Q29uZmlnAAAAAAIAAAAAAAAABWxpbWl0AAAAAAAACwAAAAAAAAAOd2luZG93X3NlY29uZHMAAAAAAAYAAAAEAAAAAAAAAAAAAAAOUmF0ZUxpbWl0RXJyb3IAAAAAAAUAAAAAAAAAEUV4Y2VlZGVkUmF0ZUxpbWl0AAAAAAAMMAAAAAAAAAANSW52YWxpZEFtb3VudAAAAAAADDEAAAAAAAAAEEludmFsaWRUaW1lc3RhbXAAAAwyAAAAAAAAAA1JbnZhbGlkQ29uZmlnAAAAAAAMMwAAAAAAAAAJU2FtZVZhbHVlAAAAAAAMNAAAAAUAAAAAAAAAAAAAAAxSYXRlTGltaXRTZXQAAAABAAAADnJhdGVfbGltaXRfc2V0AAAAAAADAAAAAAAAAAlkaXJlY3Rpb24AAAAAAAfQAAAACURpcmVjdGlvbgAAAAAAAAAAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAEJUaGUgcmF0ZSBsaW1pdCBjb25maWd1cmF0aW9uLCBvciBOb25lIGlmIHRoZSByYXRlIGxpbWl0IGlzIHJlbW92ZWQAAAAAAAZjb25maWcAAAAAA+gAAAfQAAAAD1JhdGVMaW1pdENvbmZpZwAAAAAAAAAAAgAAAAMAAAAeVGhlIHR5cGUgb2YgT0ZUIG9wZXJhdGlvbiBtb2RlAAAAAAAAAAAAB09mdFR5cGUAAAAAAgAAACZMb2NrIHRva2VucyBvbiBzZW5kLCB1bmxvY2sgb24gcmVjZWl2ZQAAAAAACkxvY2tVbmxvY2sAAAAAAAAAAAAkQnVybiB0b2tlbnMgb24gc2VuZCwgbWludCBvbiByZWNlaXZlAAAACE1pbnRCdXJuAAAAAQAAAAAAAADqU2V0cyBvciByZW1vdmVzIGEgcmF0ZSBsaW1pdCBmb3IgYSBzcGVjaWZpYyBkaXJlY3Rpb24gYW5kIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZGlyZWN0aW9uYCAtIFRoZSBkaXJlY3Rpb24gKEluYm91bmQgb3IgT3V0Ym91bmQpCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgY29uZmlnYCAtIFRoZSByYXRlIGxpbWl0IGNvbmZpZ3VyYXRpb24sIG9yIE5vbmUgdG8gcmVtb3ZlIHRoZSByYXRlIGxpbWl0AAAAAAAOc2V0X3JhdGVfbGltaXQAAAAAAAMAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAANlaWQAAAAABAAAAAAAAAAGY29uZmlnAAAAAAPoAAAH0AAAAA9SYXRlTGltaXRDb25maWcAAAAAAAAAAAAAAABvUmV0dXJucyB0aGUgcmF0ZSBsaW1pdCBjb25maWd1cmF0aW9uIGZvciBhIGRpcmVjdGlvbiBhbmQgZW5kcG9pbnQuClJldHVybnMgTm9uZSBpZiBubyByYXRlIGxpbWl0IGlzIGNvbmZpZ3VyZWQuAAAAABFyYXRlX2xpbWl0X2NvbmZpZwAAAAAAAAIAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAH0AAAAA9SYXRlTGltaXRDb25maWcAAAAAAAAAAEJSZXR1cm5zIHRoZSBjdXJyZW50IGluLWZsaWdodCBhbW91bnQgZm9yIGEgZGlyZWN0aW9uIGFuZCBlbmRwb2ludC4AAAAAABRyYXRlX2xpbWl0X2luX2ZsaWdodAAAAAIAAAAAAAAACWRpcmVjdGlvbgAAAAAAB9AAAAAJRGlyZWN0aW9uAAAAAAAAAAAAAANlaWQAAAAABAAAAAEAAAALAAAAAAAAAG5SZXR1cm5zIHRoZSBhdmFpbGFibGUgY2FwYWNpdHkgZm9yIGEgZGlyZWN0aW9uIGFuZCBlbmRwb2ludC4KUmV0dXJucyBpMTI4OjpNQVggaWYgbm8gcmF0ZSBsaW1pdCBpcyBjb25maWd1cmVkLgAAAAAAE3JhdGVfbGltaXRfY2FwYWNpdHkAAAAAAgAAAAAAAAAJZGlyZWN0aW9uAAAAAAAH0AAAAAlEaXJlY3Rpb24AAAAAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAsAAAAAAAAAKlNldHMgdGhlIGRlZmF1bHQgZmVlIHJhdGUgaW4gYmFzaXMgcG9pbnRzLgAAAAAAE3NldF9kZWZhdWx0X2ZlZV9icHMAAAAAAQAAAAAAAAAPZGVmYXVsdF9mZWVfYnBzAAAAAAYAAAAAAAAAAAAAAMdTZXRzIG9yIHJlbW92ZXMgdGhlIGZlZSByYXRlIGZvciBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZHN0X2VpZGAgLSBUaGUgZGVzdGluYXRpb24gZW5kcG9pbnQgSUQKKiBgZmVlX2Jwc2AgLSBUaGUgZmVlIHJhdGUgKDAtMTAsMDAwKSwgb3IgTm9uZSB0byByZW1vdmUgdGhlIGZlZSBjb25maWd1cmF0aW9uAAAAAAtzZXRfZmVlX2JwcwAAAAACAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAAB2ZlZV9icHMAAAAD6AAAAAYAAAAAAAAAAAAAADhTZXRzIHRoZSBhZGRyZXNzIHdoZXJlIGNvbGxlY3RlZCBmZWVzIHdpbGwgYmUgZGVwb3NpdGVkLgAAABdzZXRfZmVlX2RlcG9zaXRfYWRkcmVzcwAAAAABAAAAAAAAABNmZWVfZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAC1SZXR1cm5zIHRoZSBkZWZhdWx0IGZlZSByYXRlIGluIGJhc2lzIHBvaW50cy4AAAAAAAAPZGVmYXVsdF9mZWVfYnBzAAAAAAAAAAABAAAABgAAAAAAAAA4UmV0dXJucyB0aGUgZmVlIHJhdGUgZm9yIGEgc3BlY2lmaWMgZGVzdGluYXRpb24sIGlmIHNldC4AAAAHZmVlX2JwcwAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAAAYAAAAAAAAAU1JldHVybnMgdGhlIGVmZmVjdGl2ZSBmZWUgcmF0ZSBmb3IgYSBkZXN0aW5hdGlvbiAoZGVzdGluYXRpb24tc3BlY2lmaWMgb3IgZGVmYXVsdCkuAAAAABFlZmZlY3RpdmVfZmVlX2JwcwAAAAAAAAEAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAAGAAAAAAAAACBSZXR1cm5zIHRoZSBmZWUgZGVwb3NpdCBhZGRyZXNzLgAAABNmZWVfZGVwb3NpdF9hZGRyZXNzAAAAAAAAAAABAAAAEwAAAAAAAACzU2V0cyB0aGUgcGF1c2VkIHN0YXRlIG9mIHRoZSBPRlQuCgpXaGVuIHBhdXNlZCwgdGhlIE9GVCB3aWxsIHJlamVjdCBuZXcgc2VuZC9yZWNlaXZlL3F1b3RlX3NlbmQvcXVvdGVfb2Z0IG9wZXJhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGBwYXVzZWRgIC0gYHRydWVgIHRvIHBhdXNlLCBgZmFsc2VgIHRvIHVucGF1c2UAAAAACnNldF9wYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAAAAAAJFJldHVybnMgdGhlIHBhdXNlZCBzdGF0ZSBvZiB0aGUgT0ZULgAAAAlpc19wYXVzZWQAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAlxdW90ZV9vZnQAAAAAAAABAAAAAAAAAApzZW5kX3BhcmFtAAAAAAfQAAAACVNlbmRQYXJhbQAAAAAAAAEAAAPtAAAAAwAAB9AAAAAIT0ZUTGltaXQAAAPqAAAH0AAAAAxPRlRGZWVEZXRhaWwAAAfQAAAACk9GVFJlY2VpcHQAAAAAAAAAAAA1UmV0cmlldmVzIHRoZSB0b2tlbiBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIE9GVC4AAAAAAAAFdG9rZW4AAAAAAAAAAAAAAQAAABMAAAAAAAAAJlJldHVybnMgT0ZUIHZlcnNpb24gYXMgKG1ham9yLCBtaW5vcikuAAAAAAALb2Z0X3ZlcnNpb24AAAAAAAAAAAEAAAPtAAAAAgAAAAYAAAAGAAAAAAAAAEFSZXRyaWV2ZXMgdGhlIHNoYXJlZCBkZWNpbWFscyB1c2VkIGZvciBjcm9zcy1jaGFpbiBub3JtYWxpemF0aW9uLgAAAAAAAA9zaGFyZWRfZGVjaW1hbHMAAAAAAAAAAAEAAAAEAAAAAAAAAElSZXRyaWV2ZXMgdGhlIGRlY2ltYWwgY29udmVyc2lvbiByYXRlIHVzZWQgZm9yIGNyb3NzLWNoYWluIG5vcm1hbGl6YXRpb24uAAAAAAAAF2RlY2ltYWxfY29udmVyc2lvbl9yYXRlAAAAAAAAAAABAAAACwAAAAAAAADqV2hldGhlciBhIHNlcGFyYXRlIHRva2VuIGFwcHJvdmFsIGlzIHJlcXVpcmVkIGJlZm9yZSBzZW5kaW5nLgoKSGVscHMgd2FsbGV0IGltcGxlbWVudGVycyBkZXRlcm1pbmUgaW50ZWdyYXRpb24gcmVxdWlyZW1lbnRzLgoKIyBSZXR1cm5zCi0gYHRydWVgIGlmIGEgc2VwYXJhdGUgdG9rZW4gYXBwcm92YWwgc3RlcCBpcyByZXF1aXJlZAotIGBmYWxzZWAgaWYgbm8gc2VwYXJhdGUgYXBwcm92YWwgaXMgbmVlZGVkAAAAAAARYXBwcm92YWxfcmVxdWlyZWQAAAAAAAAAAAAAAQAAAAEAAAAAAAAALVJldHVybnMgdGhlIG1lc3NhZ2UgaW5zcGVjdG9yIGFkZHJlc3MgaWYgc2V0LgAAAAAAAA1tc2dfaW5zcGVjdG9yAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAFlU2V0cyBvciByZW1vdmVzIHRoZSBtZXNzYWdlIGluc3BlY3RvciBhZGRyZXNzLgoKVGhlIG1lc3NhZ2UgaW5zcGVjdG9yIGlzIGFuIG9wdGlvbmFsIGNvbnRyYWN0IHRoYXQgdmFsaWRhdGVzIG91dGdvaW5nIG1lc3NhZ2VzCmFuZCBvcHRpb25zIGJlZm9yZSB0aGV5IGFyZSBzZW50IGNyb3NzLWNoYWluLiBJZiBzZXQsIHRoZSBpbnNwZWN0b3IncyBgaW5zcGVjdGAKbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGR1cmluZyBgc2VuZGAgYW5kIGBxdW90ZV9zZW5kYCBvcGVyYXRpb25zLgoKIyBBcmd1bWVudHMKKiBgaW5zcGVjdG9yYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBpbnNwZWN0b3IgY29udHJhY3QsIG9yIE5vbmUgdG8gcmVtb3ZlAAAAAAAAEXNldF9tc2dfaW5zcGVjdG9yAAAAAAAAAQAAAAAAAAAJaW5zcGVjdG9yAAAAAAAD6AAAABMAAAAAAAAAAAAAADtRdW90ZXMgYSBzZW5kIG9wZXJhdGlvbiBpbmNsdWRpbmcgTGF5ZXJaZXJvIG1lc3NhZ2luZyBmZWVzLgAAAAAKcXVvdGVfc2VuZAAAAAAAAwAAAAAAAAAEZnJvbQAAABMAAAAAAAAACnNlbmRfcGFyYW0AAAAAB9AAAAAJU2VuZFBhcmFtAAAAAAAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAAAQAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAAAAAAHRTZW5kcyB0b2tlbnMgY3Jvc3MtY2hhaW4gdG8gYW5vdGhlciBlbmRwb2ludC4KCkZyb20gbXVzdCBiZSBhdXRoZW50aWNhdGVkLgoKIyBSZXR1cm5zCihNZXNzYWdpbmdSZWNlaXB0LCBPRlRSZWNlaXB0KQAAAARzZW5kAAAABAAAAAAAAAAEZnJvbQAAABMAAAAAAAAACnNlbmRfcGFyYW0AAAAAB9AAAAAJU2VuZFBhcmFtAAAAAAAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAAAAAAADnJlZnVuZF9hZGRyZXNzAAAAAAATAAAAAQAAA+0AAAACAAAH0AAAABBNZXNzYWdpbmdSZWNlaXB0AAAH0AAAAApPRlRSZWNlaXB0AAAAAAAAAAAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAABgAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAACGVuZHBvaW50AAAAEwAAAAAAAAAIZGVsZWdhdGUAAAPoAAAAEwAAAAAAAAAPc2hhcmVkX2RlY2ltYWxzAAAAAAQAAAAAAAAACG9mdF90eXBlAAAH0AAAAAdPZnRUeXBlAAAAAAAAAAAAAAAAQ1JldHVybnMgdGhlIHR5cGUgb2Ygb3BlcmF0aW9uIGZvciB0aGlzIE9GVCAoTG9ja1VubG9jayBvciBNaW50QnVybikAAAAACG9mdF90eXBlAAAAAAAAAAEAAAfQAAAAB09mdFR5cGUAAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAK5SZXRyaWV2ZXMgdGhlIE9BcHAgdmVyc2lvbiBpbmZvcm1hdGlvbi4KCiMgUmV0dXJucwpBIHR1cGxlIGNvbnRhaW5pbmc6Ci0gYHNlbmRlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBTZW5kZXIKLSBgcmVjZWl2ZXJfdmVyc2lvbmA6IFRoZSB2ZXJzaW9uIG9mIHRoZSBPQXBwUmVjZWl2ZXIAAAAAAAxvYXBwX3ZlcnNpb24AAAAAAAAAAQAAA+0AAAACAAAABgAAAAYAAAAAAAAAbFJldHJpZXZlcyB0aGUgTGF5ZXJaZXJvIGVuZHBvaW50IGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBPQXBwLgoKIyBSZXR1cm5zClRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcwAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAADBUmV0cmlldmVzIHRoZSBwZWVyIChPQXBwKSBhc3NvY2lhdGVkIHdpdGggYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoKIyBSZXR1cm5zClRoZSBwZWVyIGFkZHJlc3MgKE9BcHAgaW5zdGFuY2UpIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludAAAAAAAAARwZWVyAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAD6AAAA+4AAAAgAAAAAAAAAOVTZXRzIG9yIHJlbW92ZXMgdGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgZm9yIGEgY29ycmVzcG9uZGluZyBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgcGVlcmAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgcGVlciB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQsIG9yIE5vbmUgdG8gcmVtb3ZlIHRoZSBwZWVyAAAAAAAACHNldF9wZWVyAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAAAAAI5TZXRzIHRoZSBkZWxlZ2F0ZSBhZGRyZXNzIGZvciB0aGUgT0FwcCBDb3JlLgoKIyBBcmd1bWVudHMKKiBgZGVsZWdhdGVgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGRlbGVnYXRlIHRvIGJlIHNldCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIGRlbGVnYXRlAAAAAAAMc2V0X2RlbGVnYXRlAAAAAQAAAAAAAAAIZGVsZWdhdGUAAAPoAAAAEwAAAAAAAAAAAAAAt0NoZWNrcyBpZiBhIG1lc3NhZ2luZyBwYXRoIGNhbiBiZSBpbml0aWFsaXplZCBmb3IgdGhlIGdpdmVuIG9yaWdpbi4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIG9mIHRoZSBtZXNzYWdlCgojIFJldHVybnMKVHJ1ZSBpZiB0aGUgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQsIGZhbHNlIG90aGVyd2lzZQAAAAAVYWxsb3dfaW5pdGlhbGl6ZV9wYXRoAAAAAAAAAQAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAEAAAAAAAAB+FJldHJpZXZlcyB0aGUgbmV4dCBub25jZSBmb3IgYSBnaXZlbiBzb3VyY2UgZW5kcG9pbnQgYW5kIHNlbmRlciBhZGRyZXNzLgoKVGhlIHBhdGggbm9uY2Ugc3RhcnRzIGZyb20gMS4gSWYgMCBpcyByZXR1cm5lZCBpdCBtZWFucyB0aGF0IHRoZXJlIGlzIE5PIG5vbmNlIG9yZGVyZWQgZW5mb3JjZW1lbnQuClRoaXMgaXMgcmVxdWlyZWQgYnkgdGhlIG9mZi1jaGFpbiBleGVjdXRvciB0byBkZXRlcm1pbmUgaWYgdGhlIE9BcHAgZXhwZWN0cyBtZXNzYWdlIGV4ZWN1dGlvbiB0byBiZSBvcmRlcmVkLgpUaGlzIGlzIGFsc28gZW5mb3JjZWQgYnkgdGhlIE9BcHAuCkJ5IGRlZmF1bHQgdGhpcyBpcyBOT1QgZW5hYmxlZCwgaS5lLiBuZXh0X25vbmNlIGlzIGhhcmRjb2RlZCB0byByZXR1cm4gMC4KCiMgQXJndW1lbnRzCiogYHNyY19laWRgIC0gVGhlIHNvdXJjZSBlbmRwb2ludCBJRAoqIGBzZW5kZXJgIC0gVGhlIHNlbmRlciBPQXBwIGFkZHJlc3MKCiMgUmV0dXJucwpUaGUgbmV4dCBub25jZQAAAApuZXh0X25vbmNlAAAAAAACAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAABAAAABgAAAAAAAAMjRW50cnkgcG9pbnQgZm9yIHJlY2VpdmluZyBtZXNzYWdlcyBvciBwYWNrZXRzIGZyb20gdGhlIExheWVyWmVybyBlbmRwb2ludC4KClRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzIGBjbGVhcl9wYXlsb2FkX2FuZF90cmFuc2ZlcmAgdG8gdmFsaWRhdGUgdGhlIG1lc3NhZ2UKYW5kIGNsZWFyIGl0IGZyb20gdGhlIGVuZHBvaW50LCB0aGVuIGRlbGVnYXRlcyB0byBgX19sel9yZWNlaXZlYCBmb3IgYXBwbGljYXRpb24gbG9naWMuCgojIEFyZ3VtZW50cwoqIGBleGVjdXRvcmAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgZXhlY3V0b3IgZm9yIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3M6Ci0gYHNyY19laWRgOiBUaGUgc291cmNlIGNoYWluIGVuZHBvaW50IElECi0gYHNlbmRlcmA6IFRoZSBzZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluCi0gYG5vbmNlYDogVGhlIG5vbmNlIG9mIHRoZSBtZXNzYWdlCiogYGd1aWRgIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVjZWl2ZWQgTGF5ZXJaZXJvIG1lc3NhZ2UKKiBgbWVzc2FnZWAgLSBUaGUgcGF5bG9hZCBvZiB0aGUgcmVjZWl2ZWQgbWVzc2FnZQoqIGBleHRyYV9kYXRhYCAtIEFkZGl0aW9uYWwgYXJiaXRyYXJ5IGRhdGEgcHJvdmlkZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgZXhlY3V0b3IKKiBgdmFsdWVgIC0gVGhlIG5hdGl2ZSB0b2tlbiB2YWx1ZSBzZW50IHdpdGggdGhlIG1lc3NhZ2UAAAAACmx6X3JlY2VpdmUAAAAAAAYAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAARndWlkAAAD7gAAACAAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAKZXh0cmFfZGF0YQAAAAAADgAAAAAAAAAFdmFsdWUAAAAAAAALAAAAAAAAAAAAAAHsSW5kaWNhdGVzIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBhbiBhcHByb3ZlZCBjb21wb3NlTXNnIHNlbmRlciB0byB0aGUgRW5kcG9pbnQuCgpBcHBsaWNhdGlvbnMgY2FuIG9wdGlvbmFsbHkgY2hvb3NlIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBjb21wb3NlTXNnIHNlbmRlcnMgdGhhdCBhcmUgTk9UIHRoZSBicmlkZ2luZyBsYXllci4KVGhlIGRlZmF1bHQgc2VuZGVyIElTIHRoZSBPQXBwUmVjZWl2ZXIgaW1wbGVtZW50ZXIuCgojIEFyZ3VtZW50cwoqIGBvcmlnaW5gIC0gVGhlIG9yaWdpbiBpbmZvcm1hdGlvbiBjb250YWluaW5nIHRoZSBzb3VyY2UgZW5kcG9pbnQgYW5kIHNlbmRlciBhZGRyZXNzCiogYG1lc3NhZ2VgIC0gVGhlIGx6UmVjZWl2ZSBwYXlsb2FkCiogYHNlbmRlcmAgLSBUaGUgc2VuZGVyIGFkZHJlc3MgdG8gY2hlY2sKCiMgUmV0dXJucwpUcnVlIGlmIHRoZSBzZW5kZXIgaXMgYSB2YWxpZCBjb21wb3NlTXNnIHNlbmRlciwgZmFsc2Ugb3RoZXJ3aXNlAAAAFWlzX2NvbXBvc2VfbXNnX3NlbmRlcgAAAAAAAAMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAQAAAAAAAADZUmV0cmlldmVzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoKIyBSZXR1cm5zClRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciB0aGUgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZQAAAAAAABBlbmZvcmNlZF9vcHRpb25zAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAEAAAAOAAAAAAAAAptTZXRzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBzcGVjaWZpYyBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlIGNvbWJpbmF0aW9ucy4KCk9ubHkgdGhlIGBhdXRob3JpemVyYCBvZiB0aGUgT0FwcCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLgpQcm92aWRlcyBhIHdheSBmb3IgdGhlIE9BcHAgdG8gZW5mb3JjZSB0aGluZ3MgbGlrZSBwYXlpbmcgZm9yIFByZUNyaW1lLCBBTkQvT1IgbWluaW11bSBkc3QgbHpSZWNlaXZlIGdhcyBhbW91bnRzIGV0Yy4KVGhlc2UgZW5mb3JjZWQgb3B0aW9ucyBjYW4gdmFyeSBhcyB0aGUgcG90ZW50aWFsIG9wdGlvbnMvZXhlY3V0aW9uIG9uIHRoZSByZW1vdGUgbWF5IGRpZmZlciBhcyBwZXIgdGhlIG1zZ190eXBlLgplLmcuIEFtb3VudCBvZiBselJlY2VpdmUoKSBnYXMgbmVjZXNzYXJ5IHRvIGRlbGl2ZXIgYSBsekNvbXBvc2UoKSBtZXNzYWdlIGFkZHMgb3ZlcmhlYWQgeW91IGRvbid0IHdhbnQgdG8gcGF5CmlmIHlvdSBhcmUgb25seSBtYWtpbmcgYSBzdGFuZGFyZCBMYXllclplcm8gbWVzc2FnZSBpZS4gbHpSZWNlaXZlKCkgV0lUSE9VVCBzZW5kQ29tcG9zZSgpLgoKIyBBcmd1bWVudHMKKiBgb3B0aW9uc2AgLSBBIHZlY3RvciBvZiBFbmZvcmNlZE9wdGlvblBhcmFtIHN0cnVjdHVyZXMgc3BlY2lmeWluZyBlbmZvcmNlZCBvcHRpb25zAAAAABRzZXRfZW5mb3JjZWRfb3B0aW9ucwAAAAEAAAAAAAAAB29wdGlvbnMAAAAD6gAAB9AAAAATRW5mb3JjZWRPcHRpb25QYXJhbQAAAAAAAAAAAAAAAnpDb21iaW5lcyBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgpJZiB0aGVyZSBpcyBhbiBlbmZvcmNlZCBselJlY2VpdmUgb3B0aW9uOgotIHtnYXNfbGltaXQ6IDIwMGssIHZhbHVlOiAxIFhMTX0gQU5EIGEgY2FsbGVyIHN1cHBsaWVzIGEgbHpSZWNlaXZlIG9wdGlvbjoge2dhc19saW1pdDogMTAwaywgdmFsdWU6IDAuNSBYTE19Ci0gVGhlIHJlc3VsdGluZyBvcHRpb25zIHdpbGwgYmUge2dhc19saW1pdDogMzAwaywgdmFsdWU6IDEuNSBYTE19IHdoZW4gdGhlIG1lc3NhZ2UgaXMgZXhlY3V0ZWQgb24gdGhlIHJlbW90ZSBsel9yZWNlaXZlKCkgZnVuY3Rpb24uClRoZSBwcmVzZW5jZSBvZiBkdXBsaWNhdGVkIG9wdGlvbnMgaXMgaGFuZGxlZCBvZmYtY2hhaW4gaW4gdGhlIHZlcmlmaWVyL2V4ZWN1dG9yLgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBtc2dfdHlwZWAgLSBUaGUgT0FwcCBtZXNzYWdlIHR5cGUKKiBgZXh0cmFfb3B0aW9uc2AgLSBBZGRpdGlvbmFsIG9wdGlvbnMgcGFzc2VkIGJ5IHRoZSBjYWxsZXIKCiMgUmV0dXJucwpUaGUgY29tYmluYXRpb24gb2YgY2FsbGVyIHNwZWNpZmllZCBvcHRpb25zIEFORCBlbmZvcmNlZCBvcHRpb25zAAAAAAAPY29tYmluZV9vcHRpb25zAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAADWV4dHJhX29wdGlvbnMAAAAAAAAOAAAAAQAAAA4A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AAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAAAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAAAAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAAAAAAAMVW5hdXRob3JpemVkAAAAFgAAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5l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IChPcHRpb25hbCkAAAALY29tcG9zZV9tc2cAAAAADgAAABtUaGUgZGVzdGluYXRpb24gZW5kcG9pbnQgSUQAAAAAB2RzdF9laWQAAAAABAAAADdBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBMYXllclplcm8gbWVzc2FnZSAoT3B0aW9uYWwpAAAAAA1leHRyYV9vcHRpb25zAAAAAAAADgAAAEVUaGUgbWluaW11bSBhbW91bnQgdG8gcmVjZWl2ZSBpbiBsb2NhbCBkZWNpbWFscyAoc2xpcHBhZ2UgcHJvdGVjdGlvbikAAAAAAAANbWluX2Ftb3VudF9sZAAAAAAAAAsAAAAqT0ZUIGNvbW1hbmQgZm9yIGN1c3RvbSBiZWhhdmlvciAoT3B0aW9uYWwpAAAAAAAHb2Z0X2NtZAAAAAAOAAAAOVRoZSByZWNpcGllbnQgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKQAAAAAAAAJ0bwAAAAAD7gAAACAAAAABAAAAIlRyYW5zZmVyIGxpbWl0cyBmb3IgT0ZUIG9wZXJhdGlvbnMAAAAAAAAAAAAIT0ZUTGltaXQAAAACAAAALFRoZSBtYXhpbXVtIGFtb3VudCB0byBzZW5kIGluIGxvY2FsIGRlY2ltYWxzAAAADW1heF9hbW91bnRfbGQAAAAAAAALAAAALFRoZSBtaW5pbXVtIGFtb3VudCB0byBzZW5kIGluIGxvY2FsIGRlY2ltYWxzAAAADW1pbl9hbW91bnRfbGQAAAAAAAALAAAAAQAAAD9SZWNlaXB0IGNvbnRhaW5pbmcgYW1vdW50cyBzZW50IGFuZCByZWNlaXZlZCBpbiBhbiBPRlQgdHJhbnNmZXIAAAAAAAAAAApPRlRSZWNlaXB0AAAAAAACAAAAM1RoZSBhbW91bnQgcmVjZWl2ZWQgaW4gbG9jYWwgZGVjaW1hbHMgb24gdGhlIHJlbW90ZQAAAAASYW1vdW50X3JlY2VpdmVkX2xkAAAAAAALAAAAIVRoZSBhbW91bnQgc2VudCBpbiBsb2NhbCBkZWNpbWFscwAAAAAAAA5hbW91bnRfc2VudF9sZAAAAAAACwAAAAEAAAAuRGV0YWlscyBhYm91dCBmZWVzIGNoYXJnZWQgaW4gYW4gT0ZUIG9wZXJhdGlvbgAAAAAAAAAAAAxPRlRGZWVEZXRhaWwAAAACAAAAGlRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZmVlAAAAAAALZGVzY3JpcHRpb24AAAAADgAAAH9UaGUgYW1vdW50IG9mIHRoZSBmZWUgaW4gbG9jYWwgZGVjaW1hbHMuIFBvc2l0aXZlIHZhbHVlcyByZXByZXNlbnQgZmVlcyBjaGFyZ2VkLAp3aGlsZSBuZWdhdGl2ZSB2YWx1ZXMgcmVwcmVzZW50IHJld2FyZHMgZ2l2ZW4uAAAAAA1mZWVfYW1vdW50X2xkAAAAAAAACwAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjAuMSM5NDE0NDgwNzllY2NmOTU2MjdkMmZmZWExM2JhMjY4ZTMwNWE5MDc3AABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
12
12
  /**
13
13
  * Pre-computed WASM hash (SHA-256)
14
14
  * Use this when the WASM is already uploaded on-chain
15
15
  */
16
- export declare const WASM_HASH = "eaee4dc138ccd2dd79d0eae000e0c22cd7dee1c3d67ac66313aafda6dab59894";
16
+ export declare const WASM_HASH = "6ded194b3d2189d1ab1b2bb0c877f3f758363aff666fbff8a67c25b545bad453";
17
17
  /**
18
18
  * Get the WASM bytecode as a Buffer
19
19
  * Use this to upload the WASM to the network
@@ -39,9 +39,6 @@ export declare const OFTFeeError: {
39
39
  3102: {
40
40
  message: string;
41
41
  };
42
- 3103: {
43
- message: string;
44
- };
45
42
  };
46
43
  export type OFTPausableStorage = {
47
44
  tag: "Paused";
@@ -62,16 +59,13 @@ export type Direction = {
62
59
  tag: "Outbound";
63
60
  values: void;
64
61
  };
65
- export interface RateLimit {
66
- in_flight_on_last_update: i128;
67
- last_update: u64;
62
+ /**
63
+ * Configuration for rate limiting, used as input parameter.
64
+ */
65
+ export interface RateLimitConfig {
68
66
  limit: i128;
69
67
  window_seconds: u64;
70
68
  }
71
- export type RateLimitStorage = {
72
- tag: "RateLimit";
73
- values: readonly [Direction, u32];
74
- };
75
69
  export declare const RateLimitError: {
76
70
  3120: {
77
71
  message: string;
@@ -433,13 +427,19 @@ export declare const OFTError: {
433
427
  3003: {
434
428
  message: string;
435
429
  };
430
+ 3004: {
431
+ message: string;
432
+ };
436
433
  };
437
434
  export type OFTStorage = {
438
- tag: "DecimalConversionRate";
435
+ tag: "DecimalsDiff";
439
436
  values: void;
440
437
  } | {
441
438
  tag: "Token";
442
439
  values: void;
440
+ } | {
441
+ tag: "MsgInspector";
442
+ values: void;
443
443
  };
444
444
  /**
445
445
  * Parameters for sending OFT tokens cross-chain
@@ -668,32 +668,17 @@ export type UpgradeableStorage = {
668
668
  export interface Client {
669
669
  /**
670
670
  * Construct and simulate a set_rate_limit 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.
671
+ * Sets or removes a rate limit for a specific direction and endpoint.
672
+ *
673
+ * # Arguments
674
+ * * `direction` - The direction (Inbound or Outbound)
675
+ * * `eid` - The endpoint ID
676
+ * * `config` - The rate limit configuration, or None to remove the rate limit
671
677
  */
672
- set_rate_limit: ({ direction, eid, limit, window_seconds }: {
673
- direction: Direction;
674
- eid: u32;
675
- limit: i128;
676
- window_seconds: u64;
677
- }, txnOptions?: {
678
- /**
679
- * The fee to pay for the transaction. Default: BASE_FEE
680
- */
681
- fee?: number;
682
- /**
683
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
684
- */
685
- timeoutInSeconds?: number;
686
- /**
687
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
688
- */
689
- simulate?: boolean;
690
- }) => Promise<AssembledTransaction<null>>;
691
- /**
692
- * Construct and simulate a unset_rate_limit 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.
693
- */
694
- unset_rate_limit: ({ direction, eid }: {
678
+ set_rate_limit: ({ direction, eid, config }: {
695
679
  direction: Direction;
696
680
  eid: u32;
681
+ config: Option<RateLimitConfig>;
697
682
  }, txnOptions?: {
698
683
  /**
699
684
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -710,6 +695,8 @@ export interface Client {
710
695
  }) => Promise<AssembledTransaction<null>>;
711
696
  /**
712
697
  * Construct and simulate a rate_limit_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
698
+ * Returns the rate limit configuration for a direction and endpoint.
699
+ * Returns None if no rate limit is configured.
713
700
  */
714
701
  rate_limit_config: ({ direction, eid }: {
715
702
  direction: Direction;
@@ -727,9 +714,10 @@ export interface Client {
727
714
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
728
715
  */
729
716
  simulate?: boolean;
730
- }) => Promise<AssembledTransaction<readonly [i128, u64]>>;
717
+ }) => Promise<AssembledTransaction<Option<RateLimitConfig>>>;
731
718
  /**
732
719
  * Construct and simulate a rate_limit_in_flight transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
720
+ * Returns the current in-flight amount for a direction and endpoint.
733
721
  */
734
722
  rate_limit_in_flight: ({ direction, eid }: {
735
723
  direction: Direction;
@@ -750,6 +738,8 @@ export interface Client {
750
738
  }) => Promise<AssembledTransaction<i128>>;
751
739
  /**
752
740
  * Construct and simulate a rate_limit_capacity transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
741
+ * Returns the available capacity for a direction and endpoint.
742
+ * Returns i128::MAX if no rate limit is configured.
753
743
  */
754
744
  rate_limit_capacity: ({ direction, eid }: {
755
745
  direction: Direction;
@@ -770,6 +760,7 @@ export interface Client {
770
760
  }) => Promise<AssembledTransaction<i128>>;
771
761
  /**
772
762
  * Construct and simulate a set_default_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
763
+ * Sets the default fee rate in basis points.
773
764
  */
774
765
  set_default_fee_bps: ({ default_fee_bps }: {
775
766
  default_fee_bps: u64;
@@ -789,29 +780,15 @@ export interface Client {
789
780
  }) => Promise<AssembledTransaction<null>>;
790
781
  /**
791
782
  * Construct and simulate a set_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
783
+ * Sets or removes the fee rate for a specific destination endpoint.
784
+ *
785
+ * # Arguments
786
+ * * `dst_eid` - The destination endpoint ID
787
+ * * `fee_bps` - The fee rate (0-10,000), or None to remove the fee configuration
792
788
  */
793
789
  set_fee_bps: ({ dst_eid, fee_bps }: {
794
790
  dst_eid: u32;
795
- fee_bps: u64;
796
- }, txnOptions?: {
797
- /**
798
- * The fee to pay for the transaction. Default: BASE_FEE
799
- */
800
- fee?: number;
801
- /**
802
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
803
- */
804
- timeoutInSeconds?: number;
805
- /**
806
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
807
- */
808
- simulate?: boolean;
809
- }) => Promise<AssembledTransaction<null>>;
810
- /**
811
- * Construct and simulate a unset_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
812
- */
813
- unset_fee_bps: ({ dst_eid }: {
814
- dst_eid: u32;
791
+ fee_bps: Option<u64>;
815
792
  }, txnOptions?: {
816
793
  /**
817
794
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -828,6 +805,7 @@ export interface Client {
828
805
  }) => Promise<AssembledTransaction<null>>;
829
806
  /**
830
807
  * Construct and simulate a set_fee_deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
808
+ * Sets the address where collected fees will be deposited.
831
809
  */
832
810
  set_fee_deposit_address: ({ fee_deposit_address }: {
833
811
  fee_deposit_address: string;
@@ -846,11 +824,10 @@ export interface Client {
846
824
  simulate?: boolean;
847
825
  }) => Promise<AssembledTransaction<null>>;
848
826
  /**
849
- * Construct and simulate a has_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
827
+ * Construct and simulate a default_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
828
+ * Returns the default fee rate in basis points.
850
829
  */
851
- has_fee_bps: ({ dst_eid }: {
852
- dst_eid: u32;
853
- }, txnOptions?: {
830
+ default_fee_bps: (txnOptions?: {
854
831
  /**
855
832
  * The fee to pay for the transaction. Default: BASE_FEE
856
833
  */
@@ -863,11 +840,12 @@ export interface Client {
863
840
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
864
841
  */
865
842
  simulate?: boolean;
866
- }) => Promise<AssembledTransaction<boolean>>;
843
+ }) => Promise<AssembledTransaction<u64>>;
867
844
  /**
868
- * Construct and simulate a effective_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
845
+ * Construct and simulate a fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
846
+ * Returns the fee rate for a specific destination, if set.
869
847
  */
870
- effective_fee_bps: ({ dst_eid }: {
848
+ fee_bps: ({ dst_eid }: {
871
849
  dst_eid: u32;
872
850
  }, txnOptions?: {
873
851
  /**
@@ -882,28 +860,12 @@ export interface Client {
882
860
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
883
861
  */
884
862
  simulate?: boolean;
885
- }) => Promise<AssembledTransaction<u64>>;
886
- /**
887
- * Construct and simulate a default_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
888
- */
889
- default_fee_bps: (txnOptions?: {
890
- /**
891
- * The fee to pay for the transaction. Default: BASE_FEE
892
- */
893
- fee?: number;
894
- /**
895
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
896
- */
897
- timeoutInSeconds?: number;
898
- /**
899
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
900
- */
901
- simulate?: boolean;
902
- }) => Promise<AssembledTransaction<u64>>;
863
+ }) => Promise<AssembledTransaction<Option<u64>>>;
903
864
  /**
904
- * Construct and simulate a fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
865
+ * Construct and simulate a effective_fee_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
866
+ * Returns the effective fee rate for a destination (destination-specific or default).
905
867
  */
906
- fee_bps: ({ dst_eid }: {
868
+ effective_fee_bps: ({ dst_eid }: {
907
869
  dst_eid: u32;
908
870
  }, txnOptions?: {
909
871
  /**
@@ -918,9 +880,10 @@ export interface Client {
918
880
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
919
881
  */
920
882
  simulate?: boolean;
921
- }) => Promise<AssembledTransaction<Option<u64>>>;
883
+ }) => Promise<AssembledTransaction<u64>>;
922
884
  /**
923
885
  * Construct and simulate a fee_deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
886
+ * Returns the fee deposit address.
924
887
  */
925
888
  fee_deposit_address: (txnOptions?: {
926
889
  /**
@@ -938,6 +901,12 @@ export interface Client {
938
901
  }) => Promise<AssembledTransaction<string>>;
939
902
  /**
940
903
  * Construct and simulate a set_paused transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
904
+ * Sets the paused state of the OFT.
905
+ *
906
+ * When paused, the OFT will reject new send/receive/quote_send/quote_oft operations.
907
+ *
908
+ * # Arguments
909
+ * * `paused` - `true` to pause, `false` to unpause
941
910
  */
942
911
  set_paused: ({ paused }: {
943
912
  paused: boolean;
@@ -957,6 +926,7 @@ export interface Client {
957
926
  }) => Promise<AssembledTransaction<null>>;
958
927
  /**
959
928
  * Construct and simulate a is_paused transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
929
+ * Returns the paused state of the OFT.
960
930
  */
961
931
  is_paused: (txnOptions?: {
962
932
  /**
@@ -1087,6 +1057,51 @@ export interface Client {
1087
1057
  */
1088
1058
  simulate?: boolean;
1089
1059
  }) => Promise<AssembledTransaction<boolean>>;
1060
+ /**
1061
+ * Construct and simulate a msg_inspector transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1062
+ * Returns the message inspector address if set.
1063
+ */
1064
+ msg_inspector: (txnOptions?: {
1065
+ /**
1066
+ * The fee to pay for the transaction. Default: BASE_FEE
1067
+ */
1068
+ fee?: number;
1069
+ /**
1070
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1071
+ */
1072
+ timeoutInSeconds?: number;
1073
+ /**
1074
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1075
+ */
1076
+ simulate?: boolean;
1077
+ }) => Promise<AssembledTransaction<Option<string>>>;
1078
+ /**
1079
+ * Construct and simulate a set_msg_inspector transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1080
+ * Sets or removes the message inspector address.
1081
+ *
1082
+ * The message inspector is an optional contract that validates outgoing messages
1083
+ * and options before they are sent cross-chain. If set, the inspector's `inspect`
1084
+ * method will be called during `send` and `quote_send` operations.
1085
+ *
1086
+ * # Arguments
1087
+ * * `inspector` - The address of the inspector contract, or None to remove
1088
+ */
1089
+ set_msg_inspector: ({ inspector }: {
1090
+ inspector: Option<string>;
1091
+ }, txnOptions?: {
1092
+ /**
1093
+ * The fee to pay for the transaction. Default: BASE_FEE
1094
+ */
1095
+ fee?: number;
1096
+ /**
1097
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1098
+ */
1099
+ timeoutInSeconds?: number;
1100
+ /**
1101
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1102
+ */
1103
+ simulate?: boolean;
1104
+ }) => Promise<AssembledTransaction<null>>;
1090
1105
  /**
1091
1106
  * Construct and simulate a quote_send transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1092
1107
  * Quotes a send operation including LayerZero messaging fees.
@@ -1173,20 +1188,10 @@ export interface Client {
1173
1188
  simulate?: boolean;
1174
1189
  }) => Promise<AssembledTransaction<string>>;
1175
1190
  /**
1176
- * Construct and simulate a enforced_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1177
- * Retrieves the enforced options for a given endpoint and message type.
1178
- *
1179
- * # Arguments
1180
- * * `eid` - The endpoint ID
1181
- * * `msg_type` - The OApp message type
1182
- *
1183
- * # Returns
1184
- * The enforced options for the given endpoint and message type
1191
+ * Construct and simulate a owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1192
+ * Returns the current owner address, or None if no owner is set.
1185
1193
  */
1186
- enforced_options: ({ eid, msg_type }: {
1187
- eid: u32;
1188
- msg_type: u32;
1189
- }, txnOptions?: {
1194
+ owner: (txnOptions?: {
1190
1195
  /**
1191
1196
  * The fee to pay for the transaction. Default: BASE_FEE
1192
1197
  */
@@ -1199,22 +1204,38 @@ export interface Client {
1199
1204
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1200
1205
  */
1201
1206
  simulate?: boolean;
1202
- }) => Promise<AssembledTransaction<Buffer>>;
1207
+ }) => Promise<AssembledTransaction<Option<string>>>;
1203
1208
  /**
1204
- * Construct and simulate a set_enforced_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1205
- * Sets the enforced options for specific endpoint and message type combinations.
1209
+ * Construct and simulate a pending_owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1210
+ * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
1211
+ */
1212
+ pending_owner: (txnOptions?: {
1213
+ /**
1214
+ * The fee to pay for the transaction. Default: BASE_FEE
1215
+ */
1216
+ fee?: number;
1217
+ /**
1218
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1219
+ */
1220
+ timeoutInSeconds?: number;
1221
+ /**
1222
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1223
+ */
1224
+ simulate?: boolean;
1225
+ }) => Promise<AssembledTransaction<Option<string>>>;
1226
+ /**
1227
+ * Construct and simulate a transfer_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1228
+ * Transfers ownership immediately to a new address.
1206
1229
  *
1207
- * Only the `authorizer` of the OApp can call this function.
1208
- * Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.
1209
- * These enforced options can vary as the potential options/execution on the remote may differ as per the msg_type.
1210
- * e.g. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you don't want to pay
1211
- * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().
1230
+ * Use with caution - if you transfer to a wrong address, ownership is lost forever.
1231
+ * Consider using `propose_ownership_transfer` instead.
1212
1232
  *
1213
- * # Arguments
1214
- * * `options` - A vector of EnforcedOptionParam structures specifying enforced options
1233
+ * # Panics
1234
+ * - `OwnerNotSet` if no owner is currently set
1235
+ * - `TransferInProgress` if a 2-step transfer is in progress
1215
1236
  */
1216
- set_enforced_options: ({ options }: {
1217
- options: Array<EnforcedOptionParam>;
1237
+ transfer_ownership: ({ new_owner }: {
1238
+ new_owner: string;
1218
1239
  }, txnOptions?: {
1219
1240
  /**
1220
1241
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1230,26 +1251,26 @@ export interface Client {
1230
1251
  simulate?: boolean;
1231
1252
  }) => Promise<AssembledTransaction<null>>;
1232
1253
  /**
1233
- * Construct and simulate a combine_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1234
- * Combines options for a given endpoint and message type.
1254
+ * Construct and simulate a propose_ownership_transfer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1255
+ * Proposes an ownership transfer to a new address.
1235
1256
  *
1236
- * If there is an enforced lzReceive option:
1237
- * - {gas_limit: 200k, value: 1 XLM} AND a caller supplies a lzReceive option: {gas_limit: 100k, value: 0.5 XLM}
1238
- * - The resulting options will be {gas_limit: 300k, value: 1.5 XLM} when the message is executed on the remote lz_receive() function.
1239
- * The presence of duplicated options is handled off-chain in the verifier/executor.
1257
+ * The new owner must call `accept_ownership()` within `ttl` ledgers
1258
+ * to complete the transfer. The pending transfer will automatically expire after.
1240
1259
  *
1241
1260
  * # Arguments
1242
- * * `eid` - The endpoint ID
1243
- * * `msg_type` - The OApp message type
1244
- * * `extra_options` - Additional options passed by the caller
1261
+ * - `new_owner` - The proposed new owner
1262
+ * - `ttl` - Number of ledgers the new owner has to accept.
1263
+ * Use `0` to cancel a pending transfer (new_owner must match pending).
1245
1264
  *
1246
- * # Returns
1247
- * The combination of caller specified options AND enforced options
1265
+ * # Panics
1266
+ * - `OwnerNotSet` if no owner is currently set
1267
+ * - `NoPendingTransfer` when cancelling and no pending transfer exists
1268
+ * - `InvalidTtl` if ttl exceeds max TTL
1269
+ * - `InvalidPendingOwner` when cancelling with wrong new_owner address
1248
1270
  */
1249
- combine_options: ({ eid, msg_type, extra_options }: {
1250
- eid: u32;
1251
- msg_type: u32;
1252
- extra_options: Buffer;
1271
+ propose_ownership_transfer: ({ new_owner, ttl }: {
1272
+ new_owner: string;
1273
+ ttl: u32;
1253
1274
  }, txnOptions?: {
1254
1275
  /**
1255
1276
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1263,20 +1284,17 @@ export interface Client {
1263
1284
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1264
1285
  */
1265
1286
  simulate?: boolean;
1266
- }) => Promise<AssembledTransaction<Buffer>>;
1287
+ }) => Promise<AssembledTransaction<null>>;
1267
1288
  /**
1268
- * Construct and simulate a allow_initialize_path transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1269
- * Checks if a messaging path can be initialized for the given origin.
1289
+ * Construct and simulate a accept_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1290
+ * Accepts a pending 2-step ownership transfer.
1270
1291
  *
1271
- * # Arguments
1272
- * * `origin` - The origin of the message
1292
+ * Must be called by the pending owner before the TTL expires.
1273
1293
  *
1274
- * # Returns
1275
- * True if the path can be initialized, false otherwise
1294
+ * # Panics
1295
+ * - `NoPendingTransfer` if there is no pending transfer (or it expired)
1276
1296
  */
1277
- allow_initialize_path: ({ origin }: {
1278
- origin: Origin;
1279
- }, txnOptions?: {
1297
+ accept_ownership: (txnOptions?: {
1280
1298
  /**
1281
1299
  * The fee to pay for the transaction. Default: BASE_FEE
1282
1300
  */
@@ -1289,27 +1307,16 @@ export interface Client {
1289
1307
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1290
1308
  */
1291
1309
  simulate?: boolean;
1292
- }) => Promise<AssembledTransaction<boolean>>;
1310
+ }) => Promise<AssembledTransaction<null>>;
1293
1311
  /**
1294
- * Construct and simulate a next_nonce transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1295
- * Retrieves the next nonce for a given source endpoint and sender address.
1296
- *
1297
- * The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.
1298
- * This is required by the off-chain executor to determine if the OApp expects message execution to be ordered.
1299
- * This is also enforced by the OApp.
1300
- * By default this is NOT enabled, i.e. next_nonce is hardcoded to return 0.
1301
- *
1302
- * # Arguments
1303
- * * `src_eid` - The source endpoint ID
1304
- * * `sender` - The sender OApp address
1312
+ * Construct and simulate a renounce_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1313
+ * Permanently renounces ownership.
1305
1314
  *
1306
- * # Returns
1307
- * The next nonce
1315
+ * # Panics
1316
+ * - `OwnerNotSet` if no owner is currently set
1317
+ * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
1308
1318
  */
1309
- next_nonce: ({ src_eid, sender }: {
1310
- src_eid: u32;
1311
- sender: Buffer;
1312
- }, txnOptions?: {
1319
+ renounce_ownership: (txnOptions?: {
1313
1320
  /**
1314
1321
  * The fee to pay for the transaction. Default: BASE_FEE
1315
1322
  */
@@ -1322,32 +1329,19 @@ export interface Client {
1322
1329
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1323
1330
  */
1324
1331
  simulate?: boolean;
1325
- }) => Promise<AssembledTransaction<u64>>;
1332
+ }) => Promise<AssembledTransaction<null>>;
1326
1333
  /**
1327
- * Construct and simulate a lz_receive transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1328
- * Entry point for receiving messages or packets from the LayerZero endpoint.
1329
- *
1330
- * The default implementation calls `clear_payload_and_transfer` to validate the message
1331
- * and clear it from the endpoint, then delegates to `__lz_receive` for application logic.
1334
+ * Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1335
+ * Extends the instance TTL.
1332
1336
  *
1333
1337
  * # Arguments
1334
- * * `executor` - The address of the executor for the received message
1335
- * * `origin` - The origin information containing the source endpoint and sender address:
1336
- * - `src_eid`: The source chain endpoint ID
1337
- * - `sender`: The sender address on the source chain
1338
- * - `nonce`: The nonce of the message
1339
- * * `guid` - The unique identifier for the received LayerZero message
1340
- * * `message` - The payload of the received message
1341
- * * `extra_data` - Additional arbitrary data provided by the corresponding executor
1342
- * * `value` - The native token value sent with the message
1338
+ *
1339
+ * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
1340
+ * * `extend_to` - The TTL to extend to.
1343
1341
  */
1344
- lz_receive: ({ executor, origin, guid, message, extra_data, value }: {
1345
- executor: string;
1346
- origin: Origin;
1347
- guid: Buffer;
1348
- message: Buffer;
1349
- extra_data: Buffer;
1350
- value: i128;
1342
+ extend_instance_ttl: ({ threshold, extend_to }: {
1343
+ threshold: u32;
1344
+ extend_to: u32;
1351
1345
  }, txnOptions?: {
1352
1346
  /**
1353
1347
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1363,24 +1357,23 @@ export interface Client {
1363
1357
  simulate?: boolean;
1364
1358
  }) => Promise<AssembledTransaction<null>>;
1365
1359
  /**
1366
- * Construct and simulate a is_compose_msg_sender transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1367
- * Indicates whether an address is an approved composeMsg sender to the Endpoint.
1360
+ * Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1361
+ * Sets TTL configs for instance and persistent storage.
1368
1362
  *
1369
- * Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.
1370
- * The default sender IS the OAppReceiver implementer.
1363
+ * - `None` values remove the corresponding config (disables auto-extension for that type)
1364
+ * - Validates that `threshold <= extend_to <= MAX_TTL`
1371
1365
  *
1372
1366
  * # Arguments
1373
- * * `origin` - The origin information containing the source endpoint and sender address
1374
- * * `message` - The lzReceive payload
1375
- * * `sender` - The sender address to check
1367
+ * - `instance` - TTL config for instance storage
1368
+ * - `persistent` - TTL config for persistent storage
1376
1369
  *
1377
- * # Returns
1378
- * True if the sender is a valid composeMsg sender, false otherwise
1370
+ * # Panics
1371
+ * - `TtlConfigFrozen` if configs are frozen
1372
+ * - `InvalidTtlConfig` if validation fails
1379
1373
  */
1380
- is_compose_msg_sender: ({ origin, message, sender }: {
1381
- origin: Origin;
1382
- message: Buffer;
1383
- sender: string;
1374
+ set_ttl_configs: ({ instance, persistent }: {
1375
+ instance: Option<TtlConfig>;
1376
+ persistent: Option<TtlConfig>;
1384
1377
  }, txnOptions?: {
1385
1378
  /**
1386
1379
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1394,6 +1387,66 @@ export interface Client {
1394
1387
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1395
1388
  */
1396
1389
  simulate?: boolean;
1390
+ }) => Promise<AssembledTransaction<null>>;
1391
+ /**
1392
+ * Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1393
+ * Returns the current TTL configs as (instance_config, persistent_config).
1394
+ */
1395
+ ttl_configs: (txnOptions?: {
1396
+ /**
1397
+ * The fee to pay for the transaction. Default: BASE_FEE
1398
+ */
1399
+ fee?: number;
1400
+ /**
1401
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1402
+ */
1403
+ timeoutInSeconds?: number;
1404
+ /**
1405
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1406
+ */
1407
+ simulate?: boolean;
1408
+ }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1409
+ /**
1410
+ * Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1411
+ * Permanently freezes TTL configs, preventing any future modifications.
1412
+ *
1413
+ * This is irreversible and provides immutability guarantees to users.
1414
+ * Emits `TtlConfigsFrozen` event.
1415
+ *
1416
+ * # Panics
1417
+ * - `TtlConfigAlreadyFrozen` if already frozen
1418
+ */
1419
+ freeze_ttl_configs: (txnOptions?: {
1420
+ /**
1421
+ * The fee to pay for the transaction. Default: BASE_FEE
1422
+ */
1423
+ fee?: number;
1424
+ /**
1425
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1426
+ */
1427
+ timeoutInSeconds?: number;
1428
+ /**
1429
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1430
+ */
1431
+ simulate?: boolean;
1432
+ }) => Promise<AssembledTransaction<null>>;
1433
+ /**
1434
+ * Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1435
+ * Returns whether TTL configs are frozen.
1436
+ */
1437
+ is_ttl_configs_frozen: (txnOptions?: {
1438
+ /**
1439
+ * The fee to pay for the transaction. Default: BASE_FEE
1440
+ */
1441
+ fee?: number;
1442
+ /**
1443
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1444
+ */
1445
+ timeoutInSeconds?: number;
1446
+ /**
1447
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1448
+ */
1449
+ simulate?: boolean;
1397
1450
  }) => Promise<AssembledTransaction<boolean>>;
1398
1451
  /**
1399
1452
  * Construct and simulate a oapp_version transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
@@ -1514,23 +1567,17 @@ export interface Client {
1514
1567
  simulate?: boolean;
1515
1568
  }) => Promise<AssembledTransaction<null>>;
1516
1569
  /**
1517
- * 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.
1518
- * Sets TTL configs for instance and persistent storage.
1519
- *
1520
- * - `None` values remove the corresponding config (disables auto-extension for that type)
1521
- * - Validates that `threshold <= extend_to <= MAX_TTL`
1570
+ * Construct and simulate a allow_initialize_path transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1571
+ * Checks if a messaging path can be initialized for the given origin.
1522
1572
  *
1523
1573
  * # Arguments
1524
- * - `instance` - TTL config for instance storage
1525
- * - `persistent` - TTL config for persistent storage
1574
+ * * `origin` - The origin of the message
1526
1575
  *
1527
- * # Panics
1528
- * - `TtlConfigFrozen` if configs are frozen
1529
- * - `InvalidTtlConfig` if validation fails
1576
+ * # Returns
1577
+ * True if the path can be initialized, false otherwise
1530
1578
  */
1531
- set_ttl_configs: ({ instance, persistent }: {
1532
- instance: Option<TtlConfig>;
1533
- persistent: Option<TtlConfig>;
1579
+ allow_initialize_path: ({ origin }: {
1580
+ origin: Origin;
1534
1581
  }, txnOptions?: {
1535
1582
  /**
1536
1583
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1544,12 +1591,27 @@ export interface Client {
1544
1591
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1545
1592
  */
1546
1593
  simulate?: boolean;
1547
- }) => Promise<AssembledTransaction<null>>;
1594
+ }) => Promise<AssembledTransaction<boolean>>;
1548
1595
  /**
1549
- * 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.
1550
- * Returns the current TTL configs as (instance_config, persistent_config).
1596
+ * Construct and simulate a next_nonce transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1597
+ * Retrieves the next nonce for a given source endpoint and sender address.
1598
+ *
1599
+ * The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.
1600
+ * This is required by the off-chain executor to determine if the OApp expects message execution to be ordered.
1601
+ * This is also enforced by the OApp.
1602
+ * By default this is NOT enabled, i.e. next_nonce is hardcoded to return 0.
1603
+ *
1604
+ * # Arguments
1605
+ * * `src_eid` - The source endpoint ID
1606
+ * * `sender` - The sender OApp address
1607
+ *
1608
+ * # Returns
1609
+ * The next nonce
1551
1610
  */
1552
- ttl_configs: (txnOptions?: {
1611
+ next_nonce: ({ src_eid, sender }: {
1612
+ src_eid: u32;
1613
+ sender: Buffer;
1614
+ }, txnOptions?: {
1553
1615
  /**
1554
1616
  * The fee to pay for the transaction. Default: BASE_FEE
1555
1617
  */
@@ -1562,18 +1624,33 @@ export interface Client {
1562
1624
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1563
1625
  */
1564
1626
  simulate?: boolean;
1565
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1627
+ }) => Promise<AssembledTransaction<u64>>;
1566
1628
  /**
1567
- * 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.
1568
- * Permanently freezes TTL configs, preventing any future modifications.
1629
+ * Construct and simulate a lz_receive transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1630
+ * Entry point for receiving messages or packets from the LayerZero endpoint.
1569
1631
  *
1570
- * This is irreversible and provides immutability guarantees to users.
1571
- * Emits `TtlConfigsFrozen` event.
1632
+ * The default implementation calls `clear_payload_and_transfer` to validate the message
1633
+ * and clear it from the endpoint, then delegates to `__lz_receive` for application logic.
1572
1634
  *
1573
- * # Panics
1574
- * - `TtlConfigAlreadyFrozen` if already frozen
1635
+ * # Arguments
1636
+ * * `executor` - The address of the executor for the received message
1637
+ * * `origin` - The origin information containing the source endpoint and sender address:
1638
+ * - `src_eid`: The source chain endpoint ID
1639
+ * - `sender`: The sender address on the source chain
1640
+ * - `nonce`: The nonce of the message
1641
+ * * `guid` - The unique identifier for the received LayerZero message
1642
+ * * `message` - The payload of the received message
1643
+ * * `extra_data` - Additional arbitrary data provided by the corresponding executor
1644
+ * * `value` - The native token value sent with the message
1575
1645
  */
1576
- freeze_ttl_configs: (txnOptions?: {
1646
+ lz_receive: ({ executor, origin, guid, message, extra_data, value }: {
1647
+ executor: string;
1648
+ origin: Origin;
1649
+ guid: Buffer;
1650
+ message: Buffer;
1651
+ extra_data: Buffer;
1652
+ value: i128;
1653
+ }, txnOptions?: {
1577
1654
  /**
1578
1655
  * The fee to pay for the transaction. Default: BASE_FEE
1579
1656
  */
@@ -1588,35 +1665,24 @@ export interface Client {
1588
1665
  simulate?: boolean;
1589
1666
  }) => Promise<AssembledTransaction<null>>;
1590
1667
  /**
1591
- * 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.
1592
- * Returns whether TTL configs are frozen.
1593
- */
1594
- is_ttl_configs_frozen: (txnOptions?: {
1595
- /**
1596
- * The fee to pay for the transaction. Default: BASE_FEE
1597
- */
1598
- fee?: number;
1599
- /**
1600
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1601
- */
1602
- timeoutInSeconds?: number;
1603
- /**
1604
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1605
- */
1606
- simulate?: boolean;
1607
- }) => Promise<AssembledTransaction<boolean>>;
1608
- /**
1609
- * 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.
1610
- * Extends the instance TTL.
1668
+ * Construct and simulate a is_compose_msg_sender transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1669
+ * Indicates whether an address is an approved composeMsg sender to the Endpoint.
1670
+ *
1671
+ * Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.
1672
+ * The default sender IS the OAppReceiver implementer.
1611
1673
  *
1612
1674
  * # Arguments
1675
+ * * `origin` - The origin information containing the source endpoint and sender address
1676
+ * * `message` - The lzReceive payload
1677
+ * * `sender` - The sender address to check
1613
1678
  *
1614
- * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
1615
- * * `extend_to` - The TTL to extend to.
1679
+ * # Returns
1680
+ * True if the sender is a valid composeMsg sender, false otherwise
1616
1681
  */
1617
- extend_instance_ttl: ({ threshold, extend_to }: {
1618
- threshold: u32;
1619
- extend_to: u32;
1682
+ is_compose_msg_sender: ({ origin, message, sender }: {
1683
+ origin: Origin;
1684
+ message: Buffer;
1685
+ sender: string;
1620
1686
  }, txnOptions?: {
1621
1687
  /**
1622
1688
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1630,56 +1696,21 @@ export interface Client {
1630
1696
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1631
1697
  */
1632
1698
  simulate?: boolean;
1633
- }) => Promise<AssembledTransaction<null>>;
1634
- /**
1635
- * Construct and simulate a owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1636
- * Returns the current owner address, or None if no owner is set.
1637
- */
1638
- owner: (txnOptions?: {
1639
- /**
1640
- * The fee to pay for the transaction. Default: BASE_FEE
1641
- */
1642
- fee?: number;
1643
- /**
1644
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1645
- */
1646
- timeoutInSeconds?: number;
1647
- /**
1648
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1649
- */
1650
- simulate?: boolean;
1651
- }) => Promise<AssembledTransaction<Option<string>>>;
1652
- /**
1653
- * Construct and simulate a pending_owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1654
- * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
1655
- */
1656
- pending_owner: (txnOptions?: {
1657
- /**
1658
- * The fee to pay for the transaction. Default: BASE_FEE
1659
- */
1660
- fee?: number;
1661
- /**
1662
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1663
- */
1664
- timeoutInSeconds?: number;
1665
- /**
1666
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1667
- */
1668
- simulate?: boolean;
1669
- }) => Promise<AssembledTransaction<Option<string>>>;
1699
+ }) => Promise<AssembledTransaction<boolean>>;
1670
1700
  /**
1671
- * Construct and simulate a transfer_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1672
- * Transfers ownership immediately to a new address.
1701
+ * Construct and simulate a enforced_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1702
+ * Retrieves the enforced options for a given endpoint and message type.
1673
1703
  *
1674
- * Use with caution - if you transfer to a wrong address, ownership is lost forever.
1675
- * Consider using `propose_ownership_transfer` instead.
1704
+ * # Arguments
1705
+ * * `eid` - The endpoint ID
1706
+ * * `msg_type` - The OApp message type
1676
1707
  *
1677
- * # Panics
1678
- * - `OwnerNotSet` if no owner is currently set
1679
- * - `TransferInProgress` if a 2-step transfer is in progress
1708
+ * # Returns
1709
+ * The enforced options for the given endpoint and message type
1680
1710
  */
1681
- transfer_ownership: ({ new_owner }: {
1682
- new_owner: string;
1711
+ enforced_options: ({ eid, msg_type }: {
1712
+ eid: u32;
1713
+ msg_type: u32;
1683
1714
  }, txnOptions?: {
1684
1715
  /**
1685
1716
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1693,28 +1724,22 @@ export interface Client {
1693
1724
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1694
1725
  */
1695
1726
  simulate?: boolean;
1696
- }) => Promise<AssembledTransaction<null>>;
1727
+ }) => Promise<AssembledTransaction<Buffer>>;
1697
1728
  /**
1698
- * Construct and simulate a propose_ownership_transfer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1699
- * Proposes an ownership transfer to a new address.
1729
+ * Construct and simulate a set_enforced_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1730
+ * Sets the enforced options for specific endpoint and message type combinations.
1700
1731
  *
1701
- * The new owner must call `accept_ownership()` within `ttl` ledgers
1702
- * to complete the transfer. The pending transfer will automatically expire after.
1732
+ * Only the `authorizer` of the OApp can call this function.
1733
+ * Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.
1734
+ * These enforced options can vary as the potential options/execution on the remote may differ as per the msg_type.
1735
+ * e.g. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you don't want to pay
1736
+ * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().
1703
1737
  *
1704
1738
  * # Arguments
1705
- * - `new_owner` - The proposed new owner
1706
- * - `ttl` - Number of ledgers the new owner has to accept.
1707
- * Use `0` to cancel a pending transfer (new_owner must match pending).
1708
- *
1709
- * # Panics
1710
- * - `OwnerNotSet` if no owner is currently set
1711
- * - `NoPendingTransfer` when cancelling and no pending transfer exists
1712
- * - `InvalidTtl` if ttl exceeds max TTL
1713
- * - `InvalidPendingOwner` when cancelling with wrong new_owner address
1739
+ * * `options` - A vector of EnforcedOptionParam structures specifying enforced options
1714
1740
  */
1715
- propose_ownership_transfer: ({ new_owner, ttl }: {
1716
- new_owner: string;
1717
- ttl: u32;
1741
+ set_enforced_options: ({ options }: {
1742
+ options: Array<EnforcedOptionParam>;
1718
1743
  }, txnOptions?: {
1719
1744
  /**
1720
1745
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1730,37 +1755,27 @@ export interface Client {
1730
1755
  simulate?: boolean;
1731
1756
  }) => Promise<AssembledTransaction<null>>;
1732
1757
  /**
1733
- * Construct and simulate a accept_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1734
- * Accepts a pending 2-step ownership transfer.
1758
+ * Construct and simulate a combine_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1759
+ * Combines options for a given endpoint and message type.
1735
1760
  *
1736
- * Must be called by the pending owner before the TTL expires.
1761
+ * If there is an enforced lzReceive option:
1762
+ * - {gas_limit: 200k, value: 1 XLM} AND a caller supplies a lzReceive option: {gas_limit: 100k, value: 0.5 XLM}
1763
+ * - The resulting options will be {gas_limit: 300k, value: 1.5 XLM} when the message is executed on the remote lz_receive() function.
1764
+ * The presence of duplicated options is handled off-chain in the verifier/executor.
1737
1765
  *
1738
- * # Panics
1739
- * - `NoPendingTransfer` if there is no pending transfer (or it expired)
1740
- */
1741
- accept_ownership: (txnOptions?: {
1742
- /**
1743
- * The fee to pay for the transaction. Default: BASE_FEE
1744
- */
1745
- fee?: number;
1746
- /**
1747
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1748
- */
1749
- timeoutInSeconds?: number;
1750
- /**
1751
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1752
- */
1753
- simulate?: boolean;
1754
- }) => Promise<AssembledTransaction<null>>;
1755
- /**
1756
- * Construct and simulate a renounce_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1757
- * Permanently renounces ownership.
1766
+ * # Arguments
1767
+ * * `eid` - The endpoint ID
1768
+ * * `msg_type` - The OApp message type
1769
+ * * `extra_options` - Additional options passed by the caller
1758
1770
  *
1759
- * # Panics
1760
- * - `OwnerNotSet` if no owner is currently set
1761
- * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
1771
+ * # Returns
1772
+ * The combination of caller specified options AND enforced options
1762
1773
  */
1763
- renounce_ownership: (txnOptions?: {
1774
+ combine_options: ({ eid, msg_type, extra_options }: {
1775
+ eid: u32;
1776
+ msg_type: u32;
1777
+ extra_options: Buffer;
1778
+ }, txnOptions?: {
1764
1779
  /**
1765
1780
  * The fee to pay for the transaction. Default: BASE_FEE
1766
1781
  */
@@ -1773,7 +1788,7 @@ export interface Client {
1773
1788
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1774
1789
  */
1775
1790
  simulate?: boolean;
1776
- }) => Promise<AssembledTransaction<null>>;
1791
+ }) => Promise<AssembledTransaction<Buffer>>;
1777
1792
  }
1778
1793
  export declare class Client extends ContractClient {
1779
1794
  readonly options: ContractClientOptions;
@@ -1799,18 +1814,15 @@ export declare class Client extends ContractClient {
1799
1814
  constructor(options: ContractClientOptions);
1800
1815
  readonly fromJSON: {
1801
1816
  set_rate_limit: (json: string) => AssembledTransaction<null>;
1802
- unset_rate_limit: (json: string) => AssembledTransaction<null>;
1803
- rate_limit_config: (json: string) => AssembledTransaction<readonly [bigint, bigint]>;
1817
+ rate_limit_config: (json: string) => AssembledTransaction<Option<RateLimitConfig>>;
1804
1818
  rate_limit_in_flight: (json: string) => AssembledTransaction<bigint>;
1805
1819
  rate_limit_capacity: (json: string) => AssembledTransaction<bigint>;
1806
1820
  set_default_fee_bps: (json: string) => AssembledTransaction<null>;
1807
1821
  set_fee_bps: (json: string) => AssembledTransaction<null>;
1808
- unset_fee_bps: (json: string) => AssembledTransaction<null>;
1809
1822
  set_fee_deposit_address: (json: string) => AssembledTransaction<null>;
1810
- has_fee_bps: (json: string) => AssembledTransaction<boolean>;
1811
- effective_fee_bps: (json: string) => AssembledTransaction<bigint>;
1812
1823
  default_fee_bps: (json: string) => AssembledTransaction<bigint>;
1813
1824
  fee_bps: (json: string) => AssembledTransaction<Option<bigint>>;
1825
+ effective_fee_bps: (json: string) => AssembledTransaction<bigint>;
1814
1826
  fee_deposit_address: (json: string) => AssembledTransaction<string>;
1815
1827
  set_paused: (json: string) => AssembledTransaction<null>;
1816
1828
  is_paused: (json: string) => AssembledTransaction<boolean>;
@@ -1820,32 +1832,34 @@ export declare class Client extends ContractClient {
1820
1832
  shared_decimals: (json: string) => AssembledTransaction<number>;
1821
1833
  decimal_conversion_rate: (json: string) => AssembledTransaction<bigint>;
1822
1834
  approval_required: (json: string) => AssembledTransaction<boolean>;
1835
+ msg_inspector: (json: string) => AssembledTransaction<Option<string>>;
1836
+ set_msg_inspector: (json: string) => AssembledTransaction<null>;
1823
1837
  quote_send: (json: string) => AssembledTransaction<MessagingFee>;
1824
1838
  send: (json: string) => AssembledTransaction<readonly [MessagingReceipt, OFTReceipt]>;
1825
1839
  oft_type: (json: string) => AssembledTransaction<OftType>;
1826
1840
  authorizer: (json: string) => AssembledTransaction<string>;
1827
- enforced_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
1828
- set_enforced_options: (json: string) => AssembledTransaction<null>;
1829
- combine_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
1830
- allow_initialize_path: (json: string) => AssembledTransaction<boolean>;
1831
- next_nonce: (json: string) => AssembledTransaction<bigint>;
1832
- lz_receive: (json: string) => AssembledTransaction<null>;
1833
- is_compose_msg_sender: (json: string) => AssembledTransaction<boolean>;
1834
- oapp_version: (json: string) => AssembledTransaction<readonly [bigint, bigint]>;
1835
- endpoint: (json: string) => AssembledTransaction<string>;
1836
- peer: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
1837
- set_peer: (json: string) => AssembledTransaction<null>;
1838
- set_delegate: (json: string) => AssembledTransaction<null>;
1839
- set_ttl_configs: (json: string) => AssembledTransaction<null>;
1840
- ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
1841
- freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
1842
- is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
1843
- extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1844
1841
  owner: (json: string) => AssembledTransaction<Option<string>>;
1845
1842
  pending_owner: (json: string) => AssembledTransaction<Option<string>>;
1846
1843
  transfer_ownership: (json: string) => AssembledTransaction<null>;
1847
1844
  propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
1848
1845
  accept_ownership: (json: string) => AssembledTransaction<null>;
1849
1846
  renounce_ownership: (json: string) => AssembledTransaction<null>;
1847
+ extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1848
+ set_ttl_configs: (json: string) => AssembledTransaction<null>;
1849
+ ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
1850
+ freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
1851
+ is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
1852
+ oapp_version: (json: string) => AssembledTransaction<readonly [bigint, bigint]>;
1853
+ endpoint: (json: string) => AssembledTransaction<string>;
1854
+ peer: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
1855
+ set_peer: (json: string) => AssembledTransaction<null>;
1856
+ set_delegate: (json: string) => AssembledTransaction<null>;
1857
+ allow_initialize_path: (json: string) => AssembledTransaction<boolean>;
1858
+ next_nonce: (json: string) => AssembledTransaction<bigint>;
1859
+ lz_receive: (json: string) => AssembledTransaction<null>;
1860
+ is_compose_msg_sender: (json: string) => AssembledTransaction<boolean>;
1861
+ enforced_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
1862
+ set_enforced_options: (json: string) => AssembledTransaction<null>;
1863
+ combine_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
1850
1864
  };
1851
1865
  }