@decaf-ts/integrations 0.5.1 → 0.6.0

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 (1060) hide show
  1. package/dist/integrations.cjs +2 -2087
  2. package/dist/integrations.cjs.map +1 -0
  3. package/dist/integrations.js +2 -2356
  4. package/dist/integrations.js.map +1 -0
  5. package/docker/keycloak-broker-compose.yml +128 -0
  6. package/docker/traefik-broker.yml +51 -0
  7. package/eslint.config.js +1 -0
  8. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  9. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
  10. package/lib/cjs/blob/azure/index.cjs +2 -2
  11. package/lib/cjs/blob/azure/index.cjs.map +1 -0
  12. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  13. package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
  14. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  15. package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
  16. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  17. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
  18. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  19. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
  20. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  21. package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
  22. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  23. package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
  24. package/lib/cjs/blob/core/index.cjs +2 -2
  25. package/lib/cjs/blob/core/index.cjs.map +1 -0
  26. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  27. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
  28. package/lib/cjs/blob/gcp/index.cjs +2 -2
  29. package/lib/cjs/blob/gcp/index.cjs.map +1 -0
  30. package/lib/cjs/blob/index.cjs +2 -2
  31. package/lib/cjs/blob/index.cjs.map +1 -0
  32. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
  33. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
  34. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
  35. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
  36. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
  37. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
  38. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
  39. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
  40. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
  41. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
  42. package/lib/cjs/blob/ipfs/index.cjs +2 -2
  43. package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
  44. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  45. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
  46. package/lib/cjs/blob/local/index.cjs +2 -2
  47. package/lib/cjs/blob/local/index.cjs.map +1 -0
  48. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  49. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
  50. package/lib/cjs/blob/memory/index.cjs +2 -2
  51. package/lib/cjs/blob/memory/index.cjs.map +1 -0
  52. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  53. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
  54. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  55. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
  56. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  57. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
  58. package/lib/cjs/blob/s3/index.cjs +2 -2
  59. package/lib/cjs/blob/s3/index.cjs.map +1 -0
  60. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  61. package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
  62. package/lib/cjs/docker/index.cjs +2 -2
  63. package/lib/cjs/docker/index.cjs.map +1 -0
  64. package/lib/cjs/feature-flags/constants.cjs +2 -2
  65. package/lib/cjs/feature-flags/constants.cjs.map +1 -0
  66. package/lib/cjs/feature-flags/decorators.cjs +2 -2
  67. package/lib/cjs/feature-flags/decorators.cjs.map +1 -0
  68. package/lib/cjs/feature-flags/environment.cjs +2 -2
  69. package/lib/cjs/feature-flags/environment.cjs.map +1 -0
  70. package/lib/cjs/feature-flags/index.cjs +2 -2
  71. package/lib/cjs/feature-flags/index.cjs.map +1 -0
  72. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
  73. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -0
  74. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
  75. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -0
  76. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
  77. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +1 -0
  78. package/lib/cjs/feature-flags/readers/index.cjs +2 -2
  79. package/lib/cjs/feature-flags/readers/index.cjs.map +1 -0
  80. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
  81. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +1 -0
  82. package/lib/cjs/feature-flags/types.cjs +2 -2
  83. package/lib/cjs/feature-flags/types.cjs.map +1 -0
  84. package/lib/cjs/feature-flags/utils.cjs +2 -2
  85. package/lib/cjs/feature-flags/utils.cjs.map +1 -0
  86. package/lib/cjs/graph/engine/constants.cjs +2 -2
  87. package/lib/cjs/graph/engine/constants.cjs.map +1 -0
  88. package/lib/cjs/graph/engine/decorators.cjs +2 -2
  89. package/lib/cjs/graph/engine/decorators.cjs.map +1 -0
  90. package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs +2 -2
  91. package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs.map +1 -0
  92. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
  93. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +1 -0
  94. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
  95. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +1 -0
  96. package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
  97. package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +1 -0
  98. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
  99. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +1 -0
  100. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
  101. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +1 -0
  102. package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
  103. package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +1 -0
  104. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
  105. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +1 -0
  106. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
  107. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +1 -0
  108. package/lib/cjs/graph/engine/errors/index.cjs +2 -2
  109. package/lib/cjs/graph/engine/errors/index.cjs.map +1 -0
  110. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
  111. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +1 -0
  112. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
  113. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +1 -0
  114. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
  115. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +1 -0
  116. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
  117. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +1 -0
  118. package/lib/cjs/graph/engine/events/index.cjs +2 -2
  119. package/lib/cjs/graph/engine/events/index.cjs.map +1 -0
  120. package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs +5 -3
  121. package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs.map +1 -0
  122. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +2 -2
  123. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +1 -0
  124. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
  125. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +1 -0
  126. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
  127. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -0
  128. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +2 -2
  129. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -0
  130. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
  131. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -0
  132. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
  133. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +1 -0
  134. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
  135. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +1 -0
  136. package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +2 -2
  137. package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +1 -0
  138. package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +2 -2
  139. package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +1 -0
  140. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
  141. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +1 -0
  142. package/lib/cjs/graph/engine/execution/index.cjs +2 -2
  143. package/lib/cjs/graph/engine/execution/index.cjs.map +1 -0
  144. package/lib/cjs/graph/engine/index.cjs +2 -2
  145. package/lib/cjs/graph/engine/index.cjs.map +1 -0
  146. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
  147. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +1 -0
  148. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +3 -3
  149. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +1 -0
  150. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
  151. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +1 -0
  152. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
  153. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +1 -0
  154. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
  155. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +1 -0
  156. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
  157. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +1 -0
  158. package/lib/cjs/graph/engine/loops/index.cjs +2 -2
  159. package/lib/cjs/graph/engine/loops/index.cjs.map +1 -0
  160. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
  161. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +1 -0
  162. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
  163. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +1 -0
  164. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
  165. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +1 -0
  166. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
  167. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +1 -0
  168. package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
  169. package/lib/cjs/graph/engine/pinning/index.cjs.map +1 -0
  170. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
  171. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +1 -0
  172. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
  173. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +1 -0
  174. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
  175. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +1 -0
  176. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
  177. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +1 -0
  178. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
  179. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +1 -0
  180. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
  181. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +1 -0
  182. package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
  183. package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +1 -0
  184. package/lib/cjs/graph/engine/planning/index.cjs +2 -2
  185. package/lib/cjs/graph/engine/planning/index.cjs.map +1 -0
  186. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
  187. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +1 -0
  188. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
  189. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +1 -0
  190. package/lib/cjs/graph/engine/registry/index.cjs +2 -2
  191. package/lib/cjs/graph/engine/registry/index.cjs.map +1 -0
  192. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
  193. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -0
  194. package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
  195. package/lib/cjs/graph/engine/snapshots/index.cjs.map +1 -0
  196. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
  197. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +1 -0
  198. package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
  199. package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +1 -0
  200. package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
  201. package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +1 -0
  202. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
  203. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +1 -0
  204. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
  205. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +1 -0
  206. package/lib/cjs/graph/engine/store/index.cjs +2 -2
  207. package/lib/cjs/graph/engine/store/index.cjs.map +1 -0
  208. package/lib/cjs/graph/engine/types.cjs +2 -2
  209. package/lib/cjs/graph/engine/types.cjs.map +1 -0
  210. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
  211. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +1 -0
  212. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
  213. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +1 -0
  214. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
  215. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +1 -0
  216. package/lib/cjs/graph/engine/validation/index.cjs +2 -2
  217. package/lib/cjs/graph/engine/validation/index.cjs.map +1 -0
  218. package/lib/cjs/graph/index.cjs +2 -2
  219. package/lib/cjs/graph/index.cjs.map +1 -0
  220. package/lib/cjs/graph/shared/constants.cjs +2 -2
  221. package/lib/cjs/graph/shared/constants.cjs.map +1 -0
  222. package/lib/cjs/graph/shared/index.cjs +2 -2
  223. package/lib/cjs/graph/shared/index.cjs.map +1 -0
  224. package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
  225. package/lib/cjs/graph/shared/nodes/agent.cjs.map +1 -0
  226. package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
  227. package/lib/cjs/graph/shared/nodes/base.cjs.map +1 -0
  228. package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
  229. package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +1 -0
  230. package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
  231. package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +1 -0
  232. package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
  233. package/lib/cjs/graph/shared/nodes/index.cjs.map +1 -0
  234. package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
  235. package/lib/cjs/graph/shared/nodes/triggers.cjs.map +1 -0
  236. package/lib/cjs/graph/shared/types.cjs +2 -2
  237. package/lib/cjs/graph/shared/types.cjs.map +1 -0
  238. package/lib/cjs/index.cjs +4 -4
  239. package/lib/cjs/index.cjs.map +1 -0
  240. package/lib/cjs/keycloak/broker.cjs +22 -0
  241. package/lib/cjs/keycloak/broker.cjs.map +1 -0
  242. package/lib/cjs/keycloak/index.cjs +3 -2
  243. package/lib/cjs/keycloak/index.cjs.map +1 -0
  244. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  245. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
  246. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  247. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
  248. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +71 -2
  249. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
  250. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  251. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
  252. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  253. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
  254. package/lib/cjs/keycloak/services/KeycloakService.cjs +6 -2
  255. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
  256. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  257. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
  258. package/lib/cjs/keycloak/services/index.cjs +2 -2
  259. package/lib/cjs/keycloak/services/index.cjs.map +1 -0
  260. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  261. package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
  262. package/lib/cjs/keycloak/types.cjs +2 -2
  263. package/lib/cjs/keycloak/types.cjs.map +1 -0
  264. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
  265. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +1 -0
  266. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
  267. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +1 -0
  268. package/lib/cjs/kibana/builders/index.cjs +2 -2
  269. package/lib/cjs/kibana/builders/index.cjs.map +1 -0
  270. package/lib/cjs/kibana/helpers.cjs +2 -2
  271. package/lib/cjs/kibana/helpers.cjs.map +1 -0
  272. package/lib/cjs/kibana/index.cjs +2 -2
  273. package/lib/cjs/kibana/index.cjs.map +1 -0
  274. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  275. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
  276. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  277. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
  278. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  279. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
  280. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  281. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
  282. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  283. package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
  284. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  285. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
  286. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  287. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
  288. package/lib/cjs/kibana/services/index.cjs +2 -2
  289. package/lib/cjs/kibana/services/index.cjs.map +1 -0
  290. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  291. package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
  292. package/lib/cjs/kibana/types.cjs +2 -2
  293. package/lib/cjs/kibana/types.cjs.map +1 -0
  294. package/lib/cjs/loader/ObjectLoader.cjs +2 -2
  295. package/lib/cjs/loader/ObjectLoader.cjs.map +1 -0
  296. package/lib/cjs/loader/families.cjs +2 -2
  297. package/lib/cjs/loader/families.cjs.map +1 -0
  298. package/lib/cjs/loader/index.cjs +2 -2
  299. package/lib/cjs/loader/index.cjs.map +1 -0
  300. package/lib/cjs/loader/types.cjs +2 -2
  301. package/lib/cjs/loader/types.cjs.map +1 -0
  302. package/lib/cjs/namespaces/index.cjs +2 -2
  303. package/lib/cjs/namespaces/index.cjs.map +1 -0
  304. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  305. package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
  306. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
  307. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
  308. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
  309. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
  310. package/lib/cjs/namespaces/models/group.model.cjs +2 -2
  311. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
  312. package/lib/cjs/namespaces/models/index.cjs +2 -2
  313. package/lib/cjs/namespaces/models/index.cjs.map +1 -0
  314. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
  315. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
  316. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
  317. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
  318. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
  319. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
  320. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  321. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
  322. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
  323. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
  324. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  325. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
  326. package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
  327. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
  328. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
  329. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
  330. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
  331. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
  332. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
  333. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
  334. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
  335. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
  336. package/lib/cjs/namespaces/models/role.model.cjs +2 -2
  337. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
  338. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  339. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
  340. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
  341. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
  342. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  343. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
  344. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
  345. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
  346. package/lib/cjs/namespaces/models/user.model.cjs +2 -2
  347. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
  348. package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
  349. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
  350. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  351. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
  352. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
  353. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
  354. package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
  355. package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
  356. package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
  357. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
  358. package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
  359. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
  360. package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
  361. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
  362. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  363. package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
  364. package/lib/cjs/namespaces/services/index.cjs +2 -2
  365. package/lib/cjs/namespaces/services/index.cjs.map +1 -0
  366. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
  367. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
  368. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
  369. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
  370. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  371. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
  372. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  373. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
  374. package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
  375. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
  376. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  377. package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
  378. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  379. package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
  380. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  381. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
  382. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  383. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
  384. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
  385. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
  386. package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
  387. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
  388. package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
  389. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
  390. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  391. package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
  392. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  393. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
  394. package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
  395. package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
  396. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  397. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
  398. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  399. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
  400. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  401. package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
  402. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  403. package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
  404. package/lib/cjs/namespaces/types.cjs +2 -2
  405. package/lib/cjs/namespaces/types.cjs.map +1 -0
  406. package/lib/cjs/namespaces/utils.cjs +2 -2
  407. package/lib/cjs/namespaces/utils.cjs.map +1 -0
  408. package/lib/cjs/nest/decorators.cjs +2 -2
  409. package/lib/cjs/nest/decorators.cjs.map +1 -0
  410. package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
  411. package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +1 -0
  412. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +2 -2
  413. package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +1 -0
  414. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
  415. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +1 -0
  416. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +2 -2
  417. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -0
  418. package/lib/cjs/nest/graph/GraphResultService.cjs +2 -2
  419. package/lib/cjs/nest/graph/GraphResultService.cjs.map +1 -0
  420. package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +2 -2
  421. package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +1 -0
  422. package/lib/cjs/nest/graph/GraphWorkflowService.cjs +2 -2
  423. package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +1 -0
  424. package/lib/cjs/nest/graph/index.cjs +2 -2
  425. package/lib/cjs/nest/graph/index.cjs.map +1 -0
  426. package/lib/cjs/nest/graph/main.cjs +2 -2
  427. package/lib/cjs/nest/graph/main.cjs.map +1 -0
  428. package/lib/cjs/nest/index.cjs +2 -2
  429. package/lib/cjs/nest/index.cjs.map +1 -0
  430. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  431. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
  432. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  433. package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
  434. package/lib/cjs/nest/logging.cjs +2 -2
  435. package/lib/cjs/nest/logging.cjs.map +1 -0
  436. package/lib/cjs/nest/types.cjs +2 -2
  437. package/lib/cjs/nest/types.cjs.map +1 -0
  438. package/lib/cjs/nest/utils.cjs +2 -2
  439. package/lib/cjs/nest/utils.cjs.map +1 -0
  440. package/lib/cjs/plugins/contract.cjs +2 -2
  441. package/lib/cjs/plugins/contract.cjs.map +1 -0
  442. package/lib/cjs/plugins/index.cjs +2 -2
  443. package/lib/cjs/plugins/index.cjs.map +1 -0
  444. package/lib/cjs/plugins/kibana/host.cjs +2 -2
  445. package/lib/cjs/plugins/kibana/host.cjs.map +1 -0
  446. package/lib/cjs/plugins/kibana/index.cjs +2 -2
  447. package/lib/cjs/plugins/kibana/index.cjs.map +1 -0
  448. package/lib/cjs/plugins/kibana/installer.cjs +2 -2
  449. package/lib/cjs/plugins/kibana/installer.cjs.map +1 -0
  450. package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
  451. package/lib/cjs/plugins/kibana/manifest.cjs.map +1 -0
  452. package/lib/cjs/plugins/kibana/templates.cjs +2 -2
  453. package/lib/cjs/plugins/kibana/templates.cjs.map +1 -0
  454. package/lib/cjs/plugins/kibana/types.cjs +2 -2
  455. package/lib/cjs/plugins/kibana/types.cjs.map +1 -0
  456. package/lib/cjs/plugins/superset/host.cjs +2 -2
  457. package/lib/cjs/plugins/superset/host.cjs.map +1 -0
  458. package/lib/cjs/plugins/superset/index.cjs +2 -2
  459. package/lib/cjs/plugins/superset/index.cjs.map +1 -0
  460. package/lib/cjs/plugins/superset/installer.cjs +2 -2
  461. package/lib/cjs/plugins/superset/installer.cjs.map +1 -0
  462. package/lib/cjs/plugins/superset/manifest.cjs +2 -2
  463. package/lib/cjs/plugins/superset/manifest.cjs.map +1 -0
  464. package/lib/cjs/plugins/superset/templates.cjs +2 -2
  465. package/lib/cjs/plugins/superset/templates.cjs.map +1 -0
  466. package/lib/cjs/plugins/superset/types.cjs +2 -2
  467. package/lib/cjs/plugins/superset/types.cjs.map +1 -0
  468. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  469. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
  470. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  471. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
  472. package/lib/cjs/secrets/aws/index.cjs +2 -2
  473. package/lib/cjs/secrets/aws/index.cjs.map +1 -0
  474. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  475. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
  476. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  477. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
  478. package/lib/cjs/secrets/azure/index.cjs +2 -2
  479. package/lib/cjs/secrets/azure/index.cjs.map +1 -0
  480. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  481. package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
  482. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  483. package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
  484. package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
  485. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
  486. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  487. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
  488. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  489. package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
  490. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  491. package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
  492. package/lib/cjs/secrets/core/index.cjs +2 -2
  493. package/lib/cjs/secrets/core/index.cjs.map +1 -0
  494. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  495. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
  496. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  497. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
  498. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  499. package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
  500. package/lib/cjs/secrets/index.cjs +2 -2
  501. package/lib/cjs/secrets/index.cjs.map +1 -0
  502. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  503. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
  504. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  505. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
  506. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  507. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
  508. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  509. package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
  510. package/lib/cjs/secrets/model/index.cjs +2 -2
  511. package/lib/cjs/secrets/model/index.cjs.map +1 -0
  512. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  513. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
  514. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  515. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
  516. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  517. package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
  518. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  519. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
  520. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  521. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
  522. package/lib/cjs/secrets/vault/index.cjs +2 -2
  523. package/lib/cjs/secrets/vault/index.cjs.map +1 -0
  524. package/lib/cjs/shared/runtime.cjs +2 -2
  525. package/lib/cjs/shared/runtime.cjs.map +1 -0
  526. package/lib/cjs/utils.cjs +2 -2
  527. package/lib/cjs/utils.cjs.map +1 -0
  528. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  529. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
  530. package/lib/esm/blob/azure/index.js +1 -1
  531. package/lib/esm/blob/azure/index.js.map +1 -0
  532. package/lib/esm/blob/core/BlobErrors.js +1 -1
  533. package/lib/esm/blob/core/BlobErrors.js.map +1 -0
  534. package/lib/esm/blob/core/BlobKey.js +1 -1
  535. package/lib/esm/blob/core/BlobKey.js.map +1 -0
  536. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  537. package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
  538. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  539. package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
  540. package/lib/esm/blob/core/BlobTypes.js +1 -1
  541. package/lib/esm/blob/core/BlobTypes.js.map +1 -0
  542. package/lib/esm/blob/core/BlobValue.js +1 -1
  543. package/lib/esm/blob/core/BlobValue.js.map +1 -0
  544. package/lib/esm/blob/core/index.js +1 -1
  545. package/lib/esm/blob/core/index.js.map +1 -0
  546. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  547. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
  548. package/lib/esm/blob/gcp/index.js +1 -1
  549. package/lib/esm/blob/gcp/index.js.map +1 -0
  550. package/lib/esm/blob/index.js +1 -1
  551. package/lib/esm/blob/index.js.map +1 -0
  552. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
  553. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
  554. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
  555. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
  556. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
  557. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
  558. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
  559. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
  560. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
  561. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
  562. package/lib/esm/blob/ipfs/index.js +1 -1
  563. package/lib/esm/blob/ipfs/index.js.map +1 -0
  564. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  565. package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
  566. package/lib/esm/blob/local/index.js +1 -1
  567. package/lib/esm/blob/local/index.js.map +1 -0
  568. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  569. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
  570. package/lib/esm/blob/memory/index.js +1 -1
  571. package/lib/esm/blob/memory/index.js.map +1 -0
  572. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  573. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
  574. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  575. package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
  576. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  577. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
  578. package/lib/esm/blob/s3/index.js +1 -1
  579. package/lib/esm/blob/s3/index.js.map +1 -0
  580. package/lib/esm/docker/DockerComposeService.js +1 -1
  581. package/lib/esm/docker/DockerComposeService.js.map +1 -0
  582. package/lib/esm/docker/index.js +1 -1
  583. package/lib/esm/docker/index.js.map +1 -0
  584. package/lib/esm/feature-flags/constants.js +1 -1
  585. package/lib/esm/feature-flags/constants.js.map +1 -0
  586. package/lib/esm/feature-flags/decorators.js +1 -1
  587. package/lib/esm/feature-flags/decorators.js.map +1 -0
  588. package/lib/esm/feature-flags/environment.js +1 -1
  589. package/lib/esm/feature-flags/environment.js.map +1 -0
  590. package/lib/esm/feature-flags/index.js +1 -1
  591. package/lib/esm/feature-flags/index.js.map +1 -0
  592. package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
  593. package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -0
  594. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
  595. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -0
  596. package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
  597. package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +1 -0
  598. package/lib/esm/feature-flags/readers/index.js +1 -1
  599. package/lib/esm/feature-flags/readers/index.js.map +1 -0
  600. package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
  601. package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +1 -0
  602. package/lib/esm/feature-flags/types.js +1 -1
  603. package/lib/esm/feature-flags/types.js.map +1 -0
  604. package/lib/esm/feature-flags/utils.js +1 -1
  605. package/lib/esm/feature-flags/utils.js.map +1 -0
  606. package/lib/esm/graph/engine/constants.js +1 -1
  607. package/lib/esm/graph/engine/constants.js.map +1 -0
  608. package/lib/esm/graph/engine/decorators.js +1 -1
  609. package/lib/esm/graph/engine/decorators.js.map +1 -0
  610. package/lib/esm/graph/engine/errors/GraphBreakSignal.js +1 -1
  611. package/lib/esm/graph/engine/errors/GraphBreakSignal.js.map +1 -0
  612. package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
  613. package/lib/esm/graph/engine/errors/GraphCycleError.js.map +1 -0
  614. package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
  615. package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +1 -0
  616. package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
  617. package/lib/esm/graph/engine/errors/GraphInputError.js.map +1 -0
  618. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
  619. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +1 -0
  620. package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
  621. package/lib/esm/graph/engine/errors/GraphPinningError.js.map +1 -0
  622. package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
  623. package/lib/esm/graph/engine/errors/GraphPortError.js.map +1 -0
  624. package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
  625. package/lib/esm/graph/engine/errors/GraphStoreError.js.map +1 -0
  626. package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
  627. package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +1 -0
  628. package/lib/esm/graph/engine/errors/index.js +1 -1
  629. package/lib/esm/graph/engine/errors/index.js.map +1 -0
  630. package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
  631. package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +1 -0
  632. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
  633. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +1 -0
  634. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
  635. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +1 -0
  636. package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
  637. package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +1 -0
  638. package/lib/esm/graph/engine/events/index.js +1 -1
  639. package/lib/esm/graph/engine/events/index.js.map +1 -0
  640. package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js +4 -2
  641. package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js.map +1 -0
  642. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +1 -1
  643. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +1 -0
  644. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
  645. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +1 -0
  646. package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
  647. package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -0
  648. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +1 -1
  649. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -0
  650. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
  651. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -0
  652. package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
  653. package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +1 -0
  654. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
  655. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +1 -0
  656. package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +1 -1
  657. package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +1 -0
  658. package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +1 -1
  659. package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +1 -0
  660. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
  661. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +1 -0
  662. package/lib/esm/graph/engine/execution/index.js +1 -1
  663. package/lib/esm/graph/engine/execution/index.js.map +1 -0
  664. package/lib/esm/graph/engine/index.js +1 -1
  665. package/lib/esm/graph/engine/index.js.map +1 -0
  666. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
  667. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +1 -0
  668. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +2 -2
  669. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +1 -0
  670. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
  671. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +1 -0
  672. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
  673. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +1 -0
  674. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
  675. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +1 -0
  676. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
  677. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +1 -0
  678. package/lib/esm/graph/engine/loops/index.js +1 -1
  679. package/lib/esm/graph/engine/loops/index.js.map +1 -0
  680. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
  681. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +1 -0
  682. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
  683. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +1 -0
  684. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
  685. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +1 -0
  686. package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
  687. package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +1 -0
  688. package/lib/esm/graph/engine/pinning/index.js +1 -1
  689. package/lib/esm/graph/engine/pinning/index.js.map +1 -0
  690. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
  691. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +1 -0
  692. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
  693. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +1 -0
  694. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
  695. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +1 -0
  696. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
  697. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +1 -0
  698. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
  699. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +1 -0
  700. package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
  701. package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +1 -0
  702. package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
  703. package/lib/esm/graph/engine/planning/GraphTopology.js.map +1 -0
  704. package/lib/esm/graph/engine/planning/index.js +1 -1
  705. package/lib/esm/graph/engine/planning/index.js.map +1 -0
  706. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
  707. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +1 -0
  708. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
  709. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +1 -0
  710. package/lib/esm/graph/engine/registry/index.js +1 -1
  711. package/lib/esm/graph/engine/registry/index.js.map +1 -0
  712. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
  713. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
  714. package/lib/esm/graph/engine/snapshots/index.js +1 -1
  715. package/lib/esm/graph/engine/snapshots/index.js.map +1 -0
  716. package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
  717. package/lib/esm/graph/engine/store/GraphCachedValue.js.map +1 -0
  718. package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
  719. package/lib/esm/graph/engine/store/GraphValueKey.js.map +1 -0
  720. package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
  721. package/lib/esm/graph/engine/store/GraphValueStore.js.map +1 -0
  722. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
  723. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +1 -0
  724. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
  725. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
  726. package/lib/esm/graph/engine/store/index.js +1 -1
  727. package/lib/esm/graph/engine/store/index.js.map +1 -0
  728. package/lib/esm/graph/engine/types.js +1 -1
  729. package/lib/esm/graph/engine/types.js.map +1 -0
  730. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
  731. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +1 -0
  732. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
  733. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +1 -0
  734. package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
  735. package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +1 -0
  736. package/lib/esm/graph/engine/validation/index.js +1 -1
  737. package/lib/esm/graph/engine/validation/index.js.map +1 -0
  738. package/lib/esm/graph/index.js +1 -1
  739. package/lib/esm/graph/index.js.map +1 -0
  740. package/lib/esm/graph/shared/constants.js +1 -1
  741. package/lib/esm/graph/shared/constants.js.map +1 -0
  742. package/lib/esm/graph/shared/index.js +1 -1
  743. package/lib/esm/graph/shared/index.js.map +1 -0
  744. package/lib/esm/graph/shared/nodes/agent.js +1 -1
  745. package/lib/esm/graph/shared/nodes/agent.js.map +1 -0
  746. package/lib/esm/graph/shared/nodes/base.js +1 -1
  747. package/lib/esm/graph/shared/nodes/base.js.map +1 -0
  748. package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
  749. package/lib/esm/graph/shared/nodes/category-styles.js.map +1 -0
  750. package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
  751. package/lib/esm/graph/shared/nodes/flow-control.js.map +1 -0
  752. package/lib/esm/graph/shared/nodes/index.js +1 -1
  753. package/lib/esm/graph/shared/nodes/index.js.map +1 -0
  754. package/lib/esm/graph/shared/nodes/triggers.js +1 -1
  755. package/lib/esm/graph/shared/nodes/triggers.js.map +1 -0
  756. package/lib/esm/graph/shared/types.js +1 -1
  757. package/lib/esm/graph/shared/types.js.map +1 -0
  758. package/lib/esm/index.js +3 -3
  759. package/lib/esm/index.js.map +1 -0
  760. package/lib/esm/keycloak/broker.js +17 -0
  761. package/lib/esm/keycloak/broker.js.map +1 -0
  762. package/lib/esm/keycloak/index.js +2 -1
  763. package/lib/esm/keycloak/index.js.map +1 -0
  764. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  765. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
  766. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  767. package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
  768. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +69 -1
  769. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
  770. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  771. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
  772. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  773. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
  774. package/lib/esm/keycloak/services/KeycloakService.js +5 -1
  775. package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
  776. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  777. package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
  778. package/lib/esm/keycloak/services/index.js +1 -1
  779. package/lib/esm/keycloak/services/index.js.map +1 -0
  780. package/lib/esm/keycloak/services/runtime.js +1 -1
  781. package/lib/esm/keycloak/services/runtime.js.map +1 -0
  782. package/lib/esm/keycloak/types.js +1 -1
  783. package/lib/esm/keycloak/types.js.map +1 -0
  784. package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
  785. package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +1 -0
  786. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
  787. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +1 -0
  788. package/lib/esm/kibana/builders/index.js +1 -1
  789. package/lib/esm/kibana/builders/index.js.map +1 -0
  790. package/lib/esm/kibana/helpers.js +1 -1
  791. package/lib/esm/kibana/helpers.js.map +1 -0
  792. package/lib/esm/kibana/index.js +1 -1
  793. package/lib/esm/kibana/index.js.map +1 -0
  794. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  795. package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
  796. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  797. package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
  798. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  799. package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
  800. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  801. package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
  802. package/lib/esm/kibana/services/KibanaService.js +1 -1
  803. package/lib/esm/kibana/services/KibanaService.js.map +1 -0
  804. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  805. package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
  806. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  807. package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
  808. package/lib/esm/kibana/services/index.js +1 -1
  809. package/lib/esm/kibana/services/index.js.map +1 -0
  810. package/lib/esm/kibana/services/runtime.js +1 -1
  811. package/lib/esm/kibana/services/runtime.js.map +1 -0
  812. package/lib/esm/kibana/types.js +1 -1
  813. package/lib/esm/kibana/types.js.map +1 -0
  814. package/lib/esm/loader/ObjectLoader.js +1 -1
  815. package/lib/esm/loader/ObjectLoader.js.map +1 -0
  816. package/lib/esm/loader/families.js +1 -1
  817. package/lib/esm/loader/families.js.map +1 -0
  818. package/lib/esm/loader/index.js +1 -1
  819. package/lib/esm/loader/index.js.map +1 -0
  820. package/lib/esm/loader/types.js +1 -1
  821. package/lib/esm/loader/types.js.map +1 -0
  822. package/lib/esm/namespaces/index.js +1 -1
  823. package/lib/esm/namespaces/index.js.map +1 -0
  824. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  825. package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
  826. package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
  827. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
  828. package/lib/esm/namespaces/models/group-membership.model.js +1 -1
  829. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
  830. package/lib/esm/namespaces/models/group.model.js +1 -1
  831. package/lib/esm/namespaces/models/group.model.js.map +1 -0
  832. package/lib/esm/namespaces/models/index.js +1 -1
  833. package/lib/esm/namespaces/models/index.js.map +1 -0
  834. package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
  835. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
  836. package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
  837. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
  838. package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
  839. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
  840. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  841. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
  842. package/lib/esm/namespaces/models/org-unit.model.js +1 -1
  843. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
  844. package/lib/esm/namespaces/models/permission.model.js +1 -1
  845. package/lib/esm/namespaces/models/permission.model.js.map +1 -0
  846. package/lib/esm/namespaces/models/principal.model.js +1 -1
  847. package/lib/esm/namespaces/models/principal.model.js.map +1 -0
  848. package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
  849. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
  850. package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
  851. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
  852. package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
  853. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
  854. package/lib/esm/namespaces/models/role-permission.model.js +1 -1
  855. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
  856. package/lib/esm/namespaces/models/role.model.js +1 -1
  857. package/lib/esm/namespaces/models/role.model.js.map +1 -0
  858. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  859. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
  860. package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
  861. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
  862. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  863. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
  864. package/lib/esm/namespaces/models/tenant.model.js +1 -1
  865. package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
  866. package/lib/esm/namespaces/models/user.model.js +1 -1
  867. package/lib/esm/namespaces/models/user.model.js.map +1 -0
  868. package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
  869. package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
  870. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  871. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
  872. package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
  873. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
  874. package/lib/esm/namespaces/services/authz.service.js +1 -1
  875. package/lib/esm/namespaces/services/authz.service.js.map +1 -0
  876. package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
  877. package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
  878. package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
  879. package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
  880. package/lib/esm/namespaces/services/group-membership.service.js +1 -1
  881. package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
  882. package/lib/esm/namespaces/services/group.service.js +1 -1
  883. package/lib/esm/namespaces/services/group.service.js.map +1 -0
  884. package/lib/esm/namespaces/services/index.js +1 -1
  885. package/lib/esm/namespaces/services/index.js.map +1 -0
  886. package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
  887. package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
  888. package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
  889. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
  890. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  891. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
  892. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  893. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
  894. package/lib/esm/namespaces/services/org-unit.service.js +1 -1
  895. package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
  896. package/lib/esm/namespaces/services/permission.service.js +1 -1
  897. package/lib/esm/namespaces/services/permission.service.js.map +1 -0
  898. package/lib/esm/namespaces/services/principal.service.js +1 -1
  899. package/lib/esm/namespaces/services/principal.service.js.map +1 -0
  900. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  901. package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
  902. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  903. package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
  904. package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
  905. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
  906. package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
  907. package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
  908. package/lib/esm/namespaces/services/role-permission.service.js +1 -1
  909. package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
  910. package/lib/esm/namespaces/services/role.service.js +1 -1
  911. package/lib/esm/namespaces/services/role.service.js.map +1 -0
  912. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  913. package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
  914. package/lib/esm/namespaces/services/system-management.service.js +1 -1
  915. package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
  916. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  917. package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
  918. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  919. package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
  920. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  921. package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
  922. package/lib/esm/namespaces/services/user.service.js +1 -1
  923. package/lib/esm/namespaces/services/user.service.js.map +1 -0
  924. package/lib/esm/namespaces/types.js +1 -1
  925. package/lib/esm/namespaces/types.js.map +1 -0
  926. package/lib/esm/namespaces/utils.js +1 -1
  927. package/lib/esm/namespaces/utils.js.map +1 -0
  928. package/lib/esm/nest/decorators.js +1 -1
  929. package/lib/esm/nest/decorators.js.map +1 -0
  930. package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
  931. package/lib/esm/nest/graph/GraphExecutionController.js.map +1 -0
  932. package/lib/esm/nest/graph/GraphExecutionModule.js +1 -1
  933. package/lib/esm/nest/graph/GraphExecutionModule.js.map +1 -0
  934. package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
  935. package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +1 -0
  936. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +1 -1
  937. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -0
  938. package/lib/esm/nest/graph/GraphResultService.js +1 -1
  939. package/lib/esm/nest/graph/GraphResultService.js.map +1 -0
  940. package/lib/esm/nest/graph/GraphWorkflowModel.js +1 -1
  941. package/lib/esm/nest/graph/GraphWorkflowModel.js.map +1 -0
  942. package/lib/esm/nest/graph/GraphWorkflowService.js +1 -1
  943. package/lib/esm/nest/graph/GraphWorkflowService.js.map +1 -0
  944. package/lib/esm/nest/graph/index.js +1 -1
  945. package/lib/esm/nest/graph/index.js.map +1 -0
  946. package/lib/esm/nest/graph/main.js +1 -1
  947. package/lib/esm/nest/graph/main.js.map +1 -0
  948. package/lib/esm/nest/index.js +1 -1
  949. package/lib/esm/nest/index.js.map +1 -0
  950. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  951. package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
  952. package/lib/esm/nest/keycloakModule.js +1 -1
  953. package/lib/esm/nest/keycloakModule.js.map +1 -0
  954. package/lib/esm/nest/logging.js +1 -1
  955. package/lib/esm/nest/logging.js.map +1 -0
  956. package/lib/esm/nest/types.js +1 -1
  957. package/lib/esm/nest/types.js.map +1 -0
  958. package/lib/esm/nest/utils.js +1 -1
  959. package/lib/esm/nest/utils.js.map +1 -0
  960. package/lib/esm/plugins/contract.js +1 -1
  961. package/lib/esm/plugins/contract.js.map +1 -0
  962. package/lib/esm/plugins/index.js +1 -1
  963. package/lib/esm/plugins/index.js.map +1 -0
  964. package/lib/esm/plugins/kibana/host.js +1 -1
  965. package/lib/esm/plugins/kibana/host.js.map +1 -0
  966. package/lib/esm/plugins/kibana/index.js +1 -1
  967. package/lib/esm/plugins/kibana/index.js.map +1 -0
  968. package/lib/esm/plugins/kibana/installer.js +1 -1
  969. package/lib/esm/plugins/kibana/installer.js.map +1 -0
  970. package/lib/esm/plugins/kibana/manifest.js +1 -1
  971. package/lib/esm/plugins/kibana/manifest.js.map +1 -0
  972. package/lib/esm/plugins/kibana/templates.js +1 -1
  973. package/lib/esm/plugins/kibana/templates.js.map +1 -0
  974. package/lib/esm/plugins/kibana/types.js +1 -1
  975. package/lib/esm/plugins/kibana/types.js.map +1 -0
  976. package/lib/esm/plugins/superset/host.js +1 -1
  977. package/lib/esm/plugins/superset/host.js.map +1 -0
  978. package/lib/esm/plugins/superset/index.js +1 -1
  979. package/lib/esm/plugins/superset/index.js.map +1 -0
  980. package/lib/esm/plugins/superset/installer.js +1 -1
  981. package/lib/esm/plugins/superset/installer.js.map +1 -0
  982. package/lib/esm/plugins/superset/manifest.js +1 -1
  983. package/lib/esm/plugins/superset/manifest.js.map +1 -0
  984. package/lib/esm/plugins/superset/templates.js +1 -1
  985. package/lib/esm/plugins/superset/templates.js.map +1 -0
  986. package/lib/esm/plugins/superset/types.js +1 -1
  987. package/lib/esm/plugins/superset/types.js.map +1 -0
  988. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  989. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
  990. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  991. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
  992. package/lib/esm/secrets/aws/index.js +1 -1
  993. package/lib/esm/secrets/aws/index.js.map +1 -0
  994. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  995. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
  996. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  997. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
  998. package/lib/esm/secrets/azure/index.js +1 -1
  999. package/lib/esm/secrets/azure/index.js.map +1 -0
  1000. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  1001. package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
  1002. package/lib/esm/secrets/core/SecretName.js +1 -1
  1003. package/lib/esm/secrets/core/SecretName.js.map +1 -0
  1004. package/lib/esm/secrets/core/SecretReference.js +1 -1
  1005. package/lib/esm/secrets/core/SecretReference.js.map +1 -0
  1006. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  1007. package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
  1008. package/lib/esm/secrets/core/SecretService.js +1 -1
  1009. package/lib/esm/secrets/core/SecretService.js.map +1 -0
  1010. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  1011. package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
  1012. package/lib/esm/secrets/core/index.js +1 -1
  1013. package/lib/esm/secrets/core/index.js.map +1 -0
  1014. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  1015. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
  1016. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  1017. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
  1018. package/lib/esm/secrets/gcp/index.js +1 -1
  1019. package/lib/esm/secrets/gcp/index.js.map +1 -0
  1020. package/lib/esm/secrets/index.js +1 -1
  1021. package/lib/esm/secrets/index.js.map +1 -0
  1022. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  1023. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
  1024. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  1025. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
  1026. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  1027. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
  1028. package/lib/esm/secrets/model/Secret.js +1 -1
  1029. package/lib/esm/secrets/model/Secret.js.map +1 -0
  1030. package/lib/esm/secrets/model/index.js +1 -1
  1031. package/lib/esm/secrets/model/index.js.map +1 -0
  1032. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  1033. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
  1034. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  1035. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
  1036. package/lib/esm/secrets/onepassword/index.js +1 -1
  1037. package/lib/esm/secrets/onepassword/index.js.map +1 -0
  1038. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  1039. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
  1040. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  1041. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
  1042. package/lib/esm/secrets/vault/index.js +1 -1
  1043. package/lib/esm/secrets/vault/index.js.map +1 -0
  1044. package/lib/esm/shared/runtime.js +1 -1
  1045. package/lib/esm/shared/runtime.js.map +1 -0
  1046. package/lib/esm/utils.js +1 -1
  1047. package/lib/esm/utils.js.map +1 -0
  1048. package/lib/types/index.d.cts +2 -2
  1049. package/lib/types/index.d.mts +2 -2
  1050. package/lib/types/keycloak/broker.d.cts +6 -0
  1051. package/lib/types/keycloak/broker.d.mts +6 -0
  1052. package/lib/types/keycloak/index.d.cts +1 -0
  1053. package/lib/types/keycloak/index.d.mts +1 -0
  1054. package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.cts +4 -1
  1055. package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.mts +4 -1
  1056. package/lib/types/keycloak/services/KeycloakService.d.cts +2 -1
  1057. package/lib/types/keycloak/services/KeycloakService.d.mts +2 -1
  1058. package/lib/types/keycloak/types.d.cts +52 -0
  1059. package/lib/types/keycloak/types.d.mts +52 -0
  1060. package/package.json +1 -1
@@ -1020,4 +1020,4 @@ __decorate([
1020
1020
  __metadata("design:paramtypes", [String, String, String, Object]),
1021
1021
  __metadata("design:returntype", Promise)
1022
1022
  ], SystemManagementService.prototype, "reactivateUserInTenant", null);
1023
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLnNlcnZpY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvb3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLnNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixhQUFhLEVBRWIsU0FBUyxFQUNULGtCQUFrQixFQUVsQixFQUFFLEVBQ0YsVUFBVSxFQUNWLGFBQWEsR0FDZCw0Q0FBeUM7QUFlMUMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixLQUFLLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsYUFBYSxFQUNiLElBQUksRUFDSixjQUFjLEVBQ2QsY0FBYyxFQUNkLGNBQWMsRUFDZCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixJQUFJLEdBQ0wsbURBQWdEO0FBQ2pELEVBQUU7QUFDRixtQ0FBbUM7QUFDbkMsbUVBQW1FO0FBQ25FLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBa0IsRUFBRSxRQUFnQixFQUFXLEVBQUUsQ0FDbkUsVUFBVSxDQUFDLFNBQW9DLENBQUMsS0FBSyxRQUFRLENBQUM7QUFDaEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFjLEVBQUUsTUFBMEIsRUFBVyxFQUFFLENBQzVFLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQWdDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUMzRSxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFLENBQzFDLEtBQUs7S0FDRixJQUFJLEVBQUU7S0FDTixXQUFXLEVBQUU7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LGtCQUFrQixFQUNsQixnQkFBZ0IsQ0FBQyxTQUFTLEVBQzFCLEdBQUcsSUFBSSxDQUNSLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FDdEQsUUFBUSxFQUNSLFdBQVcsRUFDWCxHQUFHLElBQUksQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLHNCQUFzQixDQUMxQixrQkFBMEIsRUFDMUIsUUFBZ0IsRUFDaEIsV0FBbUIsRUFDbkIsR0FBRyxJQUFXO1FBRWQsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUNwQyxrQkFBa0IsRUFDbEIsZ0JBQWdCLENBQUMsTUFBTSxFQUN2QixHQUFHLElBQUksQ0FDUixDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsbUJBQW1CLENBQ3ZELFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxJQUFJLENBQ1IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpJTztJQURMLGFBQWEsRUFBRTs7Ozs0RUFnRGY7QUFHSztJQURMLGFBQWEsRUFBRTs7OztnRUF5Q2Y7QUFHSztJQURMLGFBQWEsRUFBRTs7OztrRUFpQmY7QUFHSztJQURMLGFBQWEsRUFBRTs7OztxRUFpQmYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlTW9kZWxTZXJ2aWNlLFxuICBJc29sYXRpb25UaWVyLFxuICBNZW1iZXJzaGlwU3RhdHVzLFxuICBQZXJtaXNzaW9uQ2F0ZWdvcnksXG4gIFByaW5jaXBhbEtpbmQsXG4gIFJlc291cmNlVmlzaWJpbGl0eSxcbiAgU2NvcGVLaW5kLFxuICBTdG9yYWdlQmluZGluZ0tpbmQsXG4gIFN0b3JhZ2VLaW5kLFxuICBpZCxcbiAgcmVsYXRpb25JZCxcbiAgdHJhbnNhY3Rpb25hbCxcbn0gZnJvbSBcIi4vb3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEFzc2lnblJvbGVJbnB1dCxcbiAgQm9vdHN0cmFwT3JnVW5pdCxcbiAgQm9vdHN0cmFwVGVtcGxhdGUsXG4gIENyZWF0ZU9yZ1VuaXRJbnB1dCxcbiAgQ3JlYXRlUGVybWlzc2lvbklucHV0LFxuICBDcmVhdGVSb2xlSW5wdXQsXG4gIENyZWF0ZVN0b3JhZ2VCaW5kaW5nSW5wdXQsXG4gIENyZWF0ZVRlbmFudElucHV0LFxuICBDcmVhdGVVc2VySW5wdXQsXG4gIEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdCxcbiAgR3JhbnRSZXNvdXJjZUlucHV0LFxuICBSZWdpc3RlclJlc291cmNlSW5wdXQsXG59IGZyb20gXCIuL29yZy1iYXNlZC1hdXRob3JpemF0aW9uLXN5c3RlbVwiO1xuaW1wb3J0IHtcbiAgRWZmZWN0aXZlUGVybWlzc2lvbixcbiAgR3JvdXAsXG4gIEdyb3VwTWVtYmVyc2hpcCxcbiAgSW5oZXJpdGFuY2VCbG9jayxcbiAgT3JnVW5pdCxcbiAgT3JnVW5pdENsb3N1cmUsXG4gIE9yZ1VuaXRNZW1iZXJzaGlwLFxuICBPcmdVbml0UHJvZmlsZSxcbiAgUGVybWlzc2lvbixcbiAgUHJvdGVjdGVkUmVzb3VyY2UsXG4gIFByaW5jaXBhbCxcbiAgUmVzb3VyY2VHcmFudCxcbiAgUm9sZSxcbiAgUm9sZUFzc2lnbm1lbnQsXG4gIFJvbGVQZXJtaXNzaW9uLFxuICBTdG9yYWdlQmluZGluZyxcbiAgVGVuYW50LFxuICBUZW5hbnRNZW1iZXJzaGlwLFxuICBUZW5hbnRQcm9maWxlLFxuICBVc2VyLFxufSBmcm9tIFwiLi9vcmctYmFzZWQtYXV0aG9yaXphdGlvbi1zeXN0ZW0ubW9kZWxzXCI7XG4vL1xuLy8gY29uc3Qgbm93SXNvID0gKCkgPT4gbmV3IERhdGUoKTtcbi8vIGNvbnN0IGFzQXJyYXkgPSA8VD4odmFsdWU6IFRbXSB8IHVuZGVmaW5lZCk6IFRbXSA9PiB2YWx1ZSA/PyBbXTtcbmNvbnN0IHNhbWVUZW5hbnQgPSAocm93VGVuYW50OiB1bmtub3duLCB0ZW5hbnRJZDogc3RyaW5nKTogYm9vbGVhbiA9PlxuICByZWxhdGlvbklkKHJvd1RlbmFudCBhcyB7IGlkOiBzdHJpbmcgfSB8IHN0cmluZykgPT09IHRlbmFudElkO1xuY29uc3QgcmVsYXRpb25NYXRjaCA9ICh2YWx1ZTogdW5rbm93biwgdGFyZ2V0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuID0+XG4gIHRhcmdldCA/IHJlbGF0aW9uSWQodmFsdWUgYXMgeyBpZDogc3RyaW5nIH0gfCBzdHJpbmcpID09PSB0YXJnZXQgOiBmYWxzZTtcbmNvbnN0IGxvd2VyU2x1ZyA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHZhbHVlXG4gICAgLnRyaW0oKVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgXCItXCIpXG4gICAgLnJlcGxhY2UoL14tK3wtKyQvZywgXCJcIikgfHwgXCJpdGVtXCI7XG5cbmFzeW5jIGZ1bmN0aW9uIGRlbGV0ZU1hbnlCeUlkKFxuICBzZXJ2aWNlOiBCYXNlTW9kZWxTZXJ2aWNlPGFueT4sXG4gIHJvd3M6IEFycmF5PHsgaWQ6IHN0cmluZyB9PixcbiAgLi4uYXJnczogYW55W11cbik6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgYXdhaXQgc2VydmljZS5kZWxldGVCeUlkKHJvdy5pZCwgLi4uYXJncyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbmFudFByb2ZpbGVTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxUZW5hbnRQcm9maWxlPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFRlbmFudFByb2ZpbGUpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUHJvZmlsZShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByb2ZpbGVLZXk6IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8VGVuYW50UHJvZmlsZT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHRlbmFudDogdGVuYW50SWQsXG4gICAgICAgIHByb2ZpbGVLZXksXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdEZvclRlbmFudChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8VGVuYW50UHJvZmlsZVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocHJvZmlsZSkgPT5cbiAgICAgIHJlbGF0aW9uTWF0Y2gocHJvZmlsZS50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGVGb3JUZW5hbnQodGVuYW50SWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBkZWxldGVNYW55QnlJZChcbiAgICAgIHRoaXMsXG4gICAgICBhd2FpdCB0aGlzLmxpc3RGb3JUZW5hbnQodGVuYW50SWQsIC4uLmFyZ3MpLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9yZ1VuaXRQcm9maWxlU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8T3JnVW5pdFByb2ZpbGU+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoT3JnVW5pdFByb2ZpbGUpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUHJvZmlsZShcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICBwcm9maWxlS2V5OiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRQcm9maWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgb3JnVW5pdDogb3JnVW5pdElkLFxuICAgICAgICBwcm9maWxlS2V5LFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RGb3JPcmdVbml0KFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdFByb2ZpbGVbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHByb2ZpbGUpID0+XG4gICAgICByZWxhdGlvbk1hdGNoKHByb2ZpbGUub3JnVW5pdCwgb3JnVW5pdElkKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9yZ1VuaXRDbG9zdXJlU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8T3JnVW5pdENsb3N1cmU+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoT3JnVW5pdENsb3N1cmUpO1xuICB9XG5cbiAgYXN5bmMgbGlzdEFuY2VzdG9ycyhcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdENsb3N1cmVbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHJvdykgPT5cbiAgICAgICAgICBzYW1lVGVuYW50KHJvdy50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICAgIHJlbGF0aW9uTWF0Y2gocm93LmRlc2NlbmRhbnQsIG9yZ1VuaXRJZClcbiAgICAgIClcbiAgICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gbGVmdC5kZXB0aCAtIHJpZ2h0LmRlcHRoKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3REZXNjZW5kYW50cyhcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdENsb3N1cmVbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHJvdykgPT5cbiAgICAgICAgICBzYW1lVGVuYW50KHJvdy50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICAgIHJlbGF0aW9uTWF0Y2gocm93LmFuY2VzdG9yLCBvcmdVbml0SWQpXG4gICAgICApXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IGxlZnQuZGVwdGggLSByaWdodC5kZXB0aCk7XG4gIH1cblxuICBhc3luYyBpc0FuY2VzdG9yT2YoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBhbmNlc3Rvck9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIGRlc2NlbmRhbnRPcmdVbml0SWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5saXN0QW5jZXN0b3JzKHRlbmFudElkLCBkZXNjZW5kYW50T3JnVW5pdElkLCAuLi5hcmdzKVxuICAgICkuc29tZSgocm93KSA9PiByZWxhdGlvbk1hdGNoKHJvdy5hbmNlc3RvciwgYW5jZXN0b3JPcmdVbml0SWQpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlbGZMaW5rKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0Q2xvc3VyZT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHRlbmFudDogdGVuYW50SWQsXG4gICAgICAgIGFuY2VzdG9yOiBvcmdVbml0SWQsXG4gICAgICAgIGRlc2NlbmRhbnQ6IG9yZ1VuaXRJZCxcbiAgICAgICAgZGVwdGg6IDAsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBpbnNlcnRBbmNlc3RvckxpbmtzRm9yTmV3Q2hpbGQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwYXJlbnRPcmdVbml0SWQ6IHN0cmluZyxcbiAgICBjaGlsZE9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGFuY2VzdG9yTGlua3MgPSBhd2FpdCB0aGlzLmxpc3RBbmNlc3RvcnMoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHBhcmVudE9yZ1VuaXRJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgYW5jZXN0b3JMaW5rcy5tYXAoKGxpbmspID0+XG4gICAgICAgIHRoaXMuY3JlYXRlT25lKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgICAgIGFuY2VzdG9yOiBsaW5rLmFuY2VzdG9yLFxuICAgICAgICAgICAgZGVzY2VuZGFudDogY2hpbGRPcmdVbml0SWQsXG4gICAgICAgICAgICBkZXB0aDogbGluay5kZXB0aCArIDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi5hcmdzXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlTGlua3NGb3JTdWJ0cmVlKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc3VidHJlZSA9IGF3YWl0IHRoaXMubGlzdERlc2NlbmRhbnRzKHRlbmFudElkLCBvcmdVbml0SWQsIC4uLmFyZ3MpO1xuICAgIGNvbnN0IGRlc2NlbmRhbnRJZHMgPSBuZXcgU2V0KFtcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIC4uLnN1YnRyZWUubWFwKChyb3cpID0+IHJlbGF0aW9uSWQocm93LmRlc2NlbmRhbnQpKSxcbiAgICBdKTtcbiAgICBjb25zdCBhbmNlc3RvcklkcyA9IG5ldyBTZXQoW1xuICAgICAgb3JnVW5pdElkLFxuICAgICAgLi4uc3VidHJlZS5tYXAoKHJvdykgPT4gcmVsYXRpb25JZChyb3cuYW5jZXN0b3IpKSxcbiAgICBdKTtcbiAgICBjb25zdCByb3dzID0gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKFxuICAgICAgKHJvdykgPT5cbiAgICAgICAgc2FtZVRlbmFudChyb3cudGVuYW50LCB0ZW5hbnRJZCkgJiZcbiAgICAgICAgKGRlc2NlbmRhbnRJZHMuaGFzKHJlbGF0aW9uSWQocm93LmRlc2NlbmRhbnQpKSB8fFxuICAgICAgICAgIGFuY2VzdG9ySWRzLmhhcyhyZWxhdGlvbklkKHJvdy5hbmNlc3RvcikpKVxuICAgICk7XG4gICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgcm93cywgLi4uYXJncyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluaGVyaXRhbmNlQmxvY2tTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxJbmhlcml0YW5jZUJsb2NrPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKEluaGVyaXRhbmNlQmxvY2spO1xuICB9XG5cbiAgYXN5bmMgYmxvY2tDYXRlZ29yeShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25DYXRlZ29yeTogUGVybWlzc2lvbkNhdGVnb3J5LFxuICAgIGJsb2NrZWRGcm9tQW5jZXN0b3JJZD86IHN0cmluZyxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxJbmhlcml0YW5jZUJsb2NrPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgb3JnVW5pdDogb3JnVW5pdElkLFxuICAgICAgICBibG9ja2VkRnJvbUFuY2VzdG9yOiBibG9ja2VkRnJvbUFuY2VzdG9ySWQsXG4gICAgICAgIHBlcm1pc3Npb25DYXRlZ29yeSxcbiAgICAgICAgcmVhc29uLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5ibG9ja0NhdGVnb3J5KGJsb2NrSWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQoYmxvY2tJZCwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBsaXN0Rm9yT3JnVW5pdChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8SW5oZXJpdGFuY2VCbG9ja1tdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChibG9jaykgPT5cbiAgICAgICAgc2FtZVRlbmFudChibG9jay50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICByZWxhdGlvbk1hdGNoKGJsb2NrLm9yZ1VuaXQsIG9yZ1VuaXRJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgY2F0ZWdvcnlCbG9ja2VkRm9yQW5jZXN0b3IoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICBhbmNlc3Rvck9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIGNhdGVnb3J5OiBQZXJtaXNzaW9uQ2F0ZWdvcnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RGb3JPcmdVbml0KHRlbmFudElkLCBvcmdVbml0SWQsIC4uLmFyZ3MpKS5zb21lKFxuICAgICAgKGJsb2NrKSA9PlxuICAgICAgICBibG9jay5wZXJtaXNzaW9uQ2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICghYmxvY2suYmxvY2tlZEZyb21BbmNlc3RvciB8fFxuICAgICAgICAgIHJlbGF0aW9uTWF0Y2goYmxvY2suYmxvY2tlZEZyb21BbmNlc3RvciwgYW5jZXN0b3JPcmdVbml0SWQpKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbmFudFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFRlbmFudD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihUZW5hbnQpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlVGVuYW50KFxuICAgIGlucHV0OiBDcmVhdGVUZW5hbnRJbnB1dCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFRlbmFudD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHNsdWc6IGlucHV0LnNsdWcsXG4gICAgICAgIG5hbWU6IGlucHV0Lm5hbWUsXG4gICAgICAgIGlzb2xhdGlvblRpZXI6IGlucHV0Lmlzb2xhdGlvblRpZXIgPz8gSXNvbGF0aW9uVGllci5Qb29sZWQsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRCeVNsdWcoc2x1Zzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8VGVuYW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZUJ5KFwic2x1Z1wiLCBzbHVnIGFzIG5ldmVyLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHJlbmFtZVRlbmFudChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFRlbmFudD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZSh0ZW5hbnRJZCwgeyBuYW1lIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgY2hhbmdlU2x1ZyhcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHNsdWc6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFRlbmFudD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZSh0ZW5hbnRJZCwgeyBzbHVnIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgc2V0SXNvbGF0aW9uVGllcihcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIGlzb2xhdGlvblRpZXI6IElzb2xhdGlvblRpZXIsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxUZW5hbnQ+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUodGVuYW50SWQsIHsgaXNvbGF0aW9uVGllciB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVRlbmFudENvbnRyb2xsZWQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQodGVuYW50SWQsIC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcmdVbml0U2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8T3JnVW5pdD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihPcmdVbml0KTtcbiAgfVxuXG4gIHByaXZhdGUgb3JnVW5pdFBhdGgocGFyZW50UGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBsb3dlclNsdWcobmFtZSk7XG4gICAgcmV0dXJuIHBhcmVudFBhdGhcbiAgICAgID8gYCR7cGFyZW50UGF0aC5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpfS8ke3NlZ21lbnR9YFxuICAgICAgOiBgLyR7c2VnbWVudH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVQcm9maWxlSWZOZWVkZWQoXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgcHJvZmlsZUtleTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHByb2ZpbGVNZXRhZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFwcm9maWxlS2V5KSByZXR1cm47XG4gICAgY29uc3QgcHJvZmlsZVNlcnZpY2UgPSBuZXcgT3JnVW5pdFByb2ZpbGVTZXJ2aWNlKCk7XG4gICAgYXdhaXQgcHJvZmlsZVNlcnZpY2UuY3JlYXRlUHJvZmlsZShcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIHByb2ZpbGVLZXksXG4gICAgICBwcm9maWxlTWV0YWRhdGEsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgY3JlYXRlUm9vdChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHByb2ZpbGVLZXk/OiBzdHJpbmcsXG4gICAgcHJvZmlsZU1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0PiB7XG4gICAgY29uc3Qgb3JnVW5pdCA9IGF3YWl0IHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGF0aDogdGhpcy5vcmdVbml0UGF0aCh1bmRlZmluZWQsIG5hbWUpLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVByb2ZpbGVJZk5lZWRlZChcbiAgICAgIG9yZ1VuaXQuaWQsXG4gICAgICBwcm9maWxlS2V5LFxuICAgICAgcHJvZmlsZU1ldGFkYXRhLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3QgY2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgYXdhaXQgY2xvc3VyZVNlcnZpY2UuY3JlYXRlU2VsZkxpbmsodGVuYW50SWQsIG9yZ1VuaXQuaWQsIC4uLmFyZ3MpO1xuICAgIHJldHVybiBvcmdVbml0O1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyBjcmVhdGVDaGlsZChcbiAgICBpbnB1dDogQ3JlYXRlT3JnVW5pdElucHV0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdD4ge1xuICAgIGNvbnN0IHBhcmVudCA9IGlucHV0LnBhcmVudE9yZ1VuaXRJZFxuICAgICAgPyBhd2FpdCB0aGlzLmdldEJ5SWQoaW5wdXQucGFyZW50T3JnVW5pdElkLCAuLi5hcmdzKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3JnVW5pdCA9IGF3YWl0IHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAgcGFyZW50OiBwYXJlbnQ/LmlkID8/IGlucHV0LnBhcmVudE9yZ1VuaXRJZCxcbiAgICAgICAgbmFtZTogaW5wdXQubmFtZSxcbiAgICAgICAgcGF0aDogdGhpcy5vcmdVbml0UGF0aChwYXJlbnQ/LnBhdGgsIGlucHV0Lm5hbWUpLFxuICAgICAgICBtZXRhZGF0YTogaW5wdXQubWV0YWRhdGEsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVQcm9maWxlSWZOZWVkZWQoXG4gICAgICBvcmdVbml0LmlkLFxuICAgICAgaW5wdXQucHJvZmlsZUtleSxcbiAgICAgIGlucHV0LnByb2ZpbGVNZXRhZGF0YSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGNsb3N1cmVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRDbG9zdXJlU2VydmljZSgpO1xuICAgIGF3YWl0IGNsb3N1cmVTZXJ2aWNlLmNyZWF0ZVNlbGZMaW5rKGlucHV0LnRlbmFudElkLCBvcmdVbml0LmlkLCAuLi5hcmdzKTtcbiAgICBpZiAoaW5wdXQucGFyZW50T3JnVW5pdElkKSB7XG4gICAgICBhd2FpdCBjbG9zdXJlU2VydmljZS5pbnNlcnRBbmNlc3RvckxpbmtzRm9yTmV3Q2hpbGQoXG4gICAgICAgIGlucHV0LnRlbmFudElkLFxuICAgICAgICBpbnB1dC5wYXJlbnRPcmdVbml0SWQsXG4gICAgICAgIG9yZ1VuaXQuaWQsXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvcmdVbml0O1xuICB9XG5cbiAgYXN5bmMgbGlzdENoaWxkcmVuKFxuICAgIHBhcmVudE9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigob3JnVW5pdCkgPT5cbiAgICAgIHJlbGF0aW9uTWF0Y2gob3JnVW5pdC5wYXJlbnQsIHBhcmVudE9yZ1VuaXRJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudE9yZ1VuaXRzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0W10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChvcmdVbml0KSA9PlxuICAgICAgc2FtZVRlbmFudChvcmdVbml0LnRlbmFudCwgdGVuYW50SWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3REZXNjZW5kYW50T3JnVW5pdHMoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICBpbmNsdWRlU2VsZiA9IGZhbHNlLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdFtdPiB7XG4gICAgY29uc3QgY2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSBhd2FpdCBjbG9zdXJlU2VydmljZS5saXN0RGVzY2VuZGFudHMoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQoZGVzY2VuZGFudHMubWFwKChyb3cpID0+IHJlbGF0aW9uSWQocm93LmRlc2NlbmRhbnQpKSk7XG4gICAgaWYgKGluY2x1ZGVTZWxmKSBpZHMuYWRkKG9yZ1VuaXRJZCk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RUZW5hbnRPcmdVbml0cyh0ZW5hbnRJZCwgLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChvcmdVbml0KSA9PiBpZHMuaGFzKG9yZ1VuaXQuaWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RBbmNlc3Rvck9yZ1VuaXRzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgaW5jbHVkZVNlbGYgPSBmYWxzZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRbXT4ge1xuICAgIGNvbnN0IGNsb3N1cmVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRDbG9zdXJlU2VydmljZSgpO1xuICAgIGNvbnN0IGFuY2VzdG9ycyA9IGF3YWl0IGNsb3N1cmVTZXJ2aWNlLmxpc3RBbmNlc3RvcnMoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQoYW5jZXN0b3JzLm1hcCgocm93KSA9PiByZWxhdGlvbklkKHJvdy5hbmNlc3RvcikpKTtcbiAgICBpZiAoaW5jbHVkZVNlbGYpIGlkcy5hZGQob3JnVW5pdElkKTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdFRlbmFudE9yZ1VuaXRzKHRlbmFudElkLCAuLi5hcmdzKSkuZmlsdGVyKFxuICAgICAgKG9yZ1VuaXQpID0+IGlkcy5oYXMob3JnVW5pdC5pZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVuYW1lT3JnVW5pdChcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0PiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmdldEJ5SWQob3JnVW5pdElkLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUoXG4gICAgICBvcmdVbml0SWQsXG4gICAgICB7IG5hbWUsIHBhdGg6IHRoaXMub3JnVW5pdFBhdGgodW5kZWZpbmVkLCBuYW1lKSB9LFxuICAgICAgLi4uYXJnc1xuICAgICkudGhlbihhc3luYyAodXBkYXRlZCkgPT4ge1xuICAgICAgdXBkYXRlZC5wYXRoID0gZXhpc3RpbmcucGFyZW50XG4gICAgICAgID8gdGhpcy5vcmdVbml0UGF0aCh1bmRlZmluZWQsIG5hbWUpXG4gICAgICAgIDogdGhpcy5vcmdVbml0UGF0aCh1bmRlZmluZWQsIG5hbWUpO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfSk7XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIG1vdmVPcmdVbml0KFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgbmV3UGFyZW50T3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0PiB7XG4gICAgY29uc3QgbmV3UGFyZW50ID0gYXdhaXQgdGhpcy5nZXRCeUlkKG5ld1BhcmVudE9yZ1VuaXRJZCwgLi4uYXJncyk7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmdldEJ5SWQob3JnVW5pdElkLCAuLi5hcmdzKTtcbiAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy51cGRhdGVPbmUoXG4gICAgICBvcmdVbml0SWQsXG4gICAgICB7XG4gICAgICAgIHBhcmVudDogbmV3UGFyZW50LmlkLFxuICAgICAgICBwYXRoOiB0aGlzLm9yZ1VuaXRQYXRoKG5ld1BhcmVudC5wYXRoLCBleGlzdGluZy5uYW1lKSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlYnVpbGRUZW5hbnRDbG9zdXJlKHRlbmFudElkLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgcmVidWlsZFRlbmFudENsb3N1cmUodGVuYW50SWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjbG9zdXJlU2VydmljZSA9IG5ldyBPcmdVbml0Q2xvc3VyZVNlcnZpY2UoKTtcbiAgICBjb25zdCBleGlzdGluZ0xpbmtzID0gYXdhaXQgY2xvc3VyZVNlcnZpY2UubGlzdEFsbCguLi5hcmdzKTtcbiAgICBhd2FpdCBkZWxldGVNYW55QnlJZChcbiAgICAgIGNsb3N1cmVTZXJ2aWNlLFxuICAgICAgZXhpc3RpbmdMaW5rcy5maWx0ZXIoKHJvdykgPT4gc2FtZVRlbmFudChyb3cudGVuYW50LCB0ZW5hbnRJZCkpLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG5cbiAgICBjb25zdCBvcmdVbml0cyA9IChhd2FpdCB0aGlzLmxpc3RUZW5hbnRPcmdVbml0cyh0ZW5hbnRJZCwgLi4uYXJncykpLnNvcnQoXG4gICAgICAobGVmdCwgcmlnaHQpID0+IHtcbiAgICAgICAgY29uc3QgbGVmdERlcHRoID0gbGVmdC5wYXRoLnNwbGl0KFwiL1wiKS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoO1xuICAgICAgICBjb25zdCByaWdodERlcHRoID0gcmlnaHQucGF0aC5zcGxpdChcIi9cIikuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIGxlZnREZXB0aCAtIHJpZ2h0RGVwdGg7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGZvciAoY29uc3Qgb3JnVW5pdCBvZiBvcmdVbml0cykge1xuICAgICAgYXdhaXQgY2xvc3VyZVNlcnZpY2UuY3JlYXRlU2VsZkxpbmsodGVuYW50SWQsIG9yZ1VuaXQuaWQsIC4uLmFyZ3MpO1xuICAgICAgaWYgKG9yZ1VuaXQucGFyZW50KSB7XG4gICAgICAgIGF3YWl0IGNsb3N1cmVTZXJ2aWNlLmluc2VydEFuY2VzdG9yTGlua3NGb3JOZXdDaGlsZChcbiAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICByZWxhdGlvbklkKG9yZ1VuaXQucGFyZW50KSxcbiAgICAgICAgICBvcmdVbml0LmlkLFxuICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIGRlbGV0ZU9yZ1VuaXRUcmVlKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSBhd2FpdCB0aGlzLmxpc3REZXNjZW5kYW50T3JnVW5pdHMoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIHRydWUsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBjb25zdCBkZXNjZW5kYW50SWRzID0gbmV3IFNldChkZXNjZW5kYW50cy5tYXAoKG9yZ1VuaXQpID0+IG9yZ1VuaXQuaWQpKTtcbiAgICBjb25zdCBvcmdVbml0cyA9IChhd2FpdCB0aGlzLmxpc3RUZW5hbnRPcmdVbml0cyh0ZW5hbnRJZCwgLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChvcmdVbml0KSA9PiBkZXNjZW5kYW50SWRzLmhhcyhvcmdVbml0LmlkKVxuICAgICk7XG4gICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgb3JnVW5pdHMsIC4uLmFyZ3MpO1xuICAgIGF3YWl0IGNsb3N1cmVTZXJ2aWNlLmRlbGV0ZUxpbmtzRm9yU3VidHJlZSh0ZW5hbnRJZCwgb3JnVW5pdElkLCAuLi5hcmdzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFVzZXI+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVXNlcik7XG4gIH1cblxuICBhc3luYyBjcmVhdGVVc2VyKGlucHV0OiBDcmVhdGVVc2VySW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgZW1haWw6IGlucHV0LmVtYWlsLFxuICAgICAgICBwaG9uZTogaW5wdXQucGhvbmUsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBpbnB1dC5kaXNwbGF5TmFtZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldEJ5RW1haWwoZW1haWw6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPFVzZXI+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmluZChcbiAgICAgICh1c2VyKSA9PiB1c2VyLmVtYWlsID09PSBlbWFpbFxuICAgICkgYXMgVXNlcjtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURpc3BsYXlOYW1lKFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHVzZXJJZCwgeyBkaXNwbGF5TmFtZSB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUVtYWlsKFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIGVtYWlsOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHVzZXJJZCwgeyBlbWFpbCB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVBob25lKFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIHBob25lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHVzZXJJZCwgeyBwaG9uZSB9LCAuLi5hcmdzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJpbmNpcGFsU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8UHJpbmNpcGFsPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFByaW5jaXBhbCk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVQcmluY2lwYWwoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBraW5kOiBQcmluY2lwYWxLaW5kLFxuICAgIHN1YmplY3RJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UHJpbmNpcGFsPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAga2luZCxcbiAgICAgICAgc3ViamVjdElkLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0Rm9yU3ViamVjdChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIGtpbmQ6IFByaW5jaXBhbEtpbmQsXG4gICAgc3ViamVjdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQcmluY2lwYWwgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmluZChcbiAgICAgIChwcmluY2lwYWwpID0+XG4gICAgICAgIHNhbWVUZW5hbnQocHJpbmNpcGFsLnRlbmFudCwgdGVuYW50SWQpICYmXG4gICAgICAgIHByaW5jaXBhbC5raW5kID09PSBraW5kICYmXG4gICAgICAgIHByaW5jaXBhbC5zdWJqZWN0SWQgPT09IHN1YmplY3RJZFxuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRPckNyZWF0ZUZvclN1YmplY3QoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBraW5kOiBQcmluY2lwYWxLaW5kLFxuICAgIHN1YmplY3RJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UHJpbmNpcGFsPiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChhd2FpdCB0aGlzLmdldEZvclN1YmplY3QodGVuYW50SWQsIGtpbmQsIHN1YmplY3RJZCwgLi4uYXJncykpID8/XG4gICAgICAoYXdhaXQgdGhpcy5jcmVhdGVQcmluY2lwYWwodGVuYW50SWQsIGtpbmQsIHN1YmplY3RJZCwgLi4uYXJncykpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJQcmluY2lwYWwoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFByaW5jaXBhbD4ge1xuICAgIHJldHVybiB0aGlzLmdldE9yQ3JlYXRlRm9yU3ViamVjdChcbiAgICAgIHRlbmFudElkLFxuICAgICAgUHJpbmNpcGFsS2luZC5Vc2VyLFxuICAgICAgdXNlcklkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRHcm91cFByaW5jaXBhbChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIGdyb3VwSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFByaW5jaXBhbD4ge1xuICAgIHJldHVybiB0aGlzLmdldE9yQ3JlYXRlRm9yU3ViamVjdChcbiAgICAgIHRlbmFudElkLFxuICAgICAgUHJpbmNpcGFsS2luZC5Hcm91cCxcbiAgICAgIGdyb3VwSWQsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVuYW50TWVtYmVyc2hpcFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFRlbmFudE1lbWJlcnNoaXA+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVGVuYW50TWVtYmVyc2hpcCk7XG4gIH1cblxuICBhc3luYyBhZGRVc2VyVG9UZW5hbnQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IE1lbWJlcnNoaXBTdGF0dXMgPSBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFRlbmFudE1lbWJlcnNoaXA+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICB1c2VyOiB1c2VySWQsXG4gICAgICAgIHN0YXR1cyxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNldFN0YXR1cyhcbiAgICBtZW1iZXJzaGlwSWQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IE1lbWJlcnNoaXBTdGF0dXMsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxUZW5hbnRNZW1iZXJzaGlwPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKG1lbWJlcnNoaXBJZCwgeyBzdGF0dXMgfSwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBsaXN0VXNlclRlbmFudHMoXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxUZW5hbnRNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChtZW1iZXJzaGlwLnVzZXIsIHVzZXJJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudFVzZXJzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxUZW5hbnRNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PlxuICAgICAgc2FtZVRlbmFudChtZW1iZXJzaGlwLnRlbmFudCwgdGVuYW50SWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZVVzZXJGcm9tVGVuYW50KFxuICAgIG1lbWJlcnNoaXBJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChtZW1iZXJzaGlwSWQsIC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcmdVbml0TWVtYmVyc2hpcFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPE9yZ1VuaXRNZW1iZXJzaGlwPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKE9yZ1VuaXRNZW1iZXJzaGlwKTtcbiAgfVxuXG4gIGFzeW5jIGFkZFVzZXJUb09yZ1VuaXQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IE1lbWJlcnNoaXBTdGF0dXMgPSBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRNZW1iZXJzaGlwPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgb3JnVW5pdDogb3JnVW5pdElkLFxuICAgICAgICB1c2VyOiB1c2VySWQsXG4gICAgICAgIHN0YXR1cyxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNldFN0YXR1cyhcbiAgICBtZW1iZXJzaGlwSWQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IE1lbWJlcnNoaXBTdGF0dXMsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0TWVtYmVyc2hpcD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShtZW1iZXJzaGlwSWQsIHsgc3RhdHVzIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgbGlzdFVzZXJPcmdVbml0cyhcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChtZW1iZXJzaGlwLnVzZXIsIHVzZXJJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdE9yZ1VuaXRVc2VycyhcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChtZW1iZXJzaGlwLm9yZ1VuaXQsIG9yZ1VuaXRJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlVXNlckZyb21PcmdVbml0KFxuICAgIG1lbWJlcnNoaXBJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChtZW1iZXJzaGlwSWQsIC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHcm91cFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPEdyb3VwPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKEdyb3VwKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUdyb3VwKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZD86IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8R3JvdXA+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICBvcmdVbml0OiBvcmdVbml0SWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVuYW1lR3JvdXAoXG4gICAgZ3JvdXBJZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEdyb3VwPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKGdyb3VwSWQsIHsgbmFtZSB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIG1vdmVHcm91cFRvT3JnVW5pdChcbiAgICBncm91cElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxHcm91cD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShncm91cElkLCB7IG9yZ1VuaXQ6IG9yZ1VuaXRJZCB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RUZW5hbnRHcm91cHModGVuYW50SWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPEdyb3VwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChncm91cCkgPT5cbiAgICAgIHNhbWVUZW5hbnQoZ3JvdXAudGVuYW50LCB0ZW5hbnRJZClcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHcm91cE1lbWJlcnNoaXBTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxHcm91cE1lbWJlcnNoaXA+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoR3JvdXBNZW1iZXJzaGlwKTtcbiAgfVxuXG4gIGFzeW5jIGFkZFByaW5jaXBhbFRvR3JvdXAoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBncm91cElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8R3JvdXBNZW1iZXJzaGlwPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgZ3JvdXA6IGdyb3VwSWQsXG4gICAgICAgIHByaW5jaXBhbDogcHJpbmNpcGFsSWQsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdEdyb3VwTWVtYmVycyhcbiAgICBncm91cElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxHcm91cE1lbWJlcnNoaXBbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKG1lbWJlcnNoaXApID0+XG4gICAgICByZWxhdGlvbk1hdGNoKG1lbWJlcnNoaXAuZ3JvdXAsIGdyb3VwSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RQcmluY2lwYWxHcm91cHMoXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEdyb3VwTWVtYmVyc2hpcFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigobWVtYmVyc2hpcCkgPT5cbiAgICAgIHJlbGF0aW9uTWF0Y2gobWVtYmVyc2hpcC5wcmluY2lwYWwsIHByaW5jaXBhbElkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyByZW1vdmVQcmluY2lwYWxGcm9tR3JvdXAoXG4gICAgbWVtYmVyc2hpcElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVCeUlkKG1lbWJlcnNoaXBJZCwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyByZXNvbHZlR3JvdXBQcmluY2lwYWxJZHNGb3JQcmluY2lwYWwoXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgcHJpbmNpcGFsU2VydmljZSA9IG5ldyBQcmluY2lwYWxTZXJ2aWNlKCk7XG4gICAgY29uc3QgbWVtYmVyc2hpcHMgPSBhd2FpdCB0aGlzLmxpc3RQcmluY2lwYWxHcm91cHMocHJpbmNpcGFsSWQsIC4uLmFyZ3MpO1xuICAgIGNvbnN0IHByaW5jaXBhbHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1lbWJlcnNoaXBzLm1hcChhc3luYyAobWVtYmVyc2hpcCkgPT4ge1xuICAgICAgICBjb25zdCB0ZW5hbnRJZCA9IHJlbGF0aW9uSWQobWVtYmVyc2hpcC50ZW5hbnQpO1xuICAgICAgICBjb25zdCBncm91cElkID0gcmVsYXRpb25JZChtZW1iZXJzaGlwLmdyb3VwKTtcbiAgICAgICAgY29uc3QgcHJpbmNpcGFsID0gYXdhaXQgcHJpbmNpcGFsU2VydmljZS5nZXRHcm91cFByaW5jaXBhbChcbiAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICBncm91cElkLFxuICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHByaW5jaXBhbC5pZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcHJpbmNpcGFscztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFBlcm1pc3Npb24+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUGVybWlzc2lvbik7XG4gIH1cblxuICBhc3luYyBjcmVhdGVQZXJtaXNzaW9uKFxuICAgIGlucHV0OiBDcmVhdGVQZXJtaXNzaW9uSW5wdXQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQZXJtaXNzaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAga2V5OiBpbnB1dC5rZXksXG4gICAgICAgIGNhdGVnb3J5OiBpbnB1dC5jYXRlZ29yeSxcbiAgICAgICAgZGVzY3JpcHRpb246IGlucHV0LmRlc2NyaXB0aW9uLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlLZXkoa2V5OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxQZXJtaXNzaW9uPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbmQoXG4gICAgICAocGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5rZXkgPT09IGtleVxuICAgICkgYXMgUGVybWlzc2lvbjtcbiAgfVxuXG4gIGFzeW5jIGxpc3RCeUNhdGVnb3J5KFxuICAgIGNhdGVnb3J5OiBQZXJtaXNzaW9uQ2F0ZWdvcnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQZXJtaXNzaW9uW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKFxuICAgICAgKHBlcm1pc3Npb24pID0+IHBlcm1pc3Npb24uY2F0ZWdvcnkgPT09IGNhdGVnb3J5XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURlc2NyaXB0aW9uKFxuICAgIHBlcm1pc3Npb25JZDogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQZXJtaXNzaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHBlcm1pc3Npb25JZCwgeyBkZXNjcmlwdGlvbiB9LCAuLi5hcmdzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm9sZVNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFJvbGU+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUm9sZSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVSb2xlKGlucHV0OiBDcmVhdGVSb2xlSW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxSb2xlPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAga2V5OiBpbnB1dC5rZXksXG4gICAgICAgIG5hbWU6IGlucHV0Lm5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBpbnB1dC5kZXNjcmlwdGlvbixcbiAgICAgICAgbWV0YWRhdGE6IGlucHV0Lm1ldGFkYXRhLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0U3lzdGVtUm9sZUJ5S2V5KGtleTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Um9sZT4ge1xuICAgIGNvbnN0IHJvbGUgPSAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maW5kKFxuICAgICAgKGNhbmRpZGF0ZSkgPT4gIWNhbmRpZGF0ZS50ZW5hbnQgJiYgY2FuZGlkYXRlLmtleSA9PT0ga2V5XG4gICAgKTtcbiAgICBpZiAoIXJvbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUm9sZSBcIiR7a2V5fVwiIG5vdCBmb3VuZGApO1xuICAgIH1cbiAgICByZXR1cm4gcm9sZTtcbiAgfVxuXG4gIGFzeW5jIGdldFRlbmFudFJvbGVCeUtleShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZT4ge1xuICAgIGNvbnN0IHJvbGUgPSAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maW5kKFxuICAgICAgKGNhbmRpZGF0ZSkgPT5cbiAgICAgICAgc2FtZVRlbmFudChjYW5kaWRhdGUudGVuYW50LCB0ZW5hbnRJZCkgJiYgY2FuZGlkYXRlLmtleSA9PT0ga2V5XG4gICAgKTtcbiAgICBpZiAoIXJvbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUm9sZSBcIiR7a2V5fVwiIG5vdCBmb3VuZCBmb3IgdGVuYW50ICR7dGVuYW50SWR9YCk7XG4gICAgfVxuICAgIHJldHVybiByb2xlO1xuICB9XG5cbiAgYXN5bmMgcmVuYW1lUm9sZShcbiAgICByb2xlSWQ6IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSb2xlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHJvbGVJZCwgeyBuYW1lIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUm9sZU1ldGFkYXRhKFxuICAgIHJvbGVJZDogc3RyaW5nLFxuICAgIG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJvbGU+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUocm9sZUlkLCB7IG1ldGFkYXRhIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudFJvbGVzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgaW5jbHVkZVN5c3RlbSA9IGZhbHNlLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocm9sZSkgPT5cbiAgICAgIGluY2x1ZGVTeXN0ZW1cbiAgICAgICAgPyAhcm9sZS50ZW5hbnQgfHwgc2FtZVRlbmFudChyb2xlLnRlbmFudCwgdGVuYW50SWQpXG4gICAgICAgIDogc2FtZVRlbmFudChyb2xlLnRlbmFudCwgdGVuYW50SWQpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm9sZVBlcm1pc3Npb25TZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxSb2xlUGVybWlzc2lvbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihSb2xlUGVybWlzc2lvbik7XG4gIH1cblxuICBhc3luYyBhZGRQZXJtaXNzaW9uVG9Sb2xlKFxuICAgIHJvbGVJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25JZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVBlcm1pc3Npb24+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICByb2xlOiByb2xlSWQsXG4gICAgICAgIHBlcm1pc3Npb246IHBlcm1pc3Npb25JZCxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGFkZFBlcm1pc3Npb25LZXlUb1JvbGUoXG4gICAgcm9sZUlkOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbktleTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVBlcm1pc3Npb24+IHtcbiAgICBjb25zdCBwZXJtaXNzaW9uID0gYXdhaXQgbmV3IFBlcm1pc3Npb25TZXJ2aWNlKCkuZ2V0QnlLZXkoXG4gICAgICBwZXJtaXNzaW9uS2V5LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYWRkUGVybWlzc2lvblRvUm9sZShyb2xlSWQsIHBlcm1pc3Npb24uaWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlUGVybWlzc2lvbkZyb21Sb2xlKFxuICAgIHJvbGVQZXJtaXNzaW9uSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQocm9sZVBlcm1pc3Npb25JZCwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBsaXN0Um9sZVBlcm1pc3Npb25zKFxuICAgIHJvbGVJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVBlcm1pc3Npb25bXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHJvbGVQZXJtaXNzaW9uKSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChyb2xlUGVybWlzc2lvbi5yb2xlLCByb2xlSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RQZXJtaXNzaW9uUm9sZXMoXG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSb2xlUGVybWlzc2lvbltdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocm9sZVBlcm1pc3Npb24pID0+XG4gICAgICByZWxhdGlvbk1hdGNoKHJvbGVQZXJtaXNzaW9uLnBlcm1pc3Npb24sIHBlcm1pc3Npb25JZClcbiAgICApO1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyByZXBsYWNlUm9sZVBlcm1pc3Npb25zKFxuICAgIHJvbGVJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25JZHM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVBlcm1pc3Npb25bXT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5saXN0Um9sZVBlcm1pc3Npb25zKHJvbGVJZCwgLi4uYXJncyk7XG4gICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgZXhpc3RpbmcsIC4uLmFyZ3MpO1xuICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHBlcm1pc3Npb25JZHMubWFwKChwZXJtaXNzaW9uSWQpID0+XG4gICAgICAgIHRoaXMuYWRkUGVybWlzc2lvblRvUm9sZShyb2xlSWQsIHBlcm1pc3Npb25JZCwgLi4uYXJncylcbiAgICAgIClcbiAgICApO1xuICAgIHJldHVybiBjcmVhdGVkO1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyBjcmVhdGVSb2xlV2l0aFBlcm1pc3Npb25zKFxuICAgIGlucHV0OiBDcmVhdGVSb2xlSW5wdXQsXG4gICAgcGVybWlzc2lvbktleXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZT4ge1xuICAgIGNvbnN0IHJvbGUgPSBhd2FpdCBuZXcgUm9sZVNlcnZpY2UoKS5jcmVhdGVSb2xlKGlucHV0LCAuLi5hcmdzKTtcbiAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb25LZXkgb2YgcGVybWlzc2lvbktleXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuYWRkUGVybWlzc2lvbktleVRvUm9sZShyb2xlLmlkLCBwZXJtaXNzaW9uS2V5LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvbGU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvbGVBc3NpZ25tZW50U2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8Um9sZUFzc2lnbm1lbnQ+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUm9sZUFzc2lnbm1lbnQpO1xuICB9XG5cbiAgYXN5bmMgYXNzaWduUm9sZShcbiAgICBpbnB1dDogQXNzaWduUm9sZUlucHV0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZUFzc2lnbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICB0ZW5hbnQ6IGlucHV0LnRlbmFudElkLFxuICAgICAgICBwcmluY2lwYWw6IGlucHV0LnByaW5jaXBhbElkLFxuICAgICAgICByb2xlOiBpbnB1dC5yb2xlSWQsXG4gICAgICAgIHNjb3BlS2luZDogaW5wdXQuc2NvcGVLaW5kLFxuICAgICAgICBzY29wZUlkOiBpbnB1dC5zY29wZUlkLFxuICAgICAgICBpbmhlcml0RG93bjogaW5wdXQuaW5oZXJpdERvd24gPz8gZmFsc2UsXG4gICAgICAgIHN0YXJ0c0F0OiBpbnB1dC5zdGFydHNBdCxcbiAgICAgICAgZXhwaXJlc0F0OiBpbnB1dC5leHBpcmVzQXQsXG4gICAgICAgIGNvbmRpdGlvbnM6IGlucHV0LmNvbmRpdGlvbnMsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyByZXZva2VBc3NpZ25tZW50KGFzc2lnbm1lbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChhc3NpZ25tZW50SWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgbGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJvbGVBc3NpZ25tZW50W10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKFxuICAgICAgKGFzc2lnbm1lbnQpID0+XG4gICAgICAgIHNhbWVUZW5hbnQoYXNzaWdubWVudC50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICByZWxhdGlvbk1hdGNoKGFzc2lnbm1lbnQucHJpbmNpcGFsLCBwcmluY2lwYWxJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFJvbGVBc3NpZ25tZW50cyhcbiAgICByb2xlSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJvbGVBc3NpZ25tZW50W10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChhc3NpZ25tZW50KSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChhc3NpZ25tZW50LnJvbGUsIHJvbGVJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudEFzc2lnbm1lbnRzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSb2xlQXNzaWdubWVudFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigoYXNzaWdubWVudCkgPT5cbiAgICAgIHNhbWVUZW5hbnQoYXNzaWdubWVudC50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVBc3NpZ25tZW50V2luZG93KFxuICAgIGFzc2lnbm1lbnRJZDogc3RyaW5nLFxuICAgIHN0YXJ0c0F0OiBEYXRlIHwgdW5kZWZpbmVkLFxuICAgIGV4cGlyZXNBdDogRGF0ZSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJvbGVBc3NpZ25tZW50PiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKGFzc2lnbm1lbnRJZCwgeyBzdGFydHNBdCwgZXhwaXJlc0F0IH0sIC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8RWZmZWN0aXZlUGVybWlzc2lvbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihFZmZlY3RpdmVQZXJtaXNzaW9uKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RGb3JQcmluY2lwYWwoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RWZmZWN0aXZlUGVybWlzc2lvbltdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChwZXJtaXNzaW9uKSA9PlxuICAgICAgICBzYW1lVGVuYW50KHBlcm1pc3Npb24udGVuYW50LCB0ZW5hbnRJZCkgJiZcbiAgICAgICAgcmVsYXRpb25NYXRjaChwZXJtaXNzaW9uLnByaW5jaXBhbCwgcHJpbmNpcGFsSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RGb3JTY29wZShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHNjb3BlS2luZDogU2NvcGVLaW5kLFxuICAgIHNjb3BlSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEVmZmVjdGl2ZVBlcm1pc3Npb25bXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoXG4gICAgICAocGVybWlzc2lvbikgPT5cbiAgICAgICAgc2FtZVRlbmFudChwZXJtaXNzaW9uLnRlbmFudCwgdGVuYW50SWQpICYmXG4gICAgICAgIHBlcm1pc3Npb24uc2NvcGVLaW5kID09PSBzY29wZUtpbmQgJiZcbiAgICAgICAgcGVybWlzc2lvbi5zY29wZUlkID09PSBzY29wZUlkXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGhhc1Blcm1pc3Npb24oXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25LZXk6IHN0cmluZyxcbiAgICBzY29wZUtpbmQ6IFNjb3BlS2luZCxcbiAgICBzY29wZUlkOiBzdHJpbmcsXG4gICAgYXQ/OiBEYXRlLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0Rm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncykpLnNvbWUoXG4gICAgICAocGVybWlzc2lvbikgPT5cbiAgICAgICAgcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgIHBlcm1pc3Npb24uc2NvcGVLaW5kID09PSBzY29wZUtpbmQgJiZcbiAgICAgICAgcGVybWlzc2lvbi5zY29wZUlkID09PSBzY29wZUlkICYmXG4gICAgICAgICghcGVybWlzc2lvbi5zdGFydHNBdCB8fCAhYXQgfHwgcGVybWlzc2lvbi5zdGFydHNBdCA8PSBhdCkgJiZcbiAgICAgICAgKCFwZXJtaXNzaW9uLmV4cGlyZXNBdCB8fCAhYXQgfHwgcGVybWlzc2lvbi5leHBpcmVzQXQgPj0gYXQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZvclByaW5jaXBhbChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQoXG4gICAgICB0aGlzLFxuICAgICAgYXdhaXQgdGhpcy5saXN0Rm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyksXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZvclRlbmFudCh0ZW5hbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGRlbGV0ZU1hbnlCeUlkKFxuICAgICAgdGhpcyxcbiAgICAgIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocGVybWlzc2lvbikgPT5cbiAgICAgICAgc2FtZVRlbmFudChwZXJtaXNzaW9uLnRlbmFudCwgdGVuYW50SWQpXG4gICAgICApLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIHJlYnVpbGRGb3JQcmluY2lwYWwoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RWZmZWN0aXZlUGVybWlzc2lvbltdPiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcblxuICAgIGNvbnN0IHJvbGVBc3NpZ25tZW50U2VydmljZSA9IG5ldyBSb2xlQXNzaWdubWVudFNlcnZpY2UoKTtcbiAgICBjb25zdCByb2xlUGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUm9sZVBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgY29uc3QgcGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgICBjb25zdCBncm91cE1lbWJlcnNoaXBTZXJ2aWNlID0gbmV3IEdyb3VwTWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgICBjb25zdCBwcmluY2lwYWxTZXJ2aWNlID0gbmV3IFByaW5jaXBhbFNlcnZpY2UoKTtcbiAgICBjb25zdCBvcmdVbml0Q2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgY29uc3QgaW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UgPSBuZXcgSW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UoKTtcblxuICAgIGNvbnN0IG1hdGVyaWFsaXplZDogRWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90W10gPSBbXTtcbiAgICBjb25zdCBzb3VyY2VBc3NpZ25tZW50cyA9XG4gICAgICBhd2FpdCByb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKFxuICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICk7XG4gICAgY29uc3QgZ3JvdXBNZW1iZXJzaGlwcyA9IGF3YWl0IGdyb3VwTWVtYmVyc2hpcFNlcnZpY2UubGlzdFByaW5jaXBhbEdyb3VwcyhcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3QgZ3JvdXBBc3NpZ25tZW50cyA9IChcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBncm91cE1lbWJlcnNoaXBzLm1hcChhc3luYyAobWVtYmVyc2hpcCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGdyb3VwUHJpbmNpcGFsID0gYXdhaXQgcHJpbmNpcGFsU2VydmljZS5nZXRHcm91cFByaW5jaXBhbChcbiAgICAgICAgICAgIHJlbGF0aW9uSWQobWVtYmVyc2hpcC50ZW5hbnQpLFxuICAgICAgICAgICAgcmVsYXRpb25JZChtZW1iZXJzaGlwLmdyb3VwKSxcbiAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiByb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKFxuICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICBncm91cFByaW5jaXBhbC5pZCxcbiAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICkuZmxhdCgpO1xuXG4gICAgY29uc3QgYXNzaWdubWVudHMgPSBbLi4uc291cmNlQXNzaWdubWVudHMsIC4uLmdyb3VwQXNzaWdubWVudHNdO1xuICAgIGZvciAoY29uc3QgYXNzaWdubWVudCBvZiBhc3NpZ25tZW50cykge1xuICAgICAgY29uc3Qgcm9sZVBlcm1pc3Npb25zID0gYXdhaXQgcm9sZVBlcm1pc3Npb25TZXJ2aWNlLmxpc3RSb2xlUGVybWlzc2lvbnMoXG4gICAgICAgIHJlbGF0aW9uSWQoYXNzaWdubWVudC5yb2xlKSxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKTtcbiAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHJvbGVQZXJtaXNzaW9ucy5tYXAoYXN5bmMgKHJvbGVQZXJtaXNzaW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGVybWlzc2lvbiA9IGF3YWl0IHBlcm1pc3Npb25TZXJ2aWNlLmZpbmRPbmVCeShcbiAgICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICAgIHJlbGF0aW9uSWQocm9sZVBlcm1pc3Npb24ucGVybWlzc2lvbikgYXMgbmV2ZXIsXG4gICAgICAgICAgICAuLi5hcmdzXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gcGVybWlzc2lvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uKSBjb250aW51ZTtcbiAgICAgICAgY29uc3Qgc2NvcGVLaW5kID0gYXNzaWdubWVudC5zY29wZUtpbmQ7XG4gICAgICAgIGNvbnN0IHNjb3BlSWQgPSBhc3NpZ25tZW50LnNjb3BlSWQ7XG4gICAgICAgIGNvbnN0IHNjb3BlczogQXJyYXk8eyBzY29wZUtpbmQ6IFNjb3BlS2luZDsgc2NvcGVJZDogc3RyaW5nIH0+ID0gW107XG4gICAgICAgIGlmIChzY29wZUtpbmQgPT09IFNjb3BlS2luZC5UZW5hbnQpIHtcbiAgICAgICAgICBzY29wZXMucHVzaCh7IHNjb3BlS2luZCwgc2NvcGVJZDogdGVuYW50SWQgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuUmVzb3VyY2UpIHtcbiAgICAgICAgICBzY29wZXMucHVzaCh7IHNjb3BlS2luZCwgc2NvcGVJZCB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChzY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0ICYmICFhc3NpZ25tZW50LmluaGVyaXREb3duKSB7XG4gICAgICAgICAgc2NvcGVzLnB1c2goeyBzY29wZUtpbmQsIHNjb3BlSWQgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuT3JnVW5pdCAmJiBhc3NpZ25tZW50LmluaGVyaXREb3duKSB7XG4gICAgICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSBhd2FpdCBvcmdVbml0Q2xvc3VyZVNlcnZpY2UubGlzdERlc2NlbmRhbnRzKFxuICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICBzY29wZUlkLFxuICAgICAgICAgICAgLi4uYXJnc1xuICAgICAgICAgICk7XG4gICAgICAgICAgc2NvcGVzLnB1c2goXG4gICAgICAgICAgICAuLi5kZXNjZW5kYW50cy5tYXAoKHJvdykgPT4gKHtcbiAgICAgICAgICAgICAgc2NvcGVLaW5kLFxuICAgICAgICAgICAgICBzY29wZUlkOiByZWxhdGlvbklkKHJvdy5kZXNjZW5kYW50KSxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHNjb3BlZCBvZiBzY29wZXMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBzY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0ICYmXG4gICAgICAgICAgICBhc3NpZ25tZW50LmluaGVyaXREb3duICYmXG4gICAgICAgICAgICBzY29wZWQuc2NvcGVJZCAhPT0gc2NvcGVJZCAmJlxuICAgICAgICAgICAgKGF3YWl0IGluaGVyaXRhbmNlQmxvY2tTZXJ2aWNlLmNhdGVnb3J5QmxvY2tlZEZvckFuY2VzdG9yKFxuICAgICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgICAgc2NvcGVkLnNjb3BlSWQsXG4gICAgICAgICAgICAgIHNjb3BlSWQsXG4gICAgICAgICAgICAgIHBlcm1pc3Npb24uY2F0ZWdvcnksXG4gICAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICAgICkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbWF0ZXJpYWxpemVkLnB1c2goe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgIHByaW5jaXBhbElkLFxuICAgICAgICAgICAgcGVybWlzc2lvbktleTogcGVybWlzc2lvbi5rZXksXG4gICAgICAgICAgICBzY29wZUtpbmQ6IHNjb3BlZC5zY29wZUtpbmQsXG4gICAgICAgICAgICBzY29wZUlkOiBzY29wZWQuc2NvcGVJZCxcbiAgICAgICAgICAgIHNvdXJjZUtpbmQ6IFwicm9sZV9hc3NpZ25tZW50XCIsXG4gICAgICAgICAgICBzb3VyY2VJZDogYXNzaWdubWVudC5pZCxcbiAgICAgICAgICAgIHN0YXJ0c0F0OiBhc3NpZ25tZW50LnN0YXJ0c0F0LFxuICAgICAgICAgICAgZXhwaXJlc0F0OiBhc3NpZ25tZW50LmV4cGlyZXNBdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1hdGVyaWFsaXplZC5tYXAoKHBlcm1pc3Npb24pID0+XG4gICAgICAgIHRoaXMuY3JlYXRlT25lKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBwZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgdGVuYW50OiBwZXJtaXNzaW9uLnRlbmFudElkLFxuICAgICAgICAgICAgcHJpbmNpcGFsOiBwZXJtaXNzaW9uLnByaW5jaXBhbElkLFxuICAgICAgICAgICAgcGVybWlzc2lvbktleTogcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5LFxuICAgICAgICAgICAgc2NvcGVLaW5kOiBwZXJtaXNzaW9uLnNjb3BlS2luZCxcbiAgICAgICAgICAgIHNjb3BlSWQ6IHBlcm1pc3Npb24uc2NvcGVJZCxcbiAgICAgICAgICAgIHNvdXJjZUtpbmQ6IHBlcm1pc3Npb24uc291cmNlS2luZCxcbiAgICAgICAgICAgIHNvdXJjZUlkOiBwZXJtaXNzaW9uLnNvdXJjZUlkLFxuICAgICAgICAgICAgc3RhcnRzQXQ6IHBlcm1pc3Npb24uc3RhcnRzQXQsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IHBlcm1pc3Npb24uZXhwaXJlc0F0LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uYXJnc1xuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgcmVidWlsZEZvclRlbmFudCh0ZW5hbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHByaW5jaXBhbHMgPSAoYXdhaXQgbmV3IFByaW5jaXBhbFNlcnZpY2UoKS5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoXG4gICAgICAocHJpbmNpcGFsKSA9PiBzYW1lVGVuYW50KHByaW5jaXBhbC50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gICAgZm9yIChjb25zdCBwcmluY2lwYWwgb2YgcHJpbmNpcGFscykge1xuICAgICAgYXdhaXQgdGhpcy5yZWJ1aWxkRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWwuaWQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvdGVjdGVkUmVzb3VyY2VTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxQcm90ZWN0ZWRSZXNvdXJjZT4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihQcm90ZWN0ZWRSZXNvdXJjZSk7XG4gIH1cblxuICBhc3luYyByZWdpc3RlclJlc291cmNlKFxuICAgIGlucHV0OiBSZWdpc3RlclJlc291cmNlSW5wdXQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQcm90ZWN0ZWRSZXNvdXJjZT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHRlbmFudDogaW5wdXQudGVuYW50SWQsXG4gICAgICAgIG9yZ1VuaXQ6IGlucHV0Lm9yZ1VuaXRJZCxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBpbnB1dC5yZXNvdXJjZVR5cGUsXG4gICAgICAgIHJlc291cmNlSWQ6IGlucHV0LnJlc291cmNlSWQsXG4gICAgICAgIHZpc2liaWxpdHk6IGlucHV0LnZpc2liaWxpdHksXG4gICAgICAgIG93bmVyOiBpbnB1dC5vd25lclByaW5jaXBhbElkLFxuICAgICAgICBzZW5zaXRpdml0eTogaW5wdXQuc2Vuc2l0aXZpdHksXG4gICAgICAgIG1ldGFkYXRhOiBpbnB1dC5tZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldEJ5RG9tYWluUmVzb3VyY2UoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbiAgICByZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQcm90ZWN0ZWRSZXNvdXJjZSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maW5kKFxuICAgICAgKHJlc291cmNlKSA9PlxuICAgICAgICBzYW1lVGVuYW50KHJlc291cmNlLnRlbmFudCwgdGVuYW50SWQpICYmXG4gICAgICAgIHJlc291cmNlLnJlc291cmNlVHlwZSA9PT0gcmVzb3VyY2VUeXBlICYmXG4gICAgICAgIHJlc291cmNlLnJlc291cmNlSWQgPT09IHJlc291cmNlSWRcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbW92ZVJlc291cmNlVG9PcmdVbml0KFxuICAgIHByb3RlY3RlZFJlc291cmNlSWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFByb3RlY3RlZFJlc291cmNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHByb3RlY3RlZFJlc291cmNlSWQsIHsgb3JnVW5pdDogb3JnVW5pdElkIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgc2V0VmlzaWJpbGl0eShcbiAgICBwcm90ZWN0ZWRSZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgdmlzaWJpbGl0eTogUmVzb3VyY2VWaXNpYmlsaXR5LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UHJvdGVjdGVkUmVzb3VyY2U+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUocHJvdGVjdGVkUmVzb3VyY2VJZCwgeyB2aXNpYmlsaXR5IH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgdHJhbnNmZXJPd25lcnNoaXAoXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VJZDogc3RyaW5nLFxuICAgIG93bmVyUHJpbmNpcGFsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFByb3RlY3RlZFJlc291cmNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKFxuICAgICAgcHJvdGVjdGVkUmVzb3VyY2VJZCxcbiAgICAgIHsgb3duZXI6IG93bmVyUHJpbmNpcGFsSWQgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdE9yZ1VuaXRSZXNvdXJjZXMoXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQcm90ZWN0ZWRSZXNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocmVzb3VyY2UpID0+XG4gICAgICByZWxhdGlvbk1hdGNoKHJlc291cmNlLm9yZ1VuaXQsIG9yZ1VuaXRJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudFJlc291cmNlcyhcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UHJvdGVjdGVkUmVzb3VyY2VbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHJlc291cmNlKSA9PlxuICAgICAgc2FtZVRlbmFudChyZXNvdXJjZS50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc291cmNlR3JhbnRTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxSZXNvdXJjZUdyYW50PiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFJlc291cmNlR3JhbnQpO1xuICB9XG5cbiAgYXN5bmMgZ3JhbnRSZXNvdXJjZShcbiAgICBpbnB1dDogR3JhbnRSZXNvdXJjZUlucHV0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UmVzb3VyY2VHcmFudD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHRlbmFudDogaW5wdXQudGVuYW50SWQsXG4gICAgICAgIHJlc291cmNlOiBpbnB1dC5yZXNvdXJjZUlkLFxuICAgICAgICBwcmluY2lwYWw6IGlucHV0LnByaW5jaXBhbElkLFxuICAgICAgICBwZXJtaXNzaW9uS2V5OiBpbnB1dC5wZXJtaXNzaW9uS2V5LFxuICAgICAgICBzdGFydHNBdDogaW5wdXQuc3RhcnRzQXQsXG4gICAgICAgIGV4cGlyZXNBdDogaW5wdXQuZXhwaXJlc0F0LFxuICAgICAgICBjb25kaXRpb25zOiBpbnB1dC5jb25kaXRpb25zLFxuICAgICAgICBjcmVhdGVkQnk6IGlucHV0LmNyZWF0ZWRCeVByaW5jaXBhbElkLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2b2tlR3JhbnQoZ3JhbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChncmFudElkLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RSZXNvdXJjZUdyYW50cyhcbiAgICBwcm90ZWN0ZWRSZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSZXNvdXJjZUdyYW50W10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChncmFudCkgPT5cbiAgICAgIHJlbGF0aW9uTWF0Y2goZ3JhbnQucmVzb3VyY2UsIHByb3RlY3RlZFJlc291cmNlSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RQcmluY2lwYWxHcmFudHMoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UmVzb3VyY2VHcmFudFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChncmFudCkgPT5cbiAgICAgICAgc2FtZVRlbmFudChncmFudC50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICByZWxhdGlvbk1hdGNoKGdyYW50LnByaW5jaXBhbCwgcHJpbmNpcGFsSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGhhc0dyYW50KFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWRSZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbktleTogc3RyaW5nLFxuICAgIGF0PzogRGF0ZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5saXN0UHJpbmNpcGFsR3JhbnRzKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncylcbiAgICApLnNvbWUoXG4gICAgICAoZ3JhbnQpID0+XG4gICAgICAgIHJlbGF0aW9uTWF0Y2goZ3JhbnQucmVzb3VyY2UsIHByb3RlY3RlZFJlc291cmNlSWQpICYmXG4gICAgICAgIGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgKCFncmFudC5zdGFydHNBdCB8fCAhYXQgfHwgZ3JhbnQuc3RhcnRzQXQgPD0gYXQpICYmXG4gICAgICAgICghZ3JhbnQuZXhwaXJlc0F0IHx8ICFhdCB8fCBncmFudC5leHBpcmVzQXQgPj0gYXQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbEZvclJlc291cmNlKFxuICAgIHByb3RlY3RlZFJlc291cmNlSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBkZWxldGVNYW55QnlJZChcbiAgICAgIHRoaXMsXG4gICAgICBhd2FpdCB0aGlzLmxpc3RSZXNvdXJjZUdyYW50cyhwcm90ZWN0ZWRSZXNvdXJjZUlkLCAuLi5hcmdzKSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZUxpZmVjeWNsZVNlcnZpY2Uge1xuICBhc3luYyB1bnJlZ2lzdGVyUmVzb3VyY2UoXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5ldyBSZXNvdXJjZUdyYW50U2VydmljZSgpLmRlbGV0ZUFsbEZvclJlc291cmNlKFxuICAgICAgcHJvdGVjdGVkUmVzb3VyY2VJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGF3YWl0IG5ldyBQcm90ZWN0ZWRSZXNvdXJjZVNlcnZpY2UoKS5kZWxldGVCeUlkKFxuICAgICAgcHJvdGVjdGVkUmVzb3VyY2VJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVzb2x2ZVJlc291cmNlU2NvcGUoXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8e1xuICAgIHRlbmFudElkOiBzdHJpbmc7XG4gICAgb3JnVW5pdElkOiBzdHJpbmc7XG4gICAgdmlzaWJpbGl0eTogUmVzb3VyY2VWaXNpYmlsaXR5O1xuICAgIG93bmVyUHJpbmNpcGFsSWQ/OiBzdHJpbmc7XG4gIH0+IHtcbiAgICBjb25zdCByZXNvdXJjZSA9IGF3YWl0IG5ldyBQcm90ZWN0ZWRSZXNvdXJjZVNlcnZpY2UoKS5nZXRCeUlkKFxuICAgICAgcHJvdGVjdGVkUmVzb3VyY2VJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICB0ZW5hbnRJZDogcmVsYXRpb25JZChyZXNvdXJjZS50ZW5hbnQpLFxuICAgICAgb3JnVW5pdElkOiByZWxhdGlvbklkKHJlc291cmNlLm9yZ1VuaXQpLFxuICAgICAgdmlzaWJpbGl0eTogcmVzb3VyY2UudmlzaWJpbGl0eSxcbiAgICAgIG93bmVyUHJpbmNpcGFsSWQ6IHJlc291cmNlLm93bmVyID8gcmVsYXRpb25JZChyZXNvdXJjZS5vd25lcikgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3RvcmFnZUJpbmRpbmdTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxTdG9yYWdlQmluZGluZz4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihTdG9yYWdlQmluZGluZyk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVCaW5kaW5nKFxuICAgIGlucHV0OiBDcmVhdGVTdG9yYWdlQmluZGluZ0lucHV0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8U3RvcmFnZUJpbmRpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICB0ZW5hbnQ6IGlucHV0LnRlbmFudElkLFxuICAgICAgICBzdG9yYWdlS2luZDogaW5wdXQuc3RvcmFnZUtpbmQsXG4gICAgICAgIGJpbmRpbmdLaW5kOiBpbnB1dC5iaW5kaW5nS2luZCxcbiAgICAgICAgYmluZGluZ0tleTogaW5wdXQuYmluZGluZ0tleSxcbiAgICAgICAgcmVnaW9uOiBpbnB1dC5yZWdpb24sXG4gICAgICAgIGNvbmZpZzogaW5wdXQuY29uZmlnLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudEJpbmRpbmdzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxTdG9yYWdlQmluZGluZ1tdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigoYmluZGluZykgPT5cbiAgICAgIHNhbWVUZW5hbnQoYmluZGluZy50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRCaW5kaW5nKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgc3RvcmFnZUtpbmQ6IFN0b3JhZ2VLaW5kLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8U3RvcmFnZUJpbmRpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdFRlbmFudEJpbmRpbmdzKHRlbmFudElkLCAuLi5hcmdzKSkuZmluZChcbiAgICAgIChiaW5kaW5nKSA9PiBiaW5kaW5nLnN0b3JhZ2VLaW5kID09PSBzdG9yYWdlS2luZFxuICAgICk7XG4gIH1cblxuICBhc3luYyBzZXRCaW5kaW5nQ29uZmlnKFxuICAgIGJpbmRpbmdJZDogc3RyaW5nLFxuICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxTdG9yYWdlQmluZGluZz4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShiaW5kaW5nSWQsIHsgY29uZmlnIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcHJvbW90ZVRvRGVkaWNhdGVkKFxuICAgIGJpbmRpbmdJZDogc3RyaW5nLFxuICAgIGJpbmRpbmdLZXk6IHN0cmluZyxcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBjb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFN0b3JhZ2VCaW5kaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKFxuICAgICAgYmluZGluZ0lkLFxuICAgICAgeyBiaW5kaW5nS2luZDogU3RvcmFnZUJpbmRpbmdLaW5kLkRlZGljYXRlZCwgYmluZGluZ0tleSwgcmVnaW9uLCBjb25maWcgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2V0U2hhcmVkKFxuICAgIGJpbmRpbmdJZDogc3RyaW5nLFxuICAgIGJpbmRpbmdLZXk6IHN0cmluZyxcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBjb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFN0b3JhZ2VCaW5kaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKFxuICAgICAgYmluZGluZ0lkLFxuICAgICAgeyBiaW5kaW5nS2luZDogU3RvcmFnZUJpbmRpbmdLaW5kLlNoYXJlZCwgYmluZGluZ0tleSwgcmVnaW9uLCBjb25maWcgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlID0gbmV3IFRlbmFudFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSB0ZW5hbnRQcm9maWxlU2VydmljZSA9IG5ldyBUZW5hbnRQcm9maWxlU2VydmljZSgpO1xuICBwcml2YXRlIG9yZ1VuaXRTZXJ2aWNlID0gbmV3IE9yZ1VuaXRTZXJ2aWNlKCk7XG4gIHByaXZhdGUgb3JnVW5pdFByb2ZpbGVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRQcm9maWxlU2VydmljZSgpO1xuICBwcml2YXRlIHVzZXJTZXJ2aWNlID0gbmV3IFVzZXJTZXJ2aWNlKCk7XG4gIHByaXZhdGUgbWVtYmVyc2hpcFNlcnZpY2UgPSBuZXcgVGVuYW50TWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBwcmluY2lwYWxTZXJ2aWNlID0gbmV3IFByaW5jaXBhbFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBwZXJtaXNzaW9uU2VydmljZSA9IG5ldyBQZXJtaXNzaW9uU2VydmljZSgpO1xuICBwcml2YXRlIHJvbGVTZXJ2aWNlID0gbmV3IFJvbGVTZXJ2aWNlKCk7XG4gIHByaXZhdGUgcm9sZVBlcm1pc3Npb25TZXJ2aWNlID0gbmV3IFJvbGVQZXJtaXNzaW9uU2VydmljZSgpO1xuICBwcml2YXRlIHJvbGVBc3NpZ25tZW50U2VydmljZSA9IG5ldyBSb2xlQXNzaWdubWVudFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBlZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSA9IG5ldyBFZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSgpO1xuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgYm9vdHN0cmFwVGVuYW50RnJvbVRlbXBsYXRlKFxuICAgIHRlbXBsYXRlOiBCb290c3RyYXBUZW1wbGF0ZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHtcbiAgICB0ZW5hbnRJZDogc3RyaW5nO1xuICAgIHJvb3RPcmdVbml0SWQ6IHN0cmluZztcbiAgICBvd25lclVzZXJJZDogc3RyaW5nO1xuICAgIG93bmVyUHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgfT4ge1xuICAgIGNvbnN0IHRlbmFudCA9IGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5jcmVhdGVUZW5hbnQoXG4gICAgICB0ZW1wbGF0ZS50ZW5hbnQsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBpZiAodGVtcGxhdGUudGVuYW50LnByb2ZpbGVLZXkpIHtcbiAgICAgIGF3YWl0IHRoaXMudGVuYW50UHJvZmlsZVNlcnZpY2UuY3JlYXRlUHJvZmlsZShcbiAgICAgICAgdGVuYW50LmlkLFxuICAgICAgICB0ZW1wbGF0ZS50ZW5hbnQucHJvZmlsZUtleSxcbiAgICAgICAgdGVtcGxhdGUudGVuYW50LnByb2ZpbGVNZXRhZGF0YSxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjcmVhdGVPcmdUcmVlID0gYXN5bmMgKFxuICAgICAgcGFyZW50SWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgIG9yZ1VuaXQ6IEJvb3RzdHJhcE9yZ1VuaXRcbiAgICApOiBQcm9taXNlPE9yZ1VuaXQ+ID0+IHtcbiAgICAgIGNvbnN0IGNyZWF0ZWQgPVxuICAgICAgICBwYXJlbnRJZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBhd2FpdCB0aGlzLm9yZ1VuaXRTZXJ2aWNlLmNyZWF0ZVJvb3QoXG4gICAgICAgICAgICAgIHRlbmFudC5pZCxcbiAgICAgICAgICAgICAgb3JnVW5pdC5uYW1lLFxuICAgICAgICAgICAgICBvcmdVbml0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICBvcmdVbml0LnByb2ZpbGVLZXksXG4gICAgICAgICAgICAgIG9yZ1VuaXQubWV0YWRhdGEsXG4gICAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGF3YWl0IHRoaXMub3JnVW5pdFNlcnZpY2UuY3JlYXRlQ2hpbGQoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgICAgICAgICAgIHBhcmVudE9yZ1VuaXRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgbmFtZTogb3JnVW5pdC5uYW1lLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBvcmdVbml0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIHByb2ZpbGVLZXk6IG9yZ1VuaXQucHJvZmlsZUtleSxcbiAgICAgICAgICAgICAgICBwcm9maWxlTWV0YWRhdGE6IG9yZ1VuaXQubWV0YWRhdGEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG9yZ1VuaXQuY2hpbGRyZW4gPz8gW10pIHtcbiAgICAgICAgYXdhaXQgY3JlYXRlT3JnVHJlZShjcmVhdGVkLmlkLCBjaGlsZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICB9O1xuXG4gICAgY29uc3Qgcm9vdE9yZ1VuaXQgPSBhd2FpdCBjcmVhdGVPcmdUcmVlKHVuZGVmaW5lZCwgdGVtcGxhdGUucm9vdE9yZ1VuaXQpO1xuICAgIGNvbnN0IG93bmVyID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5jcmVhdGVVc2VyKFxuICAgICAgdGVtcGxhdGUub3duZXJVc2VyLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5tZW1iZXJzaGlwU2VydmljZS5hZGRVc2VyVG9UZW5hbnQoXG4gICAgICB0ZW5hbnQuaWQsXG4gICAgICBvd25lci5pZCxcbiAgICAgIE1lbWJlcnNoaXBTdGF0dXMuQWN0aXZlLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3Qgb3duZXJQcmluY2lwYWwgPSBhd2FpdCB0aGlzLnByaW5jaXBhbFNlcnZpY2UuZ2V0VXNlclByaW5jaXBhbChcbiAgICAgIHRlbmFudC5pZCxcbiAgICAgIG93bmVyLmlkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgdGVtcGxhdGUucGVybWlzc2lvbnMpIHtcbiAgICAgIGF3YWl0IHRoaXMucGVybWlzc2lvblNlcnZpY2UuY3JlYXRlUGVybWlzc2lvbihwZXJtaXNzaW9uLCAuLi5hcmdzKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHJvbGUgb2YgdGVtcGxhdGUucm9sZXMpIHtcbiAgICAgIGNvbnN0IGNyZWF0ZWRSb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5jcmVhdGVSb2xlKFxuICAgICAgICB7XG4gICAgICAgICAgdGVuYW50SWQ6IHRlbmFudC5pZCxcbiAgICAgICAgICBrZXk6IHJvbGUua2V5LFxuICAgICAgICAgIG5hbWU6IHJvbGUubmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogcm9sZS5kZXNjcmlwdGlvbixcbiAgICAgICAgfSxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgcGVybWlzc2lvbktleSBvZiByb2xlLnBlcm1pc3Npb25LZXlzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVBlcm1pc3Npb25TZXJ2aWNlLmFkZFBlcm1pc3Npb25LZXlUb1JvbGUoXG4gICAgICAgICAgY3JlYXRlZFJvbGUuaWQsXG4gICAgICAgICAgcGVybWlzc2lvbktleSxcbiAgICAgICAgICAuLi5hcmdzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3duZXJSb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5nZXRUZW5hbnRSb2xlQnlLZXkoXG4gICAgICB0ZW5hbnQuaWQsXG4gICAgICB0ZW1wbGF0ZS5vd25lclJvbGVLZXksXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVBc3NpZ25tZW50U2VydmljZS5hc3NpZ25Sb2xlKFxuICAgICAge1xuICAgICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgICBwcmluY2lwYWxJZDogb3duZXJQcmluY2lwYWwuaWQsXG4gICAgICAgIHJvbGVJZDogb3duZXJSb2xlLmlkLFxuICAgICAgICBzY29wZUtpbmQ6IFNjb3BlS2luZC5PcmdVbml0LFxuICAgICAgICBzY29wZUlkOiByb290T3JnVW5pdC5pZCxcbiAgICAgICAgaW5oZXJpdERvd246IHRydWUsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5yZWJ1aWxkRm9yUHJpbmNpcGFsKFxuICAgICAgdGVuYW50LmlkLFxuICAgICAgb3duZXJQcmluY2lwYWwuaWQsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgcm9vdE9yZ1VuaXRJZDogcm9vdE9yZ1VuaXQuaWQsXG4gICAgICBvd25lclVzZXJJZDogb3duZXIuaWQsXG4gICAgICBvd25lclByaW5jaXBhbElkOiBvd25lclByaW5jaXBhbC5pZCxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSB7XG4gIHByaXZhdGUgbWVtYmVyc2hpcFNlcnZpY2UgPSBuZXcgVGVuYW50TWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBvcmdNZW1iZXJzaGlwU2VydmljZSA9IG5ldyBPcmdVbml0TWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBwcmluY2lwYWxTZXJ2aWNlID0gbmV3IFByaW5jaXBhbFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSByb2xlU2VydmljZSA9IG5ldyBSb2xlU2VydmljZSgpO1xuICBwcml2YXRlIHJvbGVBc3NpZ25tZW50U2VydmljZSA9IG5ldyBSb2xlQXNzaWdubWVudFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBlZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSA9IG5ldyBFZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSgpO1xuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgb25ib2FyZFVzZXJUb1RlbmFudEFuZE9yZ1VuaXQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICByb2xlS2V5OiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx7IHByaW5jaXBhbElkOiBzdHJpbmcgfT4ge1xuICAgIGF3YWl0IHRoaXMubWVtYmVyc2hpcFNlcnZpY2UuYWRkVXNlclRvVGVuYW50KFxuICAgICAgdGVuYW50SWQsXG4gICAgICB1c2VySWQsXG4gICAgICBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMub3JnTWVtYmVyc2hpcFNlcnZpY2UuYWRkVXNlclRvT3JnVW5pdChcbiAgICAgIHRlbmFudElkLFxuICAgICAgb3JnVW5pdElkLFxuICAgICAgdXNlcklkLFxuICAgICAgTWVtYmVyc2hpcFN0YXR1cy5BY3RpdmUsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBjb25zdCBwcmluY2lwYWwgPSBhd2FpdCB0aGlzLnByaW5jaXBhbFNlcnZpY2UuZ2V0VXNlclByaW5jaXBhbChcbiAgICAgIHRlbmFudElkLFxuICAgICAgdXNlcklkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3Qgcm9sZSA9IGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuZ2V0VGVuYW50Um9sZUJ5S2V5KFxuICAgICAgdGVuYW50SWQsXG4gICAgICByb2xlS2V5LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UuYXNzaWduUm9sZShcbiAgICAgIHtcbiAgICAgICAgdGVuYW50SWQsXG4gICAgICAgIHByaW5jaXBhbElkOiBwcmluY2lwYWwuaWQsXG4gICAgICAgIHJvbGVJZDogcm9sZS5pZCxcbiAgICAgICAgc2NvcGVLaW5kOiBTY29wZUtpbmQuT3JnVW5pdCxcbiAgICAgICAgc2NvcGVJZDogb3JnVW5pdElkLFxuICAgICAgICBpbmhlcml0RG93bjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlLnJlYnVpbGRGb3JQcmluY2lwYWwoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbC5pZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIHJldHVybiB7IHByaW5jaXBhbElkOiBwcmluY2lwYWwuaWQgfTtcbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgY2hhbmdlVXNlck9yZ1JvbGUoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIHJvbGVLZXk6IHN0cmluZyxcbiAgICBpbmhlcml0RG93bjogYm9vbGVhbixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5nZXRUZW5hbnRSb2xlQnlLZXkoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHJvbGVLZXksXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50QXNzaWdubWVudHMgPVxuICAgICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKFxuICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICk7XG4gICAgZm9yIChjb25zdCBhc3NpZ25tZW50IG9mIGN1cnJlbnRBc3NpZ25tZW50cy5maWx0ZXIoXG4gICAgICAocm93KSA9PiByb3cuc2NvcGVLaW5kID09PSBTY29wZUtpbmQuT3JnVW5pdCAmJiByb3cuc2NvcGVJZCA9PT0gb3JnVW5pdElkXG4gICAgKSkge1xuICAgICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UucmV2b2tlQXNzaWdubWVudChhc3NpZ25tZW50LmlkLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UuYXNzaWduUm9sZShcbiAgICAgIHtcbiAgICAgICAgdGVuYW50SWQsXG4gICAgICAgIHByaW5jaXBhbElkLFxuICAgICAgICByb2xlSWQ6IHJvbGUuaWQsXG4gICAgICAgIHNjb3BlS2luZDogU2NvcGVLaW5kLk9yZ1VuaXQsXG4gICAgICAgIHNjb3BlSWQ6IG9yZ1VuaXRJZCxcbiAgICAgICAgaW5oZXJpdERvd24sXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5yZWJ1aWxkRm9yUHJpbmNpcGFsKFxuICAgICAgdGVuYW50SWQsXG4gICAgICBwcmluY2lwYWxJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyBzdXNwZW5kVXNlckluVGVuYW50KFxuICAgIHRlbmFudE1lbWJlcnNoaXBJZDogc3RyaW5nLFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLm1lbWJlcnNoaXBTZXJ2aWNlLnNldFN0YXR1cyhcbiAgICAgIHRlbmFudE1lbWJlcnNoaXBJZCxcbiAgICAgIE1lbWJlcnNoaXBTdGF0dXMuU3VzcGVuZGVkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5kZWxldGVGb3JQcmluY2lwYWwoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIHJlYWN0aXZhdGVVc2VySW5UZW5hbnQoXG4gICAgdGVuYW50TWVtYmVyc2hpcElkOiBzdHJpbmcsXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubWVtYmVyc2hpcFNlcnZpY2Uuc2V0U3RhdHVzKFxuICAgICAgdGVuYW50TWVtYmVyc2hpcElkLFxuICAgICAgTWVtYmVyc2hpcFN0YXR1cy5BY3RpdmUsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlLnJlYnVpbGRGb3JQcmluY2lwYWwoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
1023
+ //# sourceMappingURL=org-based-authorization-system.services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-based-authorization-system.services.js","sourceRoot":"","sources":["../../../src/namespaces/org-based-authorization-system.services.ts"],"names":[],"mappings":"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"}
@@ -94,4 +94,4 @@ export class AuthzService {
94
94
  });
95
95
  }
96
96
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aHouc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL3NlcnZpY2VzL2F1dGh6LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUdMLGtCQUFrQixFQUNsQixTQUFTLEdBQ1Ysc0JBQWlCO0FBQ2xCLE9BQU8sRUFDTCxPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsV0FBVyxHQUNaLHNCQUFpQjtBQUVsQixTQUFTLFFBQVEsQ0FBQyxTQUFvQixFQUFFLE9BQWU7SUFDckQsT0FBTyxHQUFHLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFBWSxjQUFnQyxFQUFFO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFxQixFQUFFLEdBQUcsSUFBVztRQUNuRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7UUFFbEMsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQyxNQUFNLFdBQVcsR0FDZixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLEVBQUUsQ0FDdkQsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsU0FBUyxFQUNmLEtBQUssQ0FBQyxPQUFPLENBQ2QsQ0FBQztZQUNKLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDOUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNiLFVBQVUsQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFD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QUM1RCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxjQUFjO2FBQzdDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUM7YUFDeEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsT0FBTyxrQkFBa0IsQ0FBQztZQUN4QixRQUFRO1lBQ1IsV0FBVztZQUNYLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsa0JBQWtCO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQ3JCLFFBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLGFBQXFCLEVBQ3JCLEdBQUcsSUFBVztRQUVkLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUMxQyxRQUFRLEVBQ1IsV0FBVyxFQUNYLEdBQUcsSUFBSSxDQUNSLENBQUM7UUFDRixNQUFNLGlCQUFpQixHQUNyQixNQUFNLENBQUMsNkJBQTZCLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGNBQWM7YUFDN0MsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQzthQUN4RCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwQyxPQUFPLGlCQUFpQixDQUFDO1lBQ3ZCLFFBQVE7WUFDUixXQUFXO1lBQ1gsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixrQkFBa0I7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBBdXRoekRhdGFTb3VyY2VzLFxuICBDYW5BY2Nlc3NJbnB1dCxcbiAgUmVzb3VyY2VWaXNpYmlsaXR5LFxuICBTY29wZUtpbmQsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgYXNBcnJheSxcbiAgYnVpbGRBY2Nlc3NDb250ZXh0LFxuICBidWlsZEFyYW5nb0NvbnRleHQsXG4gIGJ1aWxkUWRyYW50RmlsdGVyLFxuICBpc1RpbWVWYWxpZCxcbn0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmZ1bmN0aW9uIHNjb3BlS2V5KHNjb3BlS2luZDogU2NvcGVLaW5kLCBzY29wZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2NvcGVLaW5kfToke3Njb3BlSWR9YDtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dGh6U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZXM6IEF1dGh6RGF0YVNvdXJjZXM7XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZXM6IEF1dGh6RGF0YVNvdXJjZXMgPSB7fSkge1xuICAgIHRoaXMuZGF0YVNvdXJjZXMgPSBkYXRhU291cmNlcztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgYXN5bmMgY2FuQWNjZXNzKGlucHV0OiBDYW5BY2Nlc3NJbnB1dCwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBhdCA9IGlucHV0LmF0ID8/IG5ldyBEYXRlKCk7XG5cbiAgICBpZiAoaW5wdXQuc2NvcGVLaW5kICYmIGlucHV0LnNjb3BlSWQpIHtcbiAgICAgIGNvbnN0IHBlcm1pc3Npb25zID1cbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnNGb3JTY29wZT8uKFxuICAgICAgICAgIGlucHV0LnRlbmFudElkLFxuICAgICAgICAgIGlucHV0LnNjb3BlS2luZCxcbiAgICAgICAgICBpbnB1dC5zY29wZUlkXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gYXNBcnJheShwZXJtaXNzaW9ucykuc29tZShcbiAgICAgICAgKHBlcm1pc3Npb24pID0+XG4gICAgICAgICAgcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWlucHV0LnJlc291cmNlUHJvdGVjdGVkSWQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gYXdhaXQgdGhpcy5kYXRhU291cmNlcy5sb2FkUmVzb3VyY2U/LihcbiAgICAgIGlucHV0LnRlbmFudElkLFxuICAgICAgaW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZFxuICAgICk7XG4gICAgaWYgKCFyZXNvdXJjZSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChyZXNvdXJjZS50ZW5hbnRJZCAhPT0gaW5wdXQudGVuYW50SWQpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChyZXNvdXJjZS5vd25lclByaW5jaXBhbElkID09PSBpbnB1dC5wcmluY2lwYWxJZCkgcmV0dXJuIHRydWU7XG5cbiAgICBjb25zdCBncmFudHMgPSBhc0FycmF5KFxuICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0UmVzb3VyY2VHcmFudHM/LihcbiAgICAgICAgaW5wdXQudGVuYW50SWQsXG4gICAgICAgIGlucHV0LnJlc291cmNlUHJvdGVjdGVkSWRcbiAgICAgIClcbiAgICApLmZpbHRlcihcbiAgICAgIChncmFudCkgPT5cbiAgICAgICAgZ3JhbnQucHJpbmNpcGFsSWQgPT09IGlucHV0LnByaW5jaXBhbElkICYmXG4gICAgICAgIGdyYW50LnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgaXNUaW1lVmFsaWQoYXQsIGdyYW50LnN0YXJ0c0F0LCBncmFudC5leHBpcmVzQXQpXG4gICAgKTtcbiAgICBpZiAoZ3JhbnRzLmxlbmd0aCA+IDApIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgdmlzaWJpbGl0eSA9IHJlc291cmNlLnZpc2liaWxpdHk7XG4gICAgaWYgKFxuICAgICAgdmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlByaXZhdGUgfHxcbiAgICAgIHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5SZXNvdXJjZUFjbFxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5PcmdVbml0IHx8XG4gICAgICB2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuT3JnU3VidHJlZVxuICAgICkge1xuICAgICAgY29uc3QgZWZmZWN0aXZlUGVybWlzc2lvbnMgPSBhc0FycmF5KFxuICAgICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc0ZvclNjb3BlPy4oXG4gICAgICAgICAgaW5wdXQudGVuYW50SWQsXG4gICAgICAgICAgU2NvcGVLaW5kLk9yZ1VuaXQsXG4gICAgICAgICAgcmVzb3VyY2Uub3JnVW5pdElkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICByZXR1cm4gZWZmZWN0aXZlUGVybWlzc2lvbnMuc29tZShcbiAgICAgICAgKHBlcm1pc3Npb24pID0+XG4gICAgICAgICAgcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlRlbmFudCkge1xuICAgICAgY29uc3QgZWZmZWN0aXZlUGVybWlzc2lvbnMgPSBhc0FycmF5KFxuICAgICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc0ZvclNjb3BlPy4oXG4gICAgICAgICAgaW5wdXQudGVuYW50SWQsXG4gICAgICAgICAgU2NvcGVLaW5kLlRlbmFudCxcbiAgICAgICAgICBpbnB1dC50ZW5hbnRJZFxuICAgICAgICApXG4gICAgICApO1xuICAgICAgcmV0dXJuIGVmZmVjdGl2ZVBlcm1pc3Npb25zLnNvbWUoXG4gICAgICAgIChwZXJtaXNzaW9uKSA9PlxuICAgICAgICAgIHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJlxuICAgICAgICAgIGlzVGltZVZhbGlkKGF0LCBwZXJtaXNzaW9uLnN0YXJ0c0F0LCBwZXJtaXNzaW9uLmV4cGlyZXNBdClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgcmVxdWlyZUFjY2VzcyhpbnB1dDogQ2FuQWNjZXNzSW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCEoYXdhaXQgdGhpcy5jYW5BY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpKSkge1xuICAgICAgdGhyb3cgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcbiAgICAgICAgYEFjY2VzcyBkZW5pZWQgZm9yICR7aW5wdXQucGVybWlzc2lvbktleX0gb24gJHtpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkID8/IHNjb3BlS2V5KGlucHV0LnNjb3BlS2luZCA/PyBTY29wZUtpbmQuUmVzb3VyY2UsIGlucHV0LnNjb3BlSWQgPz8gXCJcIil9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBidWlsZEFjY2Vzc0NvbnRleHQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPGltcG9ydChcIi4uL3R5cGVzXCIpLkFjY2Vzc0NvbnRleHQ+IHtcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGFzQXJyYXkoXG4gICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9ucz8uKHRlbmFudElkLCBwcmluY2lwYWxJZClcbiAgICApO1xuICAgIGNvbnN0IGdyYW50cyA9IGFzQXJyYXkoXG4gICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RQcmluY2lwYWxHcmFudHM/Lih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQpXG4gICAgKTtcbiAgICByZXR1cm4gYnVpbGRBY2Nlc3NDb250ZXh0KHtcbiAgICAgIHRlbmFudElkLFxuICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICBwZXJtaXNzaW9ucyxcbiAgICAgIGdyYW50cyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkQXJhbmdvQ29udGV4dChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbktleTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICkge1xuICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IHRoaXMuYnVpbGRBY2Nlc3NDb250ZXh0KFxuICAgICAgdGVuYW50SWQsXG4gICAgICBwcmluY2lwYWxJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGFsbG93ZWRPcmdVbml0SWRzID1cbiAgICAgIGFjY2Vzcy5hbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICBjb25zdCBhbGxvd2VkUmVzb3VyY2VJZHMgPSBhY2Nlc3MucmVzb3VyY2VHcmFudHNcbiAgICAgIC5maWx0ZXIoKGdyYW50KSA9PiBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5KVxuICAgICAgLm1hcCgoZ3JhbnQpID0+IGdyYW50LnJlc291cmNlSWQpO1xuICAgIHJldHVybiBidWlsZEFyYW5nb0NvbnRleHQoe1xuICAgICAgdGVuYW50SWQsXG4gICAgICBwcmluY2lwYWxJZCxcbiAgICAgIHBlcm1pc3Npb25LZXksXG4gICAgICBhbGxvd2VkT3JnVW5pdElkcyxcbiAgICAgIGFsbG93ZWRSZXNvdXJjZUlkcyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkUWRyYW50RmlsdGVyKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICBwZXJtaXNzaW9uS2V5OiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKSB7XG4gICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3QgYWxsb3dlZE9yZ1VuaXRJZHMgPVxuICAgICAgYWNjZXNzLmFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uW3Blcm1pc3Npb25LZXldID8/IFtdO1xuICAgIGNvbnN0IGFsbG93ZWRSZXNvdXJjZUlkcyA9IGFjY2Vzcy5yZXNvdXJjZUdyYW50c1xuICAgICAgLmZpbHRlcigoZ3JhbnQpID0+IGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkpXG4gICAgICAubWFwKChncmFudCkgPT4gZ3JhbnQucmVzb3VyY2VJZCk7XG4gICAgcmV0dXJuIGJ1aWxkUWRyYW50RmlsdGVyKHtcbiAgICAgIHRlbmFudElkLFxuICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICBwZXJtaXNzaW9uS2V5LFxuICAgICAgYWxsb3dlZE9yZ1VuaXRJZHMsXG4gICAgICBhbGxvd2VkUmVzb3VyY2VJZHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
97
+ //# sourceMappingURL=authz.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authz.service.js","sourceRoot":"","sources":["../../../../src/namespaces/services/authz.service.ts"],"names":[],"mappings":"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"}
@@ -99,4 +99,4 @@ __decorate([
99
99
  __metadata("design:paramtypes", [Object, Object]),
100
100
  __metadata("design:returntype", Promise)
101
101
  ], BootstrapService.prototype, "bootstrapTenantFromTemplate", null);
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmFtZXNwYWNlcy9zZXJ2aWNlcy9ib290c3RyYXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLHNCQUFpQjtBQUV6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLHNCQUFpQjtBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLDRCQUF5QjtBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsb0NBQWlDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsOEJBQTJCO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQ0FBbUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSwwQkFBdUI7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHVDQUFvQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsK0JBQTRCO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQ0FBNkI7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSwwQkFBdUI7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFDQUFrQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUscUNBQWtDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSwwQ0FBdUM7QUFFNUUsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNVLGtCQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNwQyx5QkFBb0IsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDbEQsbUJBQWMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLDBCQUFxQixHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsc0JBQWlCLEdBQUcsSUFBSSx1QkFBdUIs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TUFBTSxDQUFDLEVBQUUsRUFDVCxjQUFjLENBQUMsRUFBRSxFQUNqQixHQUFHLElBQUksQ0FDUixDQUFDO1FBRUYsT0FBTztZQUNMLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNuQixhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDN0IsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxFQUFFO1NBQ3BDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF6SE87SUFETCxhQUFhLEVBQUU7Ozs7bUVBeUhmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNhY3Rpb25hbCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBCb290c3RyYXBPcmdVbml0LCBCb290c3RyYXBUZW1wbGF0ZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgTWVtYmVyc2hpcFN0YXR1cywgU2NvcGVLaW5kIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBUZW5hbnRTZXJ2aWNlIH0gZnJvbSBcIi4vdGVuYW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IFRlbmFudFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSBcIi4vdGVuYW50LXByb2ZpbGUuc2VydmljZVwiO1xuaW1wb3J0IHsgT3JnVW5pdFNlcnZpY2UgfSBmcm9tIFwiLi9vcmctdW5pdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPcmdVbml0UHJvZmlsZVNlcnZpY2UgfSBmcm9tIFwiLi9vcmctdW5pdC1wcm9maWxlLnNlcnZpY2VcIjtcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vdXNlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUZW5hbnRNZW1iZXJzaGlwU2VydmljZSB9IGZyb20gXCIuL3RlbmFudC1tZW1iZXJzaGlwLnNlcnZpY2VcIjtcbmltcG9ydCB7IFByaW5jaXBhbFNlcnZpY2UgfSBmcm9tIFwiLi9wcmluY2lwYWwuc2VydmljZVwiO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi9wZXJtaXNzaW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IFJvbGVTZXJ2aWNlIH0gZnJvbSBcIi4vcm9sZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBSb2xlUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi9yb2xlLXBlcm1pc3Npb24uc2VydmljZVwiO1xuaW1wb3J0IHsgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4vcm9sZS1hc3NpZ25tZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vZWZmZWN0aXZlLXBlcm1pc3Npb24uc2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwU2VydmljZSB7XG4gIHByaXZhdGUgdGVuYW50U2VydmljZSA9IG5ldyBUZW5hbnRTZXJ2aWNlKCk7XG4gIHByaXZhdGUgdGVuYW50UHJvZmlsZVNlcnZpY2UgPSBuZXcgVGVuYW50UHJvZmlsZVNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBvcmdVbml0U2VydmljZSA9IG5ldyBPcmdVbml0U2VydmljZSgpO1xuICBwcml2YXRlIG9yZ1VuaXRQcm9maWxlU2VydmljZSA9IG5ldyBPcmdVbml0UHJvZmlsZVNlcnZpY2UoKTtcbiAgcHJpdmF0ZSB1c2VyU2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgpO1xuICBwcml2YXRlIG1lbWJlcnNoaXBTZXJ2aWNlID0gbmV3IFRlbmFudE1lbWJlcnNoaXBTZXJ2aWNlKCk7XG4gIHByaXZhdGUgcHJpbmNpcGFsU2VydmljZSA9IG5ldyBQcmluY2lwYWxTZXJ2aWNlKCk7XG4gIHByaXZhdGUgcGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgcHJpdmF0ZSByb2xlU2VydmljZSA9IG5ldyBSb2xlU2VydmljZSgpO1xuICBwcml2YXRlIHJvbGVQZXJtaXNzaW9uU2VydmljZSA9IG5ldyBSb2xlUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgcHJpdmF0ZSByb2xlQXNzaWdubWVudFNlcnZpY2UgPSBuZXcgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlKCk7XG4gIHByaXZhdGUgZWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UgPSBuZXcgRWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UoKTtcblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIGJvb3RzdHJhcFRlbmFudEZyb21UZW1wbGF0ZShcbiAgICB0ZW1wbGF0ZTogQm9vdHN0cmFwVGVtcGxhdGUsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx7XG4gICAgdGVuYW50SWQ6IHN0cmluZztcbiAgICByb290T3JnVW5pdElkOiBzdHJpbmc7XG4gICAgb3duZXJVc2VySWQ6IHN0cmluZztcbiAgICBvd25lclByaW5jaXBhbElkOiBzdHJpbmc7XG4gIH0+IHtcbiAgICBjb25zdCB0ZW5hbnQgPSBhd2FpdCB0aGlzLnRlbmFudFNlcnZpY2UuY3JlYXRlVGVuYW50KFxuICAgICAgdGVtcGxhdGUudGVuYW50LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgaWYgKHRlbXBsYXRlLnRlbmFudC5wcm9maWxlS2V5KSB7XG4gICAgICBhd2FpdCB0aGlzLnRlbmFudFByb2ZpbGVTZXJ2aWNlLmNyZWF0ZVByb2ZpbGUoXG4gICAgICAgIHRlbmFudC5pZCxcbiAgICAgICAgdGVtcGxhdGUudGVuYW50LnByb2ZpbGVLZXksXG4gICAgICAgIHRlbXBsYXRlLnRlbmFudC5wcm9maWxlTWV0YWRhdGEsXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgY3JlYXRlT3JnVHJlZSA9IGFzeW5jIChcbiAgICAgIHBhcmVudElkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICBvcmdVbml0OiBCb290c3RyYXBPcmdVbml0XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBjcmVhdGVkID1cbiAgICAgICAgcGFyZW50SWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gYXdhaXQgdGhpcy5vcmdVbml0U2VydmljZS5jcmVhdGVSb290KFxuICAgICAgICAgICAgICB0ZW5hbnQuaWQsXG4gICAgICAgICAgICAgIG9yZ1VuaXQubmFtZSxcbiAgICAgICAgICAgICAgb3JnVW5pdC5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgb3JnVW5pdC5wcm9maWxlS2V5LFxuICAgICAgICAgICAgICBvcmdVbml0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICAuLi5hcmdzXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBhd2FpdCB0aGlzLm9yZ1VuaXRTZXJ2aWNlLmNyZWF0ZUNoaWxkKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGVuYW50SWQ6IHRlbmFudC5pZCxcbiAgICAgICAgICAgICAgICBwYXJlbnRPcmdVbml0SWQ6IHBhcmVudElkLFxuICAgICAgICAgICAgICAgIG5hbWU6IG9yZ1VuaXQubmFtZSxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YTogb3JnVW5pdC5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBwcm9maWxlS2V5OiBvcmdVbml0LnByb2ZpbGVLZXksXG4gICAgICAgICAgICAgICAgcHJvZmlsZU1ldGFkYXRhOiBvcmdVbml0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAuLi5hcmdzXG4gICAgICAgICAgICApO1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBvcmdVbml0LmNoaWxkcmVuID8/IFtdKSB7XG4gICAgICAgIGF3YWl0IGNyZWF0ZU9yZ1RyZWUoY3JlYXRlZC5pZCwgY2hpbGQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHJvb3RPcmdVbml0ID0gYXdhaXQgY3JlYXRlT3JnVHJlZSh1bmRlZmluZWQsIHRlbXBsYXRlLnJvb3RPcmdVbml0KTtcbiAgICBjb25zdCBvd25lciA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UuY3JlYXRlVXNlcihcbiAgICAgIHRlbXBsYXRlLm93bmVyVXNlcixcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMubWVtYmVyc2hpcFNlcnZpY2UuYWRkVXNlclRvVGVuYW50KFxuICAgICAgdGVuYW50LmlkLFxuICAgICAgb3duZXIuaWQsXG4gICAgICBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IG93bmVyUHJpbmNpcGFsID0gYXdhaXQgdGhpcy5wcmluY2lwYWxTZXJ2aWNlLmdldFVzZXJQcmluY2lwYWwoXG4gICAgICB0ZW5hbnQuaWQsXG4gICAgICBvd25lci5pZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIHRlbXBsYXRlLnBlcm1pc3Npb25zKSB7XG4gICAgICBhd2FpdCB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmNyZWF0ZVBlcm1pc3Npb24ocGVybWlzc2lvbiwgLi4uYXJncyk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgcm9sZSBvZiB0ZW1wbGF0ZS5yb2xlcykge1xuICAgICAgY29uc3QgY3JlYXRlZFJvbGUgPSBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJvbGUoXG4gICAgICAgIHtcbiAgICAgICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgICAgIGtleTogcm9sZS5rZXksXG4gICAgICAgICAgbmFtZTogcm9sZS5uYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uLFxuICAgICAgICB9LFxuICAgICAgICAuLi5hcmdzXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBwZXJtaXNzaW9uS2V5IG9mIHJvbGUucGVybWlzc2lvbktleXMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlUGVybWlzc2lvblNlcnZpY2UuYWRkUGVybWlzc2lvbktleVRvUm9sZShcbiAgICAgICAgICBjcmVhdGVkUm9sZS5pZCxcbiAgICAgICAgICBwZXJtaXNzaW9uS2V5LFxuICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvd25lclJvbGUgPSBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmdldFRlbmFudFJvbGVCeUtleShcbiAgICAgIHRlbmFudC5pZCxcbiAgICAgIHRlbXBsYXRlLm93bmVyUm9sZUtleSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMucm9sZUFzc2lnbm1lbnRTZXJ2aWNlLmFzc2lnblJvbGUoXG4gICAgICB7XG4gICAgICAgIHRlbmFudElkOiB0ZW5hbnQuaWQsXG4gICAgICAgIHByaW5jaXBhbElkOiBvd25lclByaW5jaXBhbC5pZCxcbiAgICAgICAgcm9sZUlkOiBvd25lclJvbGUuaWQsXG4gICAgICAgIHNjb3BlS2luZDogU2NvcGVLaW5kLk9yZ1VuaXQsXG4gICAgICAgIHNjb3BlSWQ6IHJvb3RPcmdVbml0LmlkLFxuICAgICAgICBpbmhlcml0RG93bjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlLnJlYnVpbGRGb3JQcmluY2lwYWwoXG4gICAgICB0ZW5hbnQuaWQsXG4gICAgICBvd25lclByaW5jaXBhbC5pZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRlbmFudElkOiB0ZW5hbnQuaWQsXG4gICAgICByb290T3JnVW5pdElkOiByb290T3JnVW5pdC5pZCxcbiAgICAgIG93bmVyVXNlcklkOiBvd25lci5pZCxcbiAgICAgIG93bmVyUHJpbmNpcGFsSWQ6IG93bmVyUHJpbmNpcGFsLmlkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=bootstrap.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.service.js","sourceRoot":"","sources":["../../../../src/namespaces/services/bootstrap.service.ts"],"names":[],"mappings":"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"}
@@ -137,4 +137,4 @@ __decorate([
137
137
  __metadata("design:paramtypes", [String, Object]),
138
138
  __metadata("design:returntype", Promise)
139
139
  ], EffectivePermissionService.prototype, "rebuildForTenant", null);
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0aXZlLXBlcm1pc3Npb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL3NlcnZpY2VzL2VmZmVjdGl2ZS1wZXJtaXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxzQkFBaUI7QUFDbEcsT0FBTyxFQUErQixTQUFTLEVBQUUsc0JBQWlCO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrREFBNkM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFDQUFrQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUscUNBQWtDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQ0FBNkI7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHNDQUFtQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsK0JBQTRCO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQ0FBbUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHVDQUFvQztBQUV0RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZ0JBQXFDO0lBQ25GO1FBQ0UsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLFdBQW1CLEVBQUUsR0FBRyxJQUFXO1FBQzFFLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDekMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FB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QUFVLENBQUMsV0FBVztZQUNqQyxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWE7WUFDdkMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQy9CLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztZQUMzQixVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVU7WUFDakMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQzdCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtZQUM3QixTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7U0FDaEMsRUFDRCxHQUFHLElBQUksQ0FDUixDQUNGLENBQ0YsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFHSyxBQUFOLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLEdBQUcsSUFBVztRQUNyRCxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pJLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsRSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBMUdPO0lBREwsYUFBYSxFQUFFOzs7O3FFQWtHZjtBQUdLO0lBREwsYUFBYSxFQUFFOzs7O2tFQU1mIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsU2VydmljZSwgcmVsYXRpb25JZCwgcmVsYXRpb25NYXRjaCwgc2FtZVRlbmFudCwgdHJhbnNhY3Rpb25hbCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgRWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90LCBTY29wZUtpbmQgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IEVmZmVjdGl2ZVBlcm1pc3Npb24gfSBmcm9tIFwiLi4vbW9kZWxzL2VmZmVjdGl2ZS1wZXJtaXNzaW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBSb2xlQXNzaWdubWVudFNlcnZpY2UgfSBmcm9tIFwiLi9yb2xlLWFzc2lnbm1lbnQuc2VydmljZVwiO1xuaW1wb3J0IHsgUm9sZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vcm9sZS1wZXJtaXNzaW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vcGVybWlzc2lvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBHcm91cE1lbWJlcnNoaXBTZXJ2aWNlIH0gZnJvbSBcIi4vZ3JvdXAtbWVtYmVyc2hpcC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBQcmluY2lwYWxTZXJ2aWNlIH0gZnJvbSBcIi4vcHJpbmNpcGFsLnNlcnZpY2VcIjtcbmltcG9ydCB7IE9yZ1VuaXRDbG9zdXJlU2VydmljZSB9IGZyb20gXCIuL29yZy11bml0LWNsb3N1cmUuc2VydmljZVwiO1xuaW1wb3J0IHsgSW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UgfSBmcm9tIFwiLi9pbmhlcml0YW5jZS1ibG9jay5zZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBFZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8RWZmZWN0aXZlUGVybWlzc2lvbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihFZmZlY3RpdmVQZXJtaXNzaW9uKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RGb3JQcmluY2lwYWwodGVuYW50SWQ6IHN0cmluZywgcHJpbmNpcGFsSWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPEVmZmVjdGl2ZVBlcm1pc3Npb25bXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoXG4gICAgICAocGVybWlzc2lvbikgPT4gc2FtZVRlbmFudChwZXJtaXNzaW9uLnRlbmFudCwgdGVuYW50SWQpICYmIHJlbGF0aW9uTWF0Y2gocGVybWlzc2lvbi5wcmluY2lwYWwsIHByaW5jaXBhbElkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBsaXN0Rm9yU2NvcGUoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBzY29wZUtpbmQ6IFNjb3BlS2luZCxcbiAgICBzY29wZUlkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxFZmZlY3RpdmVQZXJtaXNzaW9uW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKFxuICAgICAgKHBlcm1pc3Npb24pID0+IHNhbWVUZW5hbnQocGVybWlzc2lvbi50ZW5hbnQsIHRlbmFudElkKSAmJiBwZXJtaXNzaW9uLnNjb3BlS2luZCA9PT0gc2NvcGVLaW5kICYmIHBlcm1pc3Npb24uc2NvcGVJZCA9PT0gc2NvcGVJZFxuICAgICk7XG4gIH1cblxuICBhc3luYyBoYXNQZXJtaXNzaW9uKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICBwZXJtaXNzaW9uS2V5OiBzdHJpbmcsXG4gICAgc2NvcGVLaW5kOiBTY29wZUtpbmQsXG4gICAgc2NvcGVJZDogc3RyaW5nLFxuICAgIGF0PzogRGF0ZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEZvclByaW5jaXBhbCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpKS5zb21lKFxuICAgICAgKHBlcm1pc3Npb24pID0+XG4gICAgICAgIHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gcGVybWlzc2lvbktleSAmJlxuICAgICAgICBwZXJtaXNzaW9uLnNjb3BlS2luZCA9PT0gc2NvcGVLaW5kICYmXG4gICAgICAgIHBlcm1pc3Npb24uc2NvcGVJZCA9PT0gc2NvcGVJZCAmJlxuICAgICAgICAoIXBlcm1pc3Npb24uc3RhcnRzQXQgfHwgIWF0IHx8IHBlcm1pc3Npb24uc3RhcnRzQXQgPD0gYXQpICYmXG4gICAgICAgICghcGVybWlzc2lvbi5leHBpcmVzQXQgfHwgIWF0IHx8IHBlcm1pc3Npb24uZXhwaXJlc0F0ID49IGF0KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGVGb3JQcmluY2lwYWwodGVuYW50SWQ6IHN0cmluZywgcHJpbmNpcGFsSWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBmb3IgKGNvbnN0IHJvdyBvZiBhd2FpdCB0aGlzLmxpc3RGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKSkge1xuICAgICAgYXdhaXQgdGhpcy5kZWxldGVCeUlkKHJvdy5pZCwgLi4uYXJncyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVsZXRlRm9yVGVuYW50KHRlbmFudElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZm9yIChjb25zdCByb3cgb2YgKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiBzYW1lVGVuYW50KHBlcm1pc3Npb24udGVuYW50LCB0ZW5hbnRJZCkpKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQocm93LmlkLCAuLi5hcmdzKTtcbiAgICB9XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIHJlYnVpbGRGb3JQcmluY2lwYWwodGVuYW50SWQ6IHN0cmluZywgcHJpbmNpcGFsSWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPEVmZmVjdGl2ZVBlcm1pc3Npb25bXT4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG5cbiAgICBjb25zdCByb2xlQXNzaWdubWVudFNlcnZpY2UgPSBuZXcgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlKCk7XG4gICAgY29uc3Qgcm9sZVBlcm1pc3Npb25TZXJ2aWNlID0gbmV3IFJvbGVQZXJtaXNzaW9uU2VydmljZSgpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25TZXJ2aWNlID0gbmV3IFBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgY29uc3QgZ3JvdXBNZW1iZXJzaGlwU2VydmljZSA9IG5ldyBHcm91cE1lbWJlcnNoaXBTZXJ2aWNlKCk7XG4gICAgY29uc3QgcHJpbmNpcGFsU2VydmljZSA9IG5ldyBQcmluY2lwYWxTZXJ2aWNlKCk7XG4gICAgY29uc3Qgb3JnVW5pdENsb3N1cmVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRDbG9zdXJlU2VydmljZSgpO1xuICAgIGNvbnN0IGluaGVyaXRhbmNlQmxvY2tTZXJ2aWNlID0gbmV3IEluaGVyaXRhbmNlQmxvY2tTZXJ2aWNlKCk7XG5cbiAgICBjb25zdCBtYXRlcmlhbGl6ZWQ6IEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdFtdID0gW107XG4gICAgY29uc3Qgc291cmNlQXNzaWdubWVudHMgPSBhd2FpdCByb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgY29uc3QgZ3JvdXBNZW1iZXJzaGlwcyA9IGF3YWl0IGdyb3VwTWVtYmVyc2hpcFNlcnZpY2UubGlzdFByaW5jaXBhbEdyb3VwcyhwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgY29uc3QgZ3JvdXBBc3NpZ25tZW50cyA9IChcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBncm91cE1lbWJlcnNoaXBzLm1hcChhc3luYyAobWVtYmVyc2hpcCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGdyb3VwUHJpbmNpcGFsID0gYXdhaXQgcHJpbmNpcGFsU2VydmljZS5nZXRHcm91cFByaW5jaXBhbChyZWxhdGlvbklkKG1lbWJlcnNoaXAudGVuYW50KSwgcmVsYXRpb25JZChtZW1iZXJzaGlwLmdyb3VwKSwgLi4uYXJncyk7XG4gICAgICAgICAgcmV0dXJuIHJvbGVBc3NpZ25tZW50U2VydmljZS5saXN0UHJpbmNpcGFsQXNzaWdubWVudHModGVuYW50SWQsIGdyb3VwUHJpbmNpcGFsLmlkLCAuLi5hcmdzKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLmZsYXQoKTtcblxuICAgIGNvbnN0IGFzc2lnbm1lbnRzID0gWy4uLnNvdXJjZUFzc2lnbm1lbnRzLCAuLi5ncm91cEFzc2lnbm1lbnRzXTtcbiAgICBmb3IgKGNvbnN0IGFzc2lnbm1lbnQgb2YgYXNzaWdubWVudHMpIHtcbiAgICAgIGNvbnN0IHJvbGVQZXJtaXNzaW9ucyA9IGF3YWl0IHJvbGVQZXJtaXNzaW9uU2VydmljZS5saXN0Um9sZVBlcm1pc3Npb25zKHJlbGF0aW9uSWQoYXNzaWdubWVudC5yb2xlKSwgLi4uYXJncyk7XG4gICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICByb2xlUGVybWlzc2lvbnMubWFwKGFzeW5jIChyb2xlUGVybWlzc2lvbikgPT5cbiAgICAgICAgICBwZXJtaXNzaW9uU2VydmljZS5maW5kT25lQnkoXCJpZFwiLCByZWxhdGlvbklkKHJvbGVQZXJtaXNzaW9uLnBlcm1pc3Npb24pIGFzIG5ldmVyLCAuLi5hcmdzKVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIHBlcm1pc3Npb25zKSB7XG4gICAgICAgIGlmICghcGVybWlzc2lvbikgY29udGludWU7XG4gICAgICAgIGNvbnN0IHNjb3BlS2luZCA9IGFzc2lnbm1lbnQuc2NvcGVLaW5kO1xuICAgICAgICBjb25zdCBzY29wZUlkID0gYXNzaWdubWVudC5zY29wZUlkO1xuICAgICAgICBjb25zdCBzY29wZXM6IEFycmF5PHsgc2NvcGVLaW5kOiBTY29wZUtpbmQ7IHNjb3BlSWQ6IHN0cmluZyB9PiA9IFtdO1xuICAgICAgICBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuVGVuYW50KSB7XG4gICAgICAgICAgc2NvcGVzLnB1c2goeyBzY29wZUtpbmQsIHNjb3BlSWQ6IHRlbmFudElkIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLlJlc291cmNlKSB7XG4gICAgICAgICAgc2NvcGVzLnB1c2goeyBzY29wZUtpbmQsIHNjb3BlSWQgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuT3JnVW5pdCAmJiAhYXNzaWdubWVudC5pbmhlcml0RG93bikge1xuICAgICAgICAgIHNjb3Blcy5wdXNoKHsgc2NvcGVLaW5kLCBzY29wZUlkIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLk9yZ1VuaXQgJiYgYXNzaWdubWVudC5pbmhlcml0RG93bikge1xuICAgICAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gYXdhaXQgb3JnVW5pdENsb3N1cmVTZXJ2aWNlLmxpc3REZXNjZW5kYW50cyh0ZW5hbnRJZCwgc2NvcGVJZCwgLi4uYXJncyk7XG4gICAgICAgICAgc2NvcGVzLnB1c2goLi4uZGVzY2VuZGFudHMubWFwKChyb3cpID0+ICh7IHNjb3BlS2luZCwgc2NvcGVJZDogcmVsYXRpb25JZChyb3cuZGVzY2VuZGFudCkgfSkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qgc2NvcGVkIG9mIHNjb3Blcykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLk9yZ1VuaXQgJiZcbiAgICAgICAgICAgIGFzc2lnbm1lbnQuaW5oZXJpdERvd24gJiZcbiAgICAgICAgICAgIHNjb3BlZC5zY29wZUlkICE9PSBzY29wZUlkICYmXG4gICAgICAgICAgICAoYXdhaXQgaW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UuY2F0ZWdvcnlCbG9ja2VkRm9yQW5jZXN0b3IoXG4gICAgICAgICAgICAgIHRlbmFudElkLFxuICAgICAgICAgICAgICBzY29wZWQuc2NvcGVJZCxcbiAgICAgICAgICAgICAgc2NvcGVJZCxcbiAgICAgICAgICAgICAgcGVybWlzc2lvbi5jYXRlZ29yeSxcbiAgICAgICAgICAgICAgLi4uYXJnc1xuICAgICAgICAgICAgKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXRlcmlhbGl6ZWQucHVzaCh7XG4gICAgICAgICAgICBpZDogXCJcIixcbiAgICAgICAgICAgIHRlbmFudElkLFxuICAgICAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uS2V5OiBwZXJtaXNzaW9uLmtleSxcbiAgICAgICAgICAgIHNjb3BlS2luZDogc2NvcGVkLnNjb3BlS2luZCxcbiAgICAgICAgICAgIHNjb3BlSWQ6IHNjb3BlZC5zY29wZUlkLFxuICAgICAgICAgICAgc291cmNlS2luZDogXCJyb2xlX2Fzc2lnbm1lbnRcIixcbiAgICAgICAgICAgIHNvdXJjZUlkOiBhc3NpZ25tZW50LmlkLFxuICAgICAgICAgICAgc3RhcnRzQXQ6IGFzc2lnbm1lbnQuc3RhcnRzQXQsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IGFzc2lnbm1lbnQuZXhwaXJlc0F0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbWF0ZXJpYWxpemVkLm1hcCgocGVybWlzc2lvbikgPT5cbiAgICAgICAgdGhpcy5jcmVhdGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVuYW50OiBwZXJtaXNzaW9uLnRlbmFudElkLFxuICAgICAgICAgICAgcHJpbmNpcGFsOiBwZXJtaXNzaW9uLnByaW5jaXBhbElkLFxuICAgICAgICAgICAgcGVybWlzc2lvbktleTogcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5LFxuICAgICAgICAgICAgc2NvcGVLaW5kOiBwZXJtaXNzaW9uLnNjb3BlS2luZCxcbiAgICAgICAgICAgIHNjb3BlSWQ6IHBlcm1pc3Npb24uc2NvcGVJZCxcbiAgICAgICAgICAgIHNvdXJjZUtpbmQ6IHBlcm1pc3Npb24uc291cmNlS2luZCxcbiAgICAgICAgICAgIHNvdXJjZUlkOiBwZXJtaXNzaW9uLnNvdXJjZUlkLFxuICAgICAgICAgICAgc3RhcnRzQXQ6IHBlcm1pc3Npb24uc3RhcnRzQXQsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IHBlcm1pc3Npb24uZXhwaXJlc0F0LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uYXJnc1xuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgcmVidWlsZEZvclRlbmFudCh0ZW5hbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHByaW5jaXBhbHMgPSAoYXdhaXQgbmV3IFByaW5jaXBhbFNlcnZpY2UoKS5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHByaW5jaXBhbCkgPT4gc2FtZVRlbmFudChwcmluY2lwYWwudGVuYW50LCB0ZW5hbnRJZCkpO1xuICAgIGZvciAoY29uc3QgcHJpbmNpcGFsIG9mIHByaW5jaXBhbHMpIHtcbiAgICAgIGF3YWl0IHRoaXMucmVidWlsZEZvclByaW5jaXBhbCh0ZW5hbnRJZCwgcHJpbmNpcGFsLmlkLCAuLi5hcmdzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
140
+ //# sourceMappingURL=effective-permission.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-permission.service.js","sourceRoot":"","sources":["../../../../src/namespaces/services/effective-permission.service.ts"],"names":[],"mappings":"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"}
@@ -34,4 +34,4 @@ export class GroupMembershipService extends BaseModelService {
34
34
  return principals;
35
35
  }
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtbWVtYmVyc2hpcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvc2VydmljZXMvZ3JvdXAtbWVtYmVyc2hpcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLHNCQUFpQjtBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLDhDQUF5QztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsK0JBQTRCO0FBRXZELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBaUM7SUFDM0U7UUFDRSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsUUFBZ0IsRUFDaEIsT0FBZSxFQUNmLFdBQW1CLEVBQ25CLFFBQWtDLEVBQ2xDLEdBQUcsSUFBVztRQUVkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEI7WUFDRSxNQUFNLEVBQUUsUUFBUTtZQUNoQixLQUFLLEVBQUUsT0FBTztZQUNkLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFFBQVE7U0FDVCxFQUNELEdBQUcsSUFBSSxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQWUsRUFBRSxHQUFHLElBQVc7UUFDcEQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsV0FBbUIsRUFBRSxHQUFHLElBQVc7UUFDM0QsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFRCxLQUFLLENBQUMsd0JBQXdCLENBQUMsWUFBb0IsRUFBRSxHQUFHLElBQVc7UUFDakUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxLQUFLLENBQUMsb0NBQW9DLENBQUMsV0FBbUIsRUFBRSxHQUFHLElBQVc7UUFDNUUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDaEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDekUsTUFBTSxVQUFVLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNsQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9DLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDdkYsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWxTZXJ2aWNlLCByZWxhdGlvbklkLCByZWxhdGlvbk1hdGNoIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBHcm91cE1lbWJlcnNoaXAgfSBmcm9tIFwiLi4vbW9kZWxzL2dyb3VwLW1lbWJlcnNoaXAubW9kZWxcIjtcbmltcG9ydCB7IFByaW5jaXBhbFNlcnZpY2UgfSBmcm9tIFwiLi9wcmluY2lwYWwuc2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgR3JvdXBNZW1iZXJzaGlwU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8R3JvdXBNZW1iZXJzaGlwPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKEdyb3VwTWVtYmVyc2hpcCk7XG4gIH1cblxuICBhc3luYyBhZGRQcmluY2lwYWxUb0dyb3VwKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgZ3JvdXBJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEdyb3VwTWVtYmVyc2hpcD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHtcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgZ3JvdXA6IGdyb3VwSWQsXG4gICAgICAgIHByaW5jaXBhbDogcHJpbmNpcGFsSWQsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdEdyb3VwTWVtYmVycyhncm91cElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxHcm91cE1lbWJlcnNoaXBbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKG1lbWJlcnNoaXApID0+IHJlbGF0aW9uTWF0Y2gobWVtYmVyc2hpcC5ncm91cCwgZ3JvdXBJZCkpO1xuICB9XG5cbiAgYXN5bmMgbGlzdFByaW5jaXBhbEdyb3VwcyhwcmluY2lwYWxJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8R3JvdXBNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PiByZWxhdGlvbk1hdGNoKG1lbWJlcnNoaXAucHJpbmNpcGFsLCBwcmluY2lwYWxJZCkpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlUHJpbmNpcGFsRnJvbUdyb3VwKG1lbWJlcnNoaXBJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChtZW1iZXJzaGlwSWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcmVzb2x2ZUdyb3VwUHJpbmNpcGFsSWRzRm9yUHJpbmNpcGFsKHByaW5jaXBhbElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHByaW5jaXBhbFNlcnZpY2UgPSBuZXcgUHJpbmNpcGFsU2VydmljZSgpO1xuICAgIGNvbnN0IG1lbWJlcnNoaXBzID0gYXdhaXQgdGhpcy5saXN0UHJpbmNpcGFsR3JvdXBzKHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICBjb25zdCBwcmluY2lwYWxzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtZW1iZXJzaGlwcy5tYXAoYXN5bmMgKG1lbWJlcnNoaXApID0+IHtcbiAgICAgICAgY29uc3QgdGVuYW50SWQgPSByZWxhdGlvbklkKG1lbWJlcnNoaXAudGVuYW50KTtcbiAgICAgICAgY29uc3QgZ3JvdXBJZCA9IHJlbGF0aW9uSWQobWVtYmVyc2hpcC5ncm91cCk7XG4gICAgICAgIGNvbnN0IHByaW5jaXBhbCA9IGF3YWl0IHByaW5jaXBhbFNlcnZpY2UuZ2V0R3JvdXBQcmluY2lwYWwodGVuYW50SWQsIGdyb3VwSWQsIC4uLmFyZ3MpO1xuICAgICAgICByZXR1cm4gcHJpbmNpcGFsLmlkO1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiBwcmluY2lwYWxzO1xuICB9XG59XG4iXX0=
37
+ //# sourceMappingURL=group-membership.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-membership.service.js","sourceRoot":"","sources":["../../../../src/namespaces/services/group-membership.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAiB;AACvE,OAAO,EAAE,eAAe,EAAE,8CAAyC;AACnE,OAAO,EAAE,gBAAgB,EAAE,+BAA4B;AAEvD,MAAM,OAAO,sBAAuB,SAAQ,gBAAiC;IAC3E;QACE,KAAK,CAAC,eAAe,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,QAAgB,EAChB,OAAe,EACf,WAAmB,EACnB,QAAkC,EAClC,GAAG,IAAW;QAEd,OAAO,IAAI,CAAC,MAAM,CAChB;YACE,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,WAAW;YACtB,QAAQ;SACT,EACD,GAAG,IAAI,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe,EAAE,GAAG,IAAW;QACpD,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,WAAmB,EAAE,GAAG,IAAW;QAC3D,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,YAAoB,EAAE,GAAG,IAAW;QACjE,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,oCAAoC,CAAC,WAAmB,EAAE,GAAG,IAAW;QAC5E,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACvF,OAAO,SAAS,CAAC,EAAE,CAAC;QACtB,CAAC,CAAC,CACH,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}