@decaf-ts/for-fabric 0.13.31-experimental.3 → 0.13.32

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 (563) hide show
  1. package/dist/for-fabric.cjs +2 -4001
  2. package/dist/for-fabric.cjs.map +1 -0
  3. package/dist/for-fabric.js +2 -4111
  4. package/dist/for-fabric.js.map +1 -0
  5. package/lib/cjs/bin/cli.cjs +2 -2
  6. package/lib/cjs/bin/cli.cjs.map +1 -0
  7. package/lib/cjs/cli-module.cjs +2 -2
  8. package/lib/cjs/cli-module.cjs.map +1 -0
  9. package/lib/cjs/cli-utils.cjs +2 -2
  10. package/lib/cjs/cli-utils.cjs.map +1 -0
  11. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  12. package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
  13. package/lib/cjs/client/FabricClientContext.cjs +2 -2
  14. package/lib/cjs/client/FabricClientContext.cjs.map +1 -0
  15. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  16. package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
  17. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  18. package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
  19. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  20. package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
  21. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  22. package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
  23. package/lib/cjs/client/collections/generation.cjs +2 -2
  24. package/lib/cjs/client/collections/generation.cjs.map +1 -0
  25. package/lib/cjs/client/collections/index.cjs +2 -2
  26. package/lib/cjs/client/collections/index.cjs.map +1 -0
  27. package/lib/cjs/client/constants.cjs +2 -2
  28. package/lib/cjs/client/constants.cjs.map +1 -0
  29. package/lib/cjs/client/crypto.cjs +2 -2
  30. package/lib/cjs/client/crypto.cjs.map +1 -0
  31. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  32. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
  33. package/lib/cjs/client/erc20/index.cjs +2 -2
  34. package/lib/cjs/client/erc20/index.cjs.map +1 -0
  35. package/lib/cjs/client/fabric-fs.cjs +2 -2
  36. package/lib/cjs/client/fabric-fs.cjs.map +1 -0
  37. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  38. package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
  39. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  40. package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
  41. package/lib/cjs/client/ids/index.cjs +2 -2
  42. package/lib/cjs/client/ids/index.cjs.map +1 -0
  43. package/lib/cjs/client/index.cjs +2 -2
  44. package/lib/cjs/client/index.cjs.map +1 -0
  45. package/lib/cjs/client/indexes/generation.cjs +2 -2
  46. package/lib/cjs/client/indexes/generation.cjs.map +1 -0
  47. package/lib/cjs/client/indexes/index.cjs +2 -2
  48. package/lib/cjs/client/indexes/index.cjs.map +1 -0
  49. package/lib/cjs/client/logging.cjs +2 -2
  50. package/lib/cjs/client/logging.cjs.map +1 -0
  51. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  52. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
  53. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  54. package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
  55. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  56. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
  57. package/lib/cjs/client/services/constants.cjs +2 -2
  58. package/lib/cjs/client/services/constants.cjs.map +1 -0
  59. package/lib/cjs/client/services/index.cjs +2 -2
  60. package/lib/cjs/client/services/index.cjs.map +1 -0
  61. package/lib/cjs/client/types.cjs +2 -2
  62. package/lib/cjs/client/types.cjs.map +1 -0
  63. package/lib/cjs/client/utils.cjs +2 -2
  64. package/lib/cjs/client/utils.cjs.map +1 -0
  65. package/lib/cjs/contract/Address.cjs +2 -2
  66. package/lib/cjs/contract/Address.cjs.map +1 -0
  67. package/lib/cjs/contract/AddressContract.cjs +2 -2
  68. package/lib/cjs/contract/AddressContract.cjs.map +1 -0
  69. package/lib/cjs/contract/AuditContract.cjs +2 -2
  70. package/lib/cjs/contract/AuditContract.cjs.map +1 -0
  71. package/lib/cjs/contract/BatchContract.cjs +2 -2
  72. package/lib/cjs/contract/BatchContract.cjs.map +1 -0
  73. package/lib/cjs/contract/MarketContract.cjs +2 -2
  74. package/lib/cjs/contract/MarketContract.cjs.map +1 -0
  75. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  76. package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
  77. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  78. package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
  79. package/lib/cjs/contract/OtherLeafletContract.cjs +2 -2
  80. package/lib/cjs/contract/OtherLeafletContract.cjs.map +1 -0
  81. package/lib/cjs/contract/OtherLeafletFileContract.cjs +2 -2
  82. package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +1 -0
  83. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  84. package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
  85. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  86. package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
  87. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  88. package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
  89. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  90. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
  91. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  92. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
  93. package/lib/cjs/contract/Product.cjs +2 -2
  94. package/lib/cjs/contract/Product.cjs.map +1 -0
  95. package/lib/cjs/contract/ProductContract.cjs +2 -2
  96. package/lib/cjs/contract/ProductContract.cjs.map +1 -0
  97. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  98. package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
  99. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  100. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
  101. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  102. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
  103. package/lib/cjs/contract/User.cjs +2 -2
  104. package/lib/cjs/contract/User.cjs.map +1 -0
  105. package/lib/cjs/contract/UserContract.cjs +2 -2
  106. package/lib/cjs/contract/UserContract.cjs.map +1 -0
  107. package/lib/cjs/contract/index.cjs +2 -2
  108. package/lib/cjs/contract/index.cjs.map +1 -0
  109. package/lib/cjs/contract/logging-context.cjs +2 -2
  110. package/lib/cjs/contract/logging-context.cjs.map +1 -0
  111. package/lib/cjs/contract/models/Audit.cjs +2 -2
  112. package/lib/cjs/contract/models/Audit.cjs.map +1 -0
  113. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  114. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
  115. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  116. package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
  117. package/lib/cjs/contract/models/Batch.cjs +2 -2
  118. package/lib/cjs/contract/models/Batch.cjs.map +1 -0
  119. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  120. package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
  121. package/lib/cjs/contract/models/History.cjs +2 -2
  122. package/lib/cjs/contract/models/History.cjs.map +1 -0
  123. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  124. package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
  125. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  126. package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
  127. package/lib/cjs/contract/models/Market.cjs +2 -2
  128. package/lib/cjs/contract/models/Market.cjs.map +1 -0
  129. package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
  130. package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
  131. package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
  132. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
  133. package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
  134. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
  135. package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
  136. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
  137. package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
  138. package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
  139. package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
  140. package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
  141. package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
  142. package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
  143. package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
  144. package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
  145. package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
  146. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
  147. package/lib/cjs/contract/models/Product.cjs +2 -2
  148. package/lib/cjs/contract/models/Product.cjs.map +1 -0
  149. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  150. package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
  151. package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
  152. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
  153. package/lib/cjs/contract/models/constants.cjs +2 -2
  154. package/lib/cjs/contract/models/constants.cjs.map +1 -0
  155. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  156. package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
  157. package/lib/cjs/contract/models/decorators.cjs +2 -2
  158. package/lib/cjs/contract/models/decorators.cjs.map +1 -0
  159. package/lib/cjs/contract/models/gtin.cjs +2 -2
  160. package/lib/cjs/contract/models/gtin.cjs.map +1 -0
  161. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  162. package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
  163. package/lib/cjs/contract/trackedModels/History.cjs +2 -2
  164. package/lib/cjs/contract/trackedModels/History.cjs.map +1 -0
  165. package/lib/cjs/contract/trackedModels/OtherAudit.cjs +2 -2
  166. package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +1 -0
  167. package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs +2 -2
  168. package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs.map +1 -0
  169. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +2 -2
  170. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +1 -0
  171. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +2 -2
  172. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +1 -0
  173. package/lib/cjs/contract/trackedModels/OtherMarket.cjs +2 -2
  174. package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +1 -0
  175. package/lib/cjs/contract/trackedModels/OtherProduct.cjs +2 -2
  176. package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +1 -0
  177. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +2 -2
  178. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +1 -0
  179. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +2 -2
  180. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +1 -0
  181. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +2 -2
  182. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +1 -0
  183. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  184. package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
  185. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  186. package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
  187. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  188. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
  189. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  190. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
  191. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  192. package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
  193. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  194. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
  195. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  196. package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
  197. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  198. package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
  199. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  200. package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
  201. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  202. package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
  203. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  204. package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
  205. package/lib/cjs/contracts/auth/index.cjs +2 -2
  206. package/lib/cjs/contracts/auth/index.cjs.map +1 -0
  207. package/lib/cjs/contracts/bootstrap.cjs +2 -2
  208. package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
  209. package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
  210. package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
  211. package/lib/cjs/contracts/crud/index.cjs +2 -2
  212. package/lib/cjs/contracts/crud/index.cjs.map +1 -0
  213. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  214. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
  215. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  216. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
  217. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  218. package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
  219. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  220. package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
  221. package/lib/cjs/contracts/fabric-overrides.cjs +2 -2
  222. package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
  223. package/lib/cjs/contracts/index.cjs +2 -2
  224. package/lib/cjs/contracts/index.cjs.map +1 -0
  225. package/lib/cjs/contracts/logging.cjs +2 -2
  226. package/lib/cjs/contracts/logging.cjs.map +1 -0
  227. package/lib/cjs/contracts/overrides.cjs +2 -2
  228. package/lib/cjs/contracts/overrides.cjs.map +1 -0
  229. package/lib/cjs/contracts/types.cjs +2 -2
  230. package/lib/cjs/contracts/types.cjs.map +1 -0
  231. package/lib/cjs/contracts/uuid.cjs +2 -2
  232. package/lib/cjs/contracts/uuid.cjs.map +1 -0
  233. package/lib/cjs/index.cjs +2 -2
  234. package/lib/cjs/index.cjs.map +1 -0
  235. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  236. package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
  237. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  238. package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
  239. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  240. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
  241. package/lib/cjs/shared/constants.cjs +2 -2
  242. package/lib/cjs/shared/constants.cjs.map +1 -0
  243. package/lib/cjs/shared/decorators.cjs +2 -2
  244. package/lib/cjs/shared/decorators.cjs.map +1 -0
  245. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  246. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
  247. package/lib/cjs/shared/erc20/index.cjs +2 -2
  248. package/lib/cjs/shared/erc20/index.cjs.map +1 -0
  249. package/lib/cjs/shared/errors.cjs +2 -2
  250. package/lib/cjs/shared/errors.cjs.map +1 -0
  251. package/lib/cjs/shared/events.cjs +2 -2
  252. package/lib/cjs/shared/events.cjs.map +1 -0
  253. package/lib/cjs/shared/fabric-types.cjs +2 -2
  254. package/lib/cjs/shared/fabric-types.cjs.map +1 -0
  255. package/lib/cjs/shared/index.cjs +2 -2
  256. package/lib/cjs/shared/index.cjs.map +1 -0
  257. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  258. package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
  259. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  260. package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
  261. package/lib/cjs/shared/math.cjs +2 -2
  262. package/lib/cjs/shared/math.cjs.map +1 -0
  263. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  264. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
  265. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  266. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
  267. package/lib/cjs/shared/model/Identity.cjs +2 -2
  268. package/lib/cjs/shared/model/Identity.cjs.map +1 -0
  269. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  270. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
  271. package/lib/cjs/shared/model/index.cjs +2 -2
  272. package/lib/cjs/shared/model/index.cjs.map +1 -0
  273. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  274. package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
  275. package/lib/cjs/shared/overrides/index.cjs +2 -2
  276. package/lib/cjs/shared/overrides/index.cjs.map +1 -0
  277. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  278. package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
  279. package/lib/cjs/shared/types.cjs +2 -2
  280. package/lib/cjs/shared/types.cjs.map +1 -0
  281. package/lib/cjs/version.cjs +5 -5
  282. package/lib/cjs/version.cjs.map +1 -0
  283. package/lib/esm/bin/cli.js +1 -1
  284. package/lib/esm/bin/cli.js.map +1 -0
  285. package/lib/esm/cli-module.js +1 -1
  286. package/lib/esm/cli-module.js.map +1 -0
  287. package/lib/esm/cli-utils.js +1 -1
  288. package/lib/esm/cli-utils.js.map +1 -0
  289. package/lib/esm/client/FabricClientAdapter.js +1 -1
  290. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  291. package/lib/esm/client/FabricClientContext.js +1 -1
  292. package/lib/esm/client/FabricClientContext.js.map +1 -0
  293. package/lib/esm/client/FabricClientDispatch.js +1 -1
  294. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  295. package/lib/esm/client/FabricClientPaginator.js +1 -1
  296. package/lib/esm/client/FabricClientPaginator.js.map +1 -0
  297. package/lib/esm/client/FabricClientRepository.js +1 -1
  298. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  299. package/lib/esm/client/FabricClientStatement.js +1 -1
  300. package/lib/esm/client/FabricClientStatement.js.map +1 -0
  301. package/lib/esm/client/collections/generation.js +1 -1
  302. package/lib/esm/client/collections/generation.js.map +1 -0
  303. package/lib/esm/client/collections/index.js +1 -1
  304. package/lib/esm/client/collections/index.js.map +1 -0
  305. package/lib/esm/client/constants.js +1 -1
  306. package/lib/esm/client/constants.js.map +1 -0
  307. package/lib/esm/client/crypto.js +1 -1
  308. package/lib/esm/client/crypto.js.map +1 -0
  309. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  310. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  311. package/lib/esm/client/erc20/index.js +1 -1
  312. package/lib/esm/client/erc20/index.js.map +1 -0
  313. package/lib/esm/client/fabric-fs.js +1 -1
  314. package/lib/esm/client/fabric-fs.js.map +1 -0
  315. package/lib/esm/client/fabric-hsm.js +1 -1
  316. package/lib/esm/client/fabric-hsm.js.map +1 -0
  317. package/lib/esm/client/ids/id-extraction.js +1 -1
  318. package/lib/esm/client/ids/id-extraction.js.map +1 -0
  319. package/lib/esm/client/ids/index.js +1 -1
  320. package/lib/esm/client/ids/index.js.map +1 -0
  321. package/lib/esm/client/index.js +1 -1
  322. package/lib/esm/client/index.js.map +1 -0
  323. package/lib/esm/client/indexes/generation.js +1 -1
  324. package/lib/esm/client/indexes/generation.js.map +1 -0
  325. package/lib/esm/client/indexes/index.js +1 -1
  326. package/lib/esm/client/indexes/index.js.map +1 -0
  327. package/lib/esm/client/logging.js +1 -1
  328. package/lib/esm/client/logging.js.map +1 -0
  329. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  330. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
  331. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  332. package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
  333. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  334. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
  335. package/lib/esm/client/services/constants.js +1 -1
  336. package/lib/esm/client/services/constants.js.map +1 -0
  337. package/lib/esm/client/services/index.js +1 -1
  338. package/lib/esm/client/services/index.js.map +1 -0
  339. package/lib/esm/client/types.js +1 -1
  340. package/lib/esm/client/types.js.map +1 -0
  341. package/lib/esm/client/utils.js +1 -1
  342. package/lib/esm/client/utils.js.map +1 -0
  343. package/lib/esm/contract/Address.js +1 -1
  344. package/lib/esm/contract/Address.js.map +1 -0
  345. package/lib/esm/contract/AddressContract.js +1 -1
  346. package/lib/esm/contract/AddressContract.js.map +1 -0
  347. package/lib/esm/contract/AuditContract.js +1 -1
  348. package/lib/esm/contract/AuditContract.js.map +1 -0
  349. package/lib/esm/contract/BatchContract.js +1 -1
  350. package/lib/esm/contract/BatchContract.js.map +1 -0
  351. package/lib/esm/contract/MarketContract.js +1 -1
  352. package/lib/esm/contract/MarketContract.js.map +1 -0
  353. package/lib/esm/contract/OtherAuditContract.js +1 -1
  354. package/lib/esm/contract/OtherAuditContract.js.map +1 -0
  355. package/lib/esm/contract/OtherBatchContract.js +1 -1
  356. package/lib/esm/contract/OtherBatchContract.js.map +1 -0
  357. package/lib/esm/contract/OtherLeafletContract.js +1 -1
  358. package/lib/esm/contract/OtherLeafletContract.js.map +1 -0
  359. package/lib/esm/contract/OtherLeafletFileContract.js +1 -1
  360. package/lib/esm/contract/OtherLeafletFileContract.js.map +1 -0
  361. package/lib/esm/contract/OtherMarketContract.js +1 -1
  362. package/lib/esm/contract/OtherMarketContract.js.map +1 -0
  363. package/lib/esm/contract/OtherProductContract.js +1 -1
  364. package/lib/esm/contract/OtherProductContract.js.map +1 -0
  365. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  366. package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
  367. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  368. package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
  369. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  370. package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
  371. package/lib/esm/contract/Product.js +1 -1
  372. package/lib/esm/contract/Product.js.map +1 -0
  373. package/lib/esm/contract/ProductContract.js +1 -1
  374. package/lib/esm/contract/ProductContract.js.map +1 -0
  375. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  376. package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
  377. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  378. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
  379. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  380. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
  381. package/lib/esm/contract/User.js +1 -1
  382. package/lib/esm/contract/User.js.map +1 -0
  383. package/lib/esm/contract/UserContract.js +1 -1
  384. package/lib/esm/contract/UserContract.js.map +1 -0
  385. package/lib/esm/contract/index.js +1 -1
  386. package/lib/esm/contract/index.js.map +1 -0
  387. package/lib/esm/contract/logging-context.js +1 -1
  388. package/lib/esm/contract/logging-context.js.map +1 -0
  389. package/lib/esm/contract/models/Audit.js +1 -1
  390. package/lib/esm/contract/models/Audit.js.map +1 -0
  391. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  392. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
  393. package/lib/esm/contract/models/BaseModel.js +1 -1
  394. package/lib/esm/contract/models/BaseModel.js.map +1 -0
  395. package/lib/esm/contract/models/Batch.js +1 -1
  396. package/lib/esm/contract/models/Batch.js.map +1 -0
  397. package/lib/esm/contract/models/GtinOwner.js +1 -1
  398. package/lib/esm/contract/models/GtinOwner.js.map +1 -0
  399. package/lib/esm/contract/models/History.js +1 -1
  400. package/lib/esm/contract/models/History.js.map +1 -0
  401. package/lib/esm/contract/models/Leaflet.js +1 -1
  402. package/lib/esm/contract/models/Leaflet.js.map +1 -0
  403. package/lib/esm/contract/models/LeafletFile.js +1 -1
  404. package/lib/esm/contract/models/LeafletFile.js.map +1 -0
  405. package/lib/esm/contract/models/Market.js +1 -1
  406. package/lib/esm/contract/models/Market.js.map +1 -0
  407. package/lib/esm/contract/models/OtherAudit.js +1 -1
  408. package/lib/esm/contract/models/OtherAudit.js.map +1 -0
  409. package/lib/esm/contract/models/OtherBatchShared.js +1 -1
  410. package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
  411. package/lib/esm/contract/models/OtherLeaflet.js +1 -1
  412. package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
  413. package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
  414. package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
  415. package/lib/esm/contract/models/OtherMarket.js +1 -1
  416. package/lib/esm/contract/models/OtherMarket.js.map +1 -0
  417. package/lib/esm/contract/models/OtherProduct.js +1 -1
  418. package/lib/esm/contract/models/OtherProduct.js.map +1 -0
  419. package/lib/esm/contract/models/OtherProductImage.js +1 -1
  420. package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
  421. package/lib/esm/contract/models/OtherProductShared.js +1 -1
  422. package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
  423. package/lib/esm/contract/models/OtherProductStrength.js +1 -1
  424. package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
  425. package/lib/esm/contract/models/Product.js +1 -1
  426. package/lib/esm/contract/models/Product.js.map +1 -0
  427. package/lib/esm/contract/models/ProductStrength.js +1 -1
  428. package/lib/esm/contract/models/ProductStrength.js.map +1 -0
  429. package/lib/esm/contract/models/SegregatedDocument.js +1 -1
  430. package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
  431. package/lib/esm/contract/models/constants.js +1 -1
  432. package/lib/esm/contract/models/constants.js.map +1 -0
  433. package/lib/esm/contract/models/decorators-private.js +1 -1
  434. package/lib/esm/contract/models/decorators-private.js.map +1 -0
  435. package/lib/esm/contract/models/decorators.js +1 -1
  436. package/lib/esm/contract/models/decorators.js.map +1 -0
  437. package/lib/esm/contract/models/gtin.js +1 -1
  438. package/lib/esm/contract/models/gtin.js.map +1 -0
  439. package/lib/esm/contract/models/history-dec.js +1 -1
  440. package/lib/esm/contract/models/history-dec.js.map +1 -0
  441. package/lib/esm/contract/trackedModels/History.js +1 -1
  442. package/lib/esm/contract/trackedModels/History.js.map +1 -0
  443. package/lib/esm/contract/trackedModels/OtherAudit.js +1 -1
  444. package/lib/esm/contract/trackedModels/OtherAudit.js.map +1 -0
  445. package/lib/esm/contract/trackedModels/OtherBatchShared.js +1 -1
  446. package/lib/esm/contract/trackedModels/OtherBatchShared.js.map +1 -0
  447. package/lib/esm/contract/trackedModels/OtherLeaflet.js +1 -1
  448. package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +1 -0
  449. package/lib/esm/contract/trackedModels/OtherLeafletFile.js +1 -1
  450. package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +1 -0
  451. package/lib/esm/contract/trackedModels/OtherMarket.js +1 -1
  452. package/lib/esm/contract/trackedModels/OtherMarket.js.map +1 -0
  453. package/lib/esm/contract/trackedModels/OtherProduct.js +1 -1
  454. package/lib/esm/contract/trackedModels/OtherProduct.js.map +1 -0
  455. package/lib/esm/contract/trackedModels/OtherProductImage.js +1 -1
  456. package/lib/esm/contract/trackedModels/OtherProductImage.js.map +1 -0
  457. package/lib/esm/contract/trackedModels/OtherProductShared.js +1 -1
  458. package/lib/esm/contract/trackedModels/OtherProductShared.js.map +1 -0
  459. package/lib/esm/contract/trackedModels/OtherProductStrength.js +1 -1
  460. package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +1 -0
  461. package/lib/esm/contracts/ContractAdapter.js +1 -1
  462. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  463. package/lib/esm/contracts/ContractContext.js +1 -1
  464. package/lib/esm/contracts/ContractContext.js.map +1 -0
  465. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  466. package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
  467. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  468. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
  469. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  470. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  471. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  472. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  473. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  474. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  475. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  476. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  477. package/lib/esm/contracts/MigrationContract.js +1 -1
  478. package/lib/esm/contracts/MigrationContract.js.map +1 -0
  479. package/lib/esm/contracts/PrivateSequence.js +1 -1
  480. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  481. package/lib/esm/contracts/auth/decorators.js +1 -1
  482. package/lib/esm/contracts/auth/decorators.js.map +1 -0
  483. package/lib/esm/contracts/auth/index.js +1 -1
  484. package/lib/esm/contracts/auth/index.js.map +1 -0
  485. package/lib/esm/contracts/bootstrap.js +1 -1
  486. package/lib/esm/contracts/bootstrap.js.map +1 -0
  487. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  488. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  489. package/lib/esm/contracts/crud/index.js +1 -1
  490. package/lib/esm/contracts/crud/index.js.map +1 -0
  491. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  492. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  493. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  494. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  495. package/lib/esm/contracts/erc20/index.js +1 -1
  496. package/lib/esm/contracts/erc20/index.js.map +1 -0
  497. package/lib/esm/contracts/erc20/models.js +1 -1
  498. package/lib/esm/contracts/erc20/models.js.map +1 -0
  499. package/lib/esm/contracts/fabric-overrides.js +1 -1
  500. package/lib/esm/contracts/fabric-overrides.js.map +1 -0
  501. package/lib/esm/contracts/index.js +1 -1
  502. package/lib/esm/contracts/index.js.map +1 -0
  503. package/lib/esm/contracts/logging.js +1 -1
  504. package/lib/esm/contracts/logging.js.map +1 -0
  505. package/lib/esm/contracts/overrides.js +1 -1
  506. package/lib/esm/contracts/overrides.js.map +1 -0
  507. package/lib/esm/contracts/types.js +1 -1
  508. package/lib/esm/contracts/types.js.map +1 -0
  509. package/lib/esm/contracts/uuid.js +1 -1
  510. package/lib/esm/contracts/uuid.js.map +1 -0
  511. package/lib/esm/index.js +1 -1
  512. package/lib/esm/index.js.map +1 -0
  513. package/lib/esm/shared/ClientSerializer.js +1 -1
  514. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  515. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  516. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  517. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  518. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  519. package/lib/esm/shared/constants.js +1 -1
  520. package/lib/esm/shared/constants.js.map +1 -0
  521. package/lib/esm/shared/decorators.js +1 -1
  522. package/lib/esm/shared/decorators.js.map +1 -0
  523. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  524. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  525. package/lib/esm/shared/erc20/index.js +1 -1
  526. package/lib/esm/shared/erc20/index.js.map +1 -0
  527. package/lib/esm/shared/errors.js +1 -1
  528. package/lib/esm/shared/errors.js.map +1 -0
  529. package/lib/esm/shared/events.js +1 -1
  530. package/lib/esm/shared/events.js.map +1 -0
  531. package/lib/esm/shared/fabric-types.js +1 -1
  532. package/lib/esm/shared/fabric-types.js.map +1 -0
  533. package/lib/esm/shared/index.js +1 -1
  534. package/lib/esm/shared/index.js.map +1 -0
  535. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  536. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  537. package/lib/esm/shared/interfaces/index.js +1 -1
  538. package/lib/esm/shared/interfaces/index.js.map +1 -0
  539. package/lib/esm/shared/math.js +1 -1
  540. package/lib/esm/shared/math.js.map +1 -0
  541. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  542. package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
  543. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  544. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  545. package/lib/esm/shared/model/Identity.js +1 -1
  546. package/lib/esm/shared/model/Identity.js.map +1 -0
  547. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  548. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  549. package/lib/esm/shared/model/index.js +1 -1
  550. package/lib/esm/shared/model/index.js.map +1 -0
  551. package/lib/esm/shared/overrides/Model.js +1 -1
  552. package/lib/esm/shared/overrides/Model.js.map +1 -0
  553. package/lib/esm/shared/overrides/index.js +1 -1
  554. package/lib/esm/shared/overrides/index.js.map +1 -0
  555. package/lib/esm/shared/overrides/overrides.js +1 -1
  556. package/lib/esm/shared/overrides/overrides.js.map +1 -0
  557. package/lib/esm/shared/types.js +1 -1
  558. package/lib/esm/shared/types.js.map +1 -0
  559. package/lib/esm/version.js +4 -4
  560. package/lib/esm/version.js.map +1 -0
  561. package/lib/types/version.d.cts +3 -3
  562. package/lib/types/version.d.mts +3 -3
  563. package/package.json +1 -1
@@ -266,5 +266,5 @@ class FabricClientRepository extends core_1.Repository {
266
266
  }
267
267
  }
268
268
  exports.FabricClientRepository = FabricClientRepository;
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50UmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBS0wsY0FBYyxFQUNkLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsVUFBVSxHQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3ZELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsYUFBYSxFQUViLG1CQUFtQixFQUNuQixlQUFlLEdBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQ0FBZ0M7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDhCQUF5QjtBQUU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0gsTUFBTSxPQUFPLHNCQUdYLFNBQVEsVUFBZ0I7SUFXeEIsWUFBWSxPQUFXLEVBQUUsS0FBc0IsRUFBRSxRQUFpQixLQUFLO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBWFosZUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNyRSxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLGtCQUFrQixFQUFFLEtBQUs7WUFDekIseUJBQXlCLEVBQUUsSUFBSTtZQUMvQiwwQkFBMEIsRUFBRSxJQUFJO1lBQ2hDLHVCQUF1QixFQUFFLEtBQUs7WUFDOUIsb0JBQW9CLEVBQUUsS0FBSztTQUM1QixDQUFDLENBQUM7SUFJSCxDQUFDO0lBRVEsUUFBUSxDQUFDLEtBQXFDO1FB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R0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHtcbiAgQ29udGV4dE9mLFxuICBEaXJlY3Rpb25MaW1pdE9mZnNldCxcbiAgRmxhZ3NPZixcbiAgT2JzZXJ2ZXJIYW5kbGVyLFxuICBPcmRlckRpcmVjdGlvbixcbiAgUGVyc2lzdGVuY2VLZXlzLFxuICBQcmVwYXJlZFN0YXRlbWVudEtleXMsXG4gIFJlcG9zaXRvcnksXG4gIFNlcmlhbGl6ZWRQYWdlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IHR5cGUgRmFicmljQ2xpZW50QWRhcHRlciB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudEFkYXB0ZXJcIjtcbmltcG9ydCB7XG4gIGVuZm9yY2VEQkRlY29yYXRvcnMsXG4gIE9wZXJhdGlvbktleXMsXG4gIFByaW1hcnlLZXlUeXBlLFxuICByZWR1Y2VFcnJvcnNUb1ByaW50LFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRQYWdpbmF0b3IgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRQYWdpbmF0b3JcIjtcbmltcG9ydCB7IFF1ZXJ5UmVzdWx0VG9vTGFyZ2VFcnJvciB9IGZyb20gXCIuLi9zaGFyZWQvZXJyb3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcG9zaXRvcnkgaW1wbGVtZW50YXRpb24gZm9yIEZhYnJpYyBjbGllbnQgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgRXh0ZW5kcyB0aGUgZ2VuZXJpYyBSZXBvc2l0b3J5IHRvIHByZXBhcmUgY29udGV4dCBhbmQgYXJndW1lbnRzIGZvciBDUlVEIG9wZXJhdGlvbnMgZXhlY3V0ZWQgdmlhIGEgRmFicmljIGNsaWVudCBBZGFwdGVyLCB3aXJpbmcgUmVwb3NpdG9yeUZsYWdzIGFuZCBGYWJyaWMtc3BlY2lmaWMgb3ZlcnJpZGVzLlxuICogQHRlbXBsYXRlIE0gZXh0ZW5kcyBNb2RlbCAtIFRoZSBtb2RlbCB0eXBlIGhhbmRsZWQgYnkgdGhpcyByZXBvc2l0b3J5XG4gKiBAcGFyYW0ge0FkYXB0ZXI8YW55LCBNYW5nb1F1ZXJ5LCBGYWJyaWNGbGFncywgQ29udGV4dDxGYWJyaWNGbGFncz4+fSBbYWRhcHRlcl0gLSBPcHRpb25hbCBhZGFwdGVyIGluc3RhbmNlIHVzZWQgdG8gZXhlY3V0ZSBvcGVyYXRpb25zXG4gKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBbY2xhenpdIC0gT3B0aW9uYWwgbW9kZWwgY29uc3RydWN0b3IgdXNlZCBieSB0aGUgcmVwb3NpdG9yeVxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5XG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuICogaW1wb3J0IHsgRmFicmljQ2xpZW50UmVwb3NpdG9yeSB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWZhYnJpY1wiO1xuICpcbiAqIGNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7IGlkITogc3RyaW5nOyBuYW1lITogc3RyaW5nOyB9XG4gKiBjb25zdCByZXBvID0gbmV3IEZhYnJpY0NsaWVudFJlcG9zaXRvcnk8VXNlcj4oKTtcbiAqIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCByZXBvLmNyZWF0ZShuZXcgVXNlcih7IGlkOiBcIjFcIiwgbmFtZTogXCJBbGljZVwiIH0pKTtcbiAqIGNvbnN0IGxvYWRlZCA9IGF3YWl0IHJlcG8ucmVhZChcIjFcIik7XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBBcHBcbiAqICAgcGFydGljaXBhbnQgUmVwbyBhcyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5XG4gKiAgIHBhcnRpY2lwYW50IEFkYXB0ZXJcbiAqICAgQXBwLT4+UmVwbzogY3JlYXRlKG1vZGVsKVxuICogICBSZXBvLT4+UmVwbzogY3JlYXRlUHJlZml4KG1vZGVsLCAuLi5hcmdzKVxuICogICBSZXBvLT4+QWRhcHRlcjogY3JlYXRlKHRhYmxlLCBpZCwgbW9kZWwsIGZsYWdzKVxuICogICBBZGFwdGVyLS0+PlJlcG86IHJlc3VsdFxuICogICBSZXBvLS0+PkFwcDogbW9kZWxcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnk8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgQSBleHRlbmRzIEZhYnJpY0NsaWVudEFkYXB0ZXIgPSBGYWJyaWNDbGllbnRBZGFwdGVyLFxuPiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgQT4ge1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX292ZXJyaWRlcyA9IE9iamVjdC5hc3NpZ24oe30sIHN1cGVyW1wiX292ZXJyaWRlc1wiXSwge1xuICAgIGlnbm9yZVZhbGlkYXRpb246IHRydWUsXG4gICAgaWdub3JlSGFuZGxlcnM6IHRydWUsXG4gICAgYWxsb3dSYXdTdGF0ZW1lbnRzOiBmYWxzZSxcbiAgICBmb3JjZVByZXBhcmVTaW1wbGVRdWVyaWVzOiB0cnVlLFxuICAgIGZvcmNlUHJlcGFyZUNvbXBsZXhRdWVyaWVzOiB0cnVlLFxuICAgIGFsbG93R2VuZXJhdGlvbk92ZXJyaWRlOiBmYWxzZSxcbiAgICByZWJ1aWxkV2l0aFRyYW5zaWVudDogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBBLCBjbGF6ej86IENvbnN0cnVjdG9yPE0+LCBmb3JjZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgc3VwZXIoYWRhcHRlciwgY2xhenosIGZvcmNlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG92ZXJyaWRlKGZsYWdzOiBQYXJ0aWFsPEZsYWdzT2Y8Q29udGV4dE9mPEE+Pj4pOiB0aGlzIHtcbiAgICByZXR1cm4gc3VwZXJcbiAgICAgIC5vdmVycmlkZShPYmplY3QuYXNzaWduKHt9LCBmbGFncywgdGhpcy5fb3ZlcnJpZGVzKSlcbiAgICAgIC5mb3IoZmxhZ3MgYXMgYW55KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBPYnNlcnZlckhhbmRsZXIoKTogT2JzZXJ2ZXJIYW5kbGVyIHtcbiAgICByZXR1cm4gc3VwZXIuT2JzZXJ2ZXJIYW5kbGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBwYWdpbmF0ZUJ5KFxuICAgIGtleToga2V5b2YgTSxcbiAgICBvcmRlcjogT3JkZXJEaXJlY3Rpb24sXG4gICAgcmVmOiBPbWl0PERpcmVjdGlvbkxpbWl0T2Zmc2V0LCBcImRpcmVjdGlvblwiPiA9IHtcbiAgICAgIG9mZnNldDogMSxcbiAgICAgIGxpbWl0OiAxMCxcbiAgICB9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8U2VyaWFsaXplZFBhZ2U8TT4+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0VfQlksIHRydWUpXG4gICAgKS5mb3IodGhpcy5wYWdpbmF0ZUJ5KTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBwYWdpbmF0aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoIHBhZ2Ugc2l6ZSAke3JlZi5saW1pdH1gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoXG4gICAgICB0aGlzLnBhZ2luYXRlQnkubmFtZSxcbiAgICAgIGtleSxcbiAgICAgIG9yZGVyLFxuICAgICAgeyBsaW1pdDogcmVmLmxpbWl0LCBvZmZzZXQ6IHJlZi5vZmZzZXQsIGJvb2ttYXJrOiByZWYuYm9va21hcmsgfSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgbGlzdEJ5KFxuICAgIGtleToga2V5b2YgTSxcbiAgICBvcmRlcjogT3JkZXJEaXJlY3Rpb24sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkxJU1RfQlksIHRydWUpXG4gICAgKS5mb3IodGhpcy5saXN0QnkpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGxpc3RpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5ICR7a2V5IGFzIHN0cmluZ30gJHtvcmRlcn1gXG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgICAgdGhpcy5saXN0QnkubmFtZSxcbiAgICAgICAga2V5LFxuICAgICAgICBvcmRlcixcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKSkgYXMgYW55O1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgUXVlcnlSZXN1bHRUb29MYXJnZUVycm9yKSB7XG4gICAgICAgIGxvZy53YXJuKFxuICAgICAgICAgIGBsaXN0QnkgcmVzdWx0IHNldCB0b28gbGFyZ2UgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBrZXk9JHtTdHJpbmcoa2V5KX0gb3JkZXI9JHtvcmRlcn0uIFJldHVybmluZyBlbXB0eSBsaXN0LiBVc2UgcGFnaW5hdGVCeSBmb3IgbGFyZ2UgZGF0YXNldHMuYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gW10gYXMgTVtdO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kQnkoXG4gICAga2V5OiBrZXlvZiBNLFxuICAgIHZhbHVlOiBhbnksXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfQlksIHRydWUpXG4gICAgKS5mb3IodGhpcy5maW5kQnkpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgYWxsICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoICR7a2V5IGFzIHN0cmluZ30gJHt2YWx1ZX1gXG4gICAgKTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc3RhdGVtZW50KFxuICAgICAgdGhpcy5maW5kQnkubmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICkpIGFzIGFueTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRPbmVCeShcbiAgICBrZXk6IGtleW9mIE0sXG4gICAgdmFsdWU6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfT05FX0JZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZmluZE9uZUJ5KTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBmaW5kaW5nIE9uZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCAke2tleSBhcyBzdHJpbmd9ICR7dmFsdWV9YFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMuZmluZE9uZUJ5Lm5hbWUsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApKSBhcyBhbnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgb3JkZXI6IE9yZGVyRGlyZWN0aW9uID0gT3JkZXJEaXJlY3Rpb24uQVNDLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5ELCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZmluZCk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgZmluZGluZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gYnkgZGVmYXVsdCBxdWVyeSBhdHRyaWJ1dGVzYFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMuZmluZC5uYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBvcmRlcixcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApKSBhcyBhbnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBwYWdlKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgZGlyZWN0aW9uOiBPcmRlckRpcmVjdGlvbiA9IE9yZGVyRGlyZWN0aW9uLkFTQyxcbiAgICByZWY6IE9taXQ8RGlyZWN0aW9uTGltaXRPZmZzZXQsIFwiZGlyZWN0aW9uXCI+ID0ge1xuICAgICAgb2Zmc2V0OiAxLFxuICAgICAgbGltaXQ6IDEwLFxuICAgIH0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxTZXJpYWxpemVkUGFnZTxNPj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnBhZ2UpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYHBhZ2luZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gYnkgZGVmYXVsdCBxdWVyeSBhdHRyaWJ1dGVzYFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMucGFnZS5uYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBkaXJlY3Rpb24sXG4gICAgICByZWYsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKSkgYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgc3RhdGVtZW50KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFBlcnNpc3RlbmNlS2V5cy5TVEFURU1FTlQsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zdGF0ZW1lbnQpO1xuICAgIGxvZy52ZXJib3NlKGBFeGVjdXRpbmcgcHJlcGFyZWQgc3RhdGVtZW50ICR7bmFtZX1gKTtcbiAgICBjb25zdCBjYWxsQXJncyA9IGN0eEFyZ3Muc2xpY2UoMCwgLTEpO1xuICAgIGNvbnN0IHJlc3VsdCA9IEpTT04ucGFyc2UoXG4gICAgICB0aGlzLmFkYXB0ZXIuZGVjb2RlKFxuICAgICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICAgICAgICBjdHgsXG4gICAgICAgICAgUGVyc2lzdGVuY2VLZXlzLlNUQVRFTUVOVCxcbiAgICAgICAgICBbbmFtZSwgSlNPTi5zdHJpbmdpZnkoY2FsbEFyZ3MpXSxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHRoaXMuY2xhc3NcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG5cbiAgICBsZXQgaHlkcmF0ZWQ6IGFueTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICBoeWRyYXRlZCA9IHJlc3VsdC5tYXAoKHI6IGFueSkgPT5cbiAgICAgICAgKHIgYXMgYW55KVtDb3VjaERCS2V5cy5UQUJMRV0gJiZcbiAgICAgICAgKHIgYXMgYW55KVtDb3VjaERCS2V5cy5UQUJMRV0gPT09IE1vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKVxuICAgICAgICAgID8gKG5ldyB0aGlzLmNsYXNzKHIpIGFzIE0pXG4gICAgICAgICAgOiByXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAocmVzdWx0IGFzIGFueSlbQ291Y2hEQktleXMuVEFCTEVdICYmXG4gICAgICAocmVzdWx0IGFzIGFueSlbQ291Y2hEQktleXMuVEFCTEVdID09PSBNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcylcbiAgICApIHtcbiAgICAgIGh5ZHJhdGVkID0gbmV3IHRoaXMuY2xhc3MocmVzdWx0KSBhcyBNO1xuICAgIH0gZWxzZSBpZiAoRmFicmljQ2xpZW50UGFnaW5hdG9yLmlzU2VyaWFsaXplZFBhZ2UocmVzdWx0KSkge1xuICAgICAgaHlkcmF0ZWQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwge1xuICAgICAgICBkYXRhOiByZXN1bHQuZGF0YS5tYXAoKGQ6IGFueSkgPT4gbmV3IHRoaXMuY2xhc3MoZCkgYXMgTSksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaHlkcmF0ZWQgPSByZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBwbHlBZnRlclJlYWQoaHlkcmF0ZWQsIGN0eCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFwcGx5QWZ0ZXJSZWFkKHZhbHVlOiBhbnksIGN0eDogQ29udGV4dE9mPEE+KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIWN0eC5nZXRPclVuZGVmaW5lZChcImFmdGVyUXVlcnlIYW5kbGVyc1wiKSkgcmV0dXJuIHZhbHVlO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1vZGVsKSB7XG4gICAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzPE0sIFJlcG9zaXRvcnk8TSwgQT4sIGFueT4oXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGN0eCxcbiAgICAgICAgdmFsdWUgYXMgTSxcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgICAgICBPcGVyYXRpb25LZXlzLkFGVEVSXG4gICAgICApO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHZhbHVlLm1hcCgoZW50cnkpID0+IHRoaXMuYXBwbHlBZnRlclJlYWQoZW50cnksIGN0eCkpKTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKEZhYnJpY0NsaWVudFBhZ2luYXRvci5pc1NlcmlhbGl6ZWRQYWdlKHZhbHVlKSkge1xuICAgICAgYXdhaXQgdGhpcy5hcHBseUFmdGVyUmVhZCh2YWx1ZS5kYXRhLCBjdHgpO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb3VudE9mKFxuICAgIGtleT86IGtleW9mIE0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkNPVU5UX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY291bnRPZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgY291bnRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9JHtrZXkgPyBgIGJ5ICR7a2V5IGFzIHN0cmluZ31gIDogXCJcIn1gXG4gICAgKTtcbiAgICBjb25zdCBzdG10QXJncyA9IGtleSA/IFtrZXksIC4uLmN0eEFyZ3NdIDogY3R4QXJncztcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkNPVU5UX09GLCAuLi5zdG10QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBtYXhPZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtLXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUFYX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubWF4T2YpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgbWF4IG9mICR7a2V5IGFzIHN0cmluZ30gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5NQVhfT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBtaW5PZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtLXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUlOX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubWluT2YpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgbWluIG9mICR7a2V5IGFzIHN0cmluZ30gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBhdmdPZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5BVkdfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5hdmdPZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgY2FsY3VsYXRpbmcgYXZnIG9mICR7a2V5IGFzIHN0cmluZ30gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5BVkdfT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBzdW1PZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5TVU1fT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zdW1PZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgY2FsY3VsYXRpbmcgc3VtIG9mICR7a2V5IGFzIHN0cmluZ30gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5TVU1fT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBkaXN0aW5jdE9mPEsgZXh0ZW5kcyBrZXlvZiBNPihcbiAgICBrZXk6IEssXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW0tdW10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkRJU1RJTkNUX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZGlzdGluY3RPZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgZmluZGluZyBkaXN0aW5jdCB2YWx1ZXMgb2YgJHtrZXkgYXMgc3RyaW5nfSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkRJU1RJTkNUX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZ3JvdXBPZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTVtdPj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuR1JPVVBfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5ncm91cE9mKTtcbiAgICBsb2cudmVyYm9zZShgZ3JvdXBpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5ICR7a2V5IGFzIHN0cmluZ31gKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkdST1VQX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgaGVhbHRoY2hlY2soLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj4pIHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuaGVhbHRoY2hlY2spO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLmhlYWx0aGNoZWNrKHRoaXMuY2xhc3MsIC4uLmN0eEFyZ3MpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZShcbiAgICBtb2RlbDogTSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZSk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYENyZWF0aW5nIG5ldyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgdGhpcy5lbnN1cmVMZWdhY3lNaXJyb3JGbGFnKGN0eCwgbW9kZWwpO1xuICAgIGNvbnN0IHByZXBhcmVkID0gdGhpcy5hZGFwdGVyLnByZXBhcmUobW9kZWwsIGN0eCk7XG4gICAgY29uc3QgeyByZWNvcmQsIGlkLCB0cmFuc2llbnQgfSA9IHByZXBhcmVkO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGUoXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgaWQsXG4gICAgICByZWNvcmQsXG4gICAgICB0cmFuc2llbnQsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydDxNPihyZXN1bHQsIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnQsIGN0eCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGUoXG4gICAgbW9kZWw6IE0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGUpO1xuICAgIHRoaXMuZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKTtcbiAgICBjb25zdCBwcmVwYXJlZCA9IHRoaXMuYWRhcHRlci5wcmVwYXJlKG1vZGVsLCBjdHgpO1xuICAgIGNvbnN0IHsgaWQsIHRyYW5zaWVudCB9ID0gcHJlcGFyZWQ7XG4gICAgbGV0IHJlY29yZCA9IHByZXBhcmVkLnJlY29yZDtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgdXBkYXRpbmcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoIGlkICR7aWR9YFxuICAgICk7XG4gICAgcmVjb3JkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZShcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBpZCxcbiAgICAgIHJlY29yZCxcbiAgICAgIHRyYW5zaWVudCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucmV2ZXJ0PE0+KHJlY29yZCwgdGhpcy5jbGFzcywgaWQsIHRyYW5zaWVudCwgY3R4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBjcmVhdGVBbGxQcmVmaXgoXG4gICAgbW9kZWxzOiBNW10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxbTVtdLCAuLi5hbnlbXSwgQ29udGV4dE9mPEE+XT4ge1xuICAgIGNvbnN0IHsgY3R4LCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZUFsbFByZWZpeCk7XG4gICAgY29uc3QgaWdub3JlSGFuZGxlcnMgPSBjdHguZ2V0KFwiaWdub3JlSGFuZGxlcnNcIik7XG4gICAgY29uc3QgaWdub3JlVmFsaWRhdGUgPSBjdHguZ2V0KFwiaWdub3JlVmFsaWRhdGlvblwiKTtcbiAgICBpZiAoIW1vZGVscy5sZW5ndGgpIHJldHVybiBbbW9kZWxzLCAuLi5jdHhBcmdzXSBhcyBhbnk7XG5cbiAgICBtb2RlbHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1vZGVscy5tYXAoYXN5bmMgKG0pID0+IHtcbiAgICAgICAgbSA9IG5ldyB0aGlzLmNsYXNzKG0pO1xuICAgICAgICBpZiAoIWlnbm9yZUhhbmRsZXJzKVxuICAgICAgICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnM8TSwgUmVwb3NpdG9yeTxNLCBBPiwgYW55PihcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBjdHgsXG4gICAgICAgICAgICBtLFxuICAgICAgICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICAgICAgICBPcGVyYXRpb25LZXlzLk9OXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBpZiAoIWlnbm9yZVZhbGlkYXRlKSB7XG4gICAgICBjb25zdCBpZ25vcmVkUHJvcHMgPSBjdHguZ2V0KFwiaWdub3JlZFZhbGlkYXRpb25Qcm9wZXJ0aWVzXCIpIHx8IFtdO1xuXG4gICAgICBjb25zdCBlcnJvcnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgbW9kZWxzLm1hcCgobSkgPT4gUHJvbWlzZS5yZXNvbHZlKG0uaGFzRXJyb3JzKC4uLmlnbm9yZWRQcm9wcykpKVxuICAgICAgKTtcblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IHJlZHVjZUVycm9yc1RvUHJpbnQoZXJyb3JzKTtcblxuICAgICAgaWYgKGVycm9yTWVzc2FnZXMpIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gICAgfVxuICAgIHJldHVybiBbbW9kZWxzLCAuLi5jdHhBcmdzXSBhcyBhbnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjcmVhdGVBbGwoXG4gICAgbW9kZWxzOiBNW10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBpZiAoIW1vZGVscy5sZW5ndGgpIHJldHVybiBtb2RlbHM7XG4gICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVBbGwpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBDcmVhdGluZyAke21vZGVscy5sZW5ndGh9IG5ldyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG5cbiAgICBtb2RlbHMuZm9yRWFjaCgobW9kZWwpID0+IHRoaXMuZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKSk7XG4gICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICBjb25zdCBpZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAuaWQpO1xuICAgIGNvbnN0IHBheWxvYWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLnJlY29yZCk7XG4gICAgY29uc3QgdHJhbnNpZW50cyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC50cmFuc2llbnQpO1xuICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuY3JlYXRlQWxsKFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGlkcyBhcyBQcmltYXJ5S2V5VHlwZVtdLFxuICAgICAgcGF5bG9hZHMsXG4gICAgICB0cmFuc2llbnRzLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgY3JlYXRlZC5tYXAoYXN5bmMgKHIsIGkpID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBpZHNbaV07XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucmV2ZXJ0PE0+KHIsIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnRzW2ldLCBjdHgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVhZEFsbChcbiAgICBrZXlzOiBQcmltYXJ5S2V5VHlwZVtdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICkge1xuICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZEFsbCk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHJlYWRpbmcgJHtrZXlzLmxlbmd0aH0gJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuICAgIGNvbnN0IHJlY29yZHMgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucmVhZEFsbCh0aGlzLmNsYXNzLCBrZXlzLCAuLi5jdHhBcmdzKTtcbiAgICByZXR1cm4gcmVjb3Jkcy5tYXAoKHIsIGkpID0+XG4gICAgICB0aGlzLmFkYXB0ZXIucmV2ZXJ0KHIsIHRoaXMuY2xhc3MsIGtleXNbaV0sIHt9LCBjdHgpXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZUFsbChcbiAgICBtb2RlbHM6IE1bXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlQWxsKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgVXBkYXRpbmcgJHttb2RlbHMubGVuZ3RofSBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuXG4gICAgbW9kZWxzLmZvckVhY2goKG1vZGVsKSA9PiB0aGlzLmVuc3VyZUxlZ2FjeU1pcnJvckZsYWcoY3R4LCBtb2RlbCkpO1xuICAgIGNvbnN0IHByZXBhcmVkID0gbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5hZGFwdGVyLnByZXBhcmUobSwgY3R4KSk7XG4gICAgY29uc3QgaWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLmlkKTtcbiAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZUFsbChcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBpZHMgYXMgUHJpbWFyeUtleVR5cGVbXSxcbiAgICAgIHByZXBhcmVkLm1hcCgocikgPT4gci5yZWNvcmQpLFxuICAgICAgcHJlcGFyZWQubWFwKChyKSA9PiByLnRyYW5zaWVudCksXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICB1cGRhdGVkLm1hcChhc3luYyAodSwgaSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGlkc1tpXTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQ8TT4oXG4gICAgICAgICAgdSxcbiAgICAgICAgICB0aGlzLmNsYXNzLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIHByZXBhcmVkW2ldLnRyYW5zaWVudCxcbiAgICAgICAgICBjdHhcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHg6IENvbnRleHRPZjxBPiwgbW9kZWw6IE0pOiB2b2lkIHtcbiAgICBpZiAoTW9kZWwubWlycm9yZWRBdChtb2RlbCkpIHtcbiAgICAgIGN0eC5hY2N1bXVsYXRlKHsgbGVnYWN5OiB0cnVlIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZhYnJpY0NsaWVudFJlcG9zaXRvcnkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXFHO0FBQ3JHLHlFQUF1RDtBQUN2RCwyREFBb0g7QUFDcEgsdURBQW9EO0FBQ3BELHlFQUFtRTtBQUNuRSxxREFBaUU7QUFDakU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsaUJBQVU7SUFDbEQsWUFBWSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxLQUFLO1FBQ3JDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3JELGdCQUFnQixFQUFFLElBQUk7WUFDdEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsa0JBQWtCLEVBQUUsS0FBSztZQUN6Qix5QkFBeUIsRUFBRSxJQUFJO1lBQy9CLDBCQUEwQixFQUFFLElBQUk7WUFDaEMsdUJBQXVCLEVBQUUsS0FBSztZQUM5QixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBSztRQUNWLE9BQU8sS0FBSzthQUNQLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ25ELEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQ0QsZUFBZTtRQUNYLE9BQU8sS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFDRCxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxH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QUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNoRyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUk7UUFDdkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlELEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLDRCQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0YsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJO1FBQzNCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRSxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksTUFBTSxDQUFDLE1BQU0sUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSw0QkFBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDM0ksT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUNELHNCQUFzQixDQUFDLEdBQUcsRUFBRSxLQUFLO1FBQzdCLElBQUksNEJBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQXJPRCx3REFxT0M7QUFDRCxzcjFDQUFzcjFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JkZXJEaXJlY3Rpb24sIFBlcnNpc3RlbmNlS2V5cywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLCBSZXBvc2l0b3J5LCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBlbmZvcmNlREJEZWNvcmF0b3JzLCBPcGVyYXRpb25LZXlzLCByZWR1Y2VFcnJvcnNUb1ByaW50LCBWYWxpZGF0aW9uRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb3VjaERCS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudFBhZ2luYXRvciB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudFBhZ2luYXRvci5qc1wiO1xuaW1wb3J0IHsgUXVlcnlSZXN1bHRUb29MYXJnZUVycm9yIH0gZnJvbSBcIi4vLi4vc2hhcmVkL2Vycm9ycy5qc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwb3NpdG9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgRmFicmljIGNsaWVudCBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBnZW5lcmljIFJlcG9zaXRvcnkgdG8gcHJlcGFyZSBjb250ZXh0IGFuZCBhcmd1bWVudHMgZm9yIENSVUQgb3BlcmF0aW9ucyBleGVjdXRlZCB2aWEgYSBGYWJyaWMgY2xpZW50IEFkYXB0ZXIsIHdpcmluZyBSZXBvc2l0b3J5RmxhZ3MgYW5kIEZhYnJpYy1zcGVjaWZpYyBvdmVycmlkZXMuXG4gKiBAdGVtcGxhdGUgTSBleHRlbmRzIE1vZGVsIC0gVGhlIG1vZGVsIHR5cGUgaGFuZGxlZCBieSB0aGlzIHJlcG9zaXRvcnlcbiAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIE1hbmdvUXVlcnksIEZhYnJpY0ZsYWdzLCBDb250ZXh0PEZhYnJpY0ZsYWdzPj59IFthZGFwdGVyXSAtIE9wdGlvbmFsIGFkYXB0ZXIgaW5zdGFuY2UgdXNlZCB0byBleGVjdXRlIG9wZXJhdGlvbnNcbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IFtjbGF6el0gLSBPcHRpb25hbCBtb2RlbCBjb25zdHJ1Y3RvciB1c2VkIGJ5IHRoZSByZXBvc2l0b3J5XG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG4gKiBpbXBvcnQgeyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItZmFicmljXCI7XG4gKlxuICogY2xhc3MgVXNlciBleHRlbmRzIE1vZGVsIHsgaWQhOiBzdHJpbmc7IG5hbWUhOiBzdHJpbmc7IH1cbiAqIGNvbnN0IHJlcG8gPSBuZXcgRmFicmljQ2xpZW50UmVwb3NpdG9yeTxVc2VyPigpO1xuICogY29uc3QgY3JlYXRlZCA9IGF3YWl0IHJlcG8uY3JlYXRlKG5ldyBVc2VyKHsgaWQ6IFwiMVwiLCBuYW1lOiBcIkFsaWNlXCIgfSkpO1xuICogY29uc3QgbG9hZGVkID0gYXdhaXQgcmVwby5yZWFkKFwiMVwiKTtcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBSZXBvIGFzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBBcHAtPj5SZXBvOiBjcmVhdGUobW9kZWwpXG4gKiAgIFJlcG8tPj5SZXBvOiBjcmVhdGVQcmVmaXgobW9kZWwsIC4uLmFyZ3MpXG4gKiAgIFJlcG8tPj5BZGFwdGVyOiBjcmVhdGUodGFibGUsIGlkLCBtb2RlbCwgZmxhZ3MpXG4gKiAgIEFkYXB0ZXItLT4+UmVwbzogcmVzdWx0XG4gKiAgIFJlcG8tLT4+QXBwOiBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50UmVwb3NpdG9yeSBleHRlbmRzIFJlcG9zaXRvcnkge1xuICAgIGNvbnN0cnVjdG9yKGFkYXB0ZXIsIGNsYXp6LCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgICAgIHN1cGVyKGFkYXB0ZXIsIGNsYXp6LCBmb3JjZSk7XG4gICAgICAgIHRoaXMuX292ZXJyaWRlcyA9IE9iamVjdC5hc3NpZ24oe30sIHN1cGVyW1wiX292ZXJyaWRlc1wiXSwge1xuICAgICAgICAgICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGlnbm9yZUhhbmRsZXJzOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dSYXdTdGF0ZW1lbnRzOiBmYWxzZSxcbiAgICAgICAgICAgIGZvcmNlUHJlcGFyZVNpbXBsZVF1ZXJpZXM6IHRydWUsXG4gICAgICAgICAgICBmb3JjZVByZXBhcmVDb21wbGV4UXVlcmllczogdHJ1ZSxcbiAgICAgICAgICAgIGFsbG93R2VuZXJhdGlvbk92ZXJyaWRlOiBmYWxzZSxcbiAgICAgICAgICAgIHJlYnVpbGRXaXRoVHJhbnNpZW50OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG92ZXJyaWRlKGZsYWdzKSB7XG4gICAgICAgIHJldHVybiBzdXBlclxuICAgICAgICAgICAgLm92ZXJyaWRlKE9iamVjdC5hc3NpZ24oe30sIGZsYWdzLCB0aGlzLl9vdmVycmlkZXMpKVxuICAgICAgICAgICAgLmZvcihmbGFncyk7XG4gICAgfVxuICAgIE9ic2VydmVySGFuZGxlcigpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLk9ic2VydmVySGFuZGxlcigpO1xuICAgIH1cbiAgICBhc3luYyBwYWdpbmF0ZUJ5KGtleSwgb3JkZXIsIHJlZiA9IHtcbiAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICBsaW1pdDogMTAsXG4gICAgfSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5QQUdFX0JZLCB0cnVlKSkuZm9yKHRoaXMucGFnaW5hdGVCeSk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBwYWdpbmF0aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoIHBhZ2Ugc2l6ZSAke3JlZi5saW1pdH1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KHRoaXMucGFnaW5hdGVCeS5uYW1lLCBrZXksIG9yZGVyLCB7IGxpbWl0OiByZWYubGltaXQsIG9mZnNldDogcmVmLm9mZnNldCwgYm9va21hcms6IHJlZi5ib29rbWFyayB9LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbGlzdEJ5KGtleSwgb3JkZXIsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWSwgdHJ1ZSkpLmZvcih0aGlzLmxpc3RCeSk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBsaXN0aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBieSAke2tleX0gJHtvcmRlcn1gKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQodGhpcy5saXN0QnkubmFtZSwga2V5LCBvcmRlciwgLi4uY3R4QXJncykpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFF1ZXJ5UmVzdWx0VG9vTGFyZ2VFcnJvcikge1xuICAgICAgICAgICAgICAgIGxvZy53YXJuKGBsaXN0QnkgcmVzdWx0IHNldCB0b28gbGFyZ2UgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBrZXk9JHtTdHJpbmcoa2V5KX0gb3JkZXI9JHtvcmRlcn0uIFJldHVybmluZyBlbXB0eSBsaXN0LiBVc2UgcGFnaW5hdGVCeSBmb3IgbGFyZ2UgZGF0YXNldHMuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBmaW5kQnkoa2V5LCB2YWx1ZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX0JZLCB0cnVlKSkuZm9yKHRoaXMuZmluZEJ5KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGZpbmRpbmcgYWxsICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoICR7a2V5fSAke3ZhbHVlfWApO1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuc3RhdGVtZW50KHRoaXMuZmluZEJ5Lm5hbWUsIGtleSwgdmFsdWUsIC4uLmN0eEFyZ3MpKTtcbiAgICB9XG4gICAgYXN5bmMgZmluZE9uZUJ5KGtleSwgdmFsdWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORF9PTkVfQlksIHRydWUpKS5mb3IodGhpcy5maW5kT25lQnkpO1xuICAgICAgICBsb2cudmVyYm9zZShgZmluZGluZyBPbmUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggJHtrZXl9ICR7dmFsdWV9YCk7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQodGhpcy5maW5kT25lQnkubmFtZSwga2V5LCB2YWx1ZSwgLi4uY3R4QXJncykpO1xuICAgIH1cbiAgICBhc3luYyBmaW5kKHZhbHVlLCBvcmRlciA9IE9yZGVyRGlyZWN0aW9uLkFTQywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5ELCB0cnVlKSkuZm9yKHRoaXMuZmluZCk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBmaW5kaW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBieSBkZWZhdWx0IHF1ZXJ5IGF0dHJpYnV0ZXNgKTtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudCh0aGlzLmZpbmQubmFtZSwgdmFsdWUsIG9yZGVyLCAuLi5jdHhBcmdzKSk7XG4gICAgfVxuICAgIGFzeW5jIHBhZ2UodmFsdWUsIGRpcmVjdGlvbiA9IE9yZGVyRGlyZWN0aW9uLkFTQywgcmVmID0ge1xuICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgIGxpbWl0OiAxMCxcbiAgICB9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0UsIHRydWUpKS5mb3IodGhpcy5wYWdlKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHBhZ2luZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gYnkgZGVmYXVsdCBxdWVyeSBhdHRyaWJ1dGVzYCk7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQodGhpcy5wYWdlLm5hbWUsIHZhbHVlLCBkaXJlY3Rpb24sIHJlZiwgLi4uY3R4QXJncykpO1xuICAgIH1cbiAgICBhc3luYyBzdGF0ZW1lbnQobmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4LCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUGVyc2lzdGVuY2VLZXlzLlNUQVRFTUVOVCwgdHJ1ZSkpLmZvcih0aGlzLnN0YXRlbWVudCk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBFeGVjdXRpbmcgcHJlcGFyZWQgc3RhdGVtZW50ICR7bmFtZX1gKTtcbiAgICAgICAgY29uc3QgY2FsbEFyZ3MgPSBjdHhBcmdzLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZSh0aGlzLmFkYXB0ZXIuZGVjb2RlKGF3YWl0IHRoaXMuYWRhcHRlci5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgUGVyc2lzdGVuY2VLZXlzLlNUQVRFTUVOVCwgW25hbWUsIEpTT04uc3RyaW5naWZ5KGNhbGxBcmdzKV0sIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0aGlzLmNsYXNzKSkpO1xuICAgICAgICBsZXQgaHlkcmF0ZWQ7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgICAgICAgIGh5ZHJhdGVkID0gcmVzdWx0Lm1hcCgocikgPT4gcltDb3VjaERCS2V5cy5UQUJMRV0gJiZcbiAgICAgICAgICAgICAgICByW0NvdWNoREJLZXlzLlRBQkxFXSA9PT0gTW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpXG4gICAgICAgICAgICAgICAgPyBuZXcgdGhpcy5jbGFzcyhyKVxuICAgICAgICAgICAgICAgIDogcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocmVzdWx0W0NvdWNoREJLZXlzLlRBQkxFXSAmJlxuICAgICAgICAgICAgcmVzdWx0W0NvdWNoREJLZXlzLlRBQkxFXSA9PT0gTW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpKSB7XG4gICAgICAgICAgICBoeWRyYXRlZCA9IG5ldyB0aGlzLmNsYXNzKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoRmFicmljQ2xpZW50UGFnaW5hdG9yLmlzU2VyaWFsaXplZFBhZ2UocmVzdWx0KSkge1xuICAgICAgICAgICAgaHlkcmF0ZWQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwge1xuICAgICAgICAgICAgICAgIGRhdGE6IHJlc3VsdC5kYXRhLm1hcCgoZCkgPT4gbmV3IHRoaXMuY2xhc3MoZCkpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBoeWRyYXRlZCA9IHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hcHBseUFmdGVyUmVhZChoeWRyYXRlZCwgY3R4KTtcbiAgICB9XG4gICAgYXN5bmMgYXBwbHlBZnRlclJlYWQodmFsdWUsIGN0eCkge1xuICAgICAgICBpZiAoIWN0eC5nZXRPclVuZGVmaW5lZChcImFmdGVyUXVlcnlIYW5kbGVyc1wiKSlcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTW9kZWwpIHtcbiAgICAgICAgICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnModGhpcywgY3R4LCB2YWx1ZSwgT3BlcmF0aW9uS2V5cy5SRUFELCBPcGVyYXRpb25LZXlzLkFGVEVSKTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHZhbHVlLm1hcCgoZW50cnkpID0+IHRoaXMuYXBwbHlBZnRlclJlYWQoZW50cnksIGN0eCkpKTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoRmFicmljQ2xpZW50UGFnaW5hdG9yLmlzU2VyaWFsaXplZFBhZ2UodmFsdWUpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmFwcGx5QWZ0ZXJSZWFkKHZhbHVlLmRhdGEsIGN0eCk7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBhc3luYyBjb3VudE9mKGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5DT1VOVF9PRiwgdHJ1ZSkpLmZvcih0aGlzLmNvdW50T2YpO1xuICAgICAgICBsb2cudmVyYm9zZShgY291bnRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9JHtrZXkgPyBgIGJ5ICR7a2V5fWAgOiBcIlwifWApO1xuICAgICAgICBjb25zdCBzdG10QXJncyA9IGtleSA/IFtrZXksIC4uLmN0eEFyZ3NdIDogY3R4QXJncztcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5DT1VOVF9PRiwgLi4uc3RtdEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBtYXhPZihrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUFYX09GLCB0cnVlKSkuZm9yKHRoaXMubWF4T2YpO1xuICAgICAgICBsb2cudmVyYm9zZShgZmluZGluZyBtYXggb2YgJHtrZXl9IGluICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWApO1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1BWF9PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbWluT2Yoa2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1JTl9PRiwgdHJ1ZSkpLmZvcih0aGlzLm1pbk9mKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGZpbmRpbmcgbWluIG9mICR7a2V5fSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGF2Z09mKGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5BVkdfT0YsIHRydWUpKS5mb3IodGhpcy5hdmdPZik7XG4gICAgICAgIGxvZy52ZXJib3NlKGBjYWxjdWxhdGluZyBhdmcgb2YgJHtrZXl9IGluICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWApO1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkFWR19PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgc3VtT2Yoa2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlNVTV9PRiwgdHJ1ZSkpLmZvcih0aGlzLnN1bU9mKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGNhbGN1bGF0aW5nIHN1bSBvZiAke2tleX0gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YCk7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuU1VNX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBkaXN0aW5jdE9mKGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5ESVNUSU5DVF9PRiwgdHJ1ZSkpLmZvcih0aGlzLmRpc3RpbmN0T2YpO1xuICAgICAgICBsb2cudmVyYm9zZShgZmluZGluZyBkaXN0aW5jdCB2YWx1ZXMgb2YgJHtrZXl9IGluICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWApO1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkRJU1RJTkNUX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBncm91cE9mKGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5HUk9VUF9PRiwgdHJ1ZSkpLmZvcih0aGlzLmdyb3VwT2YpO1xuICAgICAgICBsb2cudmVyYm9zZShgZ3JvdXBpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5ICR7a2V5fWApO1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkdST1VQX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBoZWFsdGhjaGVjayguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5oZWFsdGhjaGVjayk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWRhcHRlci5oZWFsdGhjaGVjayh0aGlzLmNsYXNzLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlKG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlKTtcbiAgICAgICAgbG9nLmRlYnVnKGBDcmVhdGluZyBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWApO1xuICAgICAgICB0aGlzLmVuc3VyZUxlZ2FjeU1pcnJvckZsYWcoY3R4LCBtb2RlbCk7XG4gICAgICAgIGNvbnN0IHByZXBhcmVkID0gdGhpcy5hZGFwdGVyLnByZXBhcmUobW9kZWwsIGN0eCk7XG4gICAgICAgIGNvbnN0IHsgcmVjb3JkLCBpZCwgdHJhbnNpZW50IH0gPSBwcmVwYXJlZDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNyZWF0ZSh0aGlzLmNsYXNzLCBpZCwgcmVjb3JkLCB0cmFuc2llbnQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydChyZXN1bHQsIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnQsIGN0eCk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZShtb2RlbCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZSk7XG4gICAgICAgIHRoaXMuZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKTtcbiAgICAgICAgY29uc3QgcHJlcGFyZWQgPSB0aGlzLmFkYXB0ZXIucHJlcGFyZShtb2RlbCwgY3R4KTtcbiAgICAgICAgY29uc3QgeyBpZCwgdHJhbnNpZW50IH0gPSBwcmVwYXJlZDtcbiAgICAgICAgbGV0IHJlY29yZCA9IHByZXBhcmVkLnJlY29yZDtcbiAgICAgICAgbG9nLmRlYnVnKGB1cGRhdGluZyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggaWQgJHtpZH1gKTtcbiAgICAgICAgcmVjb3JkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZSh0aGlzLmNsYXNzLCBpZCwgcmVjb3JkLCB0cmFuc2llbnQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydChyZWNvcmQsIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnQsIGN0eCk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUFsbFByZWZpeChtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHgsIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZUFsbFByZWZpeCk7XG4gICAgICAgIGNvbnN0IGlnbm9yZUhhbmRsZXJzID0gY3R4LmdldChcImlnbm9yZUhhbmRsZXJzXCIpO1xuICAgICAgICBjb25zdCBpZ25vcmVWYWxpZGF0ZSA9IGN0eC5nZXQoXCJpZ25vcmVWYWxpZGF0aW9uXCIpO1xuICAgICAgICBpZiAoIW1vZGVscy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gW21vZGVscywgLi4uY3R4QXJnc107XG4gICAgICAgIG1vZGVscyA9IGF3YWl0IFByb21pc2UuYWxsKG1vZGVscy5tYXAoYXN5bmMgKG0pID0+IHtcbiAgICAgICAgICAgIG0gPSBuZXcgdGhpcy5jbGFzcyhtKTtcbiAgICAgICAgICAgIGlmICghaWdub3JlSGFuZGxlcnMpXG4gICAgICAgICAgICAgICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyh0aGlzLCBjdHgsIG0sIE9wZXJhdGlvbktleXMuQ1JFQVRFLCBPcGVyYXRpb25LZXlzLk9OKTtcbiAgICAgICAgICAgIHJldHVybiBtO1xuICAgICAgICB9KSk7XG4gICAgICAgIGlmICghaWdub3JlVmFsaWRhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlnbm9yZWRQcm9wcyA9IGN0eC5nZXQoXCJpZ25vcmVkVmFsaWRhdGlvblByb3BlcnRpZXNcIikgfHwgW107XG4gICAgICAgICAgICBjb25zdCBlcnJvcnMgPSBhd2FpdCBQcm9taXNlLmFsbChtb2RlbHMubWFwKChtKSA9PiBQcm9taXNlLnJlc29sdmUobS5oYXNFcnJvcnMoLi4uaWdub3JlZFByb3BzKSkpKTtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXMgPSByZWR1Y2VFcnJvcnNUb1ByaW50KGVycm9ycyk7XG4gICAgICAgICAgICBpZiAoZXJyb3JNZXNzYWdlcylcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGVycm9yTWVzc2FnZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbbW9kZWxzLCAuLi5jdHhBcmdzXTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlQWxsKG1vZGVscywgLi4uYXJncykge1xuICAgICAgICBpZiAoIW1vZGVscy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gbW9kZWxzO1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZUFsbCk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgQ3JlYXRpbmcgJHttb2RlbHMubGVuZ3RofSBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWApO1xuICAgICAgICBtb2RlbHMuZm9yRWFjaCgobW9kZWwpID0+IHRoaXMuZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKSk7XG4gICAgICAgIGNvbnN0IHByZXBhcmVkID0gbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5hZGFwdGVyLnByZXBhcmUobSwgY3R4KSk7XG4gICAgICAgIGNvbnN0IGlkcyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC5pZCk7XG4gICAgICAgIGNvbnN0IHBheWxvYWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLnJlY29yZCk7XG4gICAgICAgIGNvbnN0IHRyYW5zaWVudHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAudHJhbnNpZW50KTtcbiAgICAgICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGVBbGwodGhpcy5jbGFzcywgaWRzLCBwYXlsb2FkcywgdHJhbnNpZW50cywgLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChjcmVhdGVkLm1hcChhc3luYyAociwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaWQgPSBpZHNbaV07XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydChyLCB0aGlzLmNsYXNzLCBpZCwgdHJhbnNpZW50c1tpXSwgY3R4KTtcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBhc3luYyByZWFkQWxsKGtleXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWFkQWxsKTtcbiAgICAgICAgbG9nLmRlYnVnKGByZWFkaW5nICR7a2V5cy5sZW5ndGh9ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gKTtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IGF3YWl0IHRoaXMuYWRhcHRlci5yZWFkQWxsKHRoaXMuY2xhc3MsIGtleXMsIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gcmVjb3Jkcy5tYXAoKHIsIGkpID0+IHRoaXMuYWRhcHRlci5yZXZlcnQociwgdGhpcy5jbGFzcywga2V5c1tpXSwge30sIGN0eCkpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVBbGwobW9kZWxzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlQWxsKTtcbiAgICAgICAgbG9nLmRlYnVnKGBVcGRhdGluZyAke21vZGVscy5sZW5ndGh9IG5ldyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YCk7XG4gICAgICAgIG1vZGVscy5mb3JFYWNoKChtb2RlbCkgPT4gdGhpcy5lbnN1cmVMZWdhY3lNaXJyb3JGbGFnKGN0eCwgbW9kZWwpKTtcbiAgICAgICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICAgICAgY29uc3QgaWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLmlkKTtcbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHRoaXMuYWRhcHRlci51cGRhdGVBbGwodGhpcy5jbGFzcywgaWRzLCBwcmVwYXJlZC5tYXAoKHIpID0+IHIucmVjb3JkKSwgcHJlcGFyZWQubWFwKChyKSA9PiByLnRyYW5zaWVudCksIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwodXBkYXRlZC5tYXAoYXN5bmMgKHUsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkID0gaWRzW2ldO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQodSwgdGhpcy5jbGFzcywgaWQsIHByZXBhcmVkW2ldLnRyYW5zaWVudCwgY3R4KTtcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBlbnN1cmVMZWdhY3lNaXJyb3JGbGFnKGN0eCwgbW9kZWwpIHtcbiAgICAgICAgaWYgKE1vZGVsLm1pcnJvcmVkQXQobW9kZWwpKSB7XG4gICAgICAgICAgICBjdHguYWNjdW11bGF0ZSh7IGxlZ2FjeTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJtRmljbWxqUTJ4cFpXNTBVbVZ3YjNOcGRHOXllUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwzTnlZeTlqYkdsbGJuUXZSbUZpY21salEyeHBaVzUwVW1Wd2IzTnBkRzl5ZVM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkRRU3hQUVVGUExFVkJTMHdzWTBGQll5eEZRVU5rTEdWQlFXVXNSVUZEWml4eFFrRkJjVUlzUlVGRGNrSXNWVUZCVlN4SFFVVllMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZEZUVJc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEdkRFFVRm5ReXhEUVVGRE8wRkJSM1pFTEU5QlFVOHNSVUZEVEN4dFFrRkJiVUlzUlVGRGJrSXNZVUZCWVN4RlFVVmlMRzFDUVVGdFFpeEZRVU51UWl4bFFVRmxMRWRCUTJoQ0xFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkRha01zVDBGQlR5eEZRVUZGTEZkQlFWY3NSVUZCUlN4TlFVRk5MSFZDUVVGMVFpeERRVUZETzBGQlEzQkVMRTlCUVU4c1JVRkJSU3h4UWtGQmNVSXNSVUZCUlN4dFEwRkJaME03UVVGRGFFVXNUMEZCVHl4RlFVRkZMSGRDUVVGM1FpeEZRVUZGTERoQ1FVRjVRanRCUVVVMVJEczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJNa0pITzBGQlEwZ3NUVUZCVFN4UFFVRlBMSE5DUVVkWUxGTkJRVkVzVlVGQlowSTdTVUZYZUVJc1dVRkJXU3hQUVVGWExFVkJRVVVzUzBGQmMwSXNSVUZCUlN4UlFVRnBRaXhMUVVGTE8xRkJRM0pGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQldGb3NaVUZCVlN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkJSVHRaUVVOeVJTeG5Ra0ZCWjBJc1JVRkJSU3hKUVVGSk8xbEJRM1JDTEdOQlFXTXNSVUZCUlN4SlFVRkpPMWxCUTNCQ0xHdENRVUZyUWl4RlFVRkZMRXRCUVVzN1dVRkRla0lzZVVKQlFYbENMRVZCUVVVc1NVRkJTVHRaUVVNdlFpd3dRa0ZCTUVJc1JVRkJSU3hKUVVGSk8xbEJRMmhETEhWQ1FVRjFRaXhGUVVGRkxFdEJRVXM3V1VGRE9VSXNiMEpCUVc5Q0xFVkJRVVVzUzBGQlN6dFRRVU0xUWl4RFFVRkRMRU5CUVVNN1NVRkpTQ3hEUVVGRE8wbEJSVkVzVVVGQlVTeERRVUZETEV0QlFYRkRPMUZCUTNKRUxFOUJRVThzUzBGQlN6dGhRVU5VTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8yRkJRMjVFTEVkQlFVY3NRMEZCUXl4TFFVRlpMRU5CUVVNc1EwRkJRenRKUVVOMlFpeERRVUZETzBsQlJXdENMR1ZCUVdVN1VVRkRhRU1zVDBGQlR5eExRVUZMTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN1NVRkRha01zUTBGQlF6dEpRVVZSTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTNaQ0xFZEJRVmtzUlVGRFdpeExRVUZ4UWl4RlFVTnlRaXhOUVVFclF6dFJRVU0zUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOVUxFdEJRVXNzUlVGQlJTeEZRVUZGTzB0QlExWXNSVUZEUkN4SFFVRkhMRWxCUVhORE8xRkJSWHBETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGRrSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhQUVVGUExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6ZEVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVU5VTEdOQlFXTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlEzaEZMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlEyNUNMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeEZRVU53UWl4SFFVRkhMRVZCUTBnc1MwRkJTeXhGUVVOTUxFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWRCUVVjc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGRGFFVXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlVTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVTnVRaXhIUVVGWkxFVkJRMW9zUzBGQmNVSXNSVUZEY2tJc1IwRkJSeXhKUVVGelF6dFJRVVY2UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTNSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRia0lzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZEVkN4WFFVRlhMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVdFc1NVRkJTU3hMUVVGTExFVkJRVVVzUTBGRGRFVXNRMEZCUXp0UlFVTkdMRWxCUVVrc1EwRkJRenRaUVVOSUxFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUXpGQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVTm9RaXhIUVVGSExFVkJRMGdzUzBGQlN5eEZRVU5NTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVZFc1EwRkJRenRSUVVOYUxFTkJRVU03VVVGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEhkQ1FVRjNRaXhGUVVGRkxFTkJRVU03WjBKQlF6RkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRMDRzYlVOQlFXMURMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeExRVUZMTERSRVFVRTBSQ3hEUVVNM1NpeERRVUZETzJkQ1FVTkdMRTlCUVU4c1JVRkJVeXhEUVVGRE8xbEJRMjVDTEVOQlFVTTdXVUZEUkN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOV0xFTkJRVU03U1VGRFNDeERRVUZETzBsQlJWRXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkRia0lzUjBGQldTeEZRVU5hTEV0QlFWVXNSVUZEVml4SFFVRkhMRWxCUVhORE8xRkJSWHBETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGRrSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhQUVVGUExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6ZEVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTnVRaXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVU5VTEdWQlFXVXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSMEZCWVN4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVNMVJTeERRVUZETzFGQlEwWXNUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGRE1VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRMmhDTEVkQlFVY3NSVUZEU0N4TFFVRkxMRVZCUTB3c1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlVTeERRVUZETzBsQlExb3NRMEZCUXp0SlFVVlJMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRM1JDTEVkQlFWa3NSVUZEV2l4TFFVRlZMRVZCUTFZc1IwRkJSeXhKUVVGelF6dFJRVVY2UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVjBGQlZ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnFSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRkRUlzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZEVkN4bFFVRmxMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRWRCUVdFc1NVRkJTU3hMUVVGTExFVkJRVVVzUTBGRE5VVXNRMEZCUXp0UlFVTkdMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlF6RkNMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeEZRVU51UWl4SFFVRkhMRVZCUTBnc1MwRkJTeXhGUVVOTUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFWRXNRMEZCUXp0SlFVTmFMRU5CUVVNN1NVRkZVU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVU5xUWl4TFFVRmhMRVZCUTJJc1VVRkJkMElzWTBGQll5eERRVUZETEVkQlFVY3NSVUZETVVNc1IwRkJSeXhKUVVGelF6dFJRVVY2UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTXhSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRha0lzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZEVkN4WFFVRlhMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl3NFFrRkJPRUlzUTBGRGNrVXNRMEZCUXp0UlFVTkdMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlF6RkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVU5rTEV0QlFVc3NSVUZEVEN4TFFVRkxMRVZCUTB3c1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlVTeERRVUZETzBsQlExb3NRMEZCUXp0SlFVVlJMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRMnBDTEV0QlFXRXNSVUZEWWl4WlFVRTBRaXhqUVVGakxFTkJRVU1zUjBGQlJ5eEZRVU01UXl4TlFVRXJRenRSUVVNM1F5eE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTlVMRXRCUVVzc1JVRkJSU3hGUVVGRk8wdEJRMVlzUlVGRFJDeEhRVUZITEVsQlFYTkRPMUZCUlhwRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRka0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3h4UWtGQmNVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRekZFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU5xUWl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVOVUxGVkJRVlVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExEaENRVUU0UWl4RFFVTndSU3hEUVVGRE8xRkJRMFlzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRNVUlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUTJRc1MwRkJTeXhGUVVOTUxGTkJRVk1zUlVGRFZDeEhRVUZITEVWQlEwZ3NSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJVU3hEUVVGRE8wbEJRMW9zUTBGQlF6dEpRVVZSTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUTNSQ0xFbEJRVmtzUlVGRFdpeEhRVUZITEVsQlFYTkRPMUZCUlhwRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRelZDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzWlVGQlpTeERRVUZETEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRla1FzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRM1JDTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1owTkJRV2RETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRjRVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjBReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVTjJRaXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZEYWtJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEcxQ1FVRnRRaXhEUVVOd1F5eEhRVUZITEVWQlEwZ3NaVUZCWlN4RFFVRkRMRk5CUVZNc1JVRkRla0lzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVU5vUXl4VFFVRlRMRVZCUTFRc1UwRkJVeXhGUVVOVUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlExZ3NRMEZEUml4RFFVTkdMRU5CUVVNN1VVRkZSaXhKUVVGSkxGRkJRV0VzUTBGQlF6dFJRVU5zUWl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTXhRaXhSUVVGUkxFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVUwc1JVRkJSU3hGUVVGRkxFTkJRemxDTEVOQlFWTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRE8yZENRVU0xUWl4RFFVRlRMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZETTBRc1EwRkJReXhEUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVU4N1owSkJRekZDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUTA0c1EwRkJRenRSUVVOS0xFTkJRVU03WVVGQlRTeEpRVU5LTEUxQlFXTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRE8xbEJRMnBETEUxQlFXTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRMnhGTEVOQlFVTTdXVUZEUkN4UlFVRlJMRWRCUVVjc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCVFN4RFFVRkRPMUZCUTNwRExFTkJRVU03WVVGQlRTeEpRVUZKTEhGQ1FVRnhRaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRE1VUXNVVUZCVVN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTzJkQ1FVTXZRaXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVTBzUTBGQlF6dGhRVU14UkN4RFFVRkRMRU5CUVVNN1VVRkRUQ3hEUVVGRE8yRkJRVTBzUTBGQlF6dFpRVU5PTEZGQlFWRXNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRjRUlzUTBGQlF6dFJRVVZFTEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETlVNc1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNTMEZCVlN4RlFVRkZMRWRCUVdsQ08xRkJRM2hFTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRPMWxCUVVVc1QwRkJUeXhMUVVGTExFTkJRVU03VVVGRE5VUXNTVUZCU1N4TFFVRkxMRmxCUVZrc1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRE0wSXNUVUZCVFN4dFFrRkJiVUlzUTBGRGRrSXNTVUZCU1N4RlFVTktMRWRCUVVjc1JVRkRTQ3hMUVVGVkxFVkJRMVlzWVVGQllTeERRVUZETEVsQlFVa3NSVUZEYkVJc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGRGNFSXNRMEZCUXp0WlFVTkdMRTlCUVU4c1MwRkJTeXhEUVVGRE8xRkJRMllzUTBGQlF6dFJRVU5FTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzcENMRTFCUVUwc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEZWtVc1QwRkJUeXhMUVVGTExFTkJRVU03VVVGRFppeERRVUZETzFGQlEwUXNTVUZCU1N4eFFrRkJjVUlzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEyeEVMRTFCUVUwc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRek5ETEU5QlFVOHNTMEZCU3l4RFFVRkRPMUZCUTJZc1EwRkJRenRSUVVORUxFOUJRVThzUzBGQlN5eERRVUZETzBsQlEyWXNRMEZCUXp0SlFVVlJMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRM0JDTEVkQlFXRXNSVUZEWWl4SFFVRkhMRWxCUVhORE8xRkJSWHBETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGRrSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6bEVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndRaXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVU5VTEZsQlFWa3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFZEJRV0VzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkRPVVVzUTBGQlF6dFJRVU5HTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETzFGQlEyNUVMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVTnlSU3hEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEYkVJc1IwRkJUU3hGUVVOT0xFZEJRVWNzU1VGQmMwTTdVVUZGZWtNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTjJRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMSEZDUVVGeFFpeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkROVVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnhDTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUTFRc2EwSkJRV3RDTEVkQlFXRXNUMEZCVHl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVTndSU3hEUVVGRE8xRkJRMFlzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU4yUlN4RFFVRkRPMGxCUlZFc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGRGJFSXNSMEZCVFN4RlFVTk9MRWRCUVVjc1NVRkJjME03VVVGRmVrTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU4yUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExFMUJRVTBzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETlVRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTJ4Q0xFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlExUXNhMEpCUVd0Q0xFZEJRV0VzVDBGQlR5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVU53UlN4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEhGQ1FVRnhRaXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOMlJTeERRVUZETzBsQlJWRXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkRiRUlzUjBGQlRTeEZRVU5PTEVkQlFVY3NTVUZCYzBNN1VVRkZla01zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOMlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE5VUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEyeENMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRMVFzYzBKQlFYTkNMRWRCUVdFc1QwRkJUeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVONFJTeERRVUZETzFGQlEwWXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTjJSU3hEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEYkVJc1IwRkJUU3hGUVVOT0xFZEJRVWNzU1VGQmMwTTdVVUZGZWtNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTjJRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMSEZDUVVGeFFpeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkROVVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnhDTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUTFRc2MwSkJRWE5DTEVkQlFXRXNUMEZCVHl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVTjRSU3hEUVVGRE8xRkJRMFlzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU4yUlN4RFFVRkRPMGxCUlZFc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGRGRrSXNSMEZCVFN4RlFVTk9MRWRCUVVjc1NVRkJjME03VVVGRmVrTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU4yUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEYWtVc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMUZCUTNaQ0xFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlExUXNPRUpCUVRoQ0xFZEJRV0VzVDBGQlR5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVU5vUml4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEhGQ1FVRnhRaXhEUVVGRExGZEJRVmNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNMVJTeERRVUZETzBsQlJWRXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkRjRUlzUjBGQlRTeEZRVU5PTEVkQlFVY3NTVUZCYzBNN1VVRkZla01zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOMlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE9VUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzQkNMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zV1VGQldTeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZoTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpORkxFOUJRVThzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eEpRVUZ6UXp0UlFVTjZSQ3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUlhoRUxFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJSWFJGTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlVTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVTnVRaXhMUVVGUkxFVkJRMUlzUjBGQlJ5eEpRVUZ6UXp0UlFVVjZReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE4wUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3huUWtGQlowSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxHRkJRV0VzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGRE1VVXNRMEZCUXp0UlFVTkdMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SFFVRkhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMnhFTEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1JVRkJSU3hGUVVGRkxGTkJRVk1zUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXp0UlFVTXpReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVOMFF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTldMRVZCUVVVc1JVRkRSaXhOUVVGTkxFVkJRMDRzVTBGQlV5eEZRVU5VTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkpMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNSVUZCUlN4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVFVXNRMEZCUXp0SlFVVlJMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRMjVDTEV0QlFWRXNSVUZEVWl4SFFVRkhMRWxCUVhORE8xRkJSWHBETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzaERMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5zUkN4TlFVRk5MRVZCUVVVc1JVRkJSU3hGUVVGRkxGTkJRVk1zUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXp0UlFVTnVReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUXpkQ0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlExQXNXVUZCV1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzWVVGQllTeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeEZRVUZGTEVWQlFVVXNRMEZEY0VZc1EwRkJRenRSUVVOR0xFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVOb1F5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTldMRVZCUVVVc1JVRkRSaXhOUVVGTkxFVkJRMDRzVTBGQlV5eEZRVU5VTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkpMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNSVUZCUlN4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVFVXNRMEZCUXp0SlFVVnJRaXhMUVVGTExFTkJRVU1zWlVGQlpTeERRVU4wUXl4TlFVRlhMRVZCUTFnc1IwRkJSeXhKUVVGelF6dFJRVVY2UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGNFUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzFGQlF6VkNMRTFCUVUwc1kwRkJZeXhIUVVGSExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFJRVU5xUkN4TlFVRk5MR05CUVdNc1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU03VVVGRGJrUXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTk8xbEJRVVVzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJVU3hEUVVGRE8xRkJSWFpFTEUxQlFVMHNSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRM2hDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzSkNMRU5CUVVNc1IwRkJSeXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRkRUlzU1VGQlNTeERRVUZETEdOQlFXTTdaMEpCUTJwQ0xFMUJRVTBzYlVKQlFXMUNMRU5CUTNaQ0xFbEJRVWtzUlVGRFNpeEhRVUZITEVWQlEwZ3NRMEZCUXl4RlFVTkVMR0ZCUVdFc1EwRkJReXhOUVVGTkxFVkJRM0JDTEdGQlFXRXNRMEZCUXl4RlFVRkZMRU5CUTJwQ0xFTkJRVU03V1VGRFNpeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTllMRU5CUVVNc1EwRkJReXhEUVVOSUxFTkJRVU03VVVGRlJpeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1dVRkRjRUlzVFVGQlRTeFpRVUZaTEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRaUVVWc1JTeE5RVUZOTEUxQlFVMHNSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRemxDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkRha1VzUTBGQlF6dFpRVVZHTEUxQlFVMHNZVUZCWVN4SFFVRkhMRzFDUVVGdFFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUld4RUxFbEJRVWtzWVVGQllUdG5Ra0ZCUlN4TlFVRk5MRWxCUVVrc1pVRkJaU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlF6bEVMRU5CUVVNN1VVRkRSQ3hQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRlJMRU5CUVVNN1NVRkRja01zUTBGQlF6dEpRVVZSTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUTNSQ0xFMUJRVmNzUlVGRFdDeEhRVUZITEVsQlFYTkRPMUZCUlhwRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFR0WlFVRkZMRTlCUVU4c1RVRkJUU3hEUVVGRE8xRkJRMnhETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTEZsQlFWa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1VVRkJVU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NZVUZCWVN4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVTXpSaXhEUVVGRE8xRkJSVVlzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFZEJRVWNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTI1RkxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTJwRkxFMUJRVTBzUjBGQlJ5eEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOMFF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGREwwTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEzQkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUXpGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlExWXNSMEZCZFVJc1JVRkRka0lzVVVGQlVTeEZRVU5TTEZWQlFWVXNSVUZEVml4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8xRkJRMFlzVDBGQlR5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVTm9RaXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRGVrSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyeENMRTlCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVa3NRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeEZRVUZGTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU4yUlN4RFFVRkRMRU5CUVVNc1EwRkRTQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZSTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTNCQ0xFbEJRWE5DTEVWQlEzUkNMRWRCUVVjc1NVRkJjME03VVVGRmVrTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXpsRUxFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlExQXNWMEZCVnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4aFFVRmhMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUTNCR0xFTkJRVU03VVVGRFJpeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZWtVc1QwRkJUeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRekZDTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUTNKRUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJWRXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkRkRUlzVFVGQlZ5eEZRVU5ZTEVkQlFVY3NTVUZCYzBNN1VVRkZla01zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEyaEZMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRMUFzV1VGQldTeE5RVUZOTEVOQlFVTXNUVUZCVFN4UlFVRlJMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeGhRVUZoTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlF6TkdMRU5CUVVNN1VVRkZSaXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYmtVc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYWtVc1RVRkJUU3hIUVVGSExFZEJRVWNzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNSRExFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRekZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUTFZc1IwRkJkVUlzUlVGRGRrSXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVNM1FpeFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUTJoRExFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4UFFVRlBMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRMmhDTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTjZRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRiRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkRlRUlzUTBGQlF5eEZRVU5FTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUTFZc1JVRkJSU3hGUVVOR0xGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUTNKQ0xFZEJRVWNzUTBGRFNpeERRVUZETzFGQlEwb3NRMEZCUXl4RFFVRkRMRU5CUTBnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlR5eHpRa0ZCYzBJc1EwRkJReXhIUVVGcFFpeEZRVUZGTEV0QlFWRTdVVUZEZUVRc1NVRkJTU3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkROVUlzUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEyNURMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wTkJRMFlpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZEhsd1pTQjdJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaeUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WTI5eVpWd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1EyOXVkR1Y0ZEU5bUxGeHVJQ0JFYVhKbFkzUnBiMjVNYVcxcGRFOW1abk5sZEN4Y2JpQWdSbXhoWjNOUFppeGNiaUFnVDJKelpYSjJaWEpJWVc1a2JHVnlMRnh1SUNCUGNtUmxja1JwY21WamRHbHZiaXhjYmlBZ1VHVnljMmx6ZEdWdVkyVkxaWGx6TEZ4dUlDQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE1zWEc0Z0lGSmxjRzl6YVhSdmNua3NYRzRnSUZObGNtbGhiR2w2WldSUVlXZGxMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUUxdlpHVnNJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dRMjl1YzNSeWRXTjBiM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdJSFI1Y0dVZ1JtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNpQjlJR1p5YjIwZ1hDSXVMMFpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWEpjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJR1Z1Wm05eVkyVkVRa1JsWTI5eVlYUnZjbk1zWEc0Z0lFOXdaWEpoZEdsdmJrdGxlWE1zWEc0Z0lGQnlhVzFoY25sTFpYbFVlWEJsTEZ4dUlDQnlaV1IxWTJWRmNuSnZjbk5VYjFCeWFXNTBMRnh1SUNCV1lXeHBaR0YwYVc5dVJYSnliM0lzWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUhzZ1EyOTFZMmhFUWt0bGVYTWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlp2Y2kxamIzVmphR1JpWENJN1hHNXBiWEJ2Y25RZ2V5QkdZV0p5YVdORGJHbGxiblJRWVdkcGJtRjBiM0lnZlNCbWNtOXRJRndpTGk5R1lXSnlhV05EYkdsbGJuUlFZV2RwYm1GMGIzSmNJanRjYm1sdGNHOXlkQ0I3SUZGMVpYSjVVbVZ6ZFd4MFZHOXZUR0Z5WjJWRmNuSnZjaUI5SUdaeWIyMGdYQ0l1TGk5emFHRnlaV1F2WlhKeWIzSnpYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsY0c5emFYUnZjbmtnYVcxd2JHVnRaVzUwWVhScGIyNGdabTl5SUVaaFluSnBZeUJqYkdsbGJuUWdiM0JsY21GMGFXOXVjMXh1SUNvZ1FITjFiVzFoY25rZ1JYaDBaVzVrY3lCMGFHVWdaMlZ1WlhKcFl5QlNaWEJ2YzJsMGIzSjVJSFJ2SUhCeVpYQmhjbVVnWTI5dWRHVjRkQ0JoYm1RZ1lYSm5kVzFsYm5SeklHWnZjaUJEVWxWRUlHOXdaWEpoZEdsdmJuTWdaWGhsWTNWMFpXUWdkbWxoSUdFZ1JtRmljbWxqSUdOc2FXVnVkQ0JCWkdGd2RHVnlMQ0IzYVhKcGJtY2dVbVZ3YjNOcGRHOXllVVpzWVdkeklHRnVaQ0JHWVdKeWFXTXRjM0JsWTJsbWFXTWdiM1psY25KcFpHVnpMbHh1SUNvZ1FIUmxiWEJzWVhSbElFMGdaWGgwWlc1a2N5Qk5iMlJsYkNBdElGUm9aU0J0YjJSbGJDQjBlWEJsSUdoaGJtUnNaV1FnWW5rZ2RHaHBjeUJ5WlhCdmMybDBiM0o1WEc0Z0tpQkFjR0Z5WVcwZ2UwRmtZWEIwWlhJOFlXNTVMQ0JOWVc1bmIxRjFaWEo1TENCR1lXSnlhV05HYkdGbmN5d2dRMjl1ZEdWNGREeEdZV0p5YVdOR2JHRm5jejQrZlNCYllXUmhjSFJsY2wwZ0xTQlBjSFJwYjI1aGJDQmhaR0Z3ZEdWeUlHbHVjM1JoYm1ObElIVnpaV1FnZEc4Z1pYaGxZM1YwWlNCdmNHVnlZWFJwYjI1elhHNGdLaUJBY0dGeVlXMGdlME52Ym5OMGNuVmpkRzl5UEUwK2ZTQmJZMnhoZW5wZElDMGdUM0IwYVc5dVlXd2diVzlrWld3Z1kyOXVjM1J5ZFdOMGIzSWdkWE5sWkNCaWVTQjBhR1VnY21Wd2IzTnBkRzl5ZVZ4dUlDb2dRSEpsZEhWeWJpQjdkbTlwWkgxY2JpQXFJRUJqYkdGemN5QkdZV0p5YVdORGJHbGxiblJTWlhCdmMybDBiM0o1WEc0Z0tpQkFaWGhoYlhCc1pWeHVJQ29nYVcxd2IzSjBJSHNnVW1Wd2IzTnBkRzl5ZVNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dUlDb2dhVzF3YjNKMElIc2dSbUZpY21salEyeHBaVzUwVW1Wd2IzTnBkRzl5ZVNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlptOXlMV1poWW5KcFkxd2lPMXh1SUNwY2JpQXFJR05zWVhOeklGVnpaWElnWlhoMFpXNWtjeUJOYjJSbGJDQjdJR2xrSVRvZ2MzUnlhVzVuT3lCdVlXMWxJVG9nYzNSeWFXNW5PeUI5WEc0Z0tpQmpiMjV6ZENCeVpYQnZJRDBnYm1WM0lFWmhZbkpwWTBOc2FXVnVkRkpsY0c5emFYUnZjbms4VlhObGNqNG9LVHRjYmlBcUlHTnZibk4wSUdOeVpXRjBaV1FnUFNCaGQyRnBkQ0J5WlhCdkxtTnlaV0YwWlNodVpYY2dWWE5sY2loN0lHbGtPaUJjSWpGY0lpd2dibUZ0WlRvZ1hDSkJiR2xqWlZ3aUlIMHBLVHRjYmlBcUlHTnZibk4wSUd4dllXUmxaQ0E5SUdGM1lXbDBJSEpsY0c4dWNtVmhaQ2hjSWpGY0lpazdYRzRnS2x4dUlDb2dRRzFsY20xaGFXUmNiaUFxSUhObGNYVmxibU5sUkdsaFozSmhiVnh1SUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JCY0hCY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1VtVndieUJoY3lCR1lXSnlhV05EYkdsbGJuUlNaWEJ2YzJsMGIzSjVYRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRUZrWVhCMFpYSmNiaUFxSUNBZ1FYQndMVDQrVW1Wd2J6b2dZM0psWVhSbEtHMXZaR1ZzS1Z4dUlDb2dJQ0JTWlhCdkxUNCtVbVZ3YnpvZ1kzSmxZWFJsVUhKbFptbDRLRzF2WkdWc0xDQXVMaTVoY21kektWeHVJQ29nSUNCU1pYQnZMVDQrUVdSaGNIUmxjam9nWTNKbFlYUmxLSFJoWW14bExDQnBaQ3dnYlc5a1pXd3NJR1pzWVdkektWeHVJQ29nSUNCQlpHRndkR1Z5TFMwK1BsSmxjRzg2SUhKbGMzVnNkRnh1SUNvZ0lDQlNaWEJ2TFMwK1BrRndjRG9nYlc5a1pXeGNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRVpoWW5KcFkwTnNhV1Z1ZEZKbGNHOXphWFJ2Y25rOFhHNGdJRTBnWlhoMFpXNWtjeUJOYjJSbGJDeGNiaUFnUVNCbGVIUmxibVJ6SUVaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhJZ1BTQkdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlMRnh1UGlCbGVIUmxibVJ6SUZKbGNHOXphWFJ2Y25rOFRTd2dRVDRnZTF4dUlDQndjbTkwWldOMFpXUWdiM1psY25KcFpHVWdYMjkyWlhKeWFXUmxjeUE5SUU5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUhOMWNHVnlXMXdpWDI5MlpYSnlhV1JsYzF3aVhTd2dlMXh1SUNBZ0lHbG5ibTl5WlZaaGJHbGtZWFJwYjI0NklIUnlkV1VzWEc0Z0lDQWdhV2R1YjNKbFNHRnVaR3hsY25NNklIUnlkV1VzWEc0Z0lDQWdZV3hzYjNkU1lYZFRkR0YwWlcxbGJuUnpPaUJtWVd4elpTeGNiaUFnSUNCbWIzSmpaVkJ5WlhCaGNtVlRhVzF3YkdWUmRXVnlhV1Z6T2lCMGNuVmxMRnh1SUNBZ0lHWnZjbU5sVUhKbGNHRnlaVU52YlhCc1pYaFJkV1Z5YVdWek9pQjBjblZsTEZ4dUlDQWdJR0ZzYkc5M1IyVnVaWEpoZEdsdmJrOTJaWEp5YVdSbE9pQm1ZV3h6WlN4Y2JpQWdJQ0J5WldKMWFXeGtWMmwwYUZSeVlXNXphV1Z1ZERvZ1ptRnNjMlVzWEc0Z0lIMHBPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLR0ZrWVhCMFpYSS9PaUJCTENCamJHRjZlajg2SUVOdmJuTjBjblZqZEc5eVBFMCtMQ0JtYjNKalpUb2dZbTl2YkdWaGJpQTlJR1poYkhObEtTQjdYRzRnSUNBZ2MzVndaWElvWVdSaGNIUmxjaXdnWTJ4aGVub3NJR1p2Y21ObEtUdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJRzkyWlhKeWFXUmxLR1pzWVdkek9pQlFZWEowYVdGc1BFWnNZV2R6VDJZOFEyOXVkR1Y0ZEU5bVBFRStQajRwT2lCMGFHbHpJSHRjYmlBZ0lDQnlaWFIxY200Z2MzVndaWEpjYmlBZ0lDQWdJQzV2ZG1WeWNtbGtaU2hQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0JtYkdGbmN5d2dkR2hwY3k1ZmIzWmxjbkpwWkdWektTbGNiaUFnSUNBZ0lDNW1iM0lvWm14aFozTWdZWE1nWVc1NUtUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0J2ZG1WeWNtbGtaU0JQWW5ObGNuWmxja2hoYm1Sc1pYSW9LVG9nVDJKelpYSjJaWEpJWVc1a2JHVnlJSHRjYmlBZ0lDQnlaWFIxY200Z2MzVndaWEl1VDJKelpYSjJaWEpJWVc1a2JHVnlLQ2s3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJ3WVdkcGJtRjBaVUo1S0Z4dUlDQWdJR3RsZVRvZ2EyVjViMllnVFN4Y2JpQWdJQ0J2Y21SbGNqb2dUM0prWlhKRWFYSmxZM1JwYjI0c1hHNGdJQ0FnY21WbU9pQlBiV2wwUEVScGNtVmpkR2x2Ymt4cGJXbDBUMlptYzJWMExDQmNJbVJwY21WamRHbHZibHdpUGlBOUlIdGNiaUFnSUNBZ0lHOW1abk5sZERvZ01TeGNiaUFnSUNBZ0lHeHBiV2wwT2lBeE1DeGNiaUFnSUNCOUxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4RGIyNTBaWGgwVDJZOFFUNCtYRzRnSUNrNklGQnliMjFwYzJVOFUyVnlhV0ZzYVhwbFpGQmhaMlU4VFQ0K0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dVSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGxCQlIwVmZRbGtzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXdZV2RwYm1GMFpVSjVLVHRjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hjYmlBZ0lDQWdJR0J3WVdkcGJtRjBhVzVuSUNSN1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0hSb2FYTXVZMnhoYzNNcGZTQjNhWFJvSUhCaFoyVWdjMmw2WlNBa2UzSmxaaTVzYVcxcGRIMWdYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpkR0YwWlcxbGJuUW9YRzRnSUNBZ0lDQjBhR2x6TG5CaFoybHVZWFJsUW5rdWJtRnRaU3hjYmlBZ0lDQWdJR3RsZVN4Y2JpQWdJQ0FnSUc5eVpHVnlMRnh1SUNBZ0lDQWdleUJzYVcxcGREb2djbVZtTG14cGJXbDBMQ0J2Wm1aelpYUTZJSEpsWmk1dlptWnpaWFFzSUdKdmIydHRZWEpyT2lCeVpXWXVZbTl2YTIxaGNtc2dmU3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdiR2x6ZEVKNUtGeHVJQ0FnSUd0bGVUb2dhMlY1YjJZZ1RTeGNiaUFnSUNCdmNtUmxjam9nVDNKa1pYSkVhWEpsWTNScGIyNHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeE5XMTArSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMa3hKVTFSZlFsa3NJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1c2FYTjBRbmtwTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0Z4dUlDQWdJQ0FnWUd4cGMzUnBibWNnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOUlHSjVJQ1I3YTJWNUlHRnpJSE4wY21sdVozMGdKSHR2Y21SbGNuMWdYRzRnSUNBZ0tUdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCMGFHbHpMbk4wWVhSbGJXVnVkQ2hjYmlBZ0lDQWdJQ0FnZEdocGN5NXNhWE4wUW5rdWJtRnRaU3hjYmlBZ0lDQWdJQ0FnYTJWNUxGeHVJQ0FnSUNBZ0lDQnZjbVJsY2l4Y2JpQWdJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNBZ0tTa2dZWE1nWVc1NU8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lHbG1JQ2hsSUdsdWMzUmhibU5sYjJZZ1VYVmxjbmxTWlhOMWJIUlViMjlNWVhKblpVVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lHeHZaeTUzWVhKdUtGeHVJQ0FnSUNBZ0lDQWdJR0JzYVhOMFFua2djbVZ6ZFd4MElITmxkQ0IwYjI4Z2JHRnlaMlVnWm05eUlDUjdUVzlrWld3dWRHRmliR1ZPWVcxbEtIUm9hWE11WTJ4aGMzTXBmU0JyWlhrOUpIdFRkSEpwYm1jb2EyVjVLWDBnYjNKa1pYSTlKSHR2Y21SbGNuMHVJRkpsZEhWeWJtbHVaeUJsYlhCMGVTQnNhWE4wTGlCVmMyVWdjR0ZuYVc1aGRHVkNlU0JtYjNJZ2JHRnlaMlVnWkdGMFlYTmxkSE11WUZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1cxMGdZWE1nVFZ0ZE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RHaHliM2NnWlR0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJtYVc1a1Fua29YRzRnSUNBZ2EyVjVPaUJyWlhsdlppQk5MRnh1SUNBZ0lIWmhiSFZsT2lCaGJua3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeE5XMTArSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMa1pKVGtSZlFsa3NJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1bWFXNWtRbmtwTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0Z4dUlDQWdJQ0FnWUdacGJtUnBibWNnWVd4c0lDUjdUVzlrWld3dWRHRmliR1ZPWVcxbEtIUm9hWE11WTJ4aGMzTXBmU0IzYVhSb0lDUjdhMlY1SUdGeklITjBjbWx1WjMwZ0pIdDJZV3gxWlgxZ1hHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11YzNSaGRHVnRaVzUwS0Z4dUlDQWdJQ0FnZEdocGN5NW1hVzVrUW5rdWJtRnRaU3hjYmlBZ0lDQWdJR3RsZVN4Y2JpQWdJQ0FnSUhaaGJIVmxMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDa3BJR0Z6SUdGdWVUdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHWnBibVJQYm1WQ2VTaGNiaUFnSUNCclpYazZJR3RsZVc5bUlFMHNYRzRnSUNBZ2RtRnNkV1U2SUdGdWVTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFEyOXVkR1Y0ZEU5bVBFRStQbHh1SUNBcE9pQlFjbTl0YVhObFBFMCtJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrWkpUa1JmVDA1RlgwSlpMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVptbHVaRTl1WlVKNUtUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGNiaUFnSUNBZ0lHQm1hVzVrYVc1bklFOXVaU0FrZTAxdlpHVnNMblJoWW14bFRtRnRaU2gwYUdsekxtTnNZWE56S1gwZ2QybDBhQ0FrZTJ0bGVTQmhjeUJ6ZEhKcGJtZDlJQ1I3ZG1Gc2RXVjlZRnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUNoaGQyRnBkQ0IwYUdsekxuTjBZWFJsYldWdWRDaGNiaUFnSUNBZ0lIUm9hWE11Wm1sdVpFOXVaVUo1TG01aGJXVXNYRzRnSUNBZ0lDQnJaWGtzWEc0Z0lDQWdJQ0IyWVd4MVpTeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcEtTQmhjeUJoYm5rN1hHNGdJSDFjYmx4dUlDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCbWFXNWtLRnh1SUNBZ0lIWmhiSFZsT2lCemRISnBibWNzWEc0Z0lDQWdiM0prWlhJNklFOXlaR1Z5UkdseVpXTjBhVzl1SUQwZ1QzSmtaWEpFYVhKbFkzUnBiMjR1UVZORExGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4RGIyNTBaWGgwVDJZOFFUNCtYRzRnSUNrNklGQnliMjFwYzJVOFRWdGRQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NUdTVTVFTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVabWx1WkNrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1hHNGdJQ0FnSUNCZ1ptbHVaR2x1WnlBa2UwMXZaR1ZzTG5SaFlteGxUbUZ0WlNoMGFHbHpMbU5zWVhOektYMGdZbmtnWkdWbVlYVnNkQ0J4ZFdWeWVTQmhkSFJ5YVdKMWRHVnpZRnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUNoaGQyRnBkQ0IwYUdsekxuTjBZWFJsYldWdWRDaGNiaUFnSUNBZ0lIUm9hWE11Wm1sdVpDNXVZVzFsTEZ4dUlDQWdJQ0FnZG1Gc2RXVXNYRzRnSUNBZ0lDQnZjbVJsY2l4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwS1NCaGN5Qmhibms3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJ3WVdkbEtGeHVJQ0FnSUhaaGJIVmxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ1pHbHlaV04wYVc5dU9pQlBjbVJsY2tScGNtVmpkR2x2YmlBOUlFOXlaR1Z5UkdseVpXTjBhVzl1TGtGVFF5eGNiaUFnSUNCeVpXWTZJRTl0YVhROFJHbHlaV04wYVc5dVRHbHRhWFJQWm1aelpYUXNJRndpWkdseVpXTjBhVzl1WENJK0lEMGdlMXh1SUNBZ0lDQWdiMlptYzJWME9pQXhMRnh1SUNBZ0lDQWdiR2x0YVhRNklERXdMRnh1SUNBZ0lIMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFTnZiblJsZUhSUFpqeEJQajVjYmlBZ0tUb2dVSEp2YldselpUeFRaWEpwWVd4cGVtVmtVR0ZuWlR4TlBqNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVVFRkhSU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxuQmhaMlVwTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0Z4dUlDQWdJQ0FnWUhCaFoybHVaeUFrZTAxdlpHVnNMblJoWW14bFRtRnRaU2gwYUdsekxtTnNZWE56S1gwZ1lua2daR1ZtWVhWc2RDQnhkV1Z5ZVNCaGRIUnlhV0oxZEdWellGeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJQ2hoZDJGcGRDQjBhR2x6TG5OMFlYUmxiV1Z1ZENoY2JpQWdJQ0FnSUhSb2FYTXVjR0ZuWlM1dVlXMWxMRnh1SUNBZ0lDQWdkbUZzZFdVc1hHNGdJQ0FnSUNCa2FYSmxZM1JwYjI0c1hHNGdJQ0FnSUNCeVpXWXNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tTa2dZWE1nWVc1NU8xeHVJQ0I5WEc1Y2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ2MzUmhkR1Z0Wlc1MEtGeHVJQ0FnSUc1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFEyOXVkR1Y0ZEU5bVBFRStQbHh1SUNBcE9pQlFjbTl0YVhObFBHRnVlVDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIZ3NJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRkJsY25OcGMzUmxibU5sUzJWNWN5NVRWRUZVUlUxRlRsUXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1emRHRjBaVzFsYm5RcE8xeHVJQ0FnSUd4dlp5NTJaWEppYjNObEtHQkZlR1ZqZFhScGJtY2djSEpsY0dGeVpXUWdjM1JoZEdWdFpXNTBJQ1I3Ym1GdFpYMWdLVHRjYmlBZ0lDQmpiMjV6ZENCallXeHNRWEpuY3lBOUlHTjBlRUZ5WjNNdWMyeHBZMlVvTUN3Z0xURXBPMXh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUVwVFQwNHVjR0Z5YzJVb1hHNGdJQ0FnSUNCMGFHbHpMbUZrWVhCMFpYSXVaR1ZqYjJSbEtGeHVJQ0FnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbUZrWVhCMFpYSXVaWFpoYkhWaGRHVlVjbUZ1YzJGamRHbHZiaWhjYmlBZ0lDQWdJQ0FnSUNCamRIZ3NYRzRnSUNBZ0lDQWdJQ0FnVUdWeWMybHpkR1Z1WTJWTFpYbHpMbE5VUVZSRlRVVk9WQ3hjYmlBZ0lDQWdJQ0FnSUNCYmJtRnRaU3dnU2xOUFRpNXpkSEpwYm1kcFpua29ZMkZzYkVGeVozTXBYU3hjYmlBZ0lDQWdJQ0FnSUNCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNBZ0lDQWdkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVZMnhoYzNOY2JpQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0tWeHVJQ0FnSUNrN1hHNWNiaUFnSUNCc1pYUWdhSGxrY21GMFpXUTZJR0Z1ZVR0Y2JpQWdJQ0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2h5WlhOMWJIUXBLU0I3WEc0Z0lDQWdJQ0JvZVdSeVlYUmxaQ0E5SUhKbGMzVnNkQzV0WVhBb0tISTZJR0Z1ZVNrZ1BUNWNiaUFnSUNBZ0lDQWdLSElnWVhNZ1lXNTVLVnREYjNWamFFUkNTMlY1Y3k1VVFVSk1SVjBnSmlaY2JpQWdJQ0FnSUNBZ0tISWdZWE1nWVc1NUtWdERiM1ZqYUVSQ1MyVjVjeTVVUVVKTVJWMGdQVDA5SUUxdlpHVnNMblJoWW14bFRtRnRaU2gwYUdsekxtTnNZWE56S1Z4dUlDQWdJQ0FnSUNBZ0lEOGdLRzVsZHlCMGFHbHpMbU5zWVhOektISXBJR0Z6SUUwcFhHNGdJQ0FnSUNBZ0lDQWdPaUJ5WEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvWEc0Z0lDQWdJQ0FvY21WemRXeDBJR0Z6SUdGdWVTbGJRMjkxWTJoRVFrdGxlWE11VkVGQ1RFVmRJQ1ltWEc0Z0lDQWdJQ0FvY21WemRXeDBJR0Z6SUdGdWVTbGJRMjkxWTJoRVFrdGxlWE11VkVGQ1RFVmRJRDA5UFNCTmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUdoNVpISmhkR1ZrSUQwZ2JtVjNJSFJvYVhNdVkyeGhjM01vY21WemRXeDBLU0JoY3lCTk8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb1JtRmljbWxqUTJ4cFpXNTBVR0ZuYVc1aGRHOXlMbWx6VTJWeWFXRnNhWHBsWkZCaFoyVW9jbVZ6ZFd4MEtTa2dlMXh1SUNBZ0lDQWdhSGxrY21GMFpXUWdQU0JQWW1wbFkzUXVZWE56YVdkdUtISmxjM1ZzZEN3Z2UxeHVJQ0FnSUNBZ0lDQmtZWFJoT2lCeVpYTjFiSFF1WkdGMFlTNXRZWEFvS0dRNklHRnVlU2tnUFQ0Z2JtVjNJSFJvYVhNdVkyeGhjM01vWkNrZ1lYTWdUU2tzWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdhSGxrY21GMFpXUWdQU0J5WlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZWEJ3YkhsQlpuUmxjbEpsWVdRb2FIbGtjbUYwWldRc0lHTjBlQ2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJR0Z3Y0d4NVFXWjBaWEpTWldGa0tIWmhiSFZsT2lCaGJua3NJR04wZURvZ1EyOXVkR1Y0ZEU5bVBFRStLVG9nVUhKdmJXbHpaVHhoYm5rK0lIdGNiaUFnSUNCcFppQW9JV04wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW1GbWRHVnlVWFZsY25sSVlXNWtiR1Z5YzF3aUtTa2djbVYwZFhKdUlIWmhiSFZsTzF4dUlDQWdJR2xtSUNoMllXeDFaU0JwYm5OMFlXNWpaVzltSUUxdlpHVnNLU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQmxibVp2Y21ObFJFSkVaV052Y21GMGIzSnpQRTBzSUZKbGNHOXphWFJ2Y25rOFRTd2dRVDRzSUdGdWVUNG9YRzRnSUNBZ0lDQWdJSFJvYVhNc1hHNGdJQ0FnSUNBZ0lHTjBlQ3hjYmlBZ0lDQWdJQ0FnZG1Gc2RXVWdZWE1nVFN4Y2JpQWdJQ0FnSUNBZ1QzQmxjbUYwYVc5dVMyVjVjeTVTUlVGRUxGeHVJQ0FnSUNBZ0lDQlBjR1Z5WVhScGIyNUxaWGx6TGtGR1ZFVlNYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIWmhiSFZsTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlNrcElIdGNiaUFnSUNBZ0lHRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tIWmhiSFZsTG0xaGNDZ29aVzUwY25rcElEMCtJSFJvYVhNdVlYQndiSGxCWm5SbGNsSmxZV1FvWlc1MGNua3NJR04wZUNrcEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMllXeDFaVHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLRVpoWW5KcFkwTnNhV1Z1ZEZCaFoybHVZWFJ2Y2k1cGMxTmxjbWxoYkdsNlpXUlFZV2RsS0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1aGNIQnNlVUZtZEdWeVVtVmhaQ2gyWVd4MVpTNWtZWFJoTENCamRIZ3BPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIWmhiSFZsTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1U3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJqYjNWdWRFOW1LRnh1SUNBZ0lHdGxlVDg2SUd0bGVXOW1JRTBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QRU52Ym5SbGVIUlBaanhCUGo1Y2JpQWdLVG9nVUhKdmJXbHpaVHh1ZFcxaVpYSStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrTlBWVTVVWDA5R0xDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WTI5MWJuUlBaaWs3WEc0Z0lDQWdiRzluTG5abGNtSnZjMlVvWEc0Z0lDQWdJQ0JnWTI5MWJuUnBibWNnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOUpIdHJaWGtnUHlCZ0lHSjVJQ1I3YTJWNUlHRnpJSE4wY21sdVozMWdJRG9nWENKY0luMWdYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0J6ZEcxMFFYSm5jeUE5SUd0bGVTQS9JRnRyWlhrc0lDNHVMbU4wZUVGeVozTmRJRG9nWTNSNFFYSm5jenRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6ZEdGMFpXMWxiblFvVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrTlBWVTVVWDA5R0xDQXVMaTV6ZEcxMFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJ0WVhoUFpqeExJR1Y0ZEdWdVpITWdhMlY1YjJZZ1RUNG9YRzRnSUNBZ2EyVjVPaUJMTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhEYjI1MFpYaDBUMlk4UVQ0K1hHNGdJQ2s2SUZCeWIyMXBjMlU4VFZ0TFhUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVRVRllYMDlHTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXViV0Y0VDJZcE8xeHVJQ0FnSUd4dlp5NTJaWEppYjNObEtGeHVJQ0FnSUNBZ1lHWnBibVJwYm1jZ2JXRjRJRzltSUNSN2EyVjVJR0Z6SUhOMGNtbHVaMzBnYVc0Z0pIdE5iMlJsYkM1MFlXSnNaVTVoYldVb2RHaHBjeTVqYkdGemN5bDlZRnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoZEdWdFpXNTBLRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1TlFWaGZUMFlzSUd0bGVTd2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJ0YVc1UFpqeExJR1Y0ZEdWdVpITWdhMlY1YjJZZ1RUNG9YRzRnSUNBZ2EyVjVPaUJMTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhEYjI1MFpYaDBUMlk4UVQ0K1hHNGdJQ2s2SUZCeWIyMXBjMlU4VFZ0TFhUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVRVbE9YMDlHTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXViV2x1VDJZcE8xeHVJQ0FnSUd4dlp5NTJaWEppYjNObEtGeHVJQ0FnSUNBZ1lHWnBibVJwYm1jZ2JXbHVJRzltSUNSN2EyVjVJR0Z6SUhOMGNtbHVaMzBnYVc0Z0pIdE5iMlJsYkM1MFlXSnNaVTVoYldVb2RHaHBjeTVqYkdGemN5bDlZRnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoZEdWdFpXNTBLRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1TlNVNWZUMFlzSUd0bGVTd2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJoZG1kUFpqeExJR1Y0ZEdWdVpITWdhMlY1YjJZZ1RUNG9YRzRnSUNBZ2EyVjVPaUJMTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhEYjI1MFpYaDBUMlk4UVQ0K1hHNGdJQ2s2SUZCeWIyMXBjMlU4Ym5WdFltVnlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NUJWa2RmVDBZc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVoZG1kUFppazdYRzRnSUNBZ2JHOW5MblpsY21KdmMyVW9YRzRnSUNBZ0lDQmdZMkZzWTNWc1lYUnBibWNnWVhabklHOW1JQ1I3YTJWNUlHRnpJSE4wY21sdVozMGdhVzRnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOVlGeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMzUmhkR1Z0Wlc1MEtGQnlaWEJoY21Wa1UzUmhkR1Z0Wlc1MFMyVjVjeTVCVmtkZlQwWXNJR3RsZVN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QnpkVzFQWmp4TElHVjRkR1Z1WkhNZ2EyVjViMllnVFQ0b1hHNGdJQ0FnYTJWNU9pQkxMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFQyWThRVDQrWEc0Z0lDazZJRkJ5YjIxcGMyVThiblZ0WW1WeVBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1VFZVMWZUMFlzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXpkVzFQWmlrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1hHNGdJQ0FnSUNCZ1kyRnNZM1ZzWVhScGJtY2djM1Z0SUc5bUlDUjdhMlY1SUdGeklITjBjbWx1WjMwZ2FXNGdKSHROYjJSbGJDNTBZV0pzWlU1aGJXVW9kR2hwY3k1amJHRnpjeWw5WUZ4dUlDQWdJQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YzNSaGRHVnRaVzUwS0ZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NVRWVTFmVDBZc0lHdGxlU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCa2FYTjBhVzVqZEU5bVBFc2daWGgwWlc1a2N5QnJaWGx2WmlCTlBpaGNiaUFnSUNCclpYazZJRXNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QRU52Ym5SbGVIUlBaanhCUGo1Y2JpQWdLVG9nVUhKdmJXbHpaVHhOVzB0ZFcxMCtJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrUkpVMVJKVGtOVVgwOUdMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVpHbHpkR2x1WTNSUFppazdYRzRnSUNBZ2JHOW5MblpsY21KdmMyVW9YRzRnSUNBZ0lDQmdabWx1WkdsdVp5QmthWE4wYVc1amRDQjJZV3gxWlhNZ2IyWWdKSHRyWlhrZ1lYTWdjM1J5YVc1bmZTQnBiaUFrZTAxdlpHVnNMblJoWW14bFRtRnRaU2gwYUdsekxtTnNZWE56S1gxZ1hHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1emRHRjBaVzFsYm5Rb1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMa1JKVTFSSlRrTlVYMDlHTENCclpYa3NJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nWjNKdmRYQlBaanhMSUdWNGRHVnVaSE1nYTJWNWIyWWdUVDRvWEc0Z0lDQWdhMlY1T2lCTExGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4RGIyNTBaWGgwVDJZOFFUNCtYRzRnSUNrNklGQnliMjFwYzJVOFVtVmpiM0prUEhOMGNtbHVaeXdnVFZ0ZFBqNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVIxSlBWVkJmVDBZc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVuY205MWNFOW1LVHRjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnWjNKdmRYQnBibWNnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOUlHSjVJQ1I3YTJWNUlHRnpJSE4wY21sdVozMWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6ZEdGMFpXMWxiblFvVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrZFNUMVZRWDA5R0xDQnJaWGtzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2FHVmhiSFJvWTJobFkyc29MaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QRU52Ym5SbGVIUlBaanhCUGo0cElIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11YUdWaGJIUm9ZMmhsWTJzcE8xeHVYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnWVhkaGFYUWdkR2hwY3k1aFpHRndkR1Z5TG1obFlXeDBhR05vWldOcktIUm9hWE11WTJ4aGMzTXNJQzR1TG1OMGVFRnlaM01wTzF4dVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHTnlaV0YwWlNoY2JpQWdJQ0J0YjJSbGJEb2dUU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhRMjl1ZEdWNGRFOW1QRUUrUGx4dUlDQXBPaUJRY205dGFYTmxQRTArSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUN3Z2JHOW5MQ0JqZEhoQmNtZHpJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbU55WldGMFpTazdYRzRnSUNBZ2JHOW5MbVJsWW5WbktGeHVJQ0FnSUNBZ1lFTnlaV0YwYVc1bklHNWxkeUFrZTNSb2FYTXVZMnhoYzNNdWJtRnRaWDBnYVc0Z2RHRmliR1VnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOVlGeHVJQ0FnSUNrN1hHNGdJQ0FnZEdocGN5NWxibk4xY21WTVpXZGhZM2xOYVhKeWIzSkdiR0ZuS0dOMGVDd2diVzlrWld3cE8xeHVJQ0FnSUdOdmJuTjBJSEJ5WlhCaGNtVmtJRDBnZEdocGN5NWhaR0Z3ZEdWeUxuQnlaWEJoY21Vb2JXOWtaV3dzSUdOMGVDazdYRzRnSUNBZ1kyOXVjM1FnZXlCeVpXTnZjbVFzSUdsa0xDQjBjbUZ1YzJsbGJuUWdmU0E5SUhCeVpYQmhjbVZrTzF4dUlDQWdJR052Ym5OMElISmxjM1ZzZENBOUlHRjNZV2wwSUhSb2FYTXVZV1JoY0hSbGNpNWpjbVZoZEdVb1hHNGdJQ0FnSUNCMGFHbHpMbU5zWVhOekxGeHVJQ0FnSUNBZ2FXUXNYRzRnSUNBZ0lDQnlaV052Y21Rc1hHNGdJQ0FnSUNCMGNtRnVjMmxsYm5Rc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1aFpHRndkR1Z5TG5KbGRtVnlkRHhOUGloeVpYTjFiSFFzSUhSb2FYTXVZMnhoYzNNc0lHbGtMQ0IwY21GdWMybGxiblFzSUdOMGVDazdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QjFjR1JoZEdVb1hHNGdJQ0FnYlc5a1pXdzZJRTBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QRU52Ym5SbGVIUlBaanhCUGo1Y2JpQWdLVG9nVUhKdmJXbHpaVHhOUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpMQ0JzYjJjc0lHTjBlQ0I5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTUxY0dSaGRHVXBPMXh1SUNBZ0lIUm9hWE11Wlc1emRYSmxUR1ZuWVdONVRXbHljbTl5Um14aFp5aGpkSGdzSUcxdlpHVnNLVHRjYmlBZ0lDQmpiMjV6ZENCd2NtVndZWEpsWkNBOUlIUm9hWE11WVdSaGNIUmxjaTV3Y21Wd1lYSmxLRzF2WkdWc0xDQmpkSGdwTzF4dUlDQWdJR052Ym5OMElIc2dhV1FzSUhSeVlXNXphV1Z1ZENCOUlEMGdjSEpsY0dGeVpXUTdYRzRnSUNBZ2JHVjBJSEpsWTI5eVpDQTlJSEJ5WlhCaGNtVmtMbkpsWTI5eVpEdGNiaUFnSUNCc2IyY3VaR1ZpZFdjb1hHNGdJQ0FnSUNCZ2RYQmtZWFJwYm1jZ0pIdDBhR2x6TG1Oc1lYTnpMbTVoYldWOUlHbHVJSFJoWW14bElDUjdUVzlrWld3dWRHRmliR1ZPWVcxbEtIUm9hWE11WTJ4aGMzTXBmU0IzYVhSb0lHbGtJQ1I3YVdSOVlGeHVJQ0FnSUNrN1hHNGdJQ0FnY21WamIzSmtJRDBnWVhkaGFYUWdkR2hwY3k1aFpHRndkR1Z5TG5Wd1pHRjBaU2hjYmlBZ0lDQWdJSFJvYVhNdVkyeGhjM01zWEc0Z0lDQWdJQ0JwWkN4Y2JpQWdJQ0FnSUhKbFkyOXlaQ3hjYmlBZ0lDQWdJSFJ5WVc1emFXVnVkQ3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbUZrWVhCMFpYSXVjbVYyWlhKMFBFMCtLSEpsWTI5eVpDd2dkR2hwY3k1amJHRnpjeXdnYVdRc0lIUnlZVzV6YVdWdWRDd2dZM1I0S1R0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCamNtVmhkR1ZCYkd4UWNtVm1hWGdvWEc0Z0lDQWdiVzlrWld4ek9pQk5XMTBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QRU52Ym5SbGVIUlBaanhCUGo1Y2JpQWdLVG9nVUhKdmJXbHpaVHhiVFZ0ZExDQXVMaTVoYm5sYlhTd2dRMjl1ZEdWNGRFOW1QRUUrWFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNExDQmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQlBjR1Z5WVhScGIyNUxaWGx6TGtOU1JVRlVSU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtTnlaV0YwWlVGc2JGQnlaV1pwZUNrN1hHNGdJQ0FnWTI5dWMzUWdhV2R1YjNKbFNHRnVaR3hsY25NZ1BTQmpkSGd1WjJWMEtGd2lhV2R1YjNKbFNHRnVaR3hsY25OY0lpazdYRzRnSUNBZ1kyOXVjM1FnYVdkdWIzSmxWbUZzYVdSaGRHVWdQU0JqZEhndVoyVjBLRndpYVdkdWIzSmxWbUZzYVdSaGRHbHZibHdpS1R0Y2JpQWdJQ0JwWmlBb0lXMXZaR1ZzY3k1c1pXNW5kR2dwSUhKbGRIVnliaUJiYlc5a1pXeHpMQ0F1TGk1amRIaEJjbWR6WFNCaGN5Qmhibms3WEc1Y2JpQWdJQ0J0YjJSbGJITWdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2hjYmlBZ0lDQWdJRzF2WkdWc2N5NXRZWEFvWVhONWJtTWdLRzBwSUQwK0lIdGNiaUFnSUNBZ0lDQWdiU0E5SUc1bGR5QjBhR2x6TG1Oc1lYTnpLRzBwTzF4dUlDQWdJQ0FnSUNCcFppQW9JV2xuYm05eVpVaGhibVJzWlhKektWeHVJQ0FnSUNBZ0lDQWdJR0YzWVdsMElHVnVabTl5WTJWRVFrUmxZMjl5WVhSdmNuTThUU3dnVW1Wd2IzTnBkRzl5ZVR4TkxDQkJQaXdnWVc1NVBpaGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXNYRzRnSUNBZ0lDQWdJQ0FnSUNCamRIZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCdExGeHVJQ0FnSUNBZ0lDQWdJQ0FnVDNCbGNtRjBhVzl1UzJWNWN5NURVa1ZCVkVVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JQY0dWeVlYUnBiMjVMWlhsekxrOU9YRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUcwN1hHNGdJQ0FnSUNCOUtWeHVJQ0FnSUNrN1hHNWNiaUFnSUNCcFppQW9JV2xuYm05eVpWWmhiR2xrWVhSbEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCcFoyNXZjbVZrVUhKdmNITWdQU0JqZEhndVoyVjBLRndpYVdkdWIzSmxaRlpoYkdsa1lYUnBiMjVRY205d1pYSjBhV1Z6WENJcElIeDhJRnRkTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0JsY25KdmNuTWdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2hjYmlBZ0lDQWdJQ0FnYlc5a1pXeHpMbTFoY0Nnb2JTa2dQVDRnVUhKdmJXbHpaUzV5WlhOdmJIWmxLRzB1YUdGelJYSnliM0p6S0M0dUxtbG5ibTl5WldSUWNtOXdjeWtwS1Z4dUlDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnWlhKeWIzSk5aWE56WVdkbGN5QTlJSEpsWkhWalpVVnljbTl5YzFSdlVISnBiblFvWlhKeWIzSnpLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tHVnljbTl5VFdWemMyRm5aWE1wSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWlhKeWIzSk5aWE56WVdkbGN5azdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJiYlc5a1pXeHpMQ0F1TGk1amRIaEJjbWR6WFNCaGN5Qmhibms3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJqY21WaGRHVkJiR3dvWEc0Z0lDQWdiVzlrWld4ek9pQk5XMTBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QRU52Ym5SbGVIUlBaanhCUGo1Y2JpQWdLVG9nVUhKdmJXbHpaVHhOVzEwK0lIdGNiaUFnSUNCcFppQW9JVzF2WkdWc2N5NXNaVzVuZEdncElISmxkSFZ5YmlCdGIyUmxiSE03WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGdzSUd4dlp5d2dZM1I0UVhKbmN5QjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NWpjbVZoZEdWQmJHd3BPMXh1SUNBZ0lHeHZaeTVrWldKMVp5aGNiaUFnSUNBZ0lHQkRjbVZoZEdsdVp5QWtlMjF2WkdWc2N5NXNaVzVuZEdoOUlHNWxkeUFrZTNSb2FYTXVZMnhoYzNNdWJtRnRaWDBnYVc0Z2RHRmliR1VnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Z6Y3lsOVlGeHVJQ0FnSUNrN1hHNWNiaUFnSUNCdGIyUmxiSE11Wm05eVJXRmphQ2dvYlc5a1pXd3BJRDArSUhSb2FYTXVaVzV6ZFhKbFRHVm5ZV041VFdseWNtOXlSbXhoWnloamRIZ3NJRzF2WkdWc0tTazdYRzRnSUNBZ1kyOXVjM1FnY0hKbGNHRnlaV1FnUFNCdGIyUmxiSE11YldGd0tDaHRLU0E5UGlCMGFHbHpMbUZrWVhCMFpYSXVjSEpsY0dGeVpTaHRMQ0JqZEhncEtUdGNiaUFnSUNCamIyNXpkQ0JwWkhNZ1BTQndjbVZ3WVhKbFpDNXRZWEFvS0hBcElEMCtJSEF1YVdRcE8xeHVJQ0FnSUdOdmJuTjBJSEJoZVd4dllXUnpJRDBnY0hKbGNHRnlaV1F1YldGd0tDaHdLU0E5UGlCd0xuSmxZMjl5WkNrN1hHNGdJQ0FnWTI5dWMzUWdkSEpoYm5OcFpXNTBjeUE5SUhCeVpYQmhjbVZrTG0xaGNDZ29jQ2tnUFQ0Z2NDNTBjbUZ1YzJsbGJuUXBPMXh1SUNBZ0lHTnZibk4wSUdOeVpXRjBaV1FnUFNCaGQyRnBkQ0IwYUdsekxtRmtZWEIwWlhJdVkzSmxZWFJsUVd4c0tGeHVJQ0FnSUNBZ2RHaHBjeTVqYkdGemN5eGNiaUFnSUNBZ0lHbGtjeUJoY3lCUWNtbHRZWEo1UzJWNVZIbHdaVnRkTEZ4dUlDQWdJQ0FnY0dGNWJHOWhaSE1zWEc0Z0lDQWdJQ0IwY21GdWMybGxiblJ6TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdjbVYwZFhKdUlGQnliMjFwYzJVdVlXeHNLRnh1SUNBZ0lDQWdZM0psWVhSbFpDNXRZWEFvWVhONWJtTWdLSElzSUdrcElEMCtJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhV1FnUFNCcFpITmJhVjA3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtRmtZWEIwWlhJdWNtVjJaWEowUEUwK0tISXNJSFJvYVhNdVkyeGhjM01zSUdsa0xDQjBjbUZ1YzJsbGJuUnpXMmxkTENCamRIZ3BPMXh1SUNBZ0lDQWdmU2xjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdjbVZoWkVGc2JDaGNiaUFnSUNCclpYbHpPaUJRY21sdFlYSjVTMlY1Vkhsd1pWdGRMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFQyWThRVDQrWEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRMQ0JzYjJjc0lHTjBlRUZ5WjNNZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWNtVmhaRUZzYkNrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0Z4dUlDQWdJQ0FnWUhKbFlXUnBibWNnSkh0clpYbHpMbXhsYm1kMGFIMGdKSHQwYUdsekxtTnNZWE56TG01aGJXVjlJR2x1SUhSaFlteGxJQ1I3VFc5a1pXd3VkR0ZpYkdWT1lXMWxLSFJvYVhNdVkyeGhjM01wZldCY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElISmxZMjl5WkhNZ1BTQmhkMkZwZENCMGFHbHpMbUZrWVhCMFpYSXVjbVZoWkVGc2JDaDBhR2x6TG1Oc1lYTnpMQ0JyWlhsekxDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ0lDQnlaWFIxY200Z2NtVmpiM0prY3k1dFlYQW9LSElzSUdrcElEMCtYRzRnSUNBZ0lDQjBhR2x6TG1Ga1lYQjBaWEl1Y21WMlpYSjBLSElzSUhSb2FYTXVZMnhoYzNNc0lHdGxlWE5iYVYwc0lIdDlMQ0JqZEhncFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUhWd1pHRjBaVUZzYkNoY2JpQWdJQ0J0YjJSbGJITTZJRTFiWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4UTI5dWRHVjRkRTltUEVFK1BseHVJQ0FwT2lCUWNtOXRhWE5sUEUxYlhUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRMQ0JzYjJjc0lHTjBlRUZ5WjNNZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWRYQmtZWFJsUVd4c0tUdGNiaUFnSUNCc2IyY3VaR1ZpZFdjb1hHNGdJQ0FnSUNCZ1ZYQmtZWFJwYm1jZ0pIdHRiMlJsYkhNdWJHVnVaM1JvZlNCdVpYY2dKSHQwYUdsekxtTnNZWE56TG01aGJXVjlJR2x1SUhSaFlteGxJQ1I3VFc5a1pXd3VkR0ZpYkdWT1lXMWxLSFJvYVhNdVkyeGhjM01wZldCY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnYlc5a1pXeHpMbVp2Y2tWaFkyZ29LRzF2WkdWc0tTQTlQaUIwYUdsekxtVnVjM1Z5WlV4bFoyRmplVTFwY25KdmNrWnNZV2NvWTNSNExDQnRiMlJsYkNrcE8xeHVJQ0FnSUdOdmJuTjBJSEJ5WlhCaGNtVmtJRDBnYlc5a1pXeHpMbTFoY0Nnb2JTa2dQVDRnZEdocGN5NWhaR0Z3ZEdWeUxuQnlaWEJoY21Vb2JTd2dZM1I0S1NrN1hHNGdJQ0FnWTI5dWMzUWdhV1J6SUQwZ2NISmxjR0Z5WldRdWJXRndLQ2h3S1NBOVBpQndMbWxrS1R0Y2JpQWdJQ0JqYjI1emRDQjFjR1JoZEdWa0lEMGdZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMblZ3WkdGMFpVRnNiQ2hjYmlBZ0lDQWdJSFJvYVhNdVkyeGhjM01zWEc0Z0lDQWdJQ0JwWkhNZ1lYTWdVSEpwYldGeWVVdGxlVlI1Y0dWYlhTeGNiaUFnSUNBZ0lIQnlaWEJoY21Wa0xtMWhjQ2dvY2lrZ1BUNGdjaTV5WldOdmNtUXBMRnh1SUNBZ0lDQWdjSEpsY0dGeVpXUXViV0Z3S0NoeUtTQTlQaUJ5TG5SeVlXNXphV1Z1ZENrc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdVSEp2YldselpTNWhiR3dvWEc0Z0lDQWdJQ0IxY0dSaGRHVmtMbTFoY0NoaGMzbHVZeUFvZFN3Z2FTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JwWkNBOUlHbGtjMXRwWFR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZV1JoY0hSbGNpNXlaWFpsY25ROFRUNG9YRzRnSUNBZ0lDQWdJQ0FnZFN4Y2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TG1Oc1lYTnpMRnh1SUNBZ0lDQWdJQ0FnSUdsa0xGeHVJQ0FnSUNBZ0lDQWdJSEJ5WlhCaGNtVmtXMmxkTG5SeVlXNXphV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQmpkSGhjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgwcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1pXNXpkWEpsVEdWbllXTjVUV2x5Y205eVJteGhaeWhqZEhnNklFTnZiblJsZUhSUFpqeEJQaXdnYlc5a1pXdzZJRTBwT2lCMmIybGtJSHRjYmlBZ0lDQnBaaUFvVFc5a1pXd3ViV2x5Y205eVpXUkJkQ2h0YjJSbGJDa3BJSHRjYmlBZ0lDQWdJR04wZUM1aFkyTjFiWFZzWVhSbEtIc2diR1ZuWVdONU9pQjBjblZsSUgwcE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dUlsMTkiXX0=
269
+ //# sourceMappingURL=FabricClientRepository.js.map
270
+ //# sourceMappingURL=FabricClientRepository.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client/FabricClientRepository.cjs","sourceRoot":"","sources":["client/FabricClientRepository.js"],"names":[],"mappings":"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"}