@decaf-ts/for-fabric 0.12.7 → 0.12.10

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 (560) hide show
  1. package/README.md +177 -146
  2. package/dist/for-fabric.cjs +3804 -2
  3. package/dist/for-fabric.js +3908 -2
  4. package/lib/cjs/bin/cli.cjs +2 -2
  5. package/lib/cjs/cli-module.cjs +215 -6
  6. package/lib/cjs/cli-utils.cjs +2 -2
  7. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  8. package/lib/cjs/client/FabricClientDispatch.cjs +3 -3
  9. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  10. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  11. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  12. package/lib/cjs/client/collections/generation.cjs +2 -2
  13. package/lib/cjs/client/collections/index.cjs +2 -2
  14. package/lib/cjs/client/constants.cjs +2 -2
  15. package/lib/cjs/client/crypto.cjs +2 -2
  16. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  17. package/lib/cjs/client/erc20/index.cjs +2 -2
  18. package/lib/cjs/client/fabric-fs.cjs +2 -2
  19. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  20. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  21. package/lib/cjs/client/ids/index.cjs +2 -2
  22. package/lib/cjs/client/index.cjs +2 -2
  23. package/lib/cjs/client/indexes/generation.cjs +9 -4
  24. package/lib/cjs/client/indexes/index.cjs +2 -2
  25. package/lib/cjs/client/logging.cjs +2 -2
  26. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  27. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  28. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  29. package/lib/cjs/client/services/constants.cjs +2 -2
  30. package/lib/cjs/client/services/index.cjs +2 -2
  31. package/lib/cjs/client/types.cjs +2 -2
  32. package/lib/cjs/client/utils.cjs +2 -2
  33. package/lib/cjs/contract/Address.cjs +2 -2
  34. package/lib/cjs/contract/AddressContract.cjs +2 -2
  35. package/lib/cjs/contract/AuditContract.cjs +2 -2
  36. package/lib/cjs/contract/BatchContract.cjs +2 -2
  37. package/lib/cjs/contract/MarketContract.cjs +2 -2
  38. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  39. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  40. package/lib/cjs/contract/OtherLeafletContract.cjs +72 -0
  41. package/lib/cjs/contract/OtherLeafletFileContract.cjs +76 -0
  42. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  43. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  44. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  45. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  46. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  47. package/lib/cjs/contract/Product.cjs +2 -2
  48. package/lib/cjs/contract/ProductContract.cjs +2 -2
  49. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  50. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  51. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  52. package/lib/cjs/contract/User.cjs +2 -2
  53. package/lib/cjs/contract/UserContract.cjs +2 -2
  54. package/lib/cjs/contract/index.cjs +19 -20
  55. package/lib/cjs/contract/logging-context.cjs +2 -2
  56. package/lib/cjs/contract/models/Audit.cjs +2 -2
  57. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  58. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  59. package/lib/cjs/contract/models/Batch.cjs +2 -2
  60. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  61. package/lib/cjs/contract/models/History.cjs +2 -2
  62. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  63. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  64. package/lib/cjs/contract/models/Market.cjs +2 -2
  65. package/lib/cjs/contract/models/OtherAudit.cjs +3 -3
  66. package/lib/cjs/contract/models/OtherBatchShared.cjs +137 -28
  67. package/lib/cjs/contract/models/OtherLeaflet.cjs +3 -3
  68. package/lib/cjs/contract/models/OtherLeafletFile.cjs +3 -3
  69. package/lib/cjs/contract/models/OtherMarket.cjs +3 -3
  70. package/lib/cjs/contract/models/OtherProduct.cjs +4 -4
  71. package/lib/cjs/contract/models/OtherProductImage.cjs +3 -3
  72. package/lib/cjs/contract/models/OtherProductShared.cjs +3 -3
  73. package/lib/cjs/contract/models/OtherProductStrength.cjs +3 -5
  74. package/lib/cjs/contract/models/Product.cjs +2 -2
  75. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  76. package/lib/cjs/contract/models/SegregatedDocument.cjs +8 -6
  77. package/lib/cjs/contract/models/constants.cjs +2 -2
  78. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  79. package/lib/cjs/contract/models/decorators.cjs +2 -2
  80. package/lib/cjs/contract/models/gtin.cjs +2 -2
  81. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  82. package/lib/cjs/contract/trackedModels/History.cjs +81 -0
  83. package/lib/cjs/contract/trackedModels/OtherAudit.cjs +124 -0
  84. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +121 -0
  85. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +71 -0
  86. package/lib/cjs/contract/trackedModels/OtherMarket.cjs +90 -0
  87. package/lib/cjs/contract/trackedModels/OtherProduct.cjs +83 -0
  88. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +65 -0
  89. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +105 -0
  90. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +91 -0
  91. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  92. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  93. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  94. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  95. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  96. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  97. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  98. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  99. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  100. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  101. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  102. package/lib/cjs/contracts/auth/index.cjs +2 -2
  103. package/lib/cjs/contracts/bootstrap.cjs +2 -2
  104. package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
  105. package/lib/cjs/contracts/crud/index.cjs +2 -2
  106. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  107. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  108. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  109. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  110. package/lib/cjs/contracts/fabric-overrides.cjs +2 -2
  111. package/lib/cjs/contracts/index.cjs +2 -2
  112. package/lib/cjs/contracts/logging.cjs +2 -2
  113. package/lib/cjs/contracts/overrides.cjs +2 -2
  114. package/lib/cjs/contracts/types.cjs +2 -2
  115. package/lib/cjs/contracts/uuid.cjs +2 -2
  116. package/lib/cjs/index.cjs +2 -2
  117. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  118. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  119. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  120. package/lib/cjs/shared/constants.cjs +2 -2
  121. package/lib/cjs/shared/decorators.cjs +2 -2
  122. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  123. package/lib/cjs/shared/erc20/index.cjs +2 -2
  124. package/lib/cjs/shared/errors.cjs +2 -2
  125. package/lib/cjs/shared/events.cjs +2 -2
  126. package/lib/cjs/shared/fabric-types.cjs +2 -2
  127. package/lib/cjs/shared/index.cjs +2 -2
  128. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  129. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  130. package/lib/cjs/shared/math.cjs +2 -2
  131. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  132. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  133. package/lib/cjs/shared/model/Identity.cjs +2 -2
  134. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  135. package/lib/cjs/shared/model/index.cjs +2 -2
  136. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  137. package/lib/cjs/shared/overrides/index.cjs +2 -2
  138. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  139. package/lib/cjs/shared/types.cjs +2 -2
  140. package/lib/cjs/version.cjs +18 -4
  141. package/lib/esm/bin/cli.js +1 -1
  142. package/lib/esm/cli-module.js +214 -5
  143. package/lib/esm/cli-utils.js +1 -1
  144. package/lib/esm/client/FabricClientAdapter.js +1 -1
  145. package/lib/esm/client/FabricClientDispatch.js +2 -2
  146. package/lib/esm/client/FabricClientPaginator.js +1 -1
  147. package/lib/esm/client/FabricClientRepository.js +1 -1
  148. package/lib/esm/client/FabricClientStatement.js +1 -1
  149. package/lib/esm/client/collections/generation.js +1 -1
  150. package/lib/esm/client/collections/index.js +1 -1
  151. package/lib/esm/client/constants.js +1 -1
  152. package/lib/esm/client/crypto.js +1 -1
  153. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  154. package/lib/esm/client/erc20/index.js +1 -1
  155. package/lib/esm/client/fabric-fs.js +1 -1
  156. package/lib/esm/client/fabric-hsm.js +1 -1
  157. package/lib/esm/client/ids/id-extraction.js +1 -1
  158. package/lib/esm/client/ids/index.js +1 -1
  159. package/lib/esm/client/index.js +1 -1
  160. package/lib/esm/client/indexes/generation.js +8 -3
  161. package/lib/esm/client/indexes/index.js +1 -1
  162. package/lib/esm/client/logging.js +1 -1
  163. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  164. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  165. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  166. package/lib/esm/client/services/constants.js +1 -1
  167. package/lib/esm/client/services/index.js +1 -1
  168. package/lib/esm/client/types.js +1 -1
  169. package/lib/esm/client/utils.js +1 -1
  170. package/lib/esm/contract/Address.js +1 -1
  171. package/lib/esm/contract/AddressContract.js +1 -1
  172. package/lib/esm/contract/AuditContract.js +1 -1
  173. package/lib/esm/contract/BatchContract.js +1 -1
  174. package/lib/esm/contract/MarketContract.js +1 -1
  175. package/lib/esm/contract/OtherAuditContract.js +1 -1
  176. package/lib/esm/contract/OtherBatchContract.js +1 -1
  177. package/lib/esm/contract/OtherLeafletContract.js +63 -0
  178. package/lib/esm/contract/OtherLeafletFileContract.js +67 -0
  179. package/lib/esm/contract/OtherMarketContract.js +1 -1
  180. package/lib/esm/contract/OtherProductContract.js +1 -1
  181. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  182. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  183. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  184. package/lib/esm/contract/Product.js +1 -1
  185. package/lib/esm/contract/ProductContract.js +1 -1
  186. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  187. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  188. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  189. package/lib/esm/contract/User.js +1 -1
  190. package/lib/esm/contract/UserContract.js +1 -1
  191. package/lib/esm/contract/index.js +18 -19
  192. package/lib/esm/contract/logging-context.js +1 -1
  193. package/lib/esm/contract/models/Audit.js +1 -1
  194. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  195. package/lib/esm/contract/models/BaseModel.js +1 -1
  196. package/lib/esm/contract/models/Batch.js +1 -1
  197. package/lib/esm/contract/models/GtinOwner.js +1 -1
  198. package/lib/esm/contract/models/History.js +1 -1
  199. package/lib/esm/contract/models/Leaflet.js +1 -1
  200. package/lib/esm/contract/models/LeafletFile.js +1 -1
  201. package/lib/esm/contract/models/Market.js +1 -1
  202. package/lib/esm/contract/models/OtherAudit.js +2 -2
  203. package/lib/esm/contract/models/OtherBatchShared.js +139 -31
  204. package/lib/esm/contract/models/OtherLeaflet.js +2 -2
  205. package/lib/esm/contract/models/OtherLeafletFile.js +2 -2
  206. package/lib/esm/contract/models/OtherMarket.js +2 -2
  207. package/lib/esm/contract/models/OtherProduct.js +4 -4
  208. package/lib/esm/contract/models/OtherProductImage.js +2 -2
  209. package/lib/esm/contract/models/OtherProductShared.js +2 -2
  210. package/lib/esm/contract/models/OtherProductStrength.js +2 -4
  211. package/lib/esm/contract/models/Product.js +1 -1
  212. package/lib/esm/contract/models/ProductStrength.js +1 -1
  213. package/lib/esm/contract/models/SegregatedDocument.js +8 -6
  214. package/lib/esm/contract/models/constants.js +1 -1
  215. package/lib/esm/contract/models/decorators-private.js +1 -1
  216. package/lib/esm/contract/models/decorators.js +1 -1
  217. package/lib/esm/contract/models/gtin.js +1 -1
  218. package/lib/esm/contract/models/history-dec.js +1 -1
  219. package/lib/esm/contract/trackedModels/History.js +72 -0
  220. package/lib/esm/contract/trackedModels/OtherAudit.js +115 -0
  221. package/lib/esm/contract/trackedModels/OtherLeaflet.js +112 -0
  222. package/lib/esm/contract/trackedModels/OtherLeafletFile.js +62 -0
  223. package/lib/esm/contract/trackedModels/OtherMarket.js +81 -0
  224. package/lib/esm/contract/trackedModels/OtherProduct.js +74 -0
  225. package/lib/esm/contract/trackedModels/OtherProductImage.js +56 -0
  226. package/lib/esm/contract/trackedModels/OtherProductShared.js +96 -0
  227. package/lib/esm/contract/trackedModels/OtherProductStrength.js +82 -0
  228. package/lib/esm/contracts/ContractAdapter.js +1 -1
  229. package/lib/esm/contracts/ContractContext.js +1 -1
  230. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  231. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  232. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  233. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  234. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  235. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  236. package/lib/esm/contracts/MigrationContract.js +1 -1
  237. package/lib/esm/contracts/PrivateSequence.js +1 -1
  238. package/lib/esm/contracts/auth/decorators.js +1 -1
  239. package/lib/esm/contracts/auth/index.js +1 -1
  240. package/lib/esm/contracts/bootstrap.js +1 -1
  241. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  242. package/lib/esm/contracts/crud/index.js +1 -1
  243. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  244. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  245. package/lib/esm/contracts/erc20/index.js +1 -1
  246. package/lib/esm/contracts/erc20/models.js +1 -1
  247. package/lib/esm/contracts/fabric-overrides.js +3 -3
  248. package/lib/esm/contracts/index.js +1 -1
  249. package/lib/esm/contracts/logging.js +1 -1
  250. package/lib/esm/contracts/overrides.js +1 -1
  251. package/lib/esm/contracts/types.js +1 -1
  252. package/lib/esm/contracts/uuid.js +1 -1
  253. package/lib/esm/index.js +1 -1
  254. package/lib/esm/shared/ClientSerializer.js +1 -1
  255. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  256. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  257. package/lib/esm/shared/constants.js +1 -1
  258. package/lib/esm/shared/decorators.js +1 -1
  259. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  260. package/lib/esm/shared/erc20/index.js +1 -1
  261. package/lib/esm/shared/errors.js +1 -1
  262. package/lib/esm/shared/events.js +1 -1
  263. package/lib/esm/shared/fabric-types.js +1 -1
  264. package/lib/esm/shared/index.js +1 -1
  265. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  266. package/lib/esm/shared/interfaces/index.js +1 -1
  267. package/lib/esm/shared/math.js +1 -1
  268. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  269. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  270. package/lib/esm/shared/model/Identity.js +1 -1
  271. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  272. package/lib/esm/shared/model/index.js +1 -1
  273. package/lib/esm/shared/overrides/Model.js +1 -1
  274. package/lib/esm/shared/overrides/index.js +1 -1
  275. package/lib/esm/shared/overrides/overrides.js +1 -1
  276. package/lib/esm/shared/types.js +1 -1
  277. package/lib/esm/version.js +16 -2
  278. package/lib/types/contract/OtherLeafletContract.d.cts +18 -0
  279. package/lib/types/contract/OtherLeafletContract.d.mts +18 -0
  280. package/lib/types/contract/OtherLeafletFileContract.d.cts +17 -0
  281. package/lib/types/contract/OtherLeafletFileContract.d.mts +17 -0
  282. package/lib/types/contract/models/OtherBatchShared.d.cts +43 -6
  283. package/lib/types/contract/models/OtherBatchShared.d.mts +43 -6
  284. package/lib/types/contract/trackedModels/History.d.cts +9 -0
  285. package/lib/types/contract/trackedModels/History.d.mts +9 -0
  286. package/lib/types/contract/trackedModels/OtherAudit.d.cts +15 -0
  287. package/lib/types/contract/trackedModels/OtherAudit.d.mts +15 -0
  288. package/lib/types/contract/trackedModels/OtherLeaflet.d.cts +16 -0
  289. package/lib/types/contract/trackedModels/OtherLeaflet.d.mts +16 -0
  290. package/lib/types/contract/trackedModels/OtherLeafletFile.d.cts +10 -0
  291. package/lib/types/contract/trackedModels/OtherLeafletFile.d.mts +10 -0
  292. package/lib/types/contract/trackedModels/OtherMarket.d.cts +13 -0
  293. package/lib/types/contract/trackedModels/OtherMarket.d.mts +13 -0
  294. package/lib/types/contract/trackedModels/OtherProduct.d.cts +12 -0
  295. package/lib/types/contract/trackedModels/OtherProduct.d.mts +12 -0
  296. package/lib/types/contract/trackedModels/OtherProductImage.d.cts +9 -0
  297. package/lib/types/contract/trackedModels/OtherProductImage.d.mts +9 -0
  298. package/lib/types/contract/trackedModels/OtherProductShared.d.cts +18 -0
  299. package/lib/types/contract/trackedModels/OtherProductShared.d.mts +18 -0
  300. package/lib/types/contract/trackedModels/OtherProductStrength.d.cts +12 -0
  301. package/lib/types/contract/trackedModels/OtherProductStrength.d.mts +12 -0
  302. package/lib/types/contracts/FabricContractStatement.d.cts +2 -2
  303. package/lib/types/contracts/FabricContractStatement.d.mts +2 -2
  304. package/lib/types/version.d.cts +15 -1
  305. package/lib/types/version.d.mts +15 -1
  306. package/package.json +19 -6
  307. package/dist/for-fabric.cjs.map +0 -1
  308. package/dist/for-fabric.js.map +0 -1
  309. package/lib/cjs/bin/cli.cjs.map +0 -1
  310. package/lib/cjs/cli-module.cjs.map +0 -1
  311. package/lib/cjs/cli-utils.cjs.map +0 -1
  312. package/lib/cjs/client/FabricClientAdapter.cjs.map +0 -1
  313. package/lib/cjs/client/FabricClientDispatch.cjs.map +0 -1
  314. package/lib/cjs/client/FabricClientPaginator.cjs.map +0 -1
  315. package/lib/cjs/client/FabricClientRepository.cjs.map +0 -1
  316. package/lib/cjs/client/FabricClientStatement.cjs.map +0 -1
  317. package/lib/cjs/client/collections/generation.cjs.map +0 -1
  318. package/lib/cjs/client/collections/index.cjs.map +0 -1
  319. package/lib/cjs/client/constants.cjs.map +0 -1
  320. package/lib/cjs/client/crypto.cjs.map +0 -1
  321. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +0 -1
  322. package/lib/cjs/client/erc20/index.cjs.map +0 -1
  323. package/lib/cjs/client/fabric-fs.cjs.map +0 -1
  324. package/lib/cjs/client/fabric-hsm.cjs.map +0 -1
  325. package/lib/cjs/client/ids/id-extraction.cjs.map +0 -1
  326. package/lib/cjs/client/ids/index.cjs.map +0 -1
  327. package/lib/cjs/client/index.cjs.map +0 -1
  328. package/lib/cjs/client/indexes/generation.cjs.map +0 -1
  329. package/lib/cjs/client/indexes/index.cjs.map +0 -1
  330. package/lib/cjs/client/logging.cjs.map +0 -1
  331. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +0 -1
  332. package/lib/cjs/client/services/FabricIdentityService.cjs.map +0 -1
  333. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +0 -1
  334. package/lib/cjs/client/services/constants.cjs.map +0 -1
  335. package/lib/cjs/client/services/index.cjs.map +0 -1
  336. package/lib/cjs/client/types.cjs.map +0 -1
  337. package/lib/cjs/client/utils.cjs.map +0 -1
  338. package/lib/cjs/contract/Address.cjs.map +0 -1
  339. package/lib/cjs/contract/AddressContract.cjs.map +0 -1
  340. package/lib/cjs/contract/AuditContract.cjs.map +0 -1
  341. package/lib/cjs/contract/BatchContract.cjs.map +0 -1
  342. package/lib/cjs/contract/MarketContract.cjs.map +0 -1
  343. package/lib/cjs/contract/OtherAuditContract.cjs.map +0 -1
  344. package/lib/cjs/contract/OtherBatchContract.cjs.map +0 -1
  345. package/lib/cjs/contract/OtherMarketContract.cjs.map +0 -1
  346. package/lib/cjs/contract/OtherProductContract.cjs.map +0 -1
  347. package/lib/cjs/contract/OtherProductImageContract.cjs.map +0 -1
  348. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +0 -1
  349. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +0 -1
  350. package/lib/cjs/contract/Product.cjs.map +0 -1
  351. package/lib/cjs/contract/ProductContract.cjs.map +0 -1
  352. package/lib/cjs/contract/ProductStrengthContract.cjs.map +0 -1
  353. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +0 -1
  354. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +0 -1
  355. package/lib/cjs/contract/User.cjs.map +0 -1
  356. package/lib/cjs/contract/UserContract.cjs.map +0 -1
  357. package/lib/cjs/contract/index.cjs.map +0 -1
  358. package/lib/cjs/contract/logging-context.cjs.map +0 -1
  359. package/lib/cjs/contract/models/Audit.cjs.map +0 -1
  360. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +0 -1
  361. package/lib/cjs/contract/models/BaseModel.cjs.map +0 -1
  362. package/lib/cjs/contract/models/Batch.cjs.map +0 -1
  363. package/lib/cjs/contract/models/GtinOwner.cjs.map +0 -1
  364. package/lib/cjs/contract/models/History.cjs.map +0 -1
  365. package/lib/cjs/contract/models/Leaflet.cjs.map +0 -1
  366. package/lib/cjs/contract/models/LeafletFile.cjs.map +0 -1
  367. package/lib/cjs/contract/models/Market.cjs.map +0 -1
  368. package/lib/cjs/contract/models/OtherAudit.cjs.map +0 -1
  369. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +0 -1
  370. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +0 -1
  371. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +0 -1
  372. package/lib/cjs/contract/models/OtherMarket.cjs.map +0 -1
  373. package/lib/cjs/contract/models/OtherProduct.cjs.map +0 -1
  374. package/lib/cjs/contract/models/OtherProductImage.cjs.map +0 -1
  375. package/lib/cjs/contract/models/OtherProductShared.cjs.map +0 -1
  376. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +0 -1
  377. package/lib/cjs/contract/models/Product.cjs.map +0 -1
  378. package/lib/cjs/contract/models/ProductStrength.cjs.map +0 -1
  379. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +0 -1
  380. package/lib/cjs/contract/models/constants.cjs.map +0 -1
  381. package/lib/cjs/contract/models/decorators-private.cjs.map +0 -1
  382. package/lib/cjs/contract/models/decorators.cjs.map +0 -1
  383. package/lib/cjs/contract/models/gtin.cjs.map +0 -1
  384. package/lib/cjs/contract/models/history-dec.cjs.map +0 -1
  385. package/lib/cjs/contracts/ContractAdapter.cjs.map +0 -1
  386. package/lib/cjs/contracts/ContractContext.cjs.map +0 -1
  387. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +0 -1
  388. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +0 -1
  389. package/lib/cjs/contracts/FabricContractRepository.cjs.map +0 -1
  390. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +0 -1
  391. package/lib/cjs/contracts/FabricContractSequence.cjs.map +0 -1
  392. package/lib/cjs/contracts/FabricContractStatement.cjs.map +0 -1
  393. package/lib/cjs/contracts/MigrationContract.cjs.map +0 -1
  394. package/lib/cjs/contracts/PrivateSequence.cjs.map +0 -1
  395. package/lib/cjs/contracts/auth/decorators.cjs.map +0 -1
  396. package/lib/cjs/contracts/auth/index.cjs.map +0 -1
  397. package/lib/cjs/contracts/bootstrap.cjs.map +0 -1
  398. package/lib/cjs/contracts/crud/crud-contract.cjs.map +0 -1
  399. package/lib/cjs/contracts/crud/index.cjs.map +0 -1
  400. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +0 -1
  401. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +0 -1
  402. package/lib/cjs/contracts/erc20/index.cjs.map +0 -1
  403. package/lib/cjs/contracts/erc20/models.cjs.map +0 -1
  404. package/lib/cjs/contracts/fabric-overrides.cjs.map +0 -1
  405. package/lib/cjs/contracts/index.cjs.map +0 -1
  406. package/lib/cjs/contracts/logging.cjs.map +0 -1
  407. package/lib/cjs/contracts/overrides.cjs.map +0 -1
  408. package/lib/cjs/contracts/types.cjs.map +0 -1
  409. package/lib/cjs/contracts/uuid.cjs.map +0 -1
  410. package/lib/cjs/index.cjs.map +0 -1
  411. package/lib/cjs/shared/ClientSerializer.cjs.map +0 -1
  412. package/lib/cjs/shared/DeterministicSerializer.cjs.map +0 -1
  413. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +0 -1
  414. package/lib/cjs/shared/constants.cjs.map +0 -1
  415. package/lib/cjs/shared/decorators.cjs.map +0 -1
  416. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +0 -1
  417. package/lib/cjs/shared/erc20/index.cjs.map +0 -1
  418. package/lib/cjs/shared/errors.cjs.map +0 -1
  419. package/lib/cjs/shared/events.cjs.map +0 -1
  420. package/lib/cjs/shared/fabric-types.cjs.map +0 -1
  421. package/lib/cjs/shared/index.cjs.map +0 -1
  422. package/lib/cjs/shared/interfaces/Checkable.cjs.map +0 -1
  423. package/lib/cjs/shared/interfaces/index.cjs.map +0 -1
  424. package/lib/cjs/shared/math.cjs.map +0 -1
  425. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +0 -1
  426. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +0 -1
  427. package/lib/cjs/shared/model/Identity.cjs.map +0 -1
  428. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +0 -1
  429. package/lib/cjs/shared/model/index.cjs.map +0 -1
  430. package/lib/cjs/shared/overrides/Model.cjs.map +0 -1
  431. package/lib/cjs/shared/overrides/index.cjs.map +0 -1
  432. package/lib/cjs/shared/overrides/overrides.cjs.map +0 -1
  433. package/lib/cjs/shared/types.cjs.map +0 -1
  434. package/lib/cjs/version.cjs.map +0 -1
  435. package/lib/esm/bin/cli.js.map +0 -1
  436. package/lib/esm/cli-module.js.map +0 -1
  437. package/lib/esm/cli-utils.js.map +0 -1
  438. package/lib/esm/client/FabricClientAdapter.js.map +0 -1
  439. package/lib/esm/client/FabricClientDispatch.js.map +0 -1
  440. package/lib/esm/client/FabricClientPaginator.js.map +0 -1
  441. package/lib/esm/client/FabricClientRepository.js.map +0 -1
  442. package/lib/esm/client/FabricClientStatement.js.map +0 -1
  443. package/lib/esm/client/collections/generation.js.map +0 -1
  444. package/lib/esm/client/collections/index.js.map +0 -1
  445. package/lib/esm/client/constants.js.map +0 -1
  446. package/lib/esm/client/crypto.js.map +0 -1
  447. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
  448. package/lib/esm/client/erc20/index.js.map +0 -1
  449. package/lib/esm/client/fabric-fs.js.map +0 -1
  450. package/lib/esm/client/fabric-hsm.js.map +0 -1
  451. package/lib/esm/client/ids/id-extraction.js.map +0 -1
  452. package/lib/esm/client/ids/index.js.map +0 -1
  453. package/lib/esm/client/index.js.map +0 -1
  454. package/lib/esm/client/indexes/generation.js.map +0 -1
  455. package/lib/esm/client/indexes/index.js.map +0 -1
  456. package/lib/esm/client/logging.js.map +0 -1
  457. package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
  458. package/lib/esm/client/services/FabricIdentityService.js.map +0 -1
  459. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +0 -1
  460. package/lib/esm/client/services/constants.js.map +0 -1
  461. package/lib/esm/client/services/index.js.map +0 -1
  462. package/lib/esm/client/types.js.map +0 -1
  463. package/lib/esm/client/utils.js.map +0 -1
  464. package/lib/esm/contract/Address.js.map +0 -1
  465. package/lib/esm/contract/AddressContract.js.map +0 -1
  466. package/lib/esm/contract/AuditContract.js.map +0 -1
  467. package/lib/esm/contract/BatchContract.js.map +0 -1
  468. package/lib/esm/contract/MarketContract.js.map +0 -1
  469. package/lib/esm/contract/OtherAuditContract.js.map +0 -1
  470. package/lib/esm/contract/OtherBatchContract.js.map +0 -1
  471. package/lib/esm/contract/OtherMarketContract.js.map +0 -1
  472. package/lib/esm/contract/OtherProductContract.js.map +0 -1
  473. package/lib/esm/contract/OtherProductImageContract.js.map +0 -1
  474. package/lib/esm/contract/OtherProductSharedContract.js.map +0 -1
  475. package/lib/esm/contract/OtherProductStrengthContract.js.map +0 -1
  476. package/lib/esm/contract/Product.js.map +0 -1
  477. package/lib/esm/contract/ProductContract.js.map +0 -1
  478. package/lib/esm/contract/ProductStrengthContract.js.map +0 -1
  479. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +0 -1
  480. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +0 -1
  481. package/lib/esm/contract/User.js.map +0 -1
  482. package/lib/esm/contract/UserContract.js.map +0 -1
  483. package/lib/esm/contract/index.js.map +0 -1
  484. package/lib/esm/contract/logging-context.js.map +0 -1
  485. package/lib/esm/contract/models/Audit.js.map +0 -1
  486. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
  487. package/lib/esm/contract/models/BaseModel.js.map +0 -1
  488. package/lib/esm/contract/models/Batch.js.map +0 -1
  489. package/lib/esm/contract/models/GtinOwner.js.map +0 -1
  490. package/lib/esm/contract/models/History.js.map +0 -1
  491. package/lib/esm/contract/models/Leaflet.js.map +0 -1
  492. package/lib/esm/contract/models/LeafletFile.js.map +0 -1
  493. package/lib/esm/contract/models/Market.js.map +0 -1
  494. package/lib/esm/contract/models/OtherAudit.js.map +0 -1
  495. package/lib/esm/contract/models/OtherBatchShared.js.map +0 -1
  496. package/lib/esm/contract/models/OtherLeaflet.js.map +0 -1
  497. package/lib/esm/contract/models/OtherLeafletFile.js.map +0 -1
  498. package/lib/esm/contract/models/OtherMarket.js.map +0 -1
  499. package/lib/esm/contract/models/OtherProduct.js.map +0 -1
  500. package/lib/esm/contract/models/OtherProductImage.js.map +0 -1
  501. package/lib/esm/contract/models/OtherProductShared.js.map +0 -1
  502. package/lib/esm/contract/models/OtherProductStrength.js.map +0 -1
  503. package/lib/esm/contract/models/Product.js.map +0 -1
  504. package/lib/esm/contract/models/ProductStrength.js.map +0 -1
  505. package/lib/esm/contract/models/SegregatedDocument.js.map +0 -1
  506. package/lib/esm/contract/models/constants.js.map +0 -1
  507. package/lib/esm/contract/models/decorators-private.js.map +0 -1
  508. package/lib/esm/contract/models/decorators.js.map +0 -1
  509. package/lib/esm/contract/models/gtin.js.map +0 -1
  510. package/lib/esm/contract/models/history-dec.js.map +0 -1
  511. package/lib/esm/contracts/ContractAdapter.js.map +0 -1
  512. package/lib/esm/contracts/ContractContext.js.map +0 -1
  513. package/lib/esm/contracts/FabricContractDispatch.js.map +0 -1
  514. package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
  515. package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
  516. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
  517. package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
  518. package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
  519. package/lib/esm/contracts/MigrationContract.js.map +0 -1
  520. package/lib/esm/contracts/PrivateSequence.js.map +0 -1
  521. package/lib/esm/contracts/auth/decorators.js.map +0 -1
  522. package/lib/esm/contracts/auth/index.js.map +0 -1
  523. package/lib/esm/contracts/bootstrap.js.map +0 -1
  524. package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
  525. package/lib/esm/contracts/crud/index.js.map +0 -1
  526. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
  527. package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
  528. package/lib/esm/contracts/erc20/index.js.map +0 -1
  529. package/lib/esm/contracts/erc20/models.js.map +0 -1
  530. package/lib/esm/contracts/fabric-overrides.js.map +0 -1
  531. package/lib/esm/contracts/index.js.map +0 -1
  532. package/lib/esm/contracts/logging.js.map +0 -1
  533. package/lib/esm/contracts/overrides.js.map +0 -1
  534. package/lib/esm/contracts/types.js.map +0 -1
  535. package/lib/esm/contracts/uuid.js.map +0 -1
  536. package/lib/esm/index.js.map +0 -1
  537. package/lib/esm/shared/ClientSerializer.js.map +0 -1
  538. package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
  539. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
  540. package/lib/esm/shared/constants.js.map +0 -1
  541. package/lib/esm/shared/decorators.js.map +0 -1
  542. package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
  543. package/lib/esm/shared/erc20/index.js.map +0 -1
  544. package/lib/esm/shared/errors.js.map +0 -1
  545. package/lib/esm/shared/events.js.map +0 -1
  546. package/lib/esm/shared/fabric-types.js.map +0 -1
  547. package/lib/esm/shared/index.js.map +0 -1
  548. package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
  549. package/lib/esm/shared/interfaces/index.js.map +0 -1
  550. package/lib/esm/shared/math.js.map +0 -1
  551. package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
  552. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
  553. package/lib/esm/shared/model/Identity.js.map +0 -1
  554. package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
  555. package/lib/esm/shared/model/index.js.map +0 -1
  556. package/lib/esm/shared/overrides/Model.js.map +0 -1
  557. package/lib/esm/shared/overrides/index.js.map +0 -1
  558. package/lib/esm/shared/overrides/overrides.js.map +0 -1
  559. package/lib/esm/shared/types.js.map +0 -1
  560. package/lib/esm/version.js.map +0 -1
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.History = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
19
+ const core_1 = require("@decaf-ts/core");
20
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
21
+ const decoration_1 = require("@decaf-ts/decoration");
22
+ const index_js_1 = require("./../../shared/index.cjs");
23
+ let History = class History extends decorator_validation_1.Model {
24
+ constructor(model) {
25
+ super(model);
26
+ }
27
+ };
28
+ exports.History = History;
29
+ __decorate([
30
+ (0, core_1.pk)(),
31
+ (0, index_js_1.mirror)("ptp-history-mirror", "PharmaledgerassocMSP"),
32
+ (0, db_decorators_1.composed)(["table", "key", "version"], ":"),
33
+ (0, decoration_1.description)("Unique identifier of the history record."),
34
+ __metadata("design:type", String)
35
+ ], History.prototype, "id", void 0);
36
+ __decorate([
37
+ (0, core_1.column)(),
38
+ (0, db_decorators_1.readonly)(),
39
+ (0, db_decorators_1.readonly)(),
40
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
41
+ (0, decoration_1.description)("table this history object refers to"),
42
+ __metadata("design:type", String)
43
+ ], History.prototype, "table", void 0);
44
+ __decorate([
45
+ (0, core_1.column)(),
46
+ (0, decorator_validation_1.required)(),
47
+ (0, db_decorators_1.readonly)(),
48
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
49
+ (0, decoration_1.description)("id of the original object"),
50
+ __metadata("design:type", String)
51
+ ], History.prototype, "key", void 0);
52
+ __decorate([
53
+ (0, core_1.column)(),
54
+ (0, decorator_validation_1.required)(),
55
+ (0, db_decorators_1.readonly)(),
56
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
57
+ (0, decoration_1.description)("the version of the original object"),
58
+ __metadata("design:type", Number)
59
+ ], History.prototype, "version", void 0);
60
+ __decorate([
61
+ (0, core_1.column)(),
62
+ (0, decorator_validation_1.required)(),
63
+ (0, db_decorators_1.readonly)(),
64
+ (0, decoration_1.description)("the object to keep history of"),
65
+ __metadata("design:type", Object)
66
+ ], History.prototype, "record", void 0);
67
+ exports.History = History = __decorate([
68
+ (0, decoration_1.description)("Logs user activity for auditing purposes."),
69
+ (0, decoration_1.uses)(index_js_1.FabricFlavour),
70
+ (0, db_decorators_1.BlockOperations)([
71
+ db_decorators_1.OperationKeys.CREATE,
72
+ db_decorators_1.OperationKeys.UPDATE,
73
+ db_decorators_1.OperationKeys.DELETE,
74
+ ]),
75
+ (0, core_1.table)("history"),
76
+ (0, index_js_1.sharedData)((0, index_js_1.NamespaceCollection)("ptp-history")),
77
+ (0, decorator_validation_1.model)(),
78
+ __metadata("design:paramtypes", [Object])
79
+ ], History);
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmFjdC90cmFja2VkTW9kZWxzL0hpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBRUwsUUFBUSxHQUNULE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLFFBQVEsRUFDUixhQUFhLEVBQ2IsUUFBUSxHQUNULE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsYUFBYSxFQUNiLE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsVUFBVSxHQUNYLGdDQUFxQjtBQVlmLElBQU0sT0FBTyxHQUFiLE1BQU0sT0FBUSxTQUFRLEtBQUs7SUFrQ2hDLFlBQVksS0FBeUI7UUFDbkMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztDQUNGLENBQUE7QUFoQ0M7SUFKQyxFQUFFLEVBQUU7SUFDSixNQUFNLENBQUMsb0JBQW9CLEVBQUUsc0JBQXNCLENBQUM7SUFDcEQsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDMUMsV0FBVyxDQUFDLDBDQUEwQyxDQUFDOzttQ0FDNUM7QUFPWjtJQUxDLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNWLFFBQVEsRUFBRTtJQUNWLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsQ0FBQyxxQ0FBcUMsQ0FBQzs7c0NBQ3BDO0FBT2Y7SUFMQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDVixRQUFRLEVBQUU7SUFDVixLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxXQUFXLENBQUMsMkJBQTJCLENBQUM7O29DQUM1QjtBQU9iO0lBTEMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1YsUUFBUSxFQUFFO0lBQ1YsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsV0FBVyxDQUFDLG9DQUFvQyxDQUFDOzt3Q0FDakM7QUFNakI7SUFKQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDVixRQUFRLEVBQUU7SUFDVixXQUFXLENBQUMsK0JBQStCLENBQUM7O3VDQUNoQjtBQWhDbEIsT0FBTztJQVZuQixXQUFXLENBQUMsMkNBQTJDLENBQUM7SUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNuQixlQUFlLENBQUM7UUFDZixhQUFhLENBQUMsTUFBTTtRQUNwQixhQUFhLENBQUMsTUFBTTtRQUNwQixhQUFhLENBQUMsTUFBTTtLQUNyQixDQUFDO0lBQ0QsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUNoQixVQUFVLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsS0FBSyxFQUFFOztHQUNLLE9BQU8sQ0FxQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWwsXG4gIG1vZGVsLFxuICB0eXBlIE1vZGVsQXJnLFxuICByZXF1aXJlZCxcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgY29sdW1uLCBpbmRleCwgT3JkZXJEaXJlY3Rpb24sIHBrLCB0YWJsZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHtcbiAgQmxvY2tPcGVyYXRpb25zLFxuICBjb21wb3NlZCxcbiAgT3BlcmF0aW9uS2V5cyxcbiAgcmVhZG9ubHksXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24sIHVzZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7XG4gIEZhYnJpY0ZsYXZvdXIsXG4gIG1pcnJvcixcbiAgTmFtZXNwYWNlQ29sbGVjdGlvbixcbiAgc2hhcmVkRGF0YSxcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZFwiO1xuXG5AZGVzY3JpcHRpb24oXCJMb2dzIHVzZXIgYWN0aXZpdHkgZm9yIGF1ZGl0aW5nIHB1cnBvc2VzLlwiKVxuQHVzZXMoRmFicmljRmxhdm91cilcbkBCbG9ja09wZXJhdGlvbnMoW1xuICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gIE9wZXJhdGlvbktleXMuREVMRVRFLFxuXSlcbkB0YWJsZShcImhpc3RvcnlcIilcbkBzaGFyZWREYXRhKE5hbWVzcGFjZUNvbGxlY3Rpb24oXCJwdHAtaGlzdG9yeVwiKSlcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgSGlzdG9yeSBleHRlbmRzIE1vZGVsIHtcbiAgQHBrKClcbiAgQG1pcnJvcihcInB0cC1oaXN0b3J5LW1pcnJvclwiLCBcIlBoYXJtYWxlZGdlcmFzc29jTVNQXCIpXG4gIEBjb21wb3NlZChbXCJ0YWJsZVwiLCBcImtleVwiLCBcInZlcnNpb25cIl0sIFwiOlwiKVxuICBAZGVzY3JpcHRpb24oXCJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgaGlzdG9yeSByZWNvcmQuXCIpXG4gIGlkITogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAcmVhZG9ubHkoKVxuICBAcmVhZG9ubHkoKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwidGFibGUgdGhpcyBoaXN0b3J5IG9iamVjdCByZWZlcnMgdG9cIilcbiAgdGFibGUhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIEByZWFkb25seSgpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICBAZGVzY3JpcHRpb24oXCJpZCBvZiB0aGUgb3JpZ2luYWwgb2JqZWN0XCIpXG4gIGtleSE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQHJlYWRvbmx5KClcbiAgQGluZGV4KFtPcmRlckRpcmVjdGlvbi5BU0MsIE9yZGVyRGlyZWN0aW9uLkRTQ10pXG4gIEBkZXNjcmlwdGlvbihcInRoZSB2ZXJzaW9uIG9mIHRoZSBvcmlnaW5hbCBvYmplY3RcIilcbiAgdmVyc2lvbiE6IG51bWJlcjtcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQHJlYWRvbmx5KClcbiAgQGRlc2NyaXB0aW9uKFwidGhlIG9iamVjdCB0byBrZWVwIGhpc3Rvcnkgb2ZcIilcbiAgcmVjb3JkPzogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBjb25zdHJ1Y3Rvcihtb2RlbD86IE1vZGVsQXJnPEhpc3Rvcnk+KSB7XG4gICAgc3VwZXIobW9kZWwpO1xuICB9XG59XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhpc3RvcnkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFB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LE1BQU0sQ0FBQztDQUNwQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEMsa0JBQUEsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUNqQixJQUFBLHdCQUFXLEVBQUMsMkNBQTJDLENBQUM7SUFDeEQsSUFBQSxpQkFBSSxFQUFDLHdCQUFhLENBQUM7SUFDbkIsSUFBQSwrQkFBZSxFQUFDO1FBQ1osNkJBQWEsQ0FBQyxNQUFNO1FBQ3BCLDZCQUFhLENBQUMsTUFBTTtRQUNwQiw2QkFBYSxDQUFDLE1BQU07S0FDdkIsQ0FBQztJQUNGLElBQUEsWUFBSyxFQUFDLFNBQVMsQ0FBQztJQUNoQixJQUFBLHFCQUFVLEVBQUMsSUFBQSw4QkFBbUIsRUFBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxJQUFBLDRCQUFLLEdBQUU7SUFDUCxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUM1QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRVosOHhJQUE4eEkiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgTW9kZWwsIG1vZGVsLCByZXF1aXJlZCwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBjb2x1bW4sIGluZGV4LCBPcmRlckRpcmVjdGlvbiwgcGssIHRhYmxlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBCbG9ja09wZXJhdGlvbnMsIGNvbXBvc2VkLCBPcGVyYXRpb25LZXlzLCByZWFkb25seSwgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IGRlc2NyaXB0aW9uLCB1c2VzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNGbGF2b3VyLCBtaXJyb3IsIE5hbWVzcGFjZUNvbGxlY3Rpb24sIHNoYXJlZERhdGEsIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2luZGV4LmpzXCI7XG5sZXQgSGlzdG9yeSA9IGNsYXNzIEhpc3RvcnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgY29uc3RydWN0b3IobW9kZWwpIHtcbiAgICAgICAgc3VwZXIobW9kZWwpO1xuICAgIH1cbn07XG5fX2RlY29yYXRlKFtcbiAgICBwaygpLFxuICAgIG1pcnJvcihcInB0cC1oaXN0b3J5LW1pcnJvclwiLCBcIlBoYXJtYWxlZGdlcmFzc29jTVNQXCIpLFxuICAgIGNvbXBvc2VkKFtcInRhYmxlXCIsIFwia2V5XCIsIFwidmVyc2lvblwiXSwgXCI6XCIpLFxuICAgIGRlc2NyaXB0aW9uKFwiVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGhpc3RvcnkgcmVjb3JkLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgSGlzdG9yeS5wcm90b3R5cGUsIFwiaWRcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIGNvbHVtbigpLFxuICAgIHJlYWRvbmx5KCksXG4gICAgcmVhZG9ubHkoKSxcbiAgICBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKSxcbiAgICBkZXNjcmlwdGlvbihcInRhYmxlIHRoaXMgaGlzdG9yeSBvYmplY3QgcmVmZXJzIHRvXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBIaXN0b3J5LnByb3RvdHlwZSwgXCJ0YWJsZVwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKSxcbiAgICByZWFkb25seSgpLFxuICAgIGluZGV4KFtPcmRlckRpcmVjdGlvbi5BU0MsIE9yZGVyRGlyZWN0aW9uLkRTQ10pLFxuICAgIGRlc2NyaXB0aW9uKFwiaWQgb2YgdGhlIG9yaWdpbmFsIG9iamVjdFwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgSGlzdG9yeS5wcm90b3R5cGUsIFwia2V5XCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICByZXF1aXJlZCgpLFxuICAgIHJlYWRvbmx5KCksXG4gICAgaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSksXG4gICAgZGVzY3JpcHRpb24oXCJ0aGUgdmVyc2lvbiBvZiB0aGUgb3JpZ2luYWwgb2JqZWN0XCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBOdW1iZXIpXG5dLCBIaXN0b3J5LnByb3RvdHlwZSwgXCJ2ZXJzaW9uXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICByZXF1aXJlZCgpLFxuICAgIHJlYWRvbmx5KCksXG4gICAgZGVzY3JpcHRpb24oXCJ0aGUgb2JqZWN0IHRvIGtlZXAgaGlzdG9yeSBvZlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgT2JqZWN0KVxuXSwgSGlzdG9yeS5wcm90b3R5cGUsIFwicmVjb3JkXCIsIHZvaWQgMCk7XG5IaXN0b3J5ID0gX19kZWNvcmF0ZShbXG4gICAgZGVzY3JpcHRpb24oXCJMb2dzIHVzZXIgYWN0aXZpdHkgZm9yIGF1ZGl0aW5nIHB1cnBvc2VzLlwiKSxcbiAgICB1c2VzKEZhYnJpY0ZsYXZvdXIpLFxuICAgIEJsb2NrT3BlcmF0aW9ucyhbXG4gICAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgXSksXG4gICAgdGFibGUoXCJoaXN0b3J5XCIpLFxuICAgIHNoYXJlZERhdGEoTmFtZXNwYWNlQ29sbGVjdGlvbihcInB0cC1oaXN0b3J5XCIpKSxcbiAgICBtb2RlbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0XSlcbl0sIEhpc3RvcnkpO1xuZXhwb3J0IHsgSGlzdG9yeSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pU0dsemRHOXllUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5amIyNTBjbUZqZEM5MGNtRmphMlZrVFc5a1pXeHpMMGhwYzNSdmNua3VkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPMEZCUVVFc1QwRkJUeXhGUVVOTUxFdEJRVXNzUlVGRFRDeExRVUZMTEVWQlJVd3NVVUZCVVN4SFFVTlVMRTFCUVUwc1owTkJRV2RETEVOQlFVTTdRVUZEZUVNc1QwRkJUeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNZMEZCWXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVNeFJTeFBRVUZQTEVWQlEwd3NaVUZCWlN4RlFVTm1MRkZCUVZFc1JVRkRVaXhoUVVGaExFVkJRMklzVVVGQlVTeEhRVU5VTEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRGFrTXNUMEZCVHl4RlFVRkZMRmRCUVZjc1JVRkJSU3hKUVVGSkxFVkJRVVVzVFVGQlRTeHpRa0ZCYzBJc1EwRkJRenRCUVVONlJDeFBRVUZQTEVWQlEwd3NZVUZCWVN4RlFVTmlMRTFCUVUwc1JVRkRUaXh0UWtGQmJVSXNSVUZEYmtJc1ZVRkJWU3hIUVVOWUxHZERRVUZ4UWp0QlFWbG1MRWxCUVUwc1QwRkJUeXhIUVVGaUxFMUJRVTBzVDBGQlVTeFRRVUZSTEV0QlFVczdTVUZyUTJoRExGbEJRVmtzUzBGQmVVSTdVVUZEYmtNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEyWXNRMEZCUXp0RFFVTkdMRU5CUVVFN1FVRm9RME03U1VGS1F5eEZRVUZGTEVWQlFVVTdTVUZEU2l4TlFVRk5MRU5CUVVNc2IwSkJRVzlDTEVWQlFVVXNjMEpCUVhOQ0xFTkJRVU03U1VGRGNFUXNVVUZCVVN4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNN1NVRkRNVU1zVjBGQlZ5eERRVUZETERCRFFVRXdReXhEUVVGRE96dHRRMEZETlVNN1FVRlBXanRKUVV4RExFMUJRVTBzUlVGQlJUdEpRVU5TTEZGQlFWRXNSVUZCUlR0SlFVTldMRkZCUVZFc1JVRkJSVHRKUVVOV0xFdEJRVXNzUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1kwRkJZeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF5OURMRmRCUVZjc1EwRkJReXh4UTBGQmNVTXNRMEZCUXpzN2MwTkJRM0JETzBGQlQyWTdTVUZNUXl4TlFVRk5MRVZCUVVVN1NVRkRVaXhSUVVGUkxFVkJRVVU3U1VGRFZpeFJRVUZSTEVWQlFVVTdTVUZEVml4TFFVRkxMRU5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zUjBGQlJ5eEZRVUZGTEdOQlFXTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVNdlF5eFhRVUZYTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU03TzI5RFFVTTFRanRCUVU5aU8wbEJURU1zVFVGQlRTeEZRVUZGTzBsQlExSXNVVUZCVVN4RlFVRkZPMGxCUTFZc1VVRkJVU3hGUVVGRk8wbEJRMVlzUzBGQlN5eERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETDBNc1YwRkJWeXhEUVVGRExHOURRVUZ2UXl4RFFVRkRPenQzUTBGRGFrTTdRVUZOYWtJN1NVRktReXhOUVVGTkxFVkJRVVU3U1VGRFVpeFJRVUZSTEVWQlFVVTdTVUZEVml4UlFVRlJMRVZCUVVVN1NVRkRWaXhYUVVGWExFTkJRVU1zSzBKQlFTdENMRU5CUVVNN08zVkRRVU5vUWp0QlFXaERiRUlzVDBGQlR6dEpRVlp1UWl4WFFVRlhMRU5CUVVNc01rTkJRVEpETEVOQlFVTTdTVUZEZUVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF6dEpRVU51UWl4bFFVRmxMRU5CUVVNN1VVRkRaaXhoUVVGaExFTkJRVU1zVFVGQlRUdFJRVU53UWl4aFFVRmhMRU5CUVVNc1RVRkJUVHRSUVVOd1FpeGhRVUZoTEVOQlFVTXNUVUZCVFR0TFFVTnlRaXhEUVVGRE8wbEJRMFFzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXp0SlFVTm9RaXhWUVVGVkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03U1VGRE9VTXNTMEZCU3l4RlFVRkZPenRIUVVOTExFOUJRVThzUTBGeFEyNUNJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRjYmlBZ1RXOWtaV3dzWEc0Z0lHMXZaR1ZzTEZ4dUlDQjBlWEJsSUUxdlpHVnNRWEpuTEZ4dUlDQnlaWEYxYVhKbFpDeGNibjBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dZMjlzZFcxdUxDQnBibVJsZUN3Z1QzSmtaWEpFYVhKbFkzUnBiMjRzSUhCckxDQjBZV0pzWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUh0Y2JpQWdRbXh2WTJ0UGNHVnlZWFJwYjI1ekxGeHVJQ0JqYjIxd2IzTmxaQ3hjYmlBZ1QzQmxjbUYwYVc5dVMyVjVjeXhjYmlBZ2NtVmhaRzl1Ykhrc1hHNTlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR0l0WkdWamIzSmhkRzl5YzF3aU8xeHVhVzF3YjNKMElIc2daR1Z6WTNKcGNIUnBiMjRzSUhWelpYTWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJRVpoWW5KcFkwWnNZWFp2ZFhJc1hHNGdJRzFwY25KdmNpeGNiaUFnVG1GdFpYTndZV05sUTI5c2JHVmpkR2x2Yml4Y2JpQWdjMmhoY21Wa1JHRjBZU3hjYm4wZ1puSnZiU0JjSWk0dUx5NHVMM05vWVhKbFpGd2lPMXh1WEc1QVpHVnpZM0pwY0hScGIyNG9YQ0pNYjJkeklIVnpaWElnWVdOMGFYWnBkSGtnWm05eUlHRjFaR2wwYVc1bklIQjFjbkJ2YzJWekxsd2lLVnh1UUhWelpYTW9SbUZpY21salJteGhkbTkxY2lsY2JrQkNiRzlqYTA5d1pYSmhkR2x2Ym5Nb1cxeHVJQ0JQY0dWeVlYUnBiMjVMWlhsekxrTlNSVUZVUlN4Y2JpQWdUM0JsY21GMGFXOXVTMlY1Y3k1VlVFUkJWRVVzWEc0Z0lFOXdaWEpoZEdsdmJrdGxlWE11UkVWTVJWUkZMRnh1WFNsY2JrQjBZV0pzWlNoY0ltaHBjM1J2Y25sY0lpbGNia0J6YUdGeVpXUkVZWFJoS0U1aGJXVnpjR0ZqWlVOdmJHeGxZM1JwYjI0b1hDSndkSEF0YUdsemRHOXllVndpS1NsY2JrQnRiMlJsYkNncFhHNWxlSEJ2Y25RZ1kyeGhjM01nU0dsemRHOXllU0JsZUhSbGJtUnpJRTF2WkdWc0lIdGNiaUFnUUhCcktDbGNiaUFnUUcxcGNuSnZjaWhjSW5CMGNDMW9hWE4wYjNKNUxXMXBjbkp2Y2x3aUxDQmNJbEJvWVhKdFlXeGxaR2RsY21GemMyOWpUVk5RWENJcFhHNGdJRUJqYjIxd2IzTmxaQ2hiWENKMFlXSnNaVndpTENCY0ltdGxlVndpTENCY0luWmxjbk5wYjI1Y0lsMHNJRndpT2x3aUtWeHVJQ0JBWkdWelkzSnBjSFJwYjI0b1hDSlZibWx4ZFdVZ2FXUmxiblJwWm1sbGNpQnZaaUIwYUdVZ2FHbHpkRzl5ZVNCeVpXTnZjbVF1WENJcFhHNGdJR2xrSVRvZ2MzUnlhVzVuTzF4dVhHNGdJRUJqYjJ4MWJXNG9LVnh1SUNCQWNtVmhaRzl1Ykhrb0tWeHVJQ0JBY21WaFpHOXViSGtvS1Z4dUlDQkFhVzVrWlhnb1cwOXlaR1Z5UkdseVpXTjBhVzl1TGtGVFF5d2dUM0prWlhKRWFYSmxZM1JwYjI0dVJGTkRYU2xjYmlBZ1FHUmxjMk55YVhCMGFXOXVLRndpZEdGaWJHVWdkR2hwY3lCb2FYTjBiM0o1SUc5aWFtVmpkQ0J5WldabGNuTWdkRzljSWlsY2JpQWdkR0ZpYkdVaE9pQnpkSEpwYm1jN1hHNWNiaUFnUUdOdmJIVnRiaWdwWEc0Z0lFQnlaWEYxYVhKbFpDZ3BYRzRnSUVCeVpXRmtiMjVzZVNncFhHNGdJRUJwYm1SbGVDaGJUM0prWlhKRWFYSmxZM1JwYjI0dVFWTkRMQ0JQY21SbGNrUnBjbVZqZEdsdmJpNUVVME5kS1Z4dUlDQkFaR1Z6WTNKcGNIUnBiMjRvWENKcFpDQnZaaUIwYUdVZ2IzSnBaMmx1WVd3Z2IySnFaV04wWENJcFhHNGdJR3RsZVNFNklITjBjbWx1Wnp0Y2JseHVJQ0JBWTI5c2RXMXVLQ2xjYmlBZ1FISmxjWFZwY21Wa0tDbGNiaUFnUUhKbFlXUnZibXg1S0NsY2JpQWdRR2x1WkdWNEtGdFBjbVJsY2tScGNtVmpkR2x2Ymk1QlUwTXNJRTl5WkdWeVJHbHlaV04wYVc5dUxrUlRRMTBwWEc0Z0lFQmtaWE5qY21sd2RHbHZiaWhjSW5Sb1pTQjJaWEp6YVc5dUlHOW1JSFJvWlNCdmNtbG5hVzVoYkNCdlltcGxZM1JjSWlsY2JpQWdkbVZ5YzJsdmJpRTZJRzUxYldKbGNqdGNibHh1SUNCQVkyOXNkVzF1S0NsY2JpQWdRSEpsY1hWcGNtVmtLQ2xjYmlBZ1FISmxZV1J2Ym14NUtDbGNiaUFnUUdSbGMyTnlhWEIwYVc5dUtGd2lkR2hsSUc5aWFtVmpkQ0IwYnlCclpXVndJR2hwYzNSdmNua2diMlpjSWlsY2JpQWdjbVZqYjNKa1B6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQanRjYmx4dUlDQmpiMjV6ZEhKMVkzUnZjaWh0YjJSbGJEODZJRTF2WkdWc1FYSm5QRWhwYzNSdmNuaytLU0I3WEc0Z0lDQWdjM1Z3WlhJb2JXOWtaV3dwTzF4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OtherAudit = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
19
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
20
+ const decoration_1 = require("@decaf-ts/decoration");
21
+ const core_1 = require("@decaf-ts/core");
22
+ const BaseModel_js_1 = require("./../models/BaseModel.cjs");
23
+ const constants_js_1 = require("./../models/constants.cjs");
24
+ const index_js_1 = require("./../../shared/index.cjs");
25
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
+ function uuidSeed(m, ...args) {
27
+ try {
28
+ return `${m.model}${m.action}${m.recordId}${m.userId}${m.transaction}${JSON.stringify(m.diffs)}`;
29
+ }
30
+ catch (e) {
31
+ throw new db_decorators_1.InternalError(`Failed to generate deterministic uuid: ${e}`);
32
+ }
33
+ }
34
+ let OtherAudit = class OtherAudit extends BaseModel_js_1.BaseModel {
35
+ constructor(model) {
36
+ super(model);
37
+ }
38
+ };
39
+ exports.OtherAudit = OtherAudit;
40
+ __decorate([
41
+ (0, core_1.pk)(),
42
+ (0, core_1.uuid)(uuidSeed),
43
+ (0, index_js_1.mirror)("mirror-collection", "PharmaledgerassocMSP"),
44
+ (0, decoration_1.description)("Unique identifier of the audit record."),
45
+ __metadata("design:type", String)
46
+ ], OtherAudit.prototype, "id", void 0);
47
+ __decorate([
48
+ (0, core_1.column)(),
49
+ (0, decorator_validation_1.required)(),
50
+ (0, db_decorators_1.readonly)(),
51
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
52
+ (0, decoration_1.description)("model/entity affected by the action"),
53
+ (0, core_1.defaultQueryAttr)(),
54
+ __metadata("design:type", String)
55
+ ], OtherAudit.prototype, "model", void 0);
56
+ __decorate([
57
+ (0, core_1.column)(),
58
+ (0, decorator_validation_1.required)(),
59
+ (0, db_decorators_1.readonly)(),
60
+ (0, decorator_validation_1.type)(String),
61
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
62
+ (0, decoration_1.description)("Type of action performed by the user."),
63
+ __metadata("design:type", String)
64
+ ], OtherAudit.prototype, "action", void 0);
65
+ __decorate([
66
+ (0, decoration_1.description)("Id from the model recorded in the audit"),
67
+ (0, core_1.column)(),
68
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
69
+ (0, decorator_validation_1.required)(),
70
+ (0, core_1.defaultQueryAttr)(),
71
+ __metadata("design:type", String)
72
+ ], OtherAudit.prototype, "recordId", void 0);
73
+ __decorate([
74
+ (0, core_1.column)(),
75
+ (0, core_1.createdBy)(),
76
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
77
+ (0, decoration_1.description)("Identifier of the user who performed the action."),
78
+ (0, core_1.defaultQueryAttr)(),
79
+ __metadata("design:type", String)
80
+ ], OtherAudit.prototype, "userId", void 0);
81
+ __decorate([
82
+ (0, core_1.column)(),
83
+ (0, decorator_validation_1.required)(),
84
+ (0, db_decorators_1.readonly)(),
85
+ (0, decorator_validation_1.type)(String),
86
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
87
+ (0, decoration_1.description)("Group or role of the user who performed the action."),
88
+ __metadata("design:type", String)
89
+ ], OtherAudit.prototype, "userGroup", void 0);
90
+ __decorate([
91
+ (0, core_1.column)(),
92
+ (0, decorator_validation_1.required)(),
93
+ (0, db_decorators_1.readonly)(),
94
+ (0, index_js_1.transactionId)(),
95
+ (0, decoration_1.description)("the transaction the audit record was created in"),
96
+ __metadata("design:type", String)
97
+ ], OtherAudit.prototype, "transaction", void 0);
98
+ __decorate([
99
+ (0, core_1.column)(),
100
+ (0, db_decorators_1.readonly)(),
101
+ (0, db_decorators_1.serialize)(),
102
+ (0, decoration_1.description)("the diffs for the action."),
103
+ __metadata("design:type", Object)
104
+ ], OtherAudit.prototype, "diffs", void 0);
105
+ __decorate([
106
+ (0, index_js_1.ownedBy)(),
107
+ (0, decoration_1.description)("the owner (msp) of the audit log"),
108
+ __metadata("design:type", String)
109
+ ], OtherAudit.prototype, "owner", void 0);
110
+ exports.OtherAudit = OtherAudit = __decorate([
111
+ (0, decoration_1.description)("Logs user activity for auditing purposes."),
112
+ (0, db_decorators_1.BlockOperations)([
113
+ // OperationKeys.CREATE,
114
+ db_decorators_1.OperationKeys.UPDATE,
115
+ db_decorators_1.OperationKeys.DELETE,
116
+ ]),
117
+ (0, decoration_1.uses)(index_js_1.FabricFlavour),
118
+ (0, index_js_1.sharedData)((0, index_js_1.NamespaceCollection)("decaf-namespace")),
119
+ (0, core_1.table)("audit"),
120
+ (0, decorator_validation_1.model)(),
121
+ __metadata("design:paramtypes", [Object])
122
+ ], OtherAudit);
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3RoZXJBdWRpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmFjdC90cmFja2VkTW9kZWxzL090aGVyQXVkaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLEtBQUssRUFFTCxRQUFRLEVBQ1IsSUFBSSxHQUNMLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsYUFBYSxFQUNiLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFDTCxLQUFLLEVBQ0wsRUFBRSxFQUNGLFNBQVMsRUFDVCxNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxJQUFJLEVBRUosZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQ0FBNEI7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQ0FBNEI7QUFDdEQsT0FBTyxFQUNMLGFBQWEsRUFDYixNQUFNLEVBQ04sbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxVQUFVLEVBQ1YsYUFBYSxHQUNkLGdDQUEyQjtBQUU1Qiw2REFBNkQ7QUFDN0QsU0FBUyxRQUFRLENBQUMsQ0FBYSxFQUFFLEdBQUcsSUFBeUI7SUFDM0QsSUFBSSxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ25HLENBQUM7SUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxhQUFhLENBQUMsMENBQTBDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztBQUNILENBQUM7QUFZTSxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFXLFNBQVEsU0FBUztJQThEdkMsWUFBWSxLQUE0QjtRQUN0QyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTtBQTVEQztJQUpDLEVBQUUsRUFBRTtJQUNKLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDZCxNQUFNLENBQUMsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUM7SUFDbkQsV0FBVyxDQUFDLHdDQUF3QyxDQUFDOztzQ0FDMUM7QUFRWjtJQU5DLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNWLFFBQVEsRUFBRTtJQUNWLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsQ0FBQyxxQ0FBcUMsQ0FBQztJQUNsRCxnQkFBZ0IsRUFBRTs7eUNBQ0o7QUFRZjtJQU5DLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNWLFFBQVEsRUFBRTtJQUNWLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDWixLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxXQUFXLENBQUMsdUNBQXVDLENBQUM7OzBDQUM1QjtBQU96QjtJQUxDLFdBQVcsQ0FBQyx5Q0FBeUMsQ0FBQztJQUN0RCxNQUFNLEVBQUU7SUFDUixLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxRQUFRLEVBQUU7SUFDVixnQkFBZ0IsRUFBRTs7NENBQ0Q7QUFPbEI7SUFMQyxNQUFNLEVBQUU7SUFDUixTQUFTLEVBQUU7SUFDWCxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxXQUFXLENBQUMsa0RBQWtELENBQUM7SUFDL0QsZ0JBQWdCLEVBQUU7OzBDQUNIO0FBUWhCO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1YsUUFBUSxFQUFFO0lBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNaLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsQ0FBQyxxREFBcUQsQ0FBQzs7NkNBQ2hEO0FBT25CO0lBTEMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1YsUUFBUSxFQUFFO0lBQ1YsYUFBYSxFQUFFO0lBQ2YsV0FBVyxDQUFDLGlEQUFpRCxDQUFDOzsrQ0FDMUM7QUFNckI7SUFKQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDVixTQUFTLEVBQUU7SUFDWCxXQUFXLENBQUMsMkJBQTJCLENBQUM7O3lDQUNiO0FBSTVCO0lBRkMsT0FBTyxFQUFFO0lBQ1QsV0FBVyxDQUFDLGtDQUFrQyxDQUFDOzt5Q0FDakM7QUE1REosVUFBVTtJQVZ0QixXQUFXLENBQUMsMkNBQTJDLENBQUM7SUFDeEQsZUFBZSxDQUFDO1FBQ2Ysd0JBQXdCO1FBQ3hCLGFBQWEsQ0FBQyxNQUFNO1FBQ3BCLGFBQWEsQ0FBQyxNQUFNO0tBQ3JCLENBQUM7SUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ25CLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDZCxLQUFLLEVBQUU7O0dBQ0ssVUFBVSxDQWlFdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBtb2RlbCxcbiAgdHlwZSBNb2RlbEFyZyxcbiAgcmVxdWlyZWQsXG4gIHR5cGUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIEJsb2NrT3BlcmF0aW9ucyxcbiAgSW50ZXJuYWxFcnJvcixcbiAgT3BlcmF0aW9uS2V5cyxcbiAgcmVhZG9ubHksXG4gIHNlcmlhbGl6ZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBkZXNjcmlwdGlvbiwgdXNlcyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHtcbiAgdGFibGUsXG4gIHBrLFxuICBjcmVhdGVkQnksXG4gIGNvbHVtbixcbiAgT3JkZXJEaXJlY3Rpb24sXG4gIGluZGV4LFxuICB1dWlkLFxuICBDb250ZXh0dWFsQXJncyxcbiAgZGVmYXVsdFF1ZXJ5QXR0cixcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL0Jhc2VNb2RlbFwiO1xuaW1wb3J0IHsgQXVkaXRPcGVyYXRpb25zIH0gZnJvbSBcIi4uL21vZGVscy9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIEZhYnJpY0ZsYXZvdXIsXG4gIG1pcnJvcixcbiAgTmFtZXNwYWNlQ29sbGVjdGlvbixcbiAgb3duZWRCeSxcbiAgc2hhcmVkRGF0YSxcbiAgdHJhbnNhY3Rpb25JZCxcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC9pbmRleFwiO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5mdW5jdGlvbiB1dWlkU2VlZChtOiBPdGhlckF1ZGl0LCAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGAke20ubW9kZWx9JHttLmFjdGlvbn0ke20ucmVjb3JkSWR9JHttLnVzZXJJZH0ke20udHJhbnNhY3Rpb259JHtKU09OLnN0cmluZ2lmeShtLmRpZmZzKX1gO1xuICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBnZW5lcmF0ZSBkZXRlcm1pbmlzdGljIHV1aWQ6ICR7ZX1gKTtcbiAgfVxufVxuXG5AZGVzY3JpcHRpb24oXCJMb2dzIHVzZXIgYWN0aXZpdHkgZm9yIGF1ZGl0aW5nIHB1cnBvc2VzLlwiKVxuQEJsb2NrT3BlcmF0aW9ucyhbXG4gIC8vIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG5dKVxuQHVzZXMoRmFicmljRmxhdm91cilcbkBzaGFyZWREYXRhKE5hbWVzcGFjZUNvbGxlY3Rpb24oXCJkZWNhZi1uYW1lc3BhY2VcIikpXG5AdGFibGUoXCJhdWRpdFwiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBPdGhlckF1ZGl0IGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgQHBrKClcbiAgQHV1aWQodXVpZFNlZWQpXG4gIEBtaXJyb3IoXCJtaXJyb3ItY29sbGVjdGlvblwiLCBcIlBoYXJtYWxlZGdlcmFzc29jTVNQXCIpXG4gIEBkZXNjcmlwdGlvbihcIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBhdWRpdCByZWNvcmQuXCIpXG4gIGlkITogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICBAcmVhZG9ubHkoKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwibW9kZWwvZW50aXR5IGFmZmVjdGVkIGJ5IHRoZSBhY3Rpb25cIilcbiAgQGRlZmF1bHRRdWVyeUF0dHIoKVxuICBtb2RlbCE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQHJlYWRvbmx5KClcbiAgQHR5cGUoU3RyaW5nKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwiVHlwZSBvZiBhY3Rpb24gcGVyZm9ybWVkIGJ5IHRoZSB1c2VyLlwiKVxuICBhY3Rpb24hOiBBdWRpdE9wZXJhdGlvbnM7XG5cbiAgQGRlc2NyaXB0aW9uKFwiSWQgZnJvbSB0aGUgbW9kZWwgcmVjb3JkZWQgaW4gdGhlIGF1ZGl0XCIpXG4gIEBjb2x1bW4oKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQHJlcXVpcmVkKClcbiAgQGRlZmF1bHRRdWVyeUF0dHIoKVxuICByZWNvcmRJZCE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQGNyZWF0ZWRCeSgpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICBAZGVzY3JpcHRpb24oXCJJZGVudGlmaWVyIG9mIHRoZSB1c2VyIHdobyBwZXJmb3JtZWQgdGhlIGFjdGlvbi5cIilcbiAgQGRlZmF1bHRRdWVyeUF0dHIoKVxuICB1c2VySWQhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIEByZWFkb25seSgpXG4gIEB0eXBlKFN0cmluZylcbiAgQGluZGV4KFtPcmRlckRpcmVjdGlvbi5BU0MsIE9yZGVyRGlyZWN0aW9uLkRTQ10pXG4gIEBkZXNjcmlwdGlvbihcIkdyb3VwIG9yIHJvbGUgb2YgdGhlIHVzZXIgd2hvIHBlcmZvcm1lZCB0aGUgYWN0aW9uLlwiKVxuICB1c2VyR3JvdXAhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIEByZWFkb25seSgpXG4gIEB0cmFuc2FjdGlvbklkKClcbiAgQGRlc2NyaXB0aW9uKFwidGhlIHRyYW5zYWN0aW9uIHRoZSBhdWRpdCByZWNvcmQgd2FzIGNyZWF0ZWQgaW5cIilcbiAgdHJhbnNhY3Rpb24hOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZWFkb25seSgpXG4gIEBzZXJpYWxpemUoKVxuICBAZGVzY3JpcHRpb24oXCJ0aGUgZGlmZnMgZm9yIHRoZSBhY3Rpb24uXCIpXG4gIGRpZmZzPzogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBAb3duZWRCeSgpXG4gIEBkZXNjcmlwdGlvbihcInRoZSBvd25lciAobXNwKSBvZiB0aGUgYXVkaXQgbG9nXCIpXG4gIG93bmVyITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG1vZGVsPzogTW9kZWxBcmc8T3RoZXJBdWRpdD4pIHtcbiAgICBzdXBlcihtb2RlbCk7XG4gIH1cbn1cbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3RoZXJBdWRpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk90aGVyQXVkaXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENB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LEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFZiw4dU9BQTh1TyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG5pbXBvcnQgeyBtb2RlbCwgcmVxdWlyZWQsIHR5cGUsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQmxvY2tPcGVyYXRpb25zLCBJbnRlcm5hbEVycm9yLCBPcGVyYXRpb25LZXlzLCByZWFkb25seSwgc2VyaWFsaXplLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24sIHVzZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IHRhYmxlLCBwaywgY3JlYXRlZEJ5LCBjb2x1bW4sIE9yZGVyRGlyZWN0aW9uLCBpbmRleCwgdXVpZCwgZGVmYXVsdFF1ZXJ5QXR0ciwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gXCIuLy4uL21vZGVscy9CYXNlTW9kZWwuanNcIjtcbmltcG9ydCB7IEF1ZGl0T3BlcmF0aW9ucyB9IGZyb20gXCIuLy4uL21vZGVscy9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IEZhYnJpY0ZsYXZvdXIsIG1pcnJvciwgTmFtZXNwYWNlQ29sbGVjdGlvbiwgb3duZWRCeSwgc2hhcmVkRGF0YSwgdHJhbnNhY3Rpb25JZCwgfSBmcm9tIFwiLi8uLi8uLi9zaGFyZWQvaW5kZXguanNcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmZ1bmN0aW9uIHV1aWRTZWVkKG0sIC4uLmFyZ3MpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gYCR7bS5tb2RlbH0ke20uYWN0aW9ufSR7bS5yZWNvcmRJZH0ke20udXNlcklkfSR7bS50cmFuc2FjdGlvbn0ke0pTT04uc3RyaW5naWZ5KG0uZGlmZnMpfWA7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgZGV0ZXJtaW5pc3RpYyB1dWlkOiAke2V9YCk7XG4gICAgfVxufVxubGV0IE90aGVyQXVkaXQgPSBjbGFzcyBPdGhlckF1ZGl0IGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgICBjb25zdHJ1Y3Rvcihtb2RlbCkge1xuICAgICAgICBzdXBlcihtb2RlbCk7XG4gICAgfVxufTtcbl9fZGVjb3JhdGUoW1xuICAgIHBrKCksXG4gICAgdXVpZCh1dWlkU2VlZCksXG4gICAgbWlycm9yKFwibWlycm9yLWNvbGxlY3Rpb25cIiwgXCJQaGFybWFsZWRnZXJhc3NvY01TUFwiKSxcbiAgICBkZXNjcmlwdGlvbihcIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBhdWRpdCByZWNvcmQuXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBPdGhlckF1ZGl0LnByb3RvdHlwZSwgXCJpZFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKSxcbiAgICByZWFkb25seSgpLFxuICAgIGluZGV4KFtPcmRlckRpcmVjdGlvbi5BU0MsIE9yZGVyRGlyZWN0aW9uLkRTQ10pLFxuICAgIGRlc2NyaXB0aW9uKFwibW9kZWwvZW50aXR5IGFmZmVjdGVkIGJ5IHRoZSBhY3Rpb25cIiksXG4gICAgZGVmYXVsdFF1ZXJ5QXR0cigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBPdGhlckF1ZGl0LnByb3RvdHlwZSwgXCJtb2RlbFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKSxcbiAgICByZWFkb25seSgpLFxuICAgIHR5cGUoU3RyaW5nKSxcbiAgICBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKSxcbiAgICBkZXNjcmlwdGlvbihcIlR5cGUgb2YgYWN0aW9uIHBlcmZvcm1lZCBieSB0aGUgdXNlci5cIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIE90aGVyQXVkaXQucHJvdG90eXBlLCBcImFjdGlvblwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgZGVzY3JpcHRpb24oXCJJZCBmcm9tIHRoZSBtb2RlbCByZWNvcmRlZCBpbiB0aGUgYXVkaXRcIiksXG4gICAgY29sdW1uKCksXG4gICAgaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSksXG4gICAgcmVxdWlyZWQoKSxcbiAgICBkZWZhdWx0UXVlcnlBdHRyKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIE90aGVyQXVkaXQucHJvdG90eXBlLCBcInJlY29yZElkXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICBjcmVhdGVkQnkoKSxcbiAgICBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKSxcbiAgICBkZXNjcmlwdGlvbihcIklkZW50aWZpZXIgb2YgdGhlIHVzZXIgd2hvIHBlcmZvcm1lZCB0aGUgYWN0aW9uLlwiKSxcbiAgICBkZWZhdWx0UXVlcnlBdHRyKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIE90aGVyQXVkaXQucHJvdG90eXBlLCBcInVzZXJJZFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKSxcbiAgICByZWFkb25seSgpLFxuICAgIHR5cGUoU3RyaW5nKSxcbiAgICBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKSxcbiAgICBkZXNjcmlwdGlvbihcIkdyb3VwIG9yIHJvbGUgb2YgdGhlIHVzZXIgd2hvIHBlcmZvcm1lZCB0aGUgYWN0aW9uLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgT3RoZXJBdWRpdC5wcm90b3R5cGUsIFwidXNlckdyb3VwXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICByZXF1aXJlZCgpLFxuICAgIHJlYWRvbmx5KCksXG4gICAgdHJhbnNhY3Rpb25JZCgpLFxuICAgIGRlc2NyaXB0aW9uKFwidGhlIHRyYW5zYWN0aW9uIHRoZSBhdWRpdCByZWNvcmQgd2FzIGNyZWF0ZWQgaW5cIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIE90aGVyQXVkaXQucHJvdG90eXBlLCBcInRyYW5zYWN0aW9uXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICByZWFkb25seSgpLFxuICAgIHNlcmlhbGl6ZSgpLFxuICAgIGRlc2NyaXB0aW9uKFwidGhlIGRpZmZzIGZvciB0aGUgYWN0aW9uLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgT2JqZWN0KVxuXSwgT3RoZXJBdWRpdC5wcm90b3R5cGUsIFwiZGlmZnNcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIG93bmVkQnkoKSxcbiAgICBkZXNjcmlwdGlvbihcInRoZSBvd25lciAobXNwKSBvZiB0aGUgYXVkaXQgbG9nXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBPdGhlckF1ZGl0LnByb3RvdHlwZSwgXCJvd25lclwiLCB2b2lkIDApO1xuT3RoZXJBdWRpdCA9IF9fZGVjb3JhdGUoW1xuICAgIGRlc2NyaXB0aW9uKFwiTG9ncyB1c2VyIGFjdGl2aXR5IGZvciBhdWRpdGluZyBwdXJwb3Nlcy5cIiksXG4gICAgQmxvY2tPcGVyYXRpb25zKFtcbiAgICAgICAgLy8gT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICBdKSxcbiAgICB1c2VzKEZhYnJpY0ZsYXZvdXIpLFxuICAgIHNoYXJlZERhdGEoTmFtZXNwYWNlQ29sbGVjdGlvbihcImRlY2FmLW5hbWVzcGFjZVwiKSksXG4gICAgdGFibGUoXCJhdWRpdFwiKSxcbiAgICBtb2RlbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0XSlcbl0sIE90aGVyQXVkaXQpO1xuZXhwb3J0IHsgT3RoZXJBdWRpdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVDNSb1pYSkJkV1JwZEM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDNOeVl5OWpiMjUwY21GamRDOTBjbUZqYTJWa1RXOWtaV3h6TDA5MGFHVnlRWFZrYVhRdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN08wRkJRVUVzVDBGQlR5eEZRVU5NTEV0QlFVc3NSVUZGVEN4UlFVRlJMRVZCUTFJc1NVRkJTU3hIUVVOTUxFMUJRVTBzWjBOQlFXZERMRU5CUVVNN1FVRkRlRU1zVDBGQlR5eEZRVU5NTEdWQlFXVXNSVUZEWml4aFFVRmhMRVZCUTJJc1lVRkJZU3hGUVVOaUxGRkJRVkVzUlVGRFVpeFRRVUZUTEVkQlExWXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVU5xUXl4UFFVRlBMRVZCUVVVc1YwRkJWeXhGUVVGRkxFbEJRVWtzUlVGQlJTeE5RVUZOTEhOQ1FVRnpRaXhEUVVGRE8wRkJRM3BFTEU5QlFVOHNSVUZEVEN4TFFVRkxMRVZCUTB3c1JVRkJSU3hGUVVOR0xGTkJRVk1zUlVGRFZDeE5RVUZOTEVWQlEwNHNZMEZCWXl4RlFVTmtMRXRCUVVzc1JVRkRUQ3hKUVVGSkxFVkJSVW9zWjBKQlFXZENMRWRCUTJwQ0xFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRlRUlzVDBGQlR5eEZRVUZGTEZOQlFWTXNSVUZCUlN4cFEwRkJORUk3UVVGRGFFUXNUMEZCVHl4RlFVRkZMR1ZCUVdVc1JVRkJSU3hwUTBGQk5FSTdRVUZEZEVRc1QwRkJUeXhGUVVOTUxHRkJRV0VzUlVGRFlpeE5RVUZOTEVWQlEwNHNiVUpCUVcxQ0xFVkJRMjVDTEU5QlFVOHNSVUZEVUN4VlFVRlZMRVZCUTFZc1lVRkJZU3hIUVVOa0xHZERRVUV5UWp0QlFVVTFRaXcyUkVGQk5rUTdRVUZETjBRc1UwRkJVeXhSUVVGUkxFTkJRVU1zUTBGQllTeEZRVUZGTEVkQlFVY3NTVUZCZVVJN1NVRkRNMFFzU1VGQlNTeERRVUZETzFGQlEwZ3NUMEZCVHl4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1VVRkJVU3hIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJRMjVITEVOQlFVTTdTVUZCUXl4UFFVRlBMRU5CUVZVc1JVRkJSU3hEUVVGRE8xRkJRM0JDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc01FTkJRVEJETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRla1VzUTBGQlF6dEJRVU5JTEVOQlFVTTdRVUZaVFN4SlFVRk5MRlZCUVZVc1IwRkJhRUlzVFVGQlRTeFZRVUZYTEZOQlFWRXNVMEZCVXp0SlFUaEVka01zV1VGQldTeExRVUUwUWp0UlFVTjBReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTVUZEWml4RFFVRkRPME5CUTBZc1EwRkJRVHRCUVRWRVF6dEpRVXBETEVWQlFVVXNSVUZCUlR0SlFVTktMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03U1VGRFpDeE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFVkJRVVVzYzBKQlFYTkNMRU5CUVVNN1NVRkRia1FzVjBGQlZ5eERRVUZETEhkRFFVRjNReXhEUVVGRE96dHpRMEZETVVNN1FVRlJXanRKUVU1RExFMUJRVTBzUlVGQlJUdEpRVU5TTEZGQlFWRXNSVUZCUlR0SlFVTldMRkZCUVZFc1JVRkJSVHRKUVVOV0xFdEJRVXNzUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1kwRkJZeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF5OURMRmRCUVZjc1EwRkJReXh4UTBGQmNVTXNRMEZCUXp0SlFVTnNSQ3huUWtGQlowSXNSVUZCUlRzN2VVTkJRMG83UVVGUlpqdEpRVTVETEUxQlFVMHNSVUZCUlR0SlFVTlNMRkZCUVZFc1JVRkJSVHRKUVVOV0xGRkJRVkVzUlVGQlJUdEpRVU5XTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRXaXhMUVVGTExFTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNSMEZCUnl4RlFVRkZMR05CUVdNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU12UXl4WFFVRlhMRU5CUVVNc2RVTkJRWFZETEVOQlFVTTdPekJEUVVNMVFqdEJRVTk2UWp0SlFVeERMRmRCUVZjc1EwRkJReXg1UTBGQmVVTXNRMEZCUXp0SlFVTjBSQ3hOUVVGTkxFVkJRVVU3U1VGRFVpeExRVUZMTEVOQlFVTXNRMEZCUXl4alFVRmpMRU5CUVVNc1IwRkJSeXhGUVVGRkxHTkJRV01zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTXZReXhSUVVGUkxFVkJRVVU3U1VGRFZpeG5Ra0ZCWjBJc1JVRkJSVHM3TkVOQlEwUTdRVUZQYkVJN1NVRk1ReXhOUVVGTkxFVkJRVVU3U1VGRFVpeFRRVUZUTEVWQlFVVTdTVUZEV0N4TFFVRkxMRU5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zUjBGQlJ5eEZRVUZGTEdOQlFXTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVNdlF5eFhRVUZYTEVOQlFVTXNhMFJCUVd0RUxFTkJRVU03U1VGREwwUXNaMEpCUVdkQ0xFVkJRVVU3T3pCRFFVTklPMEZCVVdoQ08wbEJUa01zVFVGQlRTeEZRVUZGTzBsQlExSXNVVUZCVVN4RlFVRkZPMGxCUTFZc1VVRkJVU3hGUVVGRk8wbEJRMVlzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0SlFVTmFMRXRCUVVzc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eEhRVUZITEVWQlFVVXNZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJReTlETEZkQlFWY3NRMEZCUXl4eFJFRkJjVVFzUTBGQlF6czdOa05CUTJoRU8wRkJUMjVDTzBsQlRFTXNUVUZCVFN4RlFVRkZPMGxCUTFJc1VVRkJVU3hGUVVGRk8wbEJRMVlzVVVGQlVTeEZRVUZGTzBsQlExWXNZVUZCWVN4RlFVRkZPMGxCUTJZc1YwRkJWeXhEUVVGRExHbEVRVUZwUkN4RFFVRkRPenNyUTBGRE1VTTdRVUZOY2tJN1NVRktReXhOUVVGTkxFVkJRVVU3U1VGRFVpeFJRVUZSTEVWQlFVVTdTVUZEVml4VFFVRlRMRVZCUVVVN1NVRkRXQ3hYUVVGWExFTkJRVU1zTWtKQlFUSkNMRU5CUVVNN08zbERRVU5pTzBGQlNUVkNPMGxCUmtNc1QwRkJUeXhGUVVGRk8wbEJRMVFzVjBGQlZ5eERRVUZETEd0RFFVRnJReXhEUVVGRE96dDVRMEZEYWtNN1FVRTFSRW9zVlVGQlZUdEpRVlowUWl4WFFVRlhMRU5CUVVNc01rTkJRVEpETEVOQlFVTTdTVUZEZUVRc1pVRkJaU3hEUVVGRE8xRkJRMllzZDBKQlFYZENPMUZCUTNoQ0xHRkJRV0VzUTBGQlF5eE5RVUZOTzFGQlEzQkNMR0ZCUVdFc1EwRkJReXhOUVVGTk8wdEJRM0pDTEVOQlFVTTdTVUZEUkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRE8wbEJRMjVDTEZWQlFWVXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8wbEJRMnhFTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNN1NVRkRaQ3hMUVVGTExFVkJRVVU3TzBkQlEwc3NWVUZCVlN4RFFXbEZkRUlpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZTF4dUlDQnRiMlJsYkN4Y2JpQWdkSGx3WlNCTmIyUmxiRUZ5Wnl4Y2JpQWdjbVZ4ZFdseVpXUXNYRzRnSUhSNWNHVXNYRzU5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdWamIzSmhkRzl5TFhaaGJHbGtZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVKc2IyTnJUM0JsY21GMGFXOXVjeXhjYmlBZ1NXNTBaWEp1WVd4RmNuSnZjaXhjYmlBZ1QzQmxjbUYwYVc5dVMyVjVjeXhjYmlBZ2NtVmhaRzl1Ykhrc1hHNGdJSE5sY21saGJHbDZaU3hjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCa1pYTmpjbWx3ZEdsdmJpd2dkWE5sY3lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ2RHRmliR1VzWEc0Z0lIQnJMRnh1SUNCamNtVmhkR1ZrUW5rc1hHNGdJR052YkhWdGJpeGNiaUFnVDNKa1pYSkVhWEpsWTNScGIyNHNYRzRnSUdsdVpHVjRMRnh1SUNCMWRXbGtMRnh1SUNCRGIyNTBaWGgwZFdGc1FYSm5jeXhjYmlBZ1pHVm1ZWFZzZEZGMVpYSjVRWFIwY2l4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QkNZWE5sVFc5a1pXd2dmU0JtY205dElGd2lMaTR2Ylc5a1pXeHpMMEpoYzJWTmIyUmxiRndpTzF4dWFXMXdiM0owSUhzZ1FYVmthWFJQY0dWeVlYUnBiMjV6SUgwZ1puSnZiU0JjSWk0dUwyMXZaR1ZzY3k5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVaaFluSnBZMFpzWVhadmRYSXNYRzRnSUcxcGNuSnZjaXhjYmlBZ1RtRnRaWE53WVdObFEyOXNiR1ZqZEdsdmJpeGNiaUFnYjNkdVpXUkNlU3hjYmlBZ2MyaGhjbVZrUkdGMFlTeGNiaUFnZEhKaGJuTmhZM1JwYjI1SlpDeGNibjBnWm5KdmJTQmNJaTR1THk0dUwzTm9ZWEpsWkM5cGJtUmxlRndpTzF4dVhHNHZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXVaWGgwTFd4cGJtVWdRSFI1Y0dWelkzSnBjSFF0WlhOc2FXNTBMMjV2TFhWdWRYTmxaQzEyWVhKelhHNW1kVzVqZEdsdmJpQjFkV2xrVTJWbFpDaHRPaUJQZEdobGNrRjFaR2wwTENBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhoYm5rK0tTQjdYRzRnSUhSeWVTQjdYRzRnSUNBZ2NtVjBkWEp1SUdBa2UyMHViVzlrWld4OUpIdHRMbUZqZEdsdmJuMGtlMjB1Y21WamIzSmtTV1I5Skh0dExuVnpaWEpKWkgwa2UyMHVkSEpoYm5OaFkzUnBiMjU5Skh0S1UwOU9Mbk4wY21sdVoybG1lU2h0TG1ScFptWnpLWDFnTzF4dUlDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1lFWmhhV3hsWkNCMGJ5Qm5aVzVsY21GMFpTQmtaWFJsY20xcGJtbHpkR2xqSUhWMWFXUTZJQ1I3WlgxZ0tUdGNiaUFnZlZ4dWZWeHVYRzVBWkdWelkzSnBjSFJwYjI0b1hDSk1iMmR6SUhWelpYSWdZV04wYVhacGRIa2dabTl5SUdGMVpHbDBhVzVuSUhCMWNuQnZjMlZ6TGx3aUtWeHVRRUpzYjJOclQzQmxjbUYwYVc5dWN5aGJYRzRnSUM4dklFOXdaWEpoZEdsdmJrdGxlWE11UTFKRlFWUkZMRnh1SUNCUGNHVnlZWFJwYjI1TFpYbHpMbFZRUkVGVVJTeGNiaUFnVDNCbGNtRjBhVzl1UzJWNWN5NUVSVXhGVkVVc1hHNWRLVnh1UUhWelpYTW9SbUZpY21salJteGhkbTkxY2lsY2JrQnphR0Z5WldSRVlYUmhLRTVoYldWemNHRmpaVU52Ykd4bFkzUnBiMjRvWENKa1pXTmhaaTF1WVcxbGMzQmhZMlZjSWlrcFhHNUFkR0ZpYkdVb1hDSmhkV1JwZEZ3aUtWeHVRRzF2WkdWc0tDbGNibVY0Y0c5eWRDQmpiR0Z6Y3lCUGRHaGxja0YxWkdsMElHVjRkR1Z1WkhNZ1FtRnpaVTF2WkdWc0lIdGNiaUFnUUhCcktDbGNiaUFnUUhWMWFXUW9kWFZwWkZObFpXUXBYRzRnSUVCdGFYSnliM0lvWENKdGFYSnliM0l0WTI5c2JHVmpkR2x2Ymx3aUxDQmNJbEJvWVhKdFlXeGxaR2RsY21GemMyOWpUVk5RWENJcFhHNGdJRUJrWlhOamNtbHdkR2x2YmloY0lsVnVhWEYxWlNCcFpHVnVkR2xtYVdWeUlHOW1JSFJvWlNCaGRXUnBkQ0J5WldOdmNtUXVYQ0lwWEc0Z0lHbGtJVG9nYzNSeWFXNW5PMXh1WEc0Z0lFQmpiMngxYlc0b0tWeHVJQ0JBY21WeGRXbHlaV1FvS1Z4dUlDQkFjbVZoWkc5dWJIa29LVnh1SUNCQWFXNWtaWGdvVzA5eVpHVnlSR2x5WldOMGFXOXVMa0ZUUXl3Z1QzSmtaWEpFYVhKbFkzUnBiMjR1UkZORFhTbGNiaUFnUUdSbGMyTnlhWEIwYVc5dUtGd2liVzlrWld3dlpXNTBhWFI1SUdGbVptVmpkR1ZrSUdKNUlIUm9aU0JoWTNScGIyNWNJaWxjYmlBZ1FHUmxabUYxYkhSUmRXVnllVUYwZEhJb0tWeHVJQ0J0YjJSbGJDRTZJSE4wY21sdVp6dGNibHh1SUNCQVkyOXNkVzF1S0NsY2JpQWdRSEpsY1hWcGNtVmtLQ2xjYmlBZ1FISmxZV1J2Ym14NUtDbGNiaUFnUUhSNWNHVW9VM1J5YVc1bktWeHVJQ0JBYVc1a1pYZ29XMDl5WkdWeVJHbHlaV04wYVc5dUxrRlRReXdnVDNKa1pYSkVhWEpsWTNScGIyNHVSRk5EWFNsY2JpQWdRR1JsYzJOeWFYQjBhVzl1S0Z3aVZIbHdaU0J2WmlCaFkzUnBiMjRnY0dWeVptOXliV1ZrSUdKNUlIUm9aU0IxYzJWeUxsd2lLVnh1SUNCaFkzUnBiMjRoT2lCQmRXUnBkRTl3WlhKaGRHbHZibk03WEc1Y2JpQWdRR1JsYzJOeWFYQjBhVzl1S0Z3aVNXUWdabkp2YlNCMGFHVWdiVzlrWld3Z2NtVmpiM0prWldRZ2FXNGdkR2hsSUdGMVpHbDBYQ0lwWEc0Z0lFQmpiMngxYlc0b0tWeHVJQ0JBYVc1a1pYZ29XMDl5WkdWeVJHbHlaV04wYVc5dUxrRlRReXdnVDNKa1pYSkVhWEpsWTNScGIyNHVSRk5EWFNsY2JpQWdRSEpsY1hWcGNtVmtLQ2xjYmlBZ1FHUmxabUYxYkhSUmRXVnllVUYwZEhJb0tWeHVJQ0J5WldOdmNtUkpaQ0U2SUhOMGNtbHVaenRjYmx4dUlDQkFZMjlzZFcxdUtDbGNiaUFnUUdOeVpXRjBaV1JDZVNncFhHNGdJRUJwYm1SbGVDaGJUM0prWlhKRWFYSmxZM1JwYjI0dVFWTkRMQ0JQY21SbGNrUnBjbVZqZEdsdmJpNUVVME5kS1Z4dUlDQkFaR1Z6WTNKcGNIUnBiMjRvWENKSlpHVnVkR2xtYVdWeUlHOW1JSFJvWlNCMWMyVnlJSGRvYnlCd1pYSm1iM0p0WldRZ2RHaGxJR0ZqZEdsdmJpNWNJaWxjYmlBZ1FHUmxabUYxYkhSUmRXVnllVUYwZEhJb0tWeHVJQ0IxYzJWeVNXUWhPaUJ6ZEhKcGJtYzdYRzVjYmlBZ1FHTnZiSFZ0YmlncFhHNGdJRUJ5WlhGMWFYSmxaQ2dwWEc0Z0lFQnlaV0ZrYjI1c2VTZ3BYRzRnSUVCMGVYQmxLRk4wY21sdVp5bGNiaUFnUUdsdVpHVjRLRnRQY21SbGNrUnBjbVZqZEdsdmJpNUJVME1zSUU5eVpHVnlSR2x5WldOMGFXOXVMa1JUUTEwcFhHNGdJRUJrWlhOamNtbHdkR2x2YmloY0lrZHliM1Z3SUc5eUlISnZiR1VnYjJZZ2RHaGxJSFZ6WlhJZ2QyaHZJSEJsY21admNtMWxaQ0IwYUdVZ1lXTjBhVzl1TGx3aUtWeHVJQ0IxYzJWeVIzSnZkWEFoT2lCemRISnBibWM3WEc1Y2JpQWdRR052YkhWdGJpZ3BYRzRnSUVCeVpYRjFhWEpsWkNncFhHNGdJRUJ5WldGa2IyNXNlU2dwWEc0Z0lFQjBjbUZ1YzJGamRHbHZia2xrS0NsY2JpQWdRR1JsYzJOeWFYQjBhVzl1S0Z3aWRHaGxJSFJ5WVc1ellXTjBhVzl1SUhSb1pTQmhkV1JwZENCeVpXTnZjbVFnZDJGeklHTnlaV0YwWldRZ2FXNWNJaWxjYmlBZ2RISmhibk5oWTNScGIyNGhPaUJ6ZEhKcGJtYzdYRzVjYmlBZ1FHTnZiSFZ0YmlncFhHNGdJRUJ5WldGa2IyNXNlU2dwWEc0Z0lFQnpaWEpwWVd4cGVtVW9LVnh1SUNCQVpHVnpZM0pwY0hScGIyNG9YQ0owYUdVZ1pHbG1abk1nWm05eUlIUm9aU0JoWTNScGIyNHVYQ0lwWEc0Z0lHUnBabVp6UHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBqdGNibHh1SUNCQWIzZHVaV1JDZVNncFhHNGdJRUJrWlhOamNtbHdkR2x2YmloY0luUm9aU0J2ZDI1bGNpQW9iWE53S1NCdlppQjBhR1VnWVhWa2FYUWdiRzluWENJcFhHNGdJRzkzYm1WeUlUb2djM1J5YVc1bk8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHMXZaR1ZzUHpvZ1RXOWtaV3hCY21jOFQzUm9aWEpCZFdScGRENHBJSHRjYmlBZ0lDQnpkWEJsY2lodGIyUmxiQ2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Leaflet = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
19
+ const core_1 = require("@decaf-ts/core");
20
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
21
+ const decoration_1 = require("@decaf-ts/decoration");
22
+ const BaseIdentifiedModel_js_1 = require("./../models/BaseIdentifiedModel.cjs");
23
+ const index_js_1 = require("./../../shared/index.cjs");
24
+ const decorators_private_js_1 = require("./../models/decorators-private.cjs");
25
+ const history_dec_js_1 = require("./../models/history-dec.cjs");
26
+ const gtin_js_1 = require("./../models/gtin.cjs");
27
+ const OtherLeafletFile_js_1 = require("./OtherLeafletFile.cjs");
28
+ let Leaflet = class Leaflet extends BaseIdentifiedModel_js_1.BaseIdentifiedModel {
29
+ constructor(model) {
30
+ super(model);
31
+ this.leafletType = "leaflet";
32
+ }
33
+ compare(other, ...exceptions) {
34
+ return super.compare(other, ...[
35
+ ...new Set([
36
+ exceptions,
37
+ "updatedAt",
38
+ "updatedBy",
39
+ "otherFilesContent",
40
+ "xmlFileContent",
41
+ ]).values(),
42
+ ]);
43
+ }
44
+ };
45
+ exports.Leaflet = Leaflet;
46
+ __decorate([
47
+ (0, core_1.pk)(),
48
+ (0, history_dec_js_1.historyDec)(),
49
+ (0, index_js_1.mirror)("mirror-collection", "PharmaledgerassocMSP"),
50
+ (0, decorators_private_js_1.audit)(Leaflet),
51
+ (0, db_decorators_1.composed)(["productCode", "batchNumber", "leafletType", "lang", "epiMarket"], ":", ["batchNumber", "epiMarket"]),
52
+ (0, decoration_1.description)("Unique identifier composed of product code, batch number, and language."),
53
+ __metadata("design:type", String)
54
+ ], Leaflet.prototype, "id", void 0);
55
+ __decorate([
56
+ (0, gtin_js_1.gtin)(),
57
+ (0, core_1.column)(),
58
+ (0, decorator_validation_1.required)(),
59
+ (0, db_decorators_1.readonly)(),
60
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
61
+ (0, decoration_1.description)("GTIN code of the product associated with this leaflet."),
62
+ (0, core_1.defaultQueryAttr)(),
63
+ __metadata("design:type", String)
64
+ ], Leaflet.prototype, "productCode", void 0);
65
+ __decorate([
66
+ (0, core_1.column)(),
67
+ (0, db_decorators_1.readonly)(),
68
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
69
+ (0, decoration_1.description)("Batch number linked to the product, if applicable."),
70
+ (0, core_1.defaultQueryAttr)(),
71
+ __metadata("design:type", String)
72
+ ], Leaflet.prototype, "batchNumber", void 0);
73
+ __decorate([
74
+ (0, core_1.column)(),
75
+ (0, decorator_validation_1.required)(),
76
+ (0, db_decorators_1.readonly)(),
77
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
78
+ (0, decoration_1.description)("Type category the leaflet belongs to."),
79
+ __metadata("design:type", String)
80
+ ], Leaflet.prototype, "leafletType", void 0);
81
+ __decorate([
82
+ (0, core_1.column)(),
83
+ (0, decorator_validation_1.required)(),
84
+ (0, db_decorators_1.readonly)(),
85
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
86
+ (0, decoration_1.description)("Language code of the leaflet (e.g., 'en', 'pt', 'es')."),
87
+ __metadata("design:type", String)
88
+ ], Leaflet.prototype, "lang", void 0);
89
+ __decorate([
90
+ (0, core_1.column)(),
91
+ (0, db_decorators_1.readonly)(),
92
+ __metadata("design:type", String)
93
+ ], Leaflet.prototype, "epiMarket", void 0);
94
+ __decorate([
95
+ (0, core_1.column)(),
96
+ (0, decorator_validation_1.required)(),
97
+ (0, decoration_1.description)("Main XML content of the electronic leaflet."),
98
+ (0, core_1.oneToOne)(() => OtherLeafletFile_js_1.OtherLeafletFile, { update: core_1.Cascade.CASCADE, delete: core_1.Cascade.CASCADE }, false),
99
+ (0, decoration_1.description)("file with the xml content of the leaflet"),
100
+ __metadata("design:type", Object)
101
+ ], Leaflet.prototype, "xmlFileContent", void 0);
102
+ __decorate([
103
+ (0, core_1.oneToMany)(() => OtherLeafletFile_js_1.OtherLeafletFile, { update: core_1.Cascade.CASCADE, delete: core_1.Cascade.CASCADE }, false),
104
+ (0, decoration_1.description)("List of additional files linked to the leaflet, such as PDFs or images."),
105
+ __metadata("design:type", Array)
106
+ ], Leaflet.prototype, "otherFilesContent", void 0);
107
+ __decorate([
108
+ (0, index_js_1.ownedBy)(),
109
+ (0, decoration_1.description)("the owner (msp) of the leaflet"),
110
+ __metadata("design:type", String)
111
+ ], Leaflet.prototype, "owner", void 0);
112
+ exports.Leaflet = Leaflet = __decorate([
113
+ (0, decoration_1.description)("Represents the ePI leaflet linked to a specific product, batch, and language."),
114
+ (0, decoration_1.uses)(index_js_1.FabricFlavour),
115
+ (0, core_1.table)("other_leaflet"),
116
+ (0, index_js_1.sharedData)((0, index_js_1.NamespaceCollection)("decaf-namespace")),
117
+ (0, decorator_validation_1.model)(),
118
+ __metadata("design:paramtypes", [Object])
119
+ ], Leaflet);
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3RoZXJMZWFmbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyYWN0L3RyYWNrZWRNb2RlbHMvT3RoZXJMZWFmbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUtBLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUNMLE9BQU8sRUFDUCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLGNBQWMsRUFDZCxFQUFFLEVBQ0YsS0FBSyxHQUNOLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQ0FBc0M7QUFDcEUsT0FBTyxFQUNMLGFBQWEsRUFDYixNQUFNLEVBQ04sbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxVQUFVLEdBQ1gsZ0NBQTJCO0FBQzVCLE9BQU8sRUFBRSxLQUFLLEVBQUUsMENBQXFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUNBQThCO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsNEJBQXVCO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSw4QkFBMkI7QUFTL0MsSUFBTSxPQUFPLEdBQWIsTUFBTSxPQUFRLFNBQVEsbUJBQW1CO0lBMEU5QyxZQUFZLEtBQXlCO1FBQ25DLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQXZDZixnQkFBVyxHQUFXLFNBQVMsQ0FBQztJQXdDaEMsQ0FBQztJQUVRLE9BQU8sQ0FDZCxLQUFRLEVBQ1IsR0FBRyxVQUF1QjtRQUUxQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQ2xCLEtBQVksRUFDWixHQUFJO1lBQ0YsR0FBRyxJQUFJLEdBQUcsQ0FBQztnQkFDVCxVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxtQkFBbUI7Z0JBQ25CLGdCQUFnQjthQUNqQixDQUFDLENBQUMsTUFBTSxFQUFFO1NBQ0YsQ0FDWixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7QUFsRkM7SUFaQyxFQUFFLEVBQUU7SUFDSixVQUFVLEVBQUU7SUFDWixNQUFNLENBQUMsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUM7SUFDbkQsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUNkLFFBQVEsQ0FDUCxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFDbEUsR0FBRyxFQUNILENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUM3QjtJQUNBLFdBQVcsQ0FDVix5RUFBeUUsQ0FDMUU7O21DQUNXO0FBU1o7SUFQQyxJQUFJLEVBQUU7SUFDTixNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDVixRQUFRLEVBQUU7SUFDVixLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxXQUFXLENBQUMsd0RBQXdELENBQUM7SUFDckUsZ0JBQWdCLEVBQUU7OzRDQUNFO0FBT3JCO0lBTEMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1YsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsV0FBVyxDQUFDLG9EQUFvRCxDQUFDO0lBQ2pFLGdCQUFnQixFQUFFOzs0Q0FDRTtBQU9yQjtJQUxDLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNWLFFBQVEsRUFBRTtJQUNWLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsQ0FBQyx1Q0FBdUMsQ0FBQzs7NENBQ3JCO0FBT2hDO0lBTEMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1YsUUFBUSxFQUFFO0lBQ1YsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsV0FBVyxDQUFDLHdEQUF3RCxDQUFDOztxQ0FDeEQ7QUFJZDtJQUZDLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTs7MENBQ1E7QUFXbkI7SUFUQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDVixXQUFXLENBQUMsNkNBQTZDLENBQUM7SUFDMUQsUUFBUSxDQUNQLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixFQUN0QixFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQ3BELEtBQUssQ0FDTjtJQUNBLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQzs7K0NBQ2I7QUFVM0M7SUFSQyxTQUFTLENBQ1IsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLEVBQ3RCLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFDcEQsS0FBSyxDQUNOO0lBQ0EsV0FBVyxDQUNWLHlFQUF5RSxDQUMxRTs7a0RBQ2lEO0FBSWxEO0lBRkMsT0FBTyxFQUFFO0lBQ1QsV0FBVyxDQUFDLGdDQUFnQyxDQUFDOztzQ0FDL0I7QUF4RUosT0FBTztJQVBuQixXQUFXLENBQ1YsK0VBQStFLENBQ2hGO0lBQ0EsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNuQixLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3RCLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELEtBQUssRUFBRTs7R0FDSyxPQUFPLENBK0ZuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBhcmlzb24sXG4gIE1vZGVsLFxuICB0eXBlIE1vZGVsQXJnLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBtb2RlbCwgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQge1xuICBDYXNjYWRlLFxuICBjb2x1bW4sXG4gIGRlZmF1bHRRdWVyeUF0dHIsXG4gIGluZGV4LFxuICBvbmVUb01hbnksXG4gIG9uZVRvT25lLFxuICBPcmRlckRpcmVjdGlvbixcbiAgcGssXG4gIHRhYmxlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IGNvbXBvc2VkLCByZWFkb25seSB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24sIHVzZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEJhc2VJZGVudGlmaWVkTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL0Jhc2VJZGVudGlmaWVkTW9kZWxcIjtcbmltcG9ydCB7XG4gIEZhYnJpY0ZsYXZvdXIsXG4gIG1pcnJvcixcbiAgTmFtZXNwYWNlQ29sbGVjdGlvbixcbiAgb3duZWRCeSxcbiAgc2hhcmVkRGF0YSxcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC9pbmRleFwiO1xuaW1wb3J0IHsgYXVkaXQgfSBmcm9tIFwiLi4vbW9kZWxzL2RlY29yYXRvcnMtcHJpdmF0ZVwiO1xuaW1wb3J0IHsgaGlzdG9yeURlYyB9IGZyb20gXCIuLi9tb2RlbHMvaGlzdG9yeS1kZWNcIjtcbmltcG9ydCB7IGd0aW4gfSBmcm9tIFwiLi4vbW9kZWxzL2d0aW5cIjtcbmltcG9ydCB7IE90aGVyTGVhZmxldEZpbGUgfSBmcm9tIFwiLi9PdGhlckxlYWZsZXRGaWxlXCI7XG5cbkBkZXNjcmlwdGlvbihcbiAgXCJSZXByZXNlbnRzIHRoZSBlUEkgbGVhZmxldCBsaW5rZWQgdG8gYSBzcGVjaWZpYyBwcm9kdWN0LCBiYXRjaCwgYW5kIGxhbmd1YWdlLlwiXG4pXG5AdXNlcyhGYWJyaWNGbGF2b3VyKVxuQHRhYmxlKFwib3RoZXJfbGVhZmxldFwiKVxuQHNoYXJlZERhdGEoTmFtZXNwYWNlQ29sbGVjdGlvbihcImRlY2FmLW5hbWVzcGFjZVwiKSlcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgTGVhZmxldCBleHRlbmRzIEJhc2VJZGVudGlmaWVkTW9kZWwge1xuICBAcGsoKVxuICBAaGlzdG9yeURlYygpXG4gIEBtaXJyb3IoXCJtaXJyb3ItY29sbGVjdGlvblwiLCBcIlBoYXJtYWxlZGdlcmFzc29jTVNQXCIpXG4gIEBhdWRpdChMZWFmbGV0KVxuICBAY29tcG9zZWQoXG4gICAgW1wicHJvZHVjdENvZGVcIiwgXCJiYXRjaE51bWJlclwiLCBcImxlYWZsZXRUeXBlXCIsIFwibGFuZ1wiLCBcImVwaU1hcmtldFwiXSxcbiAgICBcIjpcIixcbiAgICBbXCJiYXRjaE51bWJlclwiLCBcImVwaU1hcmtldFwiXVxuICApXG4gIEBkZXNjcmlwdGlvbihcbiAgICBcIlVuaXF1ZSBpZGVudGlmaWVyIGNvbXBvc2VkIG9mIHByb2R1Y3QgY29kZSwgYmF0Y2ggbnVtYmVyLCBhbmQgbGFuZ3VhZ2UuXCJcbiAgKVxuICBpZCE6IHN0cmluZztcblxuICBAZ3RpbigpXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICBAcmVhZG9ubHkoKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwiR1RJTiBjb2RlIG9mIHRoZSBwcm9kdWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGxlYWZsZXQuXCIpXG4gIEBkZWZhdWx0UXVlcnlBdHRyKClcbiAgcHJvZHVjdENvZGUhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZWFkb25seSgpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICBAZGVzY3JpcHRpb24oXCJCYXRjaCBudW1iZXIgbGlua2VkIHRvIHRoZSBwcm9kdWN0LCBpZiBhcHBsaWNhYmxlLlwiKVxuICBAZGVmYXVsdFF1ZXJ5QXR0cigpXG4gIGJhdGNoTnVtYmVyPzogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICBAcmVhZG9ubHkoKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwiVHlwZSBjYXRlZ29yeSB0aGUgbGVhZmxldCBiZWxvbmdzIHRvLlwiKVxuICBsZWFmbGV0VHlwZTogc3RyaW5nID0gXCJsZWFmbGV0XCI7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIEByZWFkb25seSgpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICBAZGVzY3JpcHRpb24oXCJMYW5ndWFnZSBjb2RlIG9mIHRoZSBsZWFmbGV0IChlLmcuLCAnZW4nLCAncHQnLCAnZXMnKS5cIilcbiAgbGFuZyE6IHN0cmluZzsgLy8gVE9ETyAtPiByb2xsYmFjayB0byBsYW5ndWFnZSBwcm9wZXJ0eVxuXG4gIEBjb2x1bW4oKVxuICBAcmVhZG9ubHkoKVxuICBlcGlNYXJrZXQhOiBzdHJpbmc7IC8vIFRPRE8gLT4gQ3JlYXRlIHZhbGlkYXRpb24gZGVjb3JhdG9yLiBDb3VudHJ5TWFya2V0IGlzIGEgQ09ORElUSU9OQUwgcHJvcGVydHkuIGNhbiBvbmx5IGV4aXN0IGZvciBwcm9kdWN0IG9ubHkuIG5vIGJhdGNoXG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIEBkZXNjcmlwdGlvbihcIk1haW4gWE1MIGNvbnRlbnQgb2YgdGhlIGVsZWN0cm9uaWMgbGVhZmxldC5cIilcbiAgQG9uZVRvT25lKFxuICAgICgpID0+IE90aGVyTGVhZmxldEZpbGUsXG4gICAgeyB1cGRhdGU6IENhc2NhZGUuQ0FTQ0FERSwgZGVsZXRlOiBDYXNjYWRlLkNBU0NBREUgfSxcbiAgICBmYWxzZVxuICApXG4gIEBkZXNjcmlwdGlvbihcImZpbGUgd2l0aCB0aGUgeG1sIGNvbnRlbnQgb2YgdGhlIGxlYWZsZXRcIilcbiAgeG1sRmlsZUNvbnRlbnQhOiBzdHJpbmcgfCBPdGhlckxlYWZsZXRGaWxlO1xuXG4gIEBvbmVUb01hbnkoXG4gICAgKCkgPT4gT3RoZXJMZWFmbGV0RmlsZSxcbiAgICB7IHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLCBkZWxldGU6IENhc2NhZGUuQ0FTQ0FERSB9LFxuICAgIGZhbHNlXG4gIClcbiAgQGRlc2NyaXB0aW9uKFxuICAgIFwiTGlzdCBvZiBhZGRpdGlvbmFsIGZpbGVzIGxpbmtlZCB0byB0aGUgbGVhZmxldCwgc3VjaCBhcyBQREZzIG9yIGltYWdlcy5cIlxuICApXG4gIG90aGVyRmlsZXNDb250ZW50ITogc3RyaW5nW10gfCBPdGhlckxlYWZsZXRGaWxlW107XG5cbiAgQG93bmVkQnkoKVxuICBAZGVzY3JpcHRpb24oXCJ0aGUgb3duZXIgKG1zcCkgb2YgdGhlIGxlYWZsZXRcIilcbiAgb3duZXIhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobW9kZWw/OiBNb2RlbEFyZzxMZWFmbGV0Pikge1xuICAgIHN1cGVyKG1vZGVsKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNvbXBhcmU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvdGhlcjogTSxcbiAgICAuLi5leGNlcHRpb25zOiAoa2V5b2YgTSlbXVxuICApOiBDb21wYXJpc29uPE0+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gc3VwZXIuY29tcGFyZTxNPihcbiAgICAgIG90aGVyIGFzIGFueSxcbiAgICAgIC4uLihbXG4gICAgICAgIC4uLm5ldyBTZXQoW1xuICAgICAgICAgIGV4Y2VwdGlvbnMsXG4gICAgICAgICAgXCJ1cGRhdGVkQXRcIixcbiAgICAgICAgICBcInVwZGF0ZWRCeVwiLFxuICAgICAgICAgIFwib3RoZXJGaWxlc0NvbnRlbnRcIixcbiAgICAgICAgICBcInhtbEZpbGVDb250ZW50XCIsXG4gICAgICAgIF0pLnZhbHVlcygpLFxuICAgICAgXSBhcyBhbnlbXSlcbiAgICApO1xuICB9XG59XG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3RoZXJMZWFmbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiT3RoZXJMZWFmbGV0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FB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QUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDNUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUVaLHN4UUFBc3hRIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIF9fbWV0YWRhdGEgPSAodGhpcyAmJiB0aGlzLl9fbWV0YWRhdGEpIHx8IGZ1bmN0aW9uIChrLCB2KSB7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGssIHYpO1xufTtcbmltcG9ydCB7IG1vZGVsLCByZXF1aXJlZCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENhc2NhZGUsIGNvbHVtbiwgZGVmYXVsdFF1ZXJ5QXR0ciwgaW5kZXgsIG9uZVRvTWFueSwgb25lVG9PbmUsIE9yZGVyRGlyZWN0aW9uLCBwaywgdGFibGUsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBjb21wb3NlZCwgcmVhZG9ubHkgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IGRlc2NyaXB0aW9uLCB1c2VzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBCYXNlSWRlbnRpZmllZE1vZGVsIH0gZnJvbSBcIi4vLi4vbW9kZWxzL0Jhc2VJZGVudGlmaWVkTW9kZWwuanNcIjtcbmltcG9ydCB7IEZhYnJpY0ZsYXZvdXIsIG1pcnJvciwgTmFtZXNwYWNlQ29sbGVjdGlvbiwgb3duZWRCeSwgc2hhcmVkRGF0YSwgfSBmcm9tIFwiLi8uLi8uLi9zaGFyZWQvaW5kZXguanNcIjtcbmltcG9ydCB7IGF1ZGl0IH0gZnJvbSBcIi4vLi4vbW9kZWxzL2RlY29yYXRvcnMtcHJpdmF0ZS5qc1wiO1xuaW1wb3J0IHsgaGlzdG9yeURlYyB9IGZyb20gXCIuLy4uL21vZGVscy9oaXN0b3J5LWRlYy5qc1wiO1xuaW1wb3J0IHsgZ3RpbiB9IGZyb20gXCIuLy4uL21vZGVscy9ndGluLmpzXCI7XG5pbXBvcnQgeyBPdGhlckxlYWZsZXRGaWxlIH0gZnJvbSBcIi4vT3RoZXJMZWFmbGV0RmlsZS5qc1wiO1xubGV0IExlYWZsZXQgPSBjbGFzcyBMZWFmbGV0IGV4dGVuZHMgQmFzZUlkZW50aWZpZWRNb2RlbCB7XG4gICAgY29uc3RydWN0b3IobW9kZWwpIHtcbiAgICAgICAgc3VwZXIobW9kZWwpO1xuICAgICAgICB0aGlzLmxlYWZsZXRUeXBlID0gXCJsZWFmbGV0XCI7XG4gICAgfVxuICAgIGNvbXBhcmUob3RoZXIsIC4uLmV4Y2VwdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmNvbXBhcmUob3RoZXIsIC4uLltcbiAgICAgICAgICAgIC4uLm5ldyBTZXQoW1xuICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnMsXG4gICAgICAgICAgICAgICAgXCJ1cGRhdGVkQXRcIixcbiAgICAgICAgICAgICAgICBcInVwZGF0ZWRCeVwiLFxuICAgICAgICAgICAgICAgIFwib3RoZXJGaWxlc0NvbnRlbnRcIixcbiAgICAgICAgICAgICAgICBcInhtbEZpbGVDb250ZW50XCIsXG4gICAgICAgICAgICBdKS52YWx1ZXMoKSxcbiAgICAgICAgXSk7XG4gICAgfVxufTtcbl9fZGVjb3JhdGUoW1xuICAgIHBrKCksXG4gICAgaGlzdG9yeURlYygpLFxuICAgIG1pcnJvcihcIm1pcnJvci1jb2xsZWN0aW9uXCIsIFwiUGhhcm1hbGVkZ2VyYXNzb2NNU1BcIiksXG4gICAgYXVkaXQoTGVhZmxldCksXG4gICAgY29tcG9zZWQoW1wicHJvZHVjdENvZGVcIiwgXCJiYXRjaE51bWJlclwiLCBcImxlYWZsZXRUeXBlXCIsIFwibGFuZ1wiLCBcImVwaU1hcmtldFwiXSwgXCI6XCIsIFtcImJhdGNoTnVtYmVyXCIsIFwiZXBpTWFya2V0XCJdKSxcbiAgICBkZXNjcmlwdGlvbihcIlVuaXF1ZSBpZGVudGlmaWVyIGNvbXBvc2VkIG9mIHByb2R1Y3QgY29kZSwgYmF0Y2ggbnVtYmVyLCBhbmQgbGFuZ3VhZ2UuXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBMZWFmbGV0LnByb3RvdHlwZSwgXCJpZFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgZ3RpbigpLFxuICAgIGNvbHVtbigpLFxuICAgIHJlcXVpcmVkKCksXG4gICAgcmVhZG9ubHkoKSxcbiAgICBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKSxcbiAgICBkZXNjcmlwdGlvbihcIkdUSU4gY29kZSBvZiB0aGUgcHJvZHVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBsZWFmbGV0LlwiKSxcbiAgICBkZWZhdWx0UXVlcnlBdHRyKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIExlYWZsZXQucHJvdG90eXBlLCBcInByb2R1Y3RDb2RlXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICByZWFkb25seSgpLFxuICAgIGluZGV4KFtPcmRlckRpcmVjdGlvbi5BU0MsIE9yZGVyRGlyZWN0aW9uLkRTQ10pLFxuICAgIGRlc2NyaXB0aW9uKFwiQmF0Y2ggbnVtYmVyIGxpbmtlZCB0byB0aGUgcHJvZHVjdCwgaWYgYXBwbGljYWJsZS5cIiksXG4gICAgZGVmYXVsdFF1ZXJ5QXR0cigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBMZWFmbGV0LnByb3RvdHlwZSwgXCJiYXRjaE51bWJlclwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKSxcbiAgICByZWFkb25seSgpLFxuICAgIGluZGV4KFtPcmRlckRpcmVjdGlvbi5BU0MsIE9yZGVyRGlyZWN0aW9uLkRTQ10pLFxuICAgIGRlc2NyaXB0aW9uKFwiVHlwZSBjYXRlZ29yeSB0aGUgbGVhZmxldCBiZWxvbmdzIHRvLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgTGVhZmxldC5wcm90b3R5cGUsIFwibGVhZmxldFR5cGVcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIGNvbHVtbigpLFxuICAgIHJlcXVpcmVkKCksXG4gICAgcmVhZG9ubHkoKSxcbiAgICBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKSxcbiAgICBkZXNjcmlwdGlvbihcIkxhbmd1YWdlIGNvZGUgb2YgdGhlIGxlYWZsZXQgKGUuZy4sICdlbicsICdwdCcsICdlcycpLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgTGVhZmxldC5wcm90b3R5cGUsIFwibGFuZ1wiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVhZG9ubHkoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgTGVhZmxldC5wcm90b3R5cGUsIFwiZXBpTWFya2V0XCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICByZXF1aXJlZCgpLFxuICAgIGRlc2NyaXB0aW9uKFwiTWFpbiBYTUwgY29udGVudCBvZiB0aGUgZWxlY3Ryb25pYyBsZWFmbGV0LlwiKSxcbiAgICBvbmVUb09uZSgoKSA9PiBPdGhlckxlYWZsZXRGaWxlLCB7IHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLCBkZWxldGU6IENhc2NhZGUuQ0FTQ0FERSB9LCBmYWxzZSksXG4gICAgZGVzY3JpcHRpb24oXCJmaWxlIHdpdGggdGhlIHhtbCBjb250ZW50IG9mIHRoZSBsZWFmbGV0XCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBPYmplY3QpXG5dLCBMZWFmbGV0LnByb3RvdHlwZSwgXCJ4bWxGaWxlQ29udGVudFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgb25lVG9NYW55KCgpID0+IE90aGVyTGVhZmxldEZpbGUsIHsgdXBkYXRlOiBDYXNjYWRlLkNBU0NBREUsIGRlbGV0ZTogQ2FzY2FkZS5DQVNDQURFIH0sIGZhbHNlKSxcbiAgICBkZXNjcmlwdGlvbihcIkxpc3Qgb2YgYWRkaXRpb25hbCBmaWxlcyBsaW5rZWQgdG8gdGhlIGxlYWZsZXQsIHN1Y2ggYXMgUERGcyBvciBpbWFnZXMuXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBBcnJheSlcbl0sIExlYWZsZXQucHJvdG90eXBlLCBcIm90aGVyRmlsZXNDb250ZW50XCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBvd25lZEJ5KCksXG4gICAgZGVzY3JpcHRpb24oXCJ0aGUgb3duZXIgKG1zcCkgb2YgdGhlIGxlYWZsZXRcIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIExlYWZsZXQucHJvdG90eXBlLCBcIm93bmVyXCIsIHZvaWQgMCk7XG5MZWFmbGV0ID0gX19kZWNvcmF0ZShbXG4gICAgZGVzY3JpcHRpb24oXCJSZXByZXNlbnRzIHRoZSBlUEkgbGVhZmxldCBsaW5rZWQgdG8gYSBzcGVjaWZpYyBwcm9kdWN0LCBiYXRjaCwgYW5kIGxhbmd1YWdlLlwiKSxcbiAgICB1c2VzKEZhYnJpY0ZsYXZvdXIpLFxuICAgIHRhYmxlKFwib3RoZXJfbGVhZmxldFwiKSxcbiAgICBzaGFyZWREYXRhKE5hbWVzcGFjZUNvbGxlY3Rpb24oXCJkZWNhZi1uYW1lc3BhY2VcIikpLFxuICAgIG1vZGVsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3RdKVxuXSwgTGVhZmxldCk7XG5leHBvcnQgeyBMZWFmbGV0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUM1JvWlhKTVpXRm1iR1YwTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwyTnZiblJ5WVdOMEwzUnlZV05yWldSTmIyUmxiSE12VDNSb1pYSk1aV0ZtYkdWMExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096dEJRVXRCTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1VVRkJVU3hGUVVGRkxFMUJRVTBzWjBOQlFXZERMRU5CUVVNN1FVRkRha1VzVDBGQlR5eEZRVU5NTEU5QlFVOHNSVUZEVUN4TlFVRk5MRVZCUTA0c1owSkJRV2RDTEVWQlEyaENMRXRCUVVzc1JVRkRUQ3hUUVVGVExFVkJRMVFzVVVGQlVTeEZRVU5TTEdOQlFXTXNSVUZEWkN4RlFVRkZMRVZCUTBZc1MwRkJTeXhIUVVOT0xFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRlRUlzVDBGQlR5eEZRVUZGTEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVTTNSQ3hQUVVGUExFVkJRVVVzVjBGQlZ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TlFVRk5MSE5DUVVGelFpeERRVUZETzBGQlEzcEVMRTlCUVU4c1JVRkJSU3h0UWtGQmJVSXNSVUZCUlN3eVEwRkJjME03UVVGRGNFVXNUMEZCVHl4RlFVTk1MR0ZCUVdFc1JVRkRZaXhOUVVGTkxFVkJRMDRzYlVKQlFXMUNMRVZCUTI1Q0xFOUJRVThzUlVGRFVDeFZRVUZWTEVkQlExZ3NaME5CUVRKQ08wRkJRelZDTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc01FTkJRWEZETzBGQlEzSkVMRTlCUVU4c1JVRkJSU3hWUVVGVkxFVkJRVVVzYlVOQlFUaENPMEZCUTI1RUxFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNORUpCUVhWQ08wRkJRM1JETEU5QlFVOHNSVUZCUlN4blFrRkJaMElzUlVGQlJTdzRRa0ZCTWtJN1FVRlRMME1zU1VGQlRTeFBRVUZQTEVkQlFXSXNUVUZCVFN4UFFVRlJMRk5CUVZFc2JVSkJRVzFDTzBsQk1FVTVReXhaUVVGWkxFdEJRWGxDTzFGQlEyNURMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRWFpEWml4blFrRkJWeXhIUVVGWExGTkJRVk1zUTBGQlF6dEpRWGREYUVNc1EwRkJRenRKUVVWUkxFOUJRVThzUTBGRFpDeExRVUZSTEVWQlExSXNSMEZCUnl4VlFVRjFRanRSUVVVeFFpeFBRVUZQTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTJ4Q0xFdEJRVmtzUlVGRFdpeEhRVUZKTzFsQlEwWXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJRenRuUWtGRFZDeFZRVUZWTzJkQ1FVTldMRmRCUVZjN1owSkJRMWdzVjBGQlZ6dG5Ra0ZEV0N4dFFrRkJiVUk3WjBKQlEyNUNMR2RDUVVGblFqdGhRVU5xUWl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRk8xTkJRMFlzUTBGRFdpeERRVUZETzBsQlEwb3NRMEZCUXp0RFFVTkdMRU5CUVVFN1FVRnNSa003U1VGYVF5eEZRVUZGTEVWQlFVVTdTVUZEU2l4VlFVRlZMRVZCUVVVN1NVRkRXaXhOUVVGTkxFTkJRVU1zYlVKQlFXMUNMRVZCUVVVc2MwSkJRWE5DTEVOQlFVTTdTVUZEYmtRc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF6dEpRVU5rTEZGQlFWRXNRMEZEVUN4RFFVRkRMR0ZCUVdFc1JVRkJSU3hoUVVGaExFVkJRVVVzWVVGQllTeEZRVUZGTEUxQlFVMHNSVUZCUlN4WFFVRlhMRU5CUVVNc1JVRkRiRVVzUjBGQlJ5eEZRVU5JTEVOQlFVTXNZVUZCWVN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVNM1FqdEpRVU5CTEZkQlFWY3NRMEZEVml4NVJVRkJlVVVzUTBGRE1VVTdPMjFEUVVOWE8wRkJVMW83U1VGUVF5eEpRVUZKTEVWQlFVVTdTVUZEVGl4TlFVRk5MRVZCUVVVN1NVRkRVaXhSUVVGUkxFVkJRVVU3U1VGRFZpeFJRVUZSTEVWQlFVVTdTVUZEVml4TFFVRkxMRU5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zUjBGQlJ5eEZRVUZGTEdOQlFXTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVNdlF5eFhRVUZYTEVOQlFVTXNkMFJCUVhkRUxFTkJRVU03U1VGRGNrVXNaMEpCUVdkQ0xFVkJRVVU3T3pSRFFVTkZPMEZCVDNKQ08wbEJURU1zVFVGQlRTeEZRVUZGTzBsQlExSXNVVUZCVVN4RlFVRkZPMGxCUTFZc1MwRkJTeXhEUVVGRExFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVY3NSVUZCUlN4alFVRmpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGREwwTXNWMEZCVnl4RFFVRkRMRzlFUVVGdlJDeERRVUZETzBsQlEycEZMR2RDUVVGblFpeEZRVUZGT3pzMFEwRkRSVHRCUVU5eVFqdEpRVXhETEUxQlFVMHNSVUZCUlR0SlFVTlNMRkZCUVZFc1JVRkJSVHRKUVVOV0xGRkJRVkVzUlVGQlJUdEpRVU5XTEV0QlFVc3NRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhIUVVGSExFVkJRVVVzWTBGQll5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXk5RExGZEJRVmNzUTBGQlF5eDFRMEZCZFVNc1EwRkJRenM3TkVOQlEzSkNPMEZCVDJoRE8wbEJURU1zVFVGQlRTeEZRVUZGTzBsQlExSXNVVUZCVVN4RlFVRkZPMGxCUTFZc1VVRkJVU3hGUVVGRk8wbEJRMVlzUzBGQlN5eERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETDBNc1YwRkJWeXhEUVVGRExIZEVRVUYzUkN4RFFVRkRPenR4UTBGRGVFUTdRVUZKWkR0SlFVWkRMRTFCUVUwc1JVRkJSVHRKUVVOU0xGRkJRVkVzUlVGQlJUczdNRU5CUTFFN1FVRlhia0k3U1VGVVF5eE5RVUZOTEVWQlFVVTdTVUZEVWl4UlFVRlJMRVZCUVVVN1NVRkRWaXhYUVVGWExFTkJRVU1zTmtOQlFUWkRMRU5CUVVNN1NVRkRNVVFzVVVGQlVTeERRVU5RTEVkQlFVY3NSVUZCUlN4RFFVRkRMR2RDUVVGblFpeEZRVU4wUWl4RlFVRkZMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRM0JFTEV0QlFVc3NRMEZEVGp0SlFVTkJMRmRCUVZjc1EwRkJReXd3UTBGQk1FTXNRMEZCUXpzN0swTkJRMkk3UVVGVk0wTTdTVUZTUXl4VFFVRlRMRU5CUTFJc1IwRkJSeXhGUVVGRkxFTkJRVU1zWjBKQlFXZENMRVZCUTNSQ0xFVkJRVVVzVFVGQlRTeEZRVUZGTEU5QlFVOHNRMEZCUXl4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZEY0VRc1MwRkJTeXhEUVVOT08wbEJRMEVzVjBGQlZ5eERRVU5XTEhsRlFVRjVSU3hEUVVNeFJUczdhMFJCUTJsRU8wRkJTV3hFTzBsQlJrTXNUMEZCVHl4RlFVRkZPMGxCUTFRc1YwRkJWeXhEUVVGRExHZERRVUZuUXl4RFFVRkRPenR6UTBGREwwSTdRVUY0UlVvc1QwRkJUenRKUVZCdVFpeFhRVUZYTEVOQlExWXNLMFZCUVN0RkxFTkJRMmhHTzBsQlEwRXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJRenRKUVVOdVFpeExRVUZMTEVOQlFVTXNaVUZCWlN4RFFVRkRPMGxCUTNSQ0xGVkJRVlVzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMGxCUTJ4RUxFdEJRVXNzUlVGQlJUczdSMEZEU3l4UFFVRlBMRU5CSzBadVFpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdYRzRnSUVOdmJYQmhjbWx6YjI0c1hHNGdJRTF2WkdWc0xGeHVJQ0IwZVhCbElFMXZaR1ZzUVhKbkxGeHVmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnZjaTEyWVd4cFpHRjBhVzl1WENJN1hHNXBiWEJ2Y25RZ2V5QnRiMlJsYkN3Z2NtVnhkV2x5WldRZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmxZMjl5WVhSdmNpMTJZV3hwWkdGMGFXOXVYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkRZWE5qWVdSbExGeHVJQ0JqYjJ4MWJXNHNYRzRnSUdSbFptRjFiSFJSZFdWeWVVRjBkSElzWEc0Z0lHbHVaR1Y0TEZ4dUlDQnZibVZVYjAxaGJua3NYRzRnSUc5dVpWUnZUMjVsTEZ4dUlDQlBjbVJsY2tScGNtVmpkR2x2Yml4Y2JpQWdjR3NzWEc0Z0lIUmhZbXhsTEZ4dWZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lHTnZiWEJ2YzJWa0xDQnlaV0ZrYjI1c2VTQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR0l0WkdWamIzSmhkRzl5YzF3aU8xeHVhVzF3YjNKMElIc2daR1Z6WTNKcGNIUnBiMjRzSUhWelpYTWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFSmhjMlZKWkdWdWRHbG1hV1ZrVFc5a1pXd2dmU0JtY205dElGd2lMaTR2Ylc5a1pXeHpMMEpoYzJWSlpHVnVkR2xtYVdWa1RXOWtaV3hjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJRVpoWW5KcFkwWnNZWFp2ZFhJc1hHNGdJRzFwY25KdmNpeGNiaUFnVG1GdFpYTndZV05sUTI5c2JHVmpkR2x2Yml4Y2JpQWdiM2R1WldSQ2VTeGNiaUFnYzJoaGNtVmtSR0YwWVN4Y2JuMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlwYm1SbGVGd2lPMXh1YVcxd2IzSjBJSHNnWVhWa2FYUWdmU0JtY205dElGd2lMaTR2Ylc5a1pXeHpMMlJsWTI5eVlYUnZjbk10Y0hKcGRtRjBaVndpTzF4dWFXMXdiM0owSUhzZ2FHbHpkRzl5ZVVSbFl5QjlJR1p5YjIwZ1hDSXVMaTl0YjJSbGJITXZhR2x6ZEc5eWVTMWtaV05jSWp0Y2JtbHRjRzl5ZENCN0lHZDBhVzRnZlNCbWNtOXRJRndpTGk0dmJXOWtaV3h6TDJkMGFXNWNJanRjYm1sdGNHOXlkQ0I3SUU5MGFHVnlUR1ZoWm14bGRFWnBiR1VnZlNCbWNtOXRJRndpTGk5UGRHaGxja3hsWVdac1pYUkdhV3hsWENJN1hHNWNia0JrWlhOamNtbHdkR2x2YmloY2JpQWdYQ0pTWlhCeVpYTmxiblJ6SUhSb1pTQmxVRWtnYkdWaFpteGxkQ0JzYVc1clpXUWdkRzhnWVNCemNHVmphV1pwWXlCd2NtOWtkV04wTENCaVlYUmphQ3dnWVc1a0lHeGhibWQxWVdkbExsd2lYRzRwWEc1QWRYTmxjeWhHWVdKeWFXTkdiR0YyYjNWeUtWeHVRSFJoWW14bEtGd2liM1JvWlhKZmJHVmhabXhsZEZ3aUtWeHVRSE5vWVhKbFpFUmhkR0VvVG1GdFpYTndZV05sUTI5c2JHVmpkR2x2YmloY0ltUmxZMkZtTFc1aGJXVnpjR0ZqWlZ3aUtTbGNia0J0YjJSbGJDZ3BYRzVsZUhCdmNuUWdZMnhoYzNNZ1RHVmhabXhsZENCbGVIUmxibVJ6SUVKaGMyVkpaR1Z1ZEdsbWFXVmtUVzlrWld3Z2UxeHVJQ0JBY0dzb0tWeHVJQ0JBYUdsemRHOXllVVJsWXlncFhHNGdJRUJ0YVhKeWIzSW9YQ0p0YVhKeWIzSXRZMjlzYkdWamRHbHZibHdpTENCY0lsQm9ZWEp0WVd4bFpHZGxjbUZ6YzI5alRWTlFYQ0lwWEc0Z0lFQmhkV1JwZENoTVpXRm1iR1YwS1Z4dUlDQkFZMjl0Y0c5elpXUW9YRzRnSUNBZ1cxd2ljSEp2WkhWamRFTnZaR1ZjSWl3Z1hDSmlZWFJqYUU1MWJXSmxjbHdpTENCY0lteGxZV1pzWlhSVWVYQmxYQ0lzSUZ3aWJHRnVaMXdpTENCY0ltVndhVTFoY210bGRGd2lYU3hjYmlBZ0lDQmNJanBjSWl4Y2JpQWdJQ0JiWENKaVlYUmphRTUxYldKbGNsd2lMQ0JjSW1Wd2FVMWhjbXRsZEZ3aVhWeHVJQ0FwWEc0Z0lFQmtaWE5qY21sd2RHbHZiaWhjYmlBZ0lDQmNJbFZ1YVhGMVpTQnBaR1Z1ZEdsbWFXVnlJR052YlhCdmMyVmtJRzltSUhCeWIyUjFZM1FnWTI5a1pTd2dZbUYwWTJnZ2JuVnRZbVZ5TENCaGJtUWdiR0Z1WjNWaFoyVXVYQ0pjYmlBZ0tWeHVJQ0JwWkNFNklITjBjbWx1Wnp0Y2JseHVJQ0JBWjNScGJpZ3BYRzRnSUVCamIyeDFiVzRvS1Z4dUlDQkFjbVZ4ZFdseVpXUW9LVnh1SUNCQWNtVmhaRzl1Ykhrb0tWeHVJQ0JBYVc1a1pYZ29XMDl5WkdWeVJHbHlaV04wYVc5dUxrRlRReXdnVDNKa1pYSkVhWEpsWTNScGIyNHVSRk5EWFNsY2JpQWdRR1JsYzJOeWFYQjBhVzl1S0Z3aVIxUkpUaUJqYjJSbElHOW1JSFJvWlNCd2NtOWtkV04wSUdGemMyOWphV0YwWldRZ2QybDBhQ0IwYUdseklHeGxZV1pzWlhRdVhDSXBYRzRnSUVCa1pXWmhkV3gwVVhWbGNubEJkSFJ5S0NsY2JpQWdjSEp2WkhWamRFTnZaR1VoT2lCemRISnBibWM3WEc1Y2JpQWdRR052YkhWdGJpZ3BYRzRnSUVCeVpXRmtiMjVzZVNncFhHNGdJRUJwYm1SbGVDaGJUM0prWlhKRWFYSmxZM1JwYjI0dVFWTkRMQ0JQY21SbGNrUnBjbVZqZEdsdmJpNUVVME5kS1Z4dUlDQkFaR1Z6WTNKcGNIUnBiMjRvWENKQ1lYUmphQ0J1ZFcxaVpYSWdiR2x1YTJWa0lIUnZJSFJvWlNCd2NtOWtkV04wTENCcFppQmhjSEJzYVdOaFlteGxMbHdpS1Z4dUlDQkFaR1ZtWVhWc2RGRjFaWEo1UVhSMGNpZ3BYRzRnSUdKaGRHTm9UblZ0WW1WeVB6b2djM1J5YVc1bk8xeHVYRzRnSUVCamIyeDFiVzRvS1Z4dUlDQkFjbVZ4ZFdseVpXUW9LVnh1SUNCQWNtVmhaRzl1Ykhrb0tWeHVJQ0JBYVc1a1pYZ29XMDl5WkdWeVJHbHlaV04wYVc5dUxrRlRReXdnVDNKa1pYSkVhWEpsWTNScGIyNHVSRk5EWFNsY2JpQWdRR1JsYzJOeWFYQjBhVzl1S0Z3aVZIbHdaU0JqWVhSbFoyOXllU0IwYUdVZ2JHVmhabXhsZENCaVpXeHZibWR6SUhSdkxsd2lLVnh1SUNCc1pXRm1iR1YwVkhsd1pUb2djM1J5YVc1bklEMGdYQ0pzWldGbWJHVjBYQ0k3WEc1Y2JpQWdRR052YkhWdGJpZ3BYRzRnSUVCeVpYRjFhWEpsWkNncFhHNGdJRUJ5WldGa2IyNXNlU2dwWEc0Z0lFQnBibVJsZUNoYlQzSmtaWEpFYVhKbFkzUnBiMjR1UVZORExDQlBjbVJsY2tScGNtVmpkR2x2Ymk1RVUwTmRLVnh1SUNCQVpHVnpZM0pwY0hScGIyNG9YQ0pNWVc1bmRXRm5aU0JqYjJSbElHOW1JSFJvWlNCc1pXRm1iR1YwSUNobExtY3VMQ0FuWlc0bkxDQW5jSFFuTENBblpYTW5LUzVjSWlsY2JpQWdiR0Z1WnlFNklITjBjbWx1WnpzZ0x5OGdWRTlFVHlBdFBpQnliMnhzWW1GamF5QjBieUJzWVc1bmRXRm5aU0J3Y205d1pYSjBlVnh1WEc0Z0lFQmpiMngxYlc0b0tWeHVJQ0JBY21WaFpHOXViSGtvS1Z4dUlDQmxjR2xOWVhKclpYUWhPaUJ6ZEhKcGJtYzdJQzh2SUZSUFJFOGdMVDRnUTNKbFlYUmxJSFpoYkdsa1lYUnBiMjRnWkdWamIzSmhkRzl5TGlCRGIzVnVkSEo1VFdGeWEyVjBJR2x6SUdFZ1EwOU9SRWxVU1U5T1FVd2djSEp2Y0dWeWRIa3VJR05oYmlCdmJteDVJR1Y0YVhOMElHWnZjaUJ3Y205a2RXTjBJRzl1YkhrdUlHNXZJR0poZEdOb1hHNWNiaUFnUUdOdmJIVnRiaWdwWEc0Z0lFQnlaWEYxYVhKbFpDZ3BYRzRnSUVCa1pYTmpjbWx3ZEdsdmJpaGNJazFoYVc0Z1dFMU1JR052Ym5SbGJuUWdiMllnZEdobElHVnNaV04wY205dWFXTWdiR1ZoWm14bGRDNWNJaWxjYmlBZ1FHOXVaVlJ2VDI1bEtGeHVJQ0FnSUNncElEMCtJRTkwYUdWeVRHVmhabXhsZEVacGJHVXNYRzRnSUNBZ2V5QjFjR1JoZEdVNklFTmhjMk5oWkdVdVEwRlRRMEZFUlN3Z1pHVnNaWFJsT2lCRFlYTmpZV1JsTGtOQlUwTkJSRVVnZlN4Y2JpQWdJQ0JtWVd4elpWeHVJQ0FwWEc0Z0lFQmtaWE5qY21sd2RHbHZiaWhjSW1acGJHVWdkMmwwYUNCMGFHVWdlRzFzSUdOdmJuUmxiblFnYjJZZ2RHaGxJR3hsWVdac1pYUmNJaWxjYmlBZ2VHMXNSbWxzWlVOdmJuUmxiblFoT2lCemRISnBibWNnZkNCUGRHaGxja3hsWVdac1pYUkdhV3hsTzF4dVhHNGdJRUJ2Ym1WVWIwMWhibmtvWEc0Z0lDQWdLQ2tnUFQ0Z1QzUm9aWEpNWldGbWJHVjBSbWxzWlN4Y2JpQWdJQ0I3SUhWd1pHRjBaVG9nUTJGelkyRmtaUzVEUVZORFFVUkZMQ0JrWld4bGRHVTZJRU5oYzJOaFpHVXVRMEZUUTBGRVJTQjlMRnh1SUNBZ0lHWmhiSE5sWEc0Z0lDbGNiaUFnUUdSbGMyTnlhWEIwYVc5dUtGeHVJQ0FnSUZ3aVRHbHpkQ0J2WmlCaFpHUnBkR2x2Ym1Gc0lHWnBiR1Z6SUd4cGJtdGxaQ0IwYnlCMGFHVWdiR1ZoWm14bGRDd2djM1ZqYUNCaGN5QlFSRVp6SUc5eUlHbHRZV2RsY3k1Y0lseHVJQ0FwWEc0Z0lHOTBhR1Z5Um1sc1pYTkRiMjUwWlc1MElUb2djM1J5YVc1blcxMGdmQ0JQZEdobGNreGxZV1pzWlhSR2FXeGxXMTA3WEc1Y2JpQWdRRzkzYm1Wa1Fua29LVnh1SUNCQVpHVnpZM0pwY0hScGIyNG9YQ0owYUdVZ2IzZHVaWElnS0cxemNDa2diMllnZEdobElHeGxZV1pzWlhSY0lpbGNiaUFnYjNkdVpYSWhPaUJ6ZEhKcGJtYzdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iVzlrWld3L09pQk5iMlJsYkVGeVp6eE1aV0ZtYkdWMFBpa2dlMXh1SUNBZ0lITjFjR1Z5S0cxdlpHVnNLVHRjYmlBZ2ZWeHVYRzRnSUc5MlpYSnlhV1JsSUdOdmJYQmhjbVU4VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ0lDQnZkR2hsY2pvZ1RTeGNiaUFnSUNBdUxpNWxlR05sY0hScGIyNXpPaUFvYTJWNWIyWWdUU2xiWFZ4dUlDQXBPaUJEYjIxd1lYSnBjMjl1UEUwK0lId2dkVzVrWldacGJtVmtJSHRjYmlBZ0lDQnlaWFIxY200Z2MzVndaWEl1WTI5dGNHRnlaVHhOUGloY2JpQWdJQ0FnSUc5MGFHVnlJR0Z6SUdGdWVTeGNiaUFnSUNBZ0lDNHVMaWhiWEc0Z0lDQWdJQ0FnSUM0dUxtNWxkeUJUWlhRb1cxeHVJQ0FnSUNBZ0lDQWdJR1Y0WTJWd2RHbHZibk1zWEc0Z0lDQWdJQ0FnSUNBZ1hDSjFjR1JoZEdWa1FYUmNJaXhjYmlBZ0lDQWdJQ0FnSUNCY0luVndaR0YwWldSQ2VWd2lMRnh1SUNBZ0lDQWdJQ0FnSUZ3aWIzUm9aWEpHYVd4bGMwTnZiblJsYm5SY0lpeGNiaUFnSUNBZ0lDQWdJQ0JjSW5odGJFWnBiR1ZEYjI1MFpXNTBYQ0lzWEc0Z0lDQWdJQ0FnSUYwcExuWmhiSFZsY3lncExGeHVJQ0FnSUNBZ1hTQmhjeUJoYm5sYlhTbGNiaUFnSUNBcE8xeHVJQ0I5WEc1OVhHNGlYWDA9Il19
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OtherLeafletFile = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
19
+ const core_1 = require("@decaf-ts/core");
20
+ const decoration_1 = require("@decaf-ts/decoration");
21
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
22
+ const BaseIdentifiedModel_js_1 = require("./../models/BaseIdentifiedModel.cjs");
23
+ const index_js_1 = require("./../../shared/index.cjs");
24
+ let OtherLeafletFile = class OtherLeafletFile extends BaseIdentifiedModel_js_1.BaseIdentifiedModel {
25
+ constructor(model) {
26
+ super(model);
27
+ }
28
+ };
29
+ exports.OtherLeafletFile = OtherLeafletFile;
30
+ __decorate([
31
+ (0, core_1.pk)(),
32
+ (0, index_js_1.mirror)("mirror-collection", "PharmaledgerassocMSP"),
33
+ (0, db_decorators_1.composed)(["leafletId", "fileName"], ":"),
34
+ (0, decoration_1.description)("Unique identifier of the leaflet file."),
35
+ __metadata("design:type", String)
36
+ ], OtherLeafletFile.prototype, "id", void 0);
37
+ __decorate([
38
+ (0, core_1.column)(),
39
+ (0, decorator_validation_1.required)(),
40
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
41
+ (0, decoration_1.description)("Identifier of the leaflet this file belongs to."),
42
+ __metadata("design:type", String)
43
+ ], OtherLeafletFile.prototype, "leafletId", void 0);
44
+ __decorate([
45
+ (0, core_1.column)(),
46
+ (0, decorator_validation_1.required)(),
47
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
48
+ (0, decoration_1.description)("Name of the file, including its extension."),
49
+ __metadata("design:type", String)
50
+ ], OtherLeafletFile.prototype, "fileName", void 0);
51
+ __decorate([
52
+ (0, core_1.column)(),
53
+ (0, decorator_validation_1.required)(),
54
+ (0, decoration_1.description)("Base64-encoded content of the file."),
55
+ __metadata("design:type", String)
56
+ ], OtherLeafletFile.prototype, "fileContent", void 0);
57
+ __decorate([
58
+ (0, index_js_1.ownedBy)(),
59
+ (0, decoration_1.description)("the owner (msp) of the leaflet"),
60
+ __metadata("design:type", String)
61
+ ], OtherLeafletFile.prototype, "owner", void 0);
62
+ exports.OtherLeafletFile = OtherLeafletFile = __decorate([
63
+ (0, decoration_1.description)("Represents an additional file associated with a leaflet, such as a PDF or image."),
64
+ (0, decoration_1.uses)(index_js_1.FabricFlavour),
65
+ (0, core_1.table)("other_leaflet_file"),
66
+ (0, index_js_1.sharedData)((0, index_js_1.NamespaceCollection)("decaf-namespace")),
67
+ (0, decorator_validation_1.model)(),
68
+ __metadata("design:paramtypes", [Object])
69
+ ], OtherLeafletFile);
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3RoZXJMZWFmbGV0RmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmFjdC90cmFja2VkTW9kZWxzL090aGVyTGVhZmxldEZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQ0FBc0M7QUFDcEUsT0FBTyxFQUNMLGFBQWEsRUFDYixNQUFNLEVBQ04sbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxVQUFVLEdBQ1gsZ0NBQTJCO0FBU3JCLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWlCLFNBQVEsbUJBQW1CO0lBNEJ2RCxZQUFZLEtBQWtDO1FBQzVDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7Q0FDRixDQUFBO0FBMUJDO0lBSkMsRUFBRSxFQUFFO0lBQ0osTUFBTSxDQUFDLG1CQUFtQixFQUFFLHNCQUFzQixDQUFDO0lBQ25ELFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDeEMsV0FBVyxDQUFDLHdDQUF3QyxDQUFDOzs0Q0FDMUM7QUFNWjtJQUpDLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNWLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsQ0FBQyxpREFBaUQsQ0FBQzs7bURBQzVDO0FBTW5CO0lBSkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1YsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsV0FBVyxDQUFDLDRDQUE0QyxDQUFDOztrREFDeEM7QUFLbEI7SUFIQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDVixXQUFXLENBQUMscUNBQXFDLENBQUM7O3FEQUM5QjtBQUlyQjtJQUZDLE9BQU8sRUFBRTtJQUNULFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQzs7K0NBQy9CO0FBMUJKLGdCQUFnQjtJQVA1QixXQUFXLENBQ1Ysa0ZBQWtGLENBQ25GO0lBQ0EsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNuQixLQUFLLENBQUMsb0JBQW9CLENBQUM7SUFDM0IsVUFBVSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsS0FBSyxFQUFFOztHQUNLLGdCQUFnQixDQStCNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1vZGVsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgbW9kZWwsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgY29sdW1uLCBpbmRleCwgT3JkZXJEaXJlY3Rpb24sIHBrLCB0YWJsZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24sIHVzZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IGNvbXBvc2VkIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBCYXNlSWRlbnRpZmllZE1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9CYXNlSWRlbnRpZmllZE1vZGVsXCI7XG5pbXBvcnQge1xuICBGYWJyaWNGbGF2b3VyLFxuICBtaXJyb3IsXG4gIE5hbWVzcGFjZUNvbGxlY3Rpb24sXG4gIG93bmVkQnksXG4gIHNoYXJlZERhdGEsXG59IGZyb20gXCIuLi8uLi9zaGFyZWQvaW5kZXhcIjtcblxuQGRlc2NyaXB0aW9uKFxuICBcIlJlcHJlc2VudHMgYW4gYWRkaXRpb25hbCBmaWxlIGFzc29jaWF0ZWQgd2l0aCBhIGxlYWZsZXQsIHN1Y2ggYXMgYSBQREYgb3IgaW1hZ2UuXCJcbilcbkB1c2VzKEZhYnJpY0ZsYXZvdXIpXG5AdGFibGUoXCJvdGhlcl9sZWFmbGV0X2ZpbGVcIilcbkBzaGFyZWREYXRhKE5hbWVzcGFjZUNvbGxlY3Rpb24oXCJkZWNhZi1uYW1lc3BhY2VcIikpXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIE90aGVyTGVhZmxldEZpbGUgZXh0ZW5kcyBCYXNlSWRlbnRpZmllZE1vZGVsIHtcbiAgQHBrKClcbiAgQG1pcnJvcihcIm1pcnJvci1jb2xsZWN0aW9uXCIsIFwiUGhhcm1hbGVkZ2VyYXNzb2NNU1BcIilcbiAgQGNvbXBvc2VkKFtcImxlYWZsZXRJZFwiLCBcImZpbGVOYW1lXCJdLCBcIjpcIilcbiAgQGRlc2NyaXB0aW9uKFwiVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGxlYWZsZXQgZmlsZS5cIilcbiAgaWQhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICBAZGVzY3JpcHRpb24oXCJJZGVudGlmaWVyIG9mIHRoZSBsZWFmbGV0IHRoaXMgZmlsZSBiZWxvbmdzIHRvLlwiKVxuICBsZWFmbGV0SWQhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICBAZGVzY3JpcHRpb24oXCJOYW1lIG9mIHRoZSBmaWxlLCBpbmNsdWRpbmcgaXRzIGV4dGVuc2lvbi5cIilcbiAgZmlsZU5hbWUhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIEBkZXNjcmlwdGlvbihcIkJhc2U2NC1lbmNvZGVkIGNvbnRlbnQgb2YgdGhlIGZpbGUuXCIpXG4gIGZpbGVDb250ZW50ITogc3RyaW5nO1xuXG4gIEBvd25lZEJ5KClcbiAgQGRlc2NyaXB0aW9uKFwidGhlIG93bmVyIChtc3ApIG9mIHRoZSBsZWFmbGV0XCIpXG4gIG93bmVyITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG1vZGVsPzogTW9kZWxBcmc8T3RoZXJMZWFmbGV0RmlsZT4pIHtcbiAgICBzdXBlcihtb2RlbCk7XG4gIH1cbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3RoZXJMZWFmbGV0RmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk90aGVyTGVhZmxldEZpbGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUs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SUFDL0YsSUFBQSxpQkFBSSxFQUFDLHdCQUFhLENBQUM7SUFDbkIsSUFBQSxZQUFLLEVBQUMsb0JBQW9CLENBQUM7SUFDM0IsSUFBQSxxQkFBVSxFQUFDLElBQUEsOEJBQW1CLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxJQUFBLDRCQUFLLEdBQUU7SUFDUCxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUM1QyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFckIsMDlIQUEwOUgiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgbW9kZWwsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgY29sdW1uLCBpbmRleCwgT3JkZXJEaXJlY3Rpb24sIHBrLCB0YWJsZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24sIHVzZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IGNvbXBvc2VkIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBCYXNlSWRlbnRpZmllZE1vZGVsIH0gZnJvbSBcIi4vLi4vbW9kZWxzL0Jhc2VJZGVudGlmaWVkTW9kZWwuanNcIjtcbmltcG9ydCB7IEZhYnJpY0ZsYXZvdXIsIG1pcnJvciwgTmFtZXNwYWNlQ29sbGVjdGlvbiwgb3duZWRCeSwgc2hhcmVkRGF0YSwgfSBmcm9tIFwiLi8uLi8uLi9zaGFyZWQvaW5kZXguanNcIjtcbmxldCBPdGhlckxlYWZsZXRGaWxlID0gY2xhc3MgT3RoZXJMZWFmbGV0RmlsZSBleHRlbmRzIEJhc2VJZGVudGlmaWVkTW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKG1vZGVsKSB7XG4gICAgICAgIHN1cGVyKG1vZGVsKTtcbiAgICB9XG59O1xuX19kZWNvcmF0ZShbXG4gICAgcGsoKSxcbiAgICBtaXJyb3IoXCJtaXJyb3ItY29sbGVjdGlvblwiLCBcIlBoYXJtYWxlZGdlcmFzc29jTVNQXCIpLFxuICAgIGNvbXBvc2VkKFtcImxlYWZsZXRJZFwiLCBcImZpbGVOYW1lXCJdLCBcIjpcIiksXG4gICAgZGVzY3JpcHRpb24oXCJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbGVhZmxldCBmaWxlLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgT3RoZXJMZWFmbGV0RmlsZS5wcm90b3R5cGUsIFwiaWRcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIGNvbHVtbigpLFxuICAgIHJlcXVpcmVkKCksXG4gICAgaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSksXG4gICAgZGVzY3JpcHRpb24oXCJJZGVudGlmaWVyIG9mIHRoZSBsZWFmbGV0IHRoaXMgZmlsZSBiZWxvbmdzIHRvLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgT3RoZXJMZWFmbGV0RmlsZS5wcm90b3R5cGUsIFwibGVhZmxldElkXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICByZXF1aXJlZCgpLFxuICAgIGluZGV4KFtPcmRlckRpcmVjdGlvbi5BU0MsIE9yZGVyRGlyZWN0aW9uLkRTQ10pLFxuICAgIGRlc2NyaXB0aW9uKFwiTmFtZSBvZiB0aGUgZmlsZSwgaW5jbHVkaW5nIGl0cyBleHRlbnNpb24uXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBPdGhlckxlYWZsZXRGaWxlLnByb3RvdHlwZSwgXCJmaWxlTmFtZVwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKSxcbiAgICBkZXNjcmlwdGlvbihcIkJhc2U2NC1lbmNvZGVkIGNvbnRlbnQgb2YgdGhlIGZpbGUuXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBPdGhlckxlYWZsZXRGaWxlLnByb3RvdHlwZSwgXCJmaWxlQ29udGVudFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgb3duZWRCeSgpLFxuICAgIGRlc2NyaXB0aW9uKFwidGhlIG93bmVyIChtc3ApIG9mIHRoZSBsZWFmbGV0XCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBPdGhlckxlYWZsZXRGaWxlLnByb3RvdHlwZSwgXCJvd25lclwiLCB2b2lkIDApO1xuT3RoZXJMZWFmbGV0RmlsZSA9IF9fZGVjb3JhdGUoW1xuICAgIGRlc2NyaXB0aW9uKFwiUmVwcmVzZW50cyBhbiBhZGRpdGlvbmFsIGZpbGUgYXNzb2NpYXRlZCB3aXRoIGEgbGVhZmxldCwgc3VjaCBhcyBhIFBERiBvciBpbWFnZS5cIiksXG4gICAgdXNlcyhGYWJyaWNGbGF2b3VyKSxcbiAgICB0YWJsZShcIm90aGVyX2xlYWZsZXRfZmlsZVwiKSxcbiAgICBzaGFyZWREYXRhKE5hbWVzcGFjZUNvbGxlY3Rpb24oXCJkZWNhZi1uYW1lc3BhY2VcIikpLFxuICAgIG1vZGVsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3RdKVxuXSwgT3RoZXJMZWFmbGV0RmlsZSk7XG5leHBvcnQgeyBPdGhlckxlYWZsZXRGaWxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUM1JvWlhKTVpXRm1iR1YwUm1sc1pTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlqYjI1MGNtRmpkQzkwY21GamEyVmtUVzlrWld4ekwwOTBhR1Z5VEdWaFpteGxkRVpwYkdVdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN08wRkJRMEVzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3huUTBGQlowTXNRMEZCUXp0QlFVTnFSU3hQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4alFVRmpMRVZCUVVVc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJRekZGTEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzYzBKQlFYTkNMRU5CUVVNN1FVRkRla1FzVDBGQlR5eEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlEyNUVMRTlCUVU4c1JVRkJSU3h0UWtGQmJVSXNSVUZCUlN3eVEwRkJjME03UVVGRGNFVXNUMEZCVHl4RlFVTk1MR0ZCUVdFc1JVRkRZaXhOUVVGTkxFVkJRMDRzYlVKQlFXMUNMRVZCUTI1Q0xFOUJRVThzUlVGRFVDeFZRVUZWTEVkQlExZ3NaME5CUVRKQ08wRkJVM0pDTEVsQlFVMHNaMEpCUVdkQ0xFZEJRWFJDTEUxQlFVMHNaMEpCUVdsQ0xGTkJRVkVzYlVKQlFXMUNPMGxCTkVKMlJDeFpRVUZaTEV0QlFXdERPMUZCUXpWRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTm1MRU5CUVVNN1EwRkRSaXhEUVVGQk8wRkJNVUpETzBsQlNrTXNSVUZCUlN4RlFVRkZPMGxCUTBvc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZMSE5DUVVGelFpeERRVUZETzBsQlEyNUVMRkZCUVZFc1EwRkJReXhEUVVGRExGZEJRVmNzUlVGQlJTeFZRVUZWTEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNN1NVRkRlRU1zVjBGQlZ5eERRVUZETEhkRFFVRjNReXhEUVVGRE96czBRMEZETVVNN1FVRk5XanRKUVVwRExFMUJRVTBzUlVGQlJUdEpRVU5TTEZGQlFWRXNSVUZCUlR0SlFVTldMRXRCUVVzc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eEhRVUZITEVWQlFVVXNZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJReTlETEZkQlFWY3NRMEZCUXl4cFJFRkJhVVFzUTBGQlF6czdiVVJCUXpWRE8wRkJUVzVDTzBsQlNrTXNUVUZCVFN4RlFVRkZPMGxCUTFJc1VVRkJVU3hGUVVGRk8wbEJRMVlzUzBGQlN5eERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETDBNc1YwRkJWeXhEUVVGRExEUkRRVUUwUXl4RFFVRkRPenRyUkVGRGVFTTdRVUZMYkVJN1NVRklReXhOUVVGTkxFVkJRVVU3U1VGRFVpeFJRVUZSTEVWQlFVVTdTVUZEVml4WFFVRlhMRU5CUVVNc2NVTkJRWEZETEVOQlFVTTdPM0ZFUVVNNVFqdEJRVWx5UWp0SlFVWkRMRTlCUVU4c1JVRkJSVHRKUVVOVUxGZEJRVmNzUTBGQlF5eG5RMEZCWjBNc1EwRkJRenM3SzBOQlF5OUNPMEZCTVVKS0xHZENRVUZuUWp0SlFWQTFRaXhYUVVGWExFTkJRMVlzYTBaQlFXdEdMRU5CUTI1R08wbEJRMEVzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXp0SlFVTnVRaXhMUVVGTExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNN1NVRkRNMElzVlVGQlZTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkRiRVFzUzBGQlN5eEZRVUZGT3p0SFFVTkxMR2RDUVVGblFpeERRU3RDTlVJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2RIbHdaU0I3SUUxdlpHVnNRWEpuSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYjNJdGRtRnNhV1JoZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHNnYlc5a1pXd3NJSEpsY1hWcGNtVmtJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dZMjlzZFcxdUxDQnBibVJsZUN3Z1QzSmtaWEpFYVhKbFkzUnBiMjRzSUhCckxDQjBZV0pzWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1pHVnpZM0pwY0hScGIyNHNJSFZ6WlhNZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmxZMjl5WVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUdOdmJYQnZjMlZrSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCQ1lYTmxTV1JsYm5ScFptbGxaRTF2WkdWc0lIMGdabkp2YlNCY0lpNHVMMjF2WkdWc2N5OUNZWE5sU1dSbGJuUnBabWxsWkUxdlpHVnNYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkdZV0p5YVdOR2JHRjJiM1Z5TEZ4dUlDQnRhWEp5YjNJc1hHNGdJRTVoYldWemNHRmpaVU52Ykd4bFkzUnBiMjRzWEc0Z0lHOTNibVZrUW5rc1hHNGdJSE5vWVhKbFpFUmhkR0VzWEc1OUlHWnliMjBnWENJdUxpOHVMaTl6YUdGeVpXUXZhVzVrWlhoY0lqdGNibHh1UUdSbGMyTnlhWEIwYVc5dUtGeHVJQ0JjSWxKbGNISmxjMlZ1ZEhNZ1lXNGdZV1JrYVhScGIyNWhiQ0JtYVd4bElHRnpjMjlqYVdGMFpXUWdkMmwwYUNCaElHeGxZV1pzWlhRc0lITjFZMmdnWVhNZ1lTQlFSRVlnYjNJZ2FXMWhaMlV1WENKY2JpbGNia0IxYzJWektFWmhZbkpwWTBac1lYWnZkWElwWEc1QWRHRmliR1VvWENKdmRHaGxjbDlzWldGbWJHVjBYMlpwYkdWY0lpbGNia0J6YUdGeVpXUkVZWFJoS0U1aGJXVnpjR0ZqWlVOdmJHeGxZM1JwYjI0b1hDSmtaV05oWmkxdVlXMWxjM0JoWTJWY0lpa3BYRzVBYlc5a1pXd29LVnh1Wlhod2IzSjBJR05zWVhOeklFOTBhR1Z5VEdWaFpteGxkRVpwYkdVZ1pYaDBaVzVrY3lCQ1lYTmxTV1JsYm5ScFptbGxaRTF2WkdWc0lIdGNiaUFnUUhCcktDbGNiaUFnUUcxcGNuSnZjaWhjSW0xcGNuSnZjaTFqYjJ4c1pXTjBhVzl1WENJc0lGd2lVR2hoY20xaGJHVmtaMlZ5WVhOemIyTk5VMUJjSWlsY2JpQWdRR052YlhCdmMyVmtLRnRjSW14bFlXWnNaWFJKWkZ3aUxDQmNJbVpwYkdWT1lXMWxYQ0pkTENCY0lqcGNJaWxjYmlBZ1FHUmxjMk55YVhCMGFXOXVLRndpVlc1cGNYVmxJR2xrWlc1MGFXWnBaWElnYjJZZ2RHaGxJR3hsWVdac1pYUWdabWxzWlM1Y0lpbGNiaUFnYVdRaE9pQnpkSEpwYm1jN1hHNWNiaUFnUUdOdmJIVnRiaWdwWEc0Z0lFQnlaWEYxYVhKbFpDZ3BYRzRnSUVCcGJtUmxlQ2hiVDNKa1pYSkVhWEpsWTNScGIyNHVRVk5ETENCUGNtUmxja1JwY21WamRHbHZiaTVFVTBOZEtWeHVJQ0JBWkdWelkzSnBjSFJwYjI0b1hDSkpaR1Z1ZEdsbWFXVnlJRzltSUhSb1pTQnNaV0ZtYkdWMElIUm9hWE1nWm1sc1pTQmlaV3h2Ym1keklIUnZMbHdpS1Z4dUlDQnNaV0ZtYkdWMFNXUWhPaUJ6ZEhKcGJtYzdYRzVjYmlBZ1FHTnZiSFZ0YmlncFhHNGdJRUJ5WlhGMWFYSmxaQ2dwWEc0Z0lFQnBibVJsZUNoYlQzSmtaWEpFYVhKbFkzUnBiMjR1UVZORExDQlBjbVJsY2tScGNtVmpkR2x2Ymk1RVUwTmRLVnh1SUNCQVpHVnpZM0pwY0hScGIyNG9YQ0pPWVcxbElHOW1JSFJvWlNCbWFXeGxMQ0JwYm1Oc2RXUnBibWNnYVhSeklHVjRkR1Z1YzJsdmJpNWNJaWxjYmlBZ1ptbHNaVTVoYldVaE9pQnpkSEpwYm1jN1hHNWNiaUFnUUdOdmJIVnRiaWdwWEc0Z0lFQnlaWEYxYVhKbFpDZ3BYRzRnSUVCa1pYTmpjbWx3ZEdsdmJpaGNJa0poYzJVMk5DMWxibU52WkdWa0lHTnZiblJsYm5RZ2IyWWdkR2hsSUdacGJHVXVYQ0lwWEc0Z0lHWnBiR1ZEYjI1MFpXNTBJVG9nYzNSeWFXNW5PMXh1WEc0Z0lFQnZkMjVsWkVKNUtDbGNiaUFnUUdSbGMyTnlhWEIwYVc5dUtGd2lkR2hsSUc5M2JtVnlJQ2h0YzNBcElHOW1JSFJvWlNCc1pXRm1iR1YwWENJcFhHNGdJRzkzYm1WeUlUb2djM1J5YVc1bk8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHMXZaR1ZzUHpvZ1RXOWtaV3hCY21jOFQzUm9aWEpNWldGbWJHVjBSbWxzWlQ0cElIdGNiaUFnSUNCemRYQmxjaWh0YjJSbGJDazdYRzRnSUgxY2JuMWNiaUpkZlE9PSJdfQ==