@decaf-ts/for-fabric 0.1.48 → 0.1.50

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 (379) hide show
  1. package/dist/for-fabric.cjs +2 -1896
  2. package/dist/for-fabric.cjs.map +1 -0
  3. package/dist/for-fabric.js +2 -2002
  4. package/dist/for-fabric.js.map +1 -0
  5. package/lib/bin/cli.cjs +1 -2
  6. package/lib/bin/cli.js.map +1 -0
  7. package/lib/cli-module.cjs +1 -1
  8. package/lib/cli-module.js.map +1 -0
  9. package/lib/cli-utils.cjs +1 -1
  10. package/lib/cli-utils.js.map +1 -0
  11. package/lib/client/FabricClientAdapter.cjs +1 -1
  12. package/lib/client/FabricClientAdapter.js.map +1 -0
  13. package/lib/client/FabricClientDispatch.cjs +1 -1
  14. package/lib/client/FabricClientDispatch.js.map +1 -0
  15. package/lib/client/FabricClientPaginator.cjs +1 -1
  16. package/lib/client/FabricClientPaginator.js.map +1 -0
  17. package/lib/client/FabricClientRepository.cjs +1 -1
  18. package/lib/client/FabricClientRepository.js.map +1 -0
  19. package/lib/client/FabricClientStatement.cjs +1 -1
  20. package/lib/client/FabricClientStatement.js.map +1 -0
  21. package/lib/client/collections/generation.cjs +1 -1
  22. package/lib/client/collections/generation.js.map +1 -0
  23. package/lib/client/collections/index.cjs +1 -1
  24. package/lib/client/collections/index.js.map +1 -0
  25. package/lib/client/constants.cjs +1 -1
  26. package/lib/client/constants.js.map +1 -0
  27. package/lib/client/erc20/FabricERC20ClientRepository.cjs +1 -1
  28. package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  29. package/lib/client/erc20/index.cjs +1 -1
  30. package/lib/client/erc20/index.js.map +1 -0
  31. package/lib/client/fabric-fs.cjs +10 -10
  32. package/lib/client/fabric-fs.d.ts +1 -1
  33. package/lib/client/fabric-fs.js.map +1 -0
  34. package/lib/client/fabric-hsm.cjs +1 -1
  35. package/lib/client/fabric-hsm.js.map +1 -0
  36. package/lib/client/index.cjs +1 -1
  37. package/lib/client/index.js.map +1 -0
  38. package/lib/client/indexes/generation.cjs +1 -1
  39. package/lib/client/indexes/generation.js.map +1 -0
  40. package/lib/client/indexes/index.cjs +1 -1
  41. package/lib/client/indexes/index.js.map +1 -0
  42. package/lib/client/logging.cjs +1 -1
  43. package/lib/client/logging.js.map +1 -0
  44. package/lib/client/services/FabricEnrollmentService.cjs +1 -1
  45. package/lib/client/services/FabricEnrollmentService.js.map +1 -0
  46. package/lib/client/services/FabricIdentityService.cjs +1 -1
  47. package/lib/client/services/FabricIdentityService.js.map +1 -0
  48. package/lib/client/services/RegistrationRequestBuilder.cjs +1 -1
  49. package/lib/client/services/RegistrationRequestBuilder.js.map +1 -0
  50. package/lib/client/services/constants.cjs +1 -1
  51. package/lib/client/services/constants.js.map +1 -0
  52. package/lib/client/services/index.cjs +1 -1
  53. package/lib/client/services/index.js.map +1 -0
  54. package/lib/client/types.cjs +1 -1
  55. package/lib/client/types.js.map +1 -0
  56. package/lib/contract/Address.cjs +1 -1
  57. package/lib/contract/Address.js.map +1 -0
  58. package/lib/contract/AddressContract.cjs +1 -1
  59. package/lib/contract/AddressContract.js.map +1 -0
  60. package/lib/contract/BatchContract.cjs +1 -1
  61. package/lib/contract/BatchContract.js.map +1 -0
  62. package/lib/contract/Product.cjs +1 -1
  63. package/lib/contract/Product.js.map +1 -0
  64. package/lib/contract/ProductContract.cjs +1 -1
  65. package/lib/contract/ProductContract.js.map +1 -0
  66. package/lib/contract/User.cjs +1 -1
  67. package/lib/contract/User.js.map +1 -0
  68. package/lib/contract/UserContract.cjs +1 -1
  69. package/lib/contract/UserContract.js.map +1 -0
  70. package/lib/contract/index.cjs +1 -1
  71. package/lib/contract/index.js.map +1 -0
  72. package/lib/contract/models/Audit.cjs +1 -1
  73. package/lib/contract/models/Audit.js.map +1 -0
  74. package/lib/contract/models/BaseIdentifiedModel.cjs +1 -1
  75. package/lib/contract/models/BaseIdentifiedModel.js.map +1 -0
  76. package/lib/contract/models/BaseModel.cjs +1 -1
  77. package/lib/contract/models/BaseModel.js.map +1 -0
  78. package/lib/contract/models/Batch.cjs +1 -1
  79. package/lib/contract/models/Batch.js.map +1 -0
  80. package/lib/contract/models/Leaflet.cjs +1 -1
  81. package/lib/contract/models/Leaflet.js.map +1 -0
  82. package/lib/contract/models/LeafletFile.cjs +1 -1
  83. package/lib/contract/models/LeafletFile.js.map +1 -0
  84. package/lib/contract/models/Market.cjs +1 -1
  85. package/lib/contract/models/Market.js.map +1 -0
  86. package/lib/contract/models/Product.cjs +1 -1
  87. package/lib/contract/models/Product.js.map +1 -0
  88. package/lib/contract/models/ProductStrength.cjs +1 -1
  89. package/lib/contract/models/ProductStrength.js.map +1 -0
  90. package/lib/contract/models/constants.cjs +1 -1
  91. package/lib/contract/models/constants.js.map +1 -0
  92. package/lib/contract/models/decorators.cjs +1 -1
  93. package/lib/contract/models/decorators.js.map +1 -0
  94. package/lib/contract/models/gtin.cjs +1 -1
  95. package/lib/contract/models/gtin.js.map +1 -0
  96. package/lib/contracts/ContractAdapter.cjs +1 -1
  97. package/lib/contracts/ContractAdapter.js.map +1 -0
  98. package/lib/contracts/ContractContext.cjs +1 -1
  99. package/lib/contracts/ContractContext.js.map +1 -0
  100. package/lib/contracts/ContractPrivateDataAdapter.cjs +1 -1
  101. package/lib/contracts/ContractPrivateDataAdapter.js.map +1 -0
  102. package/lib/contracts/FabricConstruction.cjs +1 -1
  103. package/lib/contracts/FabricConstruction.js.map +1 -0
  104. package/lib/contracts/FabricContractPaginator.cjs +1 -1
  105. package/lib/contracts/FabricContractPaginator.js.map +1 -0
  106. package/lib/contracts/FabricContractRepository.cjs +1 -1
  107. package/lib/contracts/FabricContractRepository.js.map +1 -0
  108. package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
  109. package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  110. package/lib/contracts/FabricContractSequence.cjs +1 -1
  111. package/lib/contracts/FabricContractSequence.js.map +1 -0
  112. package/lib/contracts/FabricContractStatement.cjs +1 -1
  113. package/lib/contracts/FabricContractStatement.js.map +1 -0
  114. package/lib/contracts/PrivateSequence.cjs +1 -1
  115. package/lib/contracts/PrivateSequence.js.map +1 -0
  116. package/lib/contracts/crud/crud-contract.cjs +1 -1
  117. package/lib/contracts/crud/crud-contract.js.map +1 -0
  118. package/lib/contracts/crud/index.cjs +1 -1
  119. package/lib/contracts/crud/index.js.map +1 -0
  120. package/lib/contracts/crud/serialized-crud-contract.cjs +1 -1
  121. package/lib/contracts/crud/serialized-crud-contract.js.map +1 -0
  122. package/lib/contracts/erc20/erc20contract.cjs +1 -1
  123. package/lib/contracts/erc20/erc20contract.js.map +1 -0
  124. package/lib/contracts/erc20/index.cjs +1 -1
  125. package/lib/contracts/erc20/index.js.map +1 -0
  126. package/lib/contracts/erc20/models.cjs +1 -1
  127. package/lib/contracts/erc20/models.js.map +1 -0
  128. package/lib/contracts/index.cjs +1 -1
  129. package/lib/contracts/index.js.map +1 -0
  130. package/lib/contracts/logging.cjs +1 -1
  131. package/lib/contracts/logging.js.map +1 -0
  132. package/lib/contracts/private-data.cjs +1 -1
  133. package/lib/contracts/private-data.js.map +1 -0
  134. package/lib/contracts/types.cjs +1 -1
  135. package/lib/contracts/types.js.map +1 -0
  136. package/lib/esm/bin/cli.js +1 -1
  137. package/lib/esm/bin/cli.js.map +1 -0
  138. package/lib/esm/cli-module.js +1 -1
  139. package/lib/esm/cli-module.js.map +1 -0
  140. package/lib/esm/cli-utils.js +1 -1
  141. package/lib/esm/cli-utils.js.map +1 -0
  142. package/lib/esm/client/FabricClientAdapter.js +1 -1
  143. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  144. package/lib/esm/client/FabricClientDispatch.js +1 -1
  145. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  146. package/lib/esm/client/FabricClientPaginator.js +1 -1
  147. package/lib/esm/client/FabricClientPaginator.js.map +1 -0
  148. package/lib/esm/client/FabricClientRepository.js +1 -1
  149. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  150. package/lib/esm/client/FabricClientStatement.js +1 -1
  151. package/lib/esm/client/FabricClientStatement.js.map +1 -0
  152. package/lib/esm/client/collections/generation.js +1 -1
  153. package/lib/esm/client/collections/generation.js.map +1 -0
  154. package/lib/esm/client/collections/index.js +1 -1
  155. package/lib/esm/client/collections/index.js.map +1 -0
  156. package/lib/esm/client/constants.js +1 -1
  157. package/lib/esm/client/constants.js.map +1 -0
  158. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  159. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  160. package/lib/esm/client/erc20/index.js +1 -1
  161. package/lib/esm/client/erc20/index.js.map +1 -0
  162. package/lib/esm/client/fabric-fs.d.ts +1 -1
  163. package/lib/esm/client/fabric-fs.js +2 -2
  164. package/lib/esm/client/fabric-fs.js.map +1 -0
  165. package/lib/esm/client/fabric-hsm.js +1 -1
  166. package/lib/esm/client/fabric-hsm.js.map +1 -0
  167. package/lib/esm/client/index.js +1 -1
  168. package/lib/esm/client/index.js.map +1 -0
  169. package/lib/esm/client/indexes/generation.js +1 -1
  170. package/lib/esm/client/indexes/generation.js.map +1 -0
  171. package/lib/esm/client/indexes/index.js +1 -1
  172. package/lib/esm/client/indexes/index.js.map +1 -0
  173. package/lib/esm/client/logging.js +1 -1
  174. package/lib/esm/client/logging.js.map +1 -0
  175. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  176. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
  177. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  178. package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
  179. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  180. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
  181. package/lib/esm/client/services/constants.js +1 -1
  182. package/lib/esm/client/services/constants.js.map +1 -0
  183. package/lib/esm/client/services/index.js +1 -1
  184. package/lib/esm/client/services/index.js.map +1 -0
  185. package/lib/esm/client/types.js +1 -1
  186. package/lib/esm/client/types.js.map +1 -0
  187. package/lib/esm/contract/Address.js +1 -1
  188. package/lib/esm/contract/Address.js.map +1 -0
  189. package/lib/esm/contract/AddressContract.js +1 -1
  190. package/lib/esm/contract/AddressContract.js.map +1 -0
  191. package/lib/esm/contract/BatchContract.js +1 -1
  192. package/lib/esm/contract/BatchContract.js.map +1 -0
  193. package/lib/esm/contract/Product.js +1 -1
  194. package/lib/esm/contract/Product.js.map +1 -0
  195. package/lib/esm/contract/ProductContract.js +1 -1
  196. package/lib/esm/contract/ProductContract.js.map +1 -0
  197. package/lib/esm/contract/User.js +1 -1
  198. package/lib/esm/contract/User.js.map +1 -0
  199. package/lib/esm/contract/UserContract.js +1 -1
  200. package/lib/esm/contract/UserContract.js.map +1 -0
  201. package/lib/esm/contract/index.js +1 -1
  202. package/lib/esm/contract/index.js.map +1 -0
  203. package/lib/esm/contract/models/Audit.js +1 -1
  204. package/lib/esm/contract/models/Audit.js.map +1 -0
  205. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  206. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
  207. package/lib/esm/contract/models/BaseModel.js +1 -1
  208. package/lib/esm/contract/models/BaseModel.js.map +1 -0
  209. package/lib/esm/contract/models/Batch.js +1 -1
  210. package/lib/esm/contract/models/Batch.js.map +1 -0
  211. package/lib/esm/contract/models/Leaflet.js +1 -1
  212. package/lib/esm/contract/models/Leaflet.js.map +1 -0
  213. package/lib/esm/contract/models/LeafletFile.js +1 -1
  214. package/lib/esm/contract/models/LeafletFile.js.map +1 -0
  215. package/lib/esm/contract/models/Market.js +1 -1
  216. package/lib/esm/contract/models/Market.js.map +1 -0
  217. package/lib/esm/contract/models/Product.js +1 -1
  218. package/lib/esm/contract/models/Product.js.map +1 -0
  219. package/lib/esm/contract/models/ProductStrength.js +1 -1
  220. package/lib/esm/contract/models/ProductStrength.js.map +1 -0
  221. package/lib/esm/contract/models/constants.js +1 -1
  222. package/lib/esm/contract/models/constants.js.map +1 -0
  223. package/lib/esm/contract/models/decorators.js +1 -1
  224. package/lib/esm/contract/models/decorators.js.map +1 -0
  225. package/lib/esm/contract/models/gtin.js +1 -1
  226. package/lib/esm/contract/models/gtin.js.map +1 -0
  227. package/lib/esm/contracts/ContractAdapter.js +1 -1
  228. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  229. package/lib/esm/contracts/ContractContext.js +1 -1
  230. package/lib/esm/contracts/ContractContext.js.map +1 -0
  231. package/lib/esm/contracts/ContractPrivateDataAdapter.js +1 -1
  232. package/lib/esm/contracts/ContractPrivateDataAdapter.js.map +1 -0
  233. package/lib/esm/contracts/FabricConstruction.js +1 -1
  234. package/lib/esm/contracts/FabricConstruction.js.map +1 -0
  235. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  236. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
  237. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  238. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  239. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  240. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  241. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  242. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  243. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  244. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  245. package/lib/esm/contracts/PrivateSequence.js +1 -1
  246. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  247. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  248. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  249. package/lib/esm/contracts/crud/index.js +1 -1
  250. package/lib/esm/contracts/crud/index.js.map +1 -0
  251. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  252. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  253. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  254. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  255. package/lib/esm/contracts/erc20/index.js +1 -1
  256. package/lib/esm/contracts/erc20/index.js.map +1 -0
  257. package/lib/esm/contracts/erc20/models.js +1 -1
  258. package/lib/esm/contracts/erc20/models.js.map +1 -0
  259. package/lib/esm/contracts/index.js +1 -1
  260. package/lib/esm/contracts/index.js.map +1 -0
  261. package/lib/esm/contracts/logging.js +1 -1
  262. package/lib/esm/contracts/logging.js.map +1 -0
  263. package/lib/esm/contracts/private-data.js +1 -1
  264. package/lib/esm/contracts/private-data.js.map +1 -0
  265. package/lib/esm/contracts/types.js +1 -1
  266. package/lib/esm/contracts/types.js.map +1 -0
  267. package/lib/esm/index.js +1 -1
  268. package/lib/esm/index.js.map +1 -0
  269. package/lib/esm/shared/ClientSerializer.js +1 -1
  270. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  271. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  272. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  273. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  274. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  275. package/lib/esm/shared/constants.js +1 -1
  276. package/lib/esm/shared/constants.js.map +1 -0
  277. package/lib/esm/shared/crypto.js +1 -1
  278. package/lib/esm/shared/crypto.js.map +1 -0
  279. package/lib/esm/shared/decorators.js +1 -1
  280. package/lib/esm/shared/decorators.js.map +1 -0
  281. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  282. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  283. package/lib/esm/shared/erc20/index.js +1 -1
  284. package/lib/esm/shared/erc20/index.js.map +1 -0
  285. package/lib/esm/shared/errors.js +1 -1
  286. package/lib/esm/shared/errors.js.map +1 -0
  287. package/lib/esm/shared/events.js +1 -1
  288. package/lib/esm/shared/events.js.map +1 -0
  289. package/lib/esm/shared/fabric-types.js +1 -1
  290. package/lib/esm/shared/fabric-types.js.map +1 -0
  291. package/lib/esm/shared/index.js +1 -1
  292. package/lib/esm/shared/index.js.map +1 -0
  293. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  294. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  295. package/lib/esm/shared/interfaces/index.js +1 -1
  296. package/lib/esm/shared/interfaces/index.js.map +1 -0
  297. package/lib/esm/shared/math.js +1 -1
  298. package/lib/esm/shared/math.js.map +1 -0
  299. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  300. package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
  301. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  302. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  303. package/lib/esm/shared/model/Identity.js +1 -1
  304. package/lib/esm/shared/model/Identity.js.map +1 -0
  305. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  306. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  307. package/lib/esm/shared/model/index.js +1 -1
  308. package/lib/esm/shared/model/index.js.map +1 -0
  309. package/lib/esm/shared/overrides/Model.js +1 -1
  310. package/lib/esm/shared/overrides/Model.js.map +1 -0
  311. package/lib/esm/shared/overrides/index.js +1 -1
  312. package/lib/esm/shared/overrides/index.js.map +1 -0
  313. package/lib/esm/shared/overrides/overrides.js +1 -1
  314. package/lib/esm/shared/overrides/overrides.js.map +1 -0
  315. package/lib/esm/shared/types.js +1 -1
  316. package/lib/esm/shared/types.js.map +1 -0
  317. package/lib/esm/shared/utils.d.ts +0 -13
  318. package/lib/esm/shared/utils.js +2 -17
  319. package/lib/esm/shared/utils.js.map +1 -0
  320. package/lib/esm/version.d.ts +1 -1
  321. package/lib/esm/version.js +2 -2
  322. package/lib/esm/version.js.map +1 -0
  323. package/lib/index.cjs +1 -1
  324. package/lib/index.js.map +1 -0
  325. package/lib/shared/ClientSerializer.cjs +1 -1
  326. package/lib/shared/ClientSerializer.js.map +1 -0
  327. package/lib/shared/DeterministicSerializer.cjs +1 -1
  328. package/lib/shared/DeterministicSerializer.js.map +1 -0
  329. package/lib/shared/SimpleDeterministicSerializer.cjs +1 -1
  330. package/lib/shared/SimpleDeterministicSerializer.js.map +1 -0
  331. package/lib/shared/constants.cjs +1 -1
  332. package/lib/shared/constants.js.map +1 -0
  333. package/lib/shared/crypto.cjs +1 -1
  334. package/lib/shared/crypto.js.map +1 -0
  335. package/lib/shared/decorators.cjs +1 -1
  336. package/lib/shared/decorators.js.map +1 -0
  337. package/lib/shared/erc20/erc20-constants.cjs +1 -1
  338. package/lib/shared/erc20/erc20-constants.js.map +1 -0
  339. package/lib/shared/erc20/index.cjs +1 -1
  340. package/lib/shared/erc20/index.js.map +1 -0
  341. package/lib/shared/errors.cjs +1 -1
  342. package/lib/shared/errors.js.map +1 -0
  343. package/lib/shared/events.cjs +1 -1
  344. package/lib/shared/events.js.map +1 -0
  345. package/lib/shared/fabric-types.cjs +1 -1
  346. package/lib/shared/fabric-types.js.map +1 -0
  347. package/lib/shared/index.cjs +1 -1
  348. package/lib/shared/index.js.map +1 -0
  349. package/lib/shared/interfaces/Checkable.cjs +1 -1
  350. package/lib/shared/interfaces/Checkable.js.map +1 -0
  351. package/lib/shared/interfaces/index.cjs +1 -1
  352. package/lib/shared/interfaces/index.js.map +1 -0
  353. package/lib/shared/math.cjs +1 -1
  354. package/lib/shared/math.js.map +1 -0
  355. package/lib/shared/model/FabricBaseModel.cjs +1 -1
  356. package/lib/shared/model/FabricBaseModel.js.map +1 -0
  357. package/lib/shared/model/FabricIdentifiedBaseModel.cjs +1 -1
  358. package/lib/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  359. package/lib/shared/model/Identity.cjs +1 -1
  360. package/lib/shared/model/Identity.js.map +1 -0
  361. package/lib/shared/model/IdentityCredentials.cjs +1 -1
  362. package/lib/shared/model/IdentityCredentials.js.map +1 -0
  363. package/lib/shared/model/index.cjs +1 -1
  364. package/lib/shared/model/index.js.map +1 -0
  365. package/lib/shared/overrides/Model.cjs +1 -1
  366. package/lib/shared/overrides/Model.js.map +1 -0
  367. package/lib/shared/overrides/index.cjs +1 -1
  368. package/lib/shared/overrides/index.js.map +1 -0
  369. package/lib/shared/overrides/overrides.cjs +1 -1
  370. package/lib/shared/overrides/overrides.js.map +1 -0
  371. package/lib/shared/types.cjs +1 -1
  372. package/lib/shared/types.js.map +1 -0
  373. package/lib/shared/utils.cjs +12 -28
  374. package/lib/shared/utils.d.ts +0 -13
  375. package/lib/shared/utils.js.map +1 -0
  376. package/lib/version.cjs +2 -2
  377. package/lib/version.d.ts +1 -1
  378. package/lib/version.js.map +1 -0
  379. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/contracts/FabricContractSequence.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/logging.ts","../src/contracts/FabricContractPaginator.ts","../src/shared/errors.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","_overrides","Object","assign","ignoreValidation","ignoreHandlers","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","paginateBy","key","order","ref","offset","limit","bookmark","QueryError","contextArgs","PreparedStatementKeys","PAGE_BY","class","ctxArgs","paginator","verbose","Model","tableName","override","select","where","attr","pk","gt","orderBy","paginate","paged","page","serialize","statement","statements","PersistenceKeys","STATEMENT","context","logger","info","result","e","BaseError","InternalError","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","fromSelector","type","Metadata","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","offsetSelector","skip","FabricContractSequence","Sequence","options","current","READ","SequenceModel","startWith","sequence","repo","read","parse","for","NotFoundError","cachedCurrent","increment","count","incrementBy","lock","execute","async","toIncrementBy","typeName","currentValue","returnAndCache","res","Promise","cache","put","performUpsert","next","update","create","UUID","instance","generate","ConflictError","base","Number","BigInt","String","Serial","incrementSerial","seq","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","model","putAnchor","require","sortKeysRecursive","preSerialize","toSerialize","metadata","modelName","error","undefined","obj","Array","isArray","ModelKeys","ANCHOR","relations","call","ContractLogger","MiniLogger","conf","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","warn","silly","createLog","Logging","setFactory","object","FabricContractPaginator","CouchDBPaginator","size","prepare","rawStatement","isPreparedStatement","pagePrepared","_recordCount","_totalPages","Math","ceil","validatePage","_bookmark","PagingError","docs","d","revert","parseValue","direction","OrderDirection","DSC","ASC","_currentPage","OverflowError","BalanceError","AllowanceError","MissingContextError","NotInitializedError","createdByOnFabricCreateUpdate","data","user","getID","UnsupportedError","pkFabricOnCreate","sequenceName","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","Paginator","scope","alias","composedKey","createCompositeKey","putState","parseError","readState","delete","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","fetchedRecordsCount","done","Reflect","SerializationError","getState","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","correlationId","getTxID","clientIdentity","index","models","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","Statement","createAll","tableLabel","all","i","updateAll","split","segregate","mappedProp","columnName","isReserved","record","transient","ob","m","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","filter","a","clear","message","BadRequestError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","COLUMN","extend","FabricProperty","ValidationKeys","DATE","Property","chain","constr","prototype","getPrototypeOf","FabricObject","setCurrent","DeterministicSerializer","self","o","bind","deserialization","className","Date","FabricCrudContract","Contract","initialized","forModel","listBy","findOneBy","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","init","getName","healthcheck","Ctx","overrides","READ_ALL","getOp","SerializedCrudContract","serialized","parsedKeys","modelList","cond","add","b","c","sub","__decorate","Transaction","__metadata","ERC20Token","BaseModel","column","required","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","tokens","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
package/lib/bin/cli.cjs CHANGED
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
  "use strict";
3
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -6,4 +5,4 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
5
  Object.defineProperty(exports, "__esModule", { value: true });
7
6
  const cli_module_1 = __importDefault(require("./../cli-module.cjs"));
8
7
  (0, cli_module_1.default)().parse(process.argv);
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRUFBbUM7QUFFbkMsSUFBQSxvQkFBTSxHQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmYWJyaWMgZnJvbSBcIi4uL2NsaS1tb2R1bGVcIjtcblxuZmFicmljKCkucGFyc2UocHJvY2Vzcy5hcmd2KTtcbiJdfQ==
8
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";;;;;AAAA,qEAAmC;AAEnC,IAAA,oBAAM,GAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -245,4 +245,4 @@ fabricCmd.addCommand(getCryptoMaterial);
245
245
  function fabric() {
246
246
  return fabricCmd;
247
247
  }
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGktbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBdVdBLHlCQUVDO0FBeldELHlDQUFvQztBQUNwQywrQ0FBMEQ7QUFDMUQsaURBQXlDO0FBQ3pDLDRDQUFvQjtBQUNwQixnREFBd0I7QUFDeEIsbUNBQWdDO0FBQ2hDLDRFQUE2QztBQUM3QyxrRkFBbUQ7QUFDbkQsMkRBQXdEO0FBQ3hELHdEQUswQjtBQUMxQix5RUFBdUQ7QUFDdkQsK0NBT3FCO0FBQ3JCLHdDQUE0QjtBQUU1QixNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUlyQyxNQUFNLGNBQWMsR0FBRyxJQUFJLG1CQUFPLEVBQUU7S0FDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0tBQ3hCLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQztLQUN4QyxNQUFNLENBQUMsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLEtBQUssQ0FBQztLQUNqRSxNQUFNLENBQUMsU0FBUyxFQUFFLG1DQUFtQyxFQUFFLEtBQUssQ0FBQztLQUM3RCxNQUFNLENBQUMsU0FBUyxFQUFFLG1DQUFtQyxFQUFFLEtBQUssQ0FBQztLQUM3RCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDO0tBQzdELE1BQU0sQ0FDTCx3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLGdDQUFnQyxDQUNqQyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxpQ0FBaUMsRUFBRSxLQUFLLENBQUM7S0FDMUUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLDRCQUE0QixFQUFFLGVBQWUsQ0FBQztLQUN6RSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsYUFBYSxDQUFDO0tBQ3pFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDN0IsTUFBTSxHQUFH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RTVCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM5QyxHQUFHLENBQUMsS0FBSyxDQUNQLHlCQUF5QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLFlBQVksT0FBTyxFQUFFLENBQ3RGLENBQUM7SUFDRixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzNCLElBQUEsd0JBQVEsRUFBQyxvQ0FBb0MsTUFBTSxFQUFFLEVBQUU7UUFDckQsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUU7S0FDbkIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFTCxNQUFNLFNBQVMsR0FBRyxJQUFJLG1CQUFPLEVBQUU7S0FDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQztLQUNsQixPQUFPLENBQUMsUUFBUSxDQUFDO0tBQ2pCLFdBQVcsQ0FDVixtRUFBbUUsQ0FDcEUsQ0FBQztBQUVKLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDckMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNyQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2xDLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDckMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRXhDLFNBQXdCLE1BQU07SUFDNUIsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBMb2dnaW5nLCB0b1Bhc2NhbENhc2UgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyByb2xsdXAgfSBmcm9tIFwicm9sbHVwXCI7XG5pbXBvcnQgcmVwbGFjZSBmcm9tIFwiQHJvbGx1cC9wbHVnaW4tcmVwbGFjZVwiO1xuaW1wb3J0IHR5cGVzY3JpcHQgZnJvbSBcIkByb2xsdXAvcGx1Z2luLXR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7XG4gIGdlbmVyYXRlTW9kZWxJbmRleGVzLFxuICByZWFkTW9kZWxGaWxlLFxuICByZWFkTW9kZWxGb2xkZXJzLFxuICB3cml0ZUluZGV4ZXMsXG59IGZyb20gXCIuL2NsaWVudC9pbmRleGVzXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIGFwcHJvdmVDb250cmFjdCxcbiAgZW5zdXJlSW5mcmFzdHJ1Y3R1cmVCb290ZWQsXG4gIGluc3RhbGxDb250cmFjdCxcbiAgcGFja2FnZUNvbnRyYWN0LFxuICBjb21taXRDaGFpbmNvZGUsXG4gIGdldENvbnRyYWN0U3RhcnRDb21tYW5kLFxufSBmcm9tIFwiLi9jbGktdXRpbHNcIjtcbmltcG9ydCBcIi4vc2hhcmVkL292ZXJyaWRlc1wiO1xuXG5jb25zdCBsb2dnZXIgPSBMb2dnaW5nLmZvcihcImZhYnJpY1wiKTtcblxuXG5cbmNvbnN0IGNvbXBpbGVDb21tYW5kID0gbmV3IENvbW1hbmQoKVxuICAubmFtZShcImNvbXBpbGUtY29udHJhY3RcIilcbiAgLmRlc2NyaXB0aW9uKFwiQ3JlYXRlcyBhIGdsb2JhbCBjb250cmFjdFwiKVxuICAub3B0aW9uKFwiLS1kZXZcIiwgXCJjb21waWxlcyBjb250cmFjdHMgd2l0aG91dCBtaW5pZmljYXRpb25cIiwgZmFsc2UpXG4gIC5vcHRpb24oXCItLWRlYnVnXCIsIFwibWFrZXMgYXR0YWNoaW5nIGRlYnVnZ2VyIHBvc3NpYmxlXCIsIGZhbHNlKVxuICAub3B0aW9uKFwiLS1jY2Fhc1wiLCBcIm1ha2VzIGF0dGFjaGluZyBkZWJ1Z2dlciBwb3NzaWJsZVwiLCBmYWxzZSlcbiAgLm9wdGlvbihcIi0tbmFtZSA8U3RyaW5nPlwiLCBcImNvbnRyYWN0IG5hbWVcIiwgXCJnbG9iYWwtY29udHJhY3RcIilcbiAgLm9wdGlvbihcbiAgICBcIi0tZGVzY3JpcHRpb24gPFN0cmluZz5cIixcbiAgICBcImNvbnRyYWN0IGRlc2NyaXB0aW9uXCIsXG4gICAgXCJHbG9iYWwgY29udHJhY3QgaW1wbGVtZW50YXRpb25cIlxuICApLm9wdGlvbihcIi0tc3RyaXAtY29udHJhY3QtbmFtZVwiLCBcInN0cmlwIGNvbnRyYWN0IG5hbWUgZnJvbSBvdXRwdXRcIiwgZmFsc2UpXG4gIC5vcHRpb24oXCItLWlucHV0IDxTdHJpbmc+XCIsIFwiaW5wdXQgZm9sZGVyIGZvciBjb250cmFjdHNcIiwgXCJsaWIvY29udHJhY3RzXCIpXG4gIC5vcHRpb24oXCItLW91dHB1dCA8U3RyaW5nPlwiLCBcIm91dHB1dCBmb2xkZXIgZm9yIGNvbnRyYWN0c1wiLCBcIi4vY29udHJhY3RzXCIpXG4gIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoXG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwicGFja2FnZS5qc29uXCIpLCBcInV0Zi04XCIpXG4gICAgKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBwa2cudmVyc2lvbjtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyBkZXYsIGRlYnVnLCBuYW1lLCBkZXNjcmlwdGlvbiwgb3V0cHV0LCBpbnB1dCwgc3RyaXBDb250cmFjdE5hbWUsIGNjYWFzIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJjb21waWxlLWNvbnRyYWN0XCIpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBydW5uaW5nIHdpdGggb3B0aW9uczogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zKX0gZm9yICR7cGtnLm5hbWV9IHZlcnNpb24gJHt2ZXJzaW9ufWBcbiAgICApO1xuXG4gICAgb3V0cHV0ID0gc3RyaXBDb250cmFjdE5hbWUgPyBvdXRwdXQgOiBwYXRoLmpvaW4ob3V0cHV0LCBuYW1lKTtcbiAgICBsb2cuaW5mbyhgRGVsZXRpbmcgZXhpc3Rpbmcgb3V0cHV0IGZvbGRlciAoaWYgZXhpc3RzKSB1bmRlciAke291dHB1dH1gKTtcbiAgICBleGVjU3luYyhgcm0gLXJmICR7b3V0cHV0fWApO1xuICAgIGxvZy5pbmZvKGBidW5kbGluZyBjb250cmFjdCBmcm9tICR7aW5wdXR9YCk7XG4gICAgY29uc3QgYnVuZGxlID0gYXdhaXQgcm9sbHVwKHtcbiAgICAgIGlucHV0OiBgJHtpbnB1dH0vaW5kZXgudHNgLFxuICAgICAgcGx1Z2luczogW1xuICAgICAgICByZXBsYWNlKHtcbiAgICAgICAgICBwcmV2ZW50QXNzaWdubWVudDogdHJ1ZSxcbiAgICAgICAgICBkZWxpbWl0ZXJzOiBbXCJcIiwgXCJcIl0sXG4gICAgICAgICAgdmFsdWVzOiB7IFwiIyNWRVJTSU9OIyNcIjogdmVyc2lvbiwgXCIjI1BBQ0tBR0UjI1wiOiBwa2cubmFtZSB9LFxuICAgICAgICB9KSxcbiAgICAgICAgdHlwZXNjcmlwdCh7XG4gICAgICAgICAgdHNjb25maWc6IFwiLi90c2NvbmZpZy5qc29uXCIsXG4gICAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgICBvdXREaXI6IG91dHB1dCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1vZHVsZTogXCJlc25leHRcIixcbiAgICAgICAgICBkZWNsYXJhdGlvbjogZmFsc2UsXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBsb2cuaW5mbyhcbiAgICAgIGB3aXRoaW5nIGNvbnRyYWN0IHRvICR7b3V0cHV0fSB3aXRoIG5hbWUgJHt0b1Bhc2NhbENhc2UobmFtZSl9LmpzYFxuICAgICk7XG4gICAgYXdhaXQgYnVuZGxlLndyaXRlKHtcbiAgICAgIGZpbGU6IGAke291dHB1dH0vJHt0b1Bhc2NhbENhc2UobmFtZSl9LmpzYCxcbiAgICAgIGZvcm1hdDogXCJ1bWRcIixcbiAgICAgIG5hbWU6IGAke3RvUGFzY2FsQ2FzZShuYW1lKX0uanNgLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2NyaXB0cyA9IHtcbiAgICAgIHN0YXJ0OiBnZXRDb250cmFjdFN0YXJ0Q29tbWFuZChkZWJ1ZywgY2NhYXMpLFxuICAgICAgXCJzdGFydDpkZXZcIjpcbiAgICAgICAgJ2ZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzdGFydCAtLXRscy5lbmFibGVkIGZhbHNlJyxcbiAgICAgIFwic3RhcnQ6d2F0Y2hcIjogJ25vZGVtb24gLS1leGVjIFwibnBtIHJ1biBzdGFydDpkZXZcIicsXG4gICAgICBidWlsZDogJ2VjaG8gXCJObyBuZWVkIHRvIGJ1aWxkIHRoZSBjaGFpbmNvZGVcIicsXG4gICAgICBsaW50OiBcImVzbGludCAuIC0tZml4IC0tZXh0IC5qc1wiLFxuICAgIH07XG5cblxuICAgIGNvbnN0IGNvbnRyYWN0UGFja2FnZSA9IHBrZztcblxuICAgIGNvbnRyYWN0UGFja2FnZS5uYW1lID0gbmFtZTtcbiAgICBjb250cmFjdFBhY2thZ2UuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICBjb250cmFjdFBhY2thZ2Uuc2NyaXB0cyA9IHNjcmlwdHM7XG5cbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLnR5cGU7XG4gICAgZGVsZXRlIGNvbnRyYWN0UGFja2FnZS50eXBlcztcbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLmV4cG9ydHM7XG4gICAgY29udHJhY3RQYWNrYWdlLm1haW4gPSBgJHt0b1Bhc2NhbENhc2UobmFtZSl9LmpzYDtcblxuICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4ob3V0cHV0LCBcInBhY2thZ2UuanNvblwiKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KGNvbnRyYWN0UGFja2FnZSlcbiAgICApO1xuXG4gICAgbG9nLmluZm8oYEluc3RhbGxpbmcgYW5kIHNocmlua3dyYXBwaW5nIGRlcGVuZGVuY2llc2ApO1xuICAgIGV4ZWNTeW5jKGBucG0gaW5zdGFsbGAsIHsgY3dkOiBvdXRwdXQgfSk7XG4gICAgZXhlY1N5bmMoYG5wbSBzaHJpbmt3cmFwYCwgeyBjd2Q6IG91dHB1dCB9KTtcbiAgICBleGVjU3luYyhcInJtIC1yZiBub2RlX21vZHVsZXNcIiwgeyBjd2Q6IG91dHB1dCB9KTtcbiAgICBsb2cuaW5mbyhgZGVsZXRpbmcgdGVtcCBmb2xkZXJzYCk7XG4gICAgZXhlY1N5bmMoYHJtIC1yZiAuL2xpYiAmJiBybSAtcmYgLi9kaXN0YCwgeyBjd2Q6IG91dHB1dCB9KTtcbiAgICBsb2cuaW5mbyhcbiAgICAgIGBDb250cmFjdCAke25hbWV9IGNvbXBpbGVkIHN1Y2Nlc3NmdWxseSEgaW4gJHtwYXRoLnJlc29sdmUob3V0cHV0KX1gXG4gICAgKTtcbiAgICBpZiAoZGV2KSB7XG4gICAgICBsb2cuaW5mbyhgZGV2IG1vZGUgZW5hYmxlZC4gaW5zdGFsbGluZyBkZXBlbmRlbmNpZXMgZm9yIGRlYnVnZ2luZ2ApO1xuICAgICAgZXhlY1N5bmMoYG5wbSBpbnN0YWxsYCwge1xuICAgICAgICBjd2Q6IG91dHB1dCxcbiAgICAgICAgZW52OiB7IC4uLnByb2Nlc3MuZW52LCBOT0RFX0VOVjogXCJwcm9kdWN0aW9uXCIgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbmNvbnN0IGV4dHJhY3RJbmRleGVzID0gbmV3IENvbW1hbmQoKVxuICAuY29tbWFuZChcImV4dHJhY3QtaW5kZXhlc1wiKVxuICAub3B0aW9uKFwiLS1maWxlIFtTdHJpbmddXCIsIFwidGhlIG1vZGVsIGZpbGVcIilcbiAgLm9wdGlvbihcIi0tZm9sZGVyIFtTdHJpbmddXCIsIFwidGhlIG1vZGVsIGZvbGRlclwiKVxuICAub3B0aW9uKFwiLS1vdXREaXIgPFN0cmluZz5cIiwgXCJ0aGUgb3V0ZGlyLiBzaG91bGQgbWF0Y2ggeW91ciBjb250cmFjdCBmb2xkZXJcIilcbiAgLmRlc2NyaXB0aW9uKFxuICAgIFwiQ3JlYXRlcyBhIHRoZSBKU09OIGluZGV4IGZpbGVzIHRvIGJlIHN1Ym1pdHRlZCB0byBhbG9uZyB3aXRoIHRoZSBjb250cmFjdFwiXG4gIClcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgcGtnID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJwYWNrYWdlLmpzb25cIiksIFwidXRmLThcIilcbiAgICApO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9IHBrZy52ZXJzaW9uO1xuXG4gICAgY29uc3QgbG9nID0gbG9nZ2VyLmZvcihcImV4dHJhY3QtaW5kZXhlc1wiKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgcnVubmluZyB3aXRoIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9IGZvciAke3BrZy5uYW1lfSB2ZXJzaW9uICR7dmVyc2lvbn1gXG4gICAgKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyBmaWxlLCBmb2xkZXIsIG91dERpciB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IG1vZGVsczogYW55W10gPSBbXTtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgbW9kZWxzLnB1c2goLi4ucmVhZE1vZGVsRmlsZShmaWxlKSk7XG4gICAgfVxuXG4gICAgaWYgKGZvbGRlcikge1xuICAgICAgbG9nLmluZm8oYExvYWRpbmcgbW9kZWxzIGZyb20gJHtmb2xkZXJ9Li4uYCk7XG4gICAgICBtb2RlbHMucHVzaCguLi4oYXdhaXQgcmVhZE1vZGVsRm9sZGVycyhmb2xkZXIpKSk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gICAgaWYgKCFmaWxlICYmICFmb2xkZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTXVzdCBwYXNzIGEgZmlsZSBvciBhIGZvbGRlcmApO1xuXG4gICAgZm9yIChjb25zdCBtIG9mIG1vZGVscykge1xuICAgICAgbG9nLnZlcmJvc2UoYEV4dHJhY3RpbmcgaW5kZXhlcyBmb3IgdGFibGUgJHtNb2RlbC50YWJsZU5hbWUobSl9YCk7XG4gICAgICBnZW5lcmF0ZU1vZGVsSW5kZXhlcyhtLCByZXN1bHQpO1xuICAgIH1cbiAgICBsb2cudmVyYm9zZShgRm91bmQgJHtPYmplY3Qua2V5cyhyZXN1bHQpLmxlbmd0aH0gaW5kZXhlcyB0byBjcmVhdGVgKTtcbiAgICBsb2cuZGVidWcoYEluZGV4ZXM6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0KX1gKTtcbiAgICB3cml0ZUluZGV4ZXMoT2JqZWN0LnZhbHVlcyhyZXN1bHQpLCBvdXREaXIpO1xuICB9KTtcblxuY29uc3QgZXh0cmFjdENvbGxlY3Rpb25zID0gbmV3IENvbW1hbmQoKVxuICAuY29tbWFuZChcImV4dHJhY3QtY29sbGVjdGlvbnNcIilcbiAgLm9wdGlvbihcIi0tZmlsZSBbU3RyaW5nXVwiLCBcInRoZSBtb2RlbCBmaWxlXCIpXG4gIC5vcHRpb24oXCItLWZvbGRlciBbU3RyaW5nXVwiLCBcInRoZSBtb2RlbCBmb2xkZXJcIilcbiAgLm9wdGlvbihcIi0tb3V0RGlyIDxTdHJpbmc+XCIsIFwidGhlIG91dGRpci4gc2hvdWxkIG1hdGNoIHlvdXIgY29udHJhY3QgZm9sZGVyXCIpXG4gIC5kZXNjcmlwdGlvbihcbiAgICBcIkNyZWF0ZXMgYSB0aGUgSlNPTiBpbmRleCBmaWxlcyB0byBiZSBzdWJtaXR0ZWQgdG8gYWxvbmcgd2l0aCB0aGUgY29udHJhY3RcIlxuICApXG4gIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoXG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwicGFja2FnZS5qc29uXCIpLCBcInV0Zi04XCIpXG4gICAgKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBwa2cudmVyc2lvbjtcblxuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJleHRyYWN0LWluZGV4ZXNcIik7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHJ1bm5pbmcgd2l0aCBvcHRpb25zOiAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMpfSBmb3IgJHtwa2cubmFtZX0gdmVyc2lvbiAke3ZlcnNpb259YFxuICAgICk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgbGV0IHsgZmlsZSwgZm9sZGVyLCBvdXREaXIgfSA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBtb2RlbHM6IGFueVtdID0gW107XG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIG1vZGVscy5wdXNoKC4uLnJlYWRNb2RlbEZpbGUoZmlsZSkpO1xuICAgIH1cblxuICAgIGlmIChmb2xkZXIpIHtcbiAgICAgIGxvZy5pbmZvKGBMb2FkaW5nIG1vZGVscyBmcm9tICR7Zm9sZGVyfS4uLmApO1xuICAgICAgbW9kZWxzLnB1c2goLi4uKGF3YWl0IHJlYWRNb2RlbEZvbGRlcnMoZm9sZGVyKSkpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICAgIGlmICghZmlsZSAmJiAhZm9sZGVyKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE11c3QgcGFzcyBhIGZpbGUgb3IgYSBmb2xkZXJgKTtcblxuICAgIGNvbnN0IHByaXZhdGVPclNoYXJlZCA9IG1vZGVscy5maWx0ZXIoXG4gICAgICAobSkgPT4gTW9kZWwuaXNQcml2YXRlKG0pIHx8IE1vZGVsLmlzU2hhcmVkKG0pXG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgbSBvZiBwcml2YXRlT3JTaGFyZWQpIHtcbiAgICAgIGxvZy52ZXJib3NlKGBFeHRyYWN0aW5nIGNvbGxlY3Rpb25zIGZvciB0YWJsZSAke01vZGVsLnRhYmxlTmFtZShtKX1gKTtcbiAgICAgIGdlbmVyYXRlTW9kZWxJbmRleGVzKG0sIHJlc3VsdCk7XG4gICAgfVxuICAgIGxvZy52ZXJib3NlKGBGb3VuZCAke09iamVjdC5rZXlzKHJlc3VsdCkubGVuZ3RofSBpbmRleGVzIHRvIGNyZWF0ZWApO1xuICAgIGxvZy5kZWJ1ZyhgSW5kZXhlczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQpfWApO1xuICAgIHdyaXRlSW5kZXhlcyhPYmplY3QudmFsdWVzKHJlc3VsdCksIG91dERpcik7XG4gIH0pO1xuXG5jb25zdCBlbnN1cmVJbmZyYSA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJhd2FpdC1pbmZyYVwiKVxuICAuZGVzY3JpcHRpb24oXCJ3YWl0cyBmb3IgdGhlIGluZnJhc3RydWN0dXJlIHRvIGJlIHVwIGFuZCBydW5uaW5nXCIpXG4gIC5vcHRpb24oXG4gICAgXCItLWNvbnRhaW5lciA8U3RyaW5nPlwiLFxuICAgIFwiZG9ja2VyIGNvbnRhaW5lciBuYW1lIHRvIHRlc3QgKHVzdWFsbHkgbGFzdCBwZWVyKVwiLFxuICAgIFwiYm9vdC1vcmctYy1wZWVyLTBcIlxuICApXG4gIC5vcHRpb24oXCItLXRpbWVvdXQgPFN0cmluZz5cIiwgXCJ0aW1lb3V0IGJldHdlZW4gdGVzdHMgaW4gbWlsbGlzZWNvbmRzXCIsIFwiNTAwMFwiKVxuICAub3B0aW9uKFwiLS1hdHRlbXB0cyA8U3RyaW5nPlwiLCBcIm51bWJlciBvZiBhdHRlbXB0cyBiZWZvcmUgZ2l2aW5nIHVwXCIsIFwiMTBcIilcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgcGtnID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJwYWNrYWdlLmpzb25cIiksIFwidXRmLThcIilcbiAgICApO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9IHBrZy52ZXJzaW9uO1xuXG4gICAgY29uc3QgbG9nID0gbG9nZ2VyLmZvcihcImF3YWl0LWluZnJhXCIpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBydW5uaW5nIHdpdGggb3B0aW9uczogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zKX0gZm9yICR7cGtnLm5hbWV9IHZlcnNpb24gJHt2ZXJzaW9ufWBcbiAgICApO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyBjb250YWluZXIsIHRpbWVvdXQsIGF0dGVtcHRzIH0gPSBvcHRpb25zO1xuICAgIHRpbWVvdXQgPSBwYXJzZUludCh0aW1lb3V0KSB8fCA1MDAwO1xuICAgIGF0dGVtcHRzID0gcGFyc2VJbnQoYXR0ZW1wdHMpIHx8IDEwO1xuXG4gICAgYXdhaXQgZW5zdXJlSW5mcmFzdHJ1Y3R1cmVCb290ZWQoXCJib290LW9yZy1jLXBlZXItMFwiLCB0aW1lb3V0LCBhdHRlbXB0cyk7XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGBJbmZyYXN0cnVjdHVyZSBib290ZWQgc3VjY2Vzc2Z1bGx5IChhY2NvcmRpbmcgdG8gY29udGFpbmVyICR7Y29udGFpbmVyfSkhYFxuICAgICk7XG4gIH0pO1xuXG5jb25zdCBkZXBsb3lDb250cmFjdCA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJkZXBsb3ktY29udHJhY3RcIilcbiAgLmRlc2NyaXB0aW9uKFwiZGVwbG95cyB0aGUgc2VsZWN0ZWQgY29udHJhY3RcIilcbiAgLm9wdGlvbihcIi0tbmFtZSA8U3RyaW5nPlwiLCBcIkNvbnRyYWN0IE5hbWUgKGFuZCBmb2xkZXIpXCIpXG4gIC5vcHRpb24oXCItLWlucHV0IDxTdHJpbmc+XCIsIFwiaW5wdXQgZm9sZGVyXCIpXG4gIC5vcHRpb24oXG4gICAgXCItLXRyYWNrZXJGb2xkZXIgPFN0cmluZz5cIixcbiAgICBcImNvbnRyYWN0IHZlcnNpb24gdHJhY2tlciBmb2xkZXIgKHNob3VsZCBiZSBkZWxldGVkIG9uIGluZnJhc3RydWN0dXJlOmRvd24pXCIsXG4gICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwidGVzdHNcIiwgXCJpbnRlZ3JhdGlvblwiLCBcImNoYWluY29kZVRyYWNrZXJzXCIpXG4gIClcbiAgLm9wdGlvbihcbiAgICBcIi0tcGVlcnMgPFN0cmluZz5cIixcbiAgICBcImNvbW1hIHNlcGFyYXRlZCBwZWVyIGlkc1wiLFxuICAgIFwib3JnLWEtcGVlci0wLG9yZy1iLXBlZXItMCxvcmctYy1wZWVyLTBcIlxuICApXG4gIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoXG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwicGFja2FnZS5qc29uXCIpLCBcInV0Zi04XCIpXG4gICAgKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBwa2cudmVyc2lvbjtcblxuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJkZXBsb3ktY29udHJhY3RcIik7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHJ1bm5pbmcgd2l0aCBvcHRpb25zOiAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMpfSBmb3IgJHtwa2cubmFtZX0gdmVyc2lvbiAke3ZlcnNpb259YFxuICAgICk7XG4gICAgY29uc3QgeyBuYW1lLCBpbnB1dCwgcGVlcnMsIHRyYWNrZXJGb2xkZXIgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgcGVlcklkcyA9IHBlZXJzLnNwbGl0KFwiLFwiKTtcblxuICAgIGNvbnN0IGNvdW50UGF0aCA9IHBhdGgucmVzb2x2ZShwYXRoLmpvaW4odHJhY2tlckZvbGRlciwgYCR7bmFtZX0uY291bnRgKSk7XG5cbiAgICBsZXQgc2VxdWVuY2U6IG51bWJlcjtcblxuICAgIHRyeSB7XG4gICAgICBzZXF1ZW5jZSA9IHBhcnNlSW50KGZzLnJlYWRGaWxlU3luYyhjb3VudFBhdGgpLnRvU3RyaW5nKFwidXRmLThcIikpO1xuICAgICAgaWYgKGlzTmFOKHNlcXVlbmNlKSkgc2VxdWVuY2UgPSAxO1xuICAgICAgZWxzZSBzZXF1ZW5jZSArPSAxO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHNlcXVlbmNlID0gMTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBwZWVyIG9mIHBlZXJJZHMpIHtcbiAgICAgICAgcGFja2FnZUNvbnRyYWN0KHBlZXIsIGlucHV0LCBuYW1lLCB2ZXJzaW9uKTtcbiAgICAgICAgaW5zdGFsbENvbnRyYWN0KHBlZXIsIG5hbWUpO1xuICAgICAgICBhcHByb3ZlQ29udHJhY3QoXG4gICAgICAgICAgcGVlcixcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIHBlZXIgPT09IFwib3JnLWEtcGVlci0wXCJcbiAgICAgICAgICAgID8gXCJ0bHMtY2EtY2VydC5wZW1cIlxuICAgICAgICAgICAgOiBcIm9yZGVyZXItdGxzLWNhLWNlcnQucGVtXCIsXG4gICAgICAgICAgc2VxdWVuY2UsXG4gICAgICAgICAgdmVyc2lvblxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhjb3VudFBhdGgsIHNlcXVlbmNlLnRvU3RyaW5nKCkpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBsb2cuZXJyb3IoXCJFcnJvciBkZXBsb3lpbmcgY29udHJhY3Q6XCIsIGVycik7XG4gICAgfVxuICAgIGNvbW1pdENoYWluY29kZShuYW1lLCBzZXF1ZW5jZSwgdmVyc2lvbik7XG4gIH0pO1xuXG5jb25zdCBnZXRDcnlwdG9NYXRlcmlhbCA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJnZXQtY3J5cHRvLW1hdGVyaWFsXCIpXG4gIC5kZXNjcmlwdGlvbihcImNvcGllcyB0aGUgY3J5cHRvIG1hdGVyaWFsIHRvIHRoZSBzZWxlY3RlZCBmb2xkZXJcIilcbiAgLm9wdGlvbihcIi0tZm9sZGVyIDxTdHJpbmc+XCIsIFwib3V0cHV0IGZvbGRlclwiLCBcImRvY2tlci9kb2NrZXItZGF0YVwiKVxuICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInBhY2thZ2UuanNvblwiKSwgXCJ1dGYtOFwiKVxuICAgICk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gcGtnLnZlcnNpb247XG5cbiAgICBjb25zdCBsb2cgPSBsb2dnZXIuZm9yKFwiZ2V0LWNyeXB0by1tYXRlcmlhbFwiKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgcnVubmluZyB3aXRoIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9IGZvciAke3BrZy5uYW1lfSB2ZXJzaW9uICR7dmVyc2lvbn1gXG4gICAgKTtcbiAgICBjb25zdCB7IGZvbGRlciB9ID0gb3B0aW9ucztcbiAgICBleGVjU3luYyhgZG9ja2VyIGNwIG9yZy1hOi93ZWF2ZXIvY2xpZW50Ly4gJHtmb2xkZXJ9YCwge1xuICAgICAgY3dkOiBwcm9jZXNzLmN3ZCgpLFxuICAgIH0pO1xuICB9KTtcblxuY29uc3QgZmFicmljQ21kID0gbmV3IENvbW1hbmQoKVxuICAubmFtZShcImZvci1mYWJyaWNcIilcbiAgLmNvbW1hbmQoXCJmYWJyaWNcIilcbiAgLmRlc2NyaXB0aW9uKFxuICAgIFwiZXhwb3NlcyBzZXZlcmFsIGNvbW1hbmRzIHRvIGhlbHAgbWFuYWdlIHRoZSBmYWJyaWMgaW5mcmFzdHJ1Y3R1cmVcIlxuICApO1xuXG5mYWJyaWNDbWQuYWRkQ29tbWFuZChjb21waWxlQ29tbWFuZCk7XG5mYWJyaWNDbWQuYWRkQ29tbWFuZChleHRyYWN0SW5kZXhlcyk7XG5mYWJyaWNDbWQuYWRkQ29tbWFuZChlbnN1cmVJbmZyYSk7XG5mYWJyaWNDbWQuYWRkQ29tbWFuZChkZXBsb3lDb250cmFjdCk7XG5mYWJyaWNDbWQuYWRkQ29tbWFuZChnZXRDcnlwdG9NYXRlcmlhbCk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZhYnJpYygpIHtcbiAgcmV0dXJuIGZhYnJpY0NtZDtcbn1cbiJdfQ==
248
+ //# sourceMappingURL=cli-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-module.js","sourceRoot":"","sources":["../src/cli-module.ts"],"names":[],"mappings":"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"}
package/lib/cli-utils.cjs CHANGED
@@ -238,4 +238,4 @@ function getContractStartCommand(debug, ccaas) {
238
238
  }
239
239
  return debug ? ScriptCommands.START_DEBUG : ScriptCommands.START;
240
240
  }
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLQSxzREFlQztBQUVELGdFQVdDO0FBRUQsMENBYUM7QUFFRCwwQ0FJQztBQUVELDBDQWVDO0FBRUQsd0NBdUNDO0FBRUQsMENBZUM7QUFFRCwwREF3Q0M7QUFFRCxvQkFHQztBQUVELDBDQWlDQztBQUVELHdDQStCQztBQUVELHdEQWtDQztBQTJCRCwwREFLQztBQXhURCxpREFBeUM7QUFDekMsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QiwyREFBd0Q7QUFFeEQsU0FBZ0IscUJBQXFCLENBQ25DLGdCQUF3QixtQkFBbUI7SUFFM0MsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBQSx3QkFBUSxFQUNyQixrQkFBa0IsYUFBYSxpQ0FBaUMsQ0FDakU7YUFDRSxRQUFRLEVBQUU7YUFDVixJQUFJLEVBQUUsQ0FBQztRQUVWLE9BQU8sTUFBTSxLQUFLLEdBQUcsQ0FBQztJQUN4QixDQUFDO0lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRU0sS0FBSyxVQUFVLDBCQUEwQixDQUM5QyxnQkFBd0IsbUJBQW1CLEVBQzNDLFVBQWtCLElBQUksRUFDdEIsV0FBbUIsRUFBRTtJQUVyQixPQUFPLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUM3QyxJQUFJLEVBQUUsUUFBUSxJQUFJLENBQUM7WUFBRSxNQUFNLElBQUksNkJBQWEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRTFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUNBQXVDLENB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LENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7QUFDbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZGlkSW5mcmFzdHJ1Y3R1cmVCb290KFxuICBjb250YWluZXJOYW1lOiBzdHJpbmcgPSBcImJvb3Qtb3JnLWMtcGVlci0wXCJcbik6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKFxuICAgICAgYGRvY2tlciBpbnNwZWN0ICR7Y29udGFpbmVyTmFtZX0gLS1mb3JtYXQ9J3t7LlN0YXRlLkV4aXRDb2RlfX0nYFxuICAgIClcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAudHJpbSgpO1xuXG4gICAgcmV0dXJuIG91dHB1dCA9PT0gXCIwXCI7XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgY29uc29sZS5lcnJvcihcIkVycm9yIGluc3BlY3RpbmcgY29udGFpbmVyOlwiLCBlcnIubWVzc2FnZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVJbmZyYXN0cnVjdHVyZUJvb3RlZChcbiAgY29udGFpbmVyTmFtZTogc3RyaW5nID0gXCJib290LW9yZy1jLXBlZXItMFwiLFxuICB0aW1lb3V0OiBudW1iZXIgPSA1MDAwLFxuICBhdHRlbXB0czogbnVtYmVyID0gMTBcbik6IFByb21pc2U8dm9pZD4ge1xuICB3aGlsZSAoIWRpZEluZnJhc3RydWN0dXJlQm9vdChjb250YWluZXJOYW1lKSkge1xuICAgIGlmICgtLWF0dGVtcHRzIDw9IDApIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiZXhjZWVkZWQgYWxsb3dlZCBhdHRlbXB0c1wiKTtcblxuICAgIGNvbnNvbGUubG9nKFwiV2FpdGluZyBmb3IgaW5mcmFzdHJ1Y3R1cmUgdG8gYm9vdC4uLlwiKTtcbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCB0aW1lb3V0KSk7IC8vIFdhaXQgZm9yIDUgc2Vjb25kcyBiZWZvcmUgcmV0cnlpbmdcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFja2FnZUNvbnRyYWN0KFxuICBkb2NrZXJOYW1lOiBzdHJpbmcsXG4gIGNvbnRyYWN0Rm9sZGVyOiBzdHJpbmcsXG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nLFxuICB2ZXJzaW9uOiBzdHJpbmcgPSBcIjEuMFwiXG4pOiB2b2lkIHtcbiAgZXhlY1N5bmMoYGRvY2tlciBleGVjICR7ZG9ja2VyTmFtZX0gbm9kZSAuL3dlYXZlci9saWIvY29yZS9jbGkuY2pzIHBhY2thZ2UtY2hhaW5jb2RlIC1kIFxcXG4gICAgLS1jaGFpbmNvZGUtcGF0aCAuL3dlYXZlci9jaGFpbmNvZGUvJHtjb250cmFjdEZvbGRlcn0gXFxcbiAgICAtLWxhbmcgbm9kZSBcXFxuICAgIC0tY2hhaW5jb2RlLW91dHB1dCAvd2VhdmVyL3BlZXIvJHtjb250cmFjdE5hbWV9LnRhci5neiBcXFxuICAgIC0tY2hhaW5jb2RlLW5hbWUgJHtjb250cmFjdE5hbWV9IFxcXG4gICAgLS1jaGFpbmNvZGUtdmVyc2lvbiAke3ZlcnNpb259IC1zXG4gICAgYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YWxsQ29udHJhY3QoZG9ja2VyTmFtZTogc3RyaW5nLCBjb250cmFjdE5hbWU6IHN0cmluZykge1xuICBleGVjU3luYyhcbiAgICBgZG9ja2VyIGV4ZWMgJHtkb2NrZXJOYW1lfSBub2RlIC4vd2VhdmVyL2xpYi9jb3JlL2NsaS5janMgaW5zdGFsbC1jaGFpbmNvZGUgLWQgLXMgLS1jaGFpbmNvZGUtcGF0aCAuL3dlYXZlci9wZWVyLyR7Y29udHJhY3ROYW1lfS50YXIuZ3pgXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHByb3ZlQ29udHJhY3QoXG4gIGRvY2tlck5hbWU6IHN0cmluZyxcbiAgY29udHJhY3ROYW1lOiBzdHJpbmcsXG4gIHRsc0NlcnROYW1lOiBzdHJpbmcsXG4gIHNlcXVlbmNlOiBudW1iZXIgPSAxLFxuICB2ZXJzaW9uOiBzdHJpbmcgPSBcIjEuMFwiXG4pIHtcbiAgZXhlY1N5bmMoYGRvY2tlciBleGVjICR7ZG9ja2VyTmFtZX0gbm9kZSAuL3dlYXZlci9saWIvY29yZS9jbGkuY2pzIGFwcHJvdmUtY2hhaW5jb2RlIC1kIC1zIFxcXG4gICAgLS1vcmRlcmVyLWFkZHJlc3Mgb3JnLWEtb3JkZXJlci0wOjcwMjEgXFxcbiAgICAtLWNoYW5uZWwtaWQgc2ltcGxlLWNoYW5uZWwgXFxcbiAgICAtLWNoYWluY29kZS1uYW1lICR7Y29udHJhY3ROYW1lfSBcXFxuICAgIC0tY2hhaW5jb2RlLXZlcnNpb24gJHt2ZXJzaW9ufSBcXFxuICAgIC0tc2VxdWVuY2UgJHtzZXF1ZW5jZX0gXFxcbiAgICAtLWVuYWJsZS10bHMgXFxcbiAgICAtLXRscy1jYS1jZXJ0LWZpbGUgL3dlYXZlci9wZWVyLyR7dGxzQ2VydE5hbWV9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXBsb3lDb250cmFjdChcbiAgY29udHJhY3RGb2xkZXI6IHN0cmluZyxcbiAgY29udHJhY3ROYW1lOiBzdHJpbmcsXG4gIHZlcnNpb246IHN0cmluZyA9IFwiMS4wXCIsXG4gIHBlZXJzOiBzdHJpbmdbXSA9IFtcIm9yZy1hLXBlZXItMFwiLCBcIm9yZy1iLXBlZXItMFwiLCBcIm9yZy1jLXBlZXItMFwiXVxuKSB7XG4gIGxldCBzZXF1ZW5jZTogbnVtYmVyO1xuICBjb25zdCBjb3VudFBhdGggPSBwYXRoLnJlc29sdmUoXG4gICAgcGF0aC5qb2luKFxuICAgICAgYCR7X19kaXJuYW1lfWAsXG4gICAgICBcIi4uXCIsXG4gICAgICBcImludGVncmF0aW9uXCIsXG4gICAgICBcImNoYWluY29kZVRyYWNrZXJzXCIsXG4gICAgICBgJHtjb250cmFjdE5hbWV9LmNvdW50YFxuICAgIClcbiAgKTtcbiAgdHJ5IHtcbiAgICBzZXF1ZW5jZSA9IHBhcnNlSW50KGZzLnJlYWRGaWxlU3luYyhjb3VudFBhdGgpLnRvU3RyaW5nKFwidXRmLThcIikpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgIHNlcXVlbmNlID0gMTtcbiAgfVxuICBmcy53cml0ZUZpbGVTeW5jKGNvdW50UGF0aCwgc2VxdWVuY2UudG9TdHJpbmcoKSk7XG5cbiAgdHJ5IHtcbiAgICBmb3IgKGNvbnN0IHBlZXIgb2YgcGVlcnMpIHtcbiAgICAgIHBhY2thZ2VDb250cmFjdChwZWVyLCBjb250cmFjdEZvbGRlciwgY29udHJhY3ROYW1lLCB2ZXJzaW9uKTtcbiAgICAgIGluc3RhbGxDb250cmFjdChwZWVyLCBjb250cmFjdE5hbWUpO1xuICAgICAgYXBwcm92ZUNvbnRyYWN0KFxuICAgICAgICBwZWVyLFxuICAgICAgICBjb250cmFjdE5hbWUsXG4gICAgICAgIHBlZXIgPT09IFwib3JnLWEtcGVlci0wXCIgPyBcInRscy1jYS1jZXJ0LnBlbVwiIDogXCJvcmRlcmVyLXRscy1jYS1jZXJ0LnBlbVwiLFxuICAgICAgICBzZXF1ZW5jZSxcbiAgICAgICAgdmVyc2lvblxuICAgICAgKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgY29uc29sZS5sb2coXCJFcnJvciBkZXBsb3lpbmcgY29udHJhY3Q6XCIsIGVyci5tZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tbWl0Q2hhaW5jb2RlKFxuICBjb250cmFjdE5hbWU6IHN0cmluZyxcbiAgc2VxdWVuY2U6IG51bWJlciA9IDEsXG4gIHZlcnNpb246IHN0cmluZyA9IFwiMS4wXCJcbik6IHZvaWQge1xuICBleGVjU3luYyhgZG9ja2VyIGV4ZWMgb3JnLWEtcGVlci0wIG5vZGUgLi93ZWF2ZXIvbGliL2NvcmUvY2xpLmNqcyBjb21taXQtY2hhaW5jb2RlIC1kIC1zIFxcXG4gICAgLS1vcmRlcmVyLWFkZHJlc3Mgb3JnLWEtb3JkZXJlci0wOjcwMjEgXFxcbiAgICAtLWNoYW5uZWwtaWQgc2ltcGxlLWNoYW5uZWwgXFxcbiAgICAtLWNoYWluY29kZS1uYW1lICR7Y29udHJhY3ROYW1lfSBcXFxuICAgIC0tY2hhaW5jb2RlLXZlcnNpb24gJHt2ZXJzaW9ufSBcXFxuICAgIC0tc2VxdWVuY2UgJHtzZXF1ZW5jZX0gXFxcbiAgICAtLWVuYWJsZS10bHMgXFxcbiAgICAtLXRscy1jYS1jZXJ0LWZpbGUgL3dlYXZlci9wZWVyL3Rscy1jYS1jZXJ0LnBlbSBcXFxuICAgIC0tcGVlci1hZGRyZXNzZXMgb3JnLWEtcGVlci0wOjcwMzEsb3JnLWItcGVlci0wOjcwMzIsb3JnLWMtcGVlci0wOjcwMzMgXFxcbiAgICAtLXBlZXItcm9vdC10bHMgLi93ZWF2ZXIvcGVlci90bHMtY2EtY2VydC5wZW0sLi93ZWF2ZXIvcGVlci9vcmctYi10bHMtY2EtY2VydC5wZW0sLi93ZWF2ZXIvcGVlci9vcmctYy10bHMtY2EtY2VydC5wZW1gKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuc3VyZUNvbnRyYWN0UmVhZGluZXNzKFxuICBjb250cmFjdE5hbWU6IHN0cmluZyxcbiAgZG9ja2VyTmFtZTogc3RyaW5nID0gXCJvcmctYS1wZWVyLTBcIixcbiAgdGxzQ2VydDogc3RyaW5nID0gXCJ0bHMtY2EtY2VydC5wZW1cIixcbiAgY291bnRlciA9IDBcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHRyeSB7XG4gICAgLy8gUHJlcGFyZSB0aGUgSlNPTiBhcmd1bWVudCBmb3IgdGhlIGNoYWluY29kZVxuICAgIGNvbnN0IGNoYWluY29kZUFyZ3MgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBmdW5jdGlvbjogXCJoZWFsdGhjaGVja1wiLFxuICAgICAgQXJnczogW10sXG4gICAgfSk7XG5cbiAgICBpZiAoY291bnRlciA+IDEwKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICAvLyBJbnZva2UgdGhlIGNoYWluY29kZVxuICAgIGNvbnN0IHJlcyA9IGV4ZWNTeW5jKFxuICAgICAgYGRvY2tlciBleGVjICR7ZG9ja2VyTmFtZX0gcGVlciBjaGFpbmNvZGUgcXVlcnkgXFxcbiAgICAgICAgLUMgc2ltcGxlLWNoYW5uZWwgXFxcbiAgICAgICAgLW4gJHtjb250cmFjdE5hbWV9IFxcXG4gICAgICAgIC1jICcke2NoYWluY29kZUFyZ3N9JyBcXFxuICAgICAgICAtLXRscyAtLWNhZmlsZSAvd2VhdmVyL3BlZXIvJHt0bHNDZXJ0fWBcbiAgICApO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShyZXMudG9TdHJpbmcoKSk7XG5cbiAgICByZXR1cm4gcmVzdWx0LmhlYWx0aGNoZWNrLnRvU3RyaW5nKCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKFwiQ2hhaW5jb2RlIG5vdCByZWFkeS4gUmV0cnlpbmcuLi5cIik7XG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHIpID0+IHNldFRpbWVvdXQociwgNTAwMCkpOyAvLyBXYWl0IGZvciA1IHNlY29uZHMgYmVmb3JlIHJldHJ5aW5nXG4gICAgcmV0dXJuIGVuc3VyZUNvbnRyYWN0UmVhZGluZXNzKFxuICAgICAgY29udHJhY3ROYW1lLFxuICAgICAgZG9ja2VyTmFtZSxcbiAgICAgIHRsc0NlcnQsXG4gICAgICBjb3VudGVyKytcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmltKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc29sZS53YXJuKFwiQ29udHJhY3Qgbm90IHRyaW1taW5nIHJlc3BvbnNlIHByb3Blcmx5OiBcIiwgc3RyKTtcbiAgcmV0dXJuIHN0ci50cmltKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZva2VDaGFpbmNvZGUoXG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nLFxuICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgYXJnczogYW55W10sXG4gIHRyYW5zaWVudDogYW55ID0ge30sXG4gIGRvY2tlck5hbWU6IHN0cmluZyA9IFwib3JnLWEtcGVlci0wXCIsXG4gIHRsczogc3RyaW5nID0gXCJ0bHMtY2EtY2VydC5wZW1cIlxuKSB7XG4gIC8vIFByZXBhcmUgdGhlIEpTT04gYXJndW1lbnQgZm9yIHRoZSBjaGFpbmNvZGVcbiAgY29uc3QgY2hhaW5jb2RlQXJncyA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgIEFyZ3M6IGFyZ3MsXG4gIH0pO1xuXG4gIGNvbnN0IHRyYW5zaWVudERhdGEgPSBKU09OLnN0cmluZ2lmeSh0cmFuc2llbnQpO1xuICBjb25zdCB0cmFuc2llbnRTdHJpbmcgPSBgLS10cmFuc2llbnQgJyR7dHJhbnNpZW50RGF0YX0nYDtcblxuICAvLyBJbnZva2UgdGhlIGNoYWluY29kZVxuICByZXR1cm4gZXhlY1N5bmMoXG4gICAgYGRvY2tlciBleGVjICR7ZG9ja2VyTmFtZX0gcGVlciBjaGFpbmNvZGUgaW52b2tlIFxcXG4gICAgLUMgc2ltcGxlLWNoYW5uZWwgXFxcbiAgICAtbiAke2NvbnRyYWN0TmFtZX0gXFxcbiAgICAtYyAnJHtjaGFpbmNvZGVBcmdzfScgXFxcbiAgICAtLXBlZXJBZGRyZXNzZXMgb3JnLWEtcGVlci0wOjcwMzEgXFxcbiAgICAtLXRsc1Jvb3RDZXJ0RmlsZXMgL3dlYXZlci9wZWVyL3Rscy1jYS1jZXJ0LnBlbSBcXFxuICAgIC0tcGVlckFkZHJlc3NlcyBvcmctYi1wZWVyLTA6NzAzMiBcXFxuICAgIC0tdGxzUm9vdENlcnRGaWxlcyAvd2VhdmVyL3BlZXIvb3JnLWItdGxzLWNhLWNlcnQucGVtIFxcXG4gICAgLS1wZWVyQWRkcmVzc2VzIG9yZy1jLXBlZXItMDo3MDMzIFxcXG4gICAgLS10bHNSb290Q2VydEZpbGVzIC93ZWF2ZXIvcGVlci9vcmctYy10bHMtY2EtY2VydC5wZW0gXFxcbiAgICAtbyBvcmctYS1vcmRlcmVyLTA6NzAyMSBcXFxuICAgIC0tdGxzIC0tY2FmaWxlIC93ZWF2ZXIvcGVlci8ke3Rsc30gXFxcbiAgICAke3RyYW5zaWVudCA/IHRyYW5zaWVudFN0cmluZyA6IFwiXCJ9YFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlDaGFpbmNvZGUoXG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nLFxuICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgYXJnczogYW55W10sXG4gIGRvY2tlck5hbWU6IHN0cmluZyA9IFwib3JnLWEtcGVlci0wXCIsXG4gIHRsczogc3RyaW5nID0gXCJ0bHMtY2EtY2VydC5wZW1cIlxuKSB7XG4gIHRyeSB7XG4gICAgLy8gUHJlcGFyZSB0aGUgSlNPTiBhcmd1bWVudCBmb3IgdGhlIGNoYWluY29kZVxuICAgIGNvbnN0IGNoYWluY29kZUFyZ3MgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgICAgQXJnczogYXJncyxcbiAgICB9KTtcblxuICAgIC8vIEludm9rZSB0aGUgY2hhaW5jb2RlXG4gICAgY29uc3QgcmVzID0gZXhlY1N5bmMoXG4gICAgICBgZG9ja2VyIGV4ZWMgJHtkb2NrZXJOYW1lfSBwZWVyIGNoYWluY29kZSBxdWVyeSBcXFxuICAgICAgICAtQyBzaW1wbGUtY2hhbm5lbCBcXFxuICAgICAgICAtbiAke2NvbnRyYWN0TmFtZX0gXFxcbiAgICAgICAgLWMgJyR7Y2hhaW5jb2RlQXJnc30nIFxcXG4gICAgICAgIC0tdGxzIC0tY2FmaWxlICR7dGxzfWBcbiAgICApO1xuXG4gICAgY29uc3QgcHJvY2Vzc2VkID0gcmVzLnRvU3RyaW5nKCk7XG4gICAgY29uc29sZS5sb2coXCJCbG9ja2NoYWluIHJlYWQ6XCIsIHByb2Nlc3NlZCk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKFwiRmFpbGVkIHRvIHJlYWQgYmxvY2tjaGFpblwiKTtcbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludm9rZVByaXZhdGVDaGFpbmNvZGUoXG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nLFxuICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgYXJnczogYW55W10sXG4gIHRyYW5zaWVudDogYW55ID0ge30sXG4gIGRvY2tlck5hbWU6IHN0cmluZyA9IFwib3JnLWEtcGVlci0wXCIsXG4gIHRsczogc3RyaW5nID0gXCJ0bHMtY2EtY2VydC5wZW1cIlxuKSB7XG4gIC8vIFByZXBhcmUgdGhlIEpTT04gYXJndW1lbnQgZm9yIHRoZSBjaGFpbmNvZGVcbiAgY29uc3QgY2hhaW5jb2RlQXJncyA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgIEFyZ3M6IGFyZ3MsXG4gIH0pO1xuXG4gIGNvbnN0IHRyYW5zaWVudERhdGEgPSBKU09OLnN0cmluZ2lmeSh0cmFuc2llbnQpO1xuICBjb25zdCB0cmFuc2llbnRTdHJpbmcgPSBgLS10cmFuc2llbnQgJyR7dHJhbnNpZW50RGF0YX0nYDtcblxuICAvLyBJbnZva2UgdGhlIGNoYWluY29kZVxuICByZXR1cm4gZXhlY1N5bmMoXG4gICAgYGRvY2tlciBleGVjICR7ZG9ja2VyTmFtZX0gcGVlciBjaGFpbmNvZGUgaW52b2tlIFxcXG4gICAgLUMgc2ltcGxlLWNoYW5uZWwgXFxcbiAgICAtbiAke2NvbnRyYWN0TmFtZX0gXFxcbiAgICAtYyAnJHtjaGFpbmNvZGVBcmdzfScgXFxcbiAgICAtLXBlZXJBZGRyZXNzZXMgb3JnLWEtcGVlci0wOjcwMzEgXFxcbiAgICAtLXRsc1Jvb3RDZXJ0RmlsZXMgL3dlYXZlci9wZWVyL3Rscy1jYS1jZXJ0LnBlbSBcXFxuICAgIC1vIG9yZy1hLW9yZGVyZXItMDo3MDIxIFxcXG4gICAgLS10bHMgLS1jYWZpbGUgL3dlYXZlci9wZWVyLyR7dGxzfSBcXFxuICAgICR7dHJhbnNpZW50ID8gdHJhbnNpZW50U3RyaW5nIDogXCJcIn1gXG4gICk7XG5cbiAgLy8gICAtLXBlZXJBZGRyZXNzZXMgb3JnLWItcGVlci0wOjcwMzIgXFxcbiAgLy8gLS10bHNSb290Q2VydEZpbGVzIC93ZWF2ZXIvcGVlci9vcmctYi10bHMtY2EtY2VydC5wZW0gXFxcbiAgLy8gLS1wZWVyQWRkcmVzc2VzIG9yZy1jLXBlZXItMDo3MDMzIFxcXG4gIC8vIC0tdGxzUm9vdENlcnRGaWxlcyAvd2VhdmVyL3BlZXIvb3JnLWMtdGxzLWNhLWNlcnQucGVtIFxcXG59XG5cbmV4cG9ydCBlbnVtIFNjcmlwdENvbW1hbmRzIHtcbiAgU1RBUlQgPSBcImZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzdGFydCBcXFxuICAgICAgICAgIC0tZ3JwYy5tYXhfcmVjZWl2ZV9tZXNzYWdlX2xlbmd0aCAke0NIQUlOQ09ERV9NQVhSRUNWTVNHU0laRS0xNTcyODY0MH0gXFxcbiAgICAgICAgICAtLWdycGMubWF4X3NlbmRfbWVzc2FnZV9sZW5ndGggJHtDSEFJTkNPREVfTUFYU0VORE1TR1NJWkUtMTU3Mjg2NDB9IFwiLFxuICBTVEFSVF9DQ0FBUyA9IFwiZmFicmljLWNoYWluY29kZS1ub2RlIHNlcnZlciBcXFxuICAgICAgICAgIC0tY2hhaW5jb2RlLWFkZHJlc3M9JENIQUlOQ09ERV9TRVJWRVJfQUREUkVTUyBcXFxuICAgICAgICAgIC0tY2hhaW5jb2RlLWlkPSRDSEFJTkNPREVfSUQgXFxcbiAgICAgICAgICAtLWNoYWluY29kZS10bHMtY2VydC1maWxlPSR7Q0hBSU5DT0RFX1RMU19DRVJUfSBcXFxuICAgICAgICAgIC0tY2hhaW5jb2RlLXRscy1rZXktZmlsZT0ke0NIQUlOQ09ERV9UTFNfS0VZfSBcXFxuICAgICAgICAgIC0tZ3JwYy5tYXhfcmVjZWl2ZV9tZXNzYWdlX2xlbmd0aCAke0NIQUlOQ09ERV9NQVhSRUNWTVNHU0laRS0xNTcyODY0MH0gXFxcbiAgICAgICAgICAtLWdycGMubWF4X3NlbmRfbWVzc2FnZV9sZW5ndGggJHtDSEFJTkNPREVfTUFYU0VORE1TR1NJWkUtMTU3Mjg2NDB9IFxcXG4gICAgICAgICAgLS10bHMuZW5hYmxlZD10cnVlXCIsXG4gIFNUQVJUX0NDQUFTX0RFQlVHID0gXCJub2RlIC0taW5zcGVjdD0wLjAuMC4wOjkyMjkgLi9ub2RlX21vZHVsZXMvLmJpbi9mYWJyaWMtY2hhaW5jb2RlLW5vZGUgc2VydmVyIFxcXG4gICAgICAgICAgLS1jaGFpbmNvZGUtYWRkcmVzcz0kQ0hBSU5DT0RFX1NFUlZFUl9BRERSRVNTIFxcXG4gICAgICAgICAgLS1jaGFpbmNvZGUtaWQ9JENIQUlOQ09ERV9JRCBcXFxuICAgICAgICAgIC0tY2hhaW5jb2RlLXRscy1jZXJ0LWZpbGU9JHtDSEFJTkNPREVfVExTX0NFUlR9IFxcXG4gICAgICAgICAgLS1jaGFpbmNvZGUtdGxzLWtleS1maWxlPSR7Q0hBSU5DT0RFX1RMU19LRVl9IFxcXG4gICAgICAgICAgLS1ncnBjLm1heF9yZWNlaXZlX21lc3NhZ2VfbGVuZ3RoICR7Q0hBSU5DT0RFX01BWFJFQ1ZNU0dTSVpFLTE1NzI4NjQwfSBcXFxuICAgICAgICAgIC0tZ3JwYy5tYXhfc2VuZF9tZXNzYWdlX2xlbmd0aCAke0NIQUlOQ09ERV9NQVhTRU5ETVNHU0laRS0xNTcyODY0MH0gXFxcbiAgICAgICAgICAtLXRscy5lbmFibGVkPXRydWVcIixcbiAgU1RBUlRfREVCVUcgPSBcIm5vZGUgLS1pbnNwZWN0PTAuMC4wLjA6OTIyOSAvdXNyL2xvY2FsL3NyYy9ub2RlX21vZHVsZXMvLmJpbi9mYWJyaWMtY2hhaW5jb2RlLW5vZGUgc3RhcnQgXFxcbiAgICAgICAgICAtLWdycGMubWF4X3JlY2VpdmVfbWVzc2FnZV9sZW5ndGggJHtDSEFJTkNPREVfTUFYUkVDVk1TR1NJWkUtMTU3Mjg2NDB9IFxcXG4gICAgICAgICAgLS1ncnBjLm1heF9zZW5kX21lc3NhZ2VfbGVuZ3RoICR7Q0hBSU5DT0RFX01BWFNFTkRNU0dTSVpFLTE1NzI4NjQwfVwiXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb250cmFjdFN0YXJ0Q29tbWFuZChkZWJ1ZzogYm9vbGVhbiwgY2NhYXM6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBpZiAoY2NhYXMpIHtcbiAgICByZXR1cm4gZGVidWcgPyBTY3JpcHRDb21tYW5kcy5TVEFSVF9DQ0FBU19ERUJVRyA6IFNjcmlwdENvbW1hbmRzLlNUQVJUX0NDQUFTO1xuICB9XG4gIHJldHVybiBkZWJ1ZyA/IFNjcmlwdENvbW1hbmRzLlNUQVJUX0RFQlVHIDogU2NyaXB0Q29tbWFuZHMuU1RBUlQ7XG59Il19
241
+ //# sourceMappingURL=cli-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-utils.js","sourceRoot":"","sources":["../src/cli-utils.ts"],"names":[],"mappings":"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"}
@@ -867,4 +867,4 @@ __decorate([
867
867
  ], FabricClientAdapter.prototype, "raw", null);
868
868
  FabricClientAdapter.decoration();
869
869
  core_1.Adapter.setCurrent(constants_1.FabricFlavour);
870
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50QWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50QWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBQzdCLHVEQUFxRTtBQUNyRSwyQ0FBdUM7QUFDdkMsb0RBQXNDO0FBQ3RDLHlFQUl3QztBQUN4QywrQ0FBMEQ7QUFFMUQsZ0VBUXFDO0FBQ3JDLCtDQUFxRDtBQUNyRCwyREFVaUM7QUFDakMseUNBb0J3QjtBQUN4Qix5REFBb0Q7QUFDcEQsdUVBQThEO0FBRTlELGlEQUFzRDtBQUV0RCx1RUFBZ0U7QUFDaEUsdUVBQWdFO0FBQ2hFLHlFQUFrRTtBQUNsRSxtREFLMEI7QUFFMUIsK0NBQXVEO0FBQ3ZELDRDQUFvQjtBQUNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrREc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLGNBS3hDO0lBQ0M7O09BRUc7YUFDWSxZQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEFBQTFCLENBQTJCO2FBRWxDLGVBQVUsR0FBRyxJQUFJLG1DQUFnQixFQUFFLEFBQXpCLENBQTBCO2FBRWxDLFFBQUcsR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxBQUFuQyxDQUFvQztJQUt4RDs7Ozs7T0FLRztJQUNILFlBQVksTUFBa0IsRUFBRSxLQUFjO1FBQzVDLEtBQUssQ0FBQyxNQUFNLEVBQUUseUJBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQVZuQixlQUFVLEdBQzNCLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztJQVVqQyxDQUFDO0lBRVEsU0FBUyxDQUNoQixTQUFpQztRQUVqQyxPQUFPLElBQUksNkNBQXFCLENBQUMsSUFBSSxFQUFFLFNBQVMs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QUU7O2lFQUdJLENBQUMsb0JBQUQsQ0FBQyx3Q0FFYSxjQUFPOzs4Q0F3Q2hDO0FBd2NILG1CQUFtQixDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2pDLGNBQU8sQ0FBQyxVQUFVLENBQUMseUJBQWEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc2hhcmVkL292ZXJyaWRlc1wiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMsIHR5cGUgTWFuZ29RdWVyeSB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IENsaWVudCB9IGZyb20gXCJAZ3JwYy9ncnBjLWpzXCI7XG5pbXBvcnQgKiBhcyBncnBjIGZyb20gXCJAZ3JwYy9ncnBjLWpzXCI7XG5pbXBvcnQge1xuICBNb2RlbCxcbiAgdHlwZSBNb2RlbENvbnN0cnVjdG9yLFxuICB0eXBlIFNlcmlhbGl6ZXIsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGRlYnVnLCBmaW5hbCwgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgdHlwZSBQZWVyQ29uZmlnLCB0eXBlIFNlZ3JlZ2F0ZWRNb2RlbCB9IGZyb20gXCIuLi9zaGFyZWQvdHlwZXNcIjtcbmltcG9ydCB7XG4gIGNvbm5lY3QsXG4gIHR5cGUgQ29ubmVjdE9wdGlvbnMsXG4gIEdhdGV3YXksXG4gIE5ldHdvcmssXG4gIFByb3Bvc2FsT3B0aW9ucyxcbiAgQ29udHJhY3QgYXMgQ29udHJha3QsXG4gIHR5cGUgU2lnbmVyLFxufSBmcm9tIFwiQGh5cGVybGVkZ2VyL2ZhYnJpYy1nYXRld2F5XCI7XG5pbXBvcnQgeyBnZXRJZGVudGl0eSwgZ2V0U2lnbmVyIH0gZnJvbSBcIi4vZmFicmljLWZzXCI7XG5pbXBvcnQge1xuICBCYXNlRXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG4gIFNlcmlhbGl6YXRpb25FcnJvcixcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICBOb3RGb3VuZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBCYWRSZXF1ZXN0RXJyb3IsXG4gIHR5cGUgUHJpbWFyeUtleVR5cGUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ29udGV4dCxcbiAgQWRhcHRlcixcbiAgdHlwZSBBZGFwdGVyRmxhZ3MsXG4gIEF1dGhvcml6YXRpb25FcnJvcixcbiAgQ29ubmVjdGlvbkVycm9yLFxuICBGb3JiaWRkZW5FcnJvcixcbiAgTWlncmF0aW9uRXJyb3IsXG4gIE9ic2VydmVyRXJyb3IsXG4gIFBhZ2luZ0Vycm9yLFxuICBQZXJzaXN0ZW5jZUtleXMsXG4gIFF1ZXJ5RXJyb3IsXG4gIFJlcG9zaXRvcnksXG4gIFVuc3VwcG9ydGVkRXJyb3IsXG4gIFN0YXRlbWVudCxcbiAgdHlwZSBQcmVwYXJlZFN0YXRlbWVudCxcbiAgUGFnaW5hdG9yLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIENvbnRleHR1YWxBcmdzLFxuICB0eXBlIFByZXBhcmVkTW9kZWwsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljRmxhdm91ciB9IGZyb20gXCIuLi9zaGFyZWQvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBDbGllbnRTZXJpYWxpemVyIH0gZnJvbSBcIi4uL3NoYXJlZC9DbGllbnRTZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnREaXNwYXRjaCB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudERpc3BhdGNoXCI7XG5pbXBvcnQgeyBIU01TaWduZXJGYWN0b3J5Q3VzdG9tIH0gZnJvbSBcIi4vZmFicmljLWhzbVwiO1xuaW1wb3J0IHsgdHlwZSBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50U3RhdGVtZW50IH0gZnJvbSBcIi4vRmFicmljQ2xpZW50U3RhdGVtZW50XCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRQYWdpbmF0b3IgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRQYWdpbmF0b3JcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRSZXBvc2l0b3J5XCI7XG5pbXBvcnQge1xuICBFbmRvcnNlbWVudEVycm9yLFxuICBFbmRvcnNlbWVudFBvbGljeUVycm9yLFxuICBNdmNjUmVhZENvbmZsaWN0RXJyb3IsXG4gIFBoYW50b21SZWFkQ29uZmxpY3RFcnJvcixcbn0gZnJvbSBcIi4uL3NoYXJlZC9lcnJvcnNcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IERlZmF1bHRGYWJyaWNDbGllbnRGbGFncyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3NcbiAqIEBzdW1tYXJ5IFRoZSBGYWJyaWNBZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXIgdG8gcHJvdmlkZSBhIHNlYW1sZXNzIGludGVyZmFjZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3MuXG4gKiBJdCBoYW5kbGVzIGNvbm5lY3Rpb24gbWFuYWdlbWVudCwgdHJhbnNhY3Rpb24gc3VibWlzc2lvbiwgYW5kIENSVUQgb3BlcmF0aW9ucyBhZ2FpbnN0IEZhYnJpYyBjaGFpbmNvZGUuXG4gKiBAdGVtcGxhdGUgUGVlckNvbmZpZyAtIENvbmZpZ3VyYXRpb24gdHlwZSBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAdGVtcGxhdGUgRmFicmljRmxhZ3MgLSBGbGFncyBzcGVjaWZpYyB0byBGYWJyaWMgb3BlcmF0aW9uc1xuICogQHRlbXBsYXRlIENvbnRleHQ8RmFicmljRmxhZ3M+IC0gQ29udGV4dCB0eXBlIGNvbnRhaW5pbmcgRmFicmljLXNwZWNpZmljIGZsYWdzXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAcGFyYW0gYWxpYXMgLSBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIGFkYXB0ZXIgaW5zdGFuY2VcbiAqIEBjbGFzcyBGYWJyaWNDbGllbnRBZGFwdGVyXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0FkYXB0ZXIgaW5zdGFuY2VcbiAqIGNvbnN0IGNvbmZpZzogUGVlckNvbmZpZyA9IHtcbiAqICAgbXNwSWQ6ICdPcmcxTVNQJyxcbiAqICAgcGVlckVuZHBvaW50OiAnbG9jYWxob3N0OjcwNTEnLFxuICogICBjaGFubmVsTmFtZTogJ215Y2hhbm5lbCcsXG4gKiAgIGNoYWluY29kZU5hbWU6ICdteWNjJyxcbiAqICAgY29udHJhY3ROYW1lOiAnbXljb250cmFjdCcsXG4gKiAgIHRsc0NlcnRQYXRoOiAnL3BhdGgvdG8vdGxzL2NlcnQnLFxuICogICBjZXJ0RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2NlcnQvZGlyJyxcbiAqICAga2V5RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2tleS9kaXInXG4gKiB9O1xuICpcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgRmFicmljQWRhcHRlcihjb25maWcsICdvcmcxLWFkYXB0ZXInKTtcbiAqXG4gKiAvLyBVc2UgdGhlIGFkYXB0ZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgRmFicmljIG5ldHdvcmtcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFkYXB0ZXIucmVhZCgndXNlcnMnLCAndXNlcjEnLCBteVNlcmlhbGl6ZXIpO1xuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAqICAgcGFydGljaXBhbnQgTmV0d29ya1xuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAqXG4gKiAgIENsaWVudC0+PkZhYnJpY0FkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCBtb2RlbCwgdHJhbnNpZW50LCBzZXJpYWxpemVyKVxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogc3VibWl0VHJhbnNhY3Rpb24oT3BlcmF0aW9uS2V5cy5DUkVBVEUsIFtzZXJpYWxpemVkTW9kZWxdLCB0cmFuc2llbnQpXG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbE5hbWUpXG4gKiAgIE5ldHdvcmstPj5Db250cmFjdDogZ2V0Q29udHJhY3QoY2hhaW5jb2RlTmFtZSwgY29udHJhY3ROYW1lKVxuICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IHN1Ym1pdChhcGksIHByb3Bvc2FsT3B0aW9ucylcbiAqICAgQ29udHJhY3QtPj5DaGFpbmNvZGU6IGludm9rZVxuICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogZGVjb2RlKHJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoZGVjb2RlZFJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0tPj5DbGllbnQ6IGRlc2VyaWFsaXplZFJlc3VsdFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50QWRhcHRlciBleHRlbmRzIEFkYXB0ZXI8XG4gIFBlZXJDb25maWcsXG4gIENsaWVudCxcbiAgTWFuZ29RdWVyeSxcbiAgQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz5cbj4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN0YXRpYyB0ZXh0IGRlY29kZXIgZm9yIGNvbnZlcnRpbmcgVWludDhBcnJheSB0byBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpO1xuXG4gIHByaXZhdGUgc3RhdGljIHNlcmlhbGl6ZXIgPSBuZXcgQ2xpZW50U2VyaWFsaXplcigpO1xuXG4gIHByb3RlY3RlZCBzdGF0aWMgbG9nID0gTG9nZ2luZy5mb3IoRmFicmljQ2xpZW50QWRhcHRlcik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcmlhbGl6ZXI6IFNlcmlhbGl6ZXI8YW55PiA9XG4gICAgRmFicmljQ2xpZW50QWRhcHRlci5zZXJpYWxpemVyO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBGYWJyaWNBZGFwdGVyIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgbmV3IGFkYXB0ZXIgZm9yIGludGVyYWN0aW5nIHdpdGggYSBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya1xuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FsaWFzXSAtIE9wdGlvbmFsIGFsaWFzIGZvciB0aGUgYWRhcHRlciBpbnN0YW5jZVxuICAgKi9cbiAgY29uc3RydWN0b3IoY29uZmlnOiBQZWVyQ29uZmlnLCBhbGlhcz86IHN0cmluZykge1xuICAgIHN1cGVyKGNvbmZpZywgRmFicmljRmxhdm91ciwgYWxpYXMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgU3RhdGVtZW50PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3ZlcnJpZGVzPzogUGFydGlhbDxBZGFwdGVyRmxhZ3M+XG4gICk6IFN0YXRlbWVudDxNLCBGYWJyaWNDbGllbnRBZGFwdGVyLCBhbnksIE1hbmdvUXVlcnk+IHtcbiAgICByZXR1cm4gbmV3IEZhYnJpY0NsaWVudFN0YXRlbWVudCh0aGlzLCBvdmVycmlkZXMpO1xuICB9XG5cbiAgUGFnaW5hdG9yPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgcXVlcnk6IFByZXBhcmVkU3RhdGVtZW50PGFueT4gfCBNYW5nb1F1ZXJ5LFxuICAgIHNpemU6IG51bWJlcixcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT5cbiAgKTogUGFnaW5hdG9yPE0sIGFueSwgTWFuZ29RdWVyeT4ge1xuICAgIHJldHVybiBuZXcgRmFicmljQ2xpZW50UGFnaW5hdG9yKHRoaXMsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb250ZXh0PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3BlcmF0aW9uOlxuICAgICAgfCBPcGVyYXRpb25LZXlzLkNSRUFURVxuICAgICAgfCBPcGVyYXRpb25LZXlzLlJFQURcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5VUERBVEVcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5ERUxFVEVcbiAgICAgIHwgc3RyaW5nLFxuICAgIG92ZXJyaWRlczogUGFydGlhbDxGYWJyaWNDbGllbnRGbGFncz4sXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+IHwgQ29uc3RydWN0b3I8TT5bXSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PiB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuY29udGV4dCk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYENyZWF0aW5nIG5ldyBjb250ZXh0IGZvciAke29wZXJhdGlvbn0gb3BlcmF0aW9uIG9uICR7QXJyYXkuaXNBcnJheShtb2RlbCkgPyBtb2RlbC5tYXAoKG0pID0+IG0ubmFtZSkgOiBtb2RlbC5uYW1lfSBtb2RlbCB3aXRoIGZsYWcgb3ZlcnJpZGVzOiAke0pTT04uc3RyaW5naWZ5KG92ZXJyaWRlcyl9YFxuICAgICk7XG4gICAgY29uc3QgZmxhZ3MgPSBhd2FpdCB0aGlzLmZsYWdzKFxuICAgICAgb3BlcmF0aW9uLFxuICAgICAgbW9kZWwsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBEZWZhdWx0RmFicmljQ2xpZW50RmxhZ3MsIG92ZXJyaWRlcyksXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IENvbnRleHQoKS5hY2N1bXVsYXRlKGZsYWdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVjb2RlcyBhIFVpbnQ4QXJyYXkgdG8gYSBzdHJpbmdcbiAgICogQHN1bW1hcnkgQ29udmVydHMgYmluYXJ5IGRhdGEgcmVjZWl2ZWQgZnJvbSBGYWJyaWMgdG8gYSBzdHJpbmcgdXNpbmcgVVRGLTggZW5jb2RpbmdcbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSBkYXRhIC0gVGhlIGJpbmFyeSBkYXRhIHRvIGRlY29kZVxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBkZWNvZGVkIHN0cmluZ1xuICAgKi9cbiAgZGVjb2RlKGRhdGE6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmRlY29kZXIuZGVjb2RlKGRhdGEpO1xuICB9XG5cbiAgb3ZlcnJpZGUgcmVwb3NpdG9yeTxcbiAgICBSIGV4dGVuZHMgUmVwb3NpdG9yeTxcbiAgICAgIGFueSxcbiAgICAgIEFkYXB0ZXI8UGVlckNvbmZpZywgQ2xpZW50LCBNYW5nb1F1ZXJ5LCBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgICA+LFxuICA+KCk6IENvbnN0cnVjdG9yPFI+IHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50UmVwb3NpdG9yeSBhcyB1bmtub3duIGFzIENvbnN0cnVjdG9yPFI+O1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVByZWZpeDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBbQ29uc3RydWN0b3I8TT4sIFByaW1hcnlLZXlUeXBlLCBSZWNvcmQ8c3RyaW5nLCBhbnk+LCAuLi5hbnlbXSwgQ29udGV4dF0ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVQcmVmaXgpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IHRhYmxlTmFtZTtcbiAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWwpO1xuICAgIHJldHVybiBbY2xhenosIGlkLCByZWNvcmQsIC4uLmN0eEFyZ3NdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcmVwYXJlcyBtdWx0aXBsZSByZWNvcmRzIGZvciBjcmVhdGlvblxuICAgKiBAc3VtbWFyeSBBZGRzIG5lY2Vzc2FyeSBDb3VjaERCIGZpZWxkcyB0byBtdWx0aXBsZSByZWNvcmRzIGJlZm9yZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlXG4gICAqIEBwYXJhbSB7c3RyaW5nW118bnVtYmVyW119IGlkcyAtIFRoZSBJRHMgb2YgdGhlIHJlY29yZHNcbiAgICogQHBhcmFtIG1vZGVscyAtIFRoZSBtb2RlbHMgdG8gcHJlcGFyZVxuICAgKiBAcmV0dXJuIEEgdHVwbGUgY29udGFpbmluZyB0aGUgdGFibGVOYW1lLCBpZHMsIGFuZCBwcmVwYXJlZCByZWNvcmRzXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIGlkcyBhbmQgbW9kZWxzIGFycmF5cyBoYXZlIGRpZmZlcmVudCBsZW5ndGhzXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlQWxsUHJlZml4PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICkge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZUFsbFByZWZpeCk7XG4gICAgY29uc3QgcmVjb3JkcyA9IGlkcy5tYXAoKGlkLCBjb3VudCkgPT4ge1xuICAgICAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsc1tjb3VudF0pO1xuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NsYXp6LCBpZHMsIHJlY29yZHMsIC4uLmN0eEFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUFsbFByZWZpeDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZHM6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVBbGxQcmVmaXgpO1xuICAgIGNvbnN0IHJlY29yZHMgPSBpZHMubWFwKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IHRhYmxlTmFtZTtcbiAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIFtjbGF6eiwgaWRzLCByZWNvcmRzLCAuLi5jdHhBcmdzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBjcmVhdGUgbXVsdGlwbGUgcmVjb3JkcyBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnNcbiAgICogQHBhcmFtIHtBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gbW9kZWxzIC0gQXJyYXkgb2YgcmVjb3JkIGRhdGFcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0cmFuc2llbnQgLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCByZWNvcmRzXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyBjcmVhdGVBbGw8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWRzOiBQcmltYXJ5S2V5VHlwZVtdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uKGFyZ3MgYXMgdW5rbm93biBhcyBhbnlbXSldO1xuICAgIGNvbnN0IHRyYW5zaWVudCA9IGN0eEFyZ3Muc2hpZnQoKSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KFxuICAgICAgY3R4QXJncyBhcyBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj4sXG4gICAgICB0aGlzLmNyZWF0ZUFsbFxuICAgICk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcblxuICAgIGxvZy5pbmZvKGBhZGRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy52ZXJib3NlKGBwa3M6ICR7aWRzfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTCxcbiAgICAgIFtcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtLCBjbGF6ei5uYW1lKSlcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgICB0cmFuc2llbnQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBjbGF6ei5uYW1lXG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyOiBhbnkpID0+IEpTT04ucGFyc2UocikpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byByZWFkIG11bHRpcGxlIHJlY29yZHMgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnMgdG8gcmVhZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCByZWNvcmRzXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyByZWFkQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlYWRBbGwpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLmluZm8oYHJlYWRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy52ZXJib3NlKGBwa3M6ICR7aWRzfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5SRUFEX0FMTCxcbiAgICAgIFtKU09OLnN0cmluZ2lmeShpZHMpXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6Lm5hbWVcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKS5tYXAoKHI6IGFueSkgPT4gSlNPTi5wYXJzZShyKSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gdXBkYXRlIG11bHRpcGxlIHJlY29yZHMgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzXG4gICAqIEBwYXJhbSB7QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj59IG1vZGVscyAtIEFycmF5IG9mIHVwZGF0ZWQgcmVjb3JkIGRhdGFcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0cmFuc2llbnQgLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCByZWNvcmRzXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVBbGw8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWRzOiBQcmltYXJ5S2V5VHlwZVtdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uKGFyZ3MgYXMgdW5rbm93biBhcyBhbnlbXSldO1xuICAgIGNvbnN0IHRyYW5zaWVudCA9IGN0eEFyZ3Muc2hpZnQoKSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KFxuICAgICAgY3R4QXJncyBhcyBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj4sXG4gICAgICB0aGlzLnVwZGF0ZUFsbFxuICAgICk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cuaW5mbyhgdXBkYXRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy52ZXJib3NlKGBwa3M6ICR7aWRzfWApO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLFxuICAgICAgW1xuICAgICAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBtb2RlbHMubWFwKChtKSA9PiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG0sIGNsYXp6Lm5hbWUpKVxuICAgICAgICApLFxuICAgICAgXSxcbiAgICAgIHRyYW5zaWVudCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6Lm5hbWVcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKS5tYXAoKHI6IGFueSkgPT4gSlNPTi5wYXJzZShyKSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gZGVsZXRlIG11bHRpcGxlIHJlY29yZHMgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+fSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnMgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSB7U2VyaWFsaXplcjxhbnk+fSBzZXJpYWxpemVyIC0gU2VyaWFsaXplciBmb3IgdGhlIG1vZGVsIGRhdGFcbiAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZWxldGVkIHJlY29yZHNcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZUFsbDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZHM6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gQWRhcHRlci5sb2dDdHgoYXJncywgdGhpcy5kZWxldGVBbGwpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLmluZm8oYGRlbGV0aW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsXG4gICAgICBbSlNPTi5zdHJpbmdpZnkoaWRzKV0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBjbGF6ei5uYW1lXG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyOiBhbnkpID0+IEpTT04ucGFyc2UocikpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcmVwYXJlcyBhIG1vZGVsIGZvciBwZXJzaXN0ZW5jZVxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBhIG1vZGVsIGluc3RhbmNlIGludG8gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGRhdGFiYXNlIHN0b3JhZ2UsXG4gICAqIGhhbmRsaW5nIGNvbHVtbiBtYXBwaW5nIGFuZCBzZXBhcmF0aW5nIHRyYW5zaWVudCBwcm9wZXJ0aWVzXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAgICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZSB0byBwcmVwYXJlXG4gICAqIEBwYXJhbSBwayAtIFRoZSBwcmltYXJ5IGtleSBwcm9wZXJ0eSBuYW1lXG4gICAqIEByZXR1cm4gVGhlIHByZXBhcmVkIGRhdGFcbiAgICovXG4gIG92ZXJyaWRlIHByZXBhcmU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBtb2RlbDogTSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogU2VncmVnYXRlZE1vZGVsPE0+ICYgUHJlcGFyZWRNb2RlbCB7XG4gICAgY29uc3QgeyBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucHJlcGFyZSk7XG4gICAgY29uc3Qgc3BsaXQgPSBNb2RlbC5zZWdyZWdhdGUobW9kZWwpO1xuICAgIGlmICgobW9kZWwgYXMgYW55KVtQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEFdKSB7XG4gICAgICBsb2cuc2lsbHkoXG4gICAgICAgIGBQYXNzaW5nIGFsb25nIHBlcnNpc3RlbmNlIG1ldGFkYXRhIGZvciAkeyhtb2RlbCBhcyBhbnkpW1BlcnNpc3RlbmNlS2V5cy5NRVRBREFUQV19YFxuICAgICAgKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzcGxpdC5tb2RlbCwgUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBLCB7XG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IChtb2RlbCBhcyBhbnkpW1BlcnNpc3RlbmNlS2V5cy5NRVRBREFUQV0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVjb3JkOiBzcGxpdC5tb2RlbCxcbiAgICAgIG1vZGVsOiBzcGxpdC5tb2RlbCxcbiAgICAgIGlkOiBtb2RlbFtNb2RlbC5wayhtb2RlbC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjxNPildIGFzIHN0cmluZyxcbiAgICAgIHRyYW5zaWVudDogc3BsaXQudHJhbnNpZW50LFxuICAgICAgcHJpdmF0ZTogc3BsaXQucHJpdmF0ZSxcbiAgICAgIHNoYXJlZDogc3BsaXQuc2hhcmVkLFxuICAgIH07XG4gIH1cblxuICBvdmVycmlkZSByZXZlcnQ8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICB0cmFuc2llbnQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBNIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXZlcnQpO1xuICAgIGlmICh0cmFuc2llbnQpIHtcbiAgICAgIGxvZy52ZXJib3NlKFxuICAgICAgICBgcmUtYWRkaW5nIHRyYW5zaWVudCBwcm9wZXJ0aWVzOiAke09iamVjdC5rZXlzKHRyYW5zaWVudCkuam9pbihcIiwgXCIpfWBcbiAgICAgICk7XG4gICAgICBPYmplY3QuZW50cmllcyh0cmFuc2llbnQgYXMgUmVjb3JkPHN0cmluZywgYW55PikuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICBpZiAoa2V5IGluIG9iailcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBUcmFuc2llbnQgcHJvcGVydHkgJHtrZXl9IGFscmVhZHkgZXhpc3RzIG9uIG1vZGVsICR7dHlwZW9mIGNsYXp6ID09PSBcInN0cmluZ1wiID8gY2xhenogOiBjbGF6ei5uYW1lfS4gc2hvdWxkIGJlIGltcG9zc2libGVgXG4gICAgICAgICAgKTtcbiAgICAgICAgKG9iaiBhcyBNKVtrZXkgYXMga2V5b2YgTV0gPSB2YWw7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IChjbGF6eiBhcyBDb25zdHJ1Y3RvcjxNPikob2JqKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIGNyZWF0ZSBhIHJlY29yZCBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgcmVjb3JkIGRhdGFcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0cmFuc2llbnQgLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjcmVhdGVkIHJlY29yZFxuICAgKi9cbiAgQGRlYnVnKClcbiAgQGZpbmFsKClcbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICB0cmFuc2llbnQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgY3R4QXJncyA9IFsuLi4oYXJncyBhcyB1bmtub3duIGFzIGFueVtdKV07XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoXG4gICAgICBjdHhBcmdzIGFzIENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PixcbiAgICAgIHRoaXMuY3JlYXRlXG4gICAgKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGxvZy52ZXJib3NlKGBhZGRpbmcgZW50cnkgdG8gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICBbdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtb2RlbCwgY2xhenoubmFtZSldLFxuICAgICAgdHJhbnNpZW50LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xhenoubmFtZVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgYSBzaW5nbGUgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IEV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIHRvIHJlYWQgYSByZWNvcmQgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXRyaWV2ZWQgcmVjb3JkXG4gICAqL1xuICBAZGVidWcoKVxuICBAZmluYWwoKVxuICBhc3luYyByZWFkPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWFkQWxsKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuXG4gICAgbG9nLnZlcmJvc2UoYHJlYWRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cuZGVidWcoYHBrOiAke2lkfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgIFtpZC50b1N0cmluZygpXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6Lm5hbWVcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodGhpcy5kZWNvZGUocmVzdWx0KSk7XG4gIH1cblxuICB1cGRhdGVQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlUHJlZml4KTtcbiAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgIC8vIHJlY29yZFtDb3VjaERCS2V5cy5JRF0gPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsKTtcbiAgICByZXR1cm4gW2NsYXp6LCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHVwZGF0ZSBhIHJlY29yZCBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgcmVjb3JkXG4gICAqL1xuICBAZGVidWcoKVxuICBAZmluYWwoKVxuICBhc3luYyB1cGRhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHRyYW5zaWVudDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCBjdHhBcmdzID0gWy4uLihhcmdzIGFzIHVua25vd24gYXMgYW55W10pXTtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChcbiAgICAgIGN0eEFyZ3MgYXMgQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+LFxuICAgICAgdGhpcy51cGRhdGVBbGxcbiAgICApO1xuICAgIGxvZy5pbmZvKGBDTElFTlQgVVBEQVRFIGNsYXNzIDogJHt0eXBlb2YgY2xhenp9YCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cudmVyYm9zZShgdXBkYXRpbmcgZW50cnkgdG8gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgICBbdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtb2RlbCwgY2xhenoubmFtZSB8fCBjbGF6eildLCAvLyBUT0RPIHNob3VsZCBiZSByZWNldmluZyBjbGFzcyBidXQgaXMgcmVjZWl2aW5nIHN0cmluZ1xuICAgICAgdHJhbnNpZW50LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xhenoubmFtZVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIGRlbGV0ZSBhIHJlY29yZCBmcm9tIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXIgdG8gZGVsZXRlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZWxldGVkIHJlY29yZFxuICAgKi9cbiAgQGRlYnVnKClcbiAgQGZpbmFsKClcbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5kZWxldGUpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLnZlcmJvc2UoYGRlbGV0aW5nIGVudHJ5IGZyb20gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICBbaWQudG9TdHJpbmcoKV0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBjbGF6ei5uYW1lXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlc3VsdCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIHJhdyBxdWVyeSBhZ2FpbnN0IHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBzdW1tYXJ5IEV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIHRvIHBlcmZvcm0gYSBxdWVyeSB1c2luZyBNYW5nbyBRdWVyeSBzeW50YXhcbiAgICogQHRlbXBsYXRlIFYgLSBUaGUgcmV0dXJuIHR5cGVcbiAgICogQHBhcmFtIHtNYW5nb1F1ZXJ5fSByYXdJbnB1dCAtIFRoZSBNYW5nbyBRdWVyeSB0byBleGVjdXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvY2VzcyAtIFdoZXRoZXIgdG8gcHJvY2VzcyB0aGUgcmVzdWx0XG4gICAqIEByZXR1cm4ge1Byb21pc2U8Vj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBxdWVyeSByZXN1bHRcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gICAqICAgcGFydGljaXBhbnQgRmFicmljQWRhcHRlclxuICAgKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gICAqICAgcGFydGljaXBhbnQgQ2hhaW5jb2RlXG4gICAqXG4gICAqICAgQ2xpZW50LT4+RmFicmljQWRhcHRlcjogcmF3KHJhd0lucHV0LCBwcm9jZXNzKVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBKU09OLnN0cmluZ2lmeShyYXdJbnB1dClcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogZXZhbHVhdGVUcmFuc2FjdGlvbihcInF1ZXJ5XCIsIFtpbnB1dF0pXG4gICAqICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBldmFsdWF0ZShcInF1ZXJ5XCIsIHByb3Bvc2FsT3B0aW9ucylcbiAgICogICBDb250cmFjdC0+PkNoYWluY29kZTogaW52b2tlXG4gICAqICAgQ2hhaW5jb2RlLS0+PkNvbnRyYWN0OiByZXNwb25zZVxuICAgKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBKU09OLnBhcnNlKGRlY29kZShyZXN1bHQpKVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBQcm9jZXNzIHJlc3VsdCBiYXNlZCBvbiB0eXBlXG4gICAqICAgRmFicmljQWRhcHRlci0tPj5DbGllbnQ6IHByb2Nlc3NlZCByZXN1bHRcbiAgICovXG4gIEBkZWJ1ZygpXG4gIGFzeW5jIHJhdzxWLCBEIGV4dGVuZHMgYm9vbGVhbj4oXG4gICAgcmF3SW5wdXQ6IE1hbmdvUXVlcnksXG4gICAgZG9jc09ubHk6IEQgPSB0cnVlIGFzIEQsXG4gICAgY2xheno6IE1vZGVsQ29uc3RydWN0b3I8YW55PixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTxWPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yYXcpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IGNsYXp6Lm5hbWU7XG4gICAgbG9nLmluZm8oYFBlcmZvcm1pbmcgcmF3IHN0YXRlbWVudCBvbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZShjbGF6eil9YCk7XG4gICAgbGV0IHRyYW5zYWN0aW9uUmVzdWx0OiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgICBjdHgsXG4gICAgICAgIFwicmF3XCIsXG4gICAgICAgIFtKU09OLnN0cmluZ2lmeShyYXdJbnB1dCksIGRvY3NPbmx5XSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHRhYmxlTmFtZVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuICAgIGxldCByZXN1bHQ6IGFueTtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gSlNPTi5wYXJzZSh0aGlzLmRlY29kZSh0cmFuc2FjdGlvblJlc3VsdCkpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgRmFpbGVkIHRvIHByb2Nlc3MgcmVzdWx0OiAke2V9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VSZWNvcmQgPSAocmVjb3JkOiBSZWNvcmQ8YW55LCBhbnk+KSA9PiB7XG4gICAgICBpZiAoTW9kZWwuaXNNb2RlbChyZWNvcmQpKSByZXR1cm4gTW9kZWwuYnVpbGQocmVjb3JkKTtcbiAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgIGlmICghcmVzdWx0Lmxlbmd0aCkgcmV0dXJuIHJlc3VsdCBhcyBWO1xuICAgICAgY29uc3QgZWwgPSByZXN1bHRbMF07XG4gICAgICBpZiAoTW9kZWwuaXNNb2RlbChlbCkpXG4gICAgICAgIC8vIGlmIHRoZSBmaXJzdCBvbmUgaXMgYSBtb2RlbCwgYWxsIGFyZSBtb2RlbHNcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5tYXAoKGVsKSA9PiBNb2RlbC5idWlsZChlbCkpIGFzIFY7XG4gICAgICByZXR1cm4gcmVzdWx0IGFzIFY7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlUmVjb3JkKHJlc3VsdCBhcyBhbnkpIGFzIFY7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgb3IgY3JlYXRlcyBhIGdSUEMgY2xpZW50IGZvciB0aGUgRmFicmljIHBlZXJcbiAgICogQHN1bW1hcnkgUmV0dXJucyBhIGNhY2hlZCBjbGllbnQgb3IgY3JlYXRlcyBhIG5ldyBvbmUgaWYgbm9uZSBleGlzdHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxDbGllbnQ+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZ1JQQyBjbGllbnRcbiAgICovXG4gIG92ZXJyaWRlIGdldENsaWVudCgpOiBDbGllbnQge1xuICAgIGlmICghdGhpcy5fY2xpZW50KVxuICAgICAgdGhpcy5fY2xpZW50ID0gRmFicmljQ2xpZW50QWRhcHRlci5nZXRDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB0aGlzLl9jbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBHYXRld2F5IGluc3RhbmNlIGZvciB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIG5ldyBHYXRld2F5IGluc3RhbmNlIHVzaW5nIHRoZSBjdXJyZW50IGNsaWVudFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdhdGV3YXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIEdhdGV3YXkoY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPik6IFByb21pc2U8R2F0ZXdheT4ge1xuICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkoY3R4LCB0aGlzLmNvbmZpZywgdGhpcy5jbGllbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250cmFjdE5hbWUoY2xhc3NOYW1lPzogc3RyaW5nKSB7XG4gICAgaWYgKCFjbGFzc05hbWUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGAke2NsYXNzTmFtZX1Db250cmFjdGA7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBDb250cmFjdCBpbnN0YW5jZSBmb3IgdGhlIEZhYnJpYyBjaGFpbmNvZGVcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIG5ldyBDb250cmFjdCBpbnN0YW5jZSB1c2luZyB0aGUgY3VycmVudCBHYXRld2F5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q29udHJha3Q+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgQ29udHJhY3QgaW5zdGFuY2VcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBDb250cmFjdChcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+LFxuICAgIGNvbnRyYWN0TmFtZT86IHN0cmluZ1xuICApOiBQcm9taXNlPENvbnRyYWt0PiB7XG4gICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIuZ2V0Q29udHJhY3QoXG4gICAgICBhd2FpdCB0aGlzLkdhdGV3YXkoY3R4KSxcbiAgICAgIHRoaXMuY29uZmlnLFxuICAgICAgY29udHJhY3ROYW1lXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiBvbiB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgU3VibWl0cyBvciBldmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiBvbiB0aGUgRmFicmljIGNoYWluY29kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpIC0gVGhlIGNoYWluY29kZSBmdW5jdGlvbiB0byBjYWxsXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3VibWl0IC0gV2hldGhlciB0byBzdWJtaXQgKHRydWUpIG9yIGV2YWx1YXRlIChmYWxzZSkgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7YW55W119IFthcmdzXSAtIEFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBjaGFpbmNvZGUgZnVuY3Rpb25cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBbdHJhbnNpZW50RGF0YV0gLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gW2VuZG9yc2luZ09yZ2FuaXphdGlvbnNdIC0gT3JnYW5pemF0aW9ucyB0aGF0IG11c3QgZW5kb3JzZSB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxVaW50OEFycmF5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHRyYW5zYWN0aW9uIHJlc3VsdFxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gICAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICAgKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gICAqICAgcGFydGljaXBhbnQgQ2hhaW5jb2RlXG4gICAqXG4gICAqICAgRmFicmljQWRhcHRlci0+PkdhdGV3YXk6IGNvbm5lY3QoKVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogZ2V0Q29udHJhY3QoKVxuICAgKiAgIGFsdCBzdWJtaXQgdHJhbnNhY3Rpb25cbiAgICogICAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogc3VibWl0KGFwaSwgcHJvcG9zYWxPcHRpb25zKVxuICAgKiAgIGVsc2UgZXZhbHVhdGUgdHJhbnNhY3Rpb25cbiAgICogICAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogZXZhbHVhdGUoYXBpLCBwcm9wb3NhbE9wdGlvbnMpXG4gICAqICAgZW5kXG4gICAqICAgQ29udHJhY3QtPj5DaGFpbmNvZGU6IGludm9rZVxuICAgKiAgIENoYWluY29kZS0tPj5Db250cmFjdDogcmVzcG9uc2VcbiAgICogICBDb250cmFjdC0tPj5GYWJyaWNBZGFwdGVyOiByZXN1bHRcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+R2F0ZXdheTogY2xvc2UoKVxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIHRyYW5zYWN0aW9uKFxuICAgIGN0eDogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4sXG4gICAgYXBpOiBzdHJpbmcsXG4gICAgc3VibWl0ID0gdHJ1ZSxcbiAgICBhcmdzPzogYW55W10sXG4gICAgdHJhbnNpZW50RGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucz86IEFycmF5PHN0cmluZz4sXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLnRyYW5zYWN0aW9uKTtcbiAgICBjb25zdCBnYXRld2F5ID0gYXdhaXQgdGhpcy5HYXRld2F5KGN0eCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbnRyYWN0ID0gYXdhaXQgdGhpcy5Db250cmFjdChcbiAgICAgICAgY3R4LFxuICAgICAgICB0aGlzLmdldENvbnRyYWN0TmFtZShjbGFzc05hbWUpXG4gICAgICApO1xuICAgICAgbG9nLnZlcmJvc2UoXG4gICAgICAgIGAke3N1Ym1pdCA/IFwiU3VibWl0XCIgOiBcIkV2YWx1YXRlXCJ9dGluZyB0cmFuc2FjdGlvbiAke3RoaXMuZ2V0Q29udHJhY3ROYW1lKGNsYXNzTmFtZSkgfHwgdGhpcy5jb25maWcuY29udHJhY3ROYW1lfS4ke2FwaX1gXG4gICAgICApO1xuICAgICAgbG9nLmRlYnVnKGBhcmdzOiAke2FyZ3M/Lm1hcCgoYSkgPT4gYS50b1N0cmluZygpKS5qb2luKFwiXFxuXCIpIHx8IFwibm9uZVwifWApO1xuICAgICAgY29uc3QgbWV0aG9kID0gc3VibWl0ID8gY29udHJhY3Quc3VibWl0IDogY29udHJhY3QuZXZhbHVhdGU7XG5cbiAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMgPSBlbmRvcnNpbmdPcmdhbml6YXRpb25zPy5sZW5ndGhcbiAgICAgICAgPyBlbmRvcnNpbmdPcmdhbml6YXRpb25zXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgY29uc3QgcHJvcG9zYWxPcHRpb25zOiBQcm9wb3NhbE9wdGlvbnMgPSB7XG4gICAgICAgIGFyZ3VtZW50czogYXJncyB8fCBbXSxcbiAgICAgICAgdHJhbnNpZW50RGF0YTogdHJhbnNpZW50RGF0YSxcbiAgICAgICAgLy8gLi4uKGVuZG9yc2luZ09yZ2FuaXphdGlvbnMgJiYgeyBlbmRvcnNpbmdPcmdhbml6YXRpb25zIH0pIC8vIG1zcElkIGxpc3RcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBtZXRob2QuY2FsbChjb250cmFjdCwgYXBpLCBwcm9wb3NhbE9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUuY29kZSA9PT0gMTApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2UuZGV0YWlsc1swXS5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgQ2xvc2luZyAke3RoaXMuY29uZmlnLm1zcElkfSBnYXRld2F5IGNvbm5lY3Rpb25gKTtcbiAgICAgIGdhdGV3YXkuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvclxuICAgKiBAcGFyYW0ge0Vycm9yIHwgc3RyaW5nfSBlcnIgLSBUaGUgZXJyb3IgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtyZWFzb25dIC0gT3B0aW9uYWwgcmVhc29uIGZvciB0aGUgZXJyb3JcbiAgICogQHJldHVybiB7QmFzZUVycm9yfSBUaGUgcGFyc2VkIGVycm9yXG4gICAqL1xuICBvdmVycmlkZSBwYXJzZUVycm9yPEUgZXh0ZW5kcyBCYXNlRXJyb3I+KGVycjogRXJyb3IgfCBzdHJpbmcpOiBFIHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5wYXJzZUVycm9yPEU+KGVycik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IG1vZGlmaWVzIHRoZSBsZWRnZXIgc3RhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaSAtIFRoZSBjaGFpbmNvZGUgZnVuY3Rpb24gdG8gY2FsbFxuICAgKiBAcGFyYW0ge2FueVtdfSBbYXJnc10gLSBBcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY2hhaW5jb2RlIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW3RyYW5zaWVudERhdGFdIC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtlbmRvcnNpbmdPcmdhbml6YXRpb25zXSAtIE9yZ2FuaXphdGlvbnMgdGhhdCBtdXN0IGVuZG9yc2UgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VWludDhBcnJheT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB0cmFuc2FjdGlvbiByZXN1bHRcbiAgICovXG4gIGFzeW5jIHN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgIGN0eDogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4sXG4gICAgYXBpOiBzdHJpbmcsXG4gICAgYXJncz86IGFueVtdLFxuICAgIHRyYW5zaWVudERhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnM/OiBBcnJheTxzdHJpbmc+LFxuICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIGFwaSxcbiAgICAgIHRydWUsXG4gICAgICBhcmdzLFxuICAgICAgdHJhbnNpZW50RGF0YSxcbiAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMsXG4gICAgICBjbGFzc05hbWVcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiBvbiB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgbGVkZ2VyIHN0YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcGkgLSBUaGUgY2hhaW5jb2RlIGZ1bmN0aW9uIHRvIGNhbGxcbiAgICogQHBhcmFtIHthbnlbXX0gW2FyZ3NdIC0gQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNoYWluY29kZSBmdW5jdGlvblxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFt0cmFuc2llbnREYXRhXSAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBbZW5kb3JzaW5nT3JnYW5pemF0aW9uc10gLSBPcmdhbml6YXRpb25zIHRoYXQgbXVzdCBlbmRvcnNlIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVpbnQ4QXJyYXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdHJhbnNhY3Rpb24gcmVzdWx0XG4gICAqL1xuICBhc3luYyBldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgIGN0eDogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4sXG4gICAgYXBpOiBzdHJpbmcsXG4gICAgYXJncz86IGFueVtdLFxuICAgIHRyYW5zaWVudERhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnM/OiBBcnJheTxzdHJpbmc+LFxuICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIGFwaSxcbiAgICAgIGZhbHNlLFxuICAgICAgYXJncyxcbiAgICAgIHRyYW5zaWVudERhdGEsXG4gICAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2xvc2VzIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBDbG9zZXMgdGhlIGdSUEMgY2xpZW50IGlmIGl0IGV4aXN0c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY2xpZW50IGlzIGNsb3NlZFxuICAgKi9cbiAgYXN5bmMgY2xvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY2xpZW50KSB7XG4gICAgICB0aGlzLmxvZy52ZXJib3NlKGBDbG9zaW5nICR7dGhpcy5jb25maWcubXNwSWR9IGdhdGV3YXkgY2xpZW50YCk7XG4gICAgICB0aGlzLmNsaWVudC5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIENvbnRyYWN0IGluc3RhbmNlIGZyb20gYSBHYXRld2F5XG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyBhIGNoYWluY29kZSBjb250cmFjdCBmcm9tIHRoZSBzcGVjaWZpZWQgbmV0d29ya1xuICAgKiBAcGFyYW0ge0dhdGV3YXl9IGdhdGV3YXkgLSBUaGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybiB7Q29udHJha3R9IFRoZSBDb250cmFjdCBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGdldENvbnRyYWN0KFxuICAgIGdhdGV3YXk6IEdhdGV3YXksXG4gICAgY29uZmlnOiBQZWVyQ29uZmlnLFxuICAgIGNvbnRyYWN0TmFtZT86IHN0cmluZ1xuICApOiBDb250cmFrdCB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuZ2V0Q29udHJhY3QpO1xuICAgIGNvbnN0IG5ldHdvcmsgPSB0aGlzLmdldE5ldHdvcmsoZ2F0ZXdheSwgY29uZmlnLmNoYW5uZWwpO1xuICAgIGxldCBjb250cmFjdDogQ29udHJha3Q7XG4gICAgdHJ5IHtcbiAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgYFJldHJpZXZpbmcgY2hhaW5jb2RlICR7Y29uZmlnLmNoYWluY29kZU5hbWV9IGNvbnRyYWN0ICR7Y29udHJhY3ROYW1lIHx8IGNvbmZpZy5jb250cmFjdE5hbWV9IGZyb20gbmV0d29yayAke2NvbmZpZy5jaGFubmVsfWBcbiAgICAgICk7XG4gICAgICBjb250cmFjdE5hbWUgPSBjb250cmFjdE5hbWUgPyBjb250cmFjdE5hbWUgOiBjb25maWcuY29udHJhY3ROYW1lO1xuICAgICAgY29udHJhY3QgPSBuZXR3b3JrLmdldENvbnRyYWN0KGNvbmZpZy5jaGFpbmNvZGVOYW1lLCBjb250cmFjdE5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJhY3Q7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBOZXR3b3JrIGluc3RhbmNlIGZyb20gYSBHYXRld2F5XG4gICAqIEBzdW1tYXJ5IENvbm5lY3RzIHRvIGEgc3BlY2lmaWMgY2hhbm5lbCBvbiB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHBhcmFtIHtHYXRld2F5fSBnYXRld2F5IC0gVGhlIEdhdGV3YXkgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYW5uZWxOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGNoYW5uZWwgdG8gY29ubmVjdCB0b1xuICAgKiBAcmV0dXJuIHtOZXR3b3JrfSBUaGUgTmV0d29yayBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGdldE5ldHdvcmsoZ2F0ZXdheTogR2F0ZXdheSwgY2hhbm5lbE5hbWU6IHN0cmluZyk6IE5ldHdvcmsge1xuICAgIGNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKHRoaXMuZ2V0TmV0d29yayk7XG4gICAgbGV0IG5ldHdvcms6IE5ldHdvcms7XG4gICAgdHJ5IHtcbiAgICAgIGxvZy5kZWJ1ZyhgQ29ubmVjdGluZyB0byBjaGFubmVsICR7Y2hhbm5lbE5hbWV9YCk7XG4gICAgICBuZXR3b3JrID0gZ2F0ZXdheS5nZXROZXR3b3JrKGNoYW5uZWxOYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV0d29yaztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIEdhdGV3YXkgaW5zdGFuY2UgZm9yIGNvbm5lY3RpbmcgdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBHYXRld2F5IHVzaW5nIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uIGFuZCBjbGllbnRcbiAgICogQHBhcmFtIHtQZWVyQ29uZmlnfSBjb25maWcgLSBUaGUgcGVlciBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSB7Q2xpZW50fSBbY2xpZW50XSAtIE9wdGlvbmFsIGdSUEMgY2xpZW50LCB3aWxsIGJlIGNyZWF0ZWQgaWYgbm90IHByb3ZpZGVkXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R2F0ZXdheT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZ2V0R2F0ZXdheShcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+LFxuICAgIGNvbmZpZzogUGVlckNvbmZpZyxcbiAgICBjbGllbnQ/OiBDbGllbnRcbiAgKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldENvbm5lY3Rpb24oXG4gICAgICBjbGllbnQgfHwgKGF3YWl0IHRoaXMuZ2V0Q2xpZW50KGNvbmZpZykpLFxuICAgICAgY29uZmlnLFxuICAgICAgY3R4XG4gICAgKSkgYXMgR2F0ZXdheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBjbGllbnQgd2l0aCBUTFMgY3JlZGVudGlhbHMgZm9yIHNlY3VyZSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtDbGllbnR9IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBnUlBDIGNsaWVudFxuICAgKi9cbiAgc3RhdGljIGdldENsaWVudChjb25maWc6IFBlZXJDb25maWcpOiBDbGllbnQge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmdldENsaWVudCk7XG4gICAgbG9nLmRlYnVnKGBnZW5lcmF0aW5nIFRMUyBjcmVkZW50aWFscyBmb3IgbXNwICR7Y29uZmlnLm1zcElkfWApO1xuICAgIGxldCBwYXRoT3JDZXJ0OiBzdHJpbmcgfCBCdWZmZXIgPSBjb25maWcudGxzQ2VydCBhcyBzdHJpbmcgfCBCdWZmZXI7XG5cbiAgICBpZiAodHlwZW9mIHBhdGhPckNlcnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcGF0aE9yQ2VydC5tYXRjaChcbiAgICAgICAgICAvLS0tLS1CRUdJTiAoQ0VSVElGSUNBVEV8S0VZfFBSSVZBVEUgS0VZKS0tLS0tLis/LS0tLS1FTkQgXFwxLS0tLS0kL2dtc1xuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcGF0aE9yQ2VydCA9IEJ1ZmZlci5mcm9tKHBhdGhPckNlcnQsIFwidXRmOFwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcGF0aE9yQ2VydCA9IEJ1ZmZlci5mcm9tKGZzLnJlYWRGaWxlU3luYyhwYXRoT3JDZXJ0LCBcInV0ZjhcIikpO1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIHJlYWQgdGhlIHRscyBjZXJ0aWZpY2F0ZSBmcm9tICR7cGF0aE9yQ2VydH06ICR7ZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRsc0NyZWRlbnRpYWxzID0gZ3JwYy5jcmVkZW50aWFscy5jcmVhdGVTc2wocGF0aE9yQ2VydCk7XG4gICAgbG9nLmRlYnVnKGBnZW5lcmF0aW5nIEdhdGV3YXkgQ2xpZW50IGZvciB1cmwgJHtjb25maWcucGVlckVuZHBvaW50fWApO1xuICAgIHJldHVybiBuZXcgQ2xpZW50KGNvbmZpZy5wZWVyRW5kcG9pbnQsIHRsc0NyZWRlbnRpYWxzLCB7XG4gICAgICBcImdycGMubWF4X3JlY2VpdmVfbWVzc2FnZV9sZW5ndGhcIjogKGNvbmZpZy5zaXplTGltaXQgfHwgMTUpICogMTAyNCAqIDEwMjQsXG4gICAgICBcImdycGMubWF4X3NlbmRfbWVzc2FnZV9sZW5ndGhcIjogKGNvbmZpZy5zaXplTGltaXQgfHwgMTUpICogMTAyNCAqIDEwMjQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEVzdGFibGlzaGVzIGEgY29ubmVjdGlvbiB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIEdhdGV3YXkgY29ubmVjdGlvbiB3aXRoIGlkZW50aXR5IGFuZCBzaWduZXJcbiAgICogQHBhcmFtIHtDbGllbnR9IGNsaWVudCAtIFRoZSBnUlBDIGNsaWVudFxuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxHYXRld2F5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNvbm5lY3RlZCBHYXRld2F5XG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0FkYXB0ZXJcbiAgICogICBwYXJ0aWNpcGFudCBJZGVudGl0eVxuICAgKiAgIHBhcnRpY2lwYW50IFNpZ25lclxuICAgKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAgICpcbiAgICogICBDYWxsZXItPj5GYWJyaWNBZGFwdGVyOiBnZXRDb25uZWN0aW9uKGNsaWVudCwgY29uZmlnKVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5JZGVudGl0eTogZ2V0SWRlbnRpdHkobXNwSWQsIGNlcnREaXJlY3RvcnlQYXRoKVxuICAgKiAgIElkZW50aXR5LS0+PkZhYnJpY0FkYXB0ZXI6IGlkZW50aXR5XG4gICAqICAgRmFicmljQWRhcHRlci0+PlNpZ25lcjogZ2V0U2lnbmVyKGtleURpcmVjdG9yeVBhdGgpXG4gICAqICAgU2lnbmVyLS0+PkZhYnJpY0FkYXB0ZXI6IHNpZ25lclxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBDcmVhdGUgQ29ubmVjdE9wdGlvbnNcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+R2F0ZXdheTogY29ubmVjdChvcHRpb25zKVxuICAgKiAgIEdhdGV3YXktLT4+RmFicmljQWRhcHRlcjogZ2F0ZXdheVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItLT4+Q2FsbGVyOiBnYXRld2F5XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZ2V0Q29ubmVjdGlvbihcbiAgICBjbGllbnQ6IENsaWVudCxcbiAgICBjb25maWc6IFBlZXJDb25maWcsXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApIHtcbiAgICBjb25zdCBsb2cgPSBMb2dnaW5nLmZvcih0aGlzLmdldENvbm5lY3Rpb24pO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBSZXRyaWV2aW5nIFBlZXIgSWRlbnRpdHkgZm9yICR7Y29uZmlnLm1zcElkfSB1bmRlciAke2NvbmZpZy5jZXJ0Q2VydE9yRGlyZWN0b3J5UGF0aH1gXG4gICAgKTtcbiAgICBjb25zdCBpZGVudGl0eSA9IGF3YWl0IGdldElkZW50aXR5KFxuICAgICAgY29uZmlnLm1zcElkLFxuICAgICAgY29uZmlnLmNlcnRDZXJ0T3JEaXJlY3RvcnlQYXRoIGFzIGFueVxuICAgICk7XG4gICAgbG9nLmRlYnVnKGBSZXRyaWV2aW5nIHNpZ25lciBrZXkgZnJvbSAke2NvbmZpZy5rZXlDZXJ0T3JEaXJlY3RvcnlQYXRofWApO1xuXG4gICAgbGV0IHNpZ25lcjogU2lnbmVyLFxuICAgICAgY2xvc2UgPSAoKSA9PiB7fTtcbiAgICBpZiAoIWNvbmZpZy5oc20pIHtcbiAgICAgIHNpZ25lciA9IGF3YWl0IGdldFNpZ25lcihjb25maWcua2V5Q2VydE9yRGlyZWN0b3J5UGF0aCBhcyBhbnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBoc20gPSBuZXcgSFNNU2lnbmVyRmFjdG9yeUN1c3RvbShjb25maWcuaHNtLmxpYnJhcnkpO1xuICAgICAgY29uc3QgaWRlbnRpZmllciA9IGhzbS5nZXRTS0lGcm9tQ2VydGlmaWNhdGVQYXRoKFxuICAgICAgICBjb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGggYXMgYW55XG4gICAgICApO1xuICAgICAgY29uc3QgcGtjczExU2lnbmVyID0gaHNtLm5ld1NpZ25lcih7XG4gICAgICAgIGxhYmVsOiBjb25maWcuaHNtLnRva2VuTGFiZWwgYXMgc3RyaW5nLFxuICAgICAgICBwaW46IFN0cmluZyhjb25maWcuaHNtLnBpbikgYXMgc3RyaW5nLFxuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICAvLyB1c2VyVHlwZTogMSAvKkNLVV9VU0VSICovLFxuICAgICAgfSk7XG4gICAgICBzaWduZXIgPSBwa2NzMTFTaWduZXIuc2lnbmVyO1xuXG4gICAgICBjbG9zZSA9IHBrY3MxMVNpZ25lci5jbG9zZTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgY2xpZW50LFxuICAgICAgaWRlbnRpdHk6IGlkZW50aXR5LFxuICAgICAgc2lnbmVyOiBzaWduZXIsXG4gICAgICAvLyBEZWZhdWx0IHRpbWVvdXRzIGZvciBkaWZmZXJlbnQgZ1JQQyBjYWxsc1xuICAgICAgZXZhbHVhdGVPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgMTAwMCAqIGN0eC5nZXQoXCJldmFsdWF0ZVRpbWVvdXRcIikgfTsgLy8gZGVmYXVsdHMgdG8gNSBzZWNvbmRzXG4gICAgICB9LFxuICAgICAgZW5kb3JzZU9wdGlvbnM6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZGVhZGxpbmU6IERhdGUubm93KCkgKyAxMDAwICogY3R4LmdldChcImVuZG9yc2VUaW1lb3V0XCIpIH07IC8vIGRlZmF1bHRzIHRvIDE1IHNlY29uZHNcbiAgICAgIH0sXG4gICAgICBzdWJtaXRPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgMTAwMCAqIGN0eC5nZXQoXCJzdWJtaXRUaW1lb3V0XCIpIH07IC8vIGRlZmF1bHRzIHRvIDUgc2Vjb25kc1xuICAgICAgfSxcbiAgICAgIGNvbW1pdFN0YXR1c09wdGlvbnM6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZGVhZGxpbmU6IERhdGUubm93KCkgKyAxMDAwICogY3R4LmdldChcImNvbW1pdFRpbWVvdXRcIikgfTsgLy8gZGVmYXVsdHMgdG8gMSBtaW51dGVcbiAgICAgIH0sXG4gICAgfSBhcyBDb25uZWN0T3B0aW9ucztcblxuICAgIGxvZy5kZWJ1ZyhgQ29ubmVjdGluZyB0byAke2NvbmZpZy5tc3BJZH1gKTtcbiAgICBjb25zdCBnYXRld2F5ID0gY29ubmVjdChvcHRpb25zKTtcblxuICAgIC8vIFRPRE86IHJlcGxhY2U/XG4gICAgaWYgKGNvbmZpZy5oc20pIHtcbiAgICAgIGdhdGV3YXkuY2xvc2UgPSBuZXcgUHJveHkoZ2F0ZXdheS5jbG9zZSwge1xuICAgICAgICBhcHBseSh0YXJnZXQ6ICgpID0+IHZvaWQsIHRoaXNBcmc6IGFueSwgYXJnQXJyYXk6IGFueVtdKTogYW55IHtcbiAgICAgICAgICBSZWZsZWN0LmFwcGx5KHRhcmdldCwgdGhpc0FyZywgYXJnQXJyYXkpO1xuICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2F0ZXdheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBEaXNwYXRjaCBpbnN0YW5jZSBmb3IgdGhlIEZhYnJpYyBjbGllbnQuXG4gICAqIEBzdW1tYXJ5IFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIGEgbmV3IEZhYnJpY0NsaWVudERpc3BhdGNoIGluc3RhbmNlIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgRmFicmljIG5ldHdvcmsuXG4gICAqIEByZXR1cm5zIHtEaXNwYXRjaH0gQSBuZXcgRGlzcGF0Y2ggaW5zdGFuY2UgY29uZmlndXJlZCBmb3IgdGhlIEZhYnJpYyBjbGllbnQuXG4gICAqIEByZW1hcmtzIFRoZSBEaXNwYXRjaCBpbnN0YW5jZSBpcyB1c2VkIHRvIGVuY2Fwc3VsYXRlIHRoZSBsb2dpYyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRmFicmljIG5ldHdvcmssIHN1Y2ggYXMgc3VibWl0dGluZyB0cmFuc2FjdGlvbnMgb3IgcXVlcnlpbmcgZGF0YS5cbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgZmFicmljRGlzcGF0Y2ggPSBmYWJyaWNDbGllbnRBZGFwdGVyLkRpc3BhdGNoKCk7XG4gICAqIGZhYnJpY0Rpc3BhdGNoLnN1Ym1pdFRyYW5zYWN0aW9uKCdjcmVhdGVQcm9kdWN0JywgeyBuYW1lOiAnUHJvZHVjdCBBJywgcHJpY2U6IDEwMCB9KTtcbiAgICovXG4gIG92ZXJyaWRlIERpc3BhdGNoKCk6IEZhYnJpY0NsaWVudERpc3BhdGNoIHtcbiAgICByZXR1cm4gbmV3IEZhYnJpY0NsaWVudEFkYXB0ZXJbXCJfYmFzZURpc3BhdGNoXCJdKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvciB1c2luZyB0aGUgcGFyZW50IGNsYXNzIGltcGxlbWVudGF0aW9uXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBzdHJpbmd9IGVyciAtIFRoZSBlcnJvciB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3JlYXNvbl0gLSBPcHRpb25hbCByZWFzb24gZm9yIHRoZSBlcnJvclxuICAgKiBAcmV0dXJuIHtCYXNlRXJyb3J9IFRoZSBwYXJzZWQgZXJyb3JcbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgcGFyc2VFcnJvcjxFIGV4dGVuZHMgQmFzZUVycm9yPihlcnI6IEVycm9yIHwgc3RyaW5nKTogRSB7XG4gICAgLy8gaWYgKFxuICAgIC8vICAgTUlTU0lOR19QUklWQVRFX0RBVEFfUkVHRVgudGVzdChcbiAgICAvLyAgICAgdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlXG4gICAgLy8gICApXG4gICAgLy8gKVxuICAgIC8vICAgcmV0dXJuIG5ldyBVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2VzcyhlcnIpIGFzIEU7XG4gICAgY29uc3QgbXNnID0gdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlO1xuXG4gICAgaWYgKG1zZy5pbmNsdWRlcyhcIk1WQ0NfUkVBRF9DT05GTElDVFwiKSlcbiAgICAgIHJldHVybiBuZXcgTXZjY1JlYWRDb25mbGljdEVycm9yKGVycikgYXMgRTtcblxuICAgIGlmIChtc2cuaW5jbHVkZXMoXCJFTkRPUlNFTUVOVF9QT0xJQ1lfRkFJTFVSRVwiKSlcbiAgICAgIHJldHVybiBuZXcgRW5kb3JzZW1lbnRQb2xpY3lFcnJvcihlcnIpIGFzIEU7XG5cbiAgICBpZiAobXNnLmluY2x1ZGVzKFwiUEhBTlRPTV9SRUFEX0NPTkZMSUNUXCIpKVxuICAgICAgcmV0dXJuIG5ldyBQaGFudG9tUmVhZENvbmZsaWN0RXJyb3IoZXJyKSBhcyBFO1xuXG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yICYmIChlcnIgYXMgYW55KS5jb2RlKSB7XG4gICAgICBzd2l0Y2ggKChlcnIgYXMgYW55KS5jb2RlKSB7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICByZXR1cm4gbmV3IEVuZG9yc2VtZW50RXJyb3IoZXJyKSBhcyBFO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtc2cuaW5jbHVkZXMoTm90Rm91bmRFcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKGVycikgYXMgRTtcbiAgICBpZiAobXNnLmluY2x1ZGVzKENvbmZsaWN0RXJyb3IubmFtZSkpIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhCYWRSZXF1ZXN0RXJyb3IubmFtZSkpXG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhRdWVyeUVycm9yLm5hbWUpKSByZXR1cm4gbmV3IFF1ZXJ5RXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoUGFnaW5nRXJyb3IubmFtZSkpIHJldHVybiBuZXcgUGFnaW5nRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoVW5zdXBwb3J0ZWRFcnJvci5uYW1lKSlcbiAgICAgIHJldHVybiBuZXcgVW5zdXBwb3J0ZWRFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhNaWdyYXRpb25FcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBNaWdyYXRpb25FcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhPYnNlcnZlckVycm9yLm5hbWUpKSByZXR1cm4gbmV3IE9ic2VydmVyRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQXV0aG9yaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoRm9yYmlkZGVuRXJyb3IubmFtZSkpIHJldHVybiBuZXcgRm9yYmlkZGVuRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQ29ubmVjdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBDb25uZWN0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoU2VyaWFsaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpIGFzIEU7XG4gIH1cbn1cblxuRmFicmljQ2xpZW50QWRhcHRlci5kZWNvcmF0aW9uKCk7XG5BZGFwdGVyLnNldEN1cnJlbnQoRmFicmljRmxhdm91cik7XG4iXX0=
870
+ //# sourceMappingURL=FabricClientAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FabricClientAdapter.js","sourceRoot":"","sources":["../../src/client/FabricClientAdapter.ts"],"names":[],"mappings":"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"}