@decaf-ts/integrations 0.14.2 → 0.14.3

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 (1166) hide show
  1. package/README.md +11 -1
  2. package/dist/integrations.cjs +3317 -2
  3. package/dist/integrations.js +3665 -2
  4. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
  5. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  6. package/lib/cjs/blob/azure/index.cjs +2 -2
  7. package/lib/cjs/blob/core/BlobEnvironment.cjs +2 -2
  8. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  9. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  11. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  12. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  13. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  14. package/lib/cjs/blob/core/index.cjs +2 -2
  15. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs +2 -2
  16. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  17. package/lib/cjs/blob/gcp/index.cjs +2 -2
  18. package/lib/cjs/blob/index.cjs +2 -2
  19. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs +2 -2
  20. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  21. package/lib/cjs/blob/local/index.cjs +2 -2
  22. package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs +2 -2
  23. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  24. package/lib/cjs/blob/memory/index.cjs +2 -2
  25. package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs +2 -2
  26. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  27. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +2 -2
  28. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  29. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +2 -2
  30. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  31. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +2 -2
  32. package/lib/cjs/blob/s3/index.cjs +2 -2
  33. package/lib/cjs/calendar/CalendarService.cjs +2 -2
  34. package/lib/cjs/calendar/environment.cjs +2 -2
  35. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
  36. package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
  37. package/lib/cjs/calendar/index.cjs +2 -2
  38. package/lib/cjs/calendar/types.cjs +2 -2
  39. package/lib/cjs/calendar/validators/cron.cjs +2 -2
  40. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
  41. package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
  42. package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
  43. package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
  44. package/lib/cjs/comms/discord/index.cjs +2 -2
  45. package/lib/cjs/comms/email/EmailService.cjs +2 -2
  46. package/lib/cjs/comms/email/index.cjs +2 -2
  47. package/lib/cjs/comms/email/mime.cjs +2 -2
  48. package/lib/cjs/comms/email/smtp.cjs +2 -2
  49. package/lib/cjs/comms/environment.cjs +2 -2
  50. package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
  51. package/lib/cjs/comms/gmail/index.cjs +2 -2
  52. package/lib/cjs/comms/index.cjs +2 -2
  53. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
  54. package/lib/cjs/comms/outlook/index.cjs +2 -2
  55. package/lib/cjs/comms/slack/SlackService.cjs +2 -2
  56. package/lib/cjs/comms/slack/index.cjs +2 -2
  57. package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
  58. package/lib/cjs/comms/teams/index.cjs +2 -2
  59. package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
  60. package/lib/cjs/comms/telegram/index.cjs +2 -2
  61. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
  62. package/lib/cjs/comms/whatsapp/index.cjs +2 -2
  63. package/lib/cjs/devops/environment.cjs +2 -2
  64. package/lib/cjs/devops/github/GithubService.cjs +2 -2
  65. package/lib/cjs/devops/github/index.cjs +2 -2
  66. package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
  67. package/lib/cjs/devops/gitlab/index.cjs +2 -2
  68. package/lib/cjs/devops/index.cjs +2 -2
  69. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  70. package/lib/cjs/docker/index.cjs +2 -2
  71. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +2 -2
  72. package/lib/cjs/feature-flags/constants.cjs +2 -2
  73. package/lib/cjs/feature-flags/decorators.cjs +2 -2
  74. package/lib/cjs/feature-flags/environment.cjs +2 -2
  75. package/lib/cjs/feature-flags/index.cjs +2 -2
  76. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
  77. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
  78. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
  79. package/lib/cjs/feature-flags/readers/index.cjs +2 -2
  80. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
  81. package/lib/cjs/feature-flags/types.cjs +2 -2
  82. package/lib/cjs/feature-flags/utils.cjs +2 -2
  83. package/lib/cjs/index.cjs +5 -5
  84. package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
  85. package/lib/cjs/io/airtable/index.cjs +2 -2
  86. package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
  87. package/lib/cjs/io/confluence/index.cjs +2 -2
  88. package/lib/cjs/io/environment.cjs +2 -2
  89. package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
  90. package/lib/cjs/io/google-docs/index.cjs +2 -2
  91. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
  92. package/lib/cjs/io/google-sheets/index.cjs +2 -2
  93. package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
  94. package/lib/cjs/io/graphql/index.cjs +2 -2
  95. package/lib/cjs/io/index.cjs +2 -2
  96. package/lib/cjs/io/jira/JiraService.cjs +2 -2
  97. package/lib/cjs/io/jira/index.cjs +2 -2
  98. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
  99. package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
  100. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
  101. package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
  102. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
  103. package/lib/cjs/io/spreadsheet/index.cjs +2 -2
  104. package/lib/cjs/keycloak/broker.cjs +2 -2
  105. package/lib/cjs/keycloak/index.cjs +2 -2
  106. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  107. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  108. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  109. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  110. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  111. package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
  112. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  113. package/lib/cjs/keycloak/services/index.cjs +2 -2
  114. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  115. package/lib/cjs/keycloak/types.cjs +2 -2
  116. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
  117. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
  118. package/lib/cjs/kibana/builders/index.cjs +2 -2
  119. package/lib/cjs/kibana/helpers.cjs +2 -2
  120. package/lib/cjs/kibana/index.cjs +2 -2
  121. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  122. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  123. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  124. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  125. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  126. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  127. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  128. package/lib/cjs/kibana/services/index.cjs +2 -2
  129. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  130. package/lib/cjs/kibana/types.cjs +2 -2
  131. package/lib/cjs/loader/ObjectLoader.cjs +2 -2
  132. package/lib/cjs/loader/assets.cjs +2 -2
  133. package/lib/cjs/loader/config.cjs +2 -2
  134. package/lib/cjs/loader/families.cjs +2 -2
  135. package/lib/cjs/loader/index.cjs +2 -2
  136. package/lib/cjs/loader/nest.cjs +2 -2
  137. package/lib/cjs/loader/types.cjs +2 -2
  138. package/lib/cjs/namespaces/index.cjs +2 -2
  139. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  140. package/lib/cjs/namespaces/models/credential.model.cjs +2 -2
  141. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
  142. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
  143. package/lib/cjs/namespaces/models/group.model.cjs +2 -2
  144. package/lib/cjs/namespaces/models/index.cjs +2 -2
  145. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
  146. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
  147. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
  148. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  149. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
  150. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  151. package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
  152. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
  153. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
  154. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
  155. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
  156. package/lib/cjs/namespaces/models/role.model.cjs +2 -2
  157. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  158. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
  159. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  160. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
  161. package/lib/cjs/namespaces/models/user.model.cjs +2 -2
  162. package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
  163. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  164. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
  165. package/lib/cjs/namespaces/rls/index.cjs +2 -2
  166. package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
  167. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
  168. package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
  169. package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
  170. package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
  171. package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
  172. package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
  173. package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
  174. package/lib/cjs/namespaces/services/credential.service.cjs +2 -2
  175. package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
  176. package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
  177. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  178. package/lib/cjs/namespaces/services/index.cjs +2 -2
  179. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
  180. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
  181. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  182. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  183. package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
  184. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  185. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  186. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  187. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  188. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
  189. package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
  190. package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
  191. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  192. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  193. package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
  194. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  195. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  196. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  197. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  198. package/lib/cjs/namespaces/types.cjs +2 -2
  199. package/lib/cjs/namespaces/utils.cjs +2 -2
  200. package/lib/cjs/nest/decorators.cjs +2 -2
  201. package/lib/cjs/nest/index.cjs +2 -2
  202. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  203. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  204. package/lib/cjs/nest/logging.cjs +2 -2
  205. package/lib/cjs/nest/types.cjs +2 -2
  206. package/lib/cjs/nest/utils.cjs +2 -2
  207. package/lib/cjs/plugins/contract.cjs +2 -2
  208. package/lib/cjs/plugins/index.cjs +2 -2
  209. package/lib/cjs/plugins/kibana/host.cjs +2 -2
  210. package/lib/cjs/plugins/kibana/index.cjs +2 -2
  211. package/lib/cjs/plugins/kibana/installer.cjs +2 -2
  212. package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
  213. package/lib/cjs/plugins/kibana/templates.cjs +2 -2
  214. package/lib/cjs/plugins/kibana/types.cjs +2 -2
  215. package/lib/cjs/plugins/superset/host.cjs +2 -2
  216. package/lib/cjs/plugins/superset/index.cjs +2 -2
  217. package/lib/cjs/plugins/superset/installer.cjs +2 -2
  218. package/lib/cjs/plugins/superset/manifest.cjs +2 -2
  219. package/lib/cjs/plugins/superset/templates.cjs +2 -2
  220. package/lib/cjs/plugins/superset/types.cjs +2 -2
  221. package/lib/cjs/redis/RedisContextLock.cjs +2 -2
  222. package/lib/cjs/redis/RedisDispatch.cjs +2 -2
  223. package/lib/cjs/redis/RedisPaginator.cjs +2 -2
  224. package/lib/cjs/redis/RedisStatement.cjs +2 -2
  225. package/lib/cjs/redis/adapter.cjs +2 -2
  226. package/lib/cjs/redis/constants.cjs +2 -2
  227. package/lib/cjs/redis/handlers.cjs +2 -2
  228. package/lib/cjs/redis/index.cjs +2 -2
  229. package/lib/cjs/redis/serialization.cjs +2 -2
  230. package/lib/cjs/redis/types.cjs +2 -2
  231. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
  232. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs +2 -2
  233. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  234. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  235. package/lib/cjs/secrets/aws/index.cjs +2 -2
  236. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  237. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  238. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs +2 -2
  239. package/lib/cjs/secrets/azure/index.cjs +2 -2
  240. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +2 -2
  241. package/lib/cjs/secrets/core/SecretEnvironment.cjs +2 -2
  242. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  243. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  244. package/lib/cjs/secrets/core/SecretReference.cjs +3 -2
  245. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  246. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  247. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  248. package/lib/cjs/secrets/core/index.cjs +2 -2
  249. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +2 -2
  250. package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
  251. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
  252. package/lib/cjs/secrets/fs/index.cjs +2 -2
  253. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs +2 -2
  254. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  255. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  256. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  257. package/lib/cjs/secrets/index.cjs +2 -2
  258. package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs +34 -0
  259. package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +479 -0
  260. package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +4 -0
  261. package/lib/cjs/secrets/kubernetes/index.cjs +27 -0
  262. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  263. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs +2 -2
  264. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  265. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  266. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  267. package/lib/cjs/secrets/model/index.cjs +2 -2
  268. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs +2 -2
  269. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  270. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  271. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  272. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs +2 -2
  273. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  274. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  275. package/lib/cjs/secrets/vault/index.cjs +2 -2
  276. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs +2 -2
  277. package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
  278. package/lib/cjs/sftp/aws/index.cjs +2 -2
  279. package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
  280. package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
  281. package/lib/cjs/sftp/core/index.cjs +2 -2
  282. package/lib/cjs/sftp/index.cjs +2 -2
  283. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
  284. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
  285. package/lib/cjs/sftp/ssh2/index.cjs +2 -2
  286. package/lib/cjs/shared/environmentValue.cjs +2 -2
  287. package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
  288. package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
  289. package/lib/cjs/shared/http/index.cjs +2 -2
  290. package/lib/cjs/shared/runtime.cjs +2 -2
  291. package/lib/cjs/user-requests/index.cjs +2 -2
  292. package/lib/cjs/utils.cjs +2 -2
  293. package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
  294. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  295. package/lib/esm/blob/azure/index.js +1 -1
  296. package/lib/esm/blob/core/BlobEnvironment.js +1 -1
  297. package/lib/esm/blob/core/BlobErrors.js +1 -1
  298. package/lib/esm/blob/core/BlobKey.js +1 -1
  299. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  300. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  301. package/lib/esm/blob/core/BlobTypes.js +1 -1
  302. package/lib/esm/blob/core/BlobValue.js +1 -1
  303. package/lib/esm/blob/core/index.js +1 -1
  304. package/lib/esm/blob/gcp/GcsBlobEnvironment.js +1 -1
  305. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  306. package/lib/esm/blob/gcp/index.js +1 -1
  307. package/lib/esm/blob/index.js +1 -1
  308. package/lib/esm/blob/local/LocalBlobEnvironment.js +1 -1
  309. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  310. package/lib/esm/blob/local/index.js +1 -1
  311. package/lib/esm/blob/memory/MemoryBlobEnvironment.js +1 -1
  312. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  313. package/lib/esm/blob/memory/index.js +1 -1
  314. package/lib/esm/blob/s3/MinioBlobEnvironment.js +1 -1
  315. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  316. package/lib/esm/blob/s3/R2BlobEnvironment.js +1 -1
  317. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  318. package/lib/esm/blob/s3/S3BlobEnvironment.js +1 -1
  319. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  320. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +1 -1
  321. package/lib/esm/blob/s3/index.js +1 -1
  322. package/lib/esm/calendar/CalendarService.js +1 -1
  323. package/lib/esm/calendar/environment.js +1 -1
  324. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
  325. package/lib/esm/calendar/google-calendar/index.js +1 -1
  326. package/lib/esm/calendar/index.js +1 -1
  327. package/lib/esm/calendar/types.js +1 -1
  328. package/lib/esm/calendar/validators/cron.js +1 -1
  329. package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
  330. package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
  331. package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
  332. package/lib/esm/comms/discord/DiscordService.js +1 -1
  333. package/lib/esm/comms/discord/index.js +1 -1
  334. package/lib/esm/comms/email/EmailService.js +1 -1
  335. package/lib/esm/comms/email/index.js +1 -1
  336. package/lib/esm/comms/email/mime.js +1 -1
  337. package/lib/esm/comms/email/smtp.js +1 -1
  338. package/lib/esm/comms/environment.js +1 -1
  339. package/lib/esm/comms/gmail/GmailService.js +1 -1
  340. package/lib/esm/comms/gmail/index.js +1 -1
  341. package/lib/esm/comms/index.js +1 -1
  342. package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
  343. package/lib/esm/comms/outlook/index.js +1 -1
  344. package/lib/esm/comms/slack/SlackService.js +1 -1
  345. package/lib/esm/comms/slack/index.js +1 -1
  346. package/lib/esm/comms/teams/TeamsService.js +1 -1
  347. package/lib/esm/comms/teams/index.js +1 -1
  348. package/lib/esm/comms/telegram/TelegramService.js +1 -1
  349. package/lib/esm/comms/telegram/index.js +1 -1
  350. package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
  351. package/lib/esm/comms/whatsapp/index.js +1 -1
  352. package/lib/esm/devops/environment.js +1 -1
  353. package/lib/esm/devops/github/GithubService.js +1 -1
  354. package/lib/esm/devops/github/index.js +1 -1
  355. package/lib/esm/devops/gitlab/GitlabService.js +1 -1
  356. package/lib/esm/devops/gitlab/index.js +1 -1
  357. package/lib/esm/devops/index.js +1 -1
  358. package/lib/esm/docker/DockerComposeService.js +1 -1
  359. package/lib/esm/docker/index.js +1 -1
  360. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +1 -1
  361. package/lib/esm/feature-flags/constants.js +1 -1
  362. package/lib/esm/feature-flags/decorators.js +1 -1
  363. package/lib/esm/feature-flags/environment.js +1 -1
  364. package/lib/esm/feature-flags/index.js +1 -1
  365. package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
  366. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
  367. package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
  368. package/lib/esm/feature-flags/readers/index.js +1 -1
  369. package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
  370. package/lib/esm/feature-flags/types.js +1 -1
  371. package/lib/esm/feature-flags/utils.js +1 -1
  372. package/lib/esm/index.js +4 -4
  373. package/lib/esm/io/airtable/AirtableService.js +1 -1
  374. package/lib/esm/io/airtable/index.js +1 -1
  375. package/lib/esm/io/confluence/ConfluenceService.js +1 -1
  376. package/lib/esm/io/confluence/index.js +1 -1
  377. package/lib/esm/io/environment.js +1 -1
  378. package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
  379. package/lib/esm/io/google-docs/index.js +1 -1
  380. package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
  381. package/lib/esm/io/google-sheets/index.js +1 -1
  382. package/lib/esm/io/graphql/GraphqlService.js +1 -1
  383. package/lib/esm/io/graphql/index.js +1 -1
  384. package/lib/esm/io/index.js +1 -1
  385. package/lib/esm/io/jira/JiraService.js +1 -1
  386. package/lib/esm/io/jira/index.js +1 -1
  387. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
  388. package/lib/esm/io/microsoft-excel/index.js +1 -1
  389. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
  390. package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
  391. package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
  392. package/lib/esm/io/spreadsheet/index.js +1 -1
  393. package/lib/esm/keycloak/broker.js +1 -1
  394. package/lib/esm/keycloak/index.js +1 -1
  395. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  396. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  397. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
  398. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  399. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  400. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  401. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  402. package/lib/esm/keycloak/services/index.js +1 -1
  403. package/lib/esm/keycloak/services/runtime.js +1 -1
  404. package/lib/esm/keycloak/types.js +1 -1
  405. package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
  406. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
  407. package/lib/esm/kibana/builders/index.js +1 -1
  408. package/lib/esm/kibana/helpers.js +1 -1
  409. package/lib/esm/kibana/index.js +1 -1
  410. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  411. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  412. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  413. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  414. package/lib/esm/kibana/services/KibanaService.js +1 -1
  415. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  416. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  417. package/lib/esm/kibana/services/index.js +1 -1
  418. package/lib/esm/kibana/services/runtime.js +1 -1
  419. package/lib/esm/kibana/types.js +1 -1
  420. package/lib/esm/loader/ObjectLoader.js +1 -1
  421. package/lib/esm/loader/assets.js +1 -1
  422. package/lib/esm/loader/config.js +1 -1
  423. package/lib/esm/loader/families.js +1 -1
  424. package/lib/esm/loader/index.js +1 -1
  425. package/lib/esm/loader/nest.js +1 -1
  426. package/lib/esm/loader/types.js +1 -1
  427. package/lib/esm/namespaces/index.js +1 -1
  428. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  429. package/lib/esm/namespaces/models/credential.model.js +1 -1
  430. package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
  431. package/lib/esm/namespaces/models/group-membership.model.js +1 -1
  432. package/lib/esm/namespaces/models/group.model.js +1 -1
  433. package/lib/esm/namespaces/models/index.js +1 -1
  434. package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
  435. package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
  436. package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
  437. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  438. package/lib/esm/namespaces/models/org-unit.model.js +1 -1
  439. package/lib/esm/namespaces/models/permission.model.js +1 -1
  440. package/lib/esm/namespaces/models/principal.model.js +1 -1
  441. package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
  442. package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
  443. package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
  444. package/lib/esm/namespaces/models/role-permission.model.js +1 -1
  445. package/lib/esm/namespaces/models/role.model.js +1 -1
  446. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  447. package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
  448. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  449. package/lib/esm/namespaces/models/tenant.model.js +1 -1
  450. package/lib/esm/namespaces/models/user.model.js +1 -1
  451. package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
  452. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  453. package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
  454. package/lib/esm/namespaces/rls/index.js +1 -1
  455. package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
  456. package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
  457. package/lib/esm/namespaces/rls/rls.constants.js +1 -1
  458. package/lib/esm/namespaces/rls/rls.template.js +1 -1
  459. package/lib/esm/namespaces/rls/rls.types.js +1 -1
  460. package/lib/esm/namespaces/rls/session-binding.js +1 -1
  461. package/lib/esm/namespaces/services/authz.service.js +1 -1
  462. package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
  463. package/lib/esm/namespaces/services/credential.service.js +1 -1
  464. package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
  465. package/lib/esm/namespaces/services/group-membership.service.js +1 -1
  466. package/lib/esm/namespaces/services/group.service.js +1 -1
  467. package/lib/esm/namespaces/services/index.js +1 -1
  468. package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
  469. package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
  470. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  471. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  472. package/lib/esm/namespaces/services/org-unit.service.js +1 -1
  473. package/lib/esm/namespaces/services/permission.service.js +1 -1
  474. package/lib/esm/namespaces/services/principal.service.js +1 -1
  475. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  476. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  477. package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
  478. package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
  479. package/lib/esm/namespaces/services/role-permission.service.js +1 -1
  480. package/lib/esm/namespaces/services/role.service.js +1 -1
  481. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  482. package/lib/esm/namespaces/services/system-management.service.js +1 -1
  483. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  484. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  485. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  486. package/lib/esm/namespaces/services/user.service.js +1 -1
  487. package/lib/esm/namespaces/types.js +1 -1
  488. package/lib/esm/namespaces/utils.js +1 -1
  489. package/lib/esm/nest/decorators.js +1 -1
  490. package/lib/esm/nest/index.js +1 -1
  491. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  492. package/lib/esm/nest/keycloakModule.js +1 -1
  493. package/lib/esm/nest/logging.js +1 -1
  494. package/lib/esm/nest/types.js +1 -1
  495. package/lib/esm/nest/utils.js +1 -1
  496. package/lib/esm/plugins/contract.js +1 -1
  497. package/lib/esm/plugins/index.js +1 -1
  498. package/lib/esm/plugins/kibana/host.js +1 -1
  499. package/lib/esm/plugins/kibana/index.js +1 -1
  500. package/lib/esm/plugins/kibana/installer.js +1 -1
  501. package/lib/esm/plugins/kibana/manifest.js +1 -1
  502. package/lib/esm/plugins/kibana/templates.js +1 -1
  503. package/lib/esm/plugins/kibana/types.js +1 -1
  504. package/lib/esm/plugins/superset/host.js +1 -1
  505. package/lib/esm/plugins/superset/index.js +1 -1
  506. package/lib/esm/plugins/superset/installer.js +1 -1
  507. package/lib/esm/plugins/superset/manifest.js +1 -1
  508. package/lib/esm/plugins/superset/templates.js +1 -1
  509. package/lib/esm/plugins/superset/types.js +1 -1
  510. package/lib/esm/redis/RedisContextLock.js +1 -1
  511. package/lib/esm/redis/RedisDispatch.js +1 -1
  512. package/lib/esm/redis/RedisPaginator.js +1 -1
  513. package/lib/esm/redis/RedisStatement.js +1 -1
  514. package/lib/esm/redis/adapter.js +1 -1
  515. package/lib/esm/redis/constants.js +1 -1
  516. package/lib/esm/redis/handlers.js +1 -1
  517. package/lib/esm/redis/index.js +1 -1
  518. package/lib/esm/redis/serialization.js +1 -1
  519. package/lib/esm/redis/types.js +1 -1
  520. package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
  521. package/lib/esm/secrets/aws/AwsSecretEnvironment.js +1 -1
  522. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  523. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  524. package/lib/esm/secrets/aws/index.js +1 -1
  525. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  526. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  527. package/lib/esm/secrets/azure/AzureSecretEnvironment.js +1 -1
  528. package/lib/esm/secrets/azure/index.js +1 -1
  529. package/lib/esm/secrets/core/ClientBasedSecretService.js +1 -1
  530. package/lib/esm/secrets/core/SecretEnvironment.js +1 -1
  531. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  532. package/lib/esm/secrets/core/SecretName.js +1 -1
  533. package/lib/esm/secrets/core/SecretReference.js +2 -1
  534. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  535. package/lib/esm/secrets/core/SecretService.js +1 -1
  536. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  537. package/lib/esm/secrets/core/index.js +1 -1
  538. package/lib/esm/secrets/fs/FsSecretEnvironment.js +1 -1
  539. package/lib/esm/secrets/fs/FsSecretService.js +1 -1
  540. package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
  541. package/lib/esm/secrets/fs/index.js +1 -1
  542. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js +1 -1
  543. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  544. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  545. package/lib/esm/secrets/gcp/index.js +1 -1
  546. package/lib/esm/secrets/index.js +1 -1
  547. package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js +30 -0
  548. package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +474 -0
  549. package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +9 -0
  550. package/lib/esm/secrets/kubernetes/index.js +10 -0
  551. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  552. package/lib/esm/secrets/model/ModelSecretEnvironment.js +1 -1
  553. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  554. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  555. package/lib/esm/secrets/model/Secret.js +1 -1
  556. package/lib/esm/secrets/model/index.js +1 -1
  557. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js +1 -1
  558. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  559. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  560. package/lib/esm/secrets/onepassword/index.js +1 -1
  561. package/lib/esm/secrets/vault/VaultSecretEnvironment.js +1 -1
  562. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  563. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  564. package/lib/esm/secrets/vault/index.js +1 -1
  565. package/lib/esm/sftp/aws/AwsSftpEnvironment.js +1 -1
  566. package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
  567. package/lib/esm/sftp/aws/index.js +1 -1
  568. package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
  569. package/lib/esm/sftp/core/SftpSource.js +1 -1
  570. package/lib/esm/sftp/core/index.js +1 -1
  571. package/lib/esm/sftp/index.js +1 -1
  572. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
  573. package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
  574. package/lib/esm/sftp/ssh2/index.js +1 -1
  575. package/lib/esm/shared/environmentValue.js +1 -1
  576. package/lib/esm/shared/http/HttpApiService.js +1 -1
  577. package/lib/esm/shared/http/hermeticBoot.js +1 -1
  578. package/lib/esm/shared/http/index.js +1 -1
  579. package/lib/esm/shared/runtime.js +1 -1
  580. package/lib/esm/user-requests/index.js +1 -1
  581. package/lib/esm/utils.js +1 -1
  582. package/lib/types/index.d.cts +2 -2
  583. package/lib/types/index.d.mts +2 -2
  584. package/lib/types/secrets/core/SecretTypes.d.cts +13 -1
  585. package/lib/types/secrets/core/SecretTypes.d.mts +13 -1
  586. package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.cts +34 -0
  587. package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.mts +34 -0
  588. package/lib/types/secrets/kubernetes/KubernetesSecretService.d.cts +45 -0
  589. package/lib/types/secrets/kubernetes/KubernetesSecretService.d.mts +45 -0
  590. package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.cts +49 -0
  591. package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.mts +49 -0
  592. package/lib/types/secrets/kubernetes/index.d.cts +9 -0
  593. package/lib/types/secrets/kubernetes/index.d.mts +9 -0
  594. package/package.json +18 -1
  595. package/dist/integrations.cjs.map +0 -1
  596. package/dist/integrations.js.map +0 -1
  597. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.map +0 -1
  598. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
  599. package/lib/cjs/blob/azure/index.cjs.map +0 -1
  600. package/lib/cjs/blob/core/BlobEnvironment.cjs.map +0 -1
  601. package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
  602. package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
  603. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
  604. package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
  605. package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
  606. package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
  607. package/lib/cjs/blob/core/index.cjs.map +0 -1
  608. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs.map +0 -1
  609. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
  610. package/lib/cjs/blob/gcp/index.cjs.map +0 -1
  611. package/lib/cjs/blob/index.cjs.map +0 -1
  612. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs.map +0 -1
  613. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
  614. package/lib/cjs/blob/local/index.cjs.map +0 -1
  615. package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs.map +0 -1
  616. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
  617. package/lib/cjs/blob/memory/index.cjs.map +0 -1
  618. package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs.map +0 -1
  619. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
  620. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +0 -1
  621. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
  622. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +0 -1
  623. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
  624. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +0 -1
  625. package/lib/cjs/blob/s3/index.cjs.map +0 -1
  626. package/lib/cjs/calendar/CalendarService.cjs.map +0 -1
  627. package/lib/cjs/calendar/environment.cjs.map +0 -1
  628. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +0 -1
  629. package/lib/cjs/calendar/google-calendar/index.cjs.map +0 -1
  630. package/lib/cjs/calendar/index.cjs.map +0 -1
  631. package/lib/cjs/calendar/types.cjs.map +0 -1
  632. package/lib/cjs/calendar/validators/cron.cjs.map +0 -1
  633. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +0 -1
  634. package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +0 -1
  635. package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +0 -1
  636. package/lib/cjs/comms/discord/DiscordService.cjs.map +0 -1
  637. package/lib/cjs/comms/discord/index.cjs.map +0 -1
  638. package/lib/cjs/comms/email/EmailService.cjs.map +0 -1
  639. package/lib/cjs/comms/email/index.cjs.map +0 -1
  640. package/lib/cjs/comms/email/mime.cjs.map +0 -1
  641. package/lib/cjs/comms/email/smtp.cjs.map +0 -1
  642. package/lib/cjs/comms/environment.cjs.map +0 -1
  643. package/lib/cjs/comms/gmail/GmailService.cjs.map +0 -1
  644. package/lib/cjs/comms/gmail/index.cjs.map +0 -1
  645. package/lib/cjs/comms/index.cjs.map +0 -1
  646. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +0 -1
  647. package/lib/cjs/comms/outlook/index.cjs.map +0 -1
  648. package/lib/cjs/comms/slack/SlackService.cjs.map +0 -1
  649. package/lib/cjs/comms/slack/index.cjs.map +0 -1
  650. package/lib/cjs/comms/teams/TeamsService.cjs.map +0 -1
  651. package/lib/cjs/comms/teams/index.cjs.map +0 -1
  652. package/lib/cjs/comms/telegram/TelegramService.cjs.map +0 -1
  653. package/lib/cjs/comms/telegram/index.cjs.map +0 -1
  654. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +0 -1
  655. package/lib/cjs/comms/whatsapp/index.cjs.map +0 -1
  656. package/lib/cjs/devops/environment.cjs.map +0 -1
  657. package/lib/cjs/devops/github/GithubService.cjs.map +0 -1
  658. package/lib/cjs/devops/github/index.cjs.map +0 -1
  659. package/lib/cjs/devops/gitlab/GitlabService.cjs.map +0 -1
  660. package/lib/cjs/devops/gitlab/index.cjs.map +0 -1
  661. package/lib/cjs/devops/index.cjs.map +0 -1
  662. package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
  663. package/lib/cjs/docker/index.cjs.map +0 -1
  664. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +0 -1
  665. package/lib/cjs/feature-flags/constants.cjs.map +0 -1
  666. package/lib/cjs/feature-flags/decorators.cjs.map +0 -1
  667. package/lib/cjs/feature-flags/environment.cjs.map +0 -1
  668. package/lib/cjs/feature-flags/index.cjs.map +0 -1
  669. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +0 -1
  670. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +0 -1
  671. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +0 -1
  672. package/lib/cjs/feature-flags/readers/index.cjs.map +0 -1
  673. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +0 -1
  674. package/lib/cjs/feature-flags/types.cjs.map +0 -1
  675. package/lib/cjs/feature-flags/utils.cjs.map +0 -1
  676. package/lib/cjs/index.cjs.map +0 -1
  677. package/lib/cjs/io/airtable/AirtableService.cjs.map +0 -1
  678. package/lib/cjs/io/airtable/index.cjs.map +0 -1
  679. package/lib/cjs/io/confluence/ConfluenceService.cjs.map +0 -1
  680. package/lib/cjs/io/confluence/index.cjs.map +0 -1
  681. package/lib/cjs/io/environment.cjs.map +0 -1
  682. package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +0 -1
  683. package/lib/cjs/io/google-docs/index.cjs.map +0 -1
  684. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +0 -1
  685. package/lib/cjs/io/google-sheets/index.cjs.map +0 -1
  686. package/lib/cjs/io/graphql/GraphqlService.cjs.map +0 -1
  687. package/lib/cjs/io/graphql/index.cjs.map +0 -1
  688. package/lib/cjs/io/index.cjs.map +0 -1
  689. package/lib/cjs/io/jira/JiraService.cjs.map +0 -1
  690. package/lib/cjs/io/jira/index.cjs.map +0 -1
  691. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +0 -1
  692. package/lib/cjs/io/microsoft-excel/index.cjs.map +0 -1
  693. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +0 -1
  694. package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +0 -1
  695. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +0 -1
  696. package/lib/cjs/io/spreadsheet/index.cjs.map +0 -1
  697. package/lib/cjs/keycloak/broker.cjs.map +0 -1
  698. package/lib/cjs/keycloak/index.cjs.map +0 -1
  699. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
  700. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
  701. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
  702. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
  703. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
  704. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
  705. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
  706. package/lib/cjs/keycloak/services/index.cjs.map +0 -1
  707. package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
  708. package/lib/cjs/keycloak/types.cjs.map +0 -1
  709. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +0 -1
  710. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +0 -1
  711. package/lib/cjs/kibana/builders/index.cjs.map +0 -1
  712. package/lib/cjs/kibana/helpers.cjs.map +0 -1
  713. package/lib/cjs/kibana/index.cjs.map +0 -1
  714. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
  715. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
  716. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
  717. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
  718. package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
  719. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
  720. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
  721. package/lib/cjs/kibana/services/index.cjs.map +0 -1
  722. package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
  723. package/lib/cjs/kibana/types.cjs.map +0 -1
  724. package/lib/cjs/loader/ObjectLoader.cjs.map +0 -1
  725. package/lib/cjs/loader/assets.cjs.map +0 -1
  726. package/lib/cjs/loader/config.cjs.map +0 -1
  727. package/lib/cjs/loader/families.cjs.map +0 -1
  728. package/lib/cjs/loader/index.cjs.map +0 -1
  729. package/lib/cjs/loader/nest.cjs.map +0 -1
  730. package/lib/cjs/loader/types.cjs.map +0 -1
  731. package/lib/cjs/namespaces/index.cjs.map +0 -1
  732. package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
  733. package/lib/cjs/namespaces/models/credential.model.cjs.map +0 -1
  734. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
  735. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
  736. package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
  737. package/lib/cjs/namespaces/models/index.cjs.map +0 -1
  738. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
  739. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
  740. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
  741. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
  742. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
  743. package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
  744. package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
  745. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
  746. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
  747. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
  748. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
  749. package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
  750. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
  751. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
  752. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
  753. package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
  754. package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
  755. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
  756. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
  757. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
  758. package/lib/cjs/namespaces/rls/index.cjs.map +0 -1
  759. package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +0 -1
  760. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +0 -1
  761. package/lib/cjs/namespaces/rls/rls.constants.cjs.map +0 -1
  762. package/lib/cjs/namespaces/rls/rls.template.cjs.map +0 -1
  763. package/lib/cjs/namespaces/rls/rls.types.cjs.map +0 -1
  764. package/lib/cjs/namespaces/rls/session-binding.cjs.map +0 -1
  765. package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
  766. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
  767. package/lib/cjs/namespaces/services/credential.service.cjs.map +0 -1
  768. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
  769. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
  770. package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
  771. package/lib/cjs/namespaces/services/index.cjs.map +0 -1
  772. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
  773. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
  774. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
  775. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
  776. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
  777. package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
  778. package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
  779. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
  780. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
  781. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
  782. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
  783. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
  784. package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
  785. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
  786. package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
  787. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
  788. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
  789. package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
  790. package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
  791. package/lib/cjs/namespaces/types.cjs.map +0 -1
  792. package/lib/cjs/namespaces/utils.cjs.map +0 -1
  793. package/lib/cjs/nest/decorators.cjs.map +0 -1
  794. package/lib/cjs/nest/index.cjs.map +0 -1
  795. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
  796. package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
  797. package/lib/cjs/nest/logging.cjs.map +0 -1
  798. package/lib/cjs/nest/types.cjs.map +0 -1
  799. package/lib/cjs/nest/utils.cjs.map +0 -1
  800. package/lib/cjs/plugins/contract.cjs.map +0 -1
  801. package/lib/cjs/plugins/index.cjs.map +0 -1
  802. package/lib/cjs/plugins/kibana/host.cjs.map +0 -1
  803. package/lib/cjs/plugins/kibana/index.cjs.map +0 -1
  804. package/lib/cjs/plugins/kibana/installer.cjs.map +0 -1
  805. package/lib/cjs/plugins/kibana/manifest.cjs.map +0 -1
  806. package/lib/cjs/plugins/kibana/templates.cjs.map +0 -1
  807. package/lib/cjs/plugins/kibana/types.cjs.map +0 -1
  808. package/lib/cjs/plugins/superset/host.cjs.map +0 -1
  809. package/lib/cjs/plugins/superset/index.cjs.map +0 -1
  810. package/lib/cjs/plugins/superset/installer.cjs.map +0 -1
  811. package/lib/cjs/plugins/superset/manifest.cjs.map +0 -1
  812. package/lib/cjs/plugins/superset/templates.cjs.map +0 -1
  813. package/lib/cjs/plugins/superset/types.cjs.map +0 -1
  814. package/lib/cjs/redis/RedisContextLock.cjs.map +0 -1
  815. package/lib/cjs/redis/RedisDispatch.cjs.map +0 -1
  816. package/lib/cjs/redis/RedisPaginator.cjs.map +0 -1
  817. package/lib/cjs/redis/RedisStatement.cjs.map +0 -1
  818. package/lib/cjs/redis/adapter.cjs.map +0 -1
  819. package/lib/cjs/redis/constants.cjs.map +0 -1
  820. package/lib/cjs/redis/handlers.cjs.map +0 -1
  821. package/lib/cjs/redis/index.cjs.map +0 -1
  822. package/lib/cjs/redis/serialization.cjs.map +0 -1
  823. package/lib/cjs/redis/types.cjs.map +0 -1
  824. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +0 -1
  825. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs.map +0 -1
  826. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
  827. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
  828. package/lib/cjs/secrets/aws/index.cjs.map +0 -1
  829. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
  830. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
  831. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs.map +0 -1
  832. package/lib/cjs/secrets/azure/index.cjs.map +0 -1
  833. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +0 -1
  834. package/lib/cjs/secrets/core/SecretEnvironment.cjs.map +0 -1
  835. package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
  836. package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
  837. package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
  838. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
  839. package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
  840. package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
  841. package/lib/cjs/secrets/core/index.cjs.map +0 -1
  842. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +0 -1
  843. package/lib/cjs/secrets/fs/FsSecretService.cjs.map +0 -1
  844. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +0 -1
  845. package/lib/cjs/secrets/fs/index.cjs.map +0 -1
  846. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs.map +0 -1
  847. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
  848. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
  849. package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
  850. package/lib/cjs/secrets/index.cjs.map +0 -1
  851. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
  852. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs.map +0 -1
  853. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
  854. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
  855. package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
  856. package/lib/cjs/secrets/model/index.cjs.map +0 -1
  857. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs.map +0 -1
  858. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
  859. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
  860. package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
  861. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs.map +0 -1
  862. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
  863. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
  864. package/lib/cjs/secrets/vault/index.cjs.map +0 -1
  865. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs.map +0 -1
  866. package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +0 -1
  867. package/lib/cjs/sftp/aws/index.cjs.map +0 -1
  868. package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +0 -1
  869. package/lib/cjs/sftp/core/SftpSource.cjs.map +0 -1
  870. package/lib/cjs/sftp/core/index.cjs.map +0 -1
  871. package/lib/cjs/sftp/index.cjs.map +0 -1
  872. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +0 -1
  873. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +0 -1
  874. package/lib/cjs/sftp/ssh2/index.cjs.map +0 -1
  875. package/lib/cjs/shared/environmentValue.cjs.map +0 -1
  876. package/lib/cjs/shared/http/HttpApiService.cjs.map +0 -1
  877. package/lib/cjs/shared/http/hermeticBoot.cjs.map +0 -1
  878. package/lib/cjs/shared/http/index.cjs.map +0 -1
  879. package/lib/cjs/shared/runtime.cjs.map +0 -1
  880. package/lib/cjs/user-requests/index.cjs.map +0 -1
  881. package/lib/cjs/utils.cjs.map +0 -1
  882. package/lib/esm/blob/azure/AzureBlobEnvironment.js.map +0 -1
  883. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
  884. package/lib/esm/blob/azure/index.js.map +0 -1
  885. package/lib/esm/blob/core/BlobEnvironment.js.map +0 -1
  886. package/lib/esm/blob/core/BlobErrors.js.map +0 -1
  887. package/lib/esm/blob/core/BlobKey.js.map +0 -1
  888. package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
  889. package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
  890. package/lib/esm/blob/core/BlobTypes.js.map +0 -1
  891. package/lib/esm/blob/core/BlobValue.js.map +0 -1
  892. package/lib/esm/blob/core/index.js.map +0 -1
  893. package/lib/esm/blob/gcp/GcsBlobEnvironment.js.map +0 -1
  894. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
  895. package/lib/esm/blob/gcp/index.js.map +0 -1
  896. package/lib/esm/blob/index.js.map +0 -1
  897. package/lib/esm/blob/local/LocalBlobEnvironment.js.map +0 -1
  898. package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
  899. package/lib/esm/blob/local/index.js.map +0 -1
  900. package/lib/esm/blob/memory/MemoryBlobEnvironment.js.map +0 -1
  901. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
  902. package/lib/esm/blob/memory/index.js.map +0 -1
  903. package/lib/esm/blob/s3/MinioBlobEnvironment.js.map +0 -1
  904. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
  905. package/lib/esm/blob/s3/R2BlobEnvironment.js.map +0 -1
  906. package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
  907. package/lib/esm/blob/s3/S3BlobEnvironment.js.map +0 -1
  908. package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
  909. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +0 -1
  910. package/lib/esm/blob/s3/index.js.map +0 -1
  911. package/lib/esm/calendar/CalendarService.js.map +0 -1
  912. package/lib/esm/calendar/environment.js.map +0 -1
  913. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +0 -1
  914. package/lib/esm/calendar/google-calendar/index.js.map +0 -1
  915. package/lib/esm/calendar/index.js.map +0 -1
  916. package/lib/esm/calendar/types.js.map +0 -1
  917. package/lib/esm/calendar/validators/cron.js.map +0 -1
  918. package/lib/esm/calendar/writers/CalendarFsWriter.js.map +0 -1
  919. package/lib/esm/calendar/writers/CalenderDownloader.js.map +0 -1
  920. package/lib/esm/calendar/writers/ICalendarWriter.js.map +0 -1
  921. package/lib/esm/comms/discord/DiscordService.js.map +0 -1
  922. package/lib/esm/comms/discord/index.js.map +0 -1
  923. package/lib/esm/comms/email/EmailService.js.map +0 -1
  924. package/lib/esm/comms/email/index.js.map +0 -1
  925. package/lib/esm/comms/email/mime.js.map +0 -1
  926. package/lib/esm/comms/email/smtp.js.map +0 -1
  927. package/lib/esm/comms/environment.js.map +0 -1
  928. package/lib/esm/comms/gmail/GmailService.js.map +0 -1
  929. package/lib/esm/comms/gmail/index.js.map +0 -1
  930. package/lib/esm/comms/index.js.map +0 -1
  931. package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +0 -1
  932. package/lib/esm/comms/outlook/index.js.map +0 -1
  933. package/lib/esm/comms/slack/SlackService.js.map +0 -1
  934. package/lib/esm/comms/slack/index.js.map +0 -1
  935. package/lib/esm/comms/teams/TeamsService.js.map +0 -1
  936. package/lib/esm/comms/teams/index.js.map +0 -1
  937. package/lib/esm/comms/telegram/TelegramService.js.map +0 -1
  938. package/lib/esm/comms/telegram/index.js.map +0 -1
  939. package/lib/esm/comms/whatsapp/WhatsAppService.js.map +0 -1
  940. package/lib/esm/comms/whatsapp/index.js.map +0 -1
  941. package/lib/esm/devops/environment.js.map +0 -1
  942. package/lib/esm/devops/github/GithubService.js.map +0 -1
  943. package/lib/esm/devops/github/index.js.map +0 -1
  944. package/lib/esm/devops/gitlab/GitlabService.js.map +0 -1
  945. package/lib/esm/devops/gitlab/index.js.map +0 -1
  946. package/lib/esm/devops/index.js.map +0 -1
  947. package/lib/esm/docker/DockerComposeService.js.map +0 -1
  948. package/lib/esm/docker/index.js.map +0 -1
  949. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js.map +0 -1
  950. package/lib/esm/feature-flags/constants.js.map +0 -1
  951. package/lib/esm/feature-flags/decorators.js.map +0 -1
  952. package/lib/esm/feature-flags/environment.js.map +0 -1
  953. package/lib/esm/feature-flags/index.js.map +0 -1
  954. package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +0 -1
  955. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +0 -1
  956. package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +0 -1
  957. package/lib/esm/feature-flags/readers/index.js.map +0 -1
  958. package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +0 -1
  959. package/lib/esm/feature-flags/types.js.map +0 -1
  960. package/lib/esm/feature-flags/utils.js.map +0 -1
  961. package/lib/esm/index.js.map +0 -1
  962. package/lib/esm/io/airtable/AirtableService.js.map +0 -1
  963. package/lib/esm/io/airtable/index.js.map +0 -1
  964. package/lib/esm/io/confluence/ConfluenceService.js.map +0 -1
  965. package/lib/esm/io/confluence/index.js.map +0 -1
  966. package/lib/esm/io/environment.js.map +0 -1
  967. package/lib/esm/io/google-docs/GoogleDocsService.js.map +0 -1
  968. package/lib/esm/io/google-docs/index.js.map +0 -1
  969. package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +0 -1
  970. package/lib/esm/io/google-sheets/index.js.map +0 -1
  971. package/lib/esm/io/graphql/GraphqlService.js.map +0 -1
  972. package/lib/esm/io/graphql/index.js.map +0 -1
  973. package/lib/esm/io/index.js.map +0 -1
  974. package/lib/esm/io/jira/JiraService.js.map +0 -1
  975. package/lib/esm/io/jira/index.js.map +0 -1
  976. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +0 -1
  977. package/lib/esm/io/microsoft-excel/index.js.map +0 -1
  978. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +0 -1
  979. package/lib/esm/io/microsoft-sharepoint/index.js.map +0 -1
  980. package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +0 -1
  981. package/lib/esm/io/spreadsheet/index.js.map +0 -1
  982. package/lib/esm/keycloak/broker.js.map +0 -1
  983. package/lib/esm/keycloak/index.js.map +0 -1
  984. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
  985. package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
  986. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
  987. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
  988. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
  989. package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
  990. package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
  991. package/lib/esm/keycloak/services/index.js.map +0 -1
  992. package/lib/esm/keycloak/services/runtime.js.map +0 -1
  993. package/lib/esm/keycloak/types.js.map +0 -1
  994. package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +0 -1
  995. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +0 -1
  996. package/lib/esm/kibana/builders/index.js.map +0 -1
  997. package/lib/esm/kibana/helpers.js.map +0 -1
  998. package/lib/esm/kibana/index.js.map +0 -1
  999. package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
  1000. package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
  1001. package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
  1002. package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
  1003. package/lib/esm/kibana/services/KibanaService.js.map +0 -1
  1004. package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
  1005. package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
  1006. package/lib/esm/kibana/services/index.js.map +0 -1
  1007. package/lib/esm/kibana/services/runtime.js.map +0 -1
  1008. package/lib/esm/kibana/types.js.map +0 -1
  1009. package/lib/esm/loader/ObjectLoader.js.map +0 -1
  1010. package/lib/esm/loader/assets.js.map +0 -1
  1011. package/lib/esm/loader/config.js.map +0 -1
  1012. package/lib/esm/loader/families.js.map +0 -1
  1013. package/lib/esm/loader/index.js.map +0 -1
  1014. package/lib/esm/loader/nest.js.map +0 -1
  1015. package/lib/esm/loader/types.js.map +0 -1
  1016. package/lib/esm/namespaces/index.js.map +0 -1
  1017. package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
  1018. package/lib/esm/namespaces/models/credential.model.js.map +0 -1
  1019. package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
  1020. package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
  1021. package/lib/esm/namespaces/models/group.model.js.map +0 -1
  1022. package/lib/esm/namespaces/models/index.js.map +0 -1
  1023. package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
  1024. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
  1025. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
  1026. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
  1027. package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
  1028. package/lib/esm/namespaces/models/permission.model.js.map +0 -1
  1029. package/lib/esm/namespaces/models/principal.model.js.map +0 -1
  1030. package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
  1031. package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
  1032. package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
  1033. package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
  1034. package/lib/esm/namespaces/models/role.model.js.map +0 -1
  1035. package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
  1036. package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
  1037. package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
  1038. package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
  1039. package/lib/esm/namespaces/models/user.model.js.map +0 -1
  1040. package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
  1041. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
  1042. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
  1043. package/lib/esm/namespaces/rls/index.js.map +0 -1
  1044. package/lib/esm/namespaces/rls/principal-resolver.js.map +0 -1
  1045. package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +0 -1
  1046. package/lib/esm/namespaces/rls/rls.constants.js.map +0 -1
  1047. package/lib/esm/namespaces/rls/rls.template.js.map +0 -1
  1048. package/lib/esm/namespaces/rls/rls.types.js.map +0 -1
  1049. package/lib/esm/namespaces/rls/session-binding.js.map +0 -1
  1050. package/lib/esm/namespaces/services/authz.service.js.map +0 -1
  1051. package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
  1052. package/lib/esm/namespaces/services/credential.service.js.map +0 -1
  1053. package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
  1054. package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
  1055. package/lib/esm/namespaces/services/group.service.js.map +0 -1
  1056. package/lib/esm/namespaces/services/index.js.map +0 -1
  1057. package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
  1058. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
  1059. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
  1060. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
  1061. package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
  1062. package/lib/esm/namespaces/services/permission.service.js.map +0 -1
  1063. package/lib/esm/namespaces/services/principal.service.js.map +0 -1
  1064. package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
  1065. package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
  1066. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
  1067. package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
  1068. package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
  1069. package/lib/esm/namespaces/services/role.service.js.map +0 -1
  1070. package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
  1071. package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
  1072. package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
  1073. package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
  1074. package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
  1075. package/lib/esm/namespaces/services/user.service.js.map +0 -1
  1076. package/lib/esm/namespaces/types.js.map +0 -1
  1077. package/lib/esm/namespaces/utils.js.map +0 -1
  1078. package/lib/esm/nest/decorators.js.map +0 -1
  1079. package/lib/esm/nest/index.js.map +0 -1
  1080. package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
  1081. package/lib/esm/nest/keycloakModule.js.map +0 -1
  1082. package/lib/esm/nest/logging.js.map +0 -1
  1083. package/lib/esm/nest/types.js.map +0 -1
  1084. package/lib/esm/nest/utils.js.map +0 -1
  1085. package/lib/esm/plugins/contract.js.map +0 -1
  1086. package/lib/esm/plugins/index.js.map +0 -1
  1087. package/lib/esm/plugins/kibana/host.js.map +0 -1
  1088. package/lib/esm/plugins/kibana/index.js.map +0 -1
  1089. package/lib/esm/plugins/kibana/installer.js.map +0 -1
  1090. package/lib/esm/plugins/kibana/manifest.js.map +0 -1
  1091. package/lib/esm/plugins/kibana/templates.js.map +0 -1
  1092. package/lib/esm/plugins/kibana/types.js.map +0 -1
  1093. package/lib/esm/plugins/superset/host.js.map +0 -1
  1094. package/lib/esm/plugins/superset/index.js.map +0 -1
  1095. package/lib/esm/plugins/superset/installer.js.map +0 -1
  1096. package/lib/esm/plugins/superset/manifest.js.map +0 -1
  1097. package/lib/esm/plugins/superset/templates.js.map +0 -1
  1098. package/lib/esm/plugins/superset/types.js.map +0 -1
  1099. package/lib/esm/redis/RedisContextLock.js.map +0 -1
  1100. package/lib/esm/redis/RedisDispatch.js.map +0 -1
  1101. package/lib/esm/redis/RedisPaginator.js.map +0 -1
  1102. package/lib/esm/redis/RedisStatement.js.map +0 -1
  1103. package/lib/esm/redis/adapter.js.map +0 -1
  1104. package/lib/esm/redis/constants.js.map +0 -1
  1105. package/lib/esm/redis/handlers.js.map +0 -1
  1106. package/lib/esm/redis/index.js.map +0 -1
  1107. package/lib/esm/redis/serialization.js.map +0 -1
  1108. package/lib/esm/redis/types.js.map +0 -1
  1109. package/lib/esm/secrets/InfraCredentialBootstrap.js.map +0 -1
  1110. package/lib/esm/secrets/aws/AwsSecretEnvironment.js.map +0 -1
  1111. package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
  1112. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
  1113. package/lib/esm/secrets/aws/index.js.map +0 -1
  1114. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
  1115. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
  1116. package/lib/esm/secrets/azure/AzureSecretEnvironment.js.map +0 -1
  1117. package/lib/esm/secrets/azure/index.js.map +0 -1
  1118. package/lib/esm/secrets/core/ClientBasedSecretService.js.map +0 -1
  1119. package/lib/esm/secrets/core/SecretEnvironment.js.map +0 -1
  1120. package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
  1121. package/lib/esm/secrets/core/SecretName.js.map +0 -1
  1122. package/lib/esm/secrets/core/SecretReference.js.map +0 -1
  1123. package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
  1124. package/lib/esm/secrets/core/SecretService.js.map +0 -1
  1125. package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
  1126. package/lib/esm/secrets/core/index.js.map +0 -1
  1127. package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +0 -1
  1128. package/lib/esm/secrets/fs/FsSecretService.js.map +0 -1
  1129. package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +0 -1
  1130. package/lib/esm/secrets/fs/index.js.map +0 -1
  1131. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js.map +0 -1
  1132. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
  1133. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
  1134. package/lib/esm/secrets/gcp/index.js.map +0 -1
  1135. package/lib/esm/secrets/index.js.map +0 -1
  1136. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
  1137. package/lib/esm/secrets/model/ModelSecretEnvironment.js.map +0 -1
  1138. package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
  1139. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
  1140. package/lib/esm/secrets/model/Secret.js.map +0 -1
  1141. package/lib/esm/secrets/model/index.js.map +0 -1
  1142. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js.map +0 -1
  1143. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
  1144. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
  1145. package/lib/esm/secrets/onepassword/index.js.map +0 -1
  1146. package/lib/esm/secrets/vault/VaultSecretEnvironment.js.map +0 -1
  1147. package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
  1148. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
  1149. package/lib/esm/secrets/vault/index.js.map +0 -1
  1150. package/lib/esm/sftp/aws/AwsSftpEnvironment.js.map +0 -1
  1151. package/lib/esm/sftp/aws/AwsSftpService.js.map +0 -1
  1152. package/lib/esm/sftp/aws/index.js.map +0 -1
  1153. package/lib/esm/sftp/core/SftpEnvironment.js.map +0 -1
  1154. package/lib/esm/sftp/core/SftpSource.js.map +0 -1
  1155. package/lib/esm/sftp/core/index.js.map +0 -1
  1156. package/lib/esm/sftp/index.js.map +0 -1
  1157. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +0 -1
  1158. package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +0 -1
  1159. package/lib/esm/sftp/ssh2/index.js.map +0 -1
  1160. package/lib/esm/shared/environmentValue.js.map +0 -1
  1161. package/lib/esm/shared/http/HttpApiService.js.map +0 -1
  1162. package/lib/esm/shared/http/hermeticBoot.js.map +0 -1
  1163. package/lib/esm/shared/http/index.js.map +0 -1
  1164. package/lib/esm/shared/runtime.js.map +0 -1
  1165. package/lib/esm/user-requests/index.js.map +0 -1
  1166. package/lib/esm/utils.js.map +0 -1
@@ -581,4 +581,4 @@ export class ModelSecretService extends ClientBasedSecretService {
581
581
  return new SecretError("SECRET_PROVIDER_CONFLICT", `Provider error: ${message}`, err);
582
582
  }
583
583
  }
584
- //# sourceMappingURL=ModelSecretService.js.map
584
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvbW9kZWwvTW9kZWxTZWNyZXRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFDSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFrQiwyQkFBZ0I7QUFnQmhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSwyQkFBZ0I7QUFDbEUsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix3QkFBd0IsR0FFekIsMkJBQWdCO0FBQ2pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsb0JBQWlCO0FBQ2xDLE9BQU8sRUFLTCxVQUFVLEVBQ1Ysc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9DQUFpQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLDJDQUFzQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZFLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQztBQUVyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHdCQUd2QztJQUlDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFKRCxhQUFRLEdBQW1CLE9BQU8sQ0FBQztJQUs1QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLHFCQUFxQjtRQUM3QixNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFH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LFNBQVMsQ0FBQyxFQUNoQyxDQUFDO1lBQ0QsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsMEJBQTBCLEVBQzFCLHNCQUFzQixPQUFPLEVBQUUsRUFDL0IsR0FBRyxDQUNKLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsMEJBQTBCLEVBQzFCLG1CQUFtQixPQUFPLEVBQUUsRUFDNUIsR0FBRyxDQUNKLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvbW9kZWwvc2VydmljZVxuICogQHN1bW1hcnkgTW9kZWwtYmFja2VkIGVuY3J5cHRlZCBzZWNyZXQgc2VydmljZS5cbiAqIEBkZXNjcmlwdGlvbiBJbXBsZW1lbnRzIHRoZSBge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZX1gLCBhbiB1bmRlY29yYXRlZFxuICogYENsaWVudEJhc2VkU2VjcmV0U2VydmljZWAgdGhhdFxuICogcGVyc2lzdHMgQUVTLWVuY3J5cHRlZCBwYXlsb2FkcyBhcyBge0BsaW5rIFNlY3JldH1gIHJvd3MgdGhyb3VnaCBhXG4gKiBkZWNhZiBgUmVwb3NpdG9yeWAgKHRlbmFudC9vcmctdW5pdC9vd25lciBzY29waW5nIGluY2x1ZGVkKS4gRW5jcnlwdGlvblxuICoga2V5cyBkZXJpdmUgZnJvbSBhIG1hc3RlciBga2V5U2VjcmV0YCB2aWEgYENyeXB0b1NlcnZpY2VgOyBjb25maWd1cmF0aW9uXG4gKiBjb21lcyBmcm9tIHRoZSBgc2VjcmV0cy5tb2RlbGAgRW52aXJvbm1lbnQgc2xpY2Ugb3IgYW4gZXhwbGljaXQgYm9vdFxuICogY29uZmlnIChzZWUgYE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZ2ApLlxuICovXG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlY3JldFNlcnZpY2UsIFNlY3JldEVycm9yLCBTZWNyZXRQcm92aWRlciB9IGZyb20gXCIuLi9jb3JlXCI7XG5pbXBvcnQge1xuICBTZWNyZXROYW1lLFxuICBTZWNyZXRQYXlsb2FkLFxuICBTZWNyZXRSZWZlcmVuY2UsXG4gIFNlY3JldE1ldGFkYXRhLFxufSBmcm9tIFwiLi4vY29yZVwiO1xuaW1wb3J0IHtcbiAgU3RvcmVTZWNyZXRPcHRpb25zLFxuICBSZXRyaWV2ZVNlY3JldE9wdGlvbnMsXG4gIERlbGV0ZVNlY3JldE9wdGlvbnMsXG4gIEV4aXN0c1NlY3JldE9wdGlvbnMsXG4gIExpc3RTZWNyZXRzT3B0aW9ucyxcbiAgU2VjcmV0TWV0YWRhdGFPcHRpb25zLFxuICBSb3RhdGVTZWNyZXRPcHRpb25zLFxufSBmcm9tIFwiLi4vY29yZVwiO1xuaW1wb3J0IHsgdmFsaWRhdGVTZWNyZXROYW1lLCBub3JtYWxpemVTZWNyZXROYW1lIH0gZnJvbSBcIi4uL2NvcmVcIjtcbmltcG9ydCB7XG4gIHNlcmlhbGl6ZVNlY3JldFBheWxvYWQsXG4gIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZCxcbiAgdHlwZSBTZXJpYWxpemVkU2VjcmV0UGF5bG9hZCxcbn0gZnJvbSBcIi4uL2NvcmVcIjtcbmltcG9ydCB7IFNlY3JldCB9IGZyb20gXCIuL1NlY3JldFwiO1xuaW1wb3J0IHtcbiAgQ29udGV4dCxcbiAgQ29udGV4dExvY2ssXG4gIENvbnRleHR1YWxBcmdzLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIFJlcG9zaXRvcnksXG4gIHJlc29sdmVUcmFuc2FjdGlvbkxvY2ssXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4vTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnXCI7XG5pbXBvcnQgeyBNb2RlbFNlY3JldEVudmlyb25tZW50IH0gZnJvbSBcIi4vTW9kZWxTZWNyZXRFbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgZW52U3RyaW5nIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlXCI7XG5pbXBvcnQgeyBDb25kaXRpb24sIE9yZGVyRGlyZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDcnlwdG9TZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jcnlwdG8vaW50ZWdyYXRpb24vc2VydmljZXMvY3J5cHRvXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbmNvbnN0IERFRkFVTFRfS0VZX0lEID0gXCJkZWZhdWx0LWtleVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNb2RlbC1iYWNrZWQgZW5jcnlwdGVkIHNlY3JldCBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBTdG9yZXMgZWFjaCBzZWNyZXQgYXMgYSBge0BsaW5rIFNlY3JldH1gIHJvdyAoZW5jcnlwdGVkIHBheWxvYWQsXG4gKiBrZXkgaWQvaXYvc2FsdCBtZXRhZGF0YSwgdmVyc2lvbiwgZW5hYmxlbWVudCBmbGFnLCBhbmQgb3B0aW9uYWxcbiAqIHRlbmFudC9vcmctdW5pdC9vd25lciBzY29wZSkgdGhyb3VnaCB0aGUgcmVwb3NpdG9yeSBib290ZWQgYXMgdGhlIHNlcnZpY2VcbiAqIGNsaWVudC4gTmFtZXMgYXJlIHZhbGlkYXRlZCBhbmQgbm9ybWFsaXplZCBiZWZvcmUgcGVyc2lzdGVuY2U7XG4gKiBgKG5hbWUsIHZlcnNpb24pYCBpcyB1bmlxdWUgKGVuZm9yY2VkIGJ5IGEgYFNFQ1JFVF9BTFJFQURZX0VYSVNUU2BcbiAqIGNvbmZsaWN0IGluIGBzdG9yZWAvYHJvdGF0ZWAgYW5kIGJhY2tlZCBieSB0aGUgYHVxX3NlY3JldHNfbmFtZV92ZXJzaW9uYFxuICogZGF0YWJhc2UgaW5kZXgpOyByZXRyaWV2YWwgb25seSBjb25zaWRlcnMgZW5hYmxlZCByb3dzLCBzdXBwb3J0cyB2ZXJzaW9uXG4gKiBwaW5uaW5nLCBhbmQgcmVzb2x2ZXMgbXVsdGlwbGUgbWF0Y2hlcyBkZXRlcm1pbmlzdGljYWxseSBieSBgdXBkYXRlZEF0XG4gKiBERVNDYC4gRGVsZXRlIGlzIHNvZnQgYnkgZGVmYXVsdCAoc2V0cyBgZW5hYmxlZDogZmFsc2VgKSB1bmxlc3NcbiAqIGBvcHRpb25zLmZvcmNlYCBpcyBzZXQuIEVycm9ycyBmcm9tIHRoZSByZXBvc2l0b3J5IGFyZSB0cmFuc2xhdGVkIGludG9cbiAqIHR5cGVkIHtAbGluayBTZWNyZXRFcnJvcn1zIGJ5IGBwYXJzZUVycm9yYC5cbiAqXG4gKiBVbmRlY29yYXRlZCBhbmQgRW52aXJvbm1lbnQtY29uZmlndXJhYmxlXG4gKiB0aHJvdWdoIHRoZSBgc2VjcmV0cy5tb2RlbGAgc2xpY2U7IHRoZSBjcmVkZW50aWFsIHNlcnZpY2VcbiAqIChgQ3JlZGVudGlhbFNlcnZpY2VgKSBkZWxlZ2F0ZXMgdXNlci9ydW50aW1lIGNyZWRlbnRpYWwgc3RvcmFnZSB0byB0aGlzXG4gKiBzZXJ2aWNlLlxuICogQGNsYXNzIE1vZGVsU2VjcmV0U2VydmljZVxuICogQGNhdGVnb3J5IFNlY3JldHNcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgTW9kZWxTZWNyZXRTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvc2VjcmV0c1wiO1xuICpcbiAqIGNvbnN0IG1vZGVsU2VjcmV0cyA9IGF3YWl0IG5ldyBNb2RlbFNlY3JldFNlcnZpY2UoKS5ib290KHtcbiAqICAga2V5U2VjcmV0OiBcIm1vZGVsLW1hc3Rlci1rZXlcIixcbiAqIH0pO1xuICogYXdhaXQgbW9kZWxTZWNyZXRzLnN0b3JlKFwibXktc2VjcmV0XCIsIHsgdmFsdWU6IFwiczNjcjN0XCIgfSk7XG4gKiBjb25zdCBwYXlsb2FkID0gYXdhaXQgbW9kZWxTZWNyZXRzLnJldHJpZXZlPHsgdmFsdWU6IHN0cmluZyB9PihcIm15LXNlY3JldFwiKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgTW9kZWxTZWNyZXRTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZWNyZXRTZXJ2aWNlPFxuICBSZXBvc2l0b3J5PFNlY3JldCwgYW55PixcbiAgTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnXG4+IHtcbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFNlY3JldFByb3ZpZGVyID0gXCJtb2RlbFwiO1xuICBwcml2YXRlIGNyeXB0b1NlcnZpY2UhOiBDcnlwdG9TZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgbW9kZWwgc2VjcmV0IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgRW52aXJvbm1lbnRcbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGBzZWNyZXRzLm1vZGVsYCBFbnZpcm9ubWVudCBzbGljZSBhbmQgcmV0dXJucyBhXG4gICAqIGBNb2RlbFNlY3JldFNlcnZpY2VDb25maWdgIHdoZW4gYSBga2V5U2VjcmV0YCBpcyBjb25maWd1cmVkOyByZXR1cm5zXG4gICAqIGB1bmRlZmluZWRgIG90aGVyd2lzZSwgbGV0dGluZyBib290IGZhbGwgYmFjayB0byBleHBsaWNpdCBhcmd1bWVudHMuXG4gICAqIEByZXR1cm5zIHtNb2RlbFNlY3JldFNlcnZpY2VDb25maWcgfCB1bmRlZmluZWR9IFRoZSBFbnZpcm9ubWVudC1kZXJpdmVkIGNvbmZpZ3VyYXRpb24sIG9yIGB1bmRlZmluZWRgLlxuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RlY3RlZCBjb25maWdGcm9tRW52aXJvbm1lbnQoKTogTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlbnYgPSBNb2RlbFNlY3JldEVudmlyb25tZW50LnNlY3JldHMubW9kZWw7XG4gICAgY29uc3Qga2V5U2VjcmV0ID0gZW52U3RyaW5nKGVudj8ua2V5U2VjcmV0KTtcbiAgICBpZiAoIWtleVNlY3JldCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvdmlkZXI6IFwibW9kZWxcIixcbiAgICAgIGtleVNlY3JldCxcbiAgICAgIGtleUlkOiBlbnZTdHJpbmcoZW52LmtleUlkKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCb290cyB0aGUgY3J5cHRvIHNlcnZpY2UgYW5kIHJlc29sdmVzIHRoZSBiYWNraW5nIHJlcG9zaXRvcnlcbiAgICogQHN1bW1hcnkgQWNjZXB0cyB0aGUgY29uZmlndXJhdGlvbiAoZXhwbGljaXQgYXJncywgbWVyZ2VkIHdpdGggdGhlXG4gICAqIEVudmlyb25tZW50IHNsaWNlIGJ5IHRoZSBiYXNlKSBhbmQgYW4gb3B0aW9uYWwgYFJlcG9zaXRvcnk8U2VjcmV0PmAgYXMgdGhlXG4gICAqIHNlY29uZCBhcmd1bWVudDsgd2hlbiBhYnNlbnQsIGNyZWF0ZXMgb25lIHZpYSBgUmVwb3NpdG9yeS5mb3JNb2RlbChTZWNyZXQpYC5cbiAgICogUmV0dXJucyB0aGUgY29uZmlnIGFuZCByZXBvc2l0b3J5IGFzIHRoZSBzZXJ2aWNlIGNsaWVudC5cbiAgICogQHBhcmFtIHtDb250ZXh0dWFsQXJnc30gYXJncyAtIENvbmZpZ3VyYXRpb24gYW5kIG9wdGlvbmFsIGBSZXBvc2l0b3J5YC9gQ29udGV4dGAgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7Y29uZmlnOiBNb2RlbFNlY3JldFNlcnZpY2VDb25maWcsIGNsaWVudDogUmVwb3NpdG9yeTxTZWNyZXQsIGFueT59Pn0gVGhlIHJlc29sdmVkIGNvbmZpZyBhbmQgcmVwb3NpdG9yeSBjbGllbnQuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT4pOiBQcm9taXNlPHtcbiAgICBjb25maWc6IE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZztcbiAgICBjbGllbnQ6IFJlcG9zaXRvcnk8U2VjcmV0LCBhbnk+O1xuICB9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5nZXRDb25maWdGcm9tQXJnczxNb2RlbFNlY3JldFNlcnZpY2VDb25maWc+KC4uLmFyZ3MpO1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPVxuICAgICAgKGFyZ3NbMV0gYXMgUmVwb3NpdG9yeTxTZWNyZXQsIGFueT4gfCB1bmRlZmluZWQpIHx8XG4gICAgICBSZXBvc2l0b3J5LmZvck1vZGVsPFNlY3JldCwgUmVwb3NpdG9yeTxTZWNyZXQsIGFueT4+KFNlY3JldCk7XG4gICAgdGhpcy5jcnlwdG9TZXJ2aWNlID0gbmV3IENyeXB0b1NlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuYm9vdCh7fSk7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQ6IHJlcG9zaXRvcnkgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRW5jcnlwdHMgYW5kIHBlcnNpc3RzIGEgc2VjcmV0IHJvd1xuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYW5kIG5vcm1hbGl6ZXMgdGhlIG5hbWUsIHNlcmlhbGl6ZXMgdGhlIHBheWxvYWQsIGFuZFxuICAgKiBlbmNyeXB0cyBpdCB3aXRoIGEga2V5IGRlcml2ZWQgZnJvbSB0aGUgbWFzdGVyIGBrZXlTZWNyZXRgLCBlbWJlZGRpbmcgdGhlXG4gICAqIGtleSBpZC9pdi9zYWx0IGluIHRoZSByb3cncyBgZW5jcnlwdGlvbmAgbWV0YWRhdGEuIFRoZSByb3cgY2FycmllcyB0aGVcbiAgICogb3B0aW9uYWwgdGVuYW50L29yZy11bml0L293bmVyIHNjb3BpbmcgYW5kIHZlcnNpb24uIGAobmFtZSwgdmVyc2lvbilgIGlzXG4gICAqIHVuaXF1ZTogYW4gYXBwbGljYXRpb24tbGV2ZWwgcHJlLWNoZWNrIHJlamVjdHMgYSBkdXBsaWNhdGUgY29tYmluYXRpb25cbiAgICogd2l0aCBhIGBTRUNSRVRfQUxSRUFEWV9FWElTVFNgIHtAbGluayBTZWNyZXRFcnJvcn0gYmVmb3JlIHRoZSBpbnNlcnQsIGFuZFxuICAgKiB0aGUgYHVxX3NlY3JldHNfbmFtZV92ZXJzaW9uYCBkYXRhYmFzZSBpbmRleCAod2hpY2ggdHJlYXRzIGBOVUxMYFxuICAgKiB2ZXJzaW9ucyBhcyBgJydgKSBiYWNrc3RvcHMgdGhlIHNhbWUgcnVsZSBhZ2FpbnN0IGNvbmN1cnJlbnQgd3JpdGVycy5cbiAgICogQHRlbXBsYXRlIFQgLSBUaGUgc2VjcmV0IHBheWxvYWQgdHlwZS5cbiAgICogQHBhcmFtIHtTZWNyZXROYW1lfSBuYW1lIC0gVGhlIHNlY3JldCBuYW1lICh2YWxpZGF0ZWQgYW5kIG5vcm1hbGl6ZWQpLlxuICAgKiBAcGFyYW0ge1R9IHZhbHVlIC0gVGhlIHBheWxvYWQgdG8gZW5jcnlwdCBhbmQgc3RvcmUuXG4gICAqIEBwYXJhbSB7U3RvcmVTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCBjb250ZW50IHR5cGUsIHRhZ3MsIHZlcnNpb24sIGFuZCB0ZW5hbnQvb3JnL293bmVyIHNjb3BpbmcuXG4gICAqIEBwYXJhbSB7TWF5YmVDb250ZXh0dWFsQXJnfSBhcmdzIC0gT3B0aW9uYWwgdHJhaWxpbmcgZGVjYWYgYENvbnRleHRgIGZvcndhcmRlZCB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICogQHJldHVybnMge1Byb21pc2U8U2VjcmV0UmVmZXJlbmNlPn0gQSByZWZlcmVuY2UgdG8gdGhlIHBlcnNpc3RlZCBzZWNyZXQuXG4gICAqIEB0aHJvd3Mge1NlY3JldEVycm9yfSBgU0VDUkVUX0FMUkVBRFlfRVhJU1RTYCB3aGVuIGEgcm93IHdpdGggdGhlIHNhbWUgbm9ybWFsaXplZCBuYW1lIGFuZCB2ZXJzaW9uIGFscmVhZHkgZXhpc3RzLCBvciBgU0VDUkVUX05PVF9GT1VORGAvYFNFQ1JFVF9QUk9WSURFUl9DT05GTElDVGAgd2hlbiB0aGUgbmFtZSBpcyBpbnZhbGlkIG9yIHRoZSByZXBvc2l0b3J5IGluc2VydCBmYWlscy5cbiAgICovXG4gIGFzeW5jIHN0b3JlPFQgZXh0ZW5kcyBTZWNyZXRQYXlsb2FkID0gU2VjcmV0UGF5bG9hZD4oXG4gICAgbmFtZTogU2VjcmV0TmFtZSxcbiAgICB2YWx1ZTogVCxcbiAgICBvcHRpb25zOiBTdG9yZVNlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldFJlZmVyZW5jZT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzdG9yZVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5zdG9yZVxuICAgICk7XG4gICAgbG9nLnZlcmJvc2UoYFN0b3Jpbmcgc2VjcmV0ICR7bmFtZX1gKTtcbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc2VyaWFsaXplU2VjcmV0UGF5bG9hZCh2YWx1ZSk7XG4gICAgY29uc3QgZGVyaXZlZEtleSA9IGF3YWl0IHRoaXMuY3J5cHRvU2VydmljZS5kZXJpdmVLZXlGcm9tU2VjcmV0KFxuICAgICAgdGhpcy5jb25maWcua2V5U2VjcmV0IGFzIHN0cmluZ1xuICAgICk7XG4gICAgY29uc3QgZXh0cmFjdGVkID0gdGhpcy5jcnlwdG9TZXJ2aWNlLmV4dHJhY3RLZXlGcm9tRGVyaXZlZEtleShkZXJpdmVkS2V5KTtcbiAgICBjb25zdCB7IGVuY3J5cHRlZERhdGEsIG1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZW5jcnlwdFBheWxvYWQoXG4gICAgICBKU09OLnN0cmluZ2lmeShzZXJpYWxpemVkKSxcbiAgICAgIHRoaXMuY29uZmlnLmtleUlkIHx8IERFRkFVTFRfS0VZX0lELFxuICAgICAgZXh0cmFjdGVkLmtleVxuICAgICk7XG5cbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHNlY3JldCA9IG5ldyBTZWNyZXQoe1xuICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgIGVuY3J5cHRlZFBheWxvYWQ6IGVuY3J5cHRlZERhdGEsXG4gICAgICBlbmNyeXB0aW9uOiB7XG4gICAgICAgIGtleUlkOiBtZXRhZGF0YS5rZXlJZCxcbiAgICAgICAgaXY6IG1ldGFkYXRhLml2LFxuICAgICAgICBzYWx0OiBleHRyYWN0ZWQuc2FsdCxcbiAgICAgIH0sXG4gICAgICBjb250ZW50VHlwZTogb3B0aW9ucy5jb250ZW50VHlwZSxcbiAgICAgIHRhZ3M6IG9wdGlvbnMudGFncyxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICB2ZXJzaW9uOiBvcHRpb25zLnZlcnNpb24sXG4gICAgICB0ZW5hbnRJZDogb3B0aW9ucy50ZW5hbnRJZCxcbiAgICAgIG9yZ1VuaXRJZDogb3B0aW9ucy5vcmdVbml0SWQsXG4gICAgICBvd25lclByaW5jaXBhbElkOiBvcHRpb25zLm93bmVyUHJpbmNpcGFsSWQsXG4gICAgfSk7XG5cbiAgICBjb25zdCB0YXJnZXRWZXJzaW9uID0gb3B0aW9ucy52ZXJzaW9uID8/IFwiXCI7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmNsaWVudFxuICAgICAgLnNlbGVjdCgpXG4gICAgICAud2hlcmUoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpKVxuICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgY29uc3QgZHVwbGljYXRlID0gZXhpc3Rpbmcuc29tZShcbiAgICAgIChyb3c6IFNlY3JldCkgPT4gKHJvdy52ZXJzaW9uID8/IFwiXCIpID09PSB0YXJnZXRWZXJzaW9uXG4gICAgKTtcbiAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX0FMUkVBRFlfRVhJU1RTXCIsXG4gICAgICAgIGBTZWNyZXQgJHtKU09OLnN0cmluZ2lmeShub3JtYWxpemVkTmFtZSl9JHtcbiAgICAgICAgICB0YXJnZXRWZXJzaW9uID8gYCB2ZXJzaW9uICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0VmVyc2lvbil9YCA6IFwiXCJcbiAgICAgICAgfSBhbHJlYWR5IGV4aXN0c2BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmNyZWF0ZShzZWNyZXQsIC4uLmN0eEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgIG5hbWU6IG5vcm1hbGl6ZWROYW1lLFxuICAgICAgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgY3JlYXRlZEF0OiBub3cudG9JU09TdHJpbmcoKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMsIGRlY3J5cHRzLCBhbmQgZGVzZXJpYWxpemVzIGFuIGVuYWJsZWQgc2VjcmV0IHJvd1xuICAgKiBAc3VtbWFyeSBRdWVyaWVzIHRoZSBuZXdlc3QgbWF0Y2hpbmcgZW5hYmxlZCByb3cgKGJ5IG5vcm1hbGl6ZWQgbmFtZSBhbmQsXG4gICAqIG9wdGlvbmFsbHksIHZlcnNpb24pLCByZS1kZXJpdmVzIHRoZSBrZXkgdXNpbmcgdGhlIHJvdydzIHNhbHQsIGFuZCBkZWNyeXB0c1xuICAgKiB0aGUgcGF5bG9hZC4gUm93cyBhcmUgb3JkZXJlZCBieSBgdXBkYXRlZEF0IERFU0NgLCBzbyB3aGVuIHNldmVyYWwgcm93c1xuICAgKiBzaGFyZSBhIG5hbWUgdGhlIG1vc3QgcmVjZW50bHkgdXBkYXRlZCBlbmFibGVkIHJvdyBpcyByZXNvbHZlZFxuICAgKiBkZXRlcm1pbmlzdGljYWxseS4gVGhlIHJlcG9zaXRvcnkgU0VMRUNUIHJ1bnMgaW5zaWRlIGEgcHJpbmNpcGFsLWJvdW5kXG4gICAqIHRyYW5zYWN0aW9uIChzZWUge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZS53aXRoaW5QcmluY2lwYWxUcmFuc2FjdGlvbn0pOlxuICAgKiBpdCBqb2lucyBhbiBpbi1mbGlnaHQgYHRyYW5zYWN0aW9uTG9ja2Agb24gdGhlIGNvbnRleHQgb3IgYmVnaW5zIG9uZSxcbiAgICogYmluZGluZyB0aGUgY29udGV4dCdzIHByaW5jaXBhbCB0byBgYXBwLnByaW5jaXBhbF9pZGAgb24gVHlwZU9STSBhZGFwdGVyc1xuICAgKiBzbyBuYW1lc3BhY2UgUkxTIGFwcGxpZXMgdG8gdGhlIHJlYWQuIE1pc3Npbmcgcm93cyB0aHJvd1xuICAgKiB7QGxpbmsgTm90Rm91bmRFcnJvcn07IGRlY3J5cHRpb24gYW5kIEpTT04gcGFyc2UgZmFpbHVyZXMgdGhyb3dcbiAgICogYEludGVybmFsRXJyb3JgLlxuICAgKiBAdGVtcGxhdGUgVCAtIFRoZSBzZWNyZXQgcGF5bG9hZCB0eXBlLlxuICAgKiBAcGFyYW0ge1NlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2V9IG5hbWVPclJlZiAtIFRoZSBzZWNyZXQgbmFtZSBvciByZWZlcmVuY2UuXG4gICAqIEBwYXJhbSB7UmV0cmlldmVTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCB2ZXJzaW9uIGZpbHRlci5cbiAgICogQHBhcmFtIHtNYXliZUNvbnRleHR1YWxBcmd9IGFyZ3MgLSBPcHRpb25hbCB0cmFpbGluZyBkZWNhZiBgQ29udGV4dGAgZm9yd2FyZGVkIHRvIHRoZSByZXBvc2l0b3J5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn0gVGhlIGRlY3J5cHRlZCBwYXlsb2FkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIG5vIGVuYWJsZWQgc2VjcmV0IG1hdGNoZXMgdGhlIG5hbWUvdmVyc2lvbi5cbiAgICovXG4gIGFzeW5jIHJldHJpZXZlPFQgZXh0ZW5kcyBTZWNyZXRQYXlsb2FkID0gU2VjcmV0UGF5bG9hZD4oXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIG9wdGlvbnM6IFJldHJpZXZlU2VjcmV0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmV0cmlldmVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnJldHJpZXZlKTtcbiAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgIGxvZy52ZXJib3NlKGBSZXRyaWV2aW5nIHNlY3JldCAke25hbWVTdHJ9YCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuICAgIGxldCB2ZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICAgIHZlcnNpb24gPSBvcHRpb25zLnZlcnNpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICAgIHZlcnNpb24gPSBuYW1lT3JSZWYudmVyc2lvbjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIGxldCBjb25kaXRpb24gPSBDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwibmFtZVwiKS5lcShub3JtYWxpemVkTmFtZSk7XG5cbiAgICBpZiAodmVyc2lvbikge1xuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwidmVyc2lvblwiKS5lcSh2ZXJzaW9uKSk7XG4gICAgfVxuXG4gICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwiZW5hYmxlZFwiKS5lcSh0cnVlKSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy53aXRoaW5QcmluY2lwYWxUcmFuc2FjdGlvbihjdHgsIChsb2NrKSA9PlxuICAgICAgdGhpcy5jbGllbnRcbiAgICAgICAgLm92ZXJyaWRlKHsgdHJhbnNhY3Rpb25Mb2NrOiBsb2NrIH0pXG4gICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAud2hlcmUoY29uZGl0aW9uKVxuICAgICAgICAub3JkZXJCeShbXCJ1cGRhdGVkQXRcIiwgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncylcbiAgICApO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gcmVzdWx0c1swXTtcblxuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBTZWNyZXQgXCIke25vcm1hbGl6ZWROYW1lfVwiIG5vdCBmb3VuZGApO1xuICAgIH1cblxuICAgIGNvbnN0IGRlcml2ZWRLZXkgPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZGVyaXZlS2V5RnJvbVNlY3JldChcbiAgICAgIHRoaXMuY29uZmlnLmtleVNlY3JldCBhcyBzdHJpbmcsXG4gICAgICBleGlzdGluZy5lbmNyeXB0aW9uPy5zYWx0XG4gICAgKTtcbiAgICBsZXQgZGVjcnlwdGVkVmFsdWU6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgZGVjcnlwdGVkVmFsdWUgPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZGVjcnlwdFBheWxvYWQoXG4gICAgICAgIGV4aXN0aW5nLmVuY3J5cHRlZFBheWxvYWQsXG4gICAgICAgIHRoaXMuY3J5cHRvU2VydmljZS5leHRyYWN0S2V5RnJvbURlcml2ZWRLZXkoZGVyaXZlZEtleSkua2V5XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBkZWNyeXB0IHNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCI6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHBheWxvYWQ6IFNlcmlhbGl6ZWRTZWNyZXRQYXlsb2FkO1xuICAgIHRyeSB7XG4gICAgICBwYXlsb2FkID0gSlNPTi5wYXJzZShkZWNyeXB0ZWRWYWx1ZSkgYXMgU2VyaWFsaXplZFNlY3JldFBheWxvYWQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGRlc2VyaWFsaXplIHNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCI6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZChwYXlsb2FkKSBhcyBUO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSdW5zIGEgcmVwb3NpdG9yeSBvcGVyYXRpb24gaW5zaWRlIGEgcHJpbmNpcGFsLWJvdW5kIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IE1pcnJvcnMgY29yZSdzIGBAdHJhbnNhY3Rpb25hbCgpYCBwcm94eSBmb3Igc2luZ2xlIHJlYWRzOiByZXVzZXNcbiAgICogdGhlIGB0cmFuc2FjdGlvbkxvY2tgIGFscmVhZHkgY2FjaGVkIG9uIHRoZSBjb250ZXh0IChuZXN0ZWQgY2FsbCksIG9yXG4gICAqIHJlc29sdmVzIGEgZnJlc2ggbG9jayBmb3IgdGhlIHNlcnZpY2UgY2xpZW50IHZpYSBgcmVzb2x2ZVRyYW5zYWN0aW9uTG9ja2BcbiAgICogYW5kIGNhbGxzIGBiZWdpbihjb250ZXh0KWAgLSB3aGljaCwgb24gYSBUeXBlT1JNIGFkYXB0ZXIsIGJpbmRzIHRoZVxuICAgKiBjb250ZXh0J3MgcHJpbmNpcGFsIHRvIGBhcHAucHJpbmNpcGFsX2lkYCBmb3IgdGhlIG5ldyB0cmFuc2FjdGlvbi5cbiAgICogSW5jcmVtZW50cyB0aGUgbG9jayBkZXB0aCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBvcGVyYXRpb247IG9uIGZhaWx1cmUsXG4gICAqIHJvbGxzIGJhY2sgYW5kIHplcm9lcyB0aGUgZGVwdGggKHNraXBwaW5nIGEgcmVkdW5kYW50IHJvbGxiYWNrIHdoZW4gYW5cbiAgICogaW5uZXIgZnJhbWUgYWxyZWFkeSBlbmRlZCB0aGUgdHJhbnNhY3Rpb24pIGFuZCByZXRocm93cyB0aGUgb3JpZ2luYWxcbiAgICogZXJyb3I7IG9uIHN1Y2Nlc3MsIGNvbW1pdHMgd2hlbiB0aGUgb3V0ZXJtb3N0IGZyYW1lIGNvbXBsZXRlcy5cbiAgICogQHRlbXBsYXRlIFIgLSBUaGUgb3BlcmF0aW9uIHJlc3VsdCB0eXBlLlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgLSBUaGUgcmVxdWVzdCBjb250ZXh0LCBjYXJyeWluZyBhbnkgaW4tZmxpZ2h0IHRyYW5zYWN0aW9uIGxvY2suXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oQ29udGV4dExvY2spOiBQcm9taXNlPFI+fSBvcGVyYXRpb24gLSBUaGUgcmVwb3NpdG9yeSBvcGVyYXRpb24gdG8gcnVuLCByZWNlaXZpbmcgdGhlIGFjdGl2ZSBsb2NrLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSPn0gVGhlIG9wZXJhdGlvbiByZXN1bHQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIGZpbmFsIGNvbW1pdCBmYWlsczsgb3BlcmF0aW9uIGVycm9ycyBhcmUgcmV0aHJvd24gYWZ0ZXIgcm9sbGJhY2suXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHdpdGhpblByaW5jaXBhbFRyYW5zYWN0aW9uPFI+KFxuICAgIGNvbnRleHQ6IENvbnRleHQ8YW55PixcbiAgICBvcGVyYXRpb246IChsb2NrOiBDb250ZXh0TG9jaykgPT4gUHJvbWlzZTxSPlxuICApOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJ0cmFuc2FjdGlvbkxvY2tcIikgYXNcbiAgICAgIHwgQ29udGV4dExvY2tcbiAgICAgIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxvY2sgPSBleGlzdGluZyA/PyByZXNvbHZlVHJhbnNhY3Rpb25Mb2NrKHRoaXMuY2xpZW50KTtcbiAgICBsb2NrLmRlcHRoKys7XG4gICAgaWYgKCFleGlzdGluZykge1xuICAgICAgYXdhaXQgbG9jay5iZWdpbihjb250ZXh0KTtcbiAgICAgIGNvbnRleHQuY2FjaGUucHV0KFwidHJhbnNhY3Rpb25Mb2NrXCIsIGxvY2spO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0OiBSO1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBvcGVyYXRpb24obG9jayk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnN0IGFscmVhZHlFbmRlZCA9IGxvY2suZGVwdGggPT09IDA7XG4gICAgICBsb2NrLmRlcHRoID0gMDtcbiAgICAgIGlmICghYWxyZWFkeUVuZGVkKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgbG9jay5yb2xsYmFjayhlcnJvciBhcyBFcnJvciwgY29udGV4dCk7XG4gICAgICAgIH0gY2F0Y2ggKHJvbGxiYWNrRXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICB2b2lkIHJvbGxiYWNrRXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICBsb2NrLmRlcHRoLS07XG4gICAgaWYgKGxvY2suZGVwdGggPT09IDApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGxvY2suY29tbWl0KGNvbnRleHQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBjb21taXQgdHJhbnNhY3Rpb246ICR7ZXJyb3J9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgKG9yIGRpc2FibGVzKSBhIHNlY3JldCByb3dcbiAgICogQHN1bW1hcnkgU29mdC1kZWxldGVzIGJ5IGRlZmF1bHQ6IHRoZSByb3cgaXMgZGlzYWJsZWQgYW5kIHN0YW1wZWQgd2l0aCBhXG4gICAqIG5ldyBgdXBkYXRlZEF0YC4gV2l0aCBgb3B0aW9ucy5mb3JjZWAsIHRoZSByb3cgaXMgaGFyZC1kZWxldGVkIGZyb20gdGhlXG4gICAqIHJlcG9zaXRvcnkuIFJvd3MgYXJlIG9yZGVyZWQgYnkgYHVwZGF0ZWRBdCBERVNDYCwgc28gdGhlIG1vc3QgcmVjZW50bHlcbiAgICogdXBkYXRlZCBtYXRjaGluZyByb3cgaXMgcmVzb2x2ZWQgZGV0ZXJtaW5pc3RpY2FsbHkuIEEgbWlzc2luZyBzZWNyZXRcbiAgICogcmVzb2x2ZXMgc2lsZW50bHkuXG4gICAqIEBwYXJhbSB7U2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZX0gbmFtZU9yUmVmIC0gVGhlIHNlY3JldCBuYW1lIG9yIHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHtEZWxldGVTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCB2ZXJzaW9uIGZpbHRlciBhbmQgYGZvcmNlYCBoYXJkLWRlbGV0ZSBmbGFnLlxuICAgKiBAcGFyYW0ge01heWJlQ29udGV4dHVhbEFyZ30gYXJncyAtIE9wdGlvbmFsIHRyYWlsaW5nIGRlY2FmIGBDb250ZXh0YCBmb3J3YXJkZWQgdG8gdGhlIHJlcG9zaXRvcnkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBSZXNvbHZlcyBvbmNlIHRoZSByb3cgaXMgZGVsZXRlZCBvciBkaXNhYmxlZC5cbiAgICovXG4gIGFzeW5jIGRlbGV0ZShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgb3B0aW9uczogRGVsZXRlU2VjcmV0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuZGVsZXRlXG4gICAgKTtcbiAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgIGxvZy52ZXJib3NlKGBEZWxldGluZyBzZWNyZXQgJHtuYW1lU3RyfWApO1xuXG4gICAgbGV0IG5hbWU6IHN0cmluZztcblxuICAgIGlmICh0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmO1xuICAgIH0gZWxzZSB7XG4gICAgICBuYW1lID0gbmFtZU9yUmVmLm5hbWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlU2VjcmV0TmFtZShuYW1lKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVNlY3JldE5hbWUobmFtZSk7XG5cbiAgICBsZXQgZmlsdGVyID0gQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpO1xuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zLnZlcnNpb247XG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmNsaWVudFxuICAgICAgLnNlbGVjdCgpXG4gICAgICAud2hlcmUoZmlsdGVyKVxuICAgICAgLm9yZGVyQnkoW1widXBkYXRlZEF0XCIsIE9yZGVyRGlyZWN0aW9uLkRTQ10pXG4gICAgICAuZXhlY3V0ZSguLi5jdHhBcmdzKTtcbiAgICBjb25zdCBleGlzdGluZyA9IHJlc3VsdHNbMF07XG5cbiAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZm9yY2UpIHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZShleGlzdGluZy5pZCwgLi4uY3R4QXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLmVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIGV4aXN0aW5nLnVwZGF0ZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC51cGRhdGUoZXhpc3RpbmcsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2hlY2tzIHdoZXRoZXIgYW4gZW5hYmxlZCBzZWNyZXQgZXhpc3RzIChvcHRpb25hbGx5IGF0IGEgdmVyc2lvbilcbiAgICogQHN1bW1hcnkgQ291bnRzIGVuYWJsZWQgcm93cyBtYXRjaGluZyB0aGUgbm9ybWFsaXplZCBuYW1lIChwbHVzIGFueVxuICAgKiByZXF1ZXN0ZWQgdmVyc2lvbikgYW5kIHJldHVybnMgd2hldGhlciB0aGUgY291bnQgaXMgcG9zaXRpdmUuXG4gICAqIEBwYXJhbSB7U2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZX0gbmFtZU9yUmVmIC0gVGhlIHNlY3JldCBuYW1lIG9yIHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHtFeGlzdHNTZWNyZXRPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCB2ZXJzaW9uIGZpbHRlci5cbiAgICogQHBhcmFtIHtNYXliZUNvbnRleHR1YWxBcmd9IGFyZ3MgLSBPcHRpb25hbCB0cmFpbGluZyBkZWNhZiBgQ29udGV4dGAgZm9yd2FyZGVkIHRvIHRoZSByZXBvc2l0b3J5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gYHRydWVgIHdoZW4gYXQgbGVhc3Qgb25lIGVuYWJsZWQgcm93IG1hdGNoZXMuXG4gICAqL1xuICBhc3luYyBleGlzdHMoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIG9wdGlvbnM6IEV4aXN0c1NlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZXhpc3RzXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmV4aXN0c1xuICAgICk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgQ2hlY2tpbmcgaWYgc2VjcmV0ICR7bmFtZVN0cn0gZXhpc3RzYCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIGxldCBmaWx0ZXIgPSBDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwibmFtZVwiKS5lcShub3JtYWxpemVkTmFtZSk7XG4gICAgZmlsdGVyID0gZmlsdGVyLmFuZChDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwiZW5hYmxlZFwiKS5lcSh0cnVlKSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID1cbiAgICAgIG9wdGlvbnMudmVyc2lvbiA/P1xuICAgICAgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwib2JqZWN0XCIgPyBuYW1lT3JSZWYudmVyc2lvbiA6IHVuZGVmaW5lZCk7XG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgdGhpcy5jbGllbnQuY291bnQoKS53aGVyZShmaWx0ZXIpLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG5cbiAgICByZXR1cm4gY291bnQgPiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBzZWNyZXQgbWV0YWRhdGEgYWNyb3NzIHN0b3JlZCByb3dzXG4gICAqIEBzdW1tYXJ5IFNlbGVjdHMgcm93cyBmaWx0ZXJlZCBieSB0aGUgYGVuYWJsZWRgIGZsYWcgKHdoZW4gc3VwcGxpZWQpIGFuZFxuICAgKiBtYXBzIHRoZW0gdG8gYFNlY3JldE1ldGFkYXRhYCByZWNvcmRzIChubyBwYXlsb2FkcykuXG4gICAqIEBwYXJhbSB7TGlzdFNlY3JldHNPcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25hbCBgZW5hYmxlZGAgZmlsdGVyLlxuICAgKiBAcGFyYW0ge01heWJlQ29udGV4dHVhbEFyZ30gYXJncyAtIE9wdGlvbmFsIHRyYWlsaW5nIGRlY2FmIGBDb250ZXh0YCBmb3J3YXJkZWQgdG8gdGhlIHJlcG9zaXRvcnkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFNlY3JldE1ldGFkYXRhW10+fSBNZXRhZGF0YSBmb3IgZXZlcnkgbWF0Y2hpbmcgc2VjcmV0LlxuICAgKi9cbiAgYXN5bmMgbGlzdChcbiAgICBvcHRpb25zOiBMaXN0U2VjcmV0c09wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldE1ldGFkYXRhW10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibGlzdFwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5saXN0XG4gICAgKTtcbiAgICBsb2cudmVyYm9zZShcIkxpc3Rpbmcgc2VjcmV0c1wiKTtcblxuICAgIGxldCBjb25kaXRpb246IENvbmRpdGlvbjxTZWNyZXQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAob3B0aW9ucy5lbmFibGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbmRpdGlvbiA9IENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJlbmFibGVkXCIpLmVxKG9wdGlvbnMuZW5hYmxlZCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VjcmV0czogU2VjcmV0W10gPSBhd2FpdCB0aGlzLmNsaWVudFxuICAgICAgLnNlbGVjdCgpXG4gICAgICAud2hlcmUoY29uZGl0aW9uIHx8IENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJuYW1lXCIpLmRpZihudWxsKSlcbiAgICAgIC5leGVjdXRlKC4uLmN0eEFyZ3MpO1xuXG4gICAgcmV0dXJuIHNlY3JldHMubWFwKChzZWNyZXQ6IFNlY3JldCkgPT4gKHtcbiAgICAgIHByb3ZpZGVyOiBzZWNyZXQucHJvdmlkZXIgYXMgU2VjcmV0UHJvdmlkZXIsXG4gICAgICBuYW1lOiBzZWNyZXQubmFtZSxcbiAgICAgIHZlcnNpb246IHNlY3JldC52ZXJzaW9uLFxuICAgICAgY3JlYXRlZEF0OiBzZWNyZXQuY3JlYXRlZEF0LFxuICAgICAgdXBkYXRlZEF0OiBzZWNyZXQudXBkYXRlZEF0LFxuICAgICAgZW5hYmxlZDogc2VjcmV0LmVuYWJsZWQsXG4gICAgICBjb250ZW50VHlwZTogc2VjcmV0LmNvbnRlbnRUeXBlLFxuICAgICAgdGFnczogc2VjcmV0LnRhZ3MsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBvbmUgc2VjcmV0J3MgbWV0YWRhdGEgd2l0aG91dCBpdHMgcGF5bG9hZFxuICAgKiBAc3VtbWFyeSBTZWxlY3RzIHRoZSByb3cgbWF0Y2hpbmcgdGhlIG5vcm1hbGl6ZWQgbmFtZSAoYW5kIG9wdGlvbmFsXG4gICAqIHZlcnNpb24pIGFuZCBtYXBzIGl0IHRvIGBTZWNyZXRNZXRhZGF0YWA7IHRhZ3MgYXJlIGluY2x1ZGVkIG9ubHkgd2hlblxuICAgKiBgb3B0aW9ucy5pbmNsdWRlVGFnc2AgaXMgc2V0LiBSb3dzIGFyZSBvcmRlcmVkIGJ5IGB1cGRhdGVkQXQgREVTQ2AsIHNvXG4gICAqIHRoZSBtb3N0IHJlY2VudGx5IHVwZGF0ZWQgbWF0Y2hpbmcgcm93IGlzIHJlc29sdmVkIGRldGVybWluaXN0aWNhbGx5LlxuICAgKiBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gbm8gcm93IG1hdGNoZXMuXG4gICAqIEBwYXJhbSB7U2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZX0gbmFtZU9yUmVmIC0gVGhlIHNlY3JldCBuYW1lIG9yIHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHtTZWNyZXRNZXRhZGF0YU9wdGlvbnN9IFtvcHRpb25zXSAtIE9wdGlvbmFsIHZlcnNpb24gZmlsdGVyIGFuZCBgaW5jbHVkZVRhZ3NgIGZsYWcuXG4gICAqIEBwYXJhbSB7TWF5YmVDb250ZXh0dWFsQXJnfSBhcmdzIC0gT3B0aW9uYWwgdHJhaWxpbmcgZGVjYWYgYENvbnRleHRgIGZvcndhcmRlZCB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICogQHJldHVybnMge1Byb21pc2U8U2VjcmV0TWV0YWRhdGEgfCB1bmRlZmluZWQ+fSBUaGUgbWV0YWRhdGEsIG9yIGB1bmRlZmluZWRgIHdoZW4gYWJzZW50LlxuICAgKi9cbiAgYXN5bmMgbWV0YWRhdGEoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIG9wdGlvbnM6IFNlY3JldE1ldGFkYXRhT3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0TWV0YWRhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibWV0YWRhdGFcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMubWV0YWRhdGFcbiAgICApO1xuICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgbG9nLnZlcmJvc2UoYEdldHRpbmcgbWV0YWRhdGEgZm9yIHNlY3JldCAke25hbWVTdHJ9YCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIGxldCBmaWx0ZXIgPSBDb25kaXRpb24uYXR0cjxTZWNyZXQ+KFwibmFtZVwiKS5lcShub3JtYWxpemVkTmFtZSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID1cbiAgICAgIG9wdGlvbnMudmVyc2lvbiA/P1xuICAgICAgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwib2JqZWN0XCIgPyBuYW1lT3JSZWYudmVyc2lvbiA6IHVuZGVmaW5lZCk7XG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGZpbHRlciA9IGZpbHRlci5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcInZlcnNpb25cIikuZXEodmVyc2lvbikpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHM6IFNlY3JldFtdID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgIC5zZWxlY3QoKVxuICAgICAgLndoZXJlKGZpbHRlcilcbiAgICAgIC5vcmRlckJ5KFtcInVwZGF0ZWRBdFwiLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgY29uc3Qgc2VjcmV0ID0gcmVzdWx0c1swXTtcblxuICAgIGlmICghc2VjcmV0KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGE6IFNlY3JldE1ldGFkYXRhID0ge1xuICAgICAgcHJvdmlkZXI6IHNlY3JldC5wcm92aWRlciBhcyBTZWNyZXRQcm92aWRlcixcbiAgICAgIG5hbWU6IHNlY3JldC5uYW1lLFxuICAgICAgdmVyc2lvbjogc2VjcmV0LnZlcnNpb24sXG4gICAgICBjcmVhdGVkQXQ6IHNlY3JldC5jcmVhdGVkQXQsXG4gICAgICB1cGRhdGVkQXQ6IHNlY3JldC51cGRhdGVkQXQsXG4gICAgICBlbmFibGVkOiBzZWNyZXQuZW5hYmxlZCxcbiAgICAgIGNvbnRlbnRUeXBlOiBzZWNyZXQuY29udGVudFR5cGUsXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zLmluY2x1ZGVUYWdzKSB7XG4gICAgICBtZXRhLnRhZ3MgPSBzZWNyZXQudGFncztcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmUtZW5jcnlwdHMgYW4gZW5hYmxlZCBzZWNyZXQgcm93IHdpdGggYSBuZXcgcGF5bG9hZFxuICAgKiBAc3VtbWFyeSBMb2NhdGVzIHRoZSBlbmFibGVkIHJvdyAob3B0aW9uYWxseSBwaW5uZWQgdG9cbiAgICogYG9wdGlvbnMub2xkVmVyc2lvbmApLCBlbmNyeXB0cyB0aGUgbmV3IHBheWxvYWQgd2l0aCBhIGZyZXNobHkgZGVyaXZlZFxuICAgKiBrZXkgKG9wdGlvbmFsbHkgdGFnZ2VkIHdpdGggYG9wdGlvbnMua2V5SWRgKSwgYW5kIHVwZGF0ZXMgdGhlIHJvdydzXG4gICAqIHBheWxvYWQsIGVuY3J5cHRpb24gbWV0YWRhdGEsIHZlcnNpb24gKGBvcHRpb25zLm5ld1ZlcnNpb25gKSwgYW5kXG4gICAqIGB1cGRhdGVkQXRgLiBXaGVuIGBvcHRpb25zLm5ld1ZlcnNpb25gIGRpZmZlcnMgZnJvbSB0aGUgcm93J3MgY3VycmVudFxuICAgKiB2ZXJzaW9uLCBhIGAobmFtZSwgdmVyc2lvbilgIGR1cGxpY2F0ZSBjaGVjayByZWplY3RzIHRoZSByb3RhdGlvbiB3aXRoIGFcbiAgICogYFNFQ1JFVF9BTFJFQURZX0VYSVNUU2Age0BsaW5rIFNlY3JldEVycm9yfTsgb3RoZXJ3aXNlIHRoZSB0YXJnZXQgdmVyc2lvblxuICAgKiBpcyByZXVzZWQgYW5kIHRoZSByb3cgaXMgdXBkYXRlZCBpbiBwbGFjZS4gTWF0Y2hpbmcgcm93cyBhcmUgb3JkZXJlZCBieVxuICAgKiBgdXBkYXRlZEF0IERFU0NgLCBzbyB0aGUgbW9zdCByZWNlbnRseSB1cGRhdGVkIGVuYWJsZWQgcm93IGlzIHJlc29sdmVkXG4gICAqIGRldGVybWluaXN0aWNhbGx5LlxuICAgKiBAdGVtcGxhdGUgVCAtIFRoZSBzZWNyZXQgcGF5bG9hZCB0eXBlLlxuICAgKiBAcGFyYW0ge1NlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2V9IG5hbWVPclJlZiAtIFRoZSBzZWNyZXQgbmFtZSBvciByZWZlcmVuY2UuXG4gICAqIEBwYXJhbSB7VH0gdmFsdWUgLSBUaGUgbmV3IHBheWxvYWQuXG4gICAqIEBwYXJhbSB7Um90YXRlU2VjcmV0T3B0aW9uc30gW29wdGlvbnNdIC0gT3B0aW9uYWwgYG5ld1ZlcnNpb25gLCBgb2xkVmVyc2lvbmAsIGFuZCBga2V5SWRgLlxuICAgKiBAcGFyYW0ge01heWJlQ29udGV4dHVhbEFyZ30gYXJncyAtIE9wdGlvbmFsIHRyYWlsaW5nIGRlY2FmIGBDb250ZXh0YCBmb3J3YXJkZWQgdG8gdGhlIHJlcG9zaXRvcnkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFNlY3JldFJlZmVyZW5jZT59IEEgcmVmZXJlbmNlIHJlZmxlY3RpbmcgdGhlIHVwZGF0ZWQgcm93LlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIG5vIGVuYWJsZWQgc2VjcmV0IG1hdGNoZXMgdGhlIG5hbWUvdmVyc2lvbi5cbiAgICogQHRocm93cyB7U2VjcmV0RXJyb3J9IGBTRUNSRVRfQUxSRUFEWV9FWElTVFNgIHdoZW4gdGhlIHRhcmdldCBgbmV3VmVyc2lvbmAgaXMgYWxyZWFkeSBoZWxkIGJ5IGFub3RoZXIgcm93IHdpdGggdGhlIHNhbWUgbm9ybWFsaXplZCBuYW1lLCBvciBgU0VDUkVUX1BST1ZJREVSX0NPTkZMSUNUYCB3aGVuIHRoZSByZXBvc2l0b3J5IHVwZGF0ZSBmYWlscy5cbiAgICovXG4gIGFzeW5jIHJvdGF0ZTxUIGV4dGVuZHMgU2VjcmV0UGF5bG9hZCA9IFNlY3JldFBheWxvYWQ+KFxuICAgIG5hbWVPclJlZjogU2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZSxcbiAgICB2YWx1ZTogVCxcbiAgICBvcHRpb25zOiBSb3RhdGVTZWNyZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZWNyZXRSZWZlcmVuY2U+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicm90YXRlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJvdGF0ZVxuICAgICk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgUm90YXRpbmcgc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lU3RyKTtcbiAgICBsZXQgY29uZGl0aW9uID0gQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcIm5hbWVcIikuZXEobm9ybWFsaXplZE5hbWUpO1xuICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5hbmQoQ29uZGl0aW9uLmF0dHI8U2VjcmV0PihcImVuYWJsZWRcIikuZXEodHJ1ZSkpO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9XG4gICAgICBvcHRpb25zLm9sZFZlcnNpb24gPz9cbiAgICAgICh0eXBlb2YgbmFtZU9yUmVmID09PSBcIm9iamVjdFwiID8gbmFtZU9yUmVmLnZlcnNpb24gOiB1bmRlZmluZWQpO1xuICAgIGlmICh2ZXJzaW9uKSB7XG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24uYW5kKENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJ2ZXJzaW9uXCIpLmVxKHZlcnNpb24pKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5jbGllbnRcbiAgICAgIC5zZWxlY3QoKVxuICAgICAgLndoZXJlKGNvbmRpdGlvbilcbiAgICAgIC5vcmRlckJ5KFtcInVwZGF0ZWRBdFwiLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgY29uc3QgZXhpc3RpbmcgPSByZXN1bHRzWzBdO1xuXG4gICAgaWYgKCFleGlzdGluZykge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCIgbm90IGZvdW5kYCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZlcnNpb24gPSBvcHRpb25zLm5ld1ZlcnNpb24gPz8gZXhpc3RpbmcudmVyc2lvbjtcbiAgICBjb25zdCB0YXJnZXRWZXJzaW9uID0gbmV4dFZlcnNpb24gPz8gXCJcIjtcbiAgICBpZiAodGFyZ2V0VmVyc2lvbiAhPT0gKGV4aXN0aW5nLnZlcnNpb24gPz8gXCJcIikpIHtcbiAgICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmNsaWVudFxuICAgICAgICAuc2VsZWN0KClcbiAgICAgICAgLndoZXJlKENvbmRpdGlvbi5hdHRyPFNlY3JldD4oXCJuYW1lXCIpLmVxKG5vcm1hbGl6ZWROYW1lKSlcbiAgICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgICBjb25zdCBkdXBsaWNhdGUgPSByb3dzLnNvbWUoXG4gICAgICAgIChyb3c6IFNlY3JldCkgPT5cbiAgICAgICAgICByb3cuaWQgIT09IGV4aXN0aW5nLmlkICYmIChyb3cudmVyc2lvbiA/PyBcIlwiKSA9PT0gdGFyZ2V0VmVyc2lvblxuICAgICAgKTtcbiAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFNlY3JldEVycm9yKFxuICAgICAgICAgIFwiU0VDUkVUX0FMUkVBRFlfRVhJU1RTXCIsXG4gICAgICAgICAgYFNlY3JldCAke0pTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWROYW1lKX0ke1xuICAgICAgICAgICAgdGFyZ2V0VmVyc2lvbiA/IGAgdmVyc2lvbiAke0pTT04uc3RyaW5naWZ5KHRhcmdldFZlcnNpb24pfWAgOiBcIlwiXG4gICAgICAgICAgfSBhbHJlYWR5IGV4aXN0c2BcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZXJpYWxpemVkID0gc2VyaWFsaXplU2VjcmV0UGF5bG9hZCh2YWx1ZSk7XG4gICAgY29uc3QgZGVyaXZlZEtleSA9IGF3YWl0IHRoaXMuY3J5cHRvU2VydmljZS5kZXJpdmVLZXlGcm9tU2VjcmV0KFxuICAgICAgdGhpcy5jb25maWcua2V5U2VjcmV0IGFzIHN0cmluZ1xuICAgICk7XG4gICAgY29uc3QgZXh0cmFjdGVkID0gdGhpcy5jcnlwdG9TZXJ2aWNlLmV4dHJhY3RLZXlGcm9tRGVyaXZlZEtleShkZXJpdmVkS2V5KTtcbiAgICBjb25zdCB7IGVuY3J5cHRlZERhdGEsIG1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLmNyeXB0b1NlcnZpY2UuZW5jcnlwdFBheWxvYWQoXG4gICAgICBKU09OLnN0cmluZ2lmeShzZXJpYWxpemVkKSxcbiAgICAgIG9wdGlvbnMua2V5SWQgfHwgdGhpcy5jb25maWcua2V5SWQgfHwgREVGQVVMVF9LRVlfSUQsXG4gICAgICBleHRyYWN0ZWQua2V5XG4gICAgKTtcblxuICAgIGV4aXN0aW5nLmVuY3J5cHRlZFBheWxvYWQgPSBlbmNyeXB0ZWREYXRhO1xuICAgIGV4aXN0aW5nLmVuY3J5cHRpb24gPSB7XG4gICAgICBrZXlJZDogbWV0YWRhdGEua2V5SWQsXG4gICAgICBpdjogbWV0YWRhdGEuaXYsXG4gICAgICBzYWx0OiBleHRyYWN0ZWQuc2FsdCxcbiAgICB9O1xuICAgIGV4aXN0aW5nLnZlcnNpb24gPSBuZXh0VmVyc2lvbjtcbiAgICBleGlzdGluZy51cGRhdGVkQXQgPSBuZXcgRGF0ZSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnVwZGF0ZShleGlzdGluZywgLi4uY3R4QXJncyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICB2ZXJzaW9uOiBleGlzdGluZy52ZXJzaW9uLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRyYW5zbGF0ZXMgcmVwb3NpdG9yeSBlcnJvcnMgaW50byB0eXBlZCBzZWNyZXQgZXJyb3JzXG4gICAqIEBzdW1tYXJ5IEluc3BlY3RzIHRoZSBlcnJvciBtZXNzYWdlIGZvciBcIm5vdCBmb3VuZFwiLzQwNCwgXCJhbHJlYWR5XG4gICAqIGV4aXN0c1wiL2NvbmZsaWN0LzQwOSwgYW5kIGRlY3J5cHRpb24tcmVsYXRlZCBtYXJrZXJzIGFuZCBtYXBzIHRoZW0gdG9cbiAgICogYFNFQ1JFVF9OT1RfRk9VTkRgLCBgU0VDUkVUX0FMUkVBRFlfRVhJU1RTYCxcbiAgICogYFNFQ1JFVF9ERUNSWVBUSU9OX0ZBSUxFRGAsIG9yIGEgZ2VuZXJpYyBgU0VDUkVUX1BST1ZJREVSX0NPTkZMSUNUYFxuICAgKiB7QGxpbmsgU2VjcmV0RXJyb3J9LlxuICAgKiBAcGFyYW0ge3Vua25vd259IGVycm9yIC0gVGhlIHJhdyBlcnJvciB0aHJvd24gYnkgdGhlIHJlcG9zaXRvcnkuXG4gICAqIEByZXR1cm5zIHtTZWNyZXRFcnJvcn0gVGhlIHR5cGVkIHNlY3JldCBlcnJvci5cbiAgICovXG4gIHByb3RlY3RlZCBwYXJzZUVycm9yKGVycm9yOiB1bmtub3duKTogU2VjcmV0RXJyb3Ige1xuICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIEVycm9yO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIubWVzc2FnZSB8fCBlcnIubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfTk9UX0ZPVU5EXCIsXG4gICAgICAgIGBTZWNyZXQgbm90IGZvdW5kOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJkdXBsaWNhdGUga2V5XCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmlxdWUgY29uc3RyYWludFwiKSB8fFxuICAgICAgKGVyciBhcyB7IGNvZGU/OiB1bmtub3duIH0pLmNvZGUgPT09IFwiMjM1MDVcIlxuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfQUxSRUFEWV9FWElTVFNcIixcbiAgICAgICAgYFNlY3JldCBhbHJlYWR5IGV4aXN0czogJHttZXNzYWdlfWAsXG4gICAgICAgIGVyclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJkZWNyeXB0aW9uXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJkZWNyeXB0XCIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IFNlY3JldEVycm9yKFxuICAgICAgICBcIlNFQ1JFVF9ERUNSWVBUSU9OX0ZBSUxFRFwiLFxuICAgICAgICBgRGVjcnlwdGlvbiBmYWlsZWQ6ICR7bWVzc2FnZX1gLFxuICAgICAgICBlcnJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgIFwiU0VDUkVUX1BST1ZJREVSX0NPTkZMSUNUXCIsXG4gICAgICBgUHJvdmlkZXIgZXJyb3I6ICR7bWVzc2FnZX1gLFxuICAgICAgZXJyXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=ModelSecretServiceConfig.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvbW9kZWwvTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvbW9kZWwvY29uZmlnXG4gKiBAc3VtbWFyeSBNb2RlbC1iYWNrZWQgc2VjcmV0IHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIHNjaGVtYSBmb3IgdGhlIGVuY3J5cHRlZC1hdC1yZXN0IG1vZGVsIHNlY3JldCBzZXJ2aWNlLlxuICovXG5pbXBvcnQgeyBTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4uL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RlbFNlY3JldFNlcnZpY2VDb25maWcgZXh0ZW5kcyBTZWNyZXRTZXJ2aWNlQ29uZmlnIHtcbiAgcHJvdmlkZXI6IFwibW9kZWxcIjtcbiAga2V5U2VjcmV0OiBzdHJpbmc7XG4gIGtleUlkPzogc3RyaW5nO1xufVxuIl19
@@ -115,4 +115,4 @@ Secret = __decorate([
115
115
  __metadata("design:paramtypes", [Object])
116
116
  ], Secret);
117
117
  export { Secret };
118
- //# sourceMappingURL=Secret.js.map
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvbW9kZWwvU2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7Ozs7O0dBT0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFtQmpGOzs7Ozs7OztHQVFHO0FBTUksSUFBTSxNQUFNLEdBQVosTUFBTSxNQUFPLFNBQVEsU0FBUztJQTJFbkMsWUFBWSxJQUFzQjtRQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFwQ2QseUZBQXlGO1FBR3pGLFlBQU8sR0FBWSxJQUFJLENBQUM7SUFrQ3hCLENBQUM7Q0FDRixDQUFBO0FBMUVDO0lBRkMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLElBQUksRUFBRTs7a0NBQ0s7QUFNWjtJQUhDLFFBQVEsRUFBRTtJQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7O29DQUNLO0FBTWQ7SUFIQyxRQUFRLEVBQUU7SUFDVixNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2QsTUFBTSxFQUFFOzt3Q0FDUztBQU1sQjtJQUhDLFFBQVEsRUFBRTtJQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7O2dEQUNpQjtBQU0xQjtJQUhDLFFBQVEsRUFBRTtJQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7OzBDQUM2QjtBQUt0QztJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7OzJDQUNZO0FBS3JCO0lBRkMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNkLE1BQU0sRUFBRTs7b0NBQ3FCO0FBSzlCO0lBRkMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNmLE1BQU0sRUFBRTs7dUNBQ2U7QUFLeEI7SUFGQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2QsTUFBTSxFQUFFOzt1Q0FDUTtBQUtqQjtJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLEVBQUU7OzBDQUNXO0FBS3BCO0lBRkMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNkLE1BQU0sRUFBRTs7bUNBQ0k7QUFLYjtJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLENBQUMsV0FBVyxDQUFDOzt3Q0FDRjtBQUtsQjtJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLENBQUMsYUFBYSxDQUFDOzt5Q0FDSDtBQUtuQjtJQUZDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDZCxNQUFNLENBQUMsb0JBQW9CLENBQUM7O2dEQUNIO0FBekVmLE1BQU07SUFMbEIsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUNoQixLQUFLLEVBQUU7SUFDUCxXQUFXLENBQ1Ysd0VBQXdFLENBQ3pFOztHQUNZLE1BQU0sQ0E4RWxCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9zZWNyZXRzL21vZGVsL21vZGVsXG4gKiBAc3VtbWFyeSBFbmNyeXB0ZWQtYXQtcmVzdCBzZWNyZXQgcGVyc2lzdGVuY2UgbW9kZWwuXG4gKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgYHtAbGluayBTZWNyZXR9YCBtb2RlbCAoYHNlY3JldHNgIHRhYmxlKSBwZXJzaXN0ZWRcbiAqIGJ5IHRoZSBge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZX1gOiBvbmUgcm93IHBlciBzZWNyZXQsIGhvbGRpbmcgdGhlXG4gKiBlbmNyeXB0ZWQgcGF5bG9hZCwgYGtleUlkYC9gaXZgL2BzYWx0YCBlbmNyeXB0aW9uIG1ldGFkYXRhLCB2ZXJzaW9uaW5nIGFuZFxuICogZW5hYmxlbWVudCBmaWVsZHMsIGFuZCBvcHRpb25hbCB0ZW5hbnQvb3JnLXVuaXQvb3duZXIgc2NvcGluZyBjb2x1bW5zLlxuICovXG5pbXBvcnQgeyBCYXNlTW9kZWwsIGNvbHVtbiwgcGssIHRhYmxlLCB1dWlkIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBkZXNjcmlwdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgbW9kZWwsIHJlcXVpcmVkLCB0eXBlIGFzIHR5cGVPZiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRW5jcnlwdGlvbiBtZXRhZGF0YSBlbWJlZGRlZCBpbiBhIHNlY3JldCByb3dcbiAqIEBzdW1tYXJ5IGBrZXlJZGAgaWRlbnRpZmllcyB0aGUga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgcGF5bG9hZDsgYGl2YCBhbmRcbiAqIHRoZSBvcHRpb25hbCBgYWFkYC9gc2FsdGAgY2FycnkgdGhlIGNpcGhlciBwYXJhbWV0ZXJzIG5lZWRlZCB0byByZS1kZXJpdmVcbiAqIHRoZSBrZXkgYW5kIGRlY3J5cHQgdGhlIHBheWxvYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0RW5jcnlwdGlvbk1ldGFkYXRhIHtcbiAgLyoqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWVyIG9mIHRoZSBlbmNyeXB0aW9uIGtleSB1c2VkIGZvciB0aGUgcGF5bG9hZC4gKi9cbiAga2V5SWQ6IHN0cmluZztcbiAgLyoqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXphdGlvbiB2ZWN0b3IgdXNlZCBmb3IgdGhlIHBheWxvYWQgZW5jcnlwdGlvbi4gKi9cbiAgaXY6IHN0cmluZztcbiAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0YSBib3VuZCB0byB0aGUgY2lwaGVyLiAqL1xuICBhYWQ/OiBzdHJpbmc7XG4gIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgc2FsdCB1c2VkIHdoZW4gZGVyaXZpbmcgdGhlIGtleSBmcm9tIHRoZSBtYXN0ZXIgc2VjcmV0LiAqL1xuICBzYWx0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFbmNyeXB0ZWQgc2VjcmV0IHJlY29yZCBzdG9yZWQgdGhyb3VnaCB0aGUgbW9kZWwtYmFja2VkIHNlY3JldCBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBQZXJzaXN0ZWQgaW4gdGhlIGBzZWNyZXRzYCB0YWJsZS4gVGhlIGBlbmNyeXB0ZWRQYXlsb2FkYCBjb2x1bW4gaXNcbiAqIHdyaXR0ZW4gb25seSBieSBge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZX1gICh3aGljaCBhbHNvIGZpbGxzXG4gKiBgZW5jcnlwdGlvbmAsIGB2ZXJzaW9uYCwgYW5kIHRoZSBvcHRpb25hbCBgdGVuYW50SWRgL2BvcmdVbml0SWRgL1xuICogYG93bmVyUHJpbmNpcGFsSWRgIHNjb3BpbmcgY29sdW1ucyk7IGBlbmFibGVkOiBmYWxzZWAgbWFya3Mgc29mdC1kZWxldGVkXG4gKiBzZWNyZXRzIHRoYXQgcmV0cmlldmFsIGZpbHRlcnMgb3V0LlxuICogQGNhdGVnb3J5IFNlY3JldHNcbiAqL1xuQHRhYmxlKFwic2VjcmV0c1wiKVxuQG1vZGVsKClcbkBkZXNjcmlwdGlvbihcbiAgXCJFbmNyeXB0ZWQgc2VjcmV0IHJlY29yZCBzdG9yZWQgdGhyb3VnaCB0aGUgbW9kZWwtYmFja2VkIHNlY3JldCBzZXJ2aWNlXCJcbilcbmV4cG9ydCBjbGFzcyBTZWNyZXQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICAvKiogQGRlc2NyaXB0aW9uIFByaW1hcnkga2V5IChVVUlEKS4gKi9cbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pXG4gIEB1dWlkKClcbiAgaWQhOiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBOb3JtYWxpemVkIHNlY3JldCBuYW1lLiAqL1xuICBAcmVxdWlyZWQoKVxuICBAdHlwZU9mKFN0cmluZylcbiAgQGNvbHVtbigpXG4gIG5hbWUhOiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBTZWNyZXQgcHJvdmlkZXIgZGlzY3JpbWluYXRvciB0aGF0IHdyb3RlIHRoZSByb3cuICovXG4gIEByZXF1aXJlZCgpXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgcHJvdmlkZXIhOiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBFbmNyeXB0ZWQsIHNlcmlhbGl6ZWQgcGF5bG9hZC4gKi9cbiAgQHJlcXVpcmVkKClcbiAgQHR5cGVPZihTdHJpbmcpXG4gIEBjb2x1bW4oKVxuICBlbmNyeXB0ZWRQYXlsb2FkITogc3RyaW5nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gQ2lwaGVyIHBhcmFtZXRlcnMgcmVxdWlyZWQgdG8gZGVjcnlwdCB0aGUgcGF5bG9hZC4gKi9cbiAgQHJlcXVpcmVkKClcbiAgQHR5cGVPZihPYmplY3QpXG4gIEBjb2x1bW4oKVxuICBlbmNyeXB0aW9uITogU2VjcmV0RW5jcnlwdGlvbk1ldGFkYXRhO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgY29udGVudCB0eXBlIGRlc2NyaWJpbmcgdGhlIHBheWxvYWQuICovXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgY29udGVudFR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBmcmVlLWZvcm0gdGFncy4gKi9cbiAgQHR5cGVPZihPYmplY3QpXG4gIEBjb2x1bW4oKVxuICB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKiogQGRlc2NyaXB0aW9uIFdoZW4gYGZhbHNlYCwgdGhlIHNlY3JldCBpcyBzb2Z0LWRlbGV0ZWQgYW5kIGZpbHRlcmVkIGZyb20gcmV0cmlldmFsLiAqL1xuICBAdHlwZU9mKEJvb2xlYW4pXG4gIEBjb2x1bW4oKVxuICBlbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHZlcnNpb24gbGFiZWwuICovXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgdmVyc2lvbj86IHN0cmluZztcblxuICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGV4dGVybmFsIGlkZW50aWZpZXIgbGlua2luZyB0aGUgc2VjcmV0IHRvIGEgcHJvdmlkZXIgcmVjb3JkLiAqL1xuICBAdHlwZU9mKFN0cmluZylcbiAgQGNvbHVtbigpXG4gIGV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwcm92aWRlciBVUkkgZm9yIGV4dGVybmFsbHkgc3RvcmVkIHNlY3JldHMuICovXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgdXJpPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgdGVuYW50IHNjb3BlIGlkLiAqL1xuICBAdHlwZU9mKFN0cmluZylcbiAgQGNvbHVtbihcInRlbmFudF9pZFwiKVxuICB0ZW5hbnRJZD86IHN0cmluZztcblxuICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIG9yZ2FuaXphdGlvbmFsIHVuaXQgc2NvcGUgaWQuICovXG4gIEB0eXBlT2YoU3RyaW5nKVxuICBAY29sdW1uKFwib3JnX3VuaXRfaWRcIilcbiAgb3JnVW5pdElkPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgb3duaW5nIHByaW5jaXBhbCBpZC4gKi9cbiAgQHR5cGVPZihTdHJpbmcpXG4gIEBjb2x1bW4oXCJvd25lcl9wcmluY2lwYWxfaWRcIilcbiAgb3duZXJQcmluY2lwYWxJZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxTZWNyZXQ+KSB7XG4gICAgc3VwZXIoZGF0YSk7XG4gIH1cbn1cbiJdfQ==
@@ -7,4 +7,4 @@ export * from "./Secret.js";
7
7
  export * from "./ModelSecretServiceConfig.js";
8
8
  export * from "./ModelSecretEnvironment.js";
9
9
  export * from "./ModelSecretService.js";
10
- //# sourceMappingURL=index.js.map
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9tb2RlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsNEJBQXlCO0FBQ3pCLDhDQUEyQztBQUMzQyw0Q0FBeUM7QUFDekMsd0NBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9zZWNyZXRzL21vZGVsXG4gKiBAc3VtbWFyeSBNb2RlbC1iYWNrZWQgc2VjcmV0IHNlcnZpY2UgZXhwb3J0cy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBlbmNyeXB0ZWQtYXQtcmVzdCBzZWNyZXQgbW9kZWwsIGNvbmZpZywgYW5kIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL1NlY3JldFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTW9kZWxTZWNyZXRTZXJ2aWNlQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Nb2RlbFNlY3JldEVudmlyb25tZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Nb2RlbFNlY3JldFNlcnZpY2VcIjtcbiJdfQ==
@@ -17,4 +17,4 @@ export const OnePasswordSecretEnvironment = SecretEnvironment.accumulate({
17
17
  },
18
18
  },
19
19
  });
20
- //# sourceMappingURL=OnePasswordSecretEnvironment.js.map
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT25lUGFzc3dvcmRTZWNyZXRFbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWNyZXRzL29uZXBhc3N3b3JkL09uZVBhc3N3b3JkU2VjcmV0RW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVDQUFrQztBQWdCOUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDO0lBQ3ZFLE9BQU8sRUFBRTtRQUNQLFdBQVcsRUFBRTtZQUNYLFdBQVcsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEVBQUU7WUFDaEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxjQUFjLEVBQUUsRUFBRTtZQUNsQixLQUFLLEVBQUUsRUFBRTtTQUNWO0tBQ0Y7Q0FDbUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9zZWNyZXRzL29uZXBhc3N3b3JkL2Vudmlyb25tZW50XG4gKiBAc3VtbWFyeSAxUGFzc3dvcmQgQ29ubmVjdCBzZWNyZXQgZW52aXJvbm1lbnQuXG4gKiBAZGVzY3JpcHRpb24gRXh0ZW5kcyB0aGUgY29tbW9uIHNlY3JldHMgZW52aXJvbm1lbnQgd2l0aCB0aGUgYHNlY3JldHMub25lUGFzc3dvcmRgXG4gKiBzaGFwZSBtYXRjaGluZyB7QGxpbmsgT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnfSwgc28ge0BsaW5rIE9uZVBhc3N3b3JkU2VjcmV0U2VydmljZX1cbiAqIGNhbiBmYWxsIGJhY2sgdG8gaXQgd2hlbiBubyBjb25maWcgaXMgcGFzc2VkIHRvIGBpbml0aWFsaXplYC5cbiAqL1xuaW1wb3J0IHsgU2VjcmV0RW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vY29yZS9TZWNyZXRFbnZpcm9ubWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9uZVBhc3N3b3JkU2VjcmV0RW52aXJvbm1lbnRDb25maWcge1xuICBjb25uZWN0SG9zdDogc3RyaW5nO1xuICBjb25uZWN0VG9rZW4/OiBzdHJpbmc7XG4gIHZhdWx0SWQ/OiBzdHJpbmc7XG4gIGl0ZW1JZFRlbXBsYXRlPzogc3RyaW5nO1xuICBrZXlJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVQYXNzd29yZFNlY3JldEVudmlyb25tZW50U2hhcGUge1xuICBzZWNyZXRzOiB7XG4gICAgb25lUGFzc3dvcmQ6IE9uZVBhc3N3b3JkU2VjcmV0RW52aXJvbm1lbnRDb25maWc7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBPbmVQYXNzd29yZFNlY3JldEVudmlyb25tZW50ID0gU2VjcmV0RW52aXJvbm1lbnQuYWNjdW11bGF0ZSh7XG4gIHNlY3JldHM6IHtcbiAgICBvbmVQYXNzd29yZDoge1xuICAgICAgY29ubmVjdEhvc3Q6IFwiXCIsXG4gICAgICBjb25uZWN0VG9rZW46IFwiXCIsXG4gICAgICB2YXVsdElkOiBcIlwiLFxuICAgICAgaXRlbUlkVGVtcGxhdGU6IFwiXCIsXG4gICAgICBrZXlJZDogXCJcIixcbiAgICB9LFxuICB9LFxufSBhcyBPbmVQYXNzd29yZFNlY3JldEVudmlyb25tZW50U2hhcGUpO1xuIl19
@@ -411,4 +411,4 @@ export class OnePasswordSecretService extends ClientBasedSecretService {
411
411
  }
412
412
  }
413
413
  }
414
- //# sourceMappingURL=OnePasswordSecretService.js.map
414
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvb25lcGFzc3dvcmQvT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsV0FBVyxHQUVaLDJCQUEyQjtBQU81QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCO0FBQzdFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEdBRXpCLDJCQUEyQjtBQU01QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsMENBQXVDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsMkNBQXNDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHdCQUc3QztJQUhEOztRQUlXLGFBQVEsR0FBbUIsV0FBVyxDQUFDO0lBdWpCbEQsQ0FBQztJQXJqQlcscUJBQXFCO1FBRzdCLE1BQU0sR0FBRyxHQUFHLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDN0QsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ25DLE9BQU87WUFDTCxRQUFRLEVBQUUsV0FBVztZQUNyQixXQUFXO1lBQ1gsWUFBWSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUMvQixjQUFjLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7WUFDN0MsS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1NB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QUFDLEtBQWMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbGllbnRCYXNlZFNlY3JldFNlcnZpY2UsXG4gIFNlY3JldEVycm9yLFxuICBTZWNyZXRQcm92aWRlcixcbn0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuaW1wb3J0IHtcbiAgU2VjcmV0TmFtZSxcbiAgU2VjcmV0UGF5bG9hZCxcbiAgU2VjcmV0UmVmZXJlbmNlLFxuICBTZWNyZXRNZXRhZGF0YSxcbn0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuaW1wb3J0IHsgdmFsaWRhdGVTZWNyZXROYW1lLCBub3JtYWxpemVTZWNyZXROYW1lIH0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuaW1wb3J0IHtcbiAgc2VyaWFsaXplU2VjcmV0UGF5bG9hZCxcbiAgZGVzZXJpYWxpemVTZWNyZXRQYXlsb2FkLFxuICB0eXBlIFNlcmlhbGl6ZWRTZWNyZXRQYXlsb2FkLFxufSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQge1xuICB0eXBlIENvbnRleHR1YWxBcmdzLFxuICB0eXBlIE1heWJlQ29udGV4dHVhbEFyZyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBPbmVQYXNzd29yZFNlY3JldFNlcnZpY2VDb25maWcgfSBmcm9tIFwiLi9PbmVQYXNzd29yZFNlY3JldFNlcnZpY2VDb25maWdcIjtcbmltcG9ydCB7IE9uZVBhc3N3b3JkU2VjcmV0RW52aXJvbm1lbnQgfSBmcm9tIFwiLi9PbmVQYXNzd29yZFNlY3JldEVudmlyb25tZW50XCI7XG5pbXBvcnQgeyBlbnZTdHJpbmcgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2Vudmlyb25tZW50VmFsdWVcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuZXhwb3J0IGNsYXNzIE9uZVBhc3N3b3JkU2VjcmV0U2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VjcmV0U2VydmljZTxcbiAgdW5rbm93bixcbiAgT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnXG4+IHtcbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFNlY3JldFByb3ZpZGVyID0gXCIxcGFzc3dvcmRcIjtcblxuICBwcm90ZWN0ZWQgY29uZmlnRnJvbUVudmlyb25tZW50KCk6XG4gICAgfCBPbmVQYXNzd29yZFNlY3JldFNlcnZpY2VDb25maWdcbiAgICB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZW52ID0gT25lUGFzc3dvcmRTZWNyZXRFbnZpcm9ubWVudC5zZWNyZXRzLm9uZVBhc3N3b3JkO1xuICAgIGNvbnN0IGNvbm5lY3RIb3N0ID0gZW52U3RyaW5nKGVudj8uY29ubmVjdEhvc3QpO1xuICAgIGlmICghY29ubmVjdEhvc3QpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGVyOiBcIjFwYXNzd29yZFwiLFxuICAgICAgY29ubmVjdEhvc3QsXG4gICAgICBjb25uZWN0VG9rZW46IGVudlN0cmluZyhlbnYuY29ubmVjdFRva2VuKSxcbiAgICAgIHZhdWx0SWQ6IGVudlN0cmluZyhlbnYudmF1bHRJZCksXG4gICAgICBpdGVtSWRUZW1wbGF0ZTogZW52U3RyaW5nKGVudi5pdGVtSWRUZW1wbGF0ZSksXG4gICAgICBrZXlJZDogZW52U3RyaW5nKGVudi5rZXlJZCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBPbmVQYXNzd29yZFNlY3JldFNlcnZpY2VDb25maWc7IGNsaWVudDogdW5rbm93biB9PiB7XG4gICAgY29uc3QgY29uZmlnID1cbiAgICAgIHRoaXMuZ2V0Q29uZmlnRnJvbUFyZ3M8T25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnPiguLi5hcmdzKTtcbiAgICBpZiAoIWNvbmZpZy5jb25uZWN0SG9zdCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiMVBhc3N3b3JkIHNlcnZpY2UgcmVxdWlyZXMgY29ubmVjdEhvc3QgY29uZmlndXJhdGlvblwiXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5fY2xpZW50ID0ge307XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQ6IHt9IH07XG4gIH1cblxuICBhc3luYyBzdG9yZTxUIGV4dGVuZHMgU2VjcmV0UGF5bG9hZCA9IFNlY3JldFBheWxvYWQ+KFxuICAgIG5hbWU6IFNlY3JldE5hbWUsXG4gICAgdmFsdWU6IFQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZWNyZXRSZWZlcmVuY2U+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic3RvcmVcIiwgdHJ1ZSkpLmZvcih0aGlzLnN0b3JlKTtcbiAgICBsb2cudmVyYm9zZShgU3RvcmluZyBzZWNyZXQgJHtuYW1lfWApO1xuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBzZXJpYWxpemVTZWNyZXRQYXlsb2FkKHZhbHVlKTtcbiAgICBjb25zdCB2YXVsdElkID0gdGhpcy5jb25maWcudmF1bHRJZDtcblxuICAgIGlmICghdmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiMVBhc3N3b3JkIHByb3ZpZGVyIHJlcXVpcmVzIGEgdmF1bHQgSUQgaW4gY29uZmlndXJhdGlvblwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW0gPSB7XG4gICAgICB0aXRsZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICBjYXRlZ29yeTogXCJsb2dpblwiLFxuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogXCJzZWNyZXRcIixcbiAgICAgICAgICB2YWx1ZTogc2VyaWFsaXplZC52YWx1ZSxcbiAgICAgICAgICBwdXJwb3NlOiBcInBhc3N3b3JkXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbm90ZXM6IGBDcmVhdGVkIGJ5IERFQ0FGIFNlY3JldCBTZXJ2aWNlIGF0ICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWAsXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucG9zdFJlcXVlc3QoXG4gICAgICAgIGAvdjEvdmF1bHRzLyR7dmF1bHRJZH0vaXRlbXNgLFxuICAgICAgICBpdGVtXG4gICAgICApO1xuXG4gICAgICBpZiAoIXJlc3BvbnNlLmlkKSB7XG4gICAgICAgIHRocm93IG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgICBcIlNFQ1JFVF9QUk9WSURFUl9DT05GTElDVFwiLFxuICAgICAgICAgIFwiRmFpbGVkIHRvIHN0b3JlIHNlY3JldDogTm8gaXRlbSBJRCByZXR1cm5lZFwiXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgICBuYW1lOiBub3JtYWxpemVkTmFtZSxcbiAgICAgICAgdmVyc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIGlkOiByZXNwb25zZS5pZCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmV0cmlldmU8VCBleHRlbmRzIFNlY3JldFBheWxvYWQgPSBTZWNyZXRQYXlsb2FkPihcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJldHJpZXZlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJldHJpZXZlXG4gICAgKTtcbiAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgIGxvZy52ZXJib3NlKGBSZXRyaWV2aW5nIHNlY3JldCAke25hbWVTdHJ9YCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcbiAgICBjb25zdCB2YXVsdElkID0gdGhpcy5jb25maWcudmF1bHRJZDtcblxuICAgIGlmICghdmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiMVBhc3N3b3JkIHByb3ZpZGVyIHJlcXVpcmVzIGEgdmF1bHQgSUQgaW4gY29uZmlndXJhdGlvblwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBpdGVtSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1JZFRlbXBsYXRlICYmXG4gICAgICB0aGlzLmNvbmZpZy5pdGVtSWRUZW1wbGF0ZS5pbmNsdWRlcyhcIiR7bmFtZX1cIilcbiAgICApIHtcbiAgICAgIGl0ZW1JZCA9IHRoaXMuY29uZmlnLml0ZW1JZFRlbXBsYXRlLnJlcGxhY2UoXCIke25hbWV9XCIsIG5vcm1hbGl6ZWROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCB0aGlzLmdldEl0ZW1zQnlUaXRsZShub3JtYWxpemVkTmFtZSwgdmF1bHRJZCk7XG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICAgIGBTZWNyZXQgXCIke25vcm1hbGl6ZWROYW1lfVwiIG5vdCBmb3VuZCBpbiB2YXVsdGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGl0ZW1JZCA9IGl0ZW1zWzBdLmlkO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBpdGVtID0gYXdhaXQgdGhpcy5nZXRSZXF1ZXN0KFxuICAgICAgICBgL3YxL3ZhdWx0cy8ke3ZhdWx0SWR9L2l0ZW1zLyR7aXRlbUlkfWBcbiAgICAgICk7XG5cbiAgICAgIGxldCB2YWx1ZSA9IFwiXCI7XG4gICAgICBpZiAoaXRlbS5maWVsZHMgJiYgQXJyYXkuaXNBcnJheShpdGVtLmZpZWxkcykpIHtcbiAgICAgICAgY29uc3Qgc2VjcmV0RmllbGQgPSBpdGVtLmZpZWxkcy5maW5kKFxuICAgICAgICAgIChmOiBhbnkpID0+IGYucHVycG9zZSA9PT0gXCJwYXNzd29yZFwiIHx8IGYubGFiZWwgPT09IFwic2VjcmV0XCJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHNlY3JldEZpZWxkICYmIHNlY3JldEZpZWxkLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB2YWx1ZSA9IHNlY3JldEZpZWxkLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdmFsdWUgJiYgaXRlbS5kZXRhaWxzICYmIGl0ZW0uZGV0YWlscy5maWVsZHMpIHtcbiAgICAgICAgY29uc3QgZmllbGRzID0gQXJyYXkuaXNBcnJheShpdGVtLmRldGFpbHMuZmllbGRzKVxuICAgICAgICAgID8gaXRlbS5kZXRhaWxzLmZpZWxkc1xuICAgICAgICAgIDogW107XG4gICAgICAgIGNvbnN0IHNlY3JldEZpZWxkID0gZmllbGRzLmZpbmQoXG4gICAgICAgICAgKGY6IGFueSkgPT4gZi5wdXJwb3NlID09PSBcInBhc3N3b3JkXCIgfHwgZi5sYWJlbCA9PT0gXCJzZWNyZXRcIlxuICAgICAgICApO1xuICAgICAgICBpZiAoc2VjcmV0RmllbGQgJiYgc2VjcmV0RmllbGQudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHZhbHVlID0gc2VjcmV0RmllbGQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgICAgXCJTRUNSRVRfTk9UX0ZPVU5EXCIsXG4gICAgICAgICAgYE5vIHNlY3JldCB2YWx1ZSBmb3VuZCBmb3IgaXRlbSBcIiR7aXRlbUlkfVwiYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXlsb2FkOiBTZXJpYWxpemVkU2VjcmV0UGF5bG9hZCA9IHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB2YWx1ZSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBkZXNlcmlhbGl6ZVNlY3JldFBheWxvYWQocGF5bG9hZCkgYXMgVDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGUoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVcIiwgdHJ1ZSkpLmZvcih0aGlzLmRlbGV0ZSk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgRGVsZXRpbmcgc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuICAgIGNvbnN0IHZhdWx0SWQgPSB0aGlzLmNvbmZpZy52YXVsdElkO1xuXG4gICAgaWYgKCF2YXVsdElkKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCIxUGFzc3dvcmQgcHJvdmlkZXIgcmVxdWlyZXMgYSB2YXVsdCBJRCBpbiBjb25maWd1cmF0aW9uXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGl0ZW1JZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUgJiZcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1JZFRlbXBsYXRlLmluY2x1ZGVzKFwiJHtuYW1lfVwiKVxuICAgICkge1xuICAgICAgaXRlbUlkID0gdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUucmVwbGFjZShcIiR7bmFtZX1cIiwgbm9ybWFsaXplZE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMuZ2V0SXRlbXNCeVRpdGxlKG5vcm1hbGl6ZWROYW1lLCB2YXVsdElkKTtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaXRlbUlkID0gaXRlbXNbMF0uaWQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlUmVxdWVzdChgL3YxL3ZhdWx0cy8ke3ZhdWx0SWR9L2l0ZW1zLyR7aXRlbUlkfWApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGV4aXN0cyhcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImV4aXN0c1wiLCB0cnVlKSkuZm9yKHRoaXMuZXhpc3RzKTtcbiAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgIGxvZy52ZXJib3NlKGBDaGVja2luZyBpZiBzZWNyZXQgJHtuYW1lU3RyfSBleGlzdHNgKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuICAgIGNvbnN0IHZhdWx0SWQgPSB0aGlzLmNvbmZpZy52YXVsdElkO1xuXG4gICAgaWYgKCF2YXVsdElkKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCIxUGFzc3dvcmQgcHJvdmlkZXIgcmVxdWlyZXMgYSB2YXVsdCBJRCBpbiBjb25maWd1cmF0aW9uXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGl0ZW1JZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUgJiZcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1JZFRlbXBsYXRlLmluY2x1ZGVzKFwiJHtuYW1lfVwiKVxuICAgICkge1xuICAgICAgaXRlbUlkID0gdGhpcy5jb25maWcuaXRlbUlkVGVtcGxhdGUucmVwbGFjZShcIiR7bmFtZX1cIiwgbm9ybWFsaXplZE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMuZ2V0SXRlbXNCeVRpdGxlKG5vcm1hbGl6ZWROYW1lLCB2YXVsdElkKTtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaXRlbUlkID0gaXRlbXNbMF0uaWQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZ2V0UmVxdWVzdChgL3YxL3ZhdWx0cy8ke3ZhdWx0SWR9L2l0ZW1zLyR7aXRlbUlkfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIEVycm9yO1xuICAgICAgaWYgKFxuICAgICAgICBlcnIubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8XG4gICAgICAgIGVyci5tZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbGlzdCguLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55Pik6IFByb21pc2U8U2VjcmV0TWV0YWRhdGFbXT4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsaXN0XCIsIHRydWUpKS5mb3IodGhpcy5saXN0KTtcbiAgICBsb2cudmVyYm9zZShcIkxpc3Rpbmcgc2VjcmV0c1wiKTtcbiAgICBjb25zdCByZXN1bHQ6IFNlY3JldE1ldGFkYXRhW10gPSBbXTtcbiAgICBjb25zdCB2YXVsdElkID0gdGhpcy5jb25maWcudmF1bHRJZDtcblxuICAgIGlmICghdmF1bHRJZCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCB0aGlzLmdldFJlcXVlc3QoYC92MS92YXVsdHMvJHt2YXVsdElkfS9pdGVtc2ApO1xuXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgQXJyYXkuaXNBcnJheShpdGVtcykgPyBpdGVtcyA6IFtpdGVtc10pIHtcbiAgICAgICAgaWYgKGl0ZW0uaWQgJiYgaXRlbS50aXRsZSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgICAgICAgbmFtZTogaXRlbS50aXRsZSxcbiAgICAgICAgICAgIHZlcnNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogaXRlbS5jcmVhdGVkQXQgPyBuZXcgRGF0ZShpdGVtLmNyZWF0ZWRBdCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1cGRhdGVkQXQ6IGl0ZW0udXBkYXRlZEF0ID8gbmV3IERhdGUoaXRlbS51cGRhdGVkQXQpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGV4dGVybmFsSWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICB0YWdzOiBpdGVtLmNhdGVnb3J5ID8geyBjYXRlZ29yeTogaXRlbS5jYXRlZ29yeSB9IDogdW5kZWZpbmVkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbWV0YWRhdGEoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0TWV0YWRhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibWV0YWRhdGFcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMubWV0YWRhdGFcbiAgICApO1xuICAgIGNvbnN0IG5hbWVTdHIgPSB0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gbmFtZU9yUmVmIDogbmFtZU9yUmVmLm5hbWU7XG4gICAgbG9nLnZlcmJvc2UoYEdldHRpbmcgbWV0YWRhdGEgZm9yIHNlY3JldCAke25hbWVTdHJ9YCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcbiAgICBjb25zdCB2YXVsdElkID0gdGhpcy5jb25maWcudmF1bHRJZDtcblxuICAgIGlmICghdmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiMVBhc3N3b3JkIHByb3ZpZGVyIHJlcXVpcmVzIGEgdmF1bHQgSUQgaW4gY29uZmlndXJhdGlvblwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBpdGVtSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1JZFRlbXBsYXRlICYmXG4gICAgICB0aGlzLmNvbmZpZy5pdGVtSWRUZW1wbGF0ZS5pbmNsdWRlcyhcIiR7bmFtZX1cIilcbiAgICApIHtcbiAgICAgIGl0ZW1JZCA9IHRoaXMuY29uZmlnLml0ZW1JZFRlbXBsYXRlLnJlcGxhY2UoXCIke25hbWV9XCIsIG5vcm1hbGl6ZWROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCB0aGlzLmdldEl0ZW1zQnlUaXRsZShub3JtYWxpemVkTmFtZSwgdmF1bHRJZCk7XG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpdGVtSWQgPSBpdGVtc1swXS5pZDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgaXRlbSA9IGF3YWl0IHRoaXMuZ2V0UmVxdWVzdChcbiAgICAgICAgYC92MS92YXVsdHMvJHt2YXVsdElkfS9pdGVtcy8ke2l0ZW1JZH1gXG4gICAgICApO1xuXG4gICAgICBjb25zdCBtZXRhOiBTZWNyZXRNZXRhZGF0YSA9IHtcbiAgICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICAgIG5hbWU6IGl0ZW0udGl0bGUgfHwgbm9ybWFsaXplZE5hbWUsXG4gICAgICAgIHZlcnNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgY3JlYXRlZEF0OiBpdGVtLmNyZWF0ZWRBdCA/IG5ldyBEYXRlKGl0ZW0uY3JlYXRlZEF0KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgdXBkYXRlZEF0OiBpdGVtLnVwZGF0ZWRBdCA/IG5ldyBEYXRlKGl0ZW0udXBkYXRlZEF0KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgZXh0ZXJuYWxJZDogaXRlbS5pZCxcbiAgICAgICAgdGFnczogaXRlbS5jYXRlZ29yeSA/IHsgY2F0ZWdvcnk6IGl0ZW0uY2F0ZWdvcnkgfSA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBtZXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnIgPSBlcnJvciBhcyBFcnJvcjtcbiAgICAgIGlmIChcbiAgICAgICAgZXJyLm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fFxuICAgICAgICBlcnIubWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogdW5rbm93bik6IFNlY3JldEVycm9yIHtcbiAgICBjb25zdCBlcnIgPSBlcnJvciBhcyBFcnJvcjtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyLm1lc3NhZ2UgfHwgZXJyLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX05PVF9GT1VORFwiLFxuICAgICAgICBgU2VjcmV0IG5vdCBmb3VuZDogJHttZXNzYWdlfWAsXG4gICAgICAgIGVyclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHxcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfQUxSRUFEWV9FWElTVFNcIixcbiAgICAgICAgYFNlY3JldCBhbHJlYWR5IGV4aXN0czogJHttZXNzYWdlfWAsXG4gICAgICAgIGVyclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfUFJPVklERVJfQVVUSF9GQUlMRURcIixcbiAgICAgICAgYEF1dGhlbnRpY2F0aW9uIGZhaWxlZDogJHttZXNzYWdlfWAsXG4gICAgICAgIGVyclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwicGVybWlzc2lvblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX1BST1ZJREVSX1BFUk1JU1NJT05fREVOSUVEXCIsXG4gICAgICAgIGBQZXJtaXNzaW9uIGRlbmllZDogJHttZXNzYWdlfWAsXG4gICAgICAgIGVyclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwicmF0ZSBsaW1pdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MjlcIikpIHtcbiAgICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX1BST1ZJREVSX1JBVEVfTElNSVRFRFwiLFxuICAgICAgICBgUmF0ZSBsaW1pdGVkOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInByb3ZpZGVyXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF2YWlsYWJsZVwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29ubmVjdGlvblwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidGltZW91dFwiKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfUFJPVklERVJfVU5BVkFJTEFCTEVcIixcbiAgICAgICAgYFByb3ZpZGVyIHVuYXZhaWxhYmxlOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICBcIlNFQ1JFVF9QUk9WSURFUl9DT05GTElDVFwiLFxuICAgICAgYFByb3ZpZGVyIGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgIGVyclxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFJlcXVlc3QocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy5jb25uZWN0SG9zdH0ke3BhdGh9YDtcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgfTtcbiAgICBpZiAodGhpcy5jb25maWcuY29ubmVjdFRva2VuKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCZWFyZXIgJHt0aGlzLmNvbmZpZy5jb25uZWN0VG9rZW59YDtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgaGVhZGVycyxcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnN0IGVycm9yQm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKS5jYXRjaCgoKSA9PiBcIlwiKTtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgMVBhc3N3b3JkIEFQSSBlcnJvciAoJHtyZXNwb25zZS5zdGF0dXN9KTogJHtlcnJvckJvZHkgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHBvc3RSZXF1ZXN0KHBhdGg6IHN0cmluZywgYm9keTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy5jb25uZWN0SG9zdH0ke3BhdGh9YDtcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgfTtcbiAgICBpZiAodGhpcy5jb25maWcuY29ubmVjdFRva2VuKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCZWFyZXIgJHt0aGlzLmNvbmZpZy5jb25uZWN0VG9rZW59YDtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhlYWRlcnMsXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShib2R5KSxcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnN0IGVycm9yQm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKS5jYXRjaCgoKSA9PiBcIlwiKTtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgMVBhc3N3b3JkIEFQSSBlcnJvciAoJHtyZXNwb25zZS5zdGF0dXN9KTogJHtlcnJvckJvZHkgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRlbGV0ZVJlcXVlc3QocGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5jb25maWcuY29ubmVjdEhvc3R9JHtwYXRofWA7XG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgIH07XG4gICAgaWYgKHRoaXMuY29uZmlnLmNvbm5lY3RUb2tlbikge1xuICAgICAgaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQmVhcmVyICR7dGhpcy5jb25maWcuY29ubmVjdFRva2VufWA7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZDogXCJERUxFVEVcIixcbiAgICAgIGhlYWRlcnMsXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zdCBlcnJvckJvZHkgPSBhd2FpdCByZXNwb25zZS50ZXh0KCkuY2F0Y2goKCkgPT4gXCJcIik7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYDFQYXNzd29yZCBBUEkgZXJyb3IgKCR7cmVzcG9uc2Uuc3RhdHVzfSk6ICR7ZXJyb3JCb2R5IHx8IHJlc3BvbnNlLnN0YXR1c1RleHR9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEl0ZW1zQnlUaXRsZShcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIHZhdWx0SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPGFueVtdPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFsbEl0ZW1zID0gYXdhaXQgdGhpcy5nZXRSZXF1ZXN0KGAvdjEvdmF1bHRzLyR7dmF1bHRJZH0vaXRlbXNgKTtcbiAgICAgIGNvbnN0IGl0ZW1zID0gQXJyYXkuaXNBcnJheShhbGxJdGVtcykgPyBhbGxJdGVtcyA6IFthbGxJdGVtc107XG4gICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnRpdGxlID09PSB0aXRsZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=OnePasswordSecretServiceConfig.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvb25lcGFzc3dvcmQvT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvb25lcGFzc3dvcmQvY29uZmlnXG4gKiBAc3VtbWFyeSAxUGFzc3dvcmQgc2VjcmV0IHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIHNjaGVtYSBmb3IgdGhlIDFQYXNzd29yZCBDb25uZWN0IGludGVncmF0aW9uLlxuICovXG5pbXBvcnQgeyBTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9uZVBhc3N3b3JkU2VjcmV0U2VydmljZUNvbmZpZyBleHRlbmRzIFNlY3JldFNlcnZpY2VDb25maWcge1xuICBwcm92aWRlcjogXCIxcGFzc3dvcmRcIjtcbiAgY29ubmVjdEhvc3Q6IHN0cmluZztcbiAgY29ubmVjdFRva2VuPzogc3RyaW5nO1xuICB2YXVsdElkPzogc3RyaW5nO1xuICBpdGVtSWRUZW1wbGF0ZT86IHN0cmluZztcbn1cbiJdfQ==
@@ -6,4 +6,4 @@
6
6
  export * from "./OnePasswordSecretService.js";
7
7
  export * from "./OnePasswordSecretServiceConfig.js";
8
8
  export * from "./OnePasswordSecretEnvironment.js";
9
- //# sourceMappingURL=index.js.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9vbmVwYXNzd29yZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsOENBQTJDO0FBQzNDLG9EQUFpRDtBQUNqRCxrREFBK0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvb25lcGFzc3dvcmRcbiAqIEBzdW1tYXJ5IDFQYXNzd29yZCBzZWNyZXQgc2VydmljZSBleHBvcnRzLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIDFQYXNzd29yZCBzZWNyZXQgc2VydmljZSBhbmQgaXRzIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL09uZVBhc3N3b3JkU2VjcmV0U2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vT25lUGFzc3dvcmRTZWNyZXRTZXJ2aWNlQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9PbmVQYXNzd29yZFNlY3JldEVudmlyb25tZW50XCI7XG4iXX0=
@@ -17,4 +17,4 @@ export const VaultSecretEnvironment = SecretEnvironment.accumulate({
17
17
  },
18
18
  },
19
19
  });
20
- //# sourceMappingURL=VaultSecretEnvironment.js.map
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmF1bHRTZWNyZXRFbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWNyZXRzL3ZhdWx0L1ZhdWx0U2VjcmV0RW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVDQUFrQztBQWdCOUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDO0lBQ2pFLE9BQU8sRUFBRTtRQUNQLEtBQUssRUFBRTtZQUNMLE9BQU8sRUFBRSxFQUFFO1lBQ1gsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxFQUFFO1lBQ2IsS0FBSyxFQUFFLEVBQUU7U0FDVjtLQUNGO0NBQzZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2VjcmV0cy92YXVsdC9lbnZpcm9ubWVudFxuICogQHN1bW1hcnkgSGFzaGlDb3JwIFZhdWx0IHNlY3JldCBlbnZpcm9ubWVudC5cbiAqIEBkZXNjcmlwdGlvbiBFeHRlbmRzIHRoZSBjb21tb24gc2VjcmV0cyBlbnZpcm9ubWVudCB3aXRoIHRoZSBgc2VjcmV0cy52YXVsdGAgc2hhcGVcbiAqIG1hdGNoaW5nIHtAbGluayBWYXVsdFNlY3JldFNlcnZpY2VDb25maWd9LCBzbyB7QGxpbmsgVmF1bHRTZWNyZXRTZXJ2aWNlfSBjYW4gZmFsbFxuICogYmFjayB0byBpdCB3aGVuIG5vIGNvbmZpZyBpcyBwYXNzZWQgdG8gYGluaXRpYWxpemVgLlxuICovXG5pbXBvcnQgeyBTZWNyZXRFbnZpcm9ubWVudCB9IGZyb20gXCIuLi9jb3JlL1NlY3JldEVudmlyb25tZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmF1bHRTZWNyZXRFbnZpcm9ubWVudENvbmZpZyB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIGtleUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZhdWx0U2VjcmV0RW52aXJvbm1lbnRTaGFwZSB7XG4gIHNlY3JldHM6IHtcbiAgICB2YXVsdDogVmF1bHRTZWNyZXRFbnZpcm9ubWVudENvbmZpZztcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IFZhdWx0U2VjcmV0RW52aXJvbm1lbnQgPSBTZWNyZXRFbnZpcm9ubWVudC5hY2N1bXVsYXRlKHtcbiAgc2VjcmV0czoge1xuICAgIHZhdWx0OiB7XG4gICAgICBhZGRyZXNzOiBcIlwiLFxuICAgICAgdG9rZW46IFwiXCIsXG4gICAgICBwYXRoOiBcIlwiLFxuICAgICAgbmFtZXNwYWNlOiBcIlwiLFxuICAgICAga2V5SWQ6IFwiXCIsXG4gICAgfSxcbiAgfSxcbn0gYXMgVmF1bHRTZWNyZXRFbnZpcm9ubWVudFNoYXBlKTtcbiJdfQ==
@@ -326,4 +326,4 @@ export class VaultSecretService extends ClientBasedSecretService {
326
326
  return new InternalError(message);
327
327
  }
328
328
  }
329
- //# sourceMappingURL=VaultSecretService.js.map
329
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmF1bHRTZWNyZXRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvdmF1bHQvVmF1bHRTZWNyZXRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBa0IsMkJBQTJCO0FBUTlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkI7QUFDN0UsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix3QkFBd0IsR0FFekIsMkJBQTJCO0FBRzVCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQ0FBaUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSwyQ0FBc0M7QUFDMUQsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsYUFBYSxFQUNiLGFBQWEsR0FDZCxNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQVksTUFLWDtRQUNDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sS0FBSyxDQUFDLE9BQU8sQ0FDbkIsTUFBYyxFQUNkLElBQVksRUFDWixJQUFVO1FBRVYsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUEyQjtZQUN0QyxlQUFl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QUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWVudEJhc2VkU2VjcmV0U2VydmljZSwgU2VjcmV0UHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQge1xuICBTZWNyZXROYW1lLFxuICBTZWNyZXRQYXlsb2FkLFxuICBTZWNyZXRSZWZlcmVuY2UsXG4gIFNlY3JldE1ldGFkYXRhLFxufSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQgeyBTdG9yZVNlY3JldE9wdGlvbnMsIExpc3RTZWNyZXRzT3B0aW9ucyB9IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcbmltcG9ydCB7IHZhbGlkYXRlU2VjcmV0TmFtZSwgbm9ybWFsaXplU2VjcmV0TmFtZSB9IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIHNlcmlhbGl6ZVNlY3JldFBheWxvYWQsXG4gIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZCxcbiAgdHlwZSBTZXJpYWxpemVkU2VjcmV0UGF5bG9hZCxcbn0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuaW1wb3J0IHsgdHlwZSBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFZhdWx0U2VjcmV0U2VydmljZUNvbmZpZyB9IGZyb20gXCIuL1ZhdWx0U2VjcmV0U2VydmljZUNvbmZpZ1wiO1xuaW1wb3J0IHsgVmF1bHRTZWNyZXRFbnZpcm9ubWVudCB9IGZyb20gXCIuL1ZhdWx0U2VjcmV0RW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IGVudlN0cmluZyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvZW52aXJvbm1lbnRWYWx1ZVwiO1xuaW1wb3J0IHtcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuZXhwb3J0IGNsYXNzIFZhdWx0S3ZWMkNsaWVudCB7XG4gIHByaXZhdGUgYmFzZVVybDogc3RyaW5nO1xuICBwcml2YXRlIHRva2VuOiBzdHJpbmc7XG4gIHByaXZhdGUgbW91bnRQYXRoOiBzdHJpbmc7XG4gIHByaXZhdGUgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzoge1xuICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICB0b2tlbjogc3RyaW5nO1xuICAgIG1vdW50UGF0aDogc3RyaW5nO1xuICAgIG5hbWVzcGFjZT86IHN0cmluZztcbiAgfSkge1xuICAgIHRoaXMuYmFzZVVybCA9IGNvbmZpZy5iYXNlVXJsLnJlcGxhY2UoL1xcLyskLywgXCJcIik7XG4gICAgdGhpcy50b2tlbiA9IGNvbmZpZy50b2tlbjtcbiAgICB0aGlzLm1vdW50UGF0aCA9IGNvbmZpZy5tb3VudFBhdGgucmVwbGFjZSgvXlxcLysvLCBcIlwiKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpO1xuICAgIHRoaXMubmFtZXNwYWNlID0gY29uZmlnLm5hbWVzcGFjZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVxdWVzdDxUID0gYW55PihcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYm9keT86IGFueVxuICApOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L3YxLyR7cGF0aH1gO1xuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBcIlgtVmF1bHQtVG9rZW5cIjogdGhpcy50b2tlbixcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5uYW1lc3BhY2UpIHtcbiAgICAgIGhlYWRlcnNbXCJYLVZhdWx0LU5hbWVzcGFjZVwiXSA9IHRoaXMubmFtZXNwYWNlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2QsXG4gICAgICBoZWFkZXJzLFxuICAgICAgYm9keTogYm9keSA/IEpTT04uc3RyaW5naWZ5KGJvZHkpIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0gKGF3YWl0IHJlc3BvbnNlXG4gICAgICAgIC5qc29uKClcbiAgICAgICAgLmNhdGNoKCgpID0+ICh7IGVycm9yczogW10gfSkpKSBhcyB7IGVycm9ycz86IHN0cmluZ1tdIH07XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JEYXRhLmVycm9ycz8uam9pbihcIiwgXCIpIHx8IHJlc3BvbnNlLnN0YXR1c1RleHQ7XG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICBlcnIubmFtZSA9IGBWYXVsdEVycm9yYDtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQgYXMgVDtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgIGlmICghdGV4dCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBUO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHRleHQpIGFzIHsgZGF0YT86IFQgfTtcbiAgICByZXR1cm4gZGF0YS5kYXRhIGFzIFQ7XG4gIH1cblxuICBhc3luYyByZWFkKHBhdGg6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxhbnk+KFwiR0VUXCIsIGAke3RoaXMubW91bnRQYXRofS9kYXRhLyR7cGF0aH1gKTtcbiAgfVxuXG4gIGFzeW5jIHdyaXRlKHBhdGg6IHN0cmluZywgZGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5yZXF1ZXN0PHZvaWQ+KFwiUE9TVFwiLCBgJHt0aGlzLm1vdW50UGF0aH0vZGF0YS8ke3BhdGh9YCwge1xuICAgICAgZGF0YSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJlcXVlc3Q8dm9pZD4oXCJERUxFVEVcIiwgYCR7dGhpcy5tb3VudFBhdGh9L2RhdGEvJHtwYXRofWApO1xuICB9XG5cbiAgYXN5bmMgbGlzdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5yZXF1ZXN0PHsga2V5czogc3RyaW5nW10gfT4oXG4gICAgICBcIkxJU1RcIixcbiAgICAgIGAke3RoaXMubW91bnRQYXRofS9tZXRhZGF0YS8ke3BhdGh9YFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdC5rZXlzIHx8IFtdO1xuICB9XG5cbiAgYXN5bmMgbWV0YWRhdGEocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PGFueT4oXCJHRVRcIiwgYCR7dGhpcy5tb3VudFBhdGh9L21ldGFkYXRhLyR7cGF0aH1gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVmF1bHRTZWNyZXRTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZWNyZXRTZXJ2aWNlPFxuICBWYXVsdEt2VjJDbGllbnQsXG4gIFZhdWx0U2VjcmV0U2VydmljZUNvbmZpZ1xuPiB7XG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBTZWNyZXRQcm92aWRlciA9IFwiaGFzaGljb3JwLXZhdWx0XCI7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpOiBWYXVsdFNlY3JldFNlcnZpY2VDb25maWcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGVudiA9IFZhdWx0U2VjcmV0RW52aXJvbm1lbnQuc2VjcmV0cy52YXVsdDtcbiAgICBjb25zdCBhZGRyZXNzID0gZW52U3RyaW5nKGVudj8uYWRkcmVzcyk7XG4gICAgY29uc3QgdG9rZW4gPSBlbnZTdHJpbmcoZW52Py50b2tlbik7XG4gICAgY29uc3QgcGF0aCA9IGVudlN0cmluZyhlbnY/LnBhdGgpO1xuICAgIGlmICghYWRkcmVzcyB8fCAhdG9rZW4gfHwgIXBhdGgpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGVyOiBcImhhc2hpY29ycC12YXVsdFwiLFxuICAgICAgYWRkcmVzcyxcbiAgICAgIHRva2VuLFxuICAgICAgcGF0aCxcbiAgICAgIG5hbWVzcGFjZTogZW52U3RyaW5nKGVudi5uYW1lc3BhY2UpLFxuICAgICAga2V5SWQ6IGVudlN0cmluZyhlbnYua2V5SWQpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IFZhdWx0U2VjcmV0U2VydmljZUNvbmZpZzsgY2xpZW50OiBWYXVsdEt2VjJDbGllbnQgfT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0Q29uZmlnRnJvbUFyZ3M8VmF1bHRTZWNyZXRTZXJ2aWNlQ29uZmlnPiguLi5hcmdzKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgVmF1bHRLdlYyQ2xpZW50KHtcbiAgICAgIGJhc2VVcmw6IGNvbmZpZy5hZGRyZXNzLFxuICAgICAgdG9rZW46IGNvbmZpZy50b2tlbixcbiAgICAgIG1vdW50UGF0aDogY29uZmlnLnBhdGgsXG4gICAgICBuYW1lc3BhY2U6IGNvbmZpZy5uYW1lc3BhY2UsXG4gICAgfSk7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICB9XG5cbiAgYXN5bmMgc3RvcmU8VCBleHRlbmRzIFNlY3JldFBheWxvYWQgPSBTZWNyZXRQYXlsb2FkPihcbiAgICBuYW1lOiBTZWNyZXROYW1lLFxuICAgIHZhbHVlOiBULFxuICAgIG9wdGlvbnM6IFN0b3JlU2VjcmV0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0UmVmZXJlbmNlPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInN0b3JlXCIsIHRydWUpKS5mb3IodGhpcy5zdG9yZSk7XG4gICAgbG9nLnZlcmJvc2UoYFN0b3Jpbmcgc2VjcmV0ICR7bmFtZX1gKTtcbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc2VyaWFsaXplU2VjcmV0UGF5bG9hZCh2YWx1ZSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jbGllbnQud3JpdGUobm9ybWFsaXplZE5hbWUsIHtcbiAgICAgICAgdmFsdWU6IHNlcmlhbGl6ZWQudmFsdWUsXG4gICAgICAgIGVuY29kaW5nOiBzZXJpYWxpemVkLmVuY29kaW5nLFxuICAgICAgICBjb250ZW50VHlwZTogb3B0aW9ucy5jb250ZW50VHlwZSxcbiAgICAgICAgdGFnczogb3B0aW9ucy50YWdzLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgICBuYW1lOiBub3JtYWxpemVkTmFtZSxcbiAgICAgICAgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAoXG4gICAgICAgIGVycm9yPy5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiYWxyZWFkeVwiKSB8fFxuICAgICAgICBlcnJvcj8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoXCJhbHJlYWR5XCIpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoYFNlY3JldCBcIiR7bm9ybWFsaXplZE5hbWV9XCIgYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgIH1cbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmV0cmlldmU8VCBleHRlbmRzIFNlY3JldFBheWxvYWQgPSBTZWNyZXRQYXlsb2FkPihcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJldHJpZXZlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJldHJpZXZlXG4gICAgKTtcbiAgICBjb25zdCBuYW1lU3RyID0gdHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IG5hbWVPclJlZiA6IG5hbWVPclJlZi5uYW1lO1xuICAgIGxvZy52ZXJib3NlKGBSZXRyaWV2aW5nIHNlY3JldCAke25hbWVTdHJ9YCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlYWQobm9ybWFsaXplZE5hbWUpO1xuXG4gICAgICBpZiAoIXJlc3BvbnNlPy5kYXRhPy52YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgU2VjcmV0IFwiJHtub3JtYWxpemVkTmFtZX1cIiBoYXMgbm8gdmFsdWVgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGF5bG9hZDogU2VyaWFsaXplZFNlY3JldFBheWxvYWQgPSB7XG4gICAgICAgIGVuY29kaW5nOiByZXNwb25zZS5kYXRhLmVuY29kaW5nID8/IFwidXRmOFwiLFxuICAgICAgICB2YWx1ZTogcmVzcG9uc2UuZGF0YS52YWx1ZSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBkZXNlcmlhbGl6ZVNlY3JldFBheWxvYWQocGF5bG9hZCkgYXMgVDtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAoXG4gICAgICAgIGVycm9yPy5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8XG4gICAgICAgIGVycm9yPy5tZXNzYWdlPy50b0xvd2VyQ2FzZSgpPy5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBTZWNyZXQgXCIke25vcm1hbGl6ZWROYW1lfVwiIG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGUoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVcIiwgdHJ1ZSkpLmZvcih0aGlzLmRlbGV0ZSk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgRGVsZXRpbmcgc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZShub3JtYWxpemVkTmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBleGlzdHMoXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJleGlzdHNcIiwgdHJ1ZSkpLmZvcih0aGlzLmV4aXN0cyk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgQ2hlY2tpbmcgaWYgc2VjcmV0ICR7bmFtZVN0cn0gZXhpc3RzYCk7XG5cbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lT3JSZWYubmFtZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVTZWNyZXROYW1lKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplU2VjcmV0TmFtZShuYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC5yZWFkKG5vcm1hbGl6ZWROYW1lKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgZXJyb3I/Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHxcbiAgICAgICAgZXJyb3I/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKFwibm90IGZvdW5kXCIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsaXN0KFxuICAgIG9wdGlvbnM6IExpc3RTZWNyZXRzT3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0TWV0YWRhdGFbXT4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsaXN0XCIsIHRydWUpKS5mb3IodGhpcy5saXN0KTtcbiAgICBsb2cudmVyYm9zZShcIkxpc3Rpbmcgc2VjcmV0c1wiKTtcbiAgICBjb25zdCByZXN1bHQ6IFNlY3JldE1ldGFkYXRhW10gPSBbXTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBrZXlzID0gYXdhaXQgdGhpcy5jbGllbnQubGlzdChcIlwiKTtcblxuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICBpZiAob3B0aW9ucy5saW1pdCAmJiByZXN1bHQubGVuZ3RoID49IG9wdGlvbnMubGltaXQpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1ldGEgPSBhd2FpdCB0aGlzLmNsaWVudC5tZXRhZGF0YShrZXkpO1xuXG4gICAgICAgIGlmIChtZXRhKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICAgICAgICBuYW1lOiBrZXksXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IG1ldGEuY3JlYXRlZF90aW1lXG4gICAgICAgICAgICAgID8gbmV3IERhdGUobWV0YS5jcmVhdGVkX3RpbWUpXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdXBkYXRlZEF0OiBtZXRhLnVwZGF0ZWRfdGltZVxuICAgICAgICAgICAgICA/IG5ldyBEYXRlKG1ldGEudXBkYXRlZF90aW1lKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICB0YWdzOiBtZXRhLmN1c3RvbV9tZXRhZGF0YSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhc3luYyBtZXRhZGF0YShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZWNyZXRNZXRhZGF0YSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJtZXRhZGF0YVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5tZXRhZGF0YVxuICAgICk7XG4gICAgY29uc3QgbmFtZVN0ciA9IHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBsb2cudmVyYm9zZShgR2V0dGluZyBtZXRhZGF0YSBmb3Igc2VjcmV0ICR7bmFtZVN0cn1gKTtcblxuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWVPclJlZi5uYW1lO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVNlY3JldE5hbWUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvciBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGEgPSBhd2FpdCB0aGlzLmNsaWVudC5tZXRhZGF0YShub3JtYWxpemVkTmFtZSk7XG5cbiAgICAgIGlmICghbWV0YSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQ6IFNlY3JldE1ldGFkYXRhID0ge1xuICAgICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICAgIGNyZWF0ZWRBdDogbWV0YS5jcmVhdGVkX3RpbWUgPyBuZXcgRGF0ZShtZXRhLmNyZWF0ZWRfdGltZSkgOiB1bmRlZmluZWQsXG4gICAgICAgIHVwZGF0ZWRBdDogbWV0YS51cGRhdGVkX3RpbWUgPyBuZXcgRGF0ZShtZXRhLnVwZGF0ZWRfdGltZSkgOiB1bmRlZmluZWQsXG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhZ3M6IG1ldGEuY3VzdG9tX21ldGFkYXRhID8/IHVuZGVmaW5lZCxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKFxuICAgICAgICBlcnJvcj8ubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fFxuICAgICAgICBlcnJvcj8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoXCJub3QgZm91bmRcIilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogdW5rbm93bik6IEVycm9yIHtcbiAgICBjb25zdCBlcnIgPSBlcnJvciBhcyBFcnJvcjtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyLm1lc3NhZ2UgfHwgZXJyLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHxcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJkaXNhYmxlZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJwZXJtaXNzaW9uXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJyYXRlIGxpbWl0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQyOVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwicHJvdmlkZXJcIikgfHxcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXZhaWxhYmxlXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25uZWN0aW9uXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ0aW1lb3V0XCIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=VaultSecretServiceConfig.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmF1bHRTZWNyZXRTZXJ2aWNlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3JldHMvdmF1bHQvVmF1bHRTZWNyZXRTZXJ2aWNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvdmF1bHQvY29uZmlnXG4gKiBAc3VtbWFyeSBWYXVsdCBzZWNyZXQgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gc2NoZW1hIGZvciB0aGUgSGFzaGlDb3JwIFZhdWx0IEtWIHYyIGludGVncmF0aW9uLlxuICovXG5pbXBvcnQgeyBTZWNyZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhdWx0U2VjcmV0U2VydmljZUNvbmZpZyBleHRlbmRzIFNlY3JldFNlcnZpY2VDb25maWcge1xuICBwcm92aWRlcjogXCJoYXNoaWNvcnAtdmF1bHRcIjtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB0b2tlbjogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIG5hbWVzcGFjZT86IHN0cmluZztcbn1cbiJdfQ==
@@ -6,4 +6,4 @@
6
6
  export * from "./VaultSecretService.js";
7
7
  export * from "./VaultSecretServiceConfig.js";
8
8
  export * from "./VaultSecretEnvironment.js";
9
- //# sourceMappingURL=index.js.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy92YXVsdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsd0NBQXFDO0FBQ3JDLDhDQUEyQztBQUMzQyw0Q0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMvdmF1bHRcbiAqIEBzdW1tYXJ5IEhhc2hpQ29ycCBWYXVsdCBzZWNyZXQgc2VydmljZSBleHBvcnRzLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIFZhdWx0IEtWIHYyIHNlcnZpY2UgYW5kIGl0cyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9WYXVsdFNlY3JldFNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1ZhdWx0U2VjcmV0U2VydmljZUNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vVmF1bHRTZWNyZXRFbnZpcm9ubWVudFwiO1xuIl19
@@ -24,4 +24,4 @@ export const AwsSftpEnvironment = SftpEnvironment.accumulate({
24
24
  },
25
25
  },
26
26
  });
27
- //# sourceMappingURL=AwsSftpEnvironment.js.map
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXdzU2Z0cEVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NmdHAvYXdzL0F3c1NmdHBFbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsZUFBZSxFQUFFLHFDQUFnQztBQXVCMUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztJQUMzRCxJQUFJLEVBQUU7UUFDSixHQUFHLEVBQUU7WUFDSCxRQUFRLEVBQUUsRUFBRTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFNBQThCO1lBQ3BDLFFBQVEsRUFBRSxFQUFFO1lBQ1osUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsRUFBRTtZQUNkLFVBQVUsRUFBRSxFQUFFO1lBQ2QsVUFBVSxFQUFFLEVBQUU7WUFDZCxNQUFNLEVBQUUsRUFBRTtZQUNWLE1BQU0sRUFBRSxFQUFFO1lBQ1YsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsRUFBRTtTQUNiO0tBQ0Y7Q0FDeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9zZnRwL2F3cy9lbnZpcm9ubWVudFxuICogQHN1bW1hcnkgQVdTIFRyYW5zZmVyIEZhbWlseSBTRlRQIHNvdXJjZSBlbnZpcm9ubWVudC5cbiAqIEBkZXNjcmlwdGlvbiBFeHRlbmRzIHRoZSBjb21tb24gU0ZUUCBlbnZpcm9ubWVudCB3aXRoIHRoZSBgc2Z0cC5hd3NgIHNoYXBlXG4gKiBtYXRjaGluZyB7QGxpbmsgQXdzVHJhbnNmZXJTZnRwQ29uZmlnfSwgc28ge0BsaW5rIEF3c1NmdHBTZXJ2aWNlfSBjYW4gZmFsbCBiYWNrXG4gKiB0byBpdCB3aGVuIG5vIGNvbmZpZyBpcyBwYXNzZWQgdG8gYGluaXRpYWxpemVgLlxuICovXG5pbXBvcnQgeyBTZnRwRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vY29yZS9TZnRwRW52aXJvbm1lbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBd3NTZnRwRW52aXJvbm1lbnRDb25maWcge1xuICBzb3VyY2VJZDogc3RyaW5nO1xuICBob3N0OiBzdHJpbmc7XG4gIHBvcnQ/OiBudW1iZXI7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBwcml2YXRlS2V5Pzogc3RyaW5nO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICByZW1vdGVQYXRoPzogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgYnVja2V0OiBzdHJpbmc7XG4gIHMzUHJlZml4Pzogc3RyaW5nO1xuICBzZXJ2ZXJJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBd3NTZnRwRW52aXJvbm1lbnRTaGFwZSB7XG4gIHNmdHA6IHtcbiAgICBhd3M6IEF3c1NmdHBFbnZpcm9ubWVudENvbmZpZztcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEF3c1NmdHBFbnZpcm9ubWVudCA9IFNmdHBFbnZpcm9ubWVudC5hY2N1bXVsYXRlKHtcbiAgc2Z0cDoge1xuICAgIGF3czoge1xuICAgICAgc291cmNlSWQ6IFwiXCIsXG4gICAgICBob3N0OiBcIlwiLFxuICAgICAgcG9ydDogdW5kZWZpbmVkIGFzIHVua25vd24gYXMgbnVtYmVyLFxuICAgICAgdXNlcm5hbWU6IFwiXCIsXG4gICAgICBwYXNzd29yZDogXCJcIixcbiAgICAgIHByaXZhdGVLZXk6IFwiXCIsXG4gICAgICBwYXNzcGhyYXNlOiBcIlwiLFxuICAgICAgcmVtb3RlUGF0aDogXCJcIixcbiAgICAgIHJlZ2lvbjogXCJcIixcbiAgICAgIGJ1Y2tldDogXCJcIixcbiAgICAgIHMzUHJlZml4OiBcIlwiLFxuICAgICAgc2VydmVySWQ6IFwiXCIsXG4gICAgfSxcbiAgfSxcbn0gYXMgQXdzU2Z0cEVudmlyb25tZW50U2hhcGUpO1xuIl19
@@ -125,4 +125,4 @@ AwsSftpService = __decorate([
125
125
  __metadata("design:paramtypes", [])
126
126
  ], AwsSftpService);
127
127
  export { AwsSftpService };
128
- //# sourceMappingURL=AwsSftpService.js.map
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXdzU2Z0cFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Z0cC9hd3MvQXdzU2Z0cFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBZ0QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUNMLFVBQVUsRUFJVixnQkFBZ0IsR0FDakIsZ0NBQTJCO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQ0FBNkI7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsMkNBQXNDO0FBc0I5RCxJQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFlLFNBQVEsVUFHbkM7SUFDQztRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLHFCQUFxQjtRQUM3QixNQUFNLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLElBQ0UsQ0FBQyxNQUFNO1lBQ1AsQ0FBQyxNQUFNO1lBQ1AsQ0FBQyxJQUFJO1lBQ0wsQ0FBQyxRQUFR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LEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsVUFBa0I7SUFDbEIsNkRBQTZEO0lBQzdELEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUM3QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzFCLEdBQUcsRUFBRSxVQUFVO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw2REFBNkQ7SUFDcEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQTZCLElBQWtCLENBQUM7Q0FDekUsQ0FBQTtBQWpJWSxjQUFjO0lBRDFCLE9BQU8sQ0FBQyxVQUFVLENBQUM7O0dBQ1AsY0FBYyxDQWlJMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZXJ2aWNlLCB0eXBlIENvbnRleHR1YWxBcmdzLCB0eXBlIE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgU2Z0cFNvdXJjZSxcbiAgdHlwZSBTZnRwRmlsZUVudHJ5LFxuICB0eXBlIFNmdHBGaWxlUmVzdWx0LFxuICB0eXBlIFNmdHBTb3VyY2VDb25maWcsXG4gIGFzc2VydFNmdHBDb25maWcsXG59IGZyb20gXCIuLi9jb3JlL1NmdHBTb3VyY2VcIjtcbmltcG9ydCB7IEF3c1NmdHBFbnZpcm9ubWVudCB9IGZyb20gXCIuL0F3c1NmdHBFbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgZW52TnVtYmVyLCBlbnZTdHJpbmcgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2Vudmlyb25tZW50VmFsdWVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBd3NUcmFuc2ZlclNmdHBDb25maWcgZXh0ZW5kcyBTZnRwU291cmNlQ29uZmlnIHtcbiAgcHJvdmlkZXI6IFwiYXdzLXRyYW5zZmVyXCI7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBidWNrZXQ6IHN0cmluZztcbiAgczNQcmVmaXg/OiBzdHJpbmc7XG4gIHNlcnZlcklkPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUzNMaXN0T2JqZWN0c1YyT3V0cHV0IHtcbiAgQ29udGVudHM/OiBBcnJheTx7IEtleT86IHN0cmluZzsgU2l6ZT86IG51bWJlcjsgTGFzdE1vZGlmaWVkPzogRGF0ZSB9PjtcbiAgTmV4dENvbnRpbnVhdGlvblRva2VuPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUzNMaWtlQ2xpZW50IHtcbiAgbGlzdE9iamVjdHNWMihwYXJhbXM6IHVua25vd24pOiBQcm9taXNlPFMzTGlzdE9iamVjdHNWMk91dHB1dD47XG4gIGdldE9iamVjdChwYXJhbXM6IHVua25vd24pOiBQcm9taXNlPHsgYm9keTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PiB9PjtcbiAgZGVsZXRlT2JqZWN0KHBhcmFtczogdW5rbm93bik6IFByb21pc2U8dW5rbm93bj47XG59XG5cbkBzZXJ2aWNlKFwic2Z0cC1hd3NcIilcbmV4cG9ydCBjbGFzcyBBd3NTZnRwU2VydmljZSBleHRlbmRzIFNmdHBTb3VyY2U8XG4gIFMzTGlrZUNsaWVudCxcbiAgQXdzVHJhbnNmZXJTZnRwQ29uZmlnXG4+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWdGcm9tRW52aXJvbm1lbnQoKTogQXdzVHJhbnNmZXJTZnRwQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlbnYgPSBBd3NTZnRwRW52aXJvbm1lbnQuc2Z0cC5hd3M7XG4gICAgY29uc3QgcmVnaW9uID0gZW52U3RyaW5nKGVudj8ucmVnaW9uKTtcbiAgICBjb25zdCBidWNrZXQgPSBlbnZTdHJpbmcoZW52Py5idWNrZXQpO1xuICAgIGNvbnN0IGhvc3QgPSBlbnZTdHJpbmcoZW52Py5ob3N0KTtcbiAgICBjb25zdCB1c2VybmFtZSA9IGVudlN0cmluZyhlbnY/LnVzZXJuYW1lKTtcbiAgICBjb25zdCBwYXNzd29yZCA9IGVudlN0cmluZyhlbnY/LnBhc3N3b3JkKTtcbiAgICBjb25zdCBwcml2YXRlS2V5ID0gZW52U3RyaW5nKGVudj8ucHJpdmF0ZUtleSk7XG4gICAgaWYgKFxuICAgICAgIXJlZ2lvbiB8fFxuICAgICAgIWJ1Y2tldCB8fFxuICAgICAgIWhvc3QgfHxcbiAgICAgICF1c2VybmFtZSB8fFxuICAgICAgKCFwYXNzd29yZCAmJiAhcHJpdmF0ZUtleSlcbiAgICApXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlcjogXCJhd3MtdHJhbnNmZXJcIixcbiAgICAgIHNvdXJjZUlkOiBlbnZTdHJpbmcoZW52LnNvdXJjZUlkKSBhcyBzdHJpbmcsXG4gICAgICBob3N0LFxuICAgICAgcG9ydDogZW52TnVtYmVyKGVudi5wb3J0KSxcbiAgICAgIHVzZXJuYW1lLFxuICAgICAgcGFzc3dvcmQsXG4gICAgICBwcml2YXRlS2V5LFxuICAgICAgcGFzc3BocmFzZTogZW52U3RyaW5nKGVudi5wYXNzcGhyYXNlKSxcbiAgICAgIHJlbW90ZVBhdGg6IGVudlN0cmluZyhlbnYucmVtb3RlUGF0aCksXG4gICAgICByZWdpb24sXG4gICAgICBidWNrZXQsXG4gICAgICBzM1ByZWZpeDogZW52U3RyaW5nKGVudi5zM1ByZWZpeCksXG4gICAgICBzZXJ2ZXJJZDogZW52U3RyaW5nKGVudi5zZXJ2ZXJJZCksXG4gICAgfTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBBd3NUcmFuc2ZlclNmdHBDb25maWc7IGNsaWVudDogUzNMaWtlQ2xpZW50IH0+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldENvbmZpZ0Zyb21BcmdzPEF3c1RyYW5zZmVyU2Z0cENvbmZpZz4oLi4uYXJncyk7XG4gICAgYXNzZXJ0U2Z0cENvbmZpZyhjb25maWcpO1xuICAgIGlmICghY29uZmlnLnJlZ2lvbilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiQXdzVHJhbnNmZXJTZnRwQ29uZmlnLnJlZ2lvbiBpcyByZXF1aXJlZFwiKTtcbiAgICBpZiAoIWNvbmZpZy5idWNrZXQpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkF3c1RyYW5zZmVyU2Z0cENvbmZpZy5idWNrZXQgaXMgcmVxdWlyZWRcIik7XG5cbiAgICBjb25zdCB7IFMzQ2xpZW50IH0gPSBhd2FpdCBpbXBvcnQoXCJAYXdzLXNkay9jbGllbnQtczNcIikuY2F0Y2goKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiQGF3cy1zZGsvY2xpZW50LXMzIG5vdCBpbnN0YWxsZWQ7IHJ1biBucG0gaW5zdGFsbCBAYXdzLXNkay9jbGllbnQtczNcIlxuICAgICAgKTtcbiAgICB9KTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgUzNDbGllbnQoe1xuICAgICAgcmVnaW9uOiBjb25maWcucmVnaW9uLFxuICAgIH0pIGFzIHVua25vd24gYXMgUzNMaWtlQ2xpZW50O1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgfVxuXG4gIHByaXZhdGUgczNQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuczNQcmVmaXggPz8gdGhpcy5jb25maWcucmVtb3RlUGF0aCA/PyBcIlwiO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgbGlzdChcbiAgICByZW1vdGVEaXI/OiBzdHJpbmcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2Z0cEZpbGVFbnRyeVtdPiB7XG4gICAgY29uc3QgcHJlZml4ID0gcmVtb3RlRGlyID8/IHRoaXMuczNQcmVmaXgoKTtcbiAgICBjb25zdCBlbnRyaWVzOiBTZnRwRmlsZUVudHJ5W10gPSBbXTtcbiAgICBsZXQgY3Vyc29yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgZG8ge1xuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IHRoaXMuY2xpZW50Lmxpc3RPYmplY3RzVjIoe1xuICAgICAgICBCdWNrZXQ6IHRoaXMuY29uZmlnLmJ1Y2tldCxcbiAgICAgICAgUHJlZml4OiBwcmVmaXgsXG4gICAgICAgIENvbnRpbnVhdGlvblRva2VuOiBjdXJzb3IsXG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3Qgb2JqIG9mIHBhZ2UuQ29udGVudHMgPz8gW10pIHtcbiAgICAgICAgaWYgKCFvYmouS2V5KSBjb250aW51ZTtcbiAgICAgICAgY29uc3QgbmFtZSA9IG9iai5LZXkuc3BsaXQoXCIvXCIpLnBvcCgpID8/IG9iai5LZXk7XG4gICAgICAgIGVudHJpZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogb2JqLktleSxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIHNpemU6IG9iai5TaXplID8/IDAsXG4gICAgICAgICAgbW9kaWZ5VGltZTogb2JqLkxhc3RNb2RpZmllZD8uZ2V0VGltZSgpID8/IDAsXG4gICAgICAgICAgaXNEaXJlY3Rvcnk6IG9iai5LZXkuZW5kc1dpdGgoXCIvXCIpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGN1cnNvciA9IHBhZ2UuTmV4dENvbnRpbnVhdGlvblRva2VuO1xuICAgIH0gd2hpbGUgKGN1cnNvcik7XG4gICAgcmV0dXJuIGVudHJpZXM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmZXRjaChcbiAgICByZW1vdGVQYXRoOiBzdHJpbmcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2Z0cEZpbGVSZXN1bHQ+IHtcbiAgICBjb25zdCBuYW1lID0gcmVtb3RlUGF0aC5zcGxpdChcIi9cIikucG9wKCkgPz8gcmVtb3RlUGF0aDtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldE9iamVjdCh7XG4gICAgICBCdWNrZXQ6IHRoaXMuY29uZmlnLmJ1Y2tldCxcbiAgICAgIEtleTogcmVtb3RlUGF0aCxcbiAgICB9KTtcbiAgICBjb25zdCBjaHVua3M6IEJ1ZmZlcltdID0gW107XG4gICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiByZXNwb25zZS5ib2R5KSB7XG4gICAgICBjaHVua3MucHVzaChCdWZmZXIuaXNCdWZmZXIoY2h1bmspID8gY2h1bmsgOiBCdWZmZXIuZnJvbShjaHVuaykpO1xuICAgIH1cbiAgICBjb25zdCBjb250ZW50ID0gQnVmZmVyLmNvbmNhdChjaHVua3MpO1xuICAgIHJldHVybiB7IHBhdGg6IHJlbW90ZVBhdGgsIG5hbWUsIGNvbnRlbnQsIHNpemU6IGNvbnRlbnQubGVuZ3RoIH07XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBkZWxldGUoXG4gICAgcmVtb3RlUGF0aDogc3RyaW5nLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5kZWxldGVPYmplY3Qoe1xuICAgICAgQnVja2V0OiB0aGlzLmNvbmZpZy5idWNrZXQsXG4gICAgICBLZXk6IHJlbW90ZVBhdGgsXG4gICAgfSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIG92ZXJyaWRlIGFzeW5jIGNsb3NlKC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+KTogUHJvbWlzZTx2b2lkPiB7fVxufVxuIl19
@@ -4,4 +4,4 @@
4
4
  */
5
5
  export * from "./AwsSftpService.js";
6
6
  export * from "./AwsSftpEnvironment.js";
7
- //# sourceMappingURL=index.js.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Z0cC9hd3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsb0NBQWlDO0FBQ2pDLHdDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2Z0cC9hd3NcbiAqIEBzdW1tYXJ5IEFXUyBTRlRQIGludGVncmF0aW9uIGV4cG9ydHMuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL0F3c1NmdHBTZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Bd3NTZnRwRW52aXJvbm1lbnRcIjtcbiJdfQ==
@@ -12,4 +12,4 @@ export const SftpEnvironment = LoggedEnvironment.accumulate({
12
12
  provider: "",
13
13
  },
14
14
  });
15
- //# sourceMappingURL=SftpEnvironment.js.map
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Z0cEVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NmdHAvY29yZS9TZnRwRW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBU3RELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDMUQsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLEVBQWtCO0tBQzdCO0NBQzRCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2Z0cC9jb3JlL2Vudmlyb25tZW50XG4gKiBAc3VtbWFyeSBDb21tb24gU0ZUUCBlbnZpcm9ubWVudC5cbiAqIEBkZXNjcmlwdGlvbiBCYXNlIGVudmlyb25tZW50IHNoYXJlZCBieSBldmVyeSBTRlRQIHNvdXJjZSBwcm92aWRlci4gUHJvdmlkZXItc3BlY2lmaWNcbiAqIHNlcnZpY2VzIGV4dGVuZCB0aGlzIGVudmlyb25tZW50IHdpdGggdGhlaXIgb3duIHByZWRlZmluZWQgYHNmdHAuPHByb3ZpZGVyPmAgc2hhcGVcbiAqIHNvIHtAbGluayBTZnRwU291cmNlLmluaXRpYWxpemV9IGNhbiBmYWxsIGJhY2sgdG8gZW52aXJvbm1lbnQtc291cmNlZCBjb25maWcgd2hlbiBub1xuICogY29uZmlnIGlzIHBhc3NlZCBhcyB0aGUgZmlyc3QgaW5pdGlhbGl6ZSBhcmd1bWVudC5cbiAqL1xuaW1wb3J0IHsgTG9nZ2VkRW52aXJvbm1lbnQgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB0eXBlIHsgU2Z0cFByb3ZpZGVyIH0gZnJvbSBcIi4vU2Z0cFNvdXJjZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNmdHBDb21tb25FbnZpcm9ubWVudFNoYXBlIHtcbiAgc2Z0cDoge1xuICAgIHByb3ZpZGVyOiBTZnRwUHJvdmlkZXI7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBTZnRwRW52aXJvbm1lbnQgPSBMb2dnZWRFbnZpcm9ubWVudC5hY2N1bXVsYXRlKHtcbiAgc2Z0cDoge1xuICAgIHByb3ZpZGVyOiBcIlwiIGFzIFNmdHBQcm92aWRlcixcbiAgfSxcbn0gYXMgU2Z0cENvbW1vbkVudmlyb25tZW50U2hhcGUpO1xuIl19
@@ -30,4 +30,4 @@ export function assertSftpConfig(config) {
30
30
  throw new InternalError("SftpSourceConfig requires either password or privateKey");
31
31
  }
32
32
  }
33
- //# sourceMappingURL=SftpSource.js.map
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Z0cFNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZnRwL2NvcmUvU2Z0cFNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLE9BQU8sR0FHUixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUErQnpFLE1BQU0sT0FBZ0IsVUFHcEIsU0FBUSxrQkFBb0M7SUFDNUM7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUF1QlMsaUJBQWlCLENBQ3pCLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBMEIsQ0FBQztRQUNoRCxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pFLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBRXJDLENBQUM7UUFDZCxJQUFJLGVBQWU7WUFBRSxPQUFPLGVBQWUsQ0FBQztRQUM1QyxNQUFNLElBQUksZUFBZSxDQUN2QiwwRkFBMEYsQ0FDM0YsQ0FBQztJQUNKLENBQUM7Q0FRRjtBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUF3QjtJQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7UUFBRSxNQUFNLElBQUksYUFBYSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1FBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQ3ZGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzNDLE1BQU0sSUFBSSxhQUFhLENBQUMseURBQXlELENBQUMsQ0FBQztJQUNyRixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENsaWVudEJhc2VkU2VydmljZSxcbiAgQ29udGV4dCxcbiAgdHlwZSBDb250ZXh0dWFsQXJncyxcbiAgdHlwZSBNYXliZUNvbnRleHR1YWxBcmcsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbmV4cG9ydCB0eXBlIFNmdHBQcm92aWRlciA9IFwic3NoMlwiIHwgXCJhd3MtdHJhbnNmZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTZnRwU291cmNlQ29uZmlnIHtcbiAgcHJvdmlkZXI6IFNmdHBQcm92aWRlcjtcbiAgc291cmNlSWQ6IHN0cmluZztcbiAgaG9zdDogc3RyaW5nO1xuICBwb3J0PzogbnVtYmVyO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBwYXNzd29yZD86IHN0cmluZztcbiAgcHJpdmF0ZUtleT86IHN0cmluZztcbiAgcGFzc3BocmFzZT86IHN0cmluZztcbiAgcmVtb3RlUGF0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZnRwRmlsZUVudHJ5IHtcbiAgcGF0aDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgbW9kaWZ5VGltZTogbnVtYmVyO1xuICBpc0RpcmVjdG9yeTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZnRwRmlsZVJlc3VsdCB7XG4gIHBhdGg6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBjb250ZW50OiBCdWZmZXI7XG4gIHNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNmdHBTb3VyY2U8XG4gIFRDbGllbnQgPSB1bmtub3duLFxuICBUQ29uZmlnIGV4dGVuZHMgU2Z0cFNvdXJjZUNvbmZpZyA9IFNmdHBTb3VyY2VDb25maWcsXG4+IGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFRDbGllbnQsIFRDb25maWc+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCBwcm92aWRlcigpOiBTZnRwUHJvdmlkZXIge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5wcm92aWRlcjtcbiAgfVxuXG4gIGdldCBzb3VyY2VJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5zb3VyY2VJZDtcbiAgfVxuXG4gIGFic3RyYWN0IG92ZXJyaWRlIGluaXRpYWxpemUoXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBUQ29uZmlnOyBjbGllbnQ6IFRDbGllbnQgfT47XG5cbiAgYWJzdHJhY3QgbGlzdChcbiAgICByZW1vdGVEaXI/OiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZnRwRmlsZUVudHJ5W10+O1xuXG4gIGFic3RyYWN0IGZldGNoKFxuICAgIHJlbW90ZVBhdGg6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNmdHBGaWxlUmVzdWx0PjtcblxuICBhYnN0cmFjdCBkZWxldGUoXG4gICAgcmVtb3RlUGF0aDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgY2xvc2UoLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT4pOiBQcm9taXNlPHZvaWQ+O1xuXG4gIHByb3RlY3RlZCBnZXRDb25maWdGcm9tQXJnczxURXhwZWN0ZWQgZXh0ZW5kcyBUQ29uZmlnPihcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBURXhwZWN0ZWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IGFyZ3NbMF0gYXMgVEV4cGVjdGVkIHwgdW5kZWZpbmVkO1xuICAgIGlmIChjb25maWcgJiYgdHlwZW9mIGNvbmZpZyA9PT0gXCJvYmplY3RcIiAmJiAhKGNvbmZpZyBpbnN0YW5jZW9mIENvbnRleHQpKSB7XG4gICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cbiAgICBjb25zdCBmcm9tRW52aXJvbm1lbnQgPSB0aGlzLmNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpIGFzXG4gICAgICB8IFRFeHBlY3RlZFxuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgaWYgKGZyb21FbnZpcm9ubWVudCkgcmV0dXJuIGZyb21FbnZpcm9ubWVudDtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgXCJTRlRQIHNvdXJjZSBjb25maWcgbXVzdCBiZSB0aGUgZmlyc3QgaW5pdGlhbGl6ZSBhcmd1bWVudCwgb3IgcmVzb2x2YWJsZSBmcm9tIGVudmlyb25tZW50XCJcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgYSBjb25maWcgZnJvbSB0aGUgcHJvdmlkZXIncyBlbnZpcm9ubWVudCBhcyBhIGZhbGxiYWNrLlxuICAgKiBAc3VtbWFyeSBQcm92aWRlcnMgbXVzdCBvdmVycmlkZSB0aGlzIHRvIHJlYWQgZnJvbSB0aGVpciBvd24gYHNmdHAuPHByb3ZpZGVyPmBcbiAgICogZW52aXJvbm1lbnQgc2xpY2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY29uZmlnRnJvbUVudmlyb25tZW50KCk6IFRDb25maWcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRTZnRwQ29uZmlnKGNvbmZpZzogU2Z0cFNvdXJjZUNvbmZpZyk6IHZvaWQge1xuICBpZiAoIWNvbmZpZy5ob3N0KSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNmdHBTb3VyY2VDb25maWcuaG9zdCBpcyByZXF1aXJlZFwiKTtcbiAgaWYgKCFjb25maWcudXNlcm5hbWUpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2Z0cFNvdXJjZUNvbmZpZy51c2VybmFtZSBpcyByZXF1aXJlZFwiKTtcbiAgaWYgKCFjb25maWcucGFzc3dvcmQgJiYgIWNvbmZpZy5wcml2YXRlS2V5KSB7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTZnRwU291cmNlQ29uZmlnIHJlcXVpcmVzIGVpdGhlciBwYXNzd29yZCBvciBwcml2YXRlS2V5XCIpO1xuICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export * from "./SftpSource.js";
2
2
  export * from "./SftpEnvironment.js";
3
- //# sourceMappingURL=index.js.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Z0cC9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdDQUE2QjtBQUM3QixxQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9TZnRwU291cmNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TZnRwRW52aXJvbm1lbnRcIjtcbiJdfQ==
@@ -4,4 +4,4 @@ export * from "./aws/AwsSftpService.js";
4
4
  export * from "./aws/AwsSftpEnvironment.js";
5
5
  export * from "./core/SftpSource.js";
6
6
  export * from "./core/SftpEnvironment.js";
7
- //# sourceMappingURL=index.js.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Z0cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQ0FBdUM7QUFDdkMsOENBQTJDO0FBQzNDLHdDQUFxQztBQUNyQyw0Q0FBeUM7QUFDekMscUNBQWtDO0FBQ2xDLDBDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3NzaDIvU3NoMlNmdHBTZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zc2gyL1NzaDJTZnRwRW52aXJvbm1lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2F3cy9Bd3NTZnRwU2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXdzL0F3c1NmdHBFbnZpcm9ubWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29yZS9TZnRwU291cmNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlL1NmdHBFbnZpcm9ubWVudFwiO1xuIl19
@@ -21,4 +21,4 @@ export const Ssh2SftpEnvironment = SftpEnvironment.accumulate({
21
21
  },
22
22
  },
23
23
  });
24
- //# sourceMappingURL=Ssh2SftpEnvironment.js.map
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3NoMlNmdHBFbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZnRwL3NzaDIvU3NoMlNmdHBFbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsZUFBZSxFQUFFLHFDQUFnQztBQW9CMUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztJQUM1RCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixRQUFRLEVBQUUsRUFBRTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFNBQThCO1lBQ3BDLFFBQVEsRUFBRSxFQUFFO1lBQ1osUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsRUFBRTtZQUNkLFVBQVUsRUFBRSxFQUFFO1lBQ2QsVUFBVSxFQUFFLEVBQUU7WUFDZCxZQUFZLEVBQUUsU0FBOEI7U0FDN0M7S0FDRjtDQUMwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NmdHAvc3NoMi9lbnZpcm9ubWVudFxuICogQHN1bW1hcnkgU1NIMiBTRlRQIHNvdXJjZSBlbnZpcm9ubWVudC5cbiAqIEBkZXNjcmlwdGlvbiBFeHRlbmRzIHRoZSBjb21tb24gU0ZUUCBlbnZpcm9ubWVudCB3aXRoIHRoZSBgc2Z0cC5zc2gyYCBzaGFwZVxuICogbWF0Y2hpbmcge0BsaW5rIFNzaDJTZnRwQ29uZmlnfSwgc28ge0BsaW5rIFNzaDJTZnRwU2VydmljZX0gY2FuIGZhbGwgYmFjayB0byBpdFxuICogd2hlbiBubyBjb25maWcgaXMgcGFzc2VkIHRvIGBpbml0aWFsaXplYC5cbiAqL1xuaW1wb3J0IHsgU2Z0cEVudmlyb25tZW50IH0gZnJvbSBcIi4uL2NvcmUvU2Z0cEVudmlyb25tZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3NoMlNmdHBFbnZpcm9ubWVudENvbmZpZyB7XG4gIHNvdXJjZUlkOiBzdHJpbmc7XG4gIGhvc3Q6IHN0cmluZztcbiAgcG9ydD86IG51bWJlcjtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHByaXZhdGVLZXk/OiBzdHJpbmc7XG4gIHBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIHJlbW90ZVBhdGg/OiBzdHJpbmc7XG4gIHJlYWR5VGltZW91dD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTc2gyU2Z0cEVudmlyb25tZW50U2hhcGUge1xuICBzZnRwOiB7XG4gICAgc3NoMjogU3NoMlNmdHBFbnZpcm9ubWVudENvbmZpZztcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IFNzaDJTZnRwRW52aXJvbm1lbnQgPSBTZnRwRW52aXJvbm1lbnQuYWNjdW11bGF0ZSh7XG4gIHNmdHA6IHtcbiAgICBzc2gyOiB7XG4gICAgICBzb3VyY2VJZDogXCJcIixcbiAgICAgIGhvc3Q6IFwiXCIsXG4gICAgICBwb3J0OiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBudW1iZXIsXG4gICAgICB1c2VybmFtZTogXCJcIixcbiAgICAgIHBhc3N3b3JkOiBcIlwiLFxuICAgICAgcHJpdmF0ZUtleTogXCJcIixcbiAgICAgIHBhc3NwaHJhc2U6IFwiXCIsXG4gICAgICByZW1vdGVQYXRoOiBcIlwiLFxuICAgICAgcmVhZHlUaW1lb3V0OiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBudW1iZXIsXG4gICAgfSxcbiAgfSxcbn0gYXMgU3NoMlNmdHBFbnZpcm9ubWVudFNoYXBlKTtcbiJdfQ==
@@ -169,4 +169,4 @@ Ssh2SftpService = __decorate([
169
169
  __metadata("design:paramtypes", [])
170
170
  ], Ssh2SftpService);
171
171
  export { Ssh2SftpService };
172
- //# sourceMappingURL=Ssh2SftpService.js.map
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3NoMlNmdHBTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NmdHAvc3NoMi9Tc2gyU2Z0cFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBZ0QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUNMLFVBQVUsRUFJVixnQkFBZ0IsR0FDakIsZ0NBQTJCO0FBQzVCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQ0FBOEI7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsMkNBQXNDO0FBb0Q5RCxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFnQixTQUFRLFVBQXNDO0lBR3pFO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRVMscUJBQXFCO1FBQzdCLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUN2RSxPQUFPO1lBQ0wsUUFBUSxFQUFFLE1BQU07WUFDaEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFX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QUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM5QixJQUFJLEdBQUc7b0JBQ0wsT0FBTyxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hFLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw2REFBNkQ7SUFDcEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQTZCO1FBQ25ELElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDWixNQUFNLElBQUksYUFBYSxDQUNyQixxREFBcUQsQ0FDdEQsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0YsQ0FBQTtBQTNMWSxlQUFlO0lBRDNCLE9BQU8sQ0FBQyxXQUFXLENBQUM7O0dBQ1IsZUFBZSxDQTJMM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZXJ2aWNlLCB0eXBlIENvbnRleHR1YWxBcmdzLCB0eXBlIE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgU2Z0cFNvdXJjZSxcbiAgdHlwZSBTZnRwRmlsZUVudHJ5LFxuICB0eXBlIFNmdHBGaWxlUmVzdWx0LFxuICB0eXBlIFNmdHBTb3VyY2VDb25maWcsXG4gIGFzc2VydFNmdHBDb25maWcsXG59IGZyb20gXCIuLi9jb3JlL1NmdHBTb3VyY2VcIjtcbmltcG9ydCB7IFNzaDJTZnRwRW52aXJvbm1lbnQgfSBmcm9tIFwiLi9Tc2gyU2Z0cEVudmlyb25tZW50XCI7XG5pbXBvcnQgeyBlbnZOdW1iZXIsIGVudlN0cmluZyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvZW52aXJvbm1lbnRWYWx1ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNzaDJTZnRwQ29uZmlnIGV4dGVuZHMgU2Z0cFNvdXJjZUNvbmZpZyB7XG4gIHByb3ZpZGVyOiBcInNzaDJcIjtcbiAgcmVhZHlUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgU3NoMkNsaWVudCB7XG4gIGNvbm5lY3QoY29uZmlnOiB1bmtub3duKTogdm9pZDtcbiAgb24oZXZlbnQ6IFwicmVhZHlcIiwgY2I6ICgpID0+IHZvaWQpOiB2b2lkO1xuICBvbihldmVudDogXCJlcnJvclwiLCBjYjogKGVycjogRXJyb3IpID0+IHZvaWQpOiB2b2lkO1xuICBzZnRwKGNiOiAoZXJyOiBFcnJvciB8IG51bGwsIHNmdHA6IFNzaDJTZnRwSGFuZGxlKSA9PiB2b2lkKTogdm9pZDtcbiAgZW5kKCk6IHZvaWQ7XG59XG5cbmludGVyZmFjZSBTc2gyU2Z0cEhhbmRsZSB7XG4gIHJlYWRkaXIoXG4gICAgZGlyOiBzdHJpbmcsXG4gICAgY2I6IChcbiAgICAgIGVycjogRXJyb3IgfCBudWxsLFxuICAgICAgbGlzdDogQXJyYXk8e1xuICAgICAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgICAgICBhdHRyczogeyBzaXplOiBudW1iZXI7IG10aW1lOiBudW1iZXI7IG1vZGU6IG51bWJlciB9O1xuICAgICAgfT5cbiAgICApID0+IHZvaWRcbiAgKTogdm9pZDtcbiAgc3RhdChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgY2I6IChcbiAgICAgIGVycjogRXJyb3IgfCBudWxsLFxuICAgICAgc3RhdDogeyBzaXplOiBudW1iZXI7IG10aW1lOiBudW1iZXI7IG1vZGU6IG51bWJlciB9XG4gICAgKSA9PiB2b2lkXG4gICk6IHZvaWQ7XG4gIG9wZW4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGZsYWdzOiBzdHJpbmcsXG4gICAgY2I6IChlcnI6IEVycm9yIHwgbnVsbCwgaGFuZGxlOiBCdWZmZXIpID0+IHZvaWRcbiAgKTogdm9pZDtcbiAgcmVhZChcbiAgICBoYW5kbGU6IEJ1ZmZlcixcbiAgICBidWZmZXI6IEJ1ZmZlcixcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBsZW5ndGg6IG51bWJlcixcbiAgICBwb3NpdGlvbjogbnVtYmVyLFxuICAgIGNiOiAoZXJyOiBFcnJvciB8IG51bGwsIGJ5dGVzUmVhZDogbnVtYmVyLCBidWZmZXI6IEJ1ZmZlcikgPT4gdm9pZFxuICApOiB2b2lkO1xuICBjbG9zZShoYW5kbGU6IEJ1ZmZlciwgY2I6IChlcnI6IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7XG4gIHVubGluayhwYXRoOiBzdHJpbmcsIGNiOiAoZXJyOiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkO1xuICBlbmQoY2I/OiAoKSA9PiB2b2lkKTogdm9pZDtcbn1cblxuQHNlcnZpY2UoXCJzZnRwLXNzaDJcIilcbmV4cG9ydCBjbGFzcyBTc2gyU2Z0cFNlcnZpY2UgZXh0ZW5kcyBTZnRwU291cmNlPFNzaDJDbGllbnQsIFNzaDJTZnRwQ29uZmlnPiB7XG4gIHByaXZhdGUgc2Z0cD86IFNzaDJTZnRwSGFuZGxlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlnRnJvbUVudmlyb25tZW50KCk6IFNzaDJTZnRwQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlbnYgPSBTc2gyU2Z0cEVudmlyb25tZW50LnNmdHAuc3NoMjtcbiAgICBjb25zdCBob3N0ID0gZW52U3RyaW5nKGVudj8uaG9zdCk7XG4gICAgY29uc3QgdXNlcm5hbWUgPSBlbnZTdHJpbmcoZW52Py51c2VybmFtZSk7XG4gICAgY29uc3QgcGFzc3dvcmQgPSBlbnZTdHJpbmcoZW52Py5wYXNzd29yZCk7XG4gICAgY29uc3QgcHJpdmF0ZUtleSA9IGVudlN0cmluZyhlbnY/LnByaXZhdGVLZXkpO1xuICAgIGlmICghaG9zdCB8fCAhdXNlcm5hbWUgfHwgKCFwYXNzd29yZCAmJiAhcHJpdmF0ZUtleSkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGVyOiBcInNzaDJcIixcbiAgICAgIHNvdXJjZUlkOiBlbnZTdHJpbmcoZW52LnNvdXJjZUlkKSBhcyBzdHJpbmcsXG4gICAgICBob3N0LFxuICAgICAgcG9ydDogZW52TnVtYmVyKGVudi5wb3J0KSxcbiAgICAgIHVzZXJuYW1lLFxuICAgICAgcGFzc3dvcmQsXG4gICAgICBwcml2YXRlS2V5LFxuICAgICAgcGFzc3BocmFzZTogZW52U3RyaW5nKGVudi5wYXNzcGhyYXNlKSxcbiAgICAgIHJlbW90ZVBhdGg6IGVudlN0cmluZyhlbnYucmVtb3RlUGF0aCksXG4gICAgICByZWFkeVRpbWVvdXQ6IGVudk51bWJlcihlbnYucmVhZHlUaW1lb3V0KSxcbiAgICB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IFNzaDJTZnRwQ29uZmlnOyBjbGllbnQ6IFNzaDJDbGllbnQgfT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0Q29uZmlnRnJvbUFyZ3M8U3NoMlNmdHBDb25maWc+KC4uLmFyZ3MpO1xuICAgIGFzc2VydFNmdHBDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBDbGllbnQgPSBhd2FpdCBpbXBvcnQoXCJzc2gyXCIpXG4gICAgICAudGhlbigobSkgPT4gbS5DbGllbnQpXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBcInNzaDIgcGFja2FnZSBub3QgaW5zdGFsbGVkOyBydW4gbnBtIGluc3RhbGwgc3NoMlwiXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KCkgYXMgU3NoMkNsaWVudDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY2xpZW50Lm9uKFwiZXJyb3JcIiwgKGVycjogRXJyb3IpID0+XG4gICAgICAgIHJlamVjdChuZXcgSW50ZXJuYWxFcnJvcihgU0ZUUCBjb25uZWN0aW9uIGVycm9yOiAke2Vyci5tZXNzYWdlfWApKVxuICAgICAgKTtcbiAgICAgIGNsaWVudC5vbihcInJlYWR5XCIsICgpID0+IHtcbiAgICAgICAgY2xpZW50LnNmdHAoKGVyciwgc2Z0cCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpXG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KFxuICAgICAgICAgICAgICBuZXcgSW50ZXJuYWxFcnJvcihgU0ZUUCBzdWJzeXN0ZW0gZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZnRwID0gc2Z0cDtcbiAgICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgICAgICAgIHJlc29sdmUoeyBjb25maWcsIGNsaWVudCB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIGNsaWVudC5jb25uZWN0KHtcbiAgICAgICAgaG9zdDogY29uZmlnLmhvc3QsXG4gICAgICAgIHBvcnQ6IGNvbmZpZy5wb3J0ID8/IDIyLFxuICAgICAgICB1c2VybmFtZTogY29uZmlnLnVzZXJuYW1lLFxuICAgICAgICBwYXNzd29yZDogY29uZmlnLnBhc3N3b3JkLFxuICAgICAgICBwcml2YXRlS2V5OiBjb25maWcucHJpdmF0ZUtleVxuICAgICAgICAgID8gQnVmZmVyLmZyb20oY29uZmlnLnByaXZhdGVLZXkpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIHBhc3NwaHJhc2U6IGNvbmZpZy5wYXNzcGhyYXNlLFxuICAgICAgICByZWFkeVRpbWVvdXQ6IGNvbmZpZy5yZWFkeVRpbWVvdXQgPz8gMzBfMDAwLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBsaXN0KFxuICAgIHJlbW90ZURpcj86IHN0cmluZyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZnRwRmlsZUVudHJ5W10+IHtcbiAgICBjb25zdCBkaXIgPSByZW1vdGVEaXIgPz8gdGhpcy5jb25maWcucmVtb3RlUGF0aCA/PyBcIi5cIjtcbiAgICBjb25zdCBzZnRwID0gdGhpcy5yZXF1aXJlU2Z0cCgpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzZnRwLnJlYWRkaXIoZGlyLCAoZXJyLCBsaXN0KSA9PiB7XG4gICAgICAgIGlmIChlcnIpXG4gICAgICAgICAgcmV0dXJuIHJlamVjdChcbiAgICAgICAgICAgIG5ldyBJbnRlcm5hbEVycm9yKGBTRlRQIHJlYWRkaXIgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YClcbiAgICAgICAgICApO1xuICAgICAgICByZXNvbHZlKFxuICAgICAgICAgIGxpc3QubWFwKChlbnRyeSkgPT4gKHtcbiAgICAgICAgICAgIHBhdGg6IGAke2Rpcn0vJHtlbnRyeS5maWxlbmFtZX1gLFxuICAgICAgICAgICAgbmFtZTogZW50cnkuZmlsZW5hbWUsXG4gICAgICAgICAgICBzaXplOiBlbnRyeS5hdHRycy5zaXplLFxuICAgICAgICAgICAgbW9kaWZ5VGltZTogZW50cnkuYXR0cnMubXRpbWUgKiAxMDAwLFxuICAgICAgICAgICAgaXNEaXJlY3Rvcnk6IChlbnRyeS5hdHRycy5tb2RlICYgMG8xNzAwMDApID09PSAwbzA0MDAwMCxcbiAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmV0Y2goXG4gICAgcmVtb3RlUGF0aDogc3RyaW5nLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNmdHBGaWxlUmVzdWx0PiB7XG4gICAgY29uc3Qgc2Z0cCA9IHRoaXMucmVxdWlyZVNmdHAoKTtcbiAgICBjb25zdCBuYW1lID0gcmVtb3RlUGF0aC5zcGxpdChcIi9cIikucG9wKCkgPz8gcmVtb3RlUGF0aDtcblxuICAgIGNvbnN0IHN0YXQgPSBhd2FpdCBuZXcgUHJvbWlzZTx7XG4gICAgICBzaXplOiBudW1iZXI7XG4gICAgICBtdGltZTogbnVtYmVyO1xuICAgICAgbW9kZTogbnVtYmVyO1xuICAgIH0+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHNmdHAuc3RhdChyZW1vdGVQYXRoLCAoZXJyLCBzdCkgPT4ge1xuICAgICAgICBpZiAoZXJyKVxuICAgICAgICAgIHJldHVybiByZWplY3QobmV3IEludGVybmFsRXJyb3IoYFNGVFAgc3RhdCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKSk7XG4gICAgICAgIHJlc29sdmUoc3QpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGUgPSBhd2FpdCBuZXcgUHJvbWlzZTxCdWZmZXI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHNmdHAub3BlbihyZW1vdGVQYXRoLCBcInJcIiwgKGVyciwgaCkgPT4ge1xuICAgICAgICBpZiAoZXJyKVxuICAgICAgICAgIHJldHVybiByZWplY3QobmV3IEludGVybmFsRXJyb3IoYFNGVFAgb3BlbiBlcnJvcjogJHtlcnIubWVzc2FnZX1gKSk7XG4gICAgICAgIHJlc29sdmUoaCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNodW5rU2l6ZSA9IDMyXzc2ODtcbiAgICBjb25zdCBjaHVua3M6IEJ1ZmZlcltdID0gW107XG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICB3aGlsZSAocG9zaXRpb24gPCBzdGF0LnNpemUpIHtcbiAgICAgIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvYyhNYXRoLm1pbihjaHVua1NpemUsIHN0YXQuc2l6ZSAtIHBvc2l0aW9uKSk7XG4gICAgICBjb25zdCBieXRlc1JlYWQgPSBhd2FpdCBuZXcgUHJvbWlzZTxudW1iZXI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgc2Z0cC5yZWFkKGhhbmRsZSwgYnVmLCAwLCBidWYubGVuZ3RoLCBwb3NpdGlvbiwgKGVyciwgbikgPT4ge1xuICAgICAgICAgIGlmIChlcnIpXG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBJbnRlcm5hbEVycm9yKGBTRlRQIHJlYWQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCkpO1xuICAgICAgICAgIHJlc29sdmUobik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBjaHVua3MucHVzaChCdWZmZXIuZnJvbShidWYuYnVmZmVyLCAwLCBieXRlc1JlYWQpKTtcbiAgICAgIHBvc2l0aW9uICs9IGJ5dGVzUmVhZDtcbiAgICAgIGlmIChieXRlc1JlYWQgPT09IDApIGJyZWFrO1xuICAgIH1cblxuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHNmdHAuY2xvc2UoaGFuZGxlLCAoZXJyKSA9PiB7XG4gICAgICAgIGlmIChlcnIpXG4gICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgSW50ZXJuYWxFcnJvcihgU0ZUUCBjbG9zZSBlcnJvcjogJHtlcnIubWVzc2FnZX1gKSk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGg6IHJlbW90ZVBhdGgsXG4gICAgICBuYW1lLFxuICAgICAgY29udGVudDogQnVmZmVyLmNvbmNhdChjaHVua3MpLFxuICAgICAgc2l6ZTogc3RhdC5zaXplLFxuICAgIH07XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBkZWxldGUoXG4gICAgcmVtb3RlUGF0aDogc3RyaW5nLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzZnRwID0gdGhpcy5yZXF1aXJlU2Z0cCgpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzZnRwLnVubGluayhyZW1vdGVQYXRoLCAoZXJyKSA9PiB7XG4gICAgICAgIGlmIChlcnIpXG4gICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgSW50ZXJuYWxFcnJvcihgU0ZUUCB1bmxpbmsgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCkpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgb3ZlcnJpZGUgYXN5bmMgY2xvc2UoLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnNmdHA/LmVuZCgpO1xuICAgIHRoaXMuY2xpZW50Py5lbmQoKTtcbiAgICB0aGlzLnNmdHAgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHJlcXVpcmVTZnRwKCk6IFNzaDJTZnRwSGFuZGxlIHtcbiAgICBpZiAoIXRoaXMuc2Z0cClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIlNmdHBTb3VyY2Ugbm90IGluaXRpYWxpemVkOyBjYWxsIGluaXRpYWxpemUoKSBmaXJzdFwiXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLnNmdHA7XG4gIH1cbn1cbiJdfQ==