@ritbit/v4-client-js 1.3.17

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 (412) hide show
  1. package/.env +1 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.js +15 -0
  4. package/.gitleaks.toml +24 -0
  5. package/.gitleaksignore +1 -0
  6. package/.nvmrc +1 -0
  7. package/.prettierignore +3 -0
  8. package/.prettierrc.json +6 -0
  9. package/.releaserc +10 -0
  10. package/.vscode/launch.json +11 -0
  11. package/LICENSE +13 -0
  12. package/README.md +83 -0
  13. package/__native__/__ios__/v4-native-client.js +209891 -0
  14. package/__native__/__ios__/v4-native-client.js.map +1 -0
  15. package/__tests__/clients/composite-client.test.ts +140 -0
  16. package/__tests__/helpers/baseClients.ts +23 -0
  17. package/__tests__/helpers/constants.ts +130 -0
  18. package/__tests__/lib/helpers.test.ts +53 -0
  19. package/__tests__/lib/util.test.ts +77 -0
  20. package/__tests__/lib/validation.test.ts +289 -0
  21. package/__tests__/modules/client/AccountEndpoints.test.ts +236 -0
  22. package/__tests__/modules/client/FaucetEndpoint.test.ts +14 -0
  23. package/__tests__/modules/client/MarketsEndpoints.test.ts +84 -0
  24. package/__tests__/modules/client/Transfers.test.ts +44 -0
  25. package/__tests__/modules/client/UtilityEndpoints.test.ts +29 -0
  26. package/__tests__/modules/client/ValidatorGetEndpoints.test.ts +50 -0
  27. package/__tests__/modules/client/ValidatorPostEndpoints.test.ts +52 -0
  28. package/__tests__/modules/client/constants.ts +5 -0
  29. package/__tests__/modules/onboarding.test.ts +66 -0
  30. package/build/cjs/clients/composite-client.js +788 -0
  31. package/build/cjs/clients/constants.js +293 -0
  32. package/build/cjs/clients/faucet-client.js +36 -0
  33. package/build/cjs/clients/helpers/chain-helpers.js +178 -0
  34. package/build/cjs/clients/helpers/request-helpers.js +65 -0
  35. package/build/cjs/clients/indexer-client.js +56 -0
  36. package/build/cjs/clients/lib/axios/axiosRequest.js +34 -0
  37. package/build/cjs/clients/lib/axios/errors.js +28 -0
  38. package/build/cjs/clients/lib/axios/index.js +23 -0
  39. package/build/cjs/clients/lib/axios/types.js +11 -0
  40. package/build/cjs/clients/lib/cctpProto.js +3242 -0
  41. package/build/cjs/clients/lib/errors.js +58 -0
  42. package/build/cjs/clients/lib/registry.js +51 -0
  43. package/build/cjs/clients/modules/account.js +223 -0
  44. package/build/cjs/clients/modules/composer.js +404 -0
  45. package/build/cjs/clients/modules/get.js +469 -0
  46. package/build/cjs/clients/modules/local-wallet.js +59 -0
  47. package/build/cjs/clients/modules/markets.js +54 -0
  48. package/build/cjs/clients/modules/post.js +391 -0
  49. package/build/cjs/clients/modules/proto-includes.js +72 -0
  50. package/build/cjs/clients/modules/rest.js +33 -0
  51. package/build/cjs/clients/modules/signer.js +93 -0
  52. package/build/cjs/clients/modules/tendermintClient.js +137 -0
  53. package/build/cjs/clients/modules/utility.js +44 -0
  54. package/build/cjs/clients/modules/vault.js +25 -0
  55. package/build/cjs/clients/noble-client.js +75 -0
  56. package/build/cjs/clients/socket-client.js +301 -0
  57. package/build/cjs/clients/subaccount.js +33 -0
  58. package/build/cjs/clients/types.js +43 -0
  59. package/build/cjs/clients/validator-client.js +81 -0
  60. package/build/cjs/index.js +73 -0
  61. package/build/cjs/lib/constants.js +23 -0
  62. package/build/cjs/lib/errors.js +37 -0
  63. package/build/cjs/lib/helpers.js +98 -0
  64. package/build/cjs/lib/onboarding.js +75 -0
  65. package/build/cjs/lib/trading-key-utils.js +108 -0
  66. package/build/cjs/lib/utils.js +79 -0
  67. package/build/cjs/lib/validation.js +150 -0
  68. package/build/cjs/network_optimizer.js +96 -0
  69. package/build/cjs/package.json +1 -0
  70. package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  71. package/build/cjs/types.js +25 -0
  72. package/build/esm/__tests__/clients/composite-client.test.d.ts +2 -0
  73. package/build/esm/__tests__/clients/composite-client.test.d.ts.map +1 -0
  74. package/build/esm/__tests__/clients/composite-client.test.js +128 -0
  75. package/build/esm/__tests__/helpers/baseClients.d.ts +19 -0
  76. package/build/esm/__tests__/helpers/baseClients.d.ts.map +1 -0
  77. package/build/esm/__tests__/helpers/baseClients.js +22 -0
  78. package/build/esm/__tests__/helpers/constants.d.ts +19 -0
  79. package/build/esm/__tests__/helpers/constants.d.ts.map +1 -0
  80. package/build/esm/__tests__/helpers/constants.js +104 -0
  81. package/build/esm/__tests__/lib/helpers.test.d.ts +2 -0
  82. package/build/esm/__tests__/lib/helpers.test.d.ts.map +1 -0
  83. package/build/esm/__tests__/lib/helpers.test.js +40 -0
  84. package/build/esm/__tests__/lib/util.test.d.ts +2 -0
  85. package/build/esm/__tests__/lib/util.test.d.ts.map +1 -0
  86. package/build/esm/__tests__/lib/util.test.js +65 -0
  87. package/build/esm/__tests__/lib/validation.test.d.ts +2 -0
  88. package/build/esm/__tests__/lib/validation.test.d.ts.map +1 -0
  89. package/build/esm/__tests__/lib/validation.test.js +249 -0
  90. package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts +2 -0
  91. package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts.map +1 -0
  92. package/build/esm/__tests__/modules/client/AccountEndpoints.test.js +169 -0
  93. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts +2 -0
  94. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts.map +1 -0
  95. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.js +13 -0
  96. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts +2 -0
  97. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts.map +1 -0
  98. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.js +66 -0
  99. package/build/esm/__tests__/modules/client/Transfers.test.d.ts +2 -0
  100. package/build/esm/__tests__/modules/client/Transfers.test.d.ts.map +1 -0
  101. package/build/esm/__tests__/modules/client/Transfers.test.js +39 -0
  102. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts +2 -0
  103. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts.map +1 -0
  104. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.js +26 -0
  105. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts +2 -0
  106. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts.map +1 -0
  107. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.js +44 -0
  108. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts +2 -0
  109. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts.map +1 -0
  110. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.js +48 -0
  111. package/build/esm/__tests__/modules/client/constants.d.ts +4 -0
  112. package/build/esm/__tests__/modules/client/constants.d.ts.map +1 -0
  113. package/build/esm/__tests__/modules/client/constants.js +4 -0
  114. package/build/esm/__tests__/modules/onboarding.test.d.ts +2 -0
  115. package/build/esm/__tests__/modules/onboarding.test.d.ts.map +1 -0
  116. package/build/esm/__tests__/modules/onboarding.test.js +48 -0
  117. package/build/esm/examples/account_endpoints.d.ts +5 -0
  118. package/build/esm/examples/account_endpoints.d.ts.map +1 -0
  119. package/build/esm/examples/account_endpoints.js +127 -0
  120. package/build/esm/examples/batch_cancel_orders_example.d.ts +2 -0
  121. package/build/esm/examples/batch_cancel_orders_example.d.ts.map +1 -0
  122. package/build/esm/examples/batch_cancel_orders_example.js +88 -0
  123. package/build/esm/examples/composite_example.d.ts +2 -0
  124. package/build/esm/examples/composite_example.d.ts.map +1 -0
  125. package/build/esm/examples/composite_example.js +45 -0
  126. package/build/esm/examples/constants.d.ts +13 -0
  127. package/build/esm/examples/constants.d.ts.map +1 -0
  128. package/build/esm/examples/constants.js +29 -0
  129. package/build/esm/examples/faucet_endpoint.d.ts +5 -0
  130. package/build/esm/examples/faucet_endpoint.d.ts.map +1 -0
  131. package/build/esm/examples/faucet_endpoint.js +21 -0
  132. package/build/esm/examples/gov_add_new_market.d.ts +2 -0
  133. package/build/esm/examples/gov_add_new_market.d.ts.map +1 -0
  134. package/build/esm/examples/gov_add_new_market.js +72 -0
  135. package/build/esm/examples/human_readable_orders.json +86 -0
  136. package/build/esm/examples/human_readable_short_term_orders.json +42 -0
  137. package/build/esm/examples/json-encoding.d.ts +2 -0
  138. package/build/esm/examples/json-encoding.d.ts.map +1 -0
  139. package/build/esm/examples/json-encoding.js +27 -0
  140. package/build/esm/examples/long_term_order_cancel_example.d.ts +2 -0
  141. package/build/esm/examples/long_term_order_cancel_example.d.ts.map +1 -0
  142. package/build/esm/examples/long_term_order_cancel_example.js +58 -0
  143. package/build/esm/examples/markets_endpoints.d.ts +5 -0
  144. package/build/esm/examples/markets_endpoints.d.ts.map +1 -0
  145. package/build/esm/examples/markets_endpoints.js +131 -0
  146. package/build/esm/examples/native_examples.d.ts +2 -0
  147. package/build/esm/examples/native_examples.d.ts.map +1 -0
  148. package/build/esm/examples/native_examples.js +110 -0
  149. package/build/esm/examples/noble_example.d.ts +2 -0
  150. package/build/esm/examples/noble_example.d.ts.map +1 -0
  151. package/build/esm/examples/noble_example.js +83 -0
  152. package/build/esm/examples/optimal_node.d.ts +2 -0
  153. package/build/esm/examples/optimal_node.d.ts.map +1 -0
  154. package/build/esm/examples/optimal_node.js +68 -0
  155. package/build/esm/examples/permissioned_keys_example.d.ts +2 -0
  156. package/build/esm/examples/permissioned_keys_example.d.ts.map +1 -0
  157. package/build/esm/examples/permissioned_keys_example.js +99 -0
  158. package/build/esm/examples/raw_orders.json +130 -0
  159. package/build/esm/examples/short_term_order_cancel_example.d.ts +2 -0
  160. package/build/esm/examples/short_term_order_cancel_example.d.ts.map +1 -0
  161. package/build/esm/examples/short_term_order_cancel_example.js +49 -0
  162. package/build/esm/examples/short_term_order_composite_example.d.ts +2 -0
  163. package/build/esm/examples/short_term_order_composite_example.d.ts.map +1 -0
  164. package/build/esm/examples/short_term_order_composite_example.js +63 -0
  165. package/build/esm/examples/test.d.ts +2 -0
  166. package/build/esm/examples/test.d.ts.map +1 -0
  167. package/build/esm/examples/test.js +45 -0
  168. package/build/esm/examples/transfer_example_deposit.d.ts +2 -0
  169. package/build/esm/examples/transfer_example_deposit.d.ts.map +1 -0
  170. package/build/esm/examples/transfer_example_deposit.js +24 -0
  171. package/build/esm/examples/transfer_example_send.d.ts +2 -0
  172. package/build/esm/examples/transfer_example_send.d.ts.map +1 -0
  173. package/build/esm/examples/transfer_example_send.js +37 -0
  174. package/build/esm/examples/transfer_example_subaccount_transfer.d.ts +2 -0
  175. package/build/esm/examples/transfer_example_subaccount_transfer.d.ts.map +1 -0
  176. package/build/esm/examples/transfer_example_subaccount_transfer.js +24 -0
  177. package/build/esm/examples/transfer_example_withdraw.d.ts +2 -0
  178. package/build/esm/examples/transfer_example_withdraw.d.ts.map +1 -0
  179. package/build/esm/examples/transfer_example_withdraw.js +25 -0
  180. package/build/esm/examples/transfer_example_withdraw_other.d.ts +2 -0
  181. package/build/esm/examples/transfer_example_withdraw_other.d.ts.map +1 -0
  182. package/build/esm/examples/transfer_example_withdraw_other.js +37 -0
  183. package/build/esm/examples/utility_endpoints.d.ts +5 -0
  184. package/build/esm/examples/utility_endpoints.d.ts.map +1 -0
  185. package/build/esm/examples/utility_endpoints.js +40 -0
  186. package/build/esm/examples/validator_get_example.d.ts +2 -0
  187. package/build/esm/examples/validator_get_example.d.ts.map +1 -0
  188. package/build/esm/examples/validator_get_example.js +156 -0
  189. package/build/esm/examples/validator_post_example.d.ts +2 -0
  190. package/build/esm/examples/validator_post_example.d.ts.map +1 -0
  191. package/build/esm/examples/validator_post_example.js +71 -0
  192. package/build/esm/examples/wallet_address.d.ts +2 -0
  193. package/build/esm/examples/wallet_address.d.ts.map +1 -0
  194. package/build/esm/examples/wallet_address.js +17 -0
  195. package/build/esm/examples/websocket_example.d.ts +2 -0
  196. package/build/esm/examples/websocket_example.d.ts.map +1 -0
  197. package/build/esm/examples/websocket_example.js +34 -0
  198. package/build/esm/examples/websocket_orderbook_example.d.ts +2 -0
  199. package/build/esm/examples/websocket_orderbook_example.d.ts.map +1 -0
  200. package/build/esm/examples/websocket_orderbook_example.js +194 -0
  201. package/build/esm/src/clients/composite-client.d.ts +406 -0
  202. package/build/esm/src/clients/composite-client.d.ts.map +1 -0
  203. package/build/esm/src/clients/composite-client.js +781 -0
  204. package/build/esm/src/clients/constants.d.ts +170 -0
  205. package/build/esm/src/clients/constants.d.ts.map +1 -0
  206. package/build/esm/src/clients/constants.js +269 -0
  207. package/build/esm/src/clients/faucet-client.d.ts +18 -0
  208. package/build/esm/src/clients/faucet-client.d.ts.map +1 -0
  209. package/build/esm/src/clients/faucet-client.js +29 -0
  210. package/build/esm/src/clients/helpers/chain-helpers.d.ts +15 -0
  211. package/build/esm/src/clients/helpers/chain-helpers.d.ts.map +1 -0
  212. package/build/esm/src/clients/helpers/chain-helpers.js +163 -0
  213. package/build/esm/src/clients/helpers/request-helpers.d.ts +3 -0
  214. package/build/esm/src/clients/helpers/request-helpers.d.ts.map +1 -0
  215. package/build/esm/src/clients/helpers/request-helpers.js +58 -0
  216. package/build/esm/src/clients/indexer-client.d.ts +40 -0
  217. package/build/esm/src/clients/indexer-client.d.ts.map +1 -0
  218. package/build/esm/src/clients/indexer-client.js +49 -0
  219. package/build/esm/src/clients/lib/axios/axiosRequest.d.ts +9 -0
  220. package/build/esm/src/clients/lib/axios/axiosRequest.d.ts.map +1 -0
  221. package/build/esm/src/clients/lib/axios/axiosRequest.js +28 -0
  222. package/build/esm/src/clients/lib/axios/errors.d.ts +31 -0
  223. package/build/esm/src/clients/lib/axios/errors.d.ts.map +1 -0
  224. package/build/esm/src/clients/lib/axios/errors.js +23 -0
  225. package/build/esm/src/clients/lib/axios/index.d.ts +7 -0
  226. package/build/esm/src/clients/lib/axios/index.d.ts.map +1 -0
  227. package/build/esm/src/clients/lib/axios/index.js +7 -0
  228. package/build/esm/src/clients/lib/axios/types.d.ts +7 -0
  229. package/build/esm/src/clients/lib/axios/types.d.ts.map +1 -0
  230. package/build/esm/src/clients/lib/axios/types.js +8 -0
  231. package/build/esm/src/clients/lib/cctpProto.d.ts +670 -0
  232. package/build/esm/src/clients/lib/cctpProto.d.ts.map +1 -0
  233. package/build/esm/src/clients/lib/cctpProto.js +3234 -0
  234. package/build/esm/src/clients/lib/errors.d.ts +38 -0
  235. package/build/esm/src/clients/lib/errors.d.ts.map +1 -0
  236. package/build/esm/src/clients/lib/errors.js +50 -0
  237. package/build/esm/src/clients/lib/registry.d.ts +4 -0
  238. package/build/esm/src/clients/lib/registry.d.ts.map +1 -0
  239. package/build/esm/src/clients/lib/registry.js +47 -0
  240. package/build/esm/src/clients/modules/account.d.ts +30 -0
  241. package/build/esm/src/clients/modules/account.d.ts.map +1 -0
  242. package/build/esm/src/clients/modules/account.js +217 -0
  243. package/build/esm/src/clients/modules/composer.d.ts +37 -0
  244. package/build/esm/src/clients/modules/composer.d.ts.map +1 -0
  245. package/build/esm/src/clients/modules/composer.js +397 -0
  246. package/build/esm/src/clients/modules/get.d.ts +193 -0
  247. package/build/esm/src/clients/modules/get.d.ts.map +1 -0
  248. package/build/esm/src/clients/modules/get.js +429 -0
  249. package/build/esm/src/clients/modules/local-wallet.d.ts +19 -0
  250. package/build/esm/src/clients/modules/local-wallet.d.ts.map +1 -0
  251. package/build/esm/src/clients/modules/local-wallet.js +53 -0
  252. package/build/esm/src/clients/modules/markets.d.ts +14 -0
  253. package/build/esm/src/clients/modules/markets.d.ts.map +1 -0
  254. package/build/esm/src/clients/modules/markets.js +48 -0
  255. package/build/esm/src/clients/modules/post.d.ts +133 -0
  256. package/build/esm/src/clients/modules/post.d.ts.map +1 -0
  257. package/build/esm/src/clients/modules/post.js +384 -0
  258. package/build/esm/src/clients/modules/proto-includes.d.ts +30 -0
  259. package/build/esm/src/clients/modules/proto-includes.d.ts.map +1 -0
  260. package/build/esm/src/clients/modules/proto-includes.js +32 -0
  261. package/build/esm/src/clients/modules/rest.d.ts +12 -0
  262. package/build/esm/src/clients/modules/rest.d.ts.map +1 -0
  263. package/build/esm/src/clients/modules/rest.js +27 -0
  264. package/build/esm/src/clients/modules/signer.d.ts +19 -0
  265. package/build/esm/src/clients/modules/signer.d.ts.map +1 -0
  266. package/build/esm/src/clients/modules/signer.js +86 -0
  267. package/build/esm/src/clients/modules/tendermintClient.d.ts +54 -0
  268. package/build/esm/src/clients/modules/tendermintClient.d.ts.map +1 -0
  269. package/build/esm/src/clients/modules/tendermintClient.js +133 -0
  270. package/build/esm/src/clients/modules/utility.d.ts +27 -0
  271. package/build/esm/src/clients/modules/utility.d.ts.map +1 -0
  272. package/build/esm/src/clients/modules/utility.js +38 -0
  273. package/build/esm/src/clients/modules/vault.d.ts +12 -0
  274. package/build/esm/src/clients/modules/vault.d.ts.map +1 -0
  275. package/build/esm/src/clients/modules/vault.js +19 -0
  276. package/build/esm/src/clients/native.d.ts +75 -0
  277. package/build/esm/src/clients/native.d.ts.map +1 -0
  278. package/build/esm/src/clients/native.js +1237 -0
  279. package/build/esm/src/clients/noble-client.d.ts +18 -0
  280. package/build/esm/src/clients/noble-client.d.ts.map +1 -0
  281. package/build/esm/src/clients/noble-client.js +71 -0
  282. package/build/esm/src/clients/socket-client.d.ts +146 -0
  283. package/build/esm/src/clients/socket-client.d.ts.map +1 -0
  284. package/build/esm/src/clients/socket-client.js +294 -0
  285. package/build/esm/src/clients/subaccount.d.ts +14 -0
  286. package/build/esm/src/clients/subaccount.d.ts.map +1 -0
  287. package/build/esm/src/clients/subaccount.js +29 -0
  288. package/build/esm/src/clients/types.d.ts +137 -0
  289. package/build/esm/src/clients/types.d.ts.map +1 -0
  290. package/build/esm/src/clients/types.js +26 -0
  291. package/build/esm/src/clients/validator-client.d.ts +35 -0
  292. package/build/esm/src/clients/validator-client.d.ts.map +1 -0
  293. package/build/esm/src/clients/validator-client.js +74 -0
  294. package/build/esm/src/index.d.ts +17 -0
  295. package/build/esm/src/index.d.ts.map +1 -0
  296. package/build/esm/src/index.js +19 -0
  297. package/build/esm/src/lib/constants.d.ts +13 -0
  298. package/build/esm/src/lib/constants.d.ts.map +1 -0
  299. package/build/esm/src/lib/constants.js +20 -0
  300. package/build/esm/src/lib/errors.d.ts +23 -0
  301. package/build/esm/src/lib/errors.d.ts.map +1 -0
  302. package/build/esm/src/lib/errors.js +31 -0
  303. package/build/esm/src/lib/helpers.d.ts +22 -0
  304. package/build/esm/src/lib/helpers.d.ts.map +1 -0
  305. package/build/esm/src/lib/helpers.js +88 -0
  306. package/build/esm/src/lib/onboarding.d.ts +46 -0
  307. package/build/esm/src/lib/onboarding.d.ts.map +1 -0
  308. package/build/esm/src/lib/onboarding.js +69 -0
  309. package/build/esm/src/lib/trading-key-utils.d.ts +22 -0
  310. package/build/esm/src/lib/trading-key-utils.d.ts.map +1 -0
  311. package/build/esm/src/lib/trading-key-utils.js +99 -0
  312. package/build/esm/src/lib/utils.d.ts +39 -0
  313. package/build/esm/src/lib/utils.d.ts.map +1 -0
  314. package/build/esm/src/lib/utils.js +69 -0
  315. package/build/esm/src/lib/validation.d.ts +26 -0
  316. package/build/esm/src/lib/validation.d.ts.map +1 -0
  317. package/build/esm/src/lib/validation.js +138 -0
  318. package/build/esm/src/network_optimizer.d.ts +8 -0
  319. package/build/esm/src/network_optimizer.d.ts.map +1 -0
  320. package/build/esm/src/network_optimizer.js +91 -0
  321. package/build/esm/src/types.d.ts +26 -0
  322. package/build/esm/src/types.d.ts.map +1 -0
  323. package/build/esm/src/types.js +8 -0
  324. package/build/esm/tsconfig.esm.tsbuildinfo +1 -0
  325. package/commitlint.config.js +8 -0
  326. package/examples/account_endpoints.ts +129 -0
  327. package/examples/batch_cancel_orders_example.ts +130 -0
  328. package/examples/composite_example.ts +65 -0
  329. package/examples/constants.ts +42 -0
  330. package/examples/faucet_endpoint.ts +24 -0
  331. package/examples/gov_add_new_market.json +64 -0
  332. package/examples/gov_add_new_market.ts +95 -0
  333. package/examples/human_readable_orders.json +86 -0
  334. package/examples/human_readable_short_term_orders.json +42 -0
  335. package/examples/json-encoding.ts +33 -0
  336. package/examples/long_term_order_cancel_example.ts +87 -0
  337. package/examples/markets_endpoints.ts +134 -0
  338. package/examples/native_examples.ts +151 -0
  339. package/examples/noble_example.ts +107 -0
  340. package/examples/optimal_node.ts +70 -0
  341. package/examples/permissioned_keys_example.ts +162 -0
  342. package/examples/raw_orders.json +130 -0
  343. package/examples/short_term_order_cancel_example.ts +68 -0
  344. package/examples/short_term_order_composite_example.ts +80 -0
  345. package/examples/test.ts +65 -0
  346. package/examples/transfer_example_deposit.ts +28 -0
  347. package/examples/transfer_example_send.ts +60 -0
  348. package/examples/transfer_example_subaccount_transfer.ts +29 -0
  349. package/examples/transfer_example_withdraw.ts +31 -0
  350. package/examples/transfer_example_withdraw_other.ts +60 -0
  351. package/examples/utility_endpoints.ts +42 -0
  352. package/examples/validator_get_example.ts +160 -0
  353. package/examples/validator_post_example.ts +81 -0
  354. package/examples/wallet_address.ts +18 -0
  355. package/examples/websocket_example.ts +44 -0
  356. package/examples/websocket_orderbook_example.ts +239 -0
  357. package/jest.config.js +12 -0
  358. package/jest.globalSetup.js +5 -0
  359. package/jest.setup.js +1 -0
  360. package/package.json +113 -0
  361. package/ritbit-v4-client-js-1.3.17.tgz +0 -0
  362. package/scripts/bump_version.sh +16 -0
  363. package/scripts/generate-cctp-protos.sh +41 -0
  364. package/scripts/mobile_build_pack.sh +5 -0
  365. package/scripts/publish-if-not-exists.sh +21 -0
  366. package/src/clients/composite-client.ts +1431 -0
  367. package/src/clients/constants.ts +358 -0
  368. package/src/clients/faucet-client.ts +48 -0
  369. package/src/clients/helpers/chain-helpers.ts +231 -0
  370. package/src/clients/helpers/request-helpers.ts +71 -0
  371. package/src/clients/indexer-client.ts +61 -0
  372. package/src/clients/lib/axios/axiosRequest.ts +41 -0
  373. package/src/clients/lib/axios/errors.ts +41 -0
  374. package/src/clients/lib/axios/index.ts +7 -0
  375. package/src/clients/lib/axios/types.ts +6 -0
  376. package/src/clients/lib/cctpProto.ts +4197 -0
  377. package/src/clients/lib/errors.ts +63 -0
  378. package/src/clients/lib/registry.ts +88 -0
  379. package/src/clients/modules/account.ts +388 -0
  380. package/src/clients/modules/composer.ts +645 -0
  381. package/src/clients/modules/get.ts +740 -0
  382. package/src/clients/modules/local-wallet.ts +79 -0
  383. package/src/clients/modules/markets.ts +71 -0
  384. package/src/clients/modules/post.ts +1016 -0
  385. package/src/clients/modules/proto-includes.ts +33 -0
  386. package/src/clients/modules/rest.ts +40 -0
  387. package/src/clients/modules/signer.ts +139 -0
  388. package/src/clients/modules/tendermintClient.ts +168 -0
  389. package/src/clients/modules/utility.ts +47 -0
  390. package/src/clients/modules/vault.ts +23 -0
  391. package/src/clients/native.ts +1508 -0
  392. package/src/clients/noble-client.ts +108 -0
  393. package/src/clients/socket-client.ts +331 -0
  394. package/src/clients/subaccount.ts +57 -0
  395. package/src/clients/types.ts +191 -0
  396. package/src/clients/validator-client.ts +103 -0
  397. package/src/index.ts +20 -0
  398. package/src/lib/constants.ts +28 -0
  399. package/src/lib/errors.ts +38 -0
  400. package/src/lib/helpers.ts +99 -0
  401. package/src/lib/onboarding.ts +96 -0
  402. package/src/lib/trading-key-utils.ts +136 -0
  403. package/src/lib/utils.ts +84 -0
  404. package/src/lib/validation.ts +197 -0
  405. package/src/network_optimizer.ts +132 -0
  406. package/src/types.ts +44 -0
  407. package/tasks.json +16 -0
  408. package/tsconfig.base.json +15 -0
  409. package/tsconfig.cjs.json +20 -0
  410. package/tsconfig.eslint.json +14 -0
  411. package/tsconfig.esm.json +11 -0
  412. package/webpack.config.js +56 -0
@@ -0,0 +1,3234 @@
1
+ /* eslint-disable */
2
+ import Long from 'long';
3
+ import _m0 from 'protobufjs/minimal';
4
+ export const protobufPackage = 'circle.cctp.v1';
5
+ function createBaseMsgUpdateOwner() {
6
+ return { from: '', newOwner: '' };
7
+ }
8
+ export const MsgUpdateOwner = {
9
+ encode(message, writer = _m0.Writer.create()) {
10
+ if (message.from !== '') {
11
+ writer.uint32(10).string(message.from);
12
+ }
13
+ if (message.newOwner !== '') {
14
+ writer.uint32(18).string(message.newOwner);
15
+ }
16
+ return writer;
17
+ },
18
+ decode(input, length) {
19
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
20
+ let end = length === undefined ? reader.len : reader.pos + length;
21
+ const message = createBaseMsgUpdateOwner();
22
+ while (reader.pos < end) {
23
+ const tag = reader.uint32();
24
+ switch (tag >>> 3) {
25
+ case 1:
26
+ if (tag !== 10) {
27
+ break;
28
+ }
29
+ message.from = reader.string();
30
+ continue;
31
+ case 2:
32
+ if (tag !== 18) {
33
+ break;
34
+ }
35
+ message.newOwner = reader.string();
36
+ continue;
37
+ }
38
+ if ((tag & 7) === 4 || tag === 0) {
39
+ break;
40
+ }
41
+ reader.skipType(tag & 7);
42
+ }
43
+ return message;
44
+ },
45
+ fromJSON(object) {
46
+ return {
47
+ from: isSet(object.from) ? gt.String(object.from) : '',
48
+ newOwner: isSet(object.newOwner) ? gt.String(object.newOwner) : '',
49
+ };
50
+ },
51
+ toJSON(message) {
52
+ const obj = {};
53
+ if (message.from !== '') {
54
+ obj.from = message.from;
55
+ }
56
+ if (message.newOwner !== '') {
57
+ obj.newOwner = message.newOwner;
58
+ }
59
+ return obj;
60
+ },
61
+ create(base) {
62
+ return MsgUpdateOwner.fromPartial(base !== null && base !== void 0 ? base : {});
63
+ },
64
+ fromPartial(object) {
65
+ var _a, _b;
66
+ const message = createBaseMsgUpdateOwner();
67
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
68
+ message.newOwner = (_b = object.newOwner) !== null && _b !== void 0 ? _b : '';
69
+ return message;
70
+ },
71
+ };
72
+ function createBaseMsgUpdateOwnerResponse() {
73
+ return {};
74
+ }
75
+ export const MsgUpdateOwnerResponse = {
76
+ encode(_, writer = _m0.Writer.create()) {
77
+ return writer;
78
+ },
79
+ decode(input, length) {
80
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
81
+ let end = length === undefined ? reader.len : reader.pos + length;
82
+ const message = createBaseMsgUpdateOwnerResponse();
83
+ while (reader.pos < end) {
84
+ const tag = reader.uint32();
85
+ switch (tag >>> 3) {
86
+ }
87
+ if ((tag & 7) === 4 || tag === 0) {
88
+ break;
89
+ }
90
+ reader.skipType(tag & 7);
91
+ }
92
+ return message;
93
+ },
94
+ fromJSON(_) {
95
+ return {};
96
+ },
97
+ toJSON(_) {
98
+ const obj = {};
99
+ return obj;
100
+ },
101
+ create(base) {
102
+ return MsgUpdateOwnerResponse.fromPartial(base !== null && base !== void 0 ? base : {});
103
+ },
104
+ fromPartial(_) {
105
+ const message = createBaseMsgUpdateOwnerResponse();
106
+ return message;
107
+ },
108
+ };
109
+ function createBaseMsgUpdateAttesterManager() {
110
+ return { from: '', newAttesterManager: '' };
111
+ }
112
+ export const MsgUpdateAttesterManager = {
113
+ encode(message, writer = _m0.Writer.create()) {
114
+ if (message.from !== '') {
115
+ writer.uint32(10).string(message.from);
116
+ }
117
+ if (message.newAttesterManager !== '') {
118
+ writer.uint32(18).string(message.newAttesterManager);
119
+ }
120
+ return writer;
121
+ },
122
+ decode(input, length) {
123
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
124
+ let end = length === undefined ? reader.len : reader.pos + length;
125
+ const message = createBaseMsgUpdateAttesterManager();
126
+ while (reader.pos < end) {
127
+ const tag = reader.uint32();
128
+ switch (tag >>> 3) {
129
+ case 1:
130
+ if (tag !== 10) {
131
+ break;
132
+ }
133
+ message.from = reader.string();
134
+ continue;
135
+ case 2:
136
+ if (tag !== 18) {
137
+ break;
138
+ }
139
+ message.newAttesterManager = reader.string();
140
+ continue;
141
+ }
142
+ if ((tag & 7) === 4 || tag === 0) {
143
+ break;
144
+ }
145
+ reader.skipType(tag & 7);
146
+ }
147
+ return message;
148
+ },
149
+ fromJSON(object) {
150
+ return {
151
+ from: isSet(object.from) ? gt.String(object.from) : '',
152
+ newAttesterManager: isSet(object.newAttesterManager)
153
+ ? gt.String(object.newAttesterManager)
154
+ : '',
155
+ };
156
+ },
157
+ toJSON(message) {
158
+ const obj = {};
159
+ if (message.from !== '') {
160
+ obj.from = message.from;
161
+ }
162
+ if (message.newAttesterManager !== '') {
163
+ obj.newAttesterManager = message.newAttesterManager;
164
+ }
165
+ return obj;
166
+ },
167
+ create(base) {
168
+ return MsgUpdateAttesterManager.fromPartial(base !== null && base !== void 0 ? base : {});
169
+ },
170
+ fromPartial(object) {
171
+ var _a, _b;
172
+ const message = createBaseMsgUpdateAttesterManager();
173
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
174
+ message.newAttesterManager = (_b = object.newAttesterManager) !== null && _b !== void 0 ? _b : '';
175
+ return message;
176
+ },
177
+ };
178
+ function createBaseMsgUpdateAttesterManagerResponse() {
179
+ return {};
180
+ }
181
+ export const MsgUpdateAttesterManagerResponse = {
182
+ encode(_, writer = _m0.Writer.create()) {
183
+ return writer;
184
+ },
185
+ decode(input, length) {
186
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
187
+ let end = length === undefined ? reader.len : reader.pos + length;
188
+ const message = createBaseMsgUpdateAttesterManagerResponse();
189
+ while (reader.pos < end) {
190
+ const tag = reader.uint32();
191
+ switch (tag >>> 3) {
192
+ }
193
+ if ((tag & 7) === 4 || tag === 0) {
194
+ break;
195
+ }
196
+ reader.skipType(tag & 7);
197
+ }
198
+ return message;
199
+ },
200
+ fromJSON(_) {
201
+ return {};
202
+ },
203
+ toJSON(_) {
204
+ const obj = {};
205
+ return obj;
206
+ },
207
+ create(base) {
208
+ return MsgUpdateAttesterManagerResponse.fromPartial(base !== null && base !== void 0 ? base : {});
209
+ },
210
+ fromPartial(_) {
211
+ const message = createBaseMsgUpdateAttesterManagerResponse();
212
+ return message;
213
+ },
214
+ };
215
+ function createBaseMsgUpdateTokenController() {
216
+ return { from: '', newTokenController: '' };
217
+ }
218
+ export const MsgUpdateTokenController = {
219
+ encode(message, writer = _m0.Writer.create()) {
220
+ if (message.from !== '') {
221
+ writer.uint32(10).string(message.from);
222
+ }
223
+ if (message.newTokenController !== '') {
224
+ writer.uint32(18).string(message.newTokenController);
225
+ }
226
+ return writer;
227
+ },
228
+ decode(input, length) {
229
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
230
+ let end = length === undefined ? reader.len : reader.pos + length;
231
+ const message = createBaseMsgUpdateTokenController();
232
+ while (reader.pos < end) {
233
+ const tag = reader.uint32();
234
+ switch (tag >>> 3) {
235
+ case 1:
236
+ if (tag !== 10) {
237
+ break;
238
+ }
239
+ message.from = reader.string();
240
+ continue;
241
+ case 2:
242
+ if (tag !== 18) {
243
+ break;
244
+ }
245
+ message.newTokenController = reader.string();
246
+ continue;
247
+ }
248
+ if ((tag & 7) === 4 || tag === 0) {
249
+ break;
250
+ }
251
+ reader.skipType(tag & 7);
252
+ }
253
+ return message;
254
+ },
255
+ fromJSON(object) {
256
+ return {
257
+ from: isSet(object.from) ? gt.String(object.from) : '',
258
+ newTokenController: isSet(object.newTokenController)
259
+ ? gt.String(object.newTokenController)
260
+ : '',
261
+ };
262
+ },
263
+ toJSON(message) {
264
+ const obj = {};
265
+ if (message.from !== '') {
266
+ obj.from = message.from;
267
+ }
268
+ if (message.newTokenController !== '') {
269
+ obj.newTokenController = message.newTokenController;
270
+ }
271
+ return obj;
272
+ },
273
+ create(base) {
274
+ return MsgUpdateTokenController.fromPartial(base !== null && base !== void 0 ? base : {});
275
+ },
276
+ fromPartial(object) {
277
+ var _a, _b;
278
+ const message = createBaseMsgUpdateTokenController();
279
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
280
+ message.newTokenController = (_b = object.newTokenController) !== null && _b !== void 0 ? _b : '';
281
+ return message;
282
+ },
283
+ };
284
+ function createBaseMsgUpdateTokenControllerResponse() {
285
+ return {};
286
+ }
287
+ export const MsgUpdateTokenControllerResponse = {
288
+ encode(_, writer = _m0.Writer.create()) {
289
+ return writer;
290
+ },
291
+ decode(input, length) {
292
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
293
+ let end = length === undefined ? reader.len : reader.pos + length;
294
+ const message = createBaseMsgUpdateTokenControllerResponse();
295
+ while (reader.pos < end) {
296
+ const tag = reader.uint32();
297
+ switch (tag >>> 3) {
298
+ }
299
+ if ((tag & 7) === 4 || tag === 0) {
300
+ break;
301
+ }
302
+ reader.skipType(tag & 7);
303
+ }
304
+ return message;
305
+ },
306
+ fromJSON(_) {
307
+ return {};
308
+ },
309
+ toJSON(_) {
310
+ const obj = {};
311
+ return obj;
312
+ },
313
+ create(base) {
314
+ return MsgUpdateTokenControllerResponse.fromPartial(base !== null && base !== void 0 ? base : {});
315
+ },
316
+ fromPartial(_) {
317
+ const message = createBaseMsgUpdateTokenControllerResponse();
318
+ return message;
319
+ },
320
+ };
321
+ function createBaseMsgUpdatePauser() {
322
+ return { from: '', newPauser: '' };
323
+ }
324
+ export const MsgUpdatePauser = {
325
+ encode(message, writer = _m0.Writer.create()) {
326
+ if (message.from !== '') {
327
+ writer.uint32(10).string(message.from);
328
+ }
329
+ if (message.newPauser !== '') {
330
+ writer.uint32(18).string(message.newPauser);
331
+ }
332
+ return writer;
333
+ },
334
+ decode(input, length) {
335
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
336
+ let end = length === undefined ? reader.len : reader.pos + length;
337
+ const message = createBaseMsgUpdatePauser();
338
+ while (reader.pos < end) {
339
+ const tag = reader.uint32();
340
+ switch (tag >>> 3) {
341
+ case 1:
342
+ if (tag !== 10) {
343
+ break;
344
+ }
345
+ message.from = reader.string();
346
+ continue;
347
+ case 2:
348
+ if (tag !== 18) {
349
+ break;
350
+ }
351
+ message.newPauser = reader.string();
352
+ continue;
353
+ }
354
+ if ((tag & 7) === 4 || tag === 0) {
355
+ break;
356
+ }
357
+ reader.skipType(tag & 7);
358
+ }
359
+ return message;
360
+ },
361
+ fromJSON(object) {
362
+ return {
363
+ from: isSet(object.from) ? gt.String(object.from) : '',
364
+ newPauser: isSet(object.newPauser) ? gt.String(object.newPauser) : '',
365
+ };
366
+ },
367
+ toJSON(message) {
368
+ const obj = {};
369
+ if (message.from !== '') {
370
+ obj.from = message.from;
371
+ }
372
+ if (message.newPauser !== '') {
373
+ obj.newPauser = message.newPauser;
374
+ }
375
+ return obj;
376
+ },
377
+ create(base) {
378
+ return MsgUpdatePauser.fromPartial(base !== null && base !== void 0 ? base : {});
379
+ },
380
+ fromPartial(object) {
381
+ var _a, _b;
382
+ const message = createBaseMsgUpdatePauser();
383
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
384
+ message.newPauser = (_b = object.newPauser) !== null && _b !== void 0 ? _b : '';
385
+ return message;
386
+ },
387
+ };
388
+ function createBaseMsgUpdatePauserResponse() {
389
+ return {};
390
+ }
391
+ export const MsgUpdatePauserResponse = {
392
+ encode(_, writer = _m0.Writer.create()) {
393
+ return writer;
394
+ },
395
+ decode(input, length) {
396
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
397
+ let end = length === undefined ? reader.len : reader.pos + length;
398
+ const message = createBaseMsgUpdatePauserResponse();
399
+ while (reader.pos < end) {
400
+ const tag = reader.uint32();
401
+ switch (tag >>> 3) {
402
+ }
403
+ if ((tag & 7) === 4 || tag === 0) {
404
+ break;
405
+ }
406
+ reader.skipType(tag & 7);
407
+ }
408
+ return message;
409
+ },
410
+ fromJSON(_) {
411
+ return {};
412
+ },
413
+ toJSON(_) {
414
+ const obj = {};
415
+ return obj;
416
+ },
417
+ create(base) {
418
+ return MsgUpdatePauserResponse.fromPartial(base !== null && base !== void 0 ? base : {});
419
+ },
420
+ fromPartial(_) {
421
+ const message = createBaseMsgUpdatePauserResponse();
422
+ return message;
423
+ },
424
+ };
425
+ function createBaseMsgAcceptOwner() {
426
+ return { from: '' };
427
+ }
428
+ export const MsgAcceptOwner = {
429
+ encode(message, writer = _m0.Writer.create()) {
430
+ if (message.from !== '') {
431
+ writer.uint32(10).string(message.from);
432
+ }
433
+ return writer;
434
+ },
435
+ decode(input, length) {
436
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
437
+ let end = length === undefined ? reader.len : reader.pos + length;
438
+ const message = createBaseMsgAcceptOwner();
439
+ while (reader.pos < end) {
440
+ const tag = reader.uint32();
441
+ switch (tag >>> 3) {
442
+ case 1:
443
+ if (tag !== 10) {
444
+ break;
445
+ }
446
+ message.from = reader.string();
447
+ continue;
448
+ }
449
+ if ((tag & 7) === 4 || tag === 0) {
450
+ break;
451
+ }
452
+ reader.skipType(tag & 7);
453
+ }
454
+ return message;
455
+ },
456
+ fromJSON(object) {
457
+ return { from: isSet(object.from) ? gt.String(object.from) : '' };
458
+ },
459
+ toJSON(message) {
460
+ const obj = {};
461
+ if (message.from !== '') {
462
+ obj.from = message.from;
463
+ }
464
+ return obj;
465
+ },
466
+ create(base) {
467
+ return MsgAcceptOwner.fromPartial(base !== null && base !== void 0 ? base : {});
468
+ },
469
+ fromPartial(object) {
470
+ var _a;
471
+ const message = createBaseMsgAcceptOwner();
472
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
473
+ return message;
474
+ },
475
+ };
476
+ function createBaseMsgAcceptOwnerResponse() {
477
+ return {};
478
+ }
479
+ export const MsgAcceptOwnerResponse = {
480
+ encode(_, writer = _m0.Writer.create()) {
481
+ return writer;
482
+ },
483
+ decode(input, length) {
484
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
485
+ let end = length === undefined ? reader.len : reader.pos + length;
486
+ const message = createBaseMsgAcceptOwnerResponse();
487
+ while (reader.pos < end) {
488
+ const tag = reader.uint32();
489
+ switch (tag >>> 3) {
490
+ }
491
+ if ((tag & 7) === 4 || tag === 0) {
492
+ break;
493
+ }
494
+ reader.skipType(tag & 7);
495
+ }
496
+ return message;
497
+ },
498
+ fromJSON(_) {
499
+ return {};
500
+ },
501
+ toJSON(_) {
502
+ const obj = {};
503
+ return obj;
504
+ },
505
+ create(base) {
506
+ return MsgAcceptOwnerResponse.fromPartial(base !== null && base !== void 0 ? base : {});
507
+ },
508
+ fromPartial(_) {
509
+ const message = createBaseMsgAcceptOwnerResponse();
510
+ return message;
511
+ },
512
+ };
513
+ function createBaseMsgEnableAttester() {
514
+ return { from: '', attester: '' };
515
+ }
516
+ export const MsgEnableAttester = {
517
+ encode(message, writer = _m0.Writer.create()) {
518
+ if (message.from !== '') {
519
+ writer.uint32(10).string(message.from);
520
+ }
521
+ if (message.attester !== '') {
522
+ writer.uint32(18).string(message.attester);
523
+ }
524
+ return writer;
525
+ },
526
+ decode(input, length) {
527
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
528
+ let end = length === undefined ? reader.len : reader.pos + length;
529
+ const message = createBaseMsgEnableAttester();
530
+ while (reader.pos < end) {
531
+ const tag = reader.uint32();
532
+ switch (tag >>> 3) {
533
+ case 1:
534
+ if (tag !== 10) {
535
+ break;
536
+ }
537
+ message.from = reader.string();
538
+ continue;
539
+ case 2:
540
+ if (tag !== 18) {
541
+ break;
542
+ }
543
+ message.attester = reader.string();
544
+ continue;
545
+ }
546
+ if ((tag & 7) === 4 || tag === 0) {
547
+ break;
548
+ }
549
+ reader.skipType(tag & 7);
550
+ }
551
+ return message;
552
+ },
553
+ fromJSON(object) {
554
+ return {
555
+ from: isSet(object.from) ? gt.String(object.from) : '',
556
+ attester: isSet(object.attester) ? gt.String(object.attester) : '',
557
+ };
558
+ },
559
+ toJSON(message) {
560
+ const obj = {};
561
+ if (message.from !== '') {
562
+ obj.from = message.from;
563
+ }
564
+ if (message.attester !== '') {
565
+ obj.attester = message.attester;
566
+ }
567
+ return obj;
568
+ },
569
+ create(base) {
570
+ return MsgEnableAttester.fromPartial(base !== null && base !== void 0 ? base : {});
571
+ },
572
+ fromPartial(object) {
573
+ var _a, _b;
574
+ const message = createBaseMsgEnableAttester();
575
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
576
+ message.attester = (_b = object.attester) !== null && _b !== void 0 ? _b : '';
577
+ return message;
578
+ },
579
+ };
580
+ function createBaseMsgEnableAttesterResponse() {
581
+ return {};
582
+ }
583
+ export const MsgEnableAttesterResponse = {
584
+ encode(_, writer = _m0.Writer.create()) {
585
+ return writer;
586
+ },
587
+ decode(input, length) {
588
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
589
+ let end = length === undefined ? reader.len : reader.pos + length;
590
+ const message = createBaseMsgEnableAttesterResponse();
591
+ while (reader.pos < end) {
592
+ const tag = reader.uint32();
593
+ switch (tag >>> 3) {
594
+ }
595
+ if ((tag & 7) === 4 || tag === 0) {
596
+ break;
597
+ }
598
+ reader.skipType(tag & 7);
599
+ }
600
+ return message;
601
+ },
602
+ fromJSON(_) {
603
+ return {};
604
+ },
605
+ toJSON(_) {
606
+ const obj = {};
607
+ return obj;
608
+ },
609
+ create(base) {
610
+ return MsgEnableAttesterResponse.fromPartial(base !== null && base !== void 0 ? base : {});
611
+ },
612
+ fromPartial(_) {
613
+ const message = createBaseMsgEnableAttesterResponse();
614
+ return message;
615
+ },
616
+ };
617
+ function createBaseMsgDisableAttester() {
618
+ return { from: '', attester: '' };
619
+ }
620
+ export const MsgDisableAttester = {
621
+ encode(message, writer = _m0.Writer.create()) {
622
+ if (message.from !== '') {
623
+ writer.uint32(10).string(message.from);
624
+ }
625
+ if (message.attester !== '') {
626
+ writer.uint32(18).string(message.attester);
627
+ }
628
+ return writer;
629
+ },
630
+ decode(input, length) {
631
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
632
+ let end = length === undefined ? reader.len : reader.pos + length;
633
+ const message = createBaseMsgDisableAttester();
634
+ while (reader.pos < end) {
635
+ const tag = reader.uint32();
636
+ switch (tag >>> 3) {
637
+ case 1:
638
+ if (tag !== 10) {
639
+ break;
640
+ }
641
+ message.from = reader.string();
642
+ continue;
643
+ case 2:
644
+ if (tag !== 18) {
645
+ break;
646
+ }
647
+ message.attester = reader.string();
648
+ continue;
649
+ }
650
+ if ((tag & 7) === 4 || tag === 0) {
651
+ break;
652
+ }
653
+ reader.skipType(tag & 7);
654
+ }
655
+ return message;
656
+ },
657
+ fromJSON(object) {
658
+ return {
659
+ from: isSet(object.from) ? gt.String(object.from) : '',
660
+ attester: isSet(object.attester) ? gt.String(object.attester) : '',
661
+ };
662
+ },
663
+ toJSON(message) {
664
+ const obj = {};
665
+ if (message.from !== '') {
666
+ obj.from = message.from;
667
+ }
668
+ if (message.attester !== '') {
669
+ obj.attester = message.attester;
670
+ }
671
+ return obj;
672
+ },
673
+ create(base) {
674
+ return MsgDisableAttester.fromPartial(base !== null && base !== void 0 ? base : {});
675
+ },
676
+ fromPartial(object) {
677
+ var _a, _b;
678
+ const message = createBaseMsgDisableAttester();
679
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
680
+ message.attester = (_b = object.attester) !== null && _b !== void 0 ? _b : '';
681
+ return message;
682
+ },
683
+ };
684
+ function createBaseMsgDisableAttesterResponse() {
685
+ return {};
686
+ }
687
+ export const MsgDisableAttesterResponse = {
688
+ encode(_, writer = _m0.Writer.create()) {
689
+ return writer;
690
+ },
691
+ decode(input, length) {
692
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
693
+ let end = length === undefined ? reader.len : reader.pos + length;
694
+ const message = createBaseMsgDisableAttesterResponse();
695
+ while (reader.pos < end) {
696
+ const tag = reader.uint32();
697
+ switch (tag >>> 3) {
698
+ }
699
+ if ((tag & 7) === 4 || tag === 0) {
700
+ break;
701
+ }
702
+ reader.skipType(tag & 7);
703
+ }
704
+ return message;
705
+ },
706
+ fromJSON(_) {
707
+ return {};
708
+ },
709
+ toJSON(_) {
710
+ const obj = {};
711
+ return obj;
712
+ },
713
+ create(base) {
714
+ return MsgDisableAttesterResponse.fromPartial(base !== null && base !== void 0 ? base : {});
715
+ },
716
+ fromPartial(_) {
717
+ const message = createBaseMsgDisableAttesterResponse();
718
+ return message;
719
+ },
720
+ };
721
+ function createBaseMsgPauseBurningAndMinting() {
722
+ return { from: '' };
723
+ }
724
+ export const MsgPauseBurningAndMinting = {
725
+ encode(message, writer = _m0.Writer.create()) {
726
+ if (message.from !== '') {
727
+ writer.uint32(10).string(message.from);
728
+ }
729
+ return writer;
730
+ },
731
+ decode(input, length) {
732
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
733
+ let end = length === undefined ? reader.len : reader.pos + length;
734
+ const message = createBaseMsgPauseBurningAndMinting();
735
+ while (reader.pos < end) {
736
+ const tag = reader.uint32();
737
+ switch (tag >>> 3) {
738
+ case 1:
739
+ if (tag !== 10) {
740
+ break;
741
+ }
742
+ message.from = reader.string();
743
+ continue;
744
+ }
745
+ if ((tag & 7) === 4 || tag === 0) {
746
+ break;
747
+ }
748
+ reader.skipType(tag & 7);
749
+ }
750
+ return message;
751
+ },
752
+ fromJSON(object) {
753
+ return { from: isSet(object.from) ? gt.String(object.from) : '' };
754
+ },
755
+ toJSON(message) {
756
+ const obj = {};
757
+ if (message.from !== '') {
758
+ obj.from = message.from;
759
+ }
760
+ return obj;
761
+ },
762
+ create(base) {
763
+ return MsgPauseBurningAndMinting.fromPartial(base !== null && base !== void 0 ? base : {});
764
+ },
765
+ fromPartial(object) {
766
+ var _a;
767
+ const message = createBaseMsgPauseBurningAndMinting();
768
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
769
+ return message;
770
+ },
771
+ };
772
+ function createBaseMsgPauseBurningAndMintingResponse() {
773
+ return {};
774
+ }
775
+ export const MsgPauseBurningAndMintingResponse = {
776
+ encode(_, writer = _m0.Writer.create()) {
777
+ return writer;
778
+ },
779
+ decode(input, length) {
780
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
781
+ let end = length === undefined ? reader.len : reader.pos + length;
782
+ const message = createBaseMsgPauseBurningAndMintingResponse();
783
+ while (reader.pos < end) {
784
+ const tag = reader.uint32();
785
+ switch (tag >>> 3) {
786
+ }
787
+ if ((tag & 7) === 4 || tag === 0) {
788
+ break;
789
+ }
790
+ reader.skipType(tag & 7);
791
+ }
792
+ return message;
793
+ },
794
+ fromJSON(_) {
795
+ return {};
796
+ },
797
+ toJSON(_) {
798
+ const obj = {};
799
+ return obj;
800
+ },
801
+ create(base) {
802
+ return MsgPauseBurningAndMintingResponse.fromPartial(base !== null && base !== void 0 ? base : {});
803
+ },
804
+ fromPartial(_) {
805
+ const message = createBaseMsgPauseBurningAndMintingResponse();
806
+ return message;
807
+ },
808
+ };
809
+ function createBaseMsgUnpauseBurningAndMinting() {
810
+ return { from: '' };
811
+ }
812
+ export const MsgUnpauseBurningAndMinting = {
813
+ encode(message, writer = _m0.Writer.create()) {
814
+ if (message.from !== '') {
815
+ writer.uint32(10).string(message.from);
816
+ }
817
+ return writer;
818
+ },
819
+ decode(input, length) {
820
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
821
+ let end = length === undefined ? reader.len : reader.pos + length;
822
+ const message = createBaseMsgUnpauseBurningAndMinting();
823
+ while (reader.pos < end) {
824
+ const tag = reader.uint32();
825
+ switch (tag >>> 3) {
826
+ case 1:
827
+ if (tag !== 10) {
828
+ break;
829
+ }
830
+ message.from = reader.string();
831
+ continue;
832
+ }
833
+ if ((tag & 7) === 4 || tag === 0) {
834
+ break;
835
+ }
836
+ reader.skipType(tag & 7);
837
+ }
838
+ return message;
839
+ },
840
+ fromJSON(object) {
841
+ return { from: isSet(object.from) ? gt.String(object.from) : '' };
842
+ },
843
+ toJSON(message) {
844
+ const obj = {};
845
+ if (message.from !== '') {
846
+ obj.from = message.from;
847
+ }
848
+ return obj;
849
+ },
850
+ create(base) {
851
+ return MsgUnpauseBurningAndMinting.fromPartial(base !== null && base !== void 0 ? base : {});
852
+ },
853
+ fromPartial(object) {
854
+ var _a;
855
+ const message = createBaseMsgUnpauseBurningAndMinting();
856
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
857
+ return message;
858
+ },
859
+ };
860
+ function createBaseMsgUnpauseBurningAndMintingResponse() {
861
+ return {};
862
+ }
863
+ export const MsgUnpauseBurningAndMintingResponse = {
864
+ encode(_, writer = _m0.Writer.create()) {
865
+ return writer;
866
+ },
867
+ decode(input, length) {
868
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
869
+ let end = length === undefined ? reader.len : reader.pos + length;
870
+ const message = createBaseMsgUnpauseBurningAndMintingResponse();
871
+ while (reader.pos < end) {
872
+ const tag = reader.uint32();
873
+ switch (tag >>> 3) {
874
+ }
875
+ if ((tag & 7) === 4 || tag === 0) {
876
+ break;
877
+ }
878
+ reader.skipType(tag & 7);
879
+ }
880
+ return message;
881
+ },
882
+ fromJSON(_) {
883
+ return {};
884
+ },
885
+ toJSON(_) {
886
+ const obj = {};
887
+ return obj;
888
+ },
889
+ create(base) {
890
+ return MsgUnpauseBurningAndMintingResponse.fromPartial(base !== null && base !== void 0 ? base : {});
891
+ },
892
+ fromPartial(_) {
893
+ const message = createBaseMsgUnpauseBurningAndMintingResponse();
894
+ return message;
895
+ },
896
+ };
897
+ function createBaseMsgPauseSendingAndReceivingMessages() {
898
+ return { from: '' };
899
+ }
900
+ export const MsgPauseSendingAndReceivingMessages = {
901
+ encode(message, writer = _m0.Writer.create()) {
902
+ if (message.from !== '') {
903
+ writer.uint32(10).string(message.from);
904
+ }
905
+ return writer;
906
+ },
907
+ decode(input, length) {
908
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
909
+ let end = length === undefined ? reader.len : reader.pos + length;
910
+ const message = createBaseMsgPauseSendingAndReceivingMessages();
911
+ while (reader.pos < end) {
912
+ const tag = reader.uint32();
913
+ switch (tag >>> 3) {
914
+ case 1:
915
+ if (tag !== 10) {
916
+ break;
917
+ }
918
+ message.from = reader.string();
919
+ continue;
920
+ }
921
+ if ((tag & 7) === 4 || tag === 0) {
922
+ break;
923
+ }
924
+ reader.skipType(tag & 7);
925
+ }
926
+ return message;
927
+ },
928
+ fromJSON(object) {
929
+ return { from: isSet(object.from) ? gt.String(object.from) : '' };
930
+ },
931
+ toJSON(message) {
932
+ const obj = {};
933
+ if (message.from !== '') {
934
+ obj.from = message.from;
935
+ }
936
+ return obj;
937
+ },
938
+ create(base) {
939
+ return MsgPauseSendingAndReceivingMessages.fromPartial(base !== null && base !== void 0 ? base : {});
940
+ },
941
+ fromPartial(object) {
942
+ var _a;
943
+ const message = createBaseMsgPauseSendingAndReceivingMessages();
944
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
945
+ return message;
946
+ },
947
+ };
948
+ function createBaseMsgPauseSendingAndReceivingMessagesResponse() {
949
+ return {};
950
+ }
951
+ export const MsgPauseSendingAndReceivingMessagesResponse = {
952
+ encode(_, writer = _m0.Writer.create()) {
953
+ return writer;
954
+ },
955
+ decode(input, length) {
956
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
957
+ let end = length === undefined ? reader.len : reader.pos + length;
958
+ const message = createBaseMsgPauseSendingAndReceivingMessagesResponse();
959
+ while (reader.pos < end) {
960
+ const tag = reader.uint32();
961
+ switch (tag >>> 3) {
962
+ }
963
+ if ((tag & 7) === 4 || tag === 0) {
964
+ break;
965
+ }
966
+ reader.skipType(tag & 7);
967
+ }
968
+ return message;
969
+ },
970
+ fromJSON(_) {
971
+ return {};
972
+ },
973
+ toJSON(_) {
974
+ const obj = {};
975
+ return obj;
976
+ },
977
+ create(base) {
978
+ return MsgPauseSendingAndReceivingMessagesResponse.fromPartial(base !== null && base !== void 0 ? base : {});
979
+ },
980
+ fromPartial(_) {
981
+ const message = createBaseMsgPauseSendingAndReceivingMessagesResponse();
982
+ return message;
983
+ },
984
+ };
985
+ function createBaseMsgUnpauseSendingAndReceivingMessages() {
986
+ return { from: '' };
987
+ }
988
+ export const MsgUnpauseSendingAndReceivingMessages = {
989
+ encode(message, writer = _m0.Writer.create()) {
990
+ if (message.from !== '') {
991
+ writer.uint32(10).string(message.from);
992
+ }
993
+ return writer;
994
+ },
995
+ decode(input, length) {
996
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
997
+ let end = length === undefined ? reader.len : reader.pos + length;
998
+ const message = createBaseMsgUnpauseSendingAndReceivingMessages();
999
+ while (reader.pos < end) {
1000
+ const tag = reader.uint32();
1001
+ switch (tag >>> 3) {
1002
+ case 1:
1003
+ if (tag !== 10) {
1004
+ break;
1005
+ }
1006
+ message.from = reader.string();
1007
+ continue;
1008
+ }
1009
+ if ((tag & 7) === 4 || tag === 0) {
1010
+ break;
1011
+ }
1012
+ reader.skipType(tag & 7);
1013
+ }
1014
+ return message;
1015
+ },
1016
+ fromJSON(object) {
1017
+ return { from: isSet(object.from) ? gt.String(object.from) : '' };
1018
+ },
1019
+ toJSON(message) {
1020
+ const obj = {};
1021
+ if (message.from !== '') {
1022
+ obj.from = message.from;
1023
+ }
1024
+ return obj;
1025
+ },
1026
+ create(base) {
1027
+ return MsgUnpauseSendingAndReceivingMessages.fromPartial(base !== null && base !== void 0 ? base : {});
1028
+ },
1029
+ fromPartial(object) {
1030
+ var _a;
1031
+ const message = createBaseMsgUnpauseSendingAndReceivingMessages();
1032
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
1033
+ return message;
1034
+ },
1035
+ };
1036
+ function createBaseMsgUnpauseSendingAndReceivingMessagesResponse() {
1037
+ return {};
1038
+ }
1039
+ export const MsgUnpauseSendingAndReceivingMessagesResponse = {
1040
+ encode(_, writer = _m0.Writer.create()) {
1041
+ return writer;
1042
+ },
1043
+ decode(input, length) {
1044
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1045
+ let end = length === undefined ? reader.len : reader.pos + length;
1046
+ const message = createBaseMsgUnpauseSendingAndReceivingMessagesResponse();
1047
+ while (reader.pos < end) {
1048
+ const tag = reader.uint32();
1049
+ switch (tag >>> 3) {
1050
+ }
1051
+ if ((tag & 7) === 4 || tag === 0) {
1052
+ break;
1053
+ }
1054
+ reader.skipType(tag & 7);
1055
+ }
1056
+ return message;
1057
+ },
1058
+ fromJSON(_) {
1059
+ return {};
1060
+ },
1061
+ toJSON(_) {
1062
+ const obj = {};
1063
+ return obj;
1064
+ },
1065
+ create(base) {
1066
+ return MsgUnpauseSendingAndReceivingMessagesResponse.fromPartial(base !== null && base !== void 0 ? base : {});
1067
+ },
1068
+ fromPartial(_) {
1069
+ const message = createBaseMsgUnpauseSendingAndReceivingMessagesResponse();
1070
+ return message;
1071
+ },
1072
+ };
1073
+ function createBaseMsgUpdateMaxMessageBodySize() {
1074
+ return { from: '', messageSize: Long.UZERO };
1075
+ }
1076
+ export const MsgUpdateMaxMessageBodySize = {
1077
+ encode(message, writer = _m0.Writer.create()) {
1078
+ if (message.from !== '') {
1079
+ writer.uint32(10).string(message.from);
1080
+ }
1081
+ if (!message.messageSize.isZero()) {
1082
+ writer.uint32(16).uint64(message.messageSize);
1083
+ }
1084
+ return writer;
1085
+ },
1086
+ decode(input, length) {
1087
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1088
+ let end = length === undefined ? reader.len : reader.pos + length;
1089
+ const message = createBaseMsgUpdateMaxMessageBodySize();
1090
+ while (reader.pos < end) {
1091
+ const tag = reader.uint32();
1092
+ switch (tag >>> 3) {
1093
+ case 1:
1094
+ if (tag !== 10) {
1095
+ break;
1096
+ }
1097
+ message.from = reader.string();
1098
+ continue;
1099
+ case 2:
1100
+ if (tag !== 16) {
1101
+ break;
1102
+ }
1103
+ message.messageSize = reader.uint64();
1104
+ continue;
1105
+ }
1106
+ if ((tag & 7) === 4 || tag === 0) {
1107
+ break;
1108
+ }
1109
+ reader.skipType(tag & 7);
1110
+ }
1111
+ return message;
1112
+ },
1113
+ fromJSON(object) {
1114
+ return {
1115
+ from: isSet(object.from) ? gt.String(object.from) : '',
1116
+ messageSize: isSet(object.messageSize) ? Long.fromValue(object.messageSize) : Long.UZERO,
1117
+ };
1118
+ },
1119
+ toJSON(message) {
1120
+ const obj = {};
1121
+ if (message.from !== '') {
1122
+ obj.from = message.from;
1123
+ }
1124
+ if (!message.messageSize.isZero()) {
1125
+ obj.messageSize = (message.messageSize || Long.UZERO).toString();
1126
+ }
1127
+ return obj;
1128
+ },
1129
+ create(base) {
1130
+ return MsgUpdateMaxMessageBodySize.fromPartial(base !== null && base !== void 0 ? base : {});
1131
+ },
1132
+ fromPartial(object) {
1133
+ var _a;
1134
+ const message = createBaseMsgUpdateMaxMessageBodySize();
1135
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
1136
+ message.messageSize =
1137
+ object.messageSize !== undefined && object.messageSize !== null
1138
+ ? Long.fromValue(object.messageSize)
1139
+ : Long.UZERO;
1140
+ return message;
1141
+ },
1142
+ };
1143
+ function createBaseMsgUpdateMaxMessageBodySizeResponse() {
1144
+ return {};
1145
+ }
1146
+ export const MsgUpdateMaxMessageBodySizeResponse = {
1147
+ encode(_, writer = _m0.Writer.create()) {
1148
+ return writer;
1149
+ },
1150
+ decode(input, length) {
1151
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1152
+ let end = length === undefined ? reader.len : reader.pos + length;
1153
+ const message = createBaseMsgUpdateMaxMessageBodySizeResponse();
1154
+ while (reader.pos < end) {
1155
+ const tag = reader.uint32();
1156
+ switch (tag >>> 3) {
1157
+ }
1158
+ if ((tag & 7) === 4 || tag === 0) {
1159
+ break;
1160
+ }
1161
+ reader.skipType(tag & 7);
1162
+ }
1163
+ return message;
1164
+ },
1165
+ fromJSON(_) {
1166
+ return {};
1167
+ },
1168
+ toJSON(_) {
1169
+ const obj = {};
1170
+ return obj;
1171
+ },
1172
+ create(base) {
1173
+ return MsgUpdateMaxMessageBodySizeResponse.fromPartial(base !== null && base !== void 0 ? base : {});
1174
+ },
1175
+ fromPartial(_) {
1176
+ const message = createBaseMsgUpdateMaxMessageBodySizeResponse();
1177
+ return message;
1178
+ },
1179
+ };
1180
+ function createBaseMsgSetMaxBurnAmountPerMessage() {
1181
+ return { from: '', localToken: '', amount: '' };
1182
+ }
1183
+ export const MsgSetMaxBurnAmountPerMessage = {
1184
+ encode(message, writer = _m0.Writer.create()) {
1185
+ if (message.from !== '') {
1186
+ writer.uint32(10).string(message.from);
1187
+ }
1188
+ if (message.localToken !== '') {
1189
+ writer.uint32(18).string(message.localToken);
1190
+ }
1191
+ if (message.amount !== '') {
1192
+ writer.uint32(26).string(message.amount);
1193
+ }
1194
+ return writer;
1195
+ },
1196
+ decode(input, length) {
1197
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1198
+ let end = length === undefined ? reader.len : reader.pos + length;
1199
+ const message = createBaseMsgSetMaxBurnAmountPerMessage();
1200
+ while (reader.pos < end) {
1201
+ const tag = reader.uint32();
1202
+ switch (tag >>> 3) {
1203
+ case 1:
1204
+ if (tag !== 10) {
1205
+ break;
1206
+ }
1207
+ message.from = reader.string();
1208
+ continue;
1209
+ case 2:
1210
+ if (tag !== 18) {
1211
+ break;
1212
+ }
1213
+ message.localToken = reader.string();
1214
+ continue;
1215
+ case 3:
1216
+ if (tag !== 26) {
1217
+ break;
1218
+ }
1219
+ message.amount = reader.string();
1220
+ continue;
1221
+ }
1222
+ if ((tag & 7) === 4 || tag === 0) {
1223
+ break;
1224
+ }
1225
+ reader.skipType(tag & 7);
1226
+ }
1227
+ return message;
1228
+ },
1229
+ fromJSON(object) {
1230
+ return {
1231
+ from: isSet(object.from) ? gt.String(object.from) : '',
1232
+ localToken: isSet(object.localToken) ? gt.String(object.localToken) : '',
1233
+ amount: isSet(object.amount) ? gt.String(object.amount) : '',
1234
+ };
1235
+ },
1236
+ toJSON(message) {
1237
+ const obj = {};
1238
+ if (message.from !== '') {
1239
+ obj.from = message.from;
1240
+ }
1241
+ if (message.localToken !== '') {
1242
+ obj.localToken = message.localToken;
1243
+ }
1244
+ if (message.amount !== '') {
1245
+ obj.amount = message.amount;
1246
+ }
1247
+ return obj;
1248
+ },
1249
+ create(base) {
1250
+ return MsgSetMaxBurnAmountPerMessage.fromPartial(base !== null && base !== void 0 ? base : {});
1251
+ },
1252
+ fromPartial(object) {
1253
+ var _a, _b, _c;
1254
+ const message = createBaseMsgSetMaxBurnAmountPerMessage();
1255
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
1256
+ message.localToken = (_b = object.localToken) !== null && _b !== void 0 ? _b : '';
1257
+ message.amount = (_c = object.amount) !== null && _c !== void 0 ? _c : '';
1258
+ return message;
1259
+ },
1260
+ };
1261
+ function createBaseMsgSetMaxBurnAmountPerMessageResponse() {
1262
+ return {};
1263
+ }
1264
+ export const MsgSetMaxBurnAmountPerMessageResponse = {
1265
+ encode(_, writer = _m0.Writer.create()) {
1266
+ return writer;
1267
+ },
1268
+ decode(input, length) {
1269
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1270
+ let end = length === undefined ? reader.len : reader.pos + length;
1271
+ const message = createBaseMsgSetMaxBurnAmountPerMessageResponse();
1272
+ while (reader.pos < end) {
1273
+ const tag = reader.uint32();
1274
+ switch (tag >>> 3) {
1275
+ }
1276
+ if ((tag & 7) === 4 || tag === 0) {
1277
+ break;
1278
+ }
1279
+ reader.skipType(tag & 7);
1280
+ }
1281
+ return message;
1282
+ },
1283
+ fromJSON(_) {
1284
+ return {};
1285
+ },
1286
+ toJSON(_) {
1287
+ const obj = {};
1288
+ return obj;
1289
+ },
1290
+ create(base) {
1291
+ return MsgSetMaxBurnAmountPerMessageResponse.fromPartial(base !== null && base !== void 0 ? base : {});
1292
+ },
1293
+ fromPartial(_) {
1294
+ const message = createBaseMsgSetMaxBurnAmountPerMessageResponse();
1295
+ return message;
1296
+ },
1297
+ };
1298
+ function createBaseMsgDepositForBurn() {
1299
+ return {
1300
+ from: '',
1301
+ amount: '',
1302
+ destinationDomain: 0,
1303
+ mintRecipient: new Uint8Array(0),
1304
+ burnToken: '',
1305
+ };
1306
+ }
1307
+ export const MsgDepositForBurn = {
1308
+ encode(message, writer = _m0.Writer.create()) {
1309
+ if (message.from !== '') {
1310
+ writer.uint32(10).string(message.from);
1311
+ }
1312
+ if (message.amount !== '') {
1313
+ writer.uint32(18).string(message.amount);
1314
+ }
1315
+ if (message.destinationDomain !== 0) {
1316
+ writer.uint32(24).uint32(message.destinationDomain);
1317
+ }
1318
+ if (message.mintRecipient.length !== 0) {
1319
+ writer.uint32(34).bytes(message.mintRecipient);
1320
+ }
1321
+ if (message.burnToken !== '') {
1322
+ writer.uint32(42).string(message.burnToken);
1323
+ }
1324
+ return writer;
1325
+ },
1326
+ decode(input, length) {
1327
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1328
+ let end = length === undefined ? reader.len : reader.pos + length;
1329
+ const message = createBaseMsgDepositForBurn();
1330
+ while (reader.pos < end) {
1331
+ const tag = reader.uint32();
1332
+ switch (tag >>> 3) {
1333
+ case 1:
1334
+ if (tag !== 10) {
1335
+ break;
1336
+ }
1337
+ message.from = reader.string();
1338
+ continue;
1339
+ case 2:
1340
+ if (tag !== 18) {
1341
+ break;
1342
+ }
1343
+ message.amount = reader.string();
1344
+ continue;
1345
+ case 3:
1346
+ if (tag !== 24) {
1347
+ break;
1348
+ }
1349
+ message.destinationDomain = reader.uint32();
1350
+ continue;
1351
+ case 4:
1352
+ if (tag !== 34) {
1353
+ break;
1354
+ }
1355
+ message.mintRecipient = reader.bytes();
1356
+ continue;
1357
+ case 5:
1358
+ if (tag !== 42) {
1359
+ break;
1360
+ }
1361
+ message.burnToken = reader.string();
1362
+ continue;
1363
+ }
1364
+ if ((tag & 7) === 4 || tag === 0) {
1365
+ break;
1366
+ }
1367
+ reader.skipType(tag & 7);
1368
+ }
1369
+ return message;
1370
+ },
1371
+ fromJSON(object) {
1372
+ return {
1373
+ from: isSet(object.from) ? gt.String(object.from) : '',
1374
+ amount: isSet(object.amount) ? gt.String(object.amount) : '',
1375
+ destinationDomain: isSet(object.destinationDomain) ? gt.Number(object.destinationDomain) : 0,
1376
+ mintRecipient: isSet(object.mintRecipient)
1377
+ ? bytesFromBase64(object.mintRecipient)
1378
+ : new Uint8Array(0),
1379
+ burnToken: isSet(object.burnToken) ? gt.String(object.burnToken) : '',
1380
+ };
1381
+ },
1382
+ toJSON(message) {
1383
+ const obj = {};
1384
+ if (message.from !== '') {
1385
+ obj.from = message.from;
1386
+ }
1387
+ if (message.amount !== '') {
1388
+ obj.amount = message.amount;
1389
+ }
1390
+ if (message.destinationDomain !== 0) {
1391
+ obj.destinationDomain = Math.round(message.destinationDomain);
1392
+ }
1393
+ if (message.mintRecipient.length !== 0) {
1394
+ obj.mintRecipient = base64FromBytes(message.mintRecipient);
1395
+ }
1396
+ if (message.burnToken !== '') {
1397
+ obj.burnToken = message.burnToken;
1398
+ }
1399
+ return obj;
1400
+ },
1401
+ create(base) {
1402
+ return MsgDepositForBurn.fromPartial(base !== null && base !== void 0 ? base : {});
1403
+ },
1404
+ fromPartial(object) {
1405
+ var _a, _b, _c, _d, _e;
1406
+ const message = createBaseMsgDepositForBurn();
1407
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
1408
+ message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : '';
1409
+ message.destinationDomain = (_c = object.destinationDomain) !== null && _c !== void 0 ? _c : 0;
1410
+ message.mintRecipient = (_d = object.mintRecipient) !== null && _d !== void 0 ? _d : new Uint8Array(0);
1411
+ message.burnToken = (_e = object.burnToken) !== null && _e !== void 0 ? _e : '';
1412
+ return message;
1413
+ },
1414
+ };
1415
+ function createBaseMsgDepositForBurnResponse() {
1416
+ return { nonce: Long.UZERO };
1417
+ }
1418
+ export const MsgDepositForBurnResponse = {
1419
+ encode(message, writer = _m0.Writer.create()) {
1420
+ if (!message.nonce.isZero()) {
1421
+ writer.uint32(8).uint64(message.nonce);
1422
+ }
1423
+ return writer;
1424
+ },
1425
+ decode(input, length) {
1426
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1427
+ let end = length === undefined ? reader.len : reader.pos + length;
1428
+ const message = createBaseMsgDepositForBurnResponse();
1429
+ while (reader.pos < end) {
1430
+ const tag = reader.uint32();
1431
+ switch (tag >>> 3) {
1432
+ case 1:
1433
+ if (tag !== 8) {
1434
+ break;
1435
+ }
1436
+ message.nonce = reader.uint64();
1437
+ continue;
1438
+ }
1439
+ if ((tag & 7) === 4 || tag === 0) {
1440
+ break;
1441
+ }
1442
+ reader.skipType(tag & 7);
1443
+ }
1444
+ return message;
1445
+ },
1446
+ fromJSON(object) {
1447
+ return { nonce: isSet(object.nonce) ? Long.fromValue(object.nonce) : Long.UZERO };
1448
+ },
1449
+ toJSON(message) {
1450
+ const obj = {};
1451
+ if (!message.nonce.isZero()) {
1452
+ obj.nonce = (message.nonce || Long.UZERO).toString();
1453
+ }
1454
+ return obj;
1455
+ },
1456
+ create(base) {
1457
+ return MsgDepositForBurnResponse.fromPartial(base !== null && base !== void 0 ? base : {});
1458
+ },
1459
+ fromPartial(object) {
1460
+ const message = createBaseMsgDepositForBurnResponse();
1461
+ message.nonce =
1462
+ object.nonce !== undefined && object.nonce !== null
1463
+ ? Long.fromValue(object.nonce)
1464
+ : Long.UZERO;
1465
+ return message;
1466
+ },
1467
+ };
1468
+ function createBaseMsgDepositForBurnWithCaller() {
1469
+ return {
1470
+ from: '',
1471
+ amount: '',
1472
+ destinationDomain: 0,
1473
+ mintRecipient: new Uint8Array(0),
1474
+ burnToken: '',
1475
+ destinationCaller: new Uint8Array(0),
1476
+ };
1477
+ }
1478
+ export const MsgDepositForBurnWithCaller = {
1479
+ encode(message, writer = _m0.Writer.create()) {
1480
+ if (message.from !== '') {
1481
+ writer.uint32(10).string(message.from);
1482
+ }
1483
+ if (message.amount !== '') {
1484
+ writer.uint32(18).string(message.amount);
1485
+ }
1486
+ if (message.destinationDomain !== 0) {
1487
+ writer.uint32(24).uint32(message.destinationDomain);
1488
+ }
1489
+ if (message.mintRecipient.length !== 0) {
1490
+ writer.uint32(34).bytes(message.mintRecipient);
1491
+ }
1492
+ if (message.burnToken !== '') {
1493
+ writer.uint32(42).string(message.burnToken);
1494
+ }
1495
+ if (message.destinationCaller.length !== 0) {
1496
+ writer.uint32(50).bytes(message.destinationCaller);
1497
+ }
1498
+ return writer;
1499
+ },
1500
+ decode(input, length) {
1501
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1502
+ let end = length === undefined ? reader.len : reader.pos + length;
1503
+ const message = createBaseMsgDepositForBurnWithCaller();
1504
+ while (reader.pos < end) {
1505
+ const tag = reader.uint32();
1506
+ switch (tag >>> 3) {
1507
+ case 1:
1508
+ if (tag !== 10) {
1509
+ break;
1510
+ }
1511
+ message.from = reader.string();
1512
+ continue;
1513
+ case 2:
1514
+ if (tag !== 18) {
1515
+ break;
1516
+ }
1517
+ message.amount = reader.string();
1518
+ continue;
1519
+ case 3:
1520
+ if (tag !== 24) {
1521
+ break;
1522
+ }
1523
+ message.destinationDomain = reader.uint32();
1524
+ continue;
1525
+ case 4:
1526
+ if (tag !== 34) {
1527
+ break;
1528
+ }
1529
+ message.mintRecipient = reader.bytes();
1530
+ continue;
1531
+ case 5:
1532
+ if (tag !== 42) {
1533
+ break;
1534
+ }
1535
+ message.burnToken = reader.string();
1536
+ continue;
1537
+ case 6:
1538
+ if (tag !== 50) {
1539
+ break;
1540
+ }
1541
+ message.destinationCaller = reader.bytes();
1542
+ continue;
1543
+ }
1544
+ if ((tag & 7) === 4 || tag === 0) {
1545
+ break;
1546
+ }
1547
+ reader.skipType(tag & 7);
1548
+ }
1549
+ return message;
1550
+ },
1551
+ fromJSON(object) {
1552
+ return {
1553
+ from: isSet(object.from) ? gt.String(object.from) : '',
1554
+ amount: isSet(object.amount) ? gt.String(object.amount) : '',
1555
+ destinationDomain: isSet(object.destinationDomain) ? gt.Number(object.destinationDomain) : 0,
1556
+ mintRecipient: isSet(object.mintRecipient)
1557
+ ? bytesFromBase64(object.mintRecipient)
1558
+ : new Uint8Array(0),
1559
+ burnToken: isSet(object.burnToken) ? gt.String(object.burnToken) : '',
1560
+ destinationCaller: isSet(object.destinationCaller)
1561
+ ? bytesFromBase64(object.destinationCaller)
1562
+ : new Uint8Array(0),
1563
+ };
1564
+ },
1565
+ toJSON(message) {
1566
+ const obj = {};
1567
+ if (message.from !== '') {
1568
+ obj.from = message.from;
1569
+ }
1570
+ if (message.amount !== '') {
1571
+ obj.amount = message.amount;
1572
+ }
1573
+ if (message.destinationDomain !== 0) {
1574
+ obj.destinationDomain = Math.round(message.destinationDomain);
1575
+ }
1576
+ if (message.mintRecipient.length !== 0) {
1577
+ obj.mintRecipient = base64FromBytes(message.mintRecipient);
1578
+ }
1579
+ if (message.burnToken !== '') {
1580
+ obj.burnToken = message.burnToken;
1581
+ }
1582
+ if (message.destinationCaller.length !== 0) {
1583
+ obj.destinationCaller = base64FromBytes(message.destinationCaller);
1584
+ }
1585
+ return obj;
1586
+ },
1587
+ create(base) {
1588
+ return MsgDepositForBurnWithCaller.fromPartial(base !== null && base !== void 0 ? base : {});
1589
+ },
1590
+ fromPartial(object) {
1591
+ var _a, _b, _c, _d, _e, _f;
1592
+ const message = createBaseMsgDepositForBurnWithCaller();
1593
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
1594
+ message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : '';
1595
+ message.destinationDomain = (_c = object.destinationDomain) !== null && _c !== void 0 ? _c : 0;
1596
+ message.mintRecipient = (_d = object.mintRecipient) !== null && _d !== void 0 ? _d : new Uint8Array(0);
1597
+ message.burnToken = (_e = object.burnToken) !== null && _e !== void 0 ? _e : '';
1598
+ message.destinationCaller = (_f = object.destinationCaller) !== null && _f !== void 0 ? _f : new Uint8Array(0);
1599
+ return message;
1600
+ },
1601
+ };
1602
+ function createBaseMsgDepositForBurnWithCallerResponse() {
1603
+ return { nonce: Long.UZERO };
1604
+ }
1605
+ export const MsgDepositForBurnWithCallerResponse = {
1606
+ encode(message, writer = _m0.Writer.create()) {
1607
+ if (!message.nonce.isZero()) {
1608
+ writer.uint32(8).uint64(message.nonce);
1609
+ }
1610
+ return writer;
1611
+ },
1612
+ decode(input, length) {
1613
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1614
+ let end = length === undefined ? reader.len : reader.pos + length;
1615
+ const message = createBaseMsgDepositForBurnWithCallerResponse();
1616
+ while (reader.pos < end) {
1617
+ const tag = reader.uint32();
1618
+ switch (tag >>> 3) {
1619
+ case 1:
1620
+ if (tag !== 8) {
1621
+ break;
1622
+ }
1623
+ message.nonce = reader.uint64();
1624
+ continue;
1625
+ }
1626
+ if ((tag & 7) === 4 || tag === 0) {
1627
+ break;
1628
+ }
1629
+ reader.skipType(tag & 7);
1630
+ }
1631
+ return message;
1632
+ },
1633
+ fromJSON(object) {
1634
+ return { nonce: isSet(object.nonce) ? Long.fromValue(object.nonce) : Long.UZERO };
1635
+ },
1636
+ toJSON(message) {
1637
+ const obj = {};
1638
+ if (!message.nonce.isZero()) {
1639
+ obj.nonce = (message.nonce || Long.UZERO).toString();
1640
+ }
1641
+ return obj;
1642
+ },
1643
+ create(base) {
1644
+ return MsgDepositForBurnWithCallerResponse.fromPartial(base !== null && base !== void 0 ? base : {});
1645
+ },
1646
+ fromPartial(object) {
1647
+ const message = createBaseMsgDepositForBurnWithCallerResponse();
1648
+ message.nonce =
1649
+ object.nonce !== undefined && object.nonce !== null
1650
+ ? Long.fromValue(object.nonce)
1651
+ : Long.UZERO;
1652
+ return message;
1653
+ },
1654
+ };
1655
+ function createBaseMsgReplaceDepositForBurn() {
1656
+ return {
1657
+ from: '',
1658
+ originalMessage: new Uint8Array(0),
1659
+ originalAttestation: new Uint8Array(0),
1660
+ newDestinationCaller: new Uint8Array(0),
1661
+ newMintRecipient: new Uint8Array(0),
1662
+ };
1663
+ }
1664
+ export const MsgReplaceDepositForBurn = {
1665
+ encode(message, writer = _m0.Writer.create()) {
1666
+ if (message.from !== '') {
1667
+ writer.uint32(10).string(message.from);
1668
+ }
1669
+ if (message.originalMessage.length !== 0) {
1670
+ writer.uint32(18).bytes(message.originalMessage);
1671
+ }
1672
+ if (message.originalAttestation.length !== 0) {
1673
+ writer.uint32(26).bytes(message.originalAttestation);
1674
+ }
1675
+ if (message.newDestinationCaller.length !== 0) {
1676
+ writer.uint32(34).bytes(message.newDestinationCaller);
1677
+ }
1678
+ if (message.newMintRecipient.length !== 0) {
1679
+ writer.uint32(42).bytes(message.newMintRecipient);
1680
+ }
1681
+ return writer;
1682
+ },
1683
+ decode(input, length) {
1684
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1685
+ let end = length === undefined ? reader.len : reader.pos + length;
1686
+ const message = createBaseMsgReplaceDepositForBurn();
1687
+ while (reader.pos < end) {
1688
+ const tag = reader.uint32();
1689
+ switch (tag >>> 3) {
1690
+ case 1:
1691
+ if (tag !== 10) {
1692
+ break;
1693
+ }
1694
+ message.from = reader.string();
1695
+ continue;
1696
+ case 2:
1697
+ if (tag !== 18) {
1698
+ break;
1699
+ }
1700
+ message.originalMessage = reader.bytes();
1701
+ continue;
1702
+ case 3:
1703
+ if (tag !== 26) {
1704
+ break;
1705
+ }
1706
+ message.originalAttestation = reader.bytes();
1707
+ continue;
1708
+ case 4:
1709
+ if (tag !== 34) {
1710
+ break;
1711
+ }
1712
+ message.newDestinationCaller = reader.bytes();
1713
+ continue;
1714
+ case 5:
1715
+ if (tag !== 42) {
1716
+ break;
1717
+ }
1718
+ message.newMintRecipient = reader.bytes();
1719
+ continue;
1720
+ }
1721
+ if ((tag & 7) === 4 || tag === 0) {
1722
+ break;
1723
+ }
1724
+ reader.skipType(tag & 7);
1725
+ }
1726
+ return message;
1727
+ },
1728
+ fromJSON(object) {
1729
+ return {
1730
+ from: isSet(object.from) ? gt.String(object.from) : '',
1731
+ originalMessage: isSet(object.originalMessage)
1732
+ ? bytesFromBase64(object.originalMessage)
1733
+ : new Uint8Array(0),
1734
+ originalAttestation: isSet(object.originalAttestation)
1735
+ ? bytesFromBase64(object.originalAttestation)
1736
+ : new Uint8Array(0),
1737
+ newDestinationCaller: isSet(object.newDestinationCaller)
1738
+ ? bytesFromBase64(object.newDestinationCaller)
1739
+ : new Uint8Array(0),
1740
+ newMintRecipient: isSet(object.newMintRecipient)
1741
+ ? bytesFromBase64(object.newMintRecipient)
1742
+ : new Uint8Array(0),
1743
+ };
1744
+ },
1745
+ toJSON(message) {
1746
+ const obj = {};
1747
+ if (message.from !== '') {
1748
+ obj.from = message.from;
1749
+ }
1750
+ if (message.originalMessage.length !== 0) {
1751
+ obj.originalMessage = base64FromBytes(message.originalMessage);
1752
+ }
1753
+ if (message.originalAttestation.length !== 0) {
1754
+ obj.originalAttestation = base64FromBytes(message.originalAttestation);
1755
+ }
1756
+ if (message.newDestinationCaller.length !== 0) {
1757
+ obj.newDestinationCaller = base64FromBytes(message.newDestinationCaller);
1758
+ }
1759
+ if (message.newMintRecipient.length !== 0) {
1760
+ obj.newMintRecipient = base64FromBytes(message.newMintRecipient);
1761
+ }
1762
+ return obj;
1763
+ },
1764
+ create(base) {
1765
+ return MsgReplaceDepositForBurn.fromPartial(base !== null && base !== void 0 ? base : {});
1766
+ },
1767
+ fromPartial(object) {
1768
+ var _a, _b, _c, _d, _e;
1769
+ const message = createBaseMsgReplaceDepositForBurn();
1770
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
1771
+ message.originalMessage = (_b = object.originalMessage) !== null && _b !== void 0 ? _b : new Uint8Array(0);
1772
+ message.originalAttestation = (_c = object.originalAttestation) !== null && _c !== void 0 ? _c : new Uint8Array(0);
1773
+ message.newDestinationCaller = (_d = object.newDestinationCaller) !== null && _d !== void 0 ? _d : new Uint8Array(0);
1774
+ message.newMintRecipient = (_e = object.newMintRecipient) !== null && _e !== void 0 ? _e : new Uint8Array(0);
1775
+ return message;
1776
+ },
1777
+ };
1778
+ function createBaseMsgReplaceDepositForBurnResponse() {
1779
+ return {};
1780
+ }
1781
+ export const MsgReplaceDepositForBurnResponse = {
1782
+ encode(_, writer = _m0.Writer.create()) {
1783
+ return writer;
1784
+ },
1785
+ decode(input, length) {
1786
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1787
+ let end = length === undefined ? reader.len : reader.pos + length;
1788
+ const message = createBaseMsgReplaceDepositForBurnResponse();
1789
+ while (reader.pos < end) {
1790
+ const tag = reader.uint32();
1791
+ switch (tag >>> 3) {
1792
+ }
1793
+ if ((tag & 7) === 4 || tag === 0) {
1794
+ break;
1795
+ }
1796
+ reader.skipType(tag & 7);
1797
+ }
1798
+ return message;
1799
+ },
1800
+ fromJSON(_) {
1801
+ return {};
1802
+ },
1803
+ toJSON(_) {
1804
+ const obj = {};
1805
+ return obj;
1806
+ },
1807
+ create(base) {
1808
+ return MsgReplaceDepositForBurnResponse.fromPartial(base !== null && base !== void 0 ? base : {});
1809
+ },
1810
+ fromPartial(_) {
1811
+ const message = createBaseMsgReplaceDepositForBurnResponse();
1812
+ return message;
1813
+ },
1814
+ };
1815
+ function createBaseMsgReceiveMessage() {
1816
+ return { from: '', message: new Uint8Array(0), attestation: new Uint8Array(0) };
1817
+ }
1818
+ export const MsgReceiveMessage = {
1819
+ encode(message, writer = _m0.Writer.create()) {
1820
+ if (message.from !== '') {
1821
+ writer.uint32(10).string(message.from);
1822
+ }
1823
+ if (message.message.length !== 0) {
1824
+ writer.uint32(18).bytes(message.message);
1825
+ }
1826
+ if (message.attestation.length !== 0) {
1827
+ writer.uint32(26).bytes(message.attestation);
1828
+ }
1829
+ return writer;
1830
+ },
1831
+ decode(input, length) {
1832
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1833
+ let end = length === undefined ? reader.len : reader.pos + length;
1834
+ const message = createBaseMsgReceiveMessage();
1835
+ while (reader.pos < end) {
1836
+ const tag = reader.uint32();
1837
+ switch (tag >>> 3) {
1838
+ case 1:
1839
+ if (tag !== 10) {
1840
+ break;
1841
+ }
1842
+ message.from = reader.string();
1843
+ continue;
1844
+ case 2:
1845
+ if (tag !== 18) {
1846
+ break;
1847
+ }
1848
+ message.message = reader.bytes();
1849
+ continue;
1850
+ case 3:
1851
+ if (tag !== 26) {
1852
+ break;
1853
+ }
1854
+ message.attestation = reader.bytes();
1855
+ continue;
1856
+ }
1857
+ if ((tag & 7) === 4 || tag === 0) {
1858
+ break;
1859
+ }
1860
+ reader.skipType(tag & 7);
1861
+ }
1862
+ return message;
1863
+ },
1864
+ fromJSON(object) {
1865
+ return {
1866
+ from: isSet(object.from) ? gt.String(object.from) : '',
1867
+ message: isSet(object.message) ? bytesFromBase64(object.message) : new Uint8Array(0),
1868
+ attestation: isSet(object.attestation)
1869
+ ? bytesFromBase64(object.attestation)
1870
+ : new Uint8Array(0),
1871
+ };
1872
+ },
1873
+ toJSON(message) {
1874
+ const obj = {};
1875
+ if (message.from !== '') {
1876
+ obj.from = message.from;
1877
+ }
1878
+ if (message.message.length !== 0) {
1879
+ obj.message = base64FromBytes(message.message);
1880
+ }
1881
+ if (message.attestation.length !== 0) {
1882
+ obj.attestation = base64FromBytes(message.attestation);
1883
+ }
1884
+ return obj;
1885
+ },
1886
+ create(base) {
1887
+ return MsgReceiveMessage.fromPartial(base !== null && base !== void 0 ? base : {});
1888
+ },
1889
+ fromPartial(object) {
1890
+ var _a, _b, _c;
1891
+ const message = createBaseMsgReceiveMessage();
1892
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
1893
+ message.message = (_b = object.message) !== null && _b !== void 0 ? _b : new Uint8Array(0);
1894
+ message.attestation = (_c = object.attestation) !== null && _c !== void 0 ? _c : new Uint8Array(0);
1895
+ return message;
1896
+ },
1897
+ };
1898
+ function createBaseMsgReceiveMessageResponse() {
1899
+ return { success: false };
1900
+ }
1901
+ export const MsgReceiveMessageResponse = {
1902
+ encode(message, writer = _m0.Writer.create()) {
1903
+ if (message.success === true) {
1904
+ writer.uint32(8).bool(message.success);
1905
+ }
1906
+ return writer;
1907
+ },
1908
+ decode(input, length) {
1909
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1910
+ let end = length === undefined ? reader.len : reader.pos + length;
1911
+ const message = createBaseMsgReceiveMessageResponse();
1912
+ while (reader.pos < end) {
1913
+ const tag = reader.uint32();
1914
+ switch (tag >>> 3) {
1915
+ case 1:
1916
+ if (tag !== 8) {
1917
+ break;
1918
+ }
1919
+ message.success = reader.bool();
1920
+ continue;
1921
+ }
1922
+ if ((tag & 7) === 4 || tag === 0) {
1923
+ break;
1924
+ }
1925
+ reader.skipType(tag & 7);
1926
+ }
1927
+ return message;
1928
+ },
1929
+ fromJSON(object) {
1930
+ return { success: isSet(object.success) ? gt.Boolean(object.success) : false };
1931
+ },
1932
+ toJSON(message) {
1933
+ const obj = {};
1934
+ if (message.success === true) {
1935
+ obj.success = message.success;
1936
+ }
1937
+ return obj;
1938
+ },
1939
+ create(base) {
1940
+ return MsgReceiveMessageResponse.fromPartial(base !== null && base !== void 0 ? base : {});
1941
+ },
1942
+ fromPartial(object) {
1943
+ var _a;
1944
+ const message = createBaseMsgReceiveMessageResponse();
1945
+ message.success = (_a = object.success) !== null && _a !== void 0 ? _a : false;
1946
+ return message;
1947
+ },
1948
+ };
1949
+ function createBaseMsgSendMessage() {
1950
+ return {
1951
+ from: '',
1952
+ destinationDomain: 0,
1953
+ recipient: new Uint8Array(0),
1954
+ messageBody: new Uint8Array(0),
1955
+ };
1956
+ }
1957
+ export const MsgSendMessage = {
1958
+ encode(message, writer = _m0.Writer.create()) {
1959
+ if (message.from !== '') {
1960
+ writer.uint32(10).string(message.from);
1961
+ }
1962
+ if (message.destinationDomain !== 0) {
1963
+ writer.uint32(16).uint32(message.destinationDomain);
1964
+ }
1965
+ if (message.recipient.length !== 0) {
1966
+ writer.uint32(26).bytes(message.recipient);
1967
+ }
1968
+ if (message.messageBody.length !== 0) {
1969
+ writer.uint32(34).bytes(message.messageBody);
1970
+ }
1971
+ return writer;
1972
+ },
1973
+ decode(input, length) {
1974
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1975
+ let end = length === undefined ? reader.len : reader.pos + length;
1976
+ const message = createBaseMsgSendMessage();
1977
+ while (reader.pos < end) {
1978
+ const tag = reader.uint32();
1979
+ switch (tag >>> 3) {
1980
+ case 1:
1981
+ if (tag !== 10) {
1982
+ break;
1983
+ }
1984
+ message.from = reader.string();
1985
+ continue;
1986
+ case 2:
1987
+ if (tag !== 16) {
1988
+ break;
1989
+ }
1990
+ message.destinationDomain = reader.uint32();
1991
+ continue;
1992
+ case 3:
1993
+ if (tag !== 26) {
1994
+ break;
1995
+ }
1996
+ message.recipient = reader.bytes();
1997
+ continue;
1998
+ case 4:
1999
+ if (tag !== 34) {
2000
+ break;
2001
+ }
2002
+ message.messageBody = reader.bytes();
2003
+ continue;
2004
+ }
2005
+ if ((tag & 7) === 4 || tag === 0) {
2006
+ break;
2007
+ }
2008
+ reader.skipType(tag & 7);
2009
+ }
2010
+ return message;
2011
+ },
2012
+ fromJSON(object) {
2013
+ return {
2014
+ from: isSet(object.from) ? gt.String(object.from) : '',
2015
+ destinationDomain: isSet(object.destinationDomain) ? gt.Number(object.destinationDomain) : 0,
2016
+ recipient: isSet(object.recipient) ? bytesFromBase64(object.recipient) : new Uint8Array(0),
2017
+ messageBody: isSet(object.messageBody)
2018
+ ? bytesFromBase64(object.messageBody)
2019
+ : new Uint8Array(0),
2020
+ };
2021
+ },
2022
+ toJSON(message) {
2023
+ const obj = {};
2024
+ if (message.from !== '') {
2025
+ obj.from = message.from;
2026
+ }
2027
+ if (message.destinationDomain !== 0) {
2028
+ obj.destinationDomain = Math.round(message.destinationDomain);
2029
+ }
2030
+ if (message.recipient.length !== 0) {
2031
+ obj.recipient = base64FromBytes(message.recipient);
2032
+ }
2033
+ if (message.messageBody.length !== 0) {
2034
+ obj.messageBody = base64FromBytes(message.messageBody);
2035
+ }
2036
+ return obj;
2037
+ },
2038
+ create(base) {
2039
+ return MsgSendMessage.fromPartial(base !== null && base !== void 0 ? base : {});
2040
+ },
2041
+ fromPartial(object) {
2042
+ var _a, _b, _c, _d;
2043
+ const message = createBaseMsgSendMessage();
2044
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
2045
+ message.destinationDomain = (_b = object.destinationDomain) !== null && _b !== void 0 ? _b : 0;
2046
+ message.recipient = (_c = object.recipient) !== null && _c !== void 0 ? _c : new Uint8Array(0);
2047
+ message.messageBody = (_d = object.messageBody) !== null && _d !== void 0 ? _d : new Uint8Array(0);
2048
+ return message;
2049
+ },
2050
+ };
2051
+ function createBaseMsgSendMessageResponse() {
2052
+ return { nonce: Long.UZERO };
2053
+ }
2054
+ export const MsgSendMessageResponse = {
2055
+ encode(message, writer = _m0.Writer.create()) {
2056
+ if (!message.nonce.isZero()) {
2057
+ writer.uint32(8).uint64(message.nonce);
2058
+ }
2059
+ return writer;
2060
+ },
2061
+ decode(input, length) {
2062
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2063
+ let end = length === undefined ? reader.len : reader.pos + length;
2064
+ const message = createBaseMsgSendMessageResponse();
2065
+ while (reader.pos < end) {
2066
+ const tag = reader.uint32();
2067
+ switch (tag >>> 3) {
2068
+ case 1:
2069
+ if (tag !== 8) {
2070
+ break;
2071
+ }
2072
+ message.nonce = reader.uint64();
2073
+ continue;
2074
+ }
2075
+ if ((tag & 7) === 4 || tag === 0) {
2076
+ break;
2077
+ }
2078
+ reader.skipType(tag & 7);
2079
+ }
2080
+ return message;
2081
+ },
2082
+ fromJSON(object) {
2083
+ return { nonce: isSet(object.nonce) ? Long.fromValue(object.nonce) : Long.UZERO };
2084
+ },
2085
+ toJSON(message) {
2086
+ const obj = {};
2087
+ if (!message.nonce.isZero()) {
2088
+ obj.nonce = (message.nonce || Long.UZERO).toString();
2089
+ }
2090
+ return obj;
2091
+ },
2092
+ create(base) {
2093
+ return MsgSendMessageResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2094
+ },
2095
+ fromPartial(object) {
2096
+ const message = createBaseMsgSendMessageResponse();
2097
+ message.nonce =
2098
+ object.nonce !== undefined && object.nonce !== null
2099
+ ? Long.fromValue(object.nonce)
2100
+ : Long.UZERO;
2101
+ return message;
2102
+ },
2103
+ };
2104
+ function createBaseMsgSendMessageWithCaller() {
2105
+ return {
2106
+ from: '',
2107
+ destinationDomain: 0,
2108
+ recipient: new Uint8Array(0),
2109
+ messageBody: new Uint8Array(0),
2110
+ destinationCaller: new Uint8Array(0),
2111
+ };
2112
+ }
2113
+ export const MsgSendMessageWithCaller = {
2114
+ encode(message, writer = _m0.Writer.create()) {
2115
+ if (message.from !== '') {
2116
+ writer.uint32(10).string(message.from);
2117
+ }
2118
+ if (message.destinationDomain !== 0) {
2119
+ writer.uint32(16).uint32(message.destinationDomain);
2120
+ }
2121
+ if (message.recipient.length !== 0) {
2122
+ writer.uint32(26).bytes(message.recipient);
2123
+ }
2124
+ if (message.messageBody.length !== 0) {
2125
+ writer.uint32(34).bytes(message.messageBody);
2126
+ }
2127
+ if (message.destinationCaller.length !== 0) {
2128
+ writer.uint32(42).bytes(message.destinationCaller);
2129
+ }
2130
+ return writer;
2131
+ },
2132
+ decode(input, length) {
2133
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2134
+ let end = length === undefined ? reader.len : reader.pos + length;
2135
+ const message = createBaseMsgSendMessageWithCaller();
2136
+ while (reader.pos < end) {
2137
+ const tag = reader.uint32();
2138
+ switch (tag >>> 3) {
2139
+ case 1:
2140
+ if (tag !== 10) {
2141
+ break;
2142
+ }
2143
+ message.from = reader.string();
2144
+ continue;
2145
+ case 2:
2146
+ if (tag !== 16) {
2147
+ break;
2148
+ }
2149
+ message.destinationDomain = reader.uint32();
2150
+ continue;
2151
+ case 3:
2152
+ if (tag !== 26) {
2153
+ break;
2154
+ }
2155
+ message.recipient = reader.bytes();
2156
+ continue;
2157
+ case 4:
2158
+ if (tag !== 34) {
2159
+ break;
2160
+ }
2161
+ message.messageBody = reader.bytes();
2162
+ continue;
2163
+ case 5:
2164
+ if (tag !== 42) {
2165
+ break;
2166
+ }
2167
+ message.destinationCaller = reader.bytes();
2168
+ continue;
2169
+ }
2170
+ if ((tag & 7) === 4 || tag === 0) {
2171
+ break;
2172
+ }
2173
+ reader.skipType(tag & 7);
2174
+ }
2175
+ return message;
2176
+ },
2177
+ fromJSON(object) {
2178
+ return {
2179
+ from: isSet(object.from) ? gt.String(object.from) : '',
2180
+ destinationDomain: isSet(object.destinationDomain) ? gt.Number(object.destinationDomain) : 0,
2181
+ recipient: isSet(object.recipient) ? bytesFromBase64(object.recipient) : new Uint8Array(0),
2182
+ messageBody: isSet(object.messageBody)
2183
+ ? bytesFromBase64(object.messageBody)
2184
+ : new Uint8Array(0),
2185
+ destinationCaller: isSet(object.destinationCaller)
2186
+ ? bytesFromBase64(object.destinationCaller)
2187
+ : new Uint8Array(0),
2188
+ };
2189
+ },
2190
+ toJSON(message) {
2191
+ const obj = {};
2192
+ if (message.from !== '') {
2193
+ obj.from = message.from;
2194
+ }
2195
+ if (message.destinationDomain !== 0) {
2196
+ obj.destinationDomain = Math.round(message.destinationDomain);
2197
+ }
2198
+ if (message.recipient.length !== 0) {
2199
+ obj.recipient = base64FromBytes(message.recipient);
2200
+ }
2201
+ if (message.messageBody.length !== 0) {
2202
+ obj.messageBody = base64FromBytes(message.messageBody);
2203
+ }
2204
+ if (message.destinationCaller.length !== 0) {
2205
+ obj.destinationCaller = base64FromBytes(message.destinationCaller);
2206
+ }
2207
+ return obj;
2208
+ },
2209
+ create(base) {
2210
+ return MsgSendMessageWithCaller.fromPartial(base !== null && base !== void 0 ? base : {});
2211
+ },
2212
+ fromPartial(object) {
2213
+ var _a, _b, _c, _d, _e;
2214
+ const message = createBaseMsgSendMessageWithCaller();
2215
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
2216
+ message.destinationDomain = (_b = object.destinationDomain) !== null && _b !== void 0 ? _b : 0;
2217
+ message.recipient = (_c = object.recipient) !== null && _c !== void 0 ? _c : new Uint8Array(0);
2218
+ message.messageBody = (_d = object.messageBody) !== null && _d !== void 0 ? _d : new Uint8Array(0);
2219
+ message.destinationCaller = (_e = object.destinationCaller) !== null && _e !== void 0 ? _e : new Uint8Array(0);
2220
+ return message;
2221
+ },
2222
+ };
2223
+ function createBaseMsgSendMessageWithCallerResponse() {
2224
+ return { nonce: Long.UZERO };
2225
+ }
2226
+ export const MsgSendMessageWithCallerResponse = {
2227
+ encode(message, writer = _m0.Writer.create()) {
2228
+ if (!message.nonce.isZero()) {
2229
+ writer.uint32(8).uint64(message.nonce);
2230
+ }
2231
+ return writer;
2232
+ },
2233
+ decode(input, length) {
2234
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2235
+ let end = length === undefined ? reader.len : reader.pos + length;
2236
+ const message = createBaseMsgSendMessageWithCallerResponse();
2237
+ while (reader.pos < end) {
2238
+ const tag = reader.uint32();
2239
+ switch (tag >>> 3) {
2240
+ case 1:
2241
+ if (tag !== 8) {
2242
+ break;
2243
+ }
2244
+ message.nonce = reader.uint64();
2245
+ continue;
2246
+ }
2247
+ if ((tag & 7) === 4 || tag === 0) {
2248
+ break;
2249
+ }
2250
+ reader.skipType(tag & 7);
2251
+ }
2252
+ return message;
2253
+ },
2254
+ fromJSON(object) {
2255
+ return { nonce: isSet(object.nonce) ? Long.fromValue(object.nonce) : Long.UZERO };
2256
+ },
2257
+ toJSON(message) {
2258
+ const obj = {};
2259
+ if (!message.nonce.isZero()) {
2260
+ obj.nonce = (message.nonce || Long.UZERO).toString();
2261
+ }
2262
+ return obj;
2263
+ },
2264
+ create(base) {
2265
+ return MsgSendMessageWithCallerResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2266
+ },
2267
+ fromPartial(object) {
2268
+ const message = createBaseMsgSendMessageWithCallerResponse();
2269
+ message.nonce =
2270
+ object.nonce !== undefined && object.nonce !== null
2271
+ ? Long.fromValue(object.nonce)
2272
+ : Long.UZERO;
2273
+ return message;
2274
+ },
2275
+ };
2276
+ function createBaseMsgReplaceMessage() {
2277
+ return {
2278
+ from: '',
2279
+ originalMessage: new Uint8Array(0),
2280
+ originalAttestation: new Uint8Array(0),
2281
+ newMessageBody: new Uint8Array(0),
2282
+ newDestinationCaller: new Uint8Array(0),
2283
+ };
2284
+ }
2285
+ export const MsgReplaceMessage = {
2286
+ encode(message, writer = _m0.Writer.create()) {
2287
+ if (message.from !== '') {
2288
+ writer.uint32(10).string(message.from);
2289
+ }
2290
+ if (message.originalMessage.length !== 0) {
2291
+ writer.uint32(18).bytes(message.originalMessage);
2292
+ }
2293
+ if (message.originalAttestation.length !== 0) {
2294
+ writer.uint32(26).bytes(message.originalAttestation);
2295
+ }
2296
+ if (message.newMessageBody.length !== 0) {
2297
+ writer.uint32(34).bytes(message.newMessageBody);
2298
+ }
2299
+ if (message.newDestinationCaller.length !== 0) {
2300
+ writer.uint32(42).bytes(message.newDestinationCaller);
2301
+ }
2302
+ return writer;
2303
+ },
2304
+ decode(input, length) {
2305
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2306
+ let end = length === undefined ? reader.len : reader.pos + length;
2307
+ const message = createBaseMsgReplaceMessage();
2308
+ while (reader.pos < end) {
2309
+ const tag = reader.uint32();
2310
+ switch (tag >>> 3) {
2311
+ case 1:
2312
+ if (tag !== 10) {
2313
+ break;
2314
+ }
2315
+ message.from = reader.string();
2316
+ continue;
2317
+ case 2:
2318
+ if (tag !== 18) {
2319
+ break;
2320
+ }
2321
+ message.originalMessage = reader.bytes();
2322
+ continue;
2323
+ case 3:
2324
+ if (tag !== 26) {
2325
+ break;
2326
+ }
2327
+ message.originalAttestation = reader.bytes();
2328
+ continue;
2329
+ case 4:
2330
+ if (tag !== 34) {
2331
+ break;
2332
+ }
2333
+ message.newMessageBody = reader.bytes();
2334
+ continue;
2335
+ case 5:
2336
+ if (tag !== 42) {
2337
+ break;
2338
+ }
2339
+ message.newDestinationCaller = reader.bytes();
2340
+ continue;
2341
+ }
2342
+ if ((tag & 7) === 4 || tag === 0) {
2343
+ break;
2344
+ }
2345
+ reader.skipType(tag & 7);
2346
+ }
2347
+ return message;
2348
+ },
2349
+ fromJSON(object) {
2350
+ return {
2351
+ from: isSet(object.from) ? gt.String(object.from) : '',
2352
+ originalMessage: isSet(object.originalMessage)
2353
+ ? bytesFromBase64(object.originalMessage)
2354
+ : new Uint8Array(0),
2355
+ originalAttestation: isSet(object.originalAttestation)
2356
+ ? bytesFromBase64(object.originalAttestation)
2357
+ : new Uint8Array(0),
2358
+ newMessageBody: isSet(object.newMessageBody)
2359
+ ? bytesFromBase64(object.newMessageBody)
2360
+ : new Uint8Array(0),
2361
+ newDestinationCaller: isSet(object.newDestinationCaller)
2362
+ ? bytesFromBase64(object.newDestinationCaller)
2363
+ : new Uint8Array(0),
2364
+ };
2365
+ },
2366
+ toJSON(message) {
2367
+ const obj = {};
2368
+ if (message.from !== '') {
2369
+ obj.from = message.from;
2370
+ }
2371
+ if (message.originalMessage.length !== 0) {
2372
+ obj.originalMessage = base64FromBytes(message.originalMessage);
2373
+ }
2374
+ if (message.originalAttestation.length !== 0) {
2375
+ obj.originalAttestation = base64FromBytes(message.originalAttestation);
2376
+ }
2377
+ if (message.newMessageBody.length !== 0) {
2378
+ obj.newMessageBody = base64FromBytes(message.newMessageBody);
2379
+ }
2380
+ if (message.newDestinationCaller.length !== 0) {
2381
+ obj.newDestinationCaller = base64FromBytes(message.newDestinationCaller);
2382
+ }
2383
+ return obj;
2384
+ },
2385
+ create(base) {
2386
+ return MsgReplaceMessage.fromPartial(base !== null && base !== void 0 ? base : {});
2387
+ },
2388
+ fromPartial(object) {
2389
+ var _a, _b, _c, _d, _e;
2390
+ const message = createBaseMsgReplaceMessage();
2391
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
2392
+ message.originalMessage = (_b = object.originalMessage) !== null && _b !== void 0 ? _b : new Uint8Array(0);
2393
+ message.originalAttestation = (_c = object.originalAttestation) !== null && _c !== void 0 ? _c : new Uint8Array(0);
2394
+ message.newMessageBody = (_d = object.newMessageBody) !== null && _d !== void 0 ? _d : new Uint8Array(0);
2395
+ message.newDestinationCaller = (_e = object.newDestinationCaller) !== null && _e !== void 0 ? _e : new Uint8Array(0);
2396
+ return message;
2397
+ },
2398
+ };
2399
+ function createBaseMsgReplaceMessageResponse() {
2400
+ return {};
2401
+ }
2402
+ export const MsgReplaceMessageResponse = {
2403
+ encode(_, writer = _m0.Writer.create()) {
2404
+ return writer;
2405
+ },
2406
+ decode(input, length) {
2407
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2408
+ let end = length === undefined ? reader.len : reader.pos + length;
2409
+ const message = createBaseMsgReplaceMessageResponse();
2410
+ while (reader.pos < end) {
2411
+ const tag = reader.uint32();
2412
+ switch (tag >>> 3) {
2413
+ }
2414
+ if ((tag & 7) === 4 || tag === 0) {
2415
+ break;
2416
+ }
2417
+ reader.skipType(tag & 7);
2418
+ }
2419
+ return message;
2420
+ },
2421
+ fromJSON(_) {
2422
+ return {};
2423
+ },
2424
+ toJSON(_) {
2425
+ const obj = {};
2426
+ return obj;
2427
+ },
2428
+ create(base) {
2429
+ return MsgReplaceMessageResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2430
+ },
2431
+ fromPartial(_) {
2432
+ const message = createBaseMsgReplaceMessageResponse();
2433
+ return message;
2434
+ },
2435
+ };
2436
+ function createBaseMsgUpdateSignatureThreshold() {
2437
+ return { from: '', amount: 0 };
2438
+ }
2439
+ export const MsgUpdateSignatureThreshold = {
2440
+ encode(message, writer = _m0.Writer.create()) {
2441
+ if (message.from !== '') {
2442
+ writer.uint32(10).string(message.from);
2443
+ }
2444
+ if (message.amount !== 0) {
2445
+ writer.uint32(16).uint32(message.amount);
2446
+ }
2447
+ return writer;
2448
+ },
2449
+ decode(input, length) {
2450
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2451
+ let end = length === undefined ? reader.len : reader.pos + length;
2452
+ const message = createBaseMsgUpdateSignatureThreshold();
2453
+ while (reader.pos < end) {
2454
+ const tag = reader.uint32();
2455
+ switch (tag >>> 3) {
2456
+ case 1:
2457
+ if (tag !== 10) {
2458
+ break;
2459
+ }
2460
+ message.from = reader.string();
2461
+ continue;
2462
+ case 2:
2463
+ if (tag !== 16) {
2464
+ break;
2465
+ }
2466
+ message.amount = reader.uint32();
2467
+ continue;
2468
+ }
2469
+ if ((tag & 7) === 4 || tag === 0) {
2470
+ break;
2471
+ }
2472
+ reader.skipType(tag & 7);
2473
+ }
2474
+ return message;
2475
+ },
2476
+ fromJSON(object) {
2477
+ return {
2478
+ from: isSet(object.from) ? gt.String(object.from) : '',
2479
+ amount: isSet(object.amount) ? gt.Number(object.amount) : 0,
2480
+ };
2481
+ },
2482
+ toJSON(message) {
2483
+ const obj = {};
2484
+ if (message.from !== '') {
2485
+ obj.from = message.from;
2486
+ }
2487
+ if (message.amount !== 0) {
2488
+ obj.amount = Math.round(message.amount);
2489
+ }
2490
+ return obj;
2491
+ },
2492
+ create(base) {
2493
+ return MsgUpdateSignatureThreshold.fromPartial(base !== null && base !== void 0 ? base : {});
2494
+ },
2495
+ fromPartial(object) {
2496
+ var _a, _b;
2497
+ const message = createBaseMsgUpdateSignatureThreshold();
2498
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
2499
+ message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : 0;
2500
+ return message;
2501
+ },
2502
+ };
2503
+ function createBaseMsgUpdateSignatureThresholdResponse() {
2504
+ return {};
2505
+ }
2506
+ export const MsgUpdateSignatureThresholdResponse = {
2507
+ encode(_, writer = _m0.Writer.create()) {
2508
+ return writer;
2509
+ },
2510
+ decode(input, length) {
2511
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2512
+ let end = length === undefined ? reader.len : reader.pos + length;
2513
+ const message = createBaseMsgUpdateSignatureThresholdResponse();
2514
+ while (reader.pos < end) {
2515
+ const tag = reader.uint32();
2516
+ switch (tag >>> 3) {
2517
+ }
2518
+ if ((tag & 7) === 4 || tag === 0) {
2519
+ break;
2520
+ }
2521
+ reader.skipType(tag & 7);
2522
+ }
2523
+ return message;
2524
+ },
2525
+ fromJSON(_) {
2526
+ return {};
2527
+ },
2528
+ toJSON(_) {
2529
+ const obj = {};
2530
+ return obj;
2531
+ },
2532
+ create(base) {
2533
+ return MsgUpdateSignatureThresholdResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2534
+ },
2535
+ fromPartial(_) {
2536
+ const message = createBaseMsgUpdateSignatureThresholdResponse();
2537
+ return message;
2538
+ },
2539
+ };
2540
+ function createBaseMsgLinkTokenPair() {
2541
+ return { from: '', remoteDomain: 0, remoteToken: new Uint8Array(0), localToken: '' };
2542
+ }
2543
+ export const MsgLinkTokenPair = {
2544
+ encode(message, writer = _m0.Writer.create()) {
2545
+ if (message.from !== '') {
2546
+ writer.uint32(10).string(message.from);
2547
+ }
2548
+ if (message.remoteDomain !== 0) {
2549
+ writer.uint32(16).uint32(message.remoteDomain);
2550
+ }
2551
+ if (message.remoteToken.length !== 0) {
2552
+ writer.uint32(26).bytes(message.remoteToken);
2553
+ }
2554
+ if (message.localToken !== '') {
2555
+ writer.uint32(34).string(message.localToken);
2556
+ }
2557
+ return writer;
2558
+ },
2559
+ decode(input, length) {
2560
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2561
+ let end = length === undefined ? reader.len : reader.pos + length;
2562
+ const message = createBaseMsgLinkTokenPair();
2563
+ while (reader.pos < end) {
2564
+ const tag = reader.uint32();
2565
+ switch (tag >>> 3) {
2566
+ case 1:
2567
+ if (tag !== 10) {
2568
+ break;
2569
+ }
2570
+ message.from = reader.string();
2571
+ continue;
2572
+ case 2:
2573
+ if (tag !== 16) {
2574
+ break;
2575
+ }
2576
+ message.remoteDomain = reader.uint32();
2577
+ continue;
2578
+ case 3:
2579
+ if (tag !== 26) {
2580
+ break;
2581
+ }
2582
+ message.remoteToken = reader.bytes();
2583
+ continue;
2584
+ case 4:
2585
+ if (tag !== 34) {
2586
+ break;
2587
+ }
2588
+ message.localToken = reader.string();
2589
+ continue;
2590
+ }
2591
+ if ((tag & 7) === 4 || tag === 0) {
2592
+ break;
2593
+ }
2594
+ reader.skipType(tag & 7);
2595
+ }
2596
+ return message;
2597
+ },
2598
+ fromJSON(object) {
2599
+ return {
2600
+ from: isSet(object.from) ? gt.String(object.from) : '',
2601
+ remoteDomain: isSet(object.remoteDomain) ? gt.Number(object.remoteDomain) : 0,
2602
+ remoteToken: isSet(object.remoteToken)
2603
+ ? bytesFromBase64(object.remoteToken)
2604
+ : new Uint8Array(0),
2605
+ localToken: isSet(object.localToken) ? gt.String(object.localToken) : '',
2606
+ };
2607
+ },
2608
+ toJSON(message) {
2609
+ const obj = {};
2610
+ if (message.from !== '') {
2611
+ obj.from = message.from;
2612
+ }
2613
+ if (message.remoteDomain !== 0) {
2614
+ obj.remoteDomain = Math.round(message.remoteDomain);
2615
+ }
2616
+ if (message.remoteToken.length !== 0) {
2617
+ obj.remoteToken = base64FromBytes(message.remoteToken);
2618
+ }
2619
+ if (message.localToken !== '') {
2620
+ obj.localToken = message.localToken;
2621
+ }
2622
+ return obj;
2623
+ },
2624
+ create(base) {
2625
+ return MsgLinkTokenPair.fromPartial(base !== null && base !== void 0 ? base : {});
2626
+ },
2627
+ fromPartial(object) {
2628
+ var _a, _b, _c, _d;
2629
+ const message = createBaseMsgLinkTokenPair();
2630
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
2631
+ message.remoteDomain = (_b = object.remoteDomain) !== null && _b !== void 0 ? _b : 0;
2632
+ message.remoteToken = (_c = object.remoteToken) !== null && _c !== void 0 ? _c : new Uint8Array(0);
2633
+ message.localToken = (_d = object.localToken) !== null && _d !== void 0 ? _d : '';
2634
+ return message;
2635
+ },
2636
+ };
2637
+ function createBaseMsgLinkTokenPairResponse() {
2638
+ return {};
2639
+ }
2640
+ export const MsgLinkTokenPairResponse = {
2641
+ encode(_, writer = _m0.Writer.create()) {
2642
+ return writer;
2643
+ },
2644
+ decode(input, length) {
2645
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2646
+ let end = length === undefined ? reader.len : reader.pos + length;
2647
+ const message = createBaseMsgLinkTokenPairResponse();
2648
+ while (reader.pos < end) {
2649
+ const tag = reader.uint32();
2650
+ switch (tag >>> 3) {
2651
+ }
2652
+ if ((tag & 7) === 4 || tag === 0) {
2653
+ break;
2654
+ }
2655
+ reader.skipType(tag & 7);
2656
+ }
2657
+ return message;
2658
+ },
2659
+ fromJSON(_) {
2660
+ return {};
2661
+ },
2662
+ toJSON(_) {
2663
+ const obj = {};
2664
+ return obj;
2665
+ },
2666
+ create(base) {
2667
+ return MsgLinkTokenPairResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2668
+ },
2669
+ fromPartial(_) {
2670
+ const message = createBaseMsgLinkTokenPairResponse();
2671
+ return message;
2672
+ },
2673
+ };
2674
+ function createBaseMsgUnlinkTokenPair() {
2675
+ return { from: '', remoteDomain: 0, remoteToken: new Uint8Array(0), localToken: '' };
2676
+ }
2677
+ export const MsgUnlinkTokenPair = {
2678
+ encode(message, writer = _m0.Writer.create()) {
2679
+ if (message.from !== '') {
2680
+ writer.uint32(10).string(message.from);
2681
+ }
2682
+ if (message.remoteDomain !== 0) {
2683
+ writer.uint32(16).uint32(message.remoteDomain);
2684
+ }
2685
+ if (message.remoteToken.length !== 0) {
2686
+ writer.uint32(26).bytes(message.remoteToken);
2687
+ }
2688
+ if (message.localToken !== '') {
2689
+ writer.uint32(34).string(message.localToken);
2690
+ }
2691
+ return writer;
2692
+ },
2693
+ decode(input, length) {
2694
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2695
+ let end = length === undefined ? reader.len : reader.pos + length;
2696
+ const message = createBaseMsgUnlinkTokenPair();
2697
+ while (reader.pos < end) {
2698
+ const tag = reader.uint32();
2699
+ switch (tag >>> 3) {
2700
+ case 1:
2701
+ if (tag !== 10) {
2702
+ break;
2703
+ }
2704
+ message.from = reader.string();
2705
+ continue;
2706
+ case 2:
2707
+ if (tag !== 16) {
2708
+ break;
2709
+ }
2710
+ message.remoteDomain = reader.uint32();
2711
+ continue;
2712
+ case 3:
2713
+ if (tag !== 26) {
2714
+ break;
2715
+ }
2716
+ message.remoteToken = reader.bytes();
2717
+ continue;
2718
+ case 4:
2719
+ if (tag !== 34) {
2720
+ break;
2721
+ }
2722
+ message.localToken = reader.string();
2723
+ continue;
2724
+ }
2725
+ if ((tag & 7) === 4 || tag === 0) {
2726
+ break;
2727
+ }
2728
+ reader.skipType(tag & 7);
2729
+ }
2730
+ return message;
2731
+ },
2732
+ fromJSON(object) {
2733
+ return {
2734
+ from: isSet(object.from) ? gt.String(object.from) : '',
2735
+ remoteDomain: isSet(object.remoteDomain) ? gt.Number(object.remoteDomain) : 0,
2736
+ remoteToken: isSet(object.remoteToken)
2737
+ ? bytesFromBase64(object.remoteToken)
2738
+ : new Uint8Array(0),
2739
+ localToken: isSet(object.localToken) ? gt.String(object.localToken) : '',
2740
+ };
2741
+ },
2742
+ toJSON(message) {
2743
+ const obj = {};
2744
+ if (message.from !== '') {
2745
+ obj.from = message.from;
2746
+ }
2747
+ if (message.remoteDomain !== 0) {
2748
+ obj.remoteDomain = Math.round(message.remoteDomain);
2749
+ }
2750
+ if (message.remoteToken.length !== 0) {
2751
+ obj.remoteToken = base64FromBytes(message.remoteToken);
2752
+ }
2753
+ if (message.localToken !== '') {
2754
+ obj.localToken = message.localToken;
2755
+ }
2756
+ return obj;
2757
+ },
2758
+ create(base) {
2759
+ return MsgUnlinkTokenPair.fromPartial(base !== null && base !== void 0 ? base : {});
2760
+ },
2761
+ fromPartial(object) {
2762
+ var _a, _b, _c, _d;
2763
+ const message = createBaseMsgUnlinkTokenPair();
2764
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
2765
+ message.remoteDomain = (_b = object.remoteDomain) !== null && _b !== void 0 ? _b : 0;
2766
+ message.remoteToken = (_c = object.remoteToken) !== null && _c !== void 0 ? _c : new Uint8Array(0);
2767
+ message.localToken = (_d = object.localToken) !== null && _d !== void 0 ? _d : '';
2768
+ return message;
2769
+ },
2770
+ };
2771
+ function createBaseMsgUnlinkTokenPairResponse() {
2772
+ return {};
2773
+ }
2774
+ export const MsgUnlinkTokenPairResponse = {
2775
+ encode(_, writer = _m0.Writer.create()) {
2776
+ return writer;
2777
+ },
2778
+ decode(input, length) {
2779
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2780
+ let end = length === undefined ? reader.len : reader.pos + length;
2781
+ const message = createBaseMsgUnlinkTokenPairResponse();
2782
+ while (reader.pos < end) {
2783
+ const tag = reader.uint32();
2784
+ switch (tag >>> 3) {
2785
+ }
2786
+ if ((tag & 7) === 4 || tag === 0) {
2787
+ break;
2788
+ }
2789
+ reader.skipType(tag & 7);
2790
+ }
2791
+ return message;
2792
+ },
2793
+ fromJSON(_) {
2794
+ return {};
2795
+ },
2796
+ toJSON(_) {
2797
+ const obj = {};
2798
+ return obj;
2799
+ },
2800
+ create(base) {
2801
+ return MsgUnlinkTokenPairResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2802
+ },
2803
+ fromPartial(_) {
2804
+ const message = createBaseMsgUnlinkTokenPairResponse();
2805
+ return message;
2806
+ },
2807
+ };
2808
+ function createBaseMsgAddRemoteTokenMessenger() {
2809
+ return { from: '', domainId: 0, address: new Uint8Array(0) };
2810
+ }
2811
+ export const MsgAddRemoteTokenMessenger = {
2812
+ encode(message, writer = _m0.Writer.create()) {
2813
+ if (message.from !== '') {
2814
+ writer.uint32(10).string(message.from);
2815
+ }
2816
+ if (message.domainId !== 0) {
2817
+ writer.uint32(16).uint32(message.domainId);
2818
+ }
2819
+ if (message.address.length !== 0) {
2820
+ writer.uint32(26).bytes(message.address);
2821
+ }
2822
+ return writer;
2823
+ },
2824
+ decode(input, length) {
2825
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2826
+ let end = length === undefined ? reader.len : reader.pos + length;
2827
+ const message = createBaseMsgAddRemoteTokenMessenger();
2828
+ while (reader.pos < end) {
2829
+ const tag = reader.uint32();
2830
+ switch (tag >>> 3) {
2831
+ case 1:
2832
+ if (tag !== 10) {
2833
+ break;
2834
+ }
2835
+ message.from = reader.string();
2836
+ continue;
2837
+ case 2:
2838
+ if (tag !== 16) {
2839
+ break;
2840
+ }
2841
+ message.domainId = reader.uint32();
2842
+ continue;
2843
+ case 3:
2844
+ if (tag !== 26) {
2845
+ break;
2846
+ }
2847
+ message.address = reader.bytes();
2848
+ continue;
2849
+ }
2850
+ if ((tag & 7) === 4 || tag === 0) {
2851
+ break;
2852
+ }
2853
+ reader.skipType(tag & 7);
2854
+ }
2855
+ return message;
2856
+ },
2857
+ fromJSON(object) {
2858
+ return {
2859
+ from: isSet(object.from) ? gt.String(object.from) : '',
2860
+ domainId: isSet(object.domainId) ? gt.Number(object.domainId) : 0,
2861
+ address: isSet(object.address) ? bytesFromBase64(object.address) : new Uint8Array(0),
2862
+ };
2863
+ },
2864
+ toJSON(message) {
2865
+ const obj = {};
2866
+ if (message.from !== '') {
2867
+ obj.from = message.from;
2868
+ }
2869
+ if (message.domainId !== 0) {
2870
+ obj.domainId = Math.round(message.domainId);
2871
+ }
2872
+ if (message.address.length !== 0) {
2873
+ obj.address = base64FromBytes(message.address);
2874
+ }
2875
+ return obj;
2876
+ },
2877
+ create(base) {
2878
+ return MsgAddRemoteTokenMessenger.fromPartial(base !== null && base !== void 0 ? base : {});
2879
+ },
2880
+ fromPartial(object) {
2881
+ var _a, _b, _c;
2882
+ const message = createBaseMsgAddRemoteTokenMessenger();
2883
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
2884
+ message.domainId = (_b = object.domainId) !== null && _b !== void 0 ? _b : 0;
2885
+ message.address = (_c = object.address) !== null && _c !== void 0 ? _c : new Uint8Array(0);
2886
+ return message;
2887
+ },
2888
+ };
2889
+ function createBaseMsgAddRemoteTokenMessengerResponse() {
2890
+ return {};
2891
+ }
2892
+ export const MsgAddRemoteTokenMessengerResponse = {
2893
+ encode(_, writer = _m0.Writer.create()) {
2894
+ return writer;
2895
+ },
2896
+ decode(input, length) {
2897
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2898
+ let end = length === undefined ? reader.len : reader.pos + length;
2899
+ const message = createBaseMsgAddRemoteTokenMessengerResponse();
2900
+ while (reader.pos < end) {
2901
+ const tag = reader.uint32();
2902
+ switch (tag >>> 3) {
2903
+ }
2904
+ if ((tag & 7) === 4 || tag === 0) {
2905
+ break;
2906
+ }
2907
+ reader.skipType(tag & 7);
2908
+ }
2909
+ return message;
2910
+ },
2911
+ fromJSON(_) {
2912
+ return {};
2913
+ },
2914
+ toJSON(_) {
2915
+ const obj = {};
2916
+ return obj;
2917
+ },
2918
+ create(base) {
2919
+ return MsgAddRemoteTokenMessengerResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2920
+ },
2921
+ fromPartial(_) {
2922
+ const message = createBaseMsgAddRemoteTokenMessengerResponse();
2923
+ return message;
2924
+ },
2925
+ };
2926
+ function createBaseMsgRemoveRemoteTokenMessenger() {
2927
+ return { from: '', domainId: 0 };
2928
+ }
2929
+ export const MsgRemoveRemoteTokenMessenger = {
2930
+ encode(message, writer = _m0.Writer.create()) {
2931
+ if (message.from !== '') {
2932
+ writer.uint32(10).string(message.from);
2933
+ }
2934
+ if (message.domainId !== 0) {
2935
+ writer.uint32(16).uint32(message.domainId);
2936
+ }
2937
+ return writer;
2938
+ },
2939
+ decode(input, length) {
2940
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
2941
+ let end = length === undefined ? reader.len : reader.pos + length;
2942
+ const message = createBaseMsgRemoveRemoteTokenMessenger();
2943
+ while (reader.pos < end) {
2944
+ const tag = reader.uint32();
2945
+ switch (tag >>> 3) {
2946
+ case 1:
2947
+ if (tag !== 10) {
2948
+ break;
2949
+ }
2950
+ message.from = reader.string();
2951
+ continue;
2952
+ case 2:
2953
+ if (tag !== 16) {
2954
+ break;
2955
+ }
2956
+ message.domainId = reader.uint32();
2957
+ continue;
2958
+ }
2959
+ if ((tag & 7) === 4 || tag === 0) {
2960
+ break;
2961
+ }
2962
+ reader.skipType(tag & 7);
2963
+ }
2964
+ return message;
2965
+ },
2966
+ fromJSON(object) {
2967
+ return {
2968
+ from: isSet(object.from) ? gt.String(object.from) : '',
2969
+ domainId: isSet(object.domainId) ? gt.Number(object.domainId) : 0,
2970
+ };
2971
+ },
2972
+ toJSON(message) {
2973
+ const obj = {};
2974
+ if (message.from !== '') {
2975
+ obj.from = message.from;
2976
+ }
2977
+ if (message.domainId !== 0) {
2978
+ obj.domainId = Math.round(message.domainId);
2979
+ }
2980
+ return obj;
2981
+ },
2982
+ create(base) {
2983
+ return MsgRemoveRemoteTokenMessenger.fromPartial(base !== null && base !== void 0 ? base : {});
2984
+ },
2985
+ fromPartial(object) {
2986
+ var _a, _b;
2987
+ const message = createBaseMsgRemoveRemoteTokenMessenger();
2988
+ message.from = (_a = object.from) !== null && _a !== void 0 ? _a : '';
2989
+ message.domainId = (_b = object.domainId) !== null && _b !== void 0 ? _b : 0;
2990
+ return message;
2991
+ },
2992
+ };
2993
+ function createBaseMsgRemoveRemoteTokenMessengerResponse() {
2994
+ return {};
2995
+ }
2996
+ export const MsgRemoveRemoteTokenMessengerResponse = {
2997
+ encode(_, writer = _m0.Writer.create()) {
2998
+ return writer;
2999
+ },
3000
+ decode(input, length) {
3001
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
3002
+ let end = length === undefined ? reader.len : reader.pos + length;
3003
+ const message = createBaseMsgRemoveRemoteTokenMessengerResponse();
3004
+ while (reader.pos < end) {
3005
+ const tag = reader.uint32();
3006
+ switch (tag >>> 3) {
3007
+ }
3008
+ if ((tag & 7) === 4 || tag === 0) {
3009
+ break;
3010
+ }
3011
+ reader.skipType(tag & 7);
3012
+ }
3013
+ return message;
3014
+ },
3015
+ fromJSON(_) {
3016
+ return {};
3017
+ },
3018
+ toJSON(_) {
3019
+ const obj = {};
3020
+ return obj;
3021
+ },
3022
+ create(base) {
3023
+ return MsgRemoveRemoteTokenMessengerResponse.fromPartial(base !== null && base !== void 0 ? base : {});
3024
+ },
3025
+ fromPartial(_) {
3026
+ const message = createBaseMsgRemoveRemoteTokenMessengerResponse();
3027
+ return message;
3028
+ },
3029
+ };
3030
+ export const MsgServiceName = 'circle.cctp.v1.Msg';
3031
+ export class MsgClientImpl {
3032
+ constructor(rpc, opts) {
3033
+ this.service = (opts === null || opts === void 0 ? void 0 : opts.service) || MsgServiceName;
3034
+ this.rpc = rpc;
3035
+ this.AcceptOwner = this.AcceptOwner.bind(this);
3036
+ this.AddRemoteTokenMessenger = this.AddRemoteTokenMessenger.bind(this);
3037
+ this.DepositForBurn = this.DepositForBurn.bind(this);
3038
+ this.DepositForBurnWithCaller = this.DepositForBurnWithCaller.bind(this);
3039
+ this.DisableAttester = this.DisableAttester.bind(this);
3040
+ this.EnableAttester = this.EnableAttester.bind(this);
3041
+ this.LinkTokenPair = this.LinkTokenPair.bind(this);
3042
+ this.PauseBurningAndMinting = this.PauseBurningAndMinting.bind(this);
3043
+ this.PauseSendingAndReceivingMessages = this.PauseSendingAndReceivingMessages.bind(this);
3044
+ this.ReceiveMessage = this.ReceiveMessage.bind(this);
3045
+ this.RemoveRemoteTokenMessenger = this.RemoveRemoteTokenMessenger.bind(this);
3046
+ this.ReplaceDepositForBurn = this.ReplaceDepositForBurn.bind(this);
3047
+ this.ReplaceMessage = this.ReplaceMessage.bind(this);
3048
+ this.SendMessage = this.SendMessage.bind(this);
3049
+ this.SendMessageWithCaller = this.SendMessageWithCaller.bind(this);
3050
+ this.UnlinkTokenPair = this.UnlinkTokenPair.bind(this);
3051
+ this.UnpauseBurningAndMinting = this.UnpauseBurningAndMinting.bind(this);
3052
+ this.UnpauseSendingAndReceivingMessages = this.UnpauseSendingAndReceivingMessages.bind(this);
3053
+ this.UpdateOwner = this.UpdateOwner.bind(this);
3054
+ this.UpdateAttesterManager = this.UpdateAttesterManager.bind(this);
3055
+ this.UpdateTokenController = this.UpdateTokenController.bind(this);
3056
+ this.UpdatePauser = this.UpdatePauser.bind(this);
3057
+ this.UpdateMaxMessageBodySize = this.UpdateMaxMessageBodySize.bind(this);
3058
+ this.SetMaxBurnAmountPerMessage = this.SetMaxBurnAmountPerMessage.bind(this);
3059
+ this.UpdateSignatureThreshold = this.UpdateSignatureThreshold.bind(this);
3060
+ }
3061
+ AcceptOwner(request) {
3062
+ const data = MsgAcceptOwner.encode(request).finish();
3063
+ const promise = this.rpc.request(this.service, 'AcceptOwner', data);
3064
+ return promise.then((data) => MsgAcceptOwnerResponse.decode(_m0.Reader.create(data)));
3065
+ }
3066
+ AddRemoteTokenMessenger(request) {
3067
+ const data = MsgAddRemoteTokenMessenger.encode(request).finish();
3068
+ const promise = this.rpc.request(this.service, 'AddRemoteTokenMessenger', data);
3069
+ return promise.then((data) => MsgAddRemoteTokenMessengerResponse.decode(_m0.Reader.create(data)));
3070
+ }
3071
+ DepositForBurn(request) {
3072
+ const data = MsgDepositForBurn.encode(request).finish();
3073
+ const promise = this.rpc.request(this.service, 'DepositForBurn', data);
3074
+ return promise.then((data) => MsgDepositForBurnResponse.decode(_m0.Reader.create(data)));
3075
+ }
3076
+ DepositForBurnWithCaller(request) {
3077
+ const data = MsgDepositForBurnWithCaller.encode(request).finish();
3078
+ const promise = this.rpc.request(this.service, 'DepositForBurnWithCaller', data);
3079
+ return promise.then((data) => MsgDepositForBurnWithCallerResponse.decode(_m0.Reader.create(data)));
3080
+ }
3081
+ DisableAttester(request) {
3082
+ const data = MsgDisableAttester.encode(request).finish();
3083
+ const promise = this.rpc.request(this.service, 'DisableAttester', data);
3084
+ return promise.then((data) => MsgDisableAttesterResponse.decode(_m0.Reader.create(data)));
3085
+ }
3086
+ EnableAttester(request) {
3087
+ const data = MsgEnableAttester.encode(request).finish();
3088
+ const promise = this.rpc.request(this.service, 'EnableAttester', data);
3089
+ return promise.then((data) => MsgEnableAttesterResponse.decode(_m0.Reader.create(data)));
3090
+ }
3091
+ LinkTokenPair(request) {
3092
+ const data = MsgLinkTokenPair.encode(request).finish();
3093
+ const promise = this.rpc.request(this.service, 'LinkTokenPair', data);
3094
+ return promise.then((data) => MsgLinkTokenPairResponse.decode(_m0.Reader.create(data)));
3095
+ }
3096
+ PauseBurningAndMinting(request) {
3097
+ const data = MsgPauseBurningAndMinting.encode(request).finish();
3098
+ const promise = this.rpc.request(this.service, 'PauseBurningAndMinting', data);
3099
+ return promise.then((data) => MsgPauseBurningAndMintingResponse.decode(_m0.Reader.create(data)));
3100
+ }
3101
+ PauseSendingAndReceivingMessages(request) {
3102
+ const data = MsgPauseSendingAndReceivingMessages.encode(request).finish();
3103
+ const promise = this.rpc.request(this.service, 'PauseSendingAndReceivingMessages', data);
3104
+ return promise.then((data) => MsgPauseSendingAndReceivingMessagesResponse.decode(_m0.Reader.create(data)));
3105
+ }
3106
+ ReceiveMessage(request) {
3107
+ const data = MsgReceiveMessage.encode(request).finish();
3108
+ const promise = this.rpc.request(this.service, 'ReceiveMessage', data);
3109
+ return promise.then((data) => MsgReceiveMessageResponse.decode(_m0.Reader.create(data)));
3110
+ }
3111
+ RemoveRemoteTokenMessenger(request) {
3112
+ const data = MsgRemoveRemoteTokenMessenger.encode(request).finish();
3113
+ const promise = this.rpc.request(this.service, 'RemoveRemoteTokenMessenger', data);
3114
+ return promise.then((data) => MsgRemoveRemoteTokenMessengerResponse.decode(_m0.Reader.create(data)));
3115
+ }
3116
+ ReplaceDepositForBurn(request) {
3117
+ const data = MsgReplaceDepositForBurn.encode(request).finish();
3118
+ const promise = this.rpc.request(this.service, 'ReplaceDepositForBurn', data);
3119
+ return promise.then((data) => MsgReplaceDepositForBurnResponse.decode(_m0.Reader.create(data)));
3120
+ }
3121
+ ReplaceMessage(request) {
3122
+ const data = MsgReplaceMessage.encode(request).finish();
3123
+ const promise = this.rpc.request(this.service, 'ReplaceMessage', data);
3124
+ return promise.then((data) => MsgReplaceMessageResponse.decode(_m0.Reader.create(data)));
3125
+ }
3126
+ SendMessage(request) {
3127
+ const data = MsgSendMessage.encode(request).finish();
3128
+ const promise = this.rpc.request(this.service, 'SendMessage', data);
3129
+ return promise.then((data) => MsgSendMessageResponse.decode(_m0.Reader.create(data)));
3130
+ }
3131
+ SendMessageWithCaller(request) {
3132
+ const data = MsgSendMessageWithCaller.encode(request).finish();
3133
+ const promise = this.rpc.request(this.service, 'SendMessageWithCaller', data);
3134
+ return promise.then((data) => MsgSendMessageWithCallerResponse.decode(_m0.Reader.create(data)));
3135
+ }
3136
+ UnlinkTokenPair(request) {
3137
+ const data = MsgUnlinkTokenPair.encode(request).finish();
3138
+ const promise = this.rpc.request(this.service, 'UnlinkTokenPair', data);
3139
+ return promise.then((data) => MsgUnlinkTokenPairResponse.decode(_m0.Reader.create(data)));
3140
+ }
3141
+ UnpauseBurningAndMinting(request) {
3142
+ const data = MsgUnpauseBurningAndMinting.encode(request).finish();
3143
+ const promise = this.rpc.request(this.service, 'UnpauseBurningAndMinting', data);
3144
+ return promise.then((data) => MsgUnpauseBurningAndMintingResponse.decode(_m0.Reader.create(data)));
3145
+ }
3146
+ UnpauseSendingAndReceivingMessages(request) {
3147
+ const data = MsgUnpauseSendingAndReceivingMessages.encode(request).finish();
3148
+ const promise = this.rpc.request(this.service, 'UnpauseSendingAndReceivingMessages', data);
3149
+ return promise.then((data) => MsgUnpauseSendingAndReceivingMessagesResponse.decode(_m0.Reader.create(data)));
3150
+ }
3151
+ UpdateOwner(request) {
3152
+ const data = MsgUpdateOwner.encode(request).finish();
3153
+ const promise = this.rpc.request(this.service, 'UpdateOwner', data);
3154
+ return promise.then((data) => MsgUpdateOwnerResponse.decode(_m0.Reader.create(data)));
3155
+ }
3156
+ UpdateAttesterManager(request) {
3157
+ const data = MsgUpdateAttesterManager.encode(request).finish();
3158
+ const promise = this.rpc.request(this.service, 'UpdateAttesterManager', data);
3159
+ return promise.then((data) => MsgUpdateAttesterManagerResponse.decode(_m0.Reader.create(data)));
3160
+ }
3161
+ UpdateTokenController(request) {
3162
+ const data = MsgUpdateTokenController.encode(request).finish();
3163
+ const promise = this.rpc.request(this.service, 'UpdateTokenController', data);
3164
+ return promise.then((data) => MsgUpdateTokenControllerResponse.decode(_m0.Reader.create(data)));
3165
+ }
3166
+ UpdatePauser(request) {
3167
+ const data = MsgUpdatePauser.encode(request).finish();
3168
+ const promise = this.rpc.request(this.service, 'UpdatePauser', data);
3169
+ return promise.then((data) => MsgUpdatePauserResponse.decode(_m0.Reader.create(data)));
3170
+ }
3171
+ UpdateMaxMessageBodySize(request) {
3172
+ const data = MsgUpdateMaxMessageBodySize.encode(request).finish();
3173
+ const promise = this.rpc.request(this.service, 'UpdateMaxMessageBodySize', data);
3174
+ return promise.then((data) => MsgUpdateMaxMessageBodySizeResponse.decode(_m0.Reader.create(data)));
3175
+ }
3176
+ SetMaxBurnAmountPerMessage(request) {
3177
+ const data = MsgSetMaxBurnAmountPerMessage.encode(request).finish();
3178
+ const promise = this.rpc.request(this.service, 'SetMaxBurnAmountPerMessage', data);
3179
+ return promise.then((data) => MsgSetMaxBurnAmountPerMessageResponse.decode(_m0.Reader.create(data)));
3180
+ }
3181
+ UpdateSignatureThreshold(request) {
3182
+ const data = MsgUpdateSignatureThreshold.encode(request).finish();
3183
+ const promise = this.rpc.request(this.service, 'UpdateSignatureThreshold', data);
3184
+ return promise.then((data) => MsgUpdateSignatureThresholdResponse.decode(_m0.Reader.create(data)));
3185
+ }
3186
+ }
3187
+ const gt = (() => {
3188
+ if (typeof globalThis !== 'undefined') {
3189
+ return globalThis;
3190
+ }
3191
+ if (typeof self !== 'undefined') {
3192
+ return self;
3193
+ }
3194
+ if (typeof window !== 'undefined') {
3195
+ return window;
3196
+ }
3197
+ if (typeof global !== 'undefined') {
3198
+ return global;
3199
+ }
3200
+ throw 'Unable to locate global object';
3201
+ })();
3202
+ function bytesFromBase64(b64) {
3203
+ if (gt.Buffer) {
3204
+ return Uint8Array.from(gt.Buffer.from(b64, 'base64'));
3205
+ }
3206
+ else {
3207
+ const bin = gt.atob(b64);
3208
+ const arr = new Uint8Array(bin.length);
3209
+ for (let i = 0; i < bin.length; ++i) {
3210
+ arr[i] = bin.charCodeAt(i);
3211
+ }
3212
+ return arr;
3213
+ }
3214
+ }
3215
+ function base64FromBytes(arr) {
3216
+ if (gt.Buffer) {
3217
+ return gt.Buffer.from(arr).toString('base64');
3218
+ }
3219
+ else {
3220
+ const bin = [];
3221
+ arr.forEach((byte) => {
3222
+ bin.push(gt.String.fromCharCode(byte));
3223
+ });
3224
+ return gt.btoa(bin.join(''));
3225
+ }
3226
+ }
3227
+ if (_m0.util.Long !== Long) {
3228
+ _m0.util.Long = Long;
3229
+ _m0.configure();
3230
+ }
3231
+ function isSet(value) {
3232
+ return value !== null && value !== undefined;
3233
+ }
3234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2N0cFByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbGliL2NjdHBQcm90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sR0FBRyxNQUFNLG9CQUFvQixDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztBQWdPaEQsU0FBUyx3QkFBd0I7SUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsTUFBTSxDQUFDLE9BQXVCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDdEUsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMvQixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25DLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0RCxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBdUI7UUFDNUIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBa0QsSUFBUTtRQUM5RCxPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELFdBQVcsQ0FBa0QsTUFBUzs7UUFDcEUsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBQSxNQUFNLENBQUMsUUFBUSxtQ0FBSSxFQUFFLENBQUM7UUFDekMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGdDQUFnQztJQUN2QyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNwQyxNQUFNLENBQUMsQ0FBeUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN4RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ25ELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQXlCO1FBQzlCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sc0JBQXNCLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGtDQUFrQztJQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsTUFBTSxDQUFDLE9BQWlDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDaEYsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGtDQUFrQyxFQUFFLENBQUM7UUFDckQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzdDLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0RCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRCxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBaUM7UUFDdEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGtCQUFrQixLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3RDLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFDdEQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELFdBQVcsQ0FDVCxNQUFTOztRQUVULE1BQU0sT0FBTyxHQUFHLGtDQUFrQyxFQUFFLENBQUM7UUFDckQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsTUFBQSxNQUFNLENBQUMsa0JBQWtCLG1DQUFJLEVBQUUsQ0FBQztRQUM3RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsMENBQTBDO0lBQ2pELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzlDLE1BQU0sQ0FDSixDQUFtQyxFQUNuQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywwQ0FBMEMsRUFBRSxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQW1DO1FBQ3hDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sZ0NBQWdDLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLDBDQUEwQyxFQUFFLENBQUM7UUFDN0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGtDQUFrQztJQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsTUFBTSxDQUFDLE9BQWlDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDaEYsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGtDQUFrQyxFQUFFLENBQUM7UUFDckQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzdDLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0RCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRCxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBaUM7UUFDdEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGtCQUFrQixLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3RDLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFDdEQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELFdBQVcsQ0FDVCxNQUFTOztRQUVULE1BQU0sT0FBTyxHQUFHLGtDQUFrQyxFQUFFLENBQUM7UUFDckQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsTUFBQSxNQUFNLENBQUMsa0JBQWtCLG1DQUFJLEVBQUUsQ0FBQztRQUM3RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsMENBQTBDO0lBQ2pELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzlDLE1BQU0sQ0FDSixDQUFtQyxFQUNuQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywwQ0FBMEMsRUFBRSxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQW1DO1FBQ3hDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sZ0NBQWdDLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLDBDQUEwQyxFQUFFLENBQUM7UUFDN0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLHlCQUF5QjtJQUNoQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDckMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixNQUFNLENBQUMsT0FBd0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN2RSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyx5QkFBeUIsRUFBRSxDQUFDO1FBQzVDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEMsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RELFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUF3QjtRQUM3QixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzdCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFtRCxJQUFRO1FBQy9ELE9BQU8sZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsV0FBVyxDQUFtRCxNQUFTOztRQUNyRSxNQUFNLE9BQU8sR0FBRyx5QkFBeUIsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBQSxNQUFNLENBQUMsSUFBSSxtQ0FBSSxFQUFFLENBQUM7UUFDakMsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFBLE1BQU0sQ0FBQyxTQUFTLG1DQUFJLEVBQUUsQ0FBQztRQUMzQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsaUNBQWlDO0lBQ3hDLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLE1BQU0sQ0FBQyxDQUEwQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3pFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxFQUFFLENBQUM7UUFDcEQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBMEI7UUFDL0IsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELFdBQVcsQ0FDVCxDQUFJO1FBRUosTUFBTSxPQUFPLEdBQUcsaUNBQWlDLEVBQUUsQ0FBQztRQUNwRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsd0JBQXdCO0lBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLENBQUMsT0FBdUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN0RSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyx3QkFBd0IsRUFBRSxDQUFDO1FBQzNDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUF1QjtRQUM1QixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFrRCxJQUFRO1FBQzlELE9BQU8sY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsV0FBVyxDQUFrRCxNQUFTOztRQUNwRSxNQUFNLE9BQU8sR0FBRyx3QkFBd0IsRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBQSxNQUFNLENBQUMsSUFBSSxtQ0FBSSxFQUFFLENBQUM7UUFDakMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGdDQUFnQztJQUN2QyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNwQyxNQUFNLENBQUMsQ0FBeUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN4RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ25ELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQXlCO1FBQzlCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sc0JBQXNCLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDJCQUEyQjtJQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE1BQU0sQ0FBQyxPQUEwQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3pFLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDOUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNuQyxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTBCO1FBQy9CLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2xDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQXFELElBQVE7UUFDakUsT0FBTyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELFdBQVcsQ0FBcUQsTUFBUzs7UUFDdkUsTUFBTSxPQUFPLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBQSxNQUFNLENBQUMsUUFBUSxtQ0FBSSxFQUFFLENBQUM7UUFDekMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG1DQUFtQztJQUMxQyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxNQUFNLENBQUMsQ0FBNEIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMzRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxtQ0FBbUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQTRCO1FBQ2pDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8seUJBQXlCLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLG1DQUFtQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDRCQUE0QjtJQUNuQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE1BQU0sQ0FBQyxPQUEyQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzFFLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDRCQUE0QixFQUFFLENBQUM7UUFDL0MsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNuQyxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTJCO1FBQ2hDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2xDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQXNELElBQVE7UUFDbEUsT0FBTyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELFdBQVcsQ0FBc0QsTUFBUzs7UUFDeEUsTUFBTSxPQUFPLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQztRQUMvQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBQSxNQUFNLENBQUMsUUFBUSxtQ0FBSSxFQUFFLENBQUM7UUFDekMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG9DQUFvQztJQUMzQyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN4QyxNQUFNLENBQUMsQ0FBNkIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM1RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxvQ0FBb0MsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQTZCO1FBQ2xDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sMEJBQTBCLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLG9DQUFvQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG1DQUFtQztJQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxNQUFNLENBQUMsT0FBa0MsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNqRixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxtQ0FBbUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFrQztRQUN2QyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcsbUNBQW1DLEVBQUUsQ0FBQztRQUN0RCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUywyQ0FBMkM7SUFDbEQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUc7SUFDL0MsTUFBTSxDQUNKLENBQW9DLEVBQ3BDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDJDQUEyQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBb0M7UUFDekMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxpQ0FBaUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELFdBQVcsQ0FDVCxDQUFJO1FBRUosTUFBTSxPQUFPLEdBQUcsMkNBQTJDLEVBQUUsQ0FBQztRQUM5RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMscUNBQXFDO0lBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQ3pDLE1BQU0sQ0FDSixPQUFvQyxFQUNwQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3hELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFvQztRQUN6QyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcscUNBQXFDLEVBQUUsQ0FBQztRQUN4RCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyw2Q0FBNkM7SUFDcEQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUc7SUFDakQsTUFBTSxDQUNKLENBQXNDLEVBQ3RDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDZDQUE2QyxFQUFFLENBQUM7UUFDaEUsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBc0M7UUFDM0MsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxtQ0FBbUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELFdBQVcsQ0FDVCxDQUFJO1FBRUosTUFBTSxPQUFPLEdBQUcsNkNBQTZDLEVBQUUsQ0FBQztRQUNoRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsNkNBQTZDO0lBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHO0lBQ2pELE1BQU0sQ0FDSixPQUE0QyxFQUM1QyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw2Q0FBNkMsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUE0QztRQUNqRCxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLG1DQUFtQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcsNkNBQTZDLEVBQUUsQ0FBQztRQUNoRSxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxxREFBcUQ7SUFDNUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkNBQTJDLEdBQUc7SUFDekQsTUFBTSxDQUNKLENBQThDLEVBQzlDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQ0osS0FBOEIsRUFDOUIsTUFBZTtRQUVmLE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHFEQUFxRCxFQUFFLENBQUM7UUFDeEUsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBOEM7UUFDbkQsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTywyQ0FBMkMsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUNELFdBQVcsQ0FDVCxDQUFJO1FBRUosTUFBTSxPQUFPLEdBQUcscURBQXFELEVBQUUsQ0FBQztRQUN4RSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsK0NBQStDO0lBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHO0lBQ25ELE1BQU0sQ0FDSixPQUE4QyxFQUM5QyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywrQ0FBK0MsRUFBRSxDQUFDO1FBQ2xFLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUE4QztRQUNuRCxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLHFDQUFxQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBQ0QsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcsK0NBQStDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyx1REFBdUQ7SUFDOUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sNkNBQTZDLEdBQUc7SUFDM0QsTUFBTSxDQUNKLENBQWdELEVBQ2hELFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQ0osS0FBOEIsRUFDOUIsTUFBZTtRQUVmLE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHVEQUF1RCxFQUFFLENBQUM7UUFDMUUsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBZ0Q7UUFDckQsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyw2Q0FBNkMsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUNELFdBQVcsQ0FDVCxDQUFJO1FBRUosTUFBTSxPQUFPLEdBQUcsdURBQXVELEVBQUUsQ0FBQztRQUMxRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMscUNBQXFDO0lBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQ3pDLE1BQU0sQ0FDSixPQUFvQyxFQUNwQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcscUNBQXFDLEVBQUUsQ0FBQztRQUN4RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMvQixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFVLENBQUM7b0JBQzlDLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0RCxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLO1NBQ3pGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQW9DO1FBQ3pDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcscUNBQXFDLEVBQUUsQ0FBQztRQUN4RCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxXQUFXO1lBQ2pCLE1BQU0sQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSTtnQkFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDZDQUE2QztJQUNwRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRztJQUNqRCxNQUFNLENBQ0osQ0FBc0MsRUFDdEMsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsNkNBQTZDLEVBQUUsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBTTtRQUNiLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFzQztRQUMzQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLG1DQUFtQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QsV0FBVyxDQUNULENBQUk7UUFFSixNQUFNLE9BQU8sR0FBRyw2Q0FBNkMsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyx1Q0FBdUM7SUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBQzNDLE1BQU0sQ0FDSixPQUFzQyxFQUN0QyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyx1Q0FBdUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDckMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNqQyxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFzQztRQUMzQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzlCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM5QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLDZCQUE2QixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcsdUNBQXVDLEVBQUUsQ0FBQztRQUMxRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBQSxNQUFNLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUM7UUFDN0MsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFBLE1BQU0sQ0FBQyxNQUFNLG1DQUFJLEVBQUUsQ0FBQztRQUNyQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsK0NBQStDO0lBQ3RELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHO0lBQ25ELE1BQU0sQ0FDSixDQUF3QyxFQUN4QyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywrQ0FBK0MsRUFBRSxDQUFDO1FBQ2xFLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQXdDO1FBQzdDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8scUNBQXFDLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLCtDQUErQyxFQUFFLENBQUM7UUFDbEUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDJCQUEyQjtJQUNsQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLEVBQUU7UUFDUixNQUFNLEVBQUUsRUFBRTtRQUNWLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsYUFBYSxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNoQyxTQUFTLEVBQUUsRUFBRTtLQUNkLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsTUFBTSxDQUFDLE9BQTBCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDekUsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywyQkFBMkIsRUFBRSxDQUFDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDakMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzVDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDdkMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNwQyxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVELGlCQUFpQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RixhQUFhLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNyQixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBMEI7UUFDL0IsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMxQixHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGlCQUFpQixLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzdCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFxRCxJQUFRO1FBQ2pFLE9BQU8saUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxXQUFXLENBQXFELE1BQVM7O1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDOUMsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQUEsTUFBTSxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFBLE1BQU0sQ0FBQyxpQkFBaUIsbUNBQUksQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBQSxNQUFNLENBQUMsYUFBYSxtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQUEsTUFBTSxDQUFDLFNBQVMsbUNBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxtQ0FBbUM7SUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHO0lBQ3ZDLE1BQU0sQ0FBQyxPQUFrQyxFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2pGLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxtQ0FBbUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDZCxNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFVLENBQUM7b0JBQ3hDLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BGLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBa0M7UUFDdkMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8seUJBQXlCLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLG1DQUFtQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxDQUFDLEtBQUs7WUFDWCxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUk7Z0JBQ2pELENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2pCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxxQ0FBcUM7SUFDNUMsT0FBTztRQUNMLElBQUksRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixpQkFBaUIsRUFBRSxDQUFDO1FBQ3BCLGFBQWEsRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsU0FBUyxFQUFFLEVBQUU7UUFDYixpQkFBaUIsRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDckMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6QyxNQUFNLENBQ0osT0FBb0MsRUFDcEMsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHFDQUFxQyxFQUFFLENBQUM7UUFDeEQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNqQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDNUMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN2QyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3BDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMzQyxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVELGlCQUFpQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RixhQUFhLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNyQixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckUsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBb0M7UUFDekMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMxQixHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGlCQUFpQixLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzdCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTywyQkFBMkIsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELFdBQVcsQ0FDVCxNQUFTOztRQUVULE1BQU0sT0FBTyxHQUFHLHFDQUFxQyxFQUFFLENBQUM7UUFDeEQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQUEsTUFBTSxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFBLE1BQU0sQ0FBQyxpQkFBaUIsbUNBQUksQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBQSxNQUFNLENBQUMsYUFBYSxtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQUEsTUFBTSxDQUFDLFNBQVMsbUNBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFBLE1BQU0sQ0FBQyxpQkFBaUIsbUNBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDZDQUE2QztJQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUc7SUFDakQsTUFBTSxDQUNKLE9BQTRDLEVBQzVDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw2Q0FBNkMsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDZCxNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFVLENBQUM7b0JBQ3hDLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BGLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBNEM7UUFDakQsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sbUNBQW1DLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFDRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLDZDQUE2QyxFQUFFLENBQUM7UUFDaEUsT0FBTyxDQUFDLEtBQUs7WUFDWCxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUk7Z0JBQ2pELENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2pCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxrQ0FBa0M7SUFDekMsT0FBTztRQUNMLElBQUksRUFBRSxFQUFFO1FBQ1IsZUFBZSxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNsQyxtQkFBbUIsRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsb0JBQW9CLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFnQixFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztLQUNwQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3RDLE1BQU0sQ0FBQyxPQUFpQyxFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2hGLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxrQ0FBa0MsRUFBRSxDQUFDO1FBQ3JELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDekMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzdDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM5QyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDMUMsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RELGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3BELENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO2dCQUM3QyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3RELENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO2dCQUM5QyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUMxQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWlDO1FBQ3RDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdDLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxHQUFHLENBQUMsb0JBQW9CLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcsa0NBQWtDLEVBQUUsQ0FBQztRQUNyRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsTUFBQSxNQUFNLENBQUMsZUFBZSxtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxPQUFPLENBQUMsbUJBQW1CLEdBQUcsTUFBQSxNQUFNLENBQUMsbUJBQW1CLG1DQUFJLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxNQUFBLE1BQU0sQ0FBQyxvQkFBb0IsbUNBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsT0FBTyxDQUFDLGdCQUFnQixHQUFHLE1BQUEsTUFBTSxDQUFDLGdCQUFnQixtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsMENBQTBDO0lBQ2pELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzlDLE1BQU0sQ0FDSixDQUFtQyxFQUNuQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywwQ0FBMEMsRUFBRSxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQW1DO1FBQ3hDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sZ0NBQWdDLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLDBDQUEwQyxFQUFFLENBQUM7UUFDN0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDJCQUEyQjtJQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDbEYsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE1BQU0sQ0FBQyxPQUEwQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3pFLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMvQixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2pDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDckMsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RELE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDcEYsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBMEI7UUFDL0IsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFxRCxJQUFRO1FBQ2pFLE9BQU8saUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxXQUFXLENBQXFELE1BQVM7O1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDOUMsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQUEsTUFBTSxDQUFDLE9BQU8sbUNBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFBLE1BQU0sQ0FBQyxXQUFXLG1DQUFJLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxtQ0FBbUM7SUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDdkMsTUFBTSxDQUFDLE9BQWtDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDakYsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsbUNBQW1DLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ2QsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNoQyxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pGLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBa0M7UUFDdkMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELFdBQVcsQ0FDVCxNQUFTOztRQUVULE1BQU0sT0FBTyxHQUFHLG1DQUFtQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFBLE1BQU0sQ0FBQyxPQUFPLG1DQUFJLEtBQUssQ0FBQztRQUMxQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsd0JBQXdCO0lBQy9CLE9BQU87UUFDTCxJQUFJLEVBQUUsRUFBRTtRQUNSLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsU0FBUyxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM1QixXQUFXLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO0tBQy9CLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sQ0FBQyxPQUF1QixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3RFLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGlCQUFpQixLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixFQUFFLENBQUM7UUFDM0MsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzVDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbkMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNyQyxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVGLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDMUYsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBdUI7UUFDNUIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGlCQUFpQixLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25DLEdBQUcsQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxHQUFHLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBa0QsSUFBUTtRQUM5RCxPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELFdBQVcsQ0FBa0QsTUFBUzs7UUFDcEUsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFBLE1BQU0sQ0FBQyxpQkFBaUIsbUNBQUksQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBQSxNQUFNLENBQUMsU0FBUyxtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQUEsTUFBTSxDQUFDLFdBQVcsbUNBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGdDQUFnQztJQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsTUFBTSxDQUFDLE9BQStCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNkLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQVUsQ0FBQztvQkFDeEMsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUErQjtRQUNwQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELFdBQVcsQ0FDVCxNQUFTO1FBRVQsTUFBTSxPQUFPLEdBQUcsZ0NBQWdDLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsS0FBSztZQUNYLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSTtnQkFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGtDQUFrQztJQUN6QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLEVBQUU7UUFDUixpQkFBaUIsRUFBRSxDQUFDO1FBQ3BCLFNBQVMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDNUIsV0FBVyxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM5QixpQkFBaUIsRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDckMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxNQUFNLENBQUMsT0FBaUMsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNoRixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGtDQUFrQyxFQUFFLENBQUM7UUFDckQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzVDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbkMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNyQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDM0MsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RELGlCQUFpQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzFGLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO2dCQUMzQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWlDO1FBQ3RDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxHQUFHLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsR0FBRyxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0MsR0FBRyxDQUFDLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcsa0NBQWtDLEVBQUUsQ0FBQztRQUNyRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFBLE1BQU0sQ0FBQyxpQkFBaUIsbUNBQUksQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBQSxNQUFNLENBQUMsU0FBUyxtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQUEsTUFBTSxDQUFDLFdBQVcsbUNBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLE1BQUEsTUFBTSxDQUFDLGlCQUFpQixtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsMENBQTBDO0lBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRztJQUM5QyxNQUFNLENBQ0osT0FBeUMsRUFDekMsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDBDQUEwQyxFQUFFLENBQUM7UUFDN0QsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNkLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQVUsQ0FBQztvQkFDeEMsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUF5QztRQUM5QyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELFdBQVcsQ0FDVCxNQUFTO1FBRVQsTUFBTSxPQUFPLEdBQUcsMENBQTBDLEVBQUUsQ0FBQztRQUM3RCxPQUFPLENBQUMsS0FBSztZQUNYLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSTtnQkFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDJCQUEyQjtJQUNsQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLEVBQUU7UUFDUixlQUFlLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLG1CQUFtQixFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0QyxjQUFjLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLG9CQUFvQixFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztLQUN4QyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE1BQU0sQ0FBQyxPQUEwQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3pFLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDOUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN6QyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDN0MsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN4QyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDOUMsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RELGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3BELENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO2dCQUM3QyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO2dCQUN4QyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3RELENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO2dCQUM5QyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTBCO1FBQy9CLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdDLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEMsR0FBRyxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUMsR0FBRyxDQUFDLG9CQUFvQixHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFxRCxJQUFRO1FBQ2pFLE9BQU8saUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxXQUFXLENBQXFELE1BQVM7O1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDOUMsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsZUFBZSxHQUFHLE1BQUEsTUFBTSxDQUFDLGVBQWUsbUNBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsT0FBTyxDQUFDLG1CQUFtQixHQUFHLE1BQUEsTUFBTSxDQUFDLG1CQUFtQixtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RSxPQUFPLENBQUMsY0FBYyxHQUFHLE1BQUEsTUFBTSxDQUFDLGNBQWMsbUNBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsT0FBTyxDQUFDLG9CQUFvQixHQUFHLE1BQUEsTUFBTSxDQUFDLG9CQUFvQixtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsbUNBQW1DO0lBQzFDLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHO0lBQ3ZDLE1BQU0sQ0FBQyxDQUE0QixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzNFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLG1DQUFtQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBNEI7UUFDakMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELFdBQVcsQ0FDVCxDQUFJO1FBRUosTUFBTSxPQUFPLEdBQUcsbUNBQW1DLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMscUNBQXFDO0lBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDekMsTUFBTSxDQUNKLE9BQW9DLEVBQ3BDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHFDQUFxQyxFQUFFLENBQUM7UUFDeEQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNqQyxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQW9DO1FBQ3pDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcscUNBQXFDLEVBQUUsQ0FBQztRQUN4RCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBQSxNQUFNLENBQUMsTUFBTSxtQ0FBSSxDQUFDLENBQUM7UUFDcEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDZDQUE2QztJQUNwRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRztJQUNqRCxNQUFNLENBQ0osQ0FBc0MsRUFDdEMsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsNkNBQTZDLEVBQUUsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBTTtRQUNiLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFzQztRQUMzQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLG1DQUFtQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QsV0FBVyxDQUNULENBQUk7UUFFSixNQUFNLE9BQU8sR0FBRyw2Q0FBNkMsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUywwQkFBMEI7SUFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3ZGLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixNQUFNLENBQUMsT0FBeUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN4RSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsMEJBQTBCLEVBQUUsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMvQixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3ZDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDckMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNyQyxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdFLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsR0FBRyxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDOUIsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQW9ELElBQVE7UUFDaEUsT0FBTyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELFdBQVcsQ0FBb0QsTUFBUzs7UUFDdEUsTUFBTSxPQUFPLEdBQUcsMEJBQTBCLEVBQUUsQ0FBQztRQUM3QyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsTUFBQSxNQUFNLENBQUMsWUFBWSxtQ0FBSSxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFBLE1BQU0sQ0FBQyxXQUFXLG1DQUFJLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBQSxNQUFNLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUM7UUFDN0MsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGtDQUFrQztJQUN6QyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxNQUFNLENBQUMsQ0FBMkIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMxRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxrQ0FBa0MsRUFBRSxDQUFDO1FBQ3JELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQTJCO1FBQ2hDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sd0JBQXdCLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLGtDQUFrQyxFQUFFLENBQUM7UUFDckQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDRCQUE0QjtJQUNuQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDdkYsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE1BQU0sQ0FBQyxPQUEyQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzFFLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw0QkFBNEIsRUFBRSxDQUFDO1FBQy9DLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdkMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNyQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3JDLFNBQVM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0RCxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDckIsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3pFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTJCO1FBQ2hDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxHQUFHLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM5QixHQUFHLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBc0QsSUFBUTtRQUNsRSxPQUFPLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSyxFQUFVLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsV0FBVyxDQUFzRCxNQUFTOztRQUN4RSxNQUFNLE9BQU8sR0FBRyw0QkFBNEIsRUFBRSxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBQSxNQUFNLENBQUMsSUFBSSxtQ0FBSSxFQUFFLENBQUM7UUFDakMsT0FBTyxDQUFDLFlBQVksR0FBRyxNQUFBLE1BQU0sQ0FBQyxZQUFZLG1DQUFJLENBQUMsQ0FBQztRQUNoRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQUEsTUFBTSxDQUFDLFdBQVcsbUNBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxNQUFBLE1BQU0sQ0FBQyxVQUFVLG1DQUFJLEVBQUUsQ0FBQztRQUM3QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsb0NBQW9DO0lBQzNDLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHO0lBQ3hDLE1BQU0sQ0FBQyxDQUE2QixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzVFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLG9DQUFvQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBNkI7UUFDbEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTywwQkFBMEIsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELFdBQVcsQ0FDVCxDQUFJO1FBRUosTUFBTSxPQUFPLEdBQUcsb0NBQW9DLEVBQUUsQ0FBQztRQUN2RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsb0NBQW9DO0lBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDL0QsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHO0lBQ3hDLE1BQU0sQ0FDSixPQUFtQyxFQUNuQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsb0NBQW9DLEVBQUUsQ0FBQztRQUN2RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMvQixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25DLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDakMsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RELFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ3JGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQW1DO1FBQ3hDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxHQUFHLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTywwQkFBMEIsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELFdBQVcsQ0FDVCxNQUFTOztRQUVULE1BQU0sT0FBTyxHQUFHLG9DQUFvQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQUEsTUFBTSxDQUFDLFFBQVEsbUNBQUksQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBQSxNQUFNLENBQUMsT0FBTyxtQ0FBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsNENBQTRDO0lBQ25ELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHO0lBQ2hELE1BQU0sQ0FDSixDQUFxQyxFQUNyQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw0Q0FBNEMsRUFBRSxDQUFDO1FBQy9ELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQXFDO1FBQzFDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sa0NBQWtDLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLDRDQUE0QyxFQUFFLENBQUM7UUFDL0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLHVDQUF1QztJQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBQzNDLE1BQU0sQ0FDSixPQUFzQyxFQUN0QyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyx1Q0FBdUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbkMsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RELFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFzQztRQUMzQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyw2QkFBNkIsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELFdBQVcsQ0FDVCxNQUFTOztRQUVULE1BQU0sT0FBTyxHQUFHLHVDQUF1QyxFQUFFLENBQUM7UUFDMUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQUEsTUFBTSxDQUFDLFFBQVEsbUNBQUksQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUywrQ0FBK0M7SUFDdEQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUc7SUFDbkQsTUFBTSxDQUNKLENBQXdDLEVBQ3hDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLCtDQUErQyxFQUFFLENBQUM7UUFDbEUsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBd0M7UUFDN0MsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxxQ0FBcUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUssRUFBVSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUNELFdBQVcsQ0FDVCxDQUFJO1FBRUosTUFBTSxPQUFPLEdBQUcsK0NBQStDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQTJERixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUM7QUFDbkQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBWSxHQUFRLEVBQUUsSUFBMkI7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxPQUFPLEtBQUksY0FBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBdUI7UUFDakMsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELHVCQUF1QixDQUNyQixPQUFtQztRQUVuQyxNQUFNLElBQUksR0FBRywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQixrQ0FBa0MsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBMEI7UUFDdkMsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCx3QkFBd0IsQ0FDdEIsT0FBb0M7UUFFcEMsTUFBTSxJQUFJLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakYsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsbUNBQW1DLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3BFLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQTJCO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQTBCO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQXlCO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELHNCQUFzQixDQUNwQixPQUFrQztRQUVsQyxNQUFNLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQixpQ0FBaUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRCxnQ0FBZ0MsQ0FDOUIsT0FBNEM7UUFFNUMsTUFBTSxJQUFJLEdBQUcsbUNBQW1DLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekYsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsMkNBQTJDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzVFLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQTBCO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsMEJBQTBCLENBQ3hCLE9BQXNDO1FBRXRDLE1BQU0sSUFBSSxHQUFHLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25GLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLHFDQUFxQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELHFCQUFxQixDQUNuQixPQUFpQztRQUVqQyxNQUFNLElBQUksR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUEwQjtRQUN2QyxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUF1QjtRQUNqQyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQscUJBQXFCLENBQ25CLE9BQWlDO1FBRWpDLE1BQU0sSUFBSSxHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQTJCO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsd0JBQXdCLENBQ3RCLE9BQW9DO1FBRXBDLE1BQU0sSUFBSSxHQUFHLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNwRSxDQUFDO0lBQ0osQ0FBQztJQUVELGtDQUFrQyxDQUNoQyxPQUE4QztRQUU5QyxNQUFNLElBQUksR0FBRyxxQ0FBcUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQiw2Q0FBNkMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDOUUsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBdUI7UUFDakMsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELHFCQUFxQixDQUNuQixPQUFpQztRQUVqQyxNQUFNLElBQUksR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELHFCQUFxQixDQUNuQixPQUFpQztRQUVqQyxNQUFNLElBQUksR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUF3QjtRQUNuQyxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsd0JBQXdCLENBQ3RCLE9BQW9DO1FBRXBDLE1BQU0sSUFBSSxHQUFHLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNwRSxDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQixDQUN4QixPQUFzQztRQUV0QyxNQUFNLElBQUksR0FBRyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQixxQ0FBcUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0IsQ0FDdEIsT0FBb0M7UUFFcEMsTUFBTSxJQUFJLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakYsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsbUNBQW1DLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3BFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFTRCxNQUFNLEVBQUUsR0FBUSxDQUFDLEdBQUcsRUFBRTtJQUNwQixJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDbEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDbEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sZ0NBQWdDLENBQUM7QUFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUVMLFNBQVMsZUFBZSxDQUFDLEdBQVc7SUFDbEMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsR0FBZTtJQUN0QyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDO0FBcUJELElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDM0IsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBVyxDQUFDO0lBQzVCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsS0FBVTtJQUN2QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDIn0=