@lifeready/core 5.0.1 → 5.0.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 (59) hide show
  1. package/bundles/lifeready-core.umd.js +329 -307
  2. package/bundles/lifeready-core.umd.js.map +1 -1
  3. package/bundles/lifeready-core.umd.min.js +1 -1
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/ast.js +4 -4
  6. package/esm2015/lib/_common/exceptions.js +129 -103
  7. package/esm2015/lib/_common/run-outside-angular.js +3 -3
  8. package/esm2015/lib/_common/storage.js +3 -3
  9. package/esm2015/lib/_common/types.js +1 -1
  10. package/esm2015/lib/_common/utils.js +1 -12
  11. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +4 -4
  12. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +4 -4
  13. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +3 -3
  14. package/esm2015/lib/api/query-processor/common-processors.service.js +3 -3
  15. package/esm2015/lib/api/query-processor/query-processor.service.js +4 -4
  16. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +3 -3
  17. package/esm2015/lib/api/types/lr-graphql.types.js +1 -1
  18. package/esm2015/lib/auth/auth.types.js +1 -8
  19. package/esm2015/lib/auth/life-ready-auth.service.js +7 -9
  20. package/esm2015/lib/category/category.gql.js +2 -2
  21. package/esm2015/lib/category/category.service.js +5 -5
  22. package/esm2015/lib/encryption/encryption.service.js +4 -7
  23. package/esm2015/lib/file-upload/file-upload.service.js +2 -3
  24. package/esm2015/lib/idle/idle.service.js +6 -7
  25. package/esm2015/lib/item2/item2.service.js +3 -3
  26. package/esm2015/lib/key/key-factory.service.js +8 -8
  27. package/esm2015/lib/key/key-graph.service.js +7 -9
  28. package/esm2015/lib/key/key.service.js +5 -5
  29. package/esm2015/lib/key/key.types.js +1 -1
  30. package/esm2015/lib/key-exchange/key-exchange.service.js +3 -3
  31. package/esm2015/lib/key-exchange/key-exchange2.service.js +3 -3
  32. package/esm2015/lib/lbop/lbop.service.js +13 -10
  33. package/esm2015/lib/life-ready.config.js +15 -4
  34. package/esm2015/lib/password/password.service.js +4 -5
  35. package/esm2015/lib/persist/persist.service.js +3 -3
  36. package/esm2015/lib/plan/plan.service.js +3 -3
  37. package/esm2015/lib/profile/profile.types.js +8 -1
  38. package/esm2015/lib/scenario/scenario.service.js +4 -4
  39. package/esm2015/lib/time/time.service.js +3 -6
  40. package/esm2015/lib/tp-assembly/tp-assembly.js +7 -7
  41. package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +3 -3
  42. package/esm2015/lib/trusted-party/trusted-party.gql.js +3 -3
  43. package/esm2015/lib/trusted-party/trusted-party.service.js +2 -2
  44. package/esm2015/lib/trusted-party/trusted-party2.service.js +4 -4
  45. package/esm2015/lib/two-factor/two-factor.service.js +3 -3
  46. package/fesm2015/lifeready-core.js +219 -200
  47. package/fesm2015/lifeready-core.js.map +1 -1
  48. package/lib/_common/exceptions.d.ts +54 -38
  49. package/lib/_common/types.d.ts +0 -4
  50. package/lib/_common/utils.d.ts +0 -8
  51. package/lib/api/types/lr-graphql.types.d.ts +1 -1
  52. package/lib/auth/auth.types.d.ts +1 -9
  53. package/lib/category/category.gql.d.ts +1 -1
  54. package/lib/key/key.types.d.ts +4 -1
  55. package/lib/lbop/lbop.service.d.ts +4 -0
  56. package/lib/life-ready.config.d.ts +7 -0
  57. package/lib/profile/profile.types.d.ts +8 -1
  58. package/lifeready-core.metadata.json +1 -1
  59. package/package.json +1 -1
@@ -107,7 +107,7 @@ export const GetTrustedPartyCategoriesQuery = gql `
107
107
  query GetTrustedPartyCategoriesQuery($trustedPartyId: LrRelayIdInput!, $categoryFilter: LrJSONFilter!, $recordFilter: LrJSONFilter!, $contentFilter: LrJSONFilter, $cachedKeyIds: [LrRelayIdInput!])
108
108
  {
109
109
  tp(id: $trustedPartyId) {
110
- sharedItems {
110
+ theirItems {
111
111
  list: directories(plainMeta: $categoryFilter, orderBy: "created") {
112
112
  edges {
113
113
  node {
@@ -382,4 +382,4 @@ export const UnarchiveDirectoryMutation = gql `
382
382
  }
383
383
  }
384
384
  `;
385
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NhdGVnb3J5L2NhdGVnb3J5LmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDO0FBRTlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzFELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFFM0MsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2QixnQ0FBZSxDQUFBO0lBQ2Ysc0NBQXFCLENBQUE7SUFDckIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMvQyxNQUFNLEVBQUU7UUFDTjtZQUNFLFFBQVEsRUFBRTtnQkFDUixhQUFhLEVBQUUsYUFBYSxDQUFDLEtBQUs7Z0JBQ2xDLE9BQU8sRUFBRSxJQUFJO2FBQ2Q7U0FDRjtLQUNGO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDM0MsTUFBTSxFQUFFO1FBQ047WUFDRSxRQUFRLEVBQUU7Z0JBQ1IsYUFBYSxFQUFFLGFBQWEsQ0FBQyxRQUFRO2FBQ3RDO1NBQ0Y7S0FDRjtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pDLE1BQU0sRUFBRTtRQUNOO1lBQ0UsUUFBUSxFQUFFO2dCQUNSLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTTthQUNwQztTQUNGO0tBQ0Y7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLHFCQUFxQixHQUFHOytCQUNDLHlCQUF5Qjs7O0NBR3ZELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7Ozs7OztJQU0xQixxQkFBcUI7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRzs7Ozs7Q0FLMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztDQVUxQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztjQVF2QixjQUFjOzs7Ozs7Ozs7O0VBVTFCLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O1VBTXZCLFdBQVc7Ozs7Ozs7O0VBUW5CLGdCQUFnQjtDQUNqQixDQUFDO0FBV0YsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztjQVFuQyxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwQzFCLGdCQUFnQjtDQUNqQixDQUFDO0FBV0YsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztjQVEvQixjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwQzFCLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLEVBQUUsRUFBRTtJQUN4RSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUNELE9BQU87Ozs7Ozs7Ozs7VUFVQyxxQkFBcUIsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzs7OztDQUt6QyxDQUFDO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsUUFBZ0Isd0JBQXdCLEVBQ3hDLEVBQUUsQ0FBQyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7TUFhRixxQkFBcUI7TUFDckIscUJBQXFCLENBQUMsS0FBSyxDQUFDOzs7OztjQUtwQixjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRDMUIsZ0JBQWdCLEdBQUcsQ0FBQztBQUV0QixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7OztJQVlwQyxnQkFBZ0I7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJ4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUJyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztDQVF4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNeEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRMUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IEtleUdyYXBoRnJhZ21lbnQgfSBmcm9tICcuLi9fY29tbW9uL3F1ZXJpZXMuZ3FsJztcbmltcG9ydCB7IEhhc0VkZ2VzIH0gZnJvbSAnLi4vX2NvbW1vbi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JSRUFEQ1JVTUJfREVQVEggPSA1O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfREVTQ0VOREFOVFNfREVQVEggPSA1O1xuXG5leHBvcnQgZW51bSBEaXJlY3RvcnlUeXBlIHtcbiAgVmF1bHQgPSAndmF1bHQnLFxuICBDYXRlZ29yeSA9ICdjYXRlZ29yeScsXG4gIFJlY29yZCA9ICdyZWNvcmQnLFxufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdFZhdWx0RmlsdGVyID0gSlNPTi5zdHJpbmdpZnkoe1xuICBmaWx0ZXI6IFtcbiAgICB7XG4gICAgICBjb250YWluczoge1xuICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLlZhdWx0LFxuICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgfSxcbiAgICB9LFxuICBdLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDYXRlZ29yeUZpbHRlciA9IEpTT04uc3RyaW5naWZ5KHtcbiAgZmlsdGVyOiBbXG4gICAge1xuICAgICAgY29udGFpbnM6IHtcbiAgICAgICAgZGlyZWN0b3J5VHlwZTogRGlyZWN0b3J5VHlwZS5DYXRlZ29yeSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVjb3JkRmlsdGVyID0gSlNPTi5zdHJpbmdpZnkoe1xuICBmaWx0ZXI6IFtcbiAgICB7XG4gICAgICBjb250YWluczoge1xuICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLlJlY29yZCxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pO1xuXG5jb25zdCBkZXNjZW5kYW50RGlyZWN0b3JpZXMgPSBgXG5kZXNjZW5kYW50RGlyZWN0b3JpZXMoZGVwdGg6ICR7REVGQVVMVF9ERVNDRU5EQU5UU19ERVBUSH0sIHBsYWluTWV0YTogJGNhdGVnb3J5RmlsdGVyLCBhcmNoaXZlZDogZmFsc2UpIHtcbiAgcmVjb3Jkc0NvdW50OiBkaXJlY3Rvcmllc0NvdW50KHBsYWluTWV0YTogJHJlY29yZEZpbHRlciwgYXJjaGl2ZWQ6IGZhbHNlKVxufVxuYDtcblxuZXhwb3J0IGNvbnN0IENhdGVnb3J5RmllbGRzID0gYFxuICBpZFxuICBrZXlJZFxuICBhcmNoaXZlZFxuICBwbGFpbk1ldGFcbiAgY2lwaGVyTWV0YVxuICAke2Rlc2NlbmRhbnREaXJlY3Rvcmllc31cbmA7XG5cbmV4cG9ydCBjb25zdCBWYXVsdEZpZWxkcyA9IGBcbiAgaWRcbiAga2V5SWRcbiAgcGxhaW5NZXRhXG4gIGNpcGhlck1ldGFcbmA7XG5cbmV4cG9ydCBjb25zdCBHZXRSb290RGlyZWN0b3J5SWRzUXVlcnkgPSBncWxgXG4gIHF1ZXJ5IEdldFJvb3REaXJlY3RvcnlJZHNRdWVyeSgkYXJjaGl2ZWQ6IEJvb2xlYW4pIHtcbiAgICByb290RGlyZWN0b3JpZXMoYXJjaGl2ZWQ6ICRhcmNoaXZlZCkge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgR2V0Q2F0ZWdvcmllc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0Q2F0ZWdvcmllc1F1ZXJ5KCR2YXVsdERpcmVjdG9yeUlkOiBMclJlbGF5SWRJbnB1dCEsICRjYXRlZ29yeUZpbHRlcjogTHJKU09ORmlsdGVyISwgJHJlY29yZEZpbHRlcjogTHJKU09ORmlsdGVyISwgJGFyY2hpdmVkOiBCb29sZWFuKVxue1xuICBkaXJlY3RvcnkoaWQ6ICR2YXVsdERpcmVjdG9yeUlkKSB7XG4gICAgY2hpbGREaXJlY3RvcnlMaW5rcyhwbGFpbk1ldGE6ICRjYXRlZ29yeUZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIsIGFyY2hpdmVkOiAkYXJjaGl2ZWQpIHtcbiAgICAgIGVkZ2VzIHtcbiAgICAgICAgbm9kZSB7XG4gICAgICAgICAgY2hpbGREaXJlY3Rvcnkge1xuICAgICAgICAgICAgJHtDYXRlZ29yeUZpZWxkc31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAga2V5R3JhcGgge1xuICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgfVxufVxuJHtLZXlHcmFwaEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGNvbnN0IEdldFZhdWx0c1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0VmF1bHRzKCRwbGFpbk1ldGFGaWx0ZXI6IExySlNPTkZpbHRlciEsICRjYWNoZWRLZXlJZHM6IFtMclJlbGF5SWRJbnB1dCFdKVxue1xuICBsaXN0OiByb290RGlyZWN0b3JpZXMocGxhaW5NZXRhOiAkcGxhaW5NZXRhRmlsdGVyLCBvcmRlckJ5OiBcImNyZWF0ZWRcIikge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAke1ZhdWx0RmllbGRzfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBrZXlHcmFwaChjYWNoZWRLZXlJZHM6ICRjYWNoZWRLZXlJZHMpIHtcbiAgICAuLi5LZXlHcmFwaEZyYWdtZW50XG4gIH1cbn1cbiR7S2V5R3JhcGhGcmFnbWVudH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5VHlwZSBleHRlbmRzIEhhc0tleUdyYXBoIHtcbiAgdHA6IHtcbiAgICBzaGFyZWRJdGVtczoge1xuICAgICAgbGlzdDogSGFzRWRnZXM8YW55PjtcbiAgICAgIHJlY29yZHM6IEhhc0VkZ2VzPGFueT47XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEdldFRydXN0ZWRQYXJ0eUNhdGVnb3JpZXNRdWVyeSA9IGdxbGBcbnF1ZXJ5IEdldFRydXN0ZWRQYXJ0eUNhdGVnb3JpZXNRdWVyeSgkdHJ1c3RlZFBhcnR5SWQ6IExyUmVsYXlJZElucHV0ISwgJGNhdGVnb3J5RmlsdGVyOiBMckpTT05GaWx0ZXIhLCAkcmVjb3JkRmlsdGVyOiBMckpTT05GaWx0ZXIhLCAkY29udGVudEZpbHRlcjogTHJKU09ORmlsdGVyLCAkY2FjaGVkS2V5SWRzOiBbTHJSZWxheUlkSW5wdXQhXSlcbntcbiAgdHAoaWQ6ICR0cnVzdGVkUGFydHlJZCkge1xuICAgIHNoYXJlZEl0ZW1zIHtcbiAgICAgIGxpc3Q6IGRpcmVjdG9yaWVzKHBsYWluTWV0YTogJGNhdGVnb3J5RmlsdGVyLCBvcmRlckJ5OiBcImNyZWF0ZWRcIikge1xuICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAke0NhdGVnb3J5RmllbGRzfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVjb3JkczogZGlyZWN0b3JpZXMocGxhaW5NZXRhOiAkcmVjb3JkRmlsdGVyLCBvcmRlckJ5OiBcImNyZWF0ZWRcIikge1xuICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAga2V5SWRcbiAgICAgICAgICAgIGFyY2hpdmVkXG4gICAgICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgICAgIGNpcGhlck1ldGFcbiAgICAgICAgICAgIGNyZWF0ZWRcbiAgICAgICAgICAgIG1vZGlmaWVkXG4gICAgICAgICAgICBjb250ZW50OiBjaGlsZEZpbGVMaW5rcyhwbGFpbk1ldGE6ICRjb250ZW50RmlsdGVyKSB7XG4gICAgICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgICAgIGNoaWxkRmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICAgIGFyY2hpdmVkXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWZXJzaW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlJZFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5NZXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJNZXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBrZXlHcmFwaChjYWNoZWRLZXlJZHM6ICRjYWNoZWRLZXlJZHMpIHtcbiAgICAuLi5LZXlHcmFwaEZyYWdtZW50XG4gIH1cbn1cbiR7S2V5R3JhcGhGcmFnbWVudH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXlTaGFyZWRDYXRlZ29yaWVzUXVlcnlUeXBlIGV4dGVuZHMgSGFzS2V5R3JhcGgge1xuICB0cDoge1xuICAgIG15SXRlbXM6IHtcbiAgICAgIGxpc3Q6IEhhc0VkZ2VzPGFueT47XG4gICAgICByZWNvcmRzOiBIYXNFZGdlczxhbnk+O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBHZXRNeVNoYXJlZENhdGVnb3JpZXNRdWVyeSA9IGdxbGBcbnF1ZXJ5IEdldE15U2hhcmVkQ2F0ZWdvcmllc1F1ZXJ5KCR0cnVzdGVkUGFydHlJZDogTHJSZWxheUlkSW5wdXQhLCAkY2F0ZWdvcnlGaWx0ZXI6IExySlNPTkZpbHRlciEsICRyZWNvcmRGaWx0ZXI6IExySlNPTkZpbHRlciEsICRjb250ZW50RmlsdGVyOiBMckpTT05GaWx0ZXIsICRjYWNoZWRLZXlJZHM6IFtMclJlbGF5SWRJbnB1dCFdKVxue1xuICB0cChpZDogJHRydXN0ZWRQYXJ0eUlkKSB7XG4gICAgbXlJdGVtcyB7XG4gICAgICBsaXN0OiBkaXJlY3RvcmllcyhwbGFpbk1ldGE6ICRjYXRlZ29yeUZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIpIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgJHtDYXRlZ29yeUZpZWxkc31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlY29yZHM6IGRpcmVjdG9yaWVzKHBsYWluTWV0YTogJHJlY29yZEZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIpIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIGtleUlkXG4gICAgICAgICAgICBhcmNoaXZlZFxuICAgICAgICAgICAgcGxhaW5NZXRhXG4gICAgICAgICAgICBjaXBoZXJNZXRhXG4gICAgICAgICAgICBjcmVhdGVkXG4gICAgICAgICAgICBtb2RpZmllZFxuICAgICAgICAgICAgY29udGVudDogY2hpbGRGaWxlTGlua3MocGxhaW5NZXRhOiAkY29udGVudEZpbHRlcikge1xuICAgICAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgICAgICBjaGlsZEZpbGUge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgICBhcmNoaXZlZFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmVyc2lvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5SWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluTWV0YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVyTWV0YVxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAga2V5R3JhcGgoY2FjaGVkS2V5SWRzOiAkY2FjaGVkS2V5SWRzKSB7XG4gICAgLi4uS2V5R3JhcGhGcmFnbWVudFxuICB9XG59XG4ke0tleUdyYXBoRnJhZ21lbnR9XG5gO1xuXG5leHBvcnQgY29uc3QgcGFyZW50Q2F0ZWdvcmllc0ZpZWxkID0gKGRlcHRoID0gREVGQVVMVF9CUkVBRENSVU1CX0RFUFRIKSA9PiB7XG4gIGlmICghZGVwdGgpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIGBcbnBhcmVudENhdGVnb3JpZXM6IHBhcmVudERpcmVjdG9yeUxpbmtzKHBsYWluTWV0YTogJGNhdGVnb3J5RmlsdGVyKSB7XG4gIGVkZ2VzIHtcbiAgICBub2RlIHtcbiAgICAgIHBhcmVudERpcmVjdG9yeSB7XG4gICAgICAgIGlkXG4gICAgICAgIGtleUlkXG4gICAgICAgIGFyY2hpdmVkXG4gICAgICAgIHBsYWluTWV0YVxuICAgICAgICBjaXBoZXJNZXRhXG4gICAgICAgICR7cGFyZW50Q2F0ZWdvcmllc0ZpZWxkKGRlcHRoIC0gMSl9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5gO1xufTtcblxuZXhwb3J0IGNvbnN0IEdldENhdGVnb3J5UXVlcnkgPSAoXG4gIGRlcHRoOiBudW1iZXIgPSBERUZBVUxUX0JSRUFEQ1JVTUJfREVQVEhcbikgPT4gZ3FsYFxucXVlcnkgR2V0Q2F0ZWdvcnkoXG4gICRpZDogTHJSZWxheUlkSW5wdXQhLFxuICAkY2F0ZWdvcnlGaWx0ZXI6IExySlNPTkZpbHRlciEsXG4gICRyZWNvcmRGaWx0ZXI6IExySlNPTkZpbHRlciEsXG4gICRjb250ZW50RmlsdGVyOiBMckpTT05GaWx0ZXIsXG4gICRjYWNoZWRLZXlJZHM6IFtMclJlbGF5SWRJbnB1dCFdKSB7XG4gIGNhdGVnb3J5OiBkaXJlY3RvcnkoaWQ6ICRpZCkge1xuICAgIGlkXG4gICAga2V5SWRcbiAgICBhcmNoaXZlZFxuICAgIHBsYWluTWV0YVxuICAgIGNpcGhlck1ldGFcbiAgICAke2Rlc2NlbmRhbnREaXJlY3Rvcmllc31cbiAgICAke3BhcmVudENhdGVnb3JpZXNGaWVsZChkZXB0aCl9XG4gICAgc3ViQ2F0ZWdvcmllczogY2hpbGREaXJlY3RvcnlMaW5rcyhwbGFpbk1ldGE6ICRjYXRlZ29yeUZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIpIHtcbiAgICAgIGVkZ2VzIHtcbiAgICAgICAgbm9kZSB7XG4gICAgICAgICAgY2hpbGREaXJlY3Rvcnkge1xuICAgICAgICAgICAgJHtDYXRlZ29yeUZpZWxkc31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmVjb3JkczogY2hpbGREaXJlY3RvcnlMaW5rcyhwbGFpbk1ldGE6ICRyZWNvcmRGaWx0ZXIsIG9yZGVyQnk6IFwiY3JlYXRlZFwiKSB7XG4gICAgICBlZGdlcyB7XG4gICAgICAgIG5vZGUge1xuICAgICAgICAgIGNoaWxkRGlyZWN0b3J5IHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBrZXlJZFxuICAgICAgICAgICAgYXJjaGl2ZWRcbiAgICAgICAgICAgIHBsYWluTWV0YVxuICAgICAgICAgICAgY2lwaGVyTWV0YVxuICAgICAgICAgICAgY3JlYXRlZFxuICAgICAgICAgICAgbW9kaWZpZWRcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNoaWxkRmlsZUxpbmtzKHBsYWluTWV0YTogJGNvbnRlbnRGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICAgICAgY2hpbGRGaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgYXJjaGl2ZWRcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZlcnNpb24ge1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleUlkXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlck1ldGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGtleUdyYXBoKGNhY2hlZEtleUlkczogJGNhY2hlZEtleUlkcykge1xuICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgfVxufVxuJHtLZXlHcmFwaEZyYWdtZW50fSBgO1xuXG5leHBvcnQgY29uc3QgR2V0Q2F0ZWdvcnlLZXlJZFF1ZXJ5ID0gZ3FsYFxuICBxdWVyeSBHZXRDYXRlZ29yeUtleUlkUXVlcnkoXG4gICAgJGlkOiBMclJlbGF5SWRJbnB1dCFcbiAgICAkY2FjaGVkS2V5SWRzOiBbTHJSZWxheUlkSW5wdXQhXVxuICApIHtcbiAgICBjYXRlZ29yeTogZGlyZWN0b3J5KGlkOiAkaWQpIHtcbiAgICAgIGtleUlkXG4gICAgfVxuICAgIGtleUdyYXBoKGNhY2hlZEtleUlkczogJGNhY2hlZEtleUlkcykge1xuICAgICAgLi4uS2V5R3JhcGhGcmFnbWVudFxuICAgIH1cbiAgfVxuICAke0tleUdyYXBoRnJhZ21lbnR9XG5gO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlQ2F0ZWdvcnlNdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gQ3JlYXRlQ2F0ZWdvcnkoXG4gICAgJHBsYWluTWV0YTogTHJKU09OU3RyaW5nXG4gICAgJGNpcGhlck1ldGE6IFN0cmluZ1xuICAgICRwYXJlbnREaXJlY3RvcmllczogW1BhcmVudERpcmVjdG9yeUlucHV0IV1cbiAgICAkcGFyZW50Um9vdERpcmVjdG9yeTogUGFyZW50Um9vdERpcmVjdG9yeUlucHV0XG4gICkge1xuICAgIG5ldzogY3JlYXRlRGlyZWN0b3J5KFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgcGxhaW5NZXRhOiAkcGxhaW5NZXRhXG4gICAgICAgIGNpcGhlck1ldGE6ICRjaXBoZXJNZXRhXG4gICAgICAgIHBhcmVudERpcmVjdG9yaWVzOiAkcGFyZW50RGlyZWN0b3JpZXNcbiAgICAgICAgcGFyZW50Um9vdERpcmVjdG9yeTogJHBhcmVudFJvb3REaXJlY3RvcnlcbiAgICAgIH1cbiAgICApIHtcbiAgICAgIGNhdGVnb3J5OiBkaXJlY3Rvcnkge1xuICAgICAgICBpZFxuICAgICAgICBrZXlJZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVZhdWx0TXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIENyZWF0ZUNhdGVnb3J5KFxuICAgICRwbGFpbk1ldGE6IExySlNPTlN0cmluZ1xuICAgICRjaXBoZXJNZXRhOiBTdHJpbmdcbiAgICAkcGFyZW50Um9vdERpcmVjdG9yeTogUGFyZW50Um9vdERpcmVjdG9yeUlucHV0XG4gICkge1xuICAgIG5ldzogY3JlYXRlRGlyZWN0b3J5KFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgcGxhaW5NZXRhOiAkcGxhaW5NZXRhXG4gICAgICAgIGNpcGhlck1ldGE6ICRjaXBoZXJNZXRhXG4gICAgICAgIHBhcmVudFJvb3REaXJlY3Rvcnk6ICRwYXJlbnRSb290RGlyZWN0b3J5XG4gICAgICB9XG4gICAgKSB7XG4gICAgICB2YXVsdDogZGlyZWN0b3J5IHtcbiAgICAgICAgaWRcbiAgICAgICAga2V5SWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVDYXRlZ29yeU11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBVcGRhdGVDYXRlZ29yeSgkaW5wdXQ6IFVwZGF0ZURpcmVjdG9yeUlucHV0ISkge1xuICAgIHVwZGF0ZURpcmVjdG9yeShpbnB1dDogJGlucHV0KSB7XG4gICAgICBkaXJlY3Rvcnkge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZUNhdGVnb3J5TXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIERlbGV0ZUNhdGVnb3J5KCRjYXRlZ29yeUlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgICBkZWxldGVEaXJlY3RvcnkoaW5wdXQ6IHsgZGlyZWN0b3J5SWQ6ICRjYXRlZ29yeUlkIH0pIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgQXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBBcmNoaXZlRGlyZWN0b3J5KCRpbnB1dDogQXJjaGl2ZURpcmVjdG9yeUlucHV0ISkge1xuICAgIGFyY2hpdmVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgZGlyZWN0b3J5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBVbmFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gVW5hcmNoaXZlRGlyZWN0b3J5KCRpbnB1dDogVW5hcmNoaXZlRGlyZWN0b3J5SW5wdXQhKSB7XG4gICAgdW5hcmNoaXZlRGlyZWN0b3J5KGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGRpcmVjdG9yeSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuIl19
385
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NhdGVnb3J5L2NhdGVnb3J5LmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDO0FBRTlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzFELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFFM0MsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2QixnQ0FBZSxDQUFBO0lBQ2Ysc0NBQXFCLENBQUE7SUFDckIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMvQyxNQUFNLEVBQUU7UUFDTjtZQUNFLFFBQVEsRUFBRTtnQkFDUixhQUFhLEVBQUUsYUFBYSxDQUFDLEtBQUs7Z0JBQ2xDLE9BQU8sRUFBRSxJQUFJO2FBQ2Q7U0FDRjtLQUNGO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDM0MsTUFBTSxFQUFFO1FBQ047WUFDRSxRQUFRLEVBQUU7Z0JBQ1IsYUFBYSxFQUFFLGFBQWEsQ0FBQyxRQUFRO2FBQ3RDO1NBQ0Y7S0FDRjtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pDLE1BQU0sRUFBRTtRQUNOO1lBQ0UsUUFBUSxFQUFFO2dCQUNSLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTTthQUNwQztTQUNGO0tBQ0Y7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLHFCQUFxQixHQUFHOytCQUNDLHlCQUF5Qjs7O0NBR3ZELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7Ozs7OztJQU0xQixxQkFBcUI7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRzs7Ozs7Q0FLMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztDQVUxQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztjQVF2QixjQUFjOzs7Ozs7Ozs7O0VBVTFCLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O1VBTXZCLFdBQVc7Ozs7Ozs7O0VBUW5CLGdCQUFnQjtDQUNqQixDQUFDO0FBV0YsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztjQVFuQyxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwQzFCLGdCQUFnQjtDQUNqQixDQUFDO0FBV0YsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztjQVEvQixjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwQzFCLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLEVBQUUsRUFBRTtJQUN4RSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUNELE9BQU87Ozs7Ozs7Ozs7VUFVQyxxQkFBcUIsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzs7OztDQUt6QyxDQUFDO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsUUFBZ0Isd0JBQXdCLEVBQ3hDLEVBQUUsQ0FBQyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7TUFhRixxQkFBcUI7TUFDckIscUJBQXFCLENBQUMsS0FBSyxDQUFDOzs7OztjQUtwQixjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRDMUIsZ0JBQWdCLEdBQUcsQ0FBQztBQUV0QixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7OztJQVlwQyxnQkFBZ0I7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJ4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUJyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztDQVF4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNeEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRMUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IEtleUdyYXBoRnJhZ21lbnQgfSBmcm9tICcuLi9fY29tbW9uL3F1ZXJpZXMuZ3FsJztcbmltcG9ydCB7IEhhc0VkZ2VzIH0gZnJvbSAnLi4vX2NvbW1vbi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JSRUFEQ1JVTUJfREVQVEggPSA1O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfREVTQ0VOREFOVFNfREVQVEggPSA1O1xuXG5leHBvcnQgZW51bSBEaXJlY3RvcnlUeXBlIHtcbiAgVmF1bHQgPSAndmF1bHQnLFxuICBDYXRlZ29yeSA9ICdjYXRlZ29yeScsXG4gIFJlY29yZCA9ICdyZWNvcmQnLFxufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdFZhdWx0RmlsdGVyID0gSlNPTi5zdHJpbmdpZnkoe1xuICBmaWx0ZXI6IFtcbiAgICB7XG4gICAgICBjb250YWluczoge1xuICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLlZhdWx0LFxuICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgfSxcbiAgICB9LFxuICBdLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDYXRlZ29yeUZpbHRlciA9IEpTT04uc3RyaW5naWZ5KHtcbiAgZmlsdGVyOiBbXG4gICAge1xuICAgICAgY29udGFpbnM6IHtcbiAgICAgICAgZGlyZWN0b3J5VHlwZTogRGlyZWN0b3J5VHlwZS5DYXRlZ29yeSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVjb3JkRmlsdGVyID0gSlNPTi5zdHJpbmdpZnkoe1xuICBmaWx0ZXI6IFtcbiAgICB7XG4gICAgICBjb250YWluczoge1xuICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLlJlY29yZCxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pO1xuXG5jb25zdCBkZXNjZW5kYW50RGlyZWN0b3JpZXMgPSBgXG5kZXNjZW5kYW50RGlyZWN0b3JpZXMoZGVwdGg6ICR7REVGQVVMVF9ERVNDRU5EQU5UU19ERVBUSH0sIHBsYWluTWV0YTogJGNhdGVnb3J5RmlsdGVyLCBhcmNoaXZlZDogZmFsc2UpIHtcbiAgcmVjb3Jkc0NvdW50OiBkaXJlY3Rvcmllc0NvdW50KHBsYWluTWV0YTogJHJlY29yZEZpbHRlciwgYXJjaGl2ZWQ6IGZhbHNlKVxufVxuYDtcblxuZXhwb3J0IGNvbnN0IENhdGVnb3J5RmllbGRzID0gYFxuICBpZFxuICBrZXlJZFxuICBhcmNoaXZlZFxuICBwbGFpbk1ldGFcbiAgY2lwaGVyTWV0YVxuICAke2Rlc2NlbmRhbnREaXJlY3Rvcmllc31cbmA7XG5cbmV4cG9ydCBjb25zdCBWYXVsdEZpZWxkcyA9IGBcbiAgaWRcbiAga2V5SWRcbiAgcGxhaW5NZXRhXG4gIGNpcGhlck1ldGFcbmA7XG5cbmV4cG9ydCBjb25zdCBHZXRSb290RGlyZWN0b3J5SWRzUXVlcnkgPSBncWxgXG4gIHF1ZXJ5IEdldFJvb3REaXJlY3RvcnlJZHNRdWVyeSgkYXJjaGl2ZWQ6IEJvb2xlYW4pIHtcbiAgICByb290RGlyZWN0b3JpZXMoYXJjaGl2ZWQ6ICRhcmNoaXZlZCkge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgR2V0Q2F0ZWdvcmllc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0Q2F0ZWdvcmllc1F1ZXJ5KCR2YXVsdERpcmVjdG9yeUlkOiBMclJlbGF5SWRJbnB1dCEsICRjYXRlZ29yeUZpbHRlcjogTHJKU09ORmlsdGVyISwgJHJlY29yZEZpbHRlcjogTHJKU09ORmlsdGVyISwgJGFyY2hpdmVkOiBCb29sZWFuKVxue1xuICBkaXJlY3RvcnkoaWQ6ICR2YXVsdERpcmVjdG9yeUlkKSB7XG4gICAgY2hpbGREaXJlY3RvcnlMaW5rcyhwbGFpbk1ldGE6ICRjYXRlZ29yeUZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIsIGFyY2hpdmVkOiAkYXJjaGl2ZWQpIHtcbiAgICAgIGVkZ2VzIHtcbiAgICAgICAgbm9kZSB7XG4gICAgICAgICAgY2hpbGREaXJlY3Rvcnkge1xuICAgICAgICAgICAgJHtDYXRlZ29yeUZpZWxkc31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAga2V5R3JhcGgge1xuICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgfVxufVxuJHtLZXlHcmFwaEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGNvbnN0IEdldFZhdWx0c1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0VmF1bHRzKCRwbGFpbk1ldGFGaWx0ZXI6IExySlNPTkZpbHRlciEsICRjYWNoZWRLZXlJZHM6IFtMclJlbGF5SWRJbnB1dCFdKVxue1xuICBsaXN0OiByb290RGlyZWN0b3JpZXMocGxhaW5NZXRhOiAkcGxhaW5NZXRhRmlsdGVyLCBvcmRlckJ5OiBcImNyZWF0ZWRcIikge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAke1ZhdWx0RmllbGRzfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBrZXlHcmFwaChjYWNoZWRLZXlJZHM6ICRjYWNoZWRLZXlJZHMpIHtcbiAgICAuLi5LZXlHcmFwaEZyYWdtZW50XG4gIH1cbn1cbiR7S2V5R3JhcGhGcmFnbWVudH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5VHlwZSBleHRlbmRzIEhhc0tleUdyYXBoIHtcbiAgdHA6IHtcbiAgICB0aGVpckl0ZW1zOiB7XG4gICAgICBsaXN0OiBIYXNFZGdlczxhbnk+O1xuICAgICAgcmVjb3JkczogSGFzRWRnZXM8YW55PjtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5KCR0cnVzdGVkUGFydHlJZDogTHJSZWxheUlkSW5wdXQhLCAkY2F0ZWdvcnlGaWx0ZXI6IExySlNPTkZpbHRlciEsICRyZWNvcmRGaWx0ZXI6IExySlNPTkZpbHRlciEsICRjb250ZW50RmlsdGVyOiBMckpTT05GaWx0ZXIsICRjYWNoZWRLZXlJZHM6IFtMclJlbGF5SWRJbnB1dCFdKVxue1xuICB0cChpZDogJHRydXN0ZWRQYXJ0eUlkKSB7XG4gICAgdGhlaXJJdGVtcyB7XG4gICAgICBsaXN0OiBkaXJlY3RvcmllcyhwbGFpbk1ldGE6ICRjYXRlZ29yeUZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIpIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgJHtDYXRlZ29yeUZpZWxkc31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlY29yZHM6IGRpcmVjdG9yaWVzKHBsYWluTWV0YTogJHJlY29yZEZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIpIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIGtleUlkXG4gICAgICAgICAgICBhcmNoaXZlZFxuICAgICAgICAgICAgcGxhaW5NZXRhXG4gICAgICAgICAgICBjaXBoZXJNZXRhXG4gICAgICAgICAgICBjcmVhdGVkXG4gICAgICAgICAgICBtb2RpZmllZFxuICAgICAgICAgICAgY29udGVudDogY2hpbGRGaWxlTGlua3MocGxhaW5NZXRhOiAkY29udGVudEZpbHRlcikge1xuICAgICAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgICAgICBjaGlsZEZpbGUge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgICBhcmNoaXZlZFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmVyc2lvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5SWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluTWV0YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVyTWV0YVxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAga2V5R3JhcGgoY2FjaGVkS2V5SWRzOiAkY2FjaGVkS2V5SWRzKSB7XG4gICAgLi4uS2V5R3JhcGhGcmFnbWVudFxuICB9XG59XG4ke0tleUdyYXBoRnJhZ21lbnR9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldE15U2hhcmVkQ2F0ZWdvcmllc1F1ZXJ5VHlwZSBleHRlbmRzIEhhc0tleUdyYXBoIHtcbiAgdHA6IHtcbiAgICBteUl0ZW1zOiB7XG4gICAgICBsaXN0OiBIYXNFZGdlczxhbnk+O1xuICAgICAgcmVjb3JkczogSGFzRWRnZXM8YW55PjtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0TXlTaGFyZWRDYXRlZ29yaWVzUXVlcnkgPSBncWxgXG5xdWVyeSBHZXRNeVNoYXJlZENhdGVnb3JpZXNRdWVyeSgkdHJ1c3RlZFBhcnR5SWQ6IExyUmVsYXlJZElucHV0ISwgJGNhdGVnb3J5RmlsdGVyOiBMckpTT05GaWx0ZXIhLCAkcmVjb3JkRmlsdGVyOiBMckpTT05GaWx0ZXIhLCAkY29udGVudEZpbHRlcjogTHJKU09ORmlsdGVyLCAkY2FjaGVkS2V5SWRzOiBbTHJSZWxheUlkSW5wdXQhXSlcbntcbiAgdHAoaWQ6ICR0cnVzdGVkUGFydHlJZCkge1xuICAgIG15SXRlbXMge1xuICAgICAgbGlzdDogZGlyZWN0b3JpZXMocGxhaW5NZXRhOiAkY2F0ZWdvcnlGaWx0ZXIsIG9yZGVyQnk6IFwiY3JlYXRlZFwiKSB7XG4gICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICR7Q2F0ZWdvcnlGaWVsZHN9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZWNvcmRzOiBkaXJlY3RvcmllcyhwbGFpbk1ldGE6ICRyZWNvcmRGaWx0ZXIsIG9yZGVyQnk6IFwiY3JlYXRlZFwiKSB7XG4gICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBrZXlJZFxuICAgICAgICAgICAgYXJjaGl2ZWRcbiAgICAgICAgICAgIHBsYWluTWV0YVxuICAgICAgICAgICAgY2lwaGVyTWV0YVxuICAgICAgICAgICAgY3JlYXRlZFxuICAgICAgICAgICAgbW9kaWZpZWRcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNoaWxkRmlsZUxpbmtzKHBsYWluTWV0YTogJGNvbnRlbnRGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICAgICAgY2hpbGRGaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgYXJjaGl2ZWRcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZlcnNpb24ge1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleUlkXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlck1ldGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGtleUdyYXBoKGNhY2hlZEtleUlkczogJGNhY2hlZEtleUlkcykge1xuICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgfVxufVxuJHtLZXlHcmFwaEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGNvbnN0IHBhcmVudENhdGVnb3JpZXNGaWVsZCA9IChkZXB0aCA9IERFRkFVTFRfQlJFQURDUlVNQl9ERVBUSCkgPT4ge1xuICBpZiAoIWRlcHRoKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiBgXG5wYXJlbnRDYXRlZ29yaWVzOiBwYXJlbnREaXJlY3RvcnlMaW5rcyhwbGFpbk1ldGE6ICRjYXRlZ29yeUZpbHRlcikge1xuICBlZGdlcyB7XG4gICAgbm9kZSB7XG4gICAgICBwYXJlbnREaXJlY3Rvcnkge1xuICAgICAgICBpZFxuICAgICAgICBrZXlJZFxuICAgICAgICBhcmNoaXZlZFxuICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgY2lwaGVyTWV0YVxuICAgICAgICAke3BhcmVudENhdGVnb3JpZXNGaWVsZChkZXB0aCAtIDEpfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuYDtcbn07XG5cbmV4cG9ydCBjb25zdCBHZXRDYXRlZ29yeVF1ZXJ5ID0gKFxuICBkZXB0aDogbnVtYmVyID0gREVGQVVMVF9CUkVBRENSVU1CX0RFUFRIXG4pID0+IGdxbGBcbnF1ZXJ5IEdldENhdGVnb3J5KFxuICAkaWQ6IExyUmVsYXlJZElucHV0ISxcbiAgJGNhdGVnb3J5RmlsdGVyOiBMckpTT05GaWx0ZXIhLFxuICAkcmVjb3JkRmlsdGVyOiBMckpTT05GaWx0ZXIhLFxuICAkY29udGVudEZpbHRlcjogTHJKU09ORmlsdGVyLFxuICAkY2FjaGVkS2V5SWRzOiBbTHJSZWxheUlkSW5wdXQhXSkge1xuICBjYXRlZ29yeTogZGlyZWN0b3J5KGlkOiAkaWQpIHtcbiAgICBpZFxuICAgIGtleUlkXG4gICAgYXJjaGl2ZWRcbiAgICBwbGFpbk1ldGFcbiAgICBjaXBoZXJNZXRhXG4gICAgJHtkZXNjZW5kYW50RGlyZWN0b3JpZXN9XG4gICAgJHtwYXJlbnRDYXRlZ29yaWVzRmllbGQoZGVwdGgpfVxuICAgIHN1YkNhdGVnb3JpZXM6IGNoaWxkRGlyZWN0b3J5TGlua3MocGxhaW5NZXRhOiAkY2F0ZWdvcnlGaWx0ZXIsIG9yZGVyQnk6IFwiY3JlYXRlZFwiKSB7XG4gICAgICBlZGdlcyB7XG4gICAgICAgIG5vZGUge1xuICAgICAgICAgIGNoaWxkRGlyZWN0b3J5IHtcbiAgICAgICAgICAgICR7Q2F0ZWdvcnlGaWVsZHN9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJlY29yZHM6IGNoaWxkRGlyZWN0b3J5TGlua3MocGxhaW5NZXRhOiAkcmVjb3JkRmlsdGVyLCBvcmRlckJ5OiBcImNyZWF0ZWRcIikge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICBjaGlsZERpcmVjdG9yeSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAga2V5SWRcbiAgICAgICAgICAgIGFyY2hpdmVkXG4gICAgICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgICAgIGNpcGhlck1ldGFcbiAgICAgICAgICAgIGNyZWF0ZWRcbiAgICAgICAgICAgIG1vZGlmaWVkXG4gICAgICAgICAgICBjb250ZW50OiBjaGlsZEZpbGVMaW5rcyhwbGFpbk1ldGE6ICRjb250ZW50RmlsdGVyKSB7XG4gICAgICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgICAgIGNoaWxkRmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICAgIGFyY2hpdmVkXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWZXJzaW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlJZFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5NZXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJNZXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBrZXlHcmFwaChjYWNoZWRLZXlJZHM6ICRjYWNoZWRLZXlJZHMpIHtcbiAgICAuLi5LZXlHcmFwaEZyYWdtZW50XG4gIH1cbn1cbiR7S2V5R3JhcGhGcmFnbWVudH0gYDtcblxuZXhwb3J0IGNvbnN0IEdldENhdGVnb3J5S2V5SWRRdWVyeSA9IGdxbGBcbiAgcXVlcnkgR2V0Q2F0ZWdvcnlLZXlJZFF1ZXJ5KFxuICAgICRpZDogTHJSZWxheUlkSW5wdXQhXG4gICAgJGNhY2hlZEtleUlkczogW0xyUmVsYXlJZElucHV0IV1cbiAgKSB7XG4gICAgY2F0ZWdvcnk6IGRpcmVjdG9yeShpZDogJGlkKSB7XG4gICAgICBrZXlJZFxuICAgIH1cbiAgICBrZXlHcmFwaChjYWNoZWRLZXlJZHM6ICRjYWNoZWRLZXlJZHMpIHtcbiAgICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgICB9XG4gIH1cbiAgJHtLZXlHcmFwaEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUNhdGVnb3J5TXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIENyZWF0ZUNhdGVnb3J5KFxuICAgICRwbGFpbk1ldGE6IExySlNPTlN0cmluZ1xuICAgICRjaXBoZXJNZXRhOiBTdHJpbmdcbiAgICAkcGFyZW50RGlyZWN0b3JpZXM6IFtQYXJlbnREaXJlY3RvcnlJbnB1dCFdXG4gICAgJHBhcmVudFJvb3REaXJlY3Rvcnk6IFBhcmVudFJvb3REaXJlY3RvcnlJbnB1dFxuICApIHtcbiAgICBuZXc6IGNyZWF0ZURpcmVjdG9yeShcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIHBsYWluTWV0YTogJHBsYWluTWV0YVxuICAgICAgICBjaXBoZXJNZXRhOiAkY2lwaGVyTWV0YVxuICAgICAgICBwYXJlbnREaXJlY3RvcmllczogJHBhcmVudERpcmVjdG9yaWVzXG4gICAgICAgIHBhcmVudFJvb3REaXJlY3Rvcnk6ICRwYXJlbnRSb290RGlyZWN0b3J5XG4gICAgICB9XG4gICAgKSB7XG4gICAgICBjYXRlZ29yeTogZGlyZWN0b3J5IHtcbiAgICAgICAgaWRcbiAgICAgICAga2V5SWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVWYXVsdE11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBDcmVhdGVDYXRlZ29yeShcbiAgICAkcGxhaW5NZXRhOiBMckpTT05TdHJpbmdcbiAgICAkY2lwaGVyTWV0YTogU3RyaW5nXG4gICAgJHBhcmVudFJvb3REaXJlY3Rvcnk6IFBhcmVudFJvb3REaXJlY3RvcnlJbnB1dFxuICApIHtcbiAgICBuZXc6IGNyZWF0ZURpcmVjdG9yeShcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIHBsYWluTWV0YTogJHBsYWluTWV0YVxuICAgICAgICBjaXBoZXJNZXRhOiAkY2lwaGVyTWV0YVxuICAgICAgICBwYXJlbnRSb290RGlyZWN0b3J5OiAkcGFyZW50Um9vdERpcmVjdG9yeVxuICAgICAgfVxuICAgICkge1xuICAgICAgdmF1bHQ6IGRpcmVjdG9yeSB7XG4gICAgICAgIGlkXG4gICAgICAgIGtleUlkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQ2F0ZWdvcnlNdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gVXBkYXRlQ2F0ZWdvcnkoJGlucHV0OiBVcGRhdGVEaXJlY3RvcnlJbnB1dCEpIHtcbiAgICB1cGRhdGVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgZGlyZWN0b3J5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDYXRlZ29yeU11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBEZWxldGVDYXRlZ29yeSgkY2F0ZWdvcnlJZDogTHJSZWxheUlkSW5wdXQhKSB7XG4gICAgZGVsZXRlRGlyZWN0b3J5KGlucHV0OiB7IGRpcmVjdG9yeUlkOiAkY2F0ZWdvcnlJZCB9KSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gQXJjaGl2ZURpcmVjdG9yeSgkaW5wdXQ6IEFyY2hpdmVEaXJlY3RvcnlJbnB1dCEpIHtcbiAgICBhcmNoaXZlRGlyZWN0b3J5KGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGRpcmVjdG9yeSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIFVuYXJjaGl2ZURpcmVjdG9yeSgkaW5wdXQ6IFVuYXJjaGl2ZURpcmVjdG9yeUlucHV0ISkge1xuICAgIHVuYXJjaGl2ZURpcmVjdG9yeShpbnB1dDogJGlucHV0KSB7XG4gICAgICBkaXJlY3Rvcnkge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcbiJdfQ==
@@ -5,7 +5,7 @@ import { LrApolloService } from '../api/lr-apollo.service';
5
5
  import { KeyGraphService } from '../key/key-graph.service';
6
6
  import { KeyMetaService } from '../key/key-meta.service';
7
7
  import { RecordContentFilter } from '../record/record.gql';
8
- import { LrBadStateException } from '../_common/exceptions';
8
+ import { KcBadStateException } from '../_common/exceptions';
9
9
  import { ArchiveDirectoryMutation, CategoryFilter, CreateCategoryMutation, CreateVaultMutation, DefaultVaultFilter, DeleteCategoryMutation, DirectoryType, GetCategoriesQuery, GetCategoryQuery, GetMySharedCategoriesQuery, GetRootDirectoryIdsQuery, GetTrustedPartyCategoriesQuery, GetVaultsQuery, RecordFilter, UnarchiveDirectoryMutation, UpdateCategoryMutation, } from './category.gql';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "../api/lr-apollo.service";
@@ -38,7 +38,7 @@ export class CategoryService {
38
38
  });
39
39
  const defaultVaults = yield this.mapVaults(list);
40
40
  if (defaultVaults.length > 1) {
41
- throw new LrBadStateException('There are more than one default vaults');
41
+ throw new KcBadStateException('There are more than one default vaults');
42
42
  }
43
43
  return defaultVaults[0] || null;
44
44
  });
@@ -75,8 +75,8 @@ export class CategoryService {
75
75
  },
76
76
  });
77
77
  return {
78
- categories: yield this.mapCategories(tp.sharedItems.list),
79
- records: yield this.mapRecords(tp.sharedItems.records),
78
+ categories: yield this.mapCategories(tp.theirItems.list),
79
+ records: yield this.mapRecords(tp.theirItems.records),
80
80
  };
81
81
  });
82
82
  }
@@ -358,4 +358,4 @@ CategoryService.ctorParameters = () => [
358
358
  { type: KeyMetaService },
359
359
  { type: KeyGraphService }
360
360
  ];
361
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jYXRlZ29yeS9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBRTFCLHdCQUF3QixFQUN4Qiw4QkFBOEIsRUFFOUIsY0FBYyxFQUNkLFlBQVksRUFDWiwwQkFBMEIsRUFDMUIsc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBYXhCLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ1UsUUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsUUFBeUI7UUFGekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQ2hDLENBQUM7SUFFUyxtQkFBbUIsQ0FDOUIsUUFBK0IsSUFBSTs7WUFFbkMsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQU07Z0JBQ3pELEtBQUssRUFBRSx3QkFBd0I7Z0JBQy9CLFNBQVMsRUFBRTtvQkFDVCxRQUFRLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRO2lCQUNsQzthQUNGLENBQUMsQ0FBQztZQUNILE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQztLQUFBO0lBRVksZUFBZTs7WUFDMUIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQXdCO2dCQUNoRSxLQUFLLEVBQUUsY0FBYztnQkFDckIsU0FBUyxFQUFFO29CQUNULGVBQWUsRUFBRSxrQkFBa0I7aUJBQ3BDO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO2FBQ3pFO1lBRUQsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2xDLENBQUM7S0FBQTtJQUVZLGFBQWEsQ0FBQyxLQUcxQjs7O1lBQ0MsTUFBTSxnQkFBZ0IsR0FDcEIsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZ0JBQWdCLFlBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQywwQ0FBRSxFQUFFLENBQUEsQ0FBQztZQUVoRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUVELE1BQU0sR0FBRyxHQUFRLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pDLEtBQUssRUFBRSxrQkFBa0I7Z0JBQ3pCLFNBQVMsRUFBRTtvQkFDVCxnQkFBZ0I7b0JBQ2hCLGNBQWMsRUFBRSxjQUFjO29CQUM5QixZQUFZLEVBQUUsWUFBWTtvQkFDMUIsUUFBUSxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxRQUFRO2lCQUMxQjthQUNGLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7O0tBQzlEO0lBRVkseUJBQXlCLENBQ3BDLGNBQXNCOztZQUV0QixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQ1YsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBcUM7Z0JBQzVELEtBQUssRUFBRSw4QkFBOEI7Z0JBQ3JDLFNBQVMsRUFBRTtvQkFDVCxjQUFjO29CQUNkLGNBQWMsRUFBRSxjQUFjO29CQUM5QixZQUFZLEVBQUUsWUFBWTtvQkFDMUIsYUFBYSxFQUFFLG1CQUFtQjtpQkFDbkM7YUFDRixDQUFDLENBQUM7WUFDTCxPQUFPO2dCQUNMLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7YUFDdkQsQ0FBQztRQUNKLENBQUM7S0FBQTtJQUVZLHFCQUFxQixDQUNoQyxjQUFzQjs7WUFFdEIsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQWlDO2dCQUN2RSxLQUFLLEVBQUUsMEJBQTBCO2dCQUNqQyxTQUFTLEVBQUU7b0JBQ1QsY0FBYztvQkFDZCxjQUFjLEVBQUUsY0FBYztvQkFDOUIsWUFBWSxFQUFFLFlBQVk7b0JBQzFCLGFBQWEsRUFBRSxtQkFBbUI7aUJBQ25DO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsT0FBTztnQkFDTCxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQ25ELENBQUM7UUFDSixDQUFDO0tBQUE7SUFFWSxXQUFXLENBQUMsVUFBa0I7O1lBQ3pDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFNO2dCQUNsRCxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ3pCLFNBQVMsRUFBRTtvQkFDVCxFQUFFLEVBQUUsVUFBVTtvQkFDZCxjQUFjLEVBQUUsY0FBYztvQkFDOUIsWUFBWSxFQUFFLFlBQVk7b0JBQzFCLGFBQWEsRUFBRSxtQkFBbUI7aUJBQ25DO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsT0FBTztnQkFDTCxRQUFRLGtDQUNILENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQ3JDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FDbEQ7Z0JBQ0QsYUFBYSxFQUFFLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO2dCQUMvRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDakQsQ0FBQztRQUNKLENBQUM7S0FBQTtJQUVhLFNBQVMsQ0FBQyxJQUFtQjs7WUFDekMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztRQUNKLENBQUM7S0FBQTtJQUVhLGFBQWEsQ0FBQyxJQUFtQjs7WUFDN0MsT0FBTyxDQUNMLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixJQUFJLENBQUMsS0FBSztpQkFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQ2xCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7aUJBQ2pDLEdBQUcsQ0FDRixDQUFDLElBT0EsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FDN0IsQ0FDSixDQUNGO2lCQUNFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7S0FBQTtJQUVhLFVBQVUsQ0FBQyxJQUFtQjs7WUFDMUMsT0FBTyxDQUNMLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixJQUFJLENBQUMsS0FBSztpQkFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQ2xCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7aUJBQ2pDLEdBQUcsQ0FDRixDQUFDLElBU0EsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FDM0IsQ0FDSixDQUNGO2lCQUNFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7S0FBQTtJQUVZLGtCQUFrQjs7WUFDN0IsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFNUUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBTTtnQkFDL0MsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsU0FBUyxFQUFFO29CQUNULFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUN4QixhQUFhLEVBQUUsYUFBYSxDQUFDLEtBQUs7d0JBQ2xDLE9BQU8sRUFBRSxJQUFJO3FCQUNkLENBQUM7b0JBQ0YsVUFBVSxFQUFFLGNBQWMsQ0FBQyxVQUFVO29CQUNyQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsT0FBTztpQkFDNUM7YUFDRixDQUFDLENBQUM7WUFFSCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMvQixDQUFDO0tBQUE7SUFFWSxjQUFjLENBQUMsV0FBd0I7O1lBQ2xELE1BQU0sYUFBYSxHQUFHO2dCQUNwQixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQ3RCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtnQkFDdEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO2dCQUM5QixZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQVk7Z0JBQ3RDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7YUFDekQsQ0FBQztZQUNGLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQzFELGFBQWEsRUFDYixXQUFXLENBQUMsV0FBVyxDQUN4QixDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBTTtnQkFDL0MsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsU0FBUyxFQUFFO29CQUNULFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUN4QixhQUFhLEVBQUUsYUFBYSxDQUFDLFFBQVE7d0JBQ3JDLFFBQVEsRUFBRSxLQUFLO3FCQUNoQixDQUFDO29CQUNGLFVBQVUsRUFBRSxjQUFjLENBQUMsVUFBVTtvQkFDckMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLFdBQVc7b0JBQzdDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxPQUFPO2lCQUM1QzthQUNGLENBQUMsQ0FBQztZQUVILE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xDLENBQUM7S0FBQTtJQUVZLGNBQWMsQ0FDekIsVUFBa0IsRUFDbEIsS0FBYSxFQUNiLGVBQWdDOztZQUVoQyxNQUFNLGFBQWEsR0FBRztnQkFDcEIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO2dCQUMxQixJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUk7Z0JBQzFCLFFBQVEsRUFBRSxlQUFlLENBQUMsUUFBUTtnQkFDbEMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxZQUFZO2dCQUMxQyxxQkFBcUIsRUFBRSxlQUFlLENBQUMscUJBQXFCO2FBQzdELENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUNwRCxLQUFLLEVBQ0wsYUFBYSxDQUNkLENBQUM7WUFFRixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUN6QixRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFO3dCQUNMLFdBQVcsRUFBRSxVQUFVO3dCQUN2QixVQUFVO3FCQUNYO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVkscUJBQXFCLENBQ2hDLFVBQWtCLEVBQ2xCLElBQWE7O1lBRWIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDekIsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxXQUFXLEVBQUUsVUFBVTt3QkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7NEJBQ3hCLGFBQWEsRUFBRSxhQUFhLENBQUMsUUFBUTs0QkFDckMsUUFBUSxFQUFFLElBQUk7eUJBQ2YsQ0FBQztxQkFDSDtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLGNBQWMsQ0FBQyxVQUFrQjs7WUFDNUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDekIsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsU0FBUyxFQUFFLEVBQUUsVUFBVSxFQUFFO2FBQzFCLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLGVBQWUsQ0FDMUIsVUFBa0IsRUFDbEIsU0FBa0I7O1lBRWxCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RCxDQUFDO0tBQUE7SUFFWSxpQkFBaUIsQ0FDNUIsVUFBa0IsRUFDbEIsU0FBa0I7O1lBRWxCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4RCxDQUFDO0tBQUE7SUFFWSxnQkFBZ0IsQ0FDM0IsV0FBbUIsRUFDbkIsU0FBa0I7O1lBRWxCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUU7d0JBQ0wsV0FBVzt3QkFDWCxTQUFTO3FCQUNWO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksa0JBQWtCLENBQzdCLFdBQW1CLEVBQ25CLFNBQWtCOztZQUVsQixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUN6QixRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFO3dCQUNMLFdBQVc7d0JBQ1gsU0FBUztxQkFDVjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLFFBQVEsQ0FBQyxJQUtyQjs7WUFDQyxJQUFJO2dCQUNGLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JFLE9BQU87b0JBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO29CQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztvQkFDakIsSUFBSTtpQkFDTCxDQUFDO2FBQ0g7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbkQsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLG1CQUFtQixDQUFDLFFBRWhDOztZQUNDLElBQ0UsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO2dCQUMxQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUNoQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUN2QztnQkFDQSxPQUFPLEVBQUUsQ0FBQzthQUNYO1lBQ0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBRXJFLE9BQU87Z0JBQ0wsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2FBQzdCLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFWSxXQUFXLENBQUMsSUFPeEI7OztZQUNDLElBQUk7Z0JBQ0YsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxHQUNqRSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRTFFLE9BQU87b0JBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO29CQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztvQkFDakIsSUFBSTtvQkFDSixJQUFJO29CQUNKLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtvQkFDcEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO29CQUNwQixVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO29CQUMzQixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVk7b0JBQzVCLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxxQkFBcUI7b0JBQzlDLE9BQU8sRUFBRSxJQUFJLENBQUMscUJBQXFCO3dCQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksS0FBSyxDQUFDO3dCQUMvQyxDQUFDLENBQUMsSUFBSTtvQkFDUixlQUFlLFFBQUUsSUFBSSxDQUFDLHFCQUFxQiwwQ0FBRSxZQUFZO2lCQUMxRCxDQUFDO2FBQ0g7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdEQsT0FBTyxJQUFJLENBQUM7YUFDYjs7S0FDRjtJQUVZLFNBQVMsQ0FBQyxJQVN0Qjs7WUFDQyxJQUFJO2dCQUNGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3RELE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQ3hCLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FDcEMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQzlCLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRVgsT0FBTztvQkFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7b0JBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixJQUFJO29CQUNKLFVBQVU7b0JBQ1YsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtvQkFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUN2QixZQUFZLEVBQ1YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzt3QkFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO3dCQUM5QyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVE7d0JBQ2YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVE7aUJBQzdDLENBQUM7YUFDSDtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLE9BQU8sSUFBbUIsQ0FBQzthQUM1QjtRQUNILENBQUM7S0FBQTs7OztZQXhhRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQXJDUSxlQUFlO1lBRWYsY0FBYztZQURkLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMckFwb2xsb1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItYXBvbGxvLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleU1ldGFTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVjb3JkQ29udGVudEZpbHRlciB9IGZyb20gJy4uL3JlY29yZC9yZWNvcmQuZ3FsJztcbmltcG9ydCB7IExyQmFkU3RhdGVFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgSGFzRWRnZXMsIEhhc0tleUdyYXBoRWRnZXMgfSBmcm9tICcuLi9fY29tbW9uL3R5cGVzJztcbmltcG9ydCB7XG4gIEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgQ2F0ZWdvcnlGaWx0ZXIsXG4gIENyZWF0ZUNhdGVnb3J5TXV0YXRpb24sXG4gIENyZWF0ZVZhdWx0TXV0YXRpb24sXG4gIERlZmF1bHRWYXVsdEZpbHRlcixcbiAgRGVsZXRlQ2F0ZWdvcnlNdXRhdGlvbixcbiAgRGlyZWN0b3J5VHlwZSxcbiAgR2V0Q2F0ZWdvcmllc1F1ZXJ5LFxuICBHZXRDYXRlZ29yeVF1ZXJ5LFxuICBHZXRNeVNoYXJlZENhdGVnb3JpZXNRdWVyeSxcbiAgR2V0TXlTaGFyZWRDYXRlZ29yaWVzUXVlcnlUeXBlLFxuICBHZXRSb290RGlyZWN0b3J5SWRzUXVlcnksXG4gIEdldFRydXN0ZWRQYXJ0eUNhdGVnb3JpZXNRdWVyeSxcbiAgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5VHlwZSxcbiAgR2V0VmF1bHRzUXVlcnksXG4gIFJlY29yZEZpbHRlcixcbiAgVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gIFVwZGF0ZUNhdGVnb3J5TXV0YXRpb24sXG59IGZyb20gJy4vY2F0ZWdvcnkuZ3FsJztcbmltcG9ydCB7XG4gIENhdGVnb3J5LFxuICBOZXdDYXRlZ29yeSxcbiAgVXBkYXRlZENhdGVnb3J5LFxuICBWYXVsdCxcbiAgVmF1bHRDYXRlZ29yeSxcbiAgVmF1bHRSZWNvcmQsXG59IGZyb20gJy4vY2F0ZWdvcnkudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5TWV0YVNlcnZpY2U6IEtleU1ldGFTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldFJvb3REaXJlY3RvcnlJZHMoXG4gICAgaW5wdXQ6IHsgYXJjaGl2ZWQ6IGJvb2xlYW4gfSA9IG51bGxcbiAgKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHsgcm9vdERpcmVjdG9yaWVzIH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PGFueT4oe1xuICAgICAgcXVlcnk6IEdldFJvb3REaXJlY3RvcnlJZHNRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBhcmNoaXZlZDogaW5wdXQgJiYgaW5wdXQuYXJjaGl2ZWQsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiByb290RGlyZWN0b3JpZXMuZWRnZXMubWFwKChlZGdlKSA9PiBlZGdlLm5vZGUuaWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERlZmF1bHRWYXVsdCgpOiBQcm9taXNlPFZhdWx0PiB7XG4gICAgY29uc3QgeyBsaXN0IH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PEhhc0tleUdyYXBoRWRnZXM8YW55Pj4oe1xuICAgICAgcXVlcnk6IEdldFZhdWx0c1F1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBsYWluTWV0YUZpbHRlcjogRGVmYXVsdFZhdWx0RmlsdGVyLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRWYXVsdHMgPSBhd2FpdCB0aGlzLm1hcFZhdWx0cyhsaXN0KTtcbiAgICBpZiAoZGVmYXVsdFZhdWx0cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRTdGF0ZUV4Y2VwdGlvbignVGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgZGVmYXVsdCB2YXVsdHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZhdWx0c1swXSB8fCBudWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENhdGVnb3JpZXMoaW5wdXQ/OiB7XG4gICAgYXJjaGl2ZWQ/OiBib29sZWFuO1xuICAgIHZhdWx0RGlyZWN0b3J5SWQ/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPENhdGVnb3J5W10+IHtcbiAgICBjb25zdCB2YXVsdERpcmVjdG9yeUlkID1cbiAgICAgIGlucHV0Py52YXVsdERpcmVjdG9yeUlkIHx8IChhd2FpdCB0aGlzLmdldERlZmF1bHRWYXVsdCgpKT8uaWQ7XG5cbiAgICBpZiAoIXZhdWx0RGlyZWN0b3J5SWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIGlzIG5vIGRlZmF1bHQgdmF1bHQuJyk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBHZXRDYXRlZ29yaWVzUXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgdmF1bHREaXJlY3RvcnlJZCxcbiAgICAgICAgY2F0ZWdvcnlGaWx0ZXI6IENhdGVnb3J5RmlsdGVyLFxuICAgICAgICByZWNvcmRGaWx0ZXI6IFJlY29yZEZpbHRlcixcbiAgICAgICAgYXJjaGl2ZWQ6IGlucHV0Py5hcmNoaXZlZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5tYXBDYXRlZ29yaWVzKHJlcy5kaXJlY3RvcnkuY2hpbGREaXJlY3RvcnlMaW5rcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllcyhcbiAgICB0cnVzdGVkUGFydHlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8eyBjYXRlZ29yaWVzOiBDYXRlZ29yeVtdOyByZWNvcmRzPzogVmF1bHRSZWNvcmRbXSB9PiB7XG4gICAgY29uc3QgeyB0cCB9ID1cbiAgICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8R2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5VHlwZT4oe1xuICAgICAgICBxdWVyeTogR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICB0cnVzdGVkUGFydHlJZCxcbiAgICAgICAgICBjYXRlZ29yeUZpbHRlcjogQ2F0ZWdvcnlGaWx0ZXIsXG4gICAgICAgICAgcmVjb3JkRmlsdGVyOiBSZWNvcmRGaWx0ZXIsXG4gICAgICAgICAgY29udGVudEZpbHRlcjogUmVjb3JkQ29udGVudEZpbHRlcixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBjYXRlZ29yaWVzOiBhd2FpdCB0aGlzLm1hcENhdGVnb3JpZXModHAuc2hhcmVkSXRlbXMubGlzdCksXG4gICAgICByZWNvcmRzOiBhd2FpdCB0aGlzLm1hcFJlY29yZHModHAuc2hhcmVkSXRlbXMucmVjb3JkcyksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRNeVNoYXJlZENhdGVnb3JpZXMoXG4gICAgdHJ1c3RlZFBhcnR5SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHsgY2F0ZWdvcmllczogQ2F0ZWdvcnlbXTsgcmVjb3Jkcz86IFZhdWx0UmVjb3JkW10gfT4ge1xuICAgIGNvbnN0IHsgdHAgfSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8R2V0TXlTaGFyZWRDYXRlZ29yaWVzUXVlcnlUeXBlPih7XG4gICAgICBxdWVyeTogR2V0TXlTaGFyZWRDYXRlZ29yaWVzUXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgdHJ1c3RlZFBhcnR5SWQsXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyOiBDYXRlZ29yeUZpbHRlcixcbiAgICAgICAgcmVjb3JkRmlsdGVyOiBSZWNvcmRGaWx0ZXIsXG4gICAgICAgIGNvbnRlbnRGaWx0ZXI6IFJlY29yZENvbnRlbnRGaWx0ZXIsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBjYXRlZ29yaWVzOiBhd2FpdCB0aGlzLm1hcENhdGVnb3JpZXModHAubXlJdGVtcy5saXN0KSxcbiAgICAgIHJlY29yZHM6IGF3YWl0IHRoaXMubWFwUmVjb3Jkcyh0cC5teUl0ZW1zLnJlY29yZHMpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q2F0ZWdvcnkoY2F0ZWdvcnlJZDogc3RyaW5nKTogUHJvbWlzZTxWYXVsdENhdGVnb3J5PiB7XG4gICAgY29uc3QgeyBjYXRlZ29yeSB9ID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxhbnk+KHtcbiAgICAgIHF1ZXJ5OiBHZXRDYXRlZ29yeVF1ZXJ5KCksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaWQ6IGNhdGVnb3J5SWQsXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyOiBDYXRlZ29yeUZpbHRlcixcbiAgICAgICAgcmVjb3JkRmlsdGVyOiBSZWNvcmRGaWx0ZXIsXG4gICAgICAgIGNvbnRlbnRGaWx0ZXI6IFJlY29yZENvbnRlbnRGaWx0ZXIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNhdGVnb3J5OiB7XG4gICAgICAgIC4uLihhd2FpdCB0aGlzLm1hcENhdGVnb3J5KGNhdGVnb3J5KSksXG4gICAgICAgIHBhcmVudHM6IGF3YWl0IHRoaXMubWFwUGFyZW50Q2F0ZWdvcmllcyhjYXRlZ29yeSksXG4gICAgICB9LFxuICAgICAgc3ViQ2F0ZWdvcmllczogYXdhaXQgdGhpcy5tYXBDYXRlZ29yaWVzKGNhdGVnb3J5LnN1YkNhdGVnb3JpZXMpLFxuICAgICAgcmVjb3JkczogYXdhaXQgdGhpcy5tYXBSZWNvcmRzKGNhdGVnb3J5LnJlY29yZHMpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1hcFZhdWx0cyhsaXN0OiBIYXNFZGdlczxhbnk+KTogUHJvbWlzZTxWYXVsdFtdPiB7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsPFZhdWx0PihcbiAgICAgIGxpc3QuZWRnZXMubWFwKChlZGdlKSA9PiB0aGlzLm1hcFZhdWx0KGVkZ2Uubm9kZSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbWFwQ2F0ZWdvcmllcyhsaXN0OiBIYXNFZGdlczxhbnk+KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsPENhdGVnb3J5PihcbiAgICAgICAgbGlzdC5lZGdlc1xuICAgICAgICAgIC5tYXAoKHgpID0+IHgubm9kZSlcbiAgICAgICAgICAubWFwKCh4KSA9PiB4LmNoaWxkRGlyZWN0b3J5IHx8IHgpXG4gICAgICAgICAgLm1hcChcbiAgICAgICAgICAgIChub2RlOiB7XG4gICAgICAgICAgICAgIGlkO1xuICAgICAgICAgICAgICBrZXlJZDtcbiAgICAgICAgICAgICAgcGxhaW5NZXRhO1xuICAgICAgICAgICAgICBjaXBoZXJNZXRhO1xuICAgICAgICAgICAgICBkZXNjZW5kYW50RGlyZWN0b3JpZXM7XG4gICAgICAgICAgICAgIGFyY2hpdmVkO1xuICAgICAgICAgICAgfSkgPT4gdGhpcy5tYXBDYXRlZ29yeShub2RlKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4KVxuICAgICAgLnNvcnQoKHgsIHkpID0+ICh4Lm5hbWUgPT09IHkubmFtZSA/IDAgOiB4Lm5hbWUgPiB5Lm5hbWUgPyAxIDogLTEpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbWFwUmVjb3JkcyhsaXN0OiBIYXNFZGdlczxhbnk+KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsPFZhdWx0UmVjb3JkPihcbiAgICAgICAgbGlzdC5lZGdlc1xuICAgICAgICAgIC5tYXAoKHgpID0+IHgubm9kZSlcbiAgICAgICAgICAubWFwKCh4KSA9PiB4LmNoaWxkRGlyZWN0b3J5IHx8IHgpXG4gICAgICAgICAgLm1hcChcbiAgICAgICAgICAgIChub2RlOiB7XG4gICAgICAgICAgICAgIGlkO1xuICAgICAgICAgICAgICBrZXlJZDtcbiAgICAgICAgICAgICAgcGxhaW5NZXRhO1xuICAgICAgICAgICAgICBjaXBoZXJNZXRhO1xuICAgICAgICAgICAgICBjcmVhdGVkO1xuICAgICAgICAgICAgICBtb2RpZmllZDtcbiAgICAgICAgICAgICAgY29udGVudDtcbiAgICAgICAgICAgICAgYXJjaGl2ZWQ7XG4gICAgICAgICAgICB9KSA9PiB0aGlzLm1hcFJlY29yZChub2RlKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4KVxuICAgICAgLnNvcnQoKHgsIHkpID0+ICh4Lm5hbWUgPT09IHkubmFtZSA/IDAgOiB4Lm5hbWUgPiB5Lm5hbWUgPyAxIDogLTEpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVEZWZhdWx0VmF1bHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzZWN1cmVDb250ZW50ID0gJyc7XG4gICAgY29uc3Qgd3JhcHBlZENvbnRlbnQgPSBhd2FpdCB0aGlzLmtleU1ldGFTZXJ2aWNlLndyYXBDb250ZW50KHNlY3VyZUNvbnRlbnQpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZTxhbnk+KHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVWYXVsdE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBsYWluTWV0YTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGRpcmVjdG9yeVR5cGU6IERpcmVjdG9yeVR5cGUuVmF1bHQsXG4gICAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIGNpcGhlck1ldGE6IHdyYXBwZWRDb250ZW50LmNpcGhlck1ldGEsXG4gICAgICAgIHBhcmVudFJvb3REaXJlY3Rvcnk6IHdyYXBwZWRDb250ZW50LnJvb3RLZXksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3BvbnNlLm5ldy52YXVsdC5pZDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVDYXRlZ29yeShuZXdDYXRlZ29yeTogTmV3Q2F0ZWdvcnkpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHNlY3VyZUNvbnRlbnQgPSB7XG4gICAgICBuYW1lOiBuZXdDYXRlZ29yeS5uYW1lLFxuICAgICAgY29kZTogbmV3Q2F0ZWdvcnkuY29kZSxcbiAgICAgIGlzQ3VzdG9tOiBuZXdDYXRlZ29yeS5pc0N1c3RvbSxcbiAgICAgIGFsbG93UmVjb3JkczogbmV3Q2F0ZWdvcnkuYWxsb3dSZWNvcmRzLFxuICAgICAgYWxsb3dDdXN0b21DYXRlZ29yaWVzOiBuZXdDYXRlZ29yeS5hbGxvd0N1c3RvbUNhdGVnb3JpZXMsXG4gICAgfTtcbiAgICBjb25zdCB3cmFwcGVkQ29udGVudCA9IGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2Uud3JhcENvbnRlbnQoXG4gICAgICBzZWN1cmVDb250ZW50LFxuICAgICAgbmV3Q2F0ZWdvcnkuY2F0ZWdvcnlJZHNcbiAgICApO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZTxhbnk+KHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVDYXRlZ29yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBsYWluTWV0YTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGRpcmVjdG9yeVR5cGU6IERpcmVjdG9yeVR5cGUuQ2F0ZWdvcnksXG4gICAgICAgICAgaXNIaWRkZW46IGZhbHNlLFxuICAgICAgICB9KSxcbiAgICAgICAgY2lwaGVyTWV0YTogd3JhcHBlZENvbnRlbnQuY2lwaGVyTWV0YSxcbiAgICAgICAgcGFyZW50RGlyZWN0b3JpZXM6IHdyYXBwZWRDb250ZW50LndyYXBwZWRLZXlzLFxuICAgICAgICBwYXJlbnRSb290RGlyZWN0b3J5OiB3cmFwcGVkQ29udGVudC5yb290S2V5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXNwb25zZS5uZXcuY2F0ZWdvcnkuaWQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlQ2F0ZWdvcnkoXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nLFxuICAgIGtleUlkOiBzdHJpbmcsXG4gICAgdXBkYXRlZENhdGVnb3J5OiBVcGRhdGVkQ2F0ZWdvcnlcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2VjdXJlQ29udGVudCA9IHtcbiAgICAgIG5hbWU6IHVwZGF0ZWRDYXRlZ29yeS5uYW1lLFxuICAgICAgY29kZTogdXBkYXRlZENhdGVnb3J5LmNvZGUsXG4gICAgICBpc0N1c3RvbTogdXBkYXRlZENhdGVnb3J5LmlzQ3VzdG9tLFxuICAgICAgYWxsb3dSZWNvcmRzOiB1cGRhdGVkQ2F0ZWdvcnkuYWxsb3dSZWNvcmRzLFxuICAgICAgYWxsb3dDdXN0b21DYXRlZ29yaWVzOiB1cGRhdGVkQ2F0ZWdvcnkuYWxsb3dDdXN0b21DYXRlZ29yaWVzLFxuICAgIH07XG5cbiAgICBjb25zdCBjaXBoZXJNZXRhID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBrZXlJZCxcbiAgICAgIHNlY3VyZUNvbnRlbnRcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZUNhdGVnb3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZDogY2F0ZWdvcnlJZCxcbiAgICAgICAgICBjaXBoZXJNZXRhLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRDYXRlZ29yeVZpc2liaWxpdHkoXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nLFxuICAgIGhpZGU6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZUNhdGVnb3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZDogY2F0ZWdvcnlJZCxcbiAgICAgICAgICBwbGFpbk1ldGE6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGRpcmVjdG9yeVR5cGU6IERpcmVjdG9yeVR5cGUuQ2F0ZWdvcnksXG4gICAgICAgICAgICBpc0hpZGRlbjogaGlkZSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlQ2F0ZWdvcnkoY2F0ZWdvcnlJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IERlbGV0ZUNhdGVnb3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHsgY2F0ZWdvcnlJZCB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFyY2hpdmVDYXRlZ29yeShcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmcsXG4gICAgcmVjdXJzaXZlOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFyY2hpdmVEaXJlY3RvcnkoY2F0ZWdvcnlJZCwgcmVjdXJzaXZlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1bmFyY2hpdmVDYXRlZ29yeShcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmcsXG4gICAgcmVjdXJzaXZlOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnVuYXJjaGl2ZURpcmVjdG9yeShjYXRlZ29yeUlkLCByZWN1cnNpdmUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFyY2hpdmVEaXJlY3RvcnkoXG4gICAgZGlyZWN0b3J5SWQ6IHN0cmluZyxcbiAgICByZWN1cnNpdmU6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGRpcmVjdG9yeUlkLFxuICAgICAgICAgIHJlY3Vyc2l2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdW5hcmNoaXZlRGlyZWN0b3J5KFxuICAgIGRpcmVjdG9yeUlkOiBzdHJpbmcsXG4gICAgcmVjdXJzaXZlOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBVbmFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGRpcmVjdG9yeUlkLFxuICAgICAgICAgIHJlY3Vyc2l2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbWFwVmF1bHQobm9kZToge1xuICAgIGlkO1xuICAgIGtleUlkO1xuICAgIHBsYWluTWV0YTtcbiAgICBjaXBoZXJNZXRhO1xuICB9KTogUHJvbWlzZTxWYXVsdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IChhd2FpdCB0aGlzLmtleU1ldGFTZXJ2aWNlLmRlY3J5cHRNZXRhKG5vZGUpKSB8fCB7fTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgICBrZXlJZDogbm9kZS5rZXlJZCxcbiAgICAgICAgbmFtZSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlY3J5cHQgVmF1bHQuJywgZSwgbm9kZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbWFwUGFyZW50Q2F0ZWdvcmllcyhjYXRlZ29yeToge1xuICAgIHBhcmVudENhdGVnb3JpZXM6IGFueTtcbiAgfSk6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xuICAgIGlmIChcbiAgICAgICFjYXRlZ29yeS5wYXJlbnRDYXRlZ29yaWVzIHx8XG4gICAgICAhY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcmllcy5lZGdlcyB8fFxuICAgICAgIWNhdGVnb3J5LnBhcmVudENhdGVnb3JpZXMuZWRnZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IG5vZGUgPSBjYXRlZ29yeS5wYXJlbnRDYXRlZ29yaWVzLmVkZ2VzWzBdLm5vZGUucGFyZW50RGlyZWN0b3J5O1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLihhd2FpdCB0aGlzLm1hcFBhcmVudENhdGVnb3JpZXMobm9kZSkpLFxuICAgICAgYXdhaXQgdGhpcy5tYXBDYXRlZ29yeShub2RlKSxcbiAgICBdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG1hcENhdGVnb3J5KG5vZGU6IHtcbiAgICBpZDtcbiAgICBrZXlJZDtcbiAgICBwbGFpbk1ldGE7XG4gICAgY2lwaGVyTWV0YTtcbiAgICBkZXNjZW5kYW50RGlyZWN0b3JpZXM7XG4gICAgYXJjaGl2ZWQ7XG4gIH0pOiBQcm9taXNlPENhdGVnb3J5PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgaXNDdXN0b20sIGFsbG93UmVjb3JkcywgYWxsb3dDdXN0b21DYXRlZ29yaWVzLCBjb2RlIH0gPVxuICAgICAgICAoYXdhaXQgdGhpcy5rZXlNZXRhU2VydmljZS5kZWNyeXB0TWV0YShub2RlKSkgfHwge307XG4gICAgICBjb25zdCB7IGlzSGlkZGVuIH0gPSAobm9kZS5wbGFpbk1ldGEgJiYgSlNPTi5wYXJzZShub2RlLnBsYWluTWV0YSkpIHx8IHt9O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAga2V5SWQ6IG5vZGUua2V5SWQsXG4gICAgICAgIGNvZGUsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGlzSGlkZGVuOiAhIWlzSGlkZGVuLFxuICAgICAgICBpc0N1c3RvbTogISFpc0N1c3RvbSxcbiAgICAgICAgaXNBcmNoaXZlZDogISFub2RlLmFyY2hpdmVkLFxuICAgICAgICBhbGxvd1JlY29yZHM6ICEhYWxsb3dSZWNvcmRzLFxuICAgICAgICBhbGxvd0N1c3RvbUNhdGVnb3JpZXM6ICEhYWxsb3dDdXN0b21DYXRlZ29yaWVzLFxuICAgICAgICBpc0VtcHR5OiBub2RlLmRlc2NlbmRhbnREaXJlY3Rvcmllc1xuICAgICAgICAgID8gbm9kZS5kZXNjZW5kYW50RGlyZWN0b3JpZXMucmVjb3Jkc0NvdW50ID09PSAwXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgICBhbGxSZWNvcmRzQ291bnQ6IG5vZGUuZGVzY2VuZGFudERpcmVjdG9yaWVzPy5yZWNvcmRzQ291bnQsIC8vIE5lZWQgdGhpcyBmb3IgdGVzdGluZy5cbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlY3J5cHQgQ2F0ZWdvcnkuJywgZSwgbm9kZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbWFwUmVjb3JkKG5vZGU6IHtcbiAgICBpZDtcbiAgICBrZXlJZDtcbiAgICBwbGFpbk1ldGE7XG4gICAgY2lwaGVyTWV0YTtcbiAgICBjcmVhdGVkO1xuICAgIG1vZGlmaWVkO1xuICAgIGNvbnRlbnQ7XG4gICAgYXJjaGl2ZWQ7XG4gIH0pOiBQcm9taXNlPFZhdWx0UmVjb3JkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbnRlbnRzID0gbm9kZS5jb250ZW50LmVkZ2VzWzBdLm5vZGUuY2hpbGRGaWxlO1xuICAgICAgY29uc3QgeyBuYW1lLCByZWNvcmRUeXBlIH0gPVxuICAgICAgICAoYXdhaXQgdGhpcy5rZXlNZXRhU2VydmljZS5kZWNyeXB0TWV0YShcbiAgICAgICAgICBjb250ZW50cy5jdXJyZW50VmVyc2lvbi5zdGF0ZVxuICAgICAgICApKSB8fCB7fTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgICAgIGtleUlkOiBub2RlLmtleUlkLFxuICAgICAgICBuYW1lLFxuICAgICAgICByZWNvcmRUeXBlLFxuICAgICAgICBpc0FyY2hpdmVkOiAhIW5vZGUuYXJjaGl2ZWQsXG4gICAgICAgIGNyZWF0ZWRPbjogbm9kZS5jcmVhdGVkLFxuICAgICAgICBsYXN0TW9kaWZpZWQ6XG4gICAgICAgICAgbmV3IERhdGUobm9kZS5tb2RpZmllZCkgPlxuICAgICAgICAgIG5ldyBEYXRlKGNvbnRlbnRzLmN1cnJlbnRWZXJzaW9uLnN0YXRlLm1vZGlmaWVkKVxuICAgICAgICAgICAgPyBub2RlLm1vZGlmaWVkXG4gICAgICAgICAgICA6IGNvbnRlbnRzLmN1cnJlbnRWZXJzaW9uLnN0YXRlLm1vZGlmaWVkLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZGVjcnlwdCBSZWNvcmQuJywgZSk7XG4gICAgICByZXR1cm4gbnVsbCBhcyBWYXVsdFJlY29yZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
361
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jYXRlZ29yeS9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBRTFCLHdCQUF3QixFQUN4Qiw4QkFBOEIsRUFFOUIsY0FBYyxFQUNkLFlBQVksRUFDWiwwQkFBMEIsRUFDMUIsc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBYXhCLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ1UsUUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsUUFBeUI7UUFGekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQ2hDLENBQUM7SUFFUyxtQkFBbUIsQ0FDOUIsUUFBK0IsSUFBSTs7WUFFbkMsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFD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bkI7OztZQXRDUSxlQUFlO1lBRWYsY0FBYztZQURkLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMckFwb2xsb1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItYXBvbGxvLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleU1ldGFTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFzS2V5R3JhcGhFZGdlcyB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgUmVjb3JkQ29udGVudEZpbHRlciB9IGZyb20gJy4uL3JlY29yZC9yZWNvcmQuZ3FsJztcbmltcG9ydCB7IEtjQmFkU3RhdGVFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgSGFzRWRnZXMgfSBmcm9tICcuLi9fY29tbW9uL3R5cGVzJztcbmltcG9ydCB7XG4gIEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgQ2F0ZWdvcnlGaWx0ZXIsXG4gIENyZWF0ZUNhdGVnb3J5TXV0YXRpb24sXG4gIENyZWF0ZVZhdWx0TXV0YXRpb24sXG4gIERlZmF1bHRWYXVsdEZpbHRlcixcbiAgRGVsZXRlQ2F0ZWdvcnlNdXRhdGlvbixcbiAgRGlyZWN0b3J5VHlwZSxcbiAgR2V0Q2F0ZWdvcmllc1F1ZXJ5LFxuICBHZXRDYXRlZ29yeVF1ZXJ5LFxuICBHZXRNeVNoYXJlZENhdGVnb3JpZXNRdWVyeSxcbiAgR2V0TXlTaGFyZWRDYXRlZ29yaWVzUXVlcnlUeXBlLFxuICBHZXRSb290RGlyZWN0b3J5SWRzUXVlcnksXG4gIEdldFRydXN0ZWRQYXJ0eUNhdGVnb3JpZXNRdWVyeSxcbiAgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5VHlwZSxcbiAgR2V0VmF1bHRzUXVlcnksXG4gIFJlY29yZEZpbHRlcixcbiAgVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gIFVwZGF0ZUNhdGVnb3J5TXV0YXRpb24sXG59IGZyb20gJy4vY2F0ZWdvcnkuZ3FsJztcbmltcG9ydCB7XG4gIENhdGVnb3J5LFxuICBOZXdDYXRlZ29yeSxcbiAgVXBkYXRlZENhdGVnb3J5LFxuICBWYXVsdCxcbiAgVmF1bHRDYXRlZ29yeSxcbiAgVmF1bHRSZWNvcmQsXG59IGZyb20gJy4vY2F0ZWdvcnkudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5TWV0YVNlcnZpY2U6IEtleU1ldGFTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldFJvb3REaXJlY3RvcnlJZHMoXG4gICAgaW5wdXQ6IHsgYXJjaGl2ZWQ6IGJvb2xlYW4gfSA9IG51bGxcbiAgKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHsgcm9vdERpcmVjdG9yaWVzIH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PGFueT4oe1xuICAgICAgcXVlcnk6IEdldFJvb3REaXJlY3RvcnlJZHNRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBhcmNoaXZlZDogaW5wdXQgJiYgaW5wdXQuYXJjaGl2ZWQsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiByb290RGlyZWN0b3JpZXMuZWRnZXMubWFwKChlZGdlKSA9PiBlZGdlLm5vZGUuaWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERlZmF1bHRWYXVsdCgpOiBQcm9taXNlPFZhdWx0PiB7XG4gICAgY29uc3QgeyBsaXN0IH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PEhhc0tleUdyYXBoRWRnZXM8YW55Pj4oe1xuICAgICAgcXVlcnk6IEdldFZhdWx0c1F1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBsYWluTWV0YUZpbHRlcjogRGVmYXVsdFZhdWx0RmlsdGVyLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRWYXVsdHMgPSBhd2FpdCB0aGlzLm1hcFZhdWx0cyhsaXN0KTtcbiAgICBpZiAoZGVmYXVsdFZhdWx0cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbignVGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgZGVmYXVsdCB2YXVsdHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZhdWx0c1swXSB8fCBudWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENhdGVnb3JpZXMoaW5wdXQ/OiB7XG4gICAgYXJjaGl2ZWQ/OiBib29sZWFuO1xuICAgIHZhdWx0RGlyZWN0b3J5SWQ/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPENhdGVnb3J5W10+IHtcbiAgICBjb25zdCB2YXVsdERpcmVjdG9yeUlkID1cbiAgICAgIGlucHV0Py52YXVsdERpcmVjdG9yeUlkIHx8IChhd2FpdCB0aGlzLmdldERlZmF1bHRWYXVsdCgpKT8uaWQ7XG5cbiAgICBpZiAoIXZhdWx0RGlyZWN0b3J5SWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIGlzIG5vIGRlZmF1bHQgdmF1bHQuJyk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBHZXRDYXRlZ29yaWVzUXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgdmF1bHREaXJlY3RvcnlJZCxcbiAgICAgICAgY2F0ZWdvcnlGaWx0ZXI6IENhdGVnb3J5RmlsdGVyLFxuICAgICAgICByZWNvcmRGaWx0ZXI6IFJlY29yZEZpbHRlcixcbiAgICAgICAgYXJjaGl2ZWQ6IGlucHV0Py5hcmNoaXZlZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5tYXBDYXRlZ29yaWVzKHJlcy5kaXJlY3RvcnkuY2hpbGREaXJlY3RvcnlMaW5rcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllcyhcbiAgICB0cnVzdGVkUGFydHlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8eyBjYXRlZ29yaWVzOiBDYXRlZ29yeVtdOyByZWNvcmRzPzogVmF1bHRSZWNvcmRbXSB9PiB7XG4gICAgY29uc3QgeyB0cCB9ID1cbiAgICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8R2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5VHlwZT4oe1xuICAgICAgICBxdWVyeTogR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICB0cnVzdGVkUGFydHlJZCxcbiAgICAgICAgICBjYXRlZ29yeUZpbHRlcjogQ2F0ZWdvcnlGaWx0ZXIsXG4gICAgICAgICAgcmVjb3JkRmlsdGVyOiBSZWNvcmRGaWx0ZXIsXG4gICAgICAgICAgY29udGVudEZpbHRlcjogUmVjb3JkQ29udGVudEZpbHRlcixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBjYXRlZ29yaWVzOiBhd2FpdCB0aGlzLm1hcENhdGVnb3JpZXModHAudGhlaXJJdGVtcy5saXN0KSxcbiAgICAgIHJlY29yZHM6IGF3YWl0IHRoaXMubWFwUmVjb3Jkcyh0cC50aGVpckl0ZW1zLnJlY29yZHMpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0TXlTaGFyZWRDYXRlZ29yaWVzKFxuICAgIHRydXN0ZWRQYXJ0eUlkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx7IGNhdGVnb3JpZXM6IENhdGVnb3J5W107IHJlY29yZHM/OiBWYXVsdFJlY29yZFtdIH0+IHtcbiAgICBjb25zdCB7IHRwIH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PEdldE15U2hhcmVkQ2F0ZWdvcmllc1F1ZXJ5VHlwZT4oe1xuICAgICAgcXVlcnk6IEdldE15U2hhcmVkQ2F0ZWdvcmllc1F1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHRydXN0ZWRQYXJ0eUlkLFxuICAgICAgICBjYXRlZ29yeUZpbHRlcjogQ2F0ZWdvcnlGaWx0ZXIsXG4gICAgICAgIHJlY29yZEZpbHRlcjogUmVjb3JkRmlsdGVyLFxuICAgICAgICBjb250ZW50RmlsdGVyOiBSZWNvcmRDb250ZW50RmlsdGVyLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgY2F0ZWdvcmllczogYXdhaXQgdGhpcy5tYXBDYXRlZ29yaWVzKHRwLm15SXRlbXMubGlzdCksXG4gICAgICByZWNvcmRzOiBhd2FpdCB0aGlzLm1hcFJlY29yZHModHAubXlJdGVtcy5yZWNvcmRzKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENhdGVnb3J5KGNhdGVnb3J5SWQ6IHN0cmluZyk6IFByb21pc2U8VmF1bHRDYXRlZ29yeT4ge1xuICAgIGNvbnN0IHsgY2F0ZWdvcnkgfSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8YW55Pih7XG4gICAgICBxdWVyeTogR2V0Q2F0ZWdvcnlRdWVyeSgpLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlkOiBjYXRlZ29yeUlkLFxuICAgICAgICBjYXRlZ29yeUZpbHRlcjogQ2F0ZWdvcnlGaWx0ZXIsXG4gICAgICAgIHJlY29yZEZpbHRlcjogUmVjb3JkRmlsdGVyLFxuICAgICAgICBjb250ZW50RmlsdGVyOiBSZWNvcmRDb250ZW50RmlsdGVyLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBjYXRlZ29yeToge1xuICAgICAgICAuLi4oYXdhaXQgdGhpcy5tYXBDYXRlZ29yeShjYXRlZ29yeSkpLFxuICAgICAgICBwYXJlbnRzOiBhd2FpdCB0aGlzLm1hcFBhcmVudENhdGVnb3JpZXMoY2F0ZWdvcnkpLFxuICAgICAgfSxcbiAgICAgIHN1YkNhdGVnb3JpZXM6IGF3YWl0IHRoaXMubWFwQ2F0ZWdvcmllcyhjYXRlZ29yeS5zdWJDYXRlZ29yaWVzKSxcbiAgICAgIHJlY29yZHM6IGF3YWl0IHRoaXMubWFwUmVjb3JkcyhjYXRlZ29yeS5yZWNvcmRzKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtYXBWYXVsdHMobGlzdDogSGFzRWRnZXM8YW55Pik6IFByb21pc2U8VmF1bHRbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbDxWYXVsdD4oXG4gICAgICBsaXN0LmVkZ2VzLm1hcCgoZWRnZSkgPT4gdGhpcy5tYXBWYXVsdChlZGdlLm5vZGUpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1hcENhdGVnb3JpZXMobGlzdDogSGFzRWRnZXM8YW55Pikge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbDxDYXRlZ29yeT4oXG4gICAgICAgIGxpc3QuZWRnZXNcbiAgICAgICAgICAubWFwKCh4KSA9PiB4Lm5vZGUpXG4gICAgICAgICAgLm1hcCgoeCkgPT4geC5jaGlsZERpcmVjdG9yeSB8fCB4KVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobm9kZToge1xuICAgICAgICAgICAgICBpZDtcbiAgICAgICAgICAgICAga2V5SWQ7XG4gICAgICAgICAgICAgIHBsYWluTWV0YTtcbiAgICAgICAgICAgICAgY2lwaGVyTWV0YTtcbiAgICAgICAgICAgICAgZGVzY2VuZGFudERpcmVjdG9yaWVzO1xuICAgICAgICAgICAgICBhcmNoaXZlZDtcbiAgICAgICAgICAgIH0pID0+IHRoaXMubWFwQ2F0ZWdvcnkobm9kZSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICAgICAgLmZpbHRlcigoeCkgPT4geClcbiAgICAgIC5zb3J0KCh4LCB5KSA9PiAoeC5uYW1lID09PSB5Lm5hbWUgPyAwIDogeC5uYW1lID4geS5uYW1lID8gMSA6IC0xKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1hcFJlY29yZHMobGlzdDogSGFzRWRnZXM8YW55Pikge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbDxWYXVsdFJlY29yZD4oXG4gICAgICAgIGxpc3QuZWRnZXNcbiAgICAgICAgICAubWFwKCh4KSA9PiB4Lm5vZGUpXG4gICAgICAgICAgLm1hcCgoeCkgPT4geC5jaGlsZERpcmVjdG9yeSB8fCB4KVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobm9kZToge1xuICAgICAgICAgICAgICBpZDtcbiAgICAgICAgICAgICAga2V5SWQ7XG4gICAgICAgICAgICAgIHBsYWluTWV0YTtcbiAgICAgICAgICAgICAgY2lwaGVyTWV0YTtcbiAgICAgICAgICAgICAgY3JlYXRlZDtcbiAgICAgICAgICAgICAgbW9kaWZpZWQ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ7XG4gICAgICAgICAgICAgIGFyY2hpdmVkO1xuICAgICAgICAgICAgfSkgPT4gdGhpcy5tYXBSZWNvcmQobm9kZSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICAgICAgLmZpbHRlcigoeCkgPT4geClcbiAgICAgIC5zb3J0KCh4LCB5KSA9PiAoeC5uYW1lID09PSB5Lm5hbWUgPyAwIDogeC5uYW1lID4geS5uYW1lID8gMSA6IC0xKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlRGVmYXVsdFZhdWx0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2VjdXJlQ29udGVudCA9ICcnO1xuICAgIGNvbnN0IHdyYXBwZWRDb250ZW50ID0gYXdhaXQgdGhpcy5rZXlNZXRhU2VydmljZS53cmFwQ29udGVudChzZWN1cmVDb250ZW50KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8YW55Pih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlVmF1bHRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBwbGFpbk1ldGE6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLlZhdWx0LFxuICAgICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgICAgICBjaXBoZXJNZXRhOiB3cmFwcGVkQ29udGVudC5jaXBoZXJNZXRhLFxuICAgICAgICBwYXJlbnRSb290RGlyZWN0b3J5OiB3cmFwcGVkQ29udGVudC5yb290S2V5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXNwb25zZS5uZXcudmF1bHQuaWQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlQ2F0ZWdvcnkobmV3Q2F0ZWdvcnk6IE5ld0NhdGVnb3J5KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzZWN1cmVDb250ZW50ID0ge1xuICAgICAgbmFtZTogbmV3Q2F0ZWdvcnkubmFtZSxcbiAgICAgIGNvZGU6IG5ld0NhdGVnb3J5LmNvZGUsXG4gICAgICBpc0N1c3RvbTogbmV3Q2F0ZWdvcnkuaXNDdXN0b20sXG4gICAgICBhbGxvd1JlY29yZHM6IG5ld0NhdGVnb3J5LmFsbG93UmVjb3JkcyxcbiAgICAgIGFsbG93Q3VzdG9tQ2F0ZWdvcmllczogbmV3Q2F0ZWdvcnkuYWxsb3dDdXN0b21DYXRlZ29yaWVzLFxuICAgIH07XG4gICAgY29uc3Qgd3JhcHBlZENvbnRlbnQgPSBhd2FpdCB0aGlzLmtleU1ldGFTZXJ2aWNlLndyYXBDb250ZW50KFxuICAgICAgc2VjdXJlQ29udGVudCxcbiAgICAgIG5ld0NhdGVnb3J5LmNhdGVnb3J5SWRzXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8YW55Pih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlQ2F0ZWdvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBwbGFpbk1ldGE6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLkNhdGVnb3J5LFxuICAgICAgICAgIGlzSGlkZGVuOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgICAgIGNpcGhlck1ldGE6IHdyYXBwZWRDb250ZW50LmNpcGhlck1ldGEsXG4gICAgICAgIHBhcmVudERpcmVjdG9yaWVzOiB3cmFwcGVkQ29udGVudC53cmFwcGVkS2V5cyxcbiAgICAgICAgcGFyZW50Um9vdERpcmVjdG9yeTogd3JhcHBlZENvbnRlbnQucm9vdEtleSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzcG9uc2UubmV3LmNhdGVnb3J5LmlkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUNhdGVnb3J5KFxuICAgIGNhdGVnb3J5SWQ6IHN0cmluZyxcbiAgICBrZXlJZDogc3RyaW5nLFxuICAgIHVwZGF0ZWRDYXRlZ29yeTogVXBkYXRlZENhdGVnb3J5XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNlY3VyZUNvbnRlbnQgPSB7XG4gICAgICBuYW1lOiB1cGRhdGVkQ2F0ZWdvcnkubmFtZSxcbiAgICAgIGNvZGU6IHVwZGF0ZWRDYXRlZ29yeS5jb2RlLFxuICAgICAgaXNDdXN0b206IHVwZGF0ZWRDYXRlZ29yeS5pc0N1c3RvbSxcbiAgICAgIGFsbG93UmVjb3JkczogdXBkYXRlZENhdGVnb3J5LmFsbG93UmVjb3JkcyxcbiAgICAgIGFsbG93Q3VzdG9tQ2F0ZWdvcmllczogdXBkYXRlZENhdGVnb3J5LmFsbG93Q3VzdG9tQ2F0ZWdvcmllcyxcbiAgICB9O1xuXG4gICAgY29uc3QgY2lwaGVyTWV0YSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAga2V5SWQsXG4gICAgICBzZWN1cmVDb250ZW50XG4gICAgKTtcblxuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVDYXRlZ29yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQ6IGNhdGVnb3J5SWQsXG4gICAgICAgICAgY2lwaGVyTWV0YSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0Q2F0ZWdvcnlWaXNpYmlsaXR5KFxuICAgIGNhdGVnb3J5SWQ6IHN0cmluZyxcbiAgICBoaWRlOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVDYXRlZ29yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQ6IGNhdGVnb3J5SWQsXG4gICAgICAgICAgcGxhaW5NZXRhOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLkNhdGVnb3J5LFxuICAgICAgICAgICAgaXNIaWRkZW46IGhpZGUsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUNhdGVnb3J5KGNhdGVnb3J5SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBEZWxldGVDYXRlZ29yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7IGNhdGVnb3J5SWQgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcmNoaXZlQ2F0ZWdvcnkoXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nLFxuICAgIHJlY3Vyc2l2ZTogYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hcmNoaXZlRGlyZWN0b3J5KGNhdGVnb3J5SWQsIHJlY3Vyc2l2ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdW5hcmNoaXZlQ2F0ZWdvcnkoXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nLFxuICAgIHJlY3Vyc2l2ZTogYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy51bmFyY2hpdmVEaXJlY3RvcnkoY2F0ZWdvcnlJZCwgcmVjdXJzaXZlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcmNoaXZlRGlyZWN0b3J5KFxuICAgIGRpcmVjdG9yeUlkOiBzdHJpbmcsXG4gICAgcmVjdXJzaXZlOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBBcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZCxcbiAgICAgICAgICByZWN1cnNpdmUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVuYXJjaGl2ZURpcmVjdG9yeShcbiAgICBkaXJlY3RvcnlJZDogc3RyaW5nLFxuICAgIHJlY3Vyc2l2ZTogYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZSh7XG4gICAgICBtdXRhdGlvbjogVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZCxcbiAgICAgICAgICByZWN1cnNpdmUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG1hcFZhdWx0KG5vZGU6IHtcbiAgICBpZDtcbiAgICBrZXlJZDtcbiAgICBwbGFpbk1ldGE7XG4gICAgY2lwaGVyTWV0YTtcbiAgfSk6IFByb21pc2U8VmF1bHQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSAoYXdhaXQgdGhpcy5rZXlNZXRhU2VydmljZS5kZWNyeXB0TWV0YShub2RlKSkgfHwge307XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAga2V5SWQ6IG5vZGUua2V5SWQsXG4gICAgICAgIG5hbWUsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkZWNyeXB0IFZhdWx0LicsIGUsIG5vZGUpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIG1hcFBhcmVudENhdGVnb3JpZXMoY2F0ZWdvcnk6IHtcbiAgICBwYXJlbnRDYXRlZ29yaWVzOiBhbnk7XG4gIH0pOiBQcm9taXNlPENhdGVnb3J5W10+IHtcbiAgICBpZiAoXG4gICAgICAhY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcmllcyB8fFxuICAgICAgIWNhdGVnb3J5LnBhcmVudENhdGVnb3JpZXMuZWRnZXMgfHxcbiAgICAgICFjYXRlZ29yeS5wYXJlbnRDYXRlZ29yaWVzLmVkZ2VzLmxlbmd0aFxuICAgICkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBub2RlID0gY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcmllcy5lZGdlc1swXS5ub2RlLnBhcmVudERpcmVjdG9yeTtcblxuICAgIHJldHVybiBbXG4gICAgICAuLi4oYXdhaXQgdGhpcy5tYXBQYXJlbnRDYXRlZ29yaWVzKG5vZGUpKSxcbiAgICAgIGF3YWl0IHRoaXMubWFwQ2F0ZWdvcnkobm9kZSksXG4gICAgXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBtYXBDYXRlZ29yeShub2RlOiB7XG4gICAgaWQ7XG4gICAga2V5SWQ7XG4gICAgcGxhaW5NZXRhO1xuICAgIGNpcGhlck1ldGE7XG4gICAgZGVzY2VuZGFudERpcmVjdG9yaWVzO1xuICAgIGFyY2hpdmVkO1xuICB9KTogUHJvbWlzZTxDYXRlZ29yeT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IG5hbWUsIGlzQ3VzdG9tLCBhbGxvd1JlY29yZHMsIGFsbG93Q3VzdG9tQ2F0ZWdvcmllcywgY29kZSB9ID1cbiAgICAgICAgKGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZGVjcnlwdE1ldGEobm9kZSkpIHx8IHt9O1xuICAgICAgY29uc3QgeyBpc0hpZGRlbiB9ID0gKG5vZGUucGxhaW5NZXRhICYmIEpTT04ucGFyc2Uobm9kZS5wbGFpbk1ldGEpKSB8fCB7fTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgICAgIGtleUlkOiBub2RlLmtleUlkLFxuICAgICAgICBjb2RlLFxuICAgICAgICBuYW1lLFxuICAgICAgICBpc0hpZGRlbjogISFpc0hpZGRlbixcbiAgICAgICAgaXNDdXN0b206ICEhaXNDdXN0b20sXG4gICAgICAgIGlzQXJjaGl2ZWQ6ICEhbm9kZS5hcmNoaXZlZCxcbiAgICAgICAgYWxsb3dSZWNvcmRzOiAhIWFsbG93UmVjb3JkcyxcbiAgICAgICAgYWxsb3dDdXN0b21DYXRlZ29yaWVzOiAhIWFsbG93Q3VzdG9tQ2F0ZWdvcmllcyxcbiAgICAgICAgaXNFbXB0eTogbm9kZS5kZXNjZW5kYW50RGlyZWN0b3JpZXNcbiAgICAgICAgICA/IG5vZGUuZGVzY2VuZGFudERpcmVjdG9yaWVzLnJlY29yZHNDb3VudCA9PT0gMFxuICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgYWxsUmVjb3Jkc0NvdW50OiBub2RlLmRlc2NlbmRhbnREaXJlY3Rvcmllcz8ucmVjb3Jkc0NvdW50LCAvLyBOZWVkIHRoaXMgZm9yIHRlc3RpbmcuXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkZWNyeXB0IENhdGVnb3J5LicsIGUsIG5vZGUpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIG1hcFJlY29yZChub2RlOiB7XG4gICAgaWQ7XG4gICAga2V5SWQ7XG4gICAgcGxhaW5NZXRhO1xuICAgIGNpcGhlck1ldGE7XG4gICAgY3JlYXRlZDtcbiAgICBtb2RpZmllZDtcbiAgICBjb250ZW50O1xuICAgIGFyY2hpdmVkO1xuICB9KTogUHJvbWlzZTxWYXVsdFJlY29yZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb250ZW50cyA9IG5vZGUuY29udGVudC5lZGdlc1swXS5ub2RlLmNoaWxkRmlsZTtcbiAgICAgIGNvbnN0IHsgbmFtZSwgcmVjb3JkVHlwZSB9ID1cbiAgICAgICAgKGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZGVjcnlwdE1ldGEoXG4gICAgICAgICAgY29udGVudHMuY3VycmVudFZlcnNpb24uc3RhdGVcbiAgICAgICAgKSkgfHwge307XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgICBrZXlJZDogbm9kZS5rZXlJZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcmVjb3JkVHlwZSxcbiAgICAgICAgaXNBcmNoaXZlZDogISFub2RlLmFyY2hpdmVkLFxuICAgICAgICBjcmVhdGVkT246IG5vZGUuY3JlYXRlZCxcbiAgICAgICAgbGFzdE1vZGlmaWVkOlxuICAgICAgICAgIG5ldyBEYXRlKG5vZGUubW9kaWZpZWQpID5cbiAgICAgICAgICBuZXcgRGF0ZShjb250ZW50cy5jdXJyZW50VmVyc2lvbi5zdGF0ZS5tb2RpZmllZClcbiAgICAgICAgICAgID8gbm9kZS5tb2RpZmllZFxuICAgICAgICAgICAgOiBjb250ZW50cy5jdXJyZW50VmVyc2lvbi5zdGF0ZS5tb2RpZmllZCxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlY3J5cHQgUmVjb3JkLicsIGUpO1xuICAgICAgcmV0dXJuIG51bGwgYXMgVmF1bHRSZWNvcmQ7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -3,7 +3,7 @@ import { __awaiter } from "tslib";
3
3
  import { Injectable } from '@angular/core';
4
4
  import { JWE, JWS } from 'node-jose';
5
5
  import { TimeService } from '../time/time.service';
6
- import { LrBadArgumentException, LrErrorCode, LrException, } from './../_common/exceptions';
6
+ import { KcBadArgumentException, KcBadSignatureException, } from './../_common/exceptions';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../time/time.service";
9
9
  export var JoseSerialization;
@@ -149,10 +149,7 @@ export class EncryptionService {
149
149
  }
150
150
  }
151
151
  catch (error) {
152
- throw new LrException({
153
- code: LrErrorCode.BadSignature,
154
- message: `Bad signature: ${error}`,
155
- });
152
+ throw new KcBadSignatureException(`Bad signature: ${error}`);
156
153
  }
157
154
  });
158
155
  }
@@ -174,7 +171,7 @@ export class EncryptionService {
174
171
  case 'ArrayBuffer':
175
172
  return payload;
176
173
  default:
177
- throw new LrBadArgumentException(`Unknown payloadType: ${payloadType}`);
174
+ throw new KcBadArgumentException(`Unknown payloadType: ${payloadType}`);
178
175
  }
179
176
  }
180
177
  }
@@ -187,4 +184,4 @@ EncryptionService.decorators = [
187
184
  EncryptionService.ctorParameters = () => [
188
185
  { type: TimeService }
189
186
  ];
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFPLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUcxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsV0FBVyxHQUNaLE1BQU0seUJBQXlCLENBQUM7OztBQUVqQyxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQzNCLGtDQUFhLENBQUE7SUFDYix3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUc1QjtBQWFELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFrQjtJQUNuRCxXQUFXLEVBQUUsTUFBTTtJQUNuQixpQkFBaUIsRUFBRSxJQUFJO0NBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBbUI7SUFDckQsV0FBVyxFQUFFLE1BQU07SUFDbkIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixjQUFjLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Q0FDekMsQ0FBQztBQUVGLE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBWTtJQUN6Qyx5Q0FBeUM7SUFDekMsT0FBTyxHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQztBQUMzQixDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxHQUF3QjtJQUM1Qyx5Q0FBeUM7SUFDekMsWUFBWTtJQUNaLHlGQUF5RjtJQUV6RixJQUFJLEdB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QUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdkQsS0FBSyxhQUFhO2dCQUNoQixPQUFPLE9BQU8sQ0FBQztZQUNqQjtnQkFDRSxNQUFNLElBQUksc0JBQXNCLENBQUMsd0JBQXdCLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDM0U7SUFDSCxDQUFDOzs7O1lBNUxGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBdkRRLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKV0UsIEpXSywgSldTIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IEpTT05PYmplY3QgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgS2V5LCBQYXlsb2FkVHlwZSB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgVGltZVNlcnZpY2UgfSBmcm9tICcuLi90aW1lL3RpbWUuc2VydmljZSc7XG5pbXBvcnQge1xuICBMckJhZEFyZ3VtZW50RXhjZXB0aW9uLFxuICBMckVycm9yQ29kZSxcbiAgTHJFeGNlcHRpb24sXG59IGZyb20gJy4vLi4vX2NvbW1vbi9leGNlcHRpb25zJztcblxuZXhwb3J0IGVudW0gSm9zZVNlcmlhbGl6YXRpb24ge1xuICBKU09OID0gJ0pTT04nLFxuICBDT01QQUNUID0gJ0NPTVBBQ1QnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeU9wdGlvbnMge1xuICBwYXlsb2FkVHlwZT86IFBheWxvYWRUeXBlO1xuICByZXR1cm5Pbmx5UGF5bG9hZD86IGJvb2xlYW47IC8vIElmIHRydWUsIHJldHVybiBvbmx5IHRoZSBkZWNvZGVkIHBheWxvYWQuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVjcnlwdE9wdGlvbnMge1xuICBwYXlsb2FkVHlwZT86IFBheWxvYWRUeXBlO1xuICByZXR1cm5Pbmx5UGF5bG9hZD86IGJvb2xlYW47IC8vIElmIHRydWUsIHJldHVybiBvbmx5IHRoZSBkZWNvZGVkIHBheWxvYWQuXG4gIHNlcmlhbGl6YXRpb25zPzogSm9zZVNlcmlhbGl6YXRpb25bXTtcbn1cblxuZXhwb3J0IGNvbnN0IFZFUklGWV9PUFRJT05TX0RFRkFVTFQ6IFZlcmlmeU9wdGlvbnMgPSB7XG4gIHBheWxvYWRUeXBlOiAnanNvbicsXG4gIHJldHVybk9ubHlQYXlsb2FkOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IERFQ1JZUFRfT1BUSU9OU19ERUZBVUxUOiBEZWNyeXB0T3B0aW9ucyA9IHtcbiAgcGF5bG9hZFR5cGU6ICdqc29uJyxcbiAgcmV0dXJuT25seVBheWxvYWQ6IHRydWUsXG4gIHNlcmlhbGl6YXRpb25zOiBbSm9zZVNlcmlhbGl6YXRpb24uSlNPTl0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNTeW1tZXRyaWNLZXkoa2V5OiBKV0suS2V5KSB7XG4gIC8vIFRPRE86IG1ha2Ugc3VyZSB0aGlzIGNvdmVycyBhbGwgY2FzZXMuXG4gIHJldHVybiBrZXkua3R5ID09PSAnb2N0Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzSndrKGtleTogSldLLktleSB8IEtleSB8IGFueSk6IEpXSy5LZXkgfCBudWxsIHtcbiAgLy8gVE9ETzogbWFrZSBzdXJlIHRoaXMgY292ZXJzIGFsbCBjYXNlcy5cbiAgLy8gRXhjbHVkZWQ6XG4gIC8vICAga2V5LnVzZSAtIG9ubHkgZm9yIHB1YmxpYyBrZXlzLCBSZWY6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3NTE3I3NlY3Rpb24tNC4yXG5cbiAgaWYgKGtleS5pZCAmJiBrZXkuandrKSB7XG4gICAgcmV0dXJuIGtleS5qd2s7XG4gIH0gZWxzZSBpZiAoa2V5LmtleXN0b3JlICYmIGtleS5sZW5ndGggJiYga2V5Lmt0eSAmJiBrZXkua2lkICYmIGtleS5hbGcpIHtcbiAgICByZXR1cm4ga2V5O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFbmNyeXB0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGltZVNlcnZpY2U6IFRpbWVTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGRlY3J5cHQoXG4gICAga2V5OiBKV0suS2V5IHwgS2V5LCAvLyBzdHJpbmcgaXMgYXNzdW1lZCB0byBiZSBrZXkuaWQsIHdpbGwgdW53cmFwIGtleS5cbiAgICBqd2U6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+IHwgc3RyaW5nLCAvLyBzdHJpbmcgd2lsbCBiZSBKU09OLnBhcnNlZFxuICAgIG9wdGlvbnM/OiBEZWNyeXB0T3B0aW9uc1xuICApOiBQcm9taXNlPEpXRS5EZWNyeXB0UmVzdWx0IHwgYW55PiB7XG4gICAgY29uc3Qgb3B0ID0ge1xuICAgICAgYWxnb3JpdGhtczogWydkaXInLCAnQSpHQ00nLCAnUlNBLU9BRVAtKiddLFxuICAgIH07XG5cbiAgICBvcHRpb25zID0ge1xuICAgICAgLi4uREVDUllQVF9PUFRJT05TX0RFRkFVTFQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICBpZiAoKGtleSBhcyBLZXkpLmp3aykge1xuICAgICAga2V5ID0gKGtleSBhcyBLZXkpLmp3aztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGp3ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChvcHRpb25zLnNlcmlhbGl6YXRpb25zLmluY2x1ZGVzKEpvc2VTZXJpYWxpemF0aW9uLkpTT04pKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgandlID0gSlNPTi5wYXJzZShqd2UpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlmIChvcHRpb25zLnNlcmlhbGl6YXRpb25zLmluY2x1ZGVzKEpvc2VTZXJpYWxpemF0aW9uLkNPTVBBQ1QpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgJ05vdCBhIEpTT04tZm9ybWF0dGVkIEpXRSwgaXQgbWF5YmUgY29tcGFjdCBzZXJpYWxpc2F0aW9uIGZvcm1hdC4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB7cmVzdWx0fSBpcyBhIE9iamVjdCB3aXRoOlxuICAgIC8vICogIGhlYWRlcjogdGhlIGNvbWJpbmVkICdwcm90ZWN0ZWQnIGFuZCAndW5wcm90ZWN0ZWQnIGhlYWRlciBtZW1iZXJzXG4gICAgLy8gKiAgcHJvdGVjdGVkOiBhbiBhcnJheSBvZiB0aGUgbWVtYmVyIG5hbWVzIGZyb20gdGhlIFwicHJvdGVjdGVkXCIgbWVtYmVyXG4gICAgLy8gKiAga2V5OiBLZXkgdXNlZCB0byBkZWNyeXB0XG4gICAgLy8gKiAgcGF5bG9hZDogQnVmZmVyIG9mIHRoZSBkZWNyeXB0ZWQgY29udGVudFxuICAgIC8vICogIHBsYWludGV4dDogQnVmZmVyIG9mIHRoZSBkZWNyeXB0ZWQgY29udGVudCAoYWx0ZXJuYXRlKSwganVzdCBhIHJlZmVyZW5jZSB0byBwYXlsb2FkXG4gICAgY29uc3QgcmVzID0gYXdhaXQgSldFLmNyZWF0ZURlY3J5cHQoa2V5IGFzIEpXSy5LZXksIG9wdCkuZGVjcnlwdChcbiAgICAgIGp3ZSBhcyBhbnlcbiAgICApO1xuXG4gICAgcmVzLnBheWxvYWQgPSB0aGlzLmRlY29kZVBheWxvYWQob3B0aW9ucy5wYXlsb2FkVHlwZSwgcmVzLnBheWxvYWQpO1xuXG4gICAgaWYgKG9wdGlvbnMucmV0dXJuT25seVBheWxvYWQpIHtcbiAgICAgIHJldHVybiByZXMucGF5bG9hZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPIHJlbmFtZSB0aGlzIHRvIGVuY3J5cHQoKSBhbmQgdXNlIGFzIHRoZSBtb3N0IGNvbW1vbiB1c2VjYXNlXG4gIGFzeW5jIGVuY3J5cHRUb1N0cmluZyhcbiAgICBrZXk6IEpXSy5LZXksXG4gICAgY29udGVudDogQXJyYXlCdWZmZXIgfCBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCB0aGlzLmVuY3J5cHQoa2V5LCBjb250ZW50KSk7XG4gIH1cblxuICAvLyBUT0RPIHJlbmFtZSB0aGlzIHRvIGVuY3J5cHRUb0pTT04oKSBhbmQgdXNlIHRoaXMgd2hlbiByZXF1aXJlZC5cbiAgYXN5bmMgZW5jcnlwdChcbiAgICBrZXk6IEpXSy5LZXksXG4gICAgY29udGVudDogQXJyYXlCdWZmZXIgfCBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGlmIChjb250ZW50ID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRW5jcnlwdGluZyBudWxsL3VuZGVmaW5lZCBjb250ZW50LicpO1xuICAgIH1cblxuICAgIGlmICghKGNvbnRlbnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHtcbiAgICAgIGNvbnRlbnQgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoY29udGVudCkpO1xuICAgIH1cblxuICAgIHJldHVybiBKV0UuY3JlYXRlRW5jcnlwdChcbiAgICAgIHtcbiAgICAgICAgY29udGVudEFsZzogJ0EyNTZHQ00nLFxuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICB0aW1lc3RhbXA6IGF3YWl0IHRoaXMudGltZVNlcnZpY2Uuc2VydmVyTm93KCksXG4gICAgICAgIH0sXG4gICAgICB9IGFzIGFueSxcbiAgICAgIGtleVxuICAgIClcbiAgICAgIC51cGRhdGUoY29udGVudClcbiAgICAgIC5maW5hbCgpIGFzIGFueTtcbiAgfVxuXG4gIC8vIDxBWj4gVW5saWtlIHNpZ25Db250ZW50LCB0aGUgc2VyaWFsaXNlZCBcImNvbnRlbnRcIiB2YXJpYWJsZSBpcyBjb250YWluZWQgaW5zaWRlXG4gIC8vIHRoZSByZXN1bHQuIFNvIG9yZGVyaW5nIG9mIGZpZWxkcyB3aXRoaW4gXCJjb250ZW50XCIgaXMgbm90IGFuIGlzc3VlLlxuICBhc3luYyBzaWduKFxuICAgIGtleTogSldLLktleSxcbiAgICBjb250ZW50OiBCdWZmZXIgfCBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNpZ25lciA9IEpXUy5jcmVhdGVTaWduKFxuICAgICAge1xuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICB0aW1lc3RhbXA6IGF3YWl0IHRoaXMudGltZVNlcnZpY2Uuc2VydmVyTm93KCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAga2V5XG4gICAgKTtcblxuICAgIGlmIChjb250ZW50IGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICBzaWduZXIudXBkYXRlKGNvbnRlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaWduZXIudXBkYXRlKEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpLCAndXRmOCcpO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduZXIuZmluYWwoKTtcbiAgfVxuXG4gIGFzeW5jIHNpZ25Ub1N0cmluZyhcbiAgICBrZXk6IEpXSy5LZXksXG4gICAgY29udGVudDogQnVmZmVyIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgdGhpcy5zaWduKGtleSwgY29udGVudCkpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5KFxuICAgIGtleTogSldLLktleSxcbiAgICBqd3M6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+LFxuICAgIG9wdGlvbnM/OiBWZXJpZnlPcHRpb25zXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgb3B0ID0ge1xuICAgICAgYWxnb3JpdGhtczogWydSUyonXSxcbiAgICB9O1xuXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIC4uLlZFUklGWV9PUFRJT05TX0RFRkFVTFQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgSldTLmNyZWF0ZVZlcmlmeShrZXksIG9wdCkudmVyaWZ5KGp3cyBhcyBhbnkpO1xuXG4gICAgICByZXMucGF5bG9hZCA9IHRoaXMuZGVjb2RlUGF5bG9hZChvcHRpb25zLnBheWxvYWRUeXBlLCByZXMucGF5bG9hZCk7XG5cbiAgICAgIGlmIChvcHRpb25zLnJldHVybk9ubHlQYXlsb2FkKSB7XG4gICAgICAgIHJldHVybiByZXMucGF5bG9hZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBMckV4Y2VwdGlvbih7XG4gICAgICAgIGNvZGU6IExyRXJyb3JDb2RlLkJhZFNpZ25hdHVyZSxcbiAgICAgICAgbWVzc2FnZTogYEJhZCBzaWduYXR1cmU6ICR7ZXJyb3J9YCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGVuY3J5cHRUaGVuU2lnbihcbiAgICB7XG4gICAgICBrZXksXG4gICAgICBzaWdQcmssXG4gICAgfToge1xuICAgICAga2V5OiBKV0suS2V5O1xuICAgICAgc2lnUHJrOiBKV0suS2V5O1xuICAgIH0sXG4gICAgY29udGVudDogQXJyYXlCdWZmZXIgfCBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PlxuICApOiBQcm9taXNlPHsgY2lwaGVyOiBzdHJpbmc7IHNpZzogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjaXBoZXIgPSBKU09OLnN0cmluZ2lmeShhd2FpdCB0aGlzLmVuY3J5cHQoa2V5LCBjb250ZW50KSk7XG4gICAgY29uc3Qgc2lnID0gYXdhaXQgdGhpcy5zaWduKHNpZ1ByaywgY2lwaGVyKTtcbiAgICBkZWxldGUgc2lnLnBheWxvYWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2lwaGVyLFxuICAgICAgc2lnOiBKU09OLnN0cmluZ2lmeShzaWcpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGRlY29kZVBheWxvYWQoXG4gICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLFxuICAgIHBheWxvYWQ6IEFycmF5QnVmZmVyXG4gICk6IEFycmF5QnVmZmVyIHwgYW55IHtcbiAgICBzd2l0Y2ggKHBheWxvYWRUeXBlKSB7XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UobmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHBheWxvYWQpKTtcbiAgICAgIGNhc2UgJ0FycmF5QnVmZmVyJzpcbiAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbihgVW5rbm93biBwYXlsb2FkVHlwZTogJHtwYXlsb2FkVHlwZX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFPLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUcxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix1QkFBdUIsR0FDeEIsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBRWpDLE1BQU0sQ0FBTixJQUFZLGlCQUdYO0FBSEQsV0FBWSxpQkFBaUI7SUFDM0Isa0NBQWEsQ0FBQTtJQUNiLHdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBYUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWtCO0lBQ25ELFdBQVcsRUFBRSxNQUFNO0lBQ25CLGlCQUFpQixFQUFFLElBQUk7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFtQjtJQUNyRCxXQUFXLEVBQUUsTUFBTTtJQUNuQixpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLGNBQWMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztDQUN6QyxDQUFDO0FBRUYsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFZO0lBQ3pDLHlDQUF5QztJQUN6QyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDO0FBQzNCLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQXdCO0lBQzVDLHlDQUF5QztJQUN6QyxZQUFZO0lBQ1oseUZBQXlGO0lBRXpGLElBQUksR0FBRyxDQUFD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QztZQUNqQjtnQkFDRSxNQUFNLElBQUksc0JBQXNCLENBQUMsd0JBQXdCLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDM0U7SUFDSCxDQUFDOzs7O1lBekxGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBdERRLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKV0UsIEpXSywgSldTIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IEpTT05PYmplY3QgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgS2V5LCBQYXlsb2FkVHlwZSB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgVGltZVNlcnZpY2UgfSBmcm9tICcuLi90aW1lL3RpbWUuc2VydmljZSc7XG5pbXBvcnQge1xuICBLY0JhZEFyZ3VtZW50RXhjZXB0aW9uLFxuICBLY0JhZFNpZ25hdHVyZUV4Y2VwdGlvbixcbn0gZnJvbSAnLi8uLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuXG5leHBvcnQgZW51bSBKb3NlU2VyaWFsaXphdGlvbiB7XG4gIEpTT04gPSAnSlNPTicsXG4gIENPTVBBQ1QgPSAnQ09NUEFDVCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5T3B0aW9ucyB7XG4gIHBheWxvYWRUeXBlPzogUGF5bG9hZFR5cGU7XG4gIHJldHVybk9ubHlQYXlsb2FkPzogYm9vbGVhbjsgLy8gSWYgdHJ1ZSwgcmV0dXJuIG9ubHkgdGhlIGRlY29kZWQgcGF5bG9hZC5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNyeXB0T3B0aW9ucyB7XG4gIHBheWxvYWRUeXBlPzogUGF5bG9hZFR5cGU7XG4gIHJldHVybk9ubHlQYXlsb2FkPzogYm9vbGVhbjsgLy8gSWYgdHJ1ZSwgcmV0dXJuIG9ubHkgdGhlIGRlY29kZWQgcGF5bG9hZC5cbiAgc2VyaWFsaXphdGlvbnM/OiBKb3NlU2VyaWFsaXphdGlvbltdO1xufVxuXG5leHBvcnQgY29uc3QgVkVSSUZZX09QVElPTlNfREVGQVVMVDogVmVyaWZ5T3B0aW9ucyA9IHtcbiAgcGF5bG9hZFR5cGU6ICdqc29uJyxcbiAgcmV0dXJuT25seVBheWxvYWQ6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgREVDUllQVF9PUFRJT05TX0RFRkFVTFQ6IERlY3J5cHRPcHRpb25zID0ge1xuICBwYXlsb2FkVHlwZTogJ2pzb24nLFxuICByZXR1cm5Pbmx5UGF5bG9hZDogdHJ1ZSxcbiAgc2VyaWFsaXphdGlvbnM6IFtKb3NlU2VyaWFsaXphdGlvbi5KU09OXSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N5bW1ldHJpY0tleShrZXk6IEpXSy5LZXkpIHtcbiAgLy8gVE9ETzogbWFrZSBzdXJlIHRoaXMgY292ZXJzIGFsbCBjYXNlcy5cbiAgcmV0dXJuIGtleS5rdHkgPT09ICdvY3QnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNKd2soa2V5OiBKV0suS2V5IHwgS2V5IHwgYW55KTogSldLLktleSB8IG51bGwge1xuICAvLyBUT0RPOiBtYWtlIHN1cmUgdGhpcyBjb3ZlcnMgYWxsIGNhc2VzLlxuICAvLyBFeGNsdWRlZDpcbiAgLy8gICBrZXkudXNlIC0gb25seSBmb3IgcHVibGljIGtleXMsIFJlZjogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzc1MTcjc2VjdGlvbi00LjJcblxuICBpZiAoa2V5LmlkICYmIGtleS5qd2spIHtcbiAgICByZXR1cm4ga2V5Lmp3aztcbiAgfSBlbHNlIGlmIChrZXkua2V5c3RvcmUgJiYga2V5Lmxlbmd0aCAmJiBrZXkua3R5ICYmIGtleS5raWQgJiYga2V5LmFsZykge1xuICAgIHJldHVybiBrZXk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVuY3J5cHRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0aW1lU2VydmljZTogVGltZVNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgZGVjcnlwdChcbiAgICBrZXk6IEpXSy5LZXkgfCBLZXksIC8vIHN0cmluZyBpcyBhc3N1bWVkIHRvIGJlIGtleS5pZCwgd2lsbCB1bndyYXAga2V5LlxuICAgIGp3ZTogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD4gfCBzdHJpbmcsIC8vIHN0cmluZyB3aWxsIGJlIEpTT04ucGFyc2VkXG4gICAgb3B0aW9ucz86IERlY3J5cHRPcHRpb25zXG4gICk6IFByb21pc2U8SldFLkRlY3J5cHRSZXN1bHQgfCBhbnk+IHtcbiAgICBjb25zdCBvcHQgPSB7XG4gICAgICBhbGdvcml0aG1zOiBbJ2RpcicsICdBKkdDTScsICdSU0EtT0FFUC0qJ10sXG4gICAgfTtcblxuICAgIG9wdGlvbnMgPSB7XG4gICAgICAuLi5ERUNSWVBUX09QVElPTlNfREVGQVVMVCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIGlmICgoa2V5IGFzIEtleSkuandrKSB7XG4gICAgICBrZXkgPSAoa2V5IGFzIEtleSkuandrO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgandlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKG9wdGlvbnMuc2VyaWFsaXphdGlvbnMuaW5jbHVkZXMoSm9zZVNlcmlhbGl6YXRpb24uSlNPTikpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBqd2UgPSBKU09OLnBhcnNlKGp3ZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMuc2VyaWFsaXphdGlvbnMuaW5jbHVkZXMoSm9zZVNlcmlhbGl6YXRpb24uQ09NUEFDVCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAnTm90IGEgSlNPTi1mb3JtYXR0ZWQgSldFLCBpdCBtYXliZSBjb21wYWN0IHNlcmlhbGlzYXRpb24gZm9ybWF0LidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHtyZXN1bHR9IGlzIGEgT2JqZWN0IHdpdGg6XG4gICAgLy8gKiAgaGVhZGVyOiB0aGUgY29tYmluZWQgJ3Byb3RlY3RlZCcgYW5kICd1bnByb3RlY3RlZCcgaGVhZGVyIG1lbWJlcnNcbiAgICAvLyAqICBwcm90ZWN0ZWQ6IGFuIGFycmF5IG9mIHRoZSBtZW1iZXIgbmFtZXMgZnJvbSB0aGUgXCJwcm90ZWN0ZWRcIiBtZW1iZXJcbiAgICAvLyAqICBrZXk6IEtleSB1c2VkIHRvIGRlY3J5cHRcbiAgICAvLyAqICBwYXlsb2FkOiBCdWZmZXIgb2YgdGhlIGRlY3J5cHRlZCBjb250ZW50XG4gICAgLy8gKiAgcGxhaW50ZXh0OiBCdWZmZXIgb2YgdGhlIGRlY3J5cHRlZCBjb250ZW50IChhbHRlcm5hdGUpLCBqdXN0IGEgcmVmZXJlbmNlIHRvIHBheWxvYWRcbiAgICBjb25zdCByZXMgPSBhd2FpdCBKV0UuY3JlYXRlRGVjcnlwdChrZXkgYXMgSldLLktleSwgb3B0KS5kZWNyeXB0KFxuICAgICAgandlIGFzIGFueVxuICAgICk7XG5cbiAgICByZXMucGF5bG9hZCA9IHRoaXMuZGVjb2RlUGF5bG9hZChvcHRpb25zLnBheWxvYWRUeXBlLCByZXMucGF5bG9hZCk7XG5cbiAgICBpZiAob3B0aW9ucy5yZXR1cm5Pbmx5UGF5bG9hZCkge1xuICAgICAgcmV0dXJuIHJlcy5wYXlsb2FkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE8gcmVuYW1lIHRoaXMgdG8gZW5jcnlwdCgpIGFuZCB1c2UgYXMgdGhlIG1vc3QgY29tbW9uIHVzZWNhc2VcbiAgYXN5bmMgZW5jcnlwdFRvU3RyaW5nKFxuICAgIGtleTogSldLLktleSxcbiAgICBjb250ZW50OiBBcnJheUJ1ZmZlciB8IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGF3YWl0IHRoaXMuZW5jcnlwdChrZXksIGNvbnRlbnQpKTtcbiAgfVxuXG4gIC8vIFRPRE8gcmVuYW1lIHRoaXMgdG8gZW5jcnlwdFRvSlNPTigpIGFuZCB1c2UgdGhpcyB3aGVuIHJlcXVpcmVkLlxuICBhc3luYyBlbmNyeXB0KFxuICAgIGtleTogSldLLktleSxcbiAgICBjb250ZW50OiBBcnJheUJ1ZmZlciB8IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKGNvbnRlbnQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbmNyeXB0aW5nIG51bGwvdW5kZWZpbmVkIGNvbnRlbnQuJyk7XG4gICAgfVxuXG4gICAgaWYgKCEoY29udGVudCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSkge1xuICAgICAgY29udGVudCA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShKU09OLnN0cmluZ2lmeShjb250ZW50KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEpXRS5jcmVhdGVFbmNyeXB0KFxuICAgICAge1xuICAgICAgICBjb250ZW50QWxnOiAnQTI1NkdDTScsXG4gICAgICAgIGZpZWxkczoge1xuICAgICAgICAgIHRpbWVzdGFtcDogYXdhaXQgdGhpcy50aW1lU2VydmljZS5zZXJ2ZXJOb3coKSxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgYW55LFxuICAgICAga2V5XG4gICAgKVxuICAgICAgLnVwZGF0ZShjb250ZW50KVxuICAgICAgLmZpbmFsKCkgYXMgYW55O1xuICB9XG5cbiAgLy8gPEFaPiBVbmxpa2Ugc2lnbkNvbnRlbnQsIHRoZSBzZXJpYWxpc2VkIFwiY29udGVudFwiIHZhcmlhYmxlIGlzIGNvbnRhaW5lZCBpbnNpZGVcbiAgLy8gdGhlIHJlc3VsdC4gU28gb3JkZXJpbmcgb2YgZmllbGRzIHdpdGhpbiBcImNvbnRlbnRcIiBpcyBub3QgYW4gaXNzdWUuXG4gIGFzeW5jIHNpZ24oXG4gICAga2V5OiBKV0suS2V5LFxuICAgIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2lnbmVyID0gSldTLmNyZWF0ZVNpZ24oXG4gICAgICB7XG4gICAgICAgIGZpZWxkczoge1xuICAgICAgICAgIHRpbWVzdGFtcDogYXdhaXQgdGhpcy50aW1lU2VydmljZS5zZXJ2ZXJOb3coKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBrZXlcbiAgICApO1xuXG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgIHNpZ25lci51cGRhdGUoY29udGVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNpZ25lci51cGRhdGUoSlNPTi5zdHJpbmdpZnkoY29udGVudCksICd1dGY4Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25lci5maW5hbCgpO1xuICB9XG5cbiAgYXN5bmMgc2lnblRvU3RyaW5nKFxuICAgIGtleTogSldLLktleSxcbiAgICBjb250ZW50OiBCdWZmZXIgfCBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCB0aGlzLnNpZ24oa2V5LCBjb250ZW50KSk7XG4gIH1cblxuICBhc3luYyB2ZXJpZnkoXG4gICAga2V5OiBKV0suS2V5LFxuICAgIGp3czogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD4sXG4gICAgb3B0aW9ucz86IFZlcmlmeU9wdGlvbnNcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBvcHQgPSB7XG4gICAgICBhbGdvcml0aG1zOiBbJ1JTKiddLFxuICAgIH07XG5cbiAgICBvcHRpb25zID0ge1xuICAgICAgLi4uVkVSSUZZX09QVElPTlNfREVGQVVMVCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBKV1MuY3JlYXRlVmVyaWZ5KGtleSwgb3B0KS52ZXJpZnkoandzIGFzIGFueSk7XG5cbiAgICAgIHJlcy5wYXlsb2FkID0gdGhpcy5kZWNvZGVQYXlsb2FkKG9wdGlvbnMucGF5bG9hZFR5cGUsIHJlcy5wYXlsb2FkKTtcblxuICAgICAgaWYgKG9wdGlvbnMucmV0dXJuT25seVBheWxvYWQpIHtcbiAgICAgICAgcmV0dXJuIHJlcy5wYXlsb2FkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU2lnbmF0dXJlRXhjZXB0aW9uKGBCYWQgc2lnbmF0dXJlOiAke2Vycm9yfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGVuY3J5cHRUaGVuU2lnbihcbiAgICB7XG4gICAgICBrZXksXG4gICAgICBzaWdQcmssXG4gICAgfToge1xuICAgICAga2V5OiBKV0suS2V5O1xuICAgICAgc2lnUHJrOiBKV0suS2V5O1xuICAgIH0sXG4gICAgY29udGVudDogQXJyYXlCdWZmZXIgfCBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PlxuICApOiBQcm9taXNlPHsgY2lwaGVyOiBzdHJpbmc7IHNpZzogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjaXBoZXIgPSBKU09OLnN0cmluZ2lmeShhd2FpdCB0aGlzLmVuY3J5cHQoa2V5LCBjb250ZW50KSk7XG4gICAgY29uc3Qgc2lnID0gYXdhaXQgdGhpcy5zaWduKHNpZ1ByaywgY2lwaGVyKTtcbiAgICBkZWxldGUgc2lnLnBheWxvYWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2lwaGVyLFxuICAgICAgc2lnOiBKU09OLnN0cmluZ2lmeShzaWcpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGRlY29kZVBheWxvYWQoXG4gICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLFxuICAgIHBheWxvYWQ6IEFycmF5QnVmZmVyXG4gICk6IEFycmF5QnVmZmVyIHwgYW55IHtcbiAgICBzd2l0Y2ggKHBheWxvYWRUeXBlKSB7XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UobmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHBheWxvYWQpKTtcbiAgICAgIGNhc2UgJ0FycmF5QnVmZmVyJzpcbiAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgS2NCYWRBcmd1bWVudEV4Y2VwdGlvbihgVW5rbm93biBwYXlsb2FkVHlwZTogJHtwYXlsb2FkVHlwZX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -2,8 +2,7 @@ import { __awaiter } from "tslib";
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import { Inject, Injectable } from '@angular/core';
4
4
  import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
5
- import { KC_CONFIG } from '../life-ready.config';
6
- import { httpOptions } from '../_common/utils';
5
+ import { httpOptions, KC_CONFIG } from '../life-ready.config';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "../life-ready.config";
9
8
  import * as i2 from "@angular/common/http";
@@ -63,4 +62,4 @@ FileUploadService.ctorParameters = () => [
63
62
  { type: HttpClient },
64
63
  { type: AuthClass }
65
64
  ];
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNELE9BQU8sRUFBWSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBTS9DLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDNkIsTUFBZ0IsRUFDbkMsSUFBZ0IsRUFDaEIsSUFBZTtRQUZJLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFXO0lBQ3RCLENBQUM7SUFFRSxxQkFBcUIsQ0FBQyxlQUF1Qjs7WUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztLQUFBO0lBRUssc0JBQXNCLENBQUMsZUFBdUI7O1lBQ2xELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxlQUFlLEVBQUUsQ0FBQztZQUV6RixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUM1QixHQUFHLENBQUMsR0FBRyxrQ0FDSCxDQUFDLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQzlDLFlBQVksRUFBRSxNQUFNLElBQ3BCO2lCQUNELFNBQVMsRUFBRSxDQUFDO1lBRWYsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRUssUUFBUSxDQUFDLElBQVU7O1lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7b0JBQ25CLDZEQUE2RDtvQkFDN0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFxQixDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQztnQkFDRixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFSyxtQkFBbUIsQ0FDdkIsT0FBbUM7O1lBRW5DLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUVuRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUN6QyxJQUFJLENBQ0gsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sZUFBZSxFQUNwQyxRQUFRLEVBQ1IsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQzFDO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1lBRWYsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDO0tBQUE7Ozs7WUF2REYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBR0ksTUFBTSxTQUFDLFNBQVM7WUFiWixVQUFVO1lBRVYsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQgeyBKU09OT2JqZWN0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEtjQ29uZmlnLCBLQ19DT05GSUcgfSBmcm9tICcuLi9saWZlLXJlYWR5LmNvbmZpZyc7XG5pbXBvcnQgeyBodHRwT3B0aW9ucyB9IGZyb20gJy4uL19jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgVXBsb2FkRW5jcnlwdGVkRmlsZU9wdGlvbnMgfSBmcm9tICcuL2ZpbGUtdXBsb2FkLnR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChLQ19DT05GSUcpIHByaXZhdGUgY29uZmlnOiBLY0NvbmZpZyxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoQ2xhc3NcbiAgKSB7fVxuXG4gIGFzeW5jIGRvd25sb2FkRW5jcnlwdGVkRmlsZShmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyk6IFByb21pc2U8SlNPTk9iamVjdD4ge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IHRoaXMuZG93bmxvYWRFbmNyeXB0ZWRGaWxlMihmaWxlU3RhdGVOb2RlSWQpKTtcbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkRW5jcnlwdGVkRmlsZTIoZmlsZVN0YXRlTm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuY29uZmlnLmFwaVVybH1maWxlcy9kb3dubG9hZC8/ZmlsZV9zdGF0ZV9ub2RlX2lkPSR7ZmlsZVN0YXRlTm9kZUlkfWA7XG5cbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybCwge1xuICAgICAgICAuLi4oYXdhaXQgaHR0cE9wdGlvbnModGhpcy5hdXRoLCB0aGlzLmNvbmZpZykpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGFzeW5jIGxvYWRGaWxlKGZpbGU6IEZpbGUpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEFycmF5QnVmZmVyPigocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIE9LIHRvIHR5cGUgY2FzdCBoZXJlIHNpbmNlIHdlIGFyZSB1c2luZyByZWFkQXNBcnJheUJ1ZmZlci5cbiAgICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIEFycmF5QnVmZmVyKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGxvYWRFbmNyeXB0ZWRGaWxlKFxuICAgIG9wdGlvbnM6IFVwbG9hZEVuY3J5cHRlZEZpbGVPcHRpb25zXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBlbmNyeXB0ZWRDb250ZW50LCBmaWxlTmFtZSB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdjb250ZW50JywgbmV3IEJsb2IoW2VuY3J5cHRlZENvbnRlbnRdKSwgZmlsZU5hbWUpO1xuXG4gICAgY29uc3QgeyBjb250ZW50X3Jlc291cmNlIH0gPSBhd2FpdCB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PHsgY29udGVudF9yZXNvdXJjZSB9PihcbiAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpVXJsfWZpbGVzL3VwbG9hZC9gLFxuICAgICAgICBmb3JtRGF0YSxcbiAgICAgICAgYXdhaXQgaHR0cE9wdGlvbnModGhpcy5hdXRoLCB0aGlzLmNvbmZpZylcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcblxuICAgIHJldHVybiBjb250ZW50X3Jlc291cmNlO1xuICB9XG59XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNELE9BQU8sRUFBRSxXQUFXLEVBQVksU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBTXhFLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDNkIsTUFBZ0IsRUFDbkMsSUFBZ0IsRUFDaEIsSUFBZTtRQUZJLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFXO0lBQ3RCLENBQUM7SUFFRSxxQkFBcUIsQ0FBQyxlQUF1Qjs7WUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztLQUFBO0lBRUssc0JBQXNCLENBQUMsZUFBdUI7O1lBQ2xELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxlQUFlLEVBQUUsQ0FBQztZQUV6RixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUM1QixHQUFHLENBQUMsR0FBRyxrQ0FDSCxDQUFDLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQzlDLFlBQVksRUFBRSxNQUFNLElBQ3BCO2lCQUNELFNBQVMsRUFBRSxDQUFDO1lBRWYsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRUssUUFBUSxDQUFDLElBQVU7O1lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7b0JBQ25CLDZEQUE2RDtvQkFDN0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFxQixDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQztnQkFDRixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFSyxtQkFBbUIsQ0FDdkIsT0FBbUM7O1lBRW5DLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUVuRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUN6QyxJQUFJLENBQ0gsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sZUFBZSxFQUNwQyxRQUFRLEVBQ1IsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQzFDO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1lBRWYsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDO0tBQUE7Ozs7WUF2REYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBR0ksTUFBTSxTQUFDLFNBQVM7WUFaWixVQUFVO1lBRVYsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQgeyBKU09OT2JqZWN0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IGh0dHBPcHRpb25zLCBLY0NvbmZpZywgS0NfQ09ORklHIH0gZnJvbSAnLi4vbGlmZS1yZWFkeS5jb25maWcnO1xuaW1wb3J0IHsgVXBsb2FkRW5jcnlwdGVkRmlsZU9wdGlvbnMgfSBmcm9tICcuL2ZpbGUtdXBsb2FkLnR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChLQ19DT05GSUcpIHByaXZhdGUgY29uZmlnOiBLY0NvbmZpZyxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoQ2xhc3NcbiAgKSB7fVxuXG4gIGFzeW5jIGRvd25sb2FkRW5jcnlwdGVkRmlsZShmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyk6IFByb21pc2U8SlNPTk9iamVjdD4ge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IHRoaXMuZG93bmxvYWRFbmNyeXB0ZWRGaWxlMihmaWxlU3RhdGVOb2RlSWQpKTtcbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkRW5jcnlwdGVkRmlsZTIoZmlsZVN0YXRlTm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuY29uZmlnLmFwaVVybH1maWxlcy9kb3dubG9hZC8/ZmlsZV9zdGF0ZV9ub2RlX2lkPSR7ZmlsZVN0YXRlTm9kZUlkfWA7XG5cbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybCwge1xuICAgICAgICAuLi4oYXdhaXQgaHR0cE9wdGlvbnModGhpcy5hdXRoLCB0aGlzLmNvbmZpZykpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGFzeW5jIGxvYWRGaWxlKGZpbGU6IEZpbGUpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEFycmF5QnVmZmVyPigocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIE9LIHRvIHR5cGUgY2FzdCBoZXJlIHNpbmNlIHdlIGFyZSB1c2luZyByZWFkQXNBcnJheUJ1ZmZlci5cbiAgICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIEFycmF5QnVmZmVyKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGxvYWRFbmNyeXB0ZWRGaWxlKFxuICAgIG9wdGlvbnM6IFVwbG9hZEVuY3J5cHRlZEZpbGVPcHRpb25zXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBlbmNyeXB0ZWRDb250ZW50LCBmaWxlTmFtZSB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdjb250ZW50JywgbmV3IEJsb2IoW2VuY3J5cHRlZENvbnRlbnRdKSwgZmlsZU5hbWUpO1xuXG4gICAgY29uc3QgeyBjb250ZW50X3Jlc291cmNlIH0gPSBhd2FpdCB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PHsgY29udGVudF9yZXNvdXJjZSB9PihcbiAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpVXJsfWZpbGVzL3VwbG9hZC9gLFxuICAgICAgICBmb3JtRGF0YSxcbiAgICAgICAgYXdhaXQgaHR0cE9wdGlvbnModGhpcy5hdXRoLCB0aGlzLmNvbmZpZylcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcblxuICAgIHJldHVybiBjb250ZW50X3Jlc291cmNlO1xuICB9XG59XG4iXX0=
@@ -5,9 +5,8 @@ import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
5
5
  import { DEFAULT_INTERRUPTSOURCES, Idle } from '@ng-idle/core';
6
6
  import { Keepalive } from '@ng-idle/keepalive';
7
7
  import { KeyService } from '../key/key.service';
8
- import { KC_CONFIG } from '../life-ready.config';
9
- import { LrBadArgumentException, LrBadStateException, } from '../_common/exceptions';
10
- import { httpOptions } from '../_common/utils';
8
+ import { httpOptions, KC_CONFIG } from '../life-ready.config';
9
+ import { KcBadArgumentException, KcBadStateException, } from '../_common/exceptions';
11
10
  import { Config } from './idle.types';
12
11
  import * as i0 from "@angular/core";
13
12
  import * as i1 from "../life-ready.config";
@@ -30,20 +29,20 @@ export class IdleService {
30
29
  }
31
30
  assertInit() {
32
31
  if (!this.initCalled) {
33
- throw new LrBadStateException('Call IdleService.init() first.');
32
+ throw new KcBadStateException('Call IdleService.init() first.');
34
33
  }
35
34
  }
36
35
  init(params) {
37
36
  return __awaiter(this, void 0, void 0, function* () {
38
37
  if (this.initCalled) {
39
- throw new LrBadStateException('IdleService.init() can only be called once. IdleService.start() calls init() with default values if init() has not been called yet.');
38
+ throw new KcBadStateException('IdleService.init() can only be called once. IdleService.start() calls init() with default values if init() has not been called yet.');
40
39
  }
41
40
  this.initCalled = true;
42
41
  // Defaults
43
42
  params = Object.assign({ onTimeout: null, onKeepalive: null, idleSec: Config.IDLE, timeoutSec: Config.TIMEOUT, keepAliveIntervalSec: Config.KEEP_ALIVE_INTERVAL }, params);
44
43
  // If timeoutSec == 0 then the onTimeout() callback is never called.
45
44
  if (params.timeoutSec < 0.01) {
46
- throw new LrBadArgumentException('Minimum value for IdleService.init({ timeoutSec }) is 0.01');
45
+ throw new KcBadArgumentException('Minimum value for IdleService.init({ timeoutSec }) is 0.01');
47
46
  }
48
47
  this.onTimeout = params.onTimeout;
49
48
  this.onKeepalive = params.onKeepalive;
@@ -158,4 +157,4 @@ IdleService.ctorParameters = () => [
158
157
  { type: KeyService },
159
158
  { type: AuthClass }
160
159
  ];
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2lkbGUvaWRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixtQkFBbUIsR0FDcEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBbUIsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBY3ZELE1BQU0sT0FBTyxXQUFXO0lBUXRCLFlBQzZCLE1BQWdCLEVBQ25DLElBQWdCLEVBQ2hCLElBQVUsRUFDVixTQUFvQixFQUNwQixVQUFzQixFQUN0QixJQUFlO1FBTEksV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUNuQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBVztRQWJSLG9CQUFlLEdBQUcscUJBQXFCLENBQUM7UUFDeEMsZUFBVSxHQUFHLHFCQUFxQixDQUFDO1FBRTVDLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFXeEIsQ0FBQztJQUVJLFVBQVU7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsTUFBTSxJQUFJLG1CQUFtQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0lBRVksSUFBSSxDQUFDLE1BQXdCOztZQUN4QyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLE1BQU0sSUFBSSxtQkFBbUIsQ0FDM0IscUlBQXFJLENBQ3RJLENBQUM7YUFDSDtZQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBRXZCLFdBQVc7WUFDWCxNQUFNLG1CQUNKLFNBQVMsRUFBRSxJQUFJLEVBQ2YsV0FBVyxFQUFFLElBQUksRUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQ3BCLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUMxQixvQkFBb0IsRUFBRSxNQUFNLENBQUMsbUJBQW1CLElBQzdDLE1BQU0sQ0FDVixDQUFDO1lBRUYsb0VBQW9FO1lBQ3BFLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUU7Z0JBQzVCLE1BQU0sSUFBSSxzQkFBc0IsQ0FDOUIsNERBQTRELENBQzdELENBQUM7YUFDSDtZQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFFdEMsMkVBQTJFO1lBQzNFLGFBQWE7WUFDYiwyRUFBMkU7WUFDM0UsMkRBQTJEO1lBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyw2R0FBNkc7WUFDN0csSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hDLGtHQUFrRztZQUNsRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBRWxELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUVuRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBUyxFQUFFO2dCQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUEsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNqRCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixTQUFTLFdBQVcsQ0FBQyxDQUNyRCxDQUFDO1lBRUYsMkVBQTJFO1lBQzNFLGtCQUFrQjtZQUNsQiwyRUFBMkU7WUFDM0UscURBQXFEO1lBQ3JELDJGQUEyRjtZQUMzRiwrRkFBK0Y7WUFDL0YsNENBQTRDO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQ1QsK0JBQStCLE1BQU0sQ0FBQyxtQkFBbUIsVUFBVSxDQUNwRSxDQUFDO1lBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBRXJELDhFQUE4RTtZQUM5RSxzREFBc0Q7WUFDdEQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDOUQsSUFDRSxVQUFVO2dCQUNWLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUNyRTtnQkFDQSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7YUFDM0Q7UUFDSCxDQUFDO0tBQUE7SUFFWSxhQUFhOztZQUl4QixNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUNwQyxJQUFJLENBQ0gsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8saUJBQWlCLEVBQ3ZDLElBQUk7WUFDSiwwREFBMEQ7WUFDMUQsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQzFDO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1lBRWYsT0FBTztnQkFDTCxlQUFlO2dCQUNmLG1CQUFtQixFQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2FBQzVCLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFWSxnQkFBZ0IsQ0FBQyxTQUFjOztZQUMxQyx3R0FBd0c7WUFDeEcsMENBQTBDO1lBQzFDLDJGQUEyRjtZQUMzRiwyRkFBMkY7WUFDM0Ysc0JBQXNCO1lBQ3RCLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRTNELDhCQUE4QjtZQUM5QixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFFdkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7S0FBQTtJQUVhLE1BQU07O1lBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQ1QsaUNBQWlDLElBQUksQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FDckcsQ0FBQztZQUVGLGdEQUFnRDtZQUNoRCxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUUzRCx5Q0FBeUM7WUFDekMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLCtCQUErQixDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFFM0UsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztLQUFBO0lBRVksS0FBSzs7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ25CO1lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUN6QixPQUFPO2FBQ1I7WUFFRCw0RUFBNEU7WUFDNUUsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDO0tBQUE7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU8sS0FBSztRQUNYLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Ozs7WUFoTEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBVUksTUFBTSxTQUFDLFNBQVM7WUFwQ1osVUFBVTtZQUdnQixJQUFJO1lBQzlCLFNBQVM7WUFDVCxVQUFVO1lBSFYsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQgeyBERUZBVUxUX0lOVEVSUlVQVFNPVVJDRVMsIElkbGUgfSBmcm9tICdAbmctaWRsZS9jb3JlJztcbmltcG9ydCB7IEtlZXBhbGl2ZSB9IGZyb20gJ0BuZy1pZGxlL2tlZXBhbGl2ZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleSB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgS2NDb25maWcsIEtDX0NPTkZJRyB9IGZyb20gJy4uL2xpZmUtcmVhZHkuY29uZmlnJztcbmltcG9ydCB7XG4gIExyQmFkQXJndW1lbnRFeGNlcHRpb24sXG4gIExyQmFkU3RhdGVFeGNlcHRpb24sXG59IGZyb20gJy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBodHRwT3B0aW9ucyB9IGZyb20gJy4uL19jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgQ29uZmlnLCBLZWVwYWxpdmVSZXN1bHQgfSBmcm9tICcuL2lkbGUudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElkbGVTZXJ2aWNlSW5pdCB7XG4gIC8vIFRPRE86IHRoaXMgc2hvdWxkIGJlIEV2ZW50RW1pdHRlciBpbnN0ZWFkIG9mIGEgY2FsbGJhY2suXG4gIG9uVGltZW91dD86ICgoKSA9PiB2b2lkKSB8ICgoKSA9PiBQcm9taXNlPHZvaWQ+KSB8IG51bGw7XG4gIG9uS2VlcGFsaXZlPzogKCgpID0+IHZvaWQpIHwgKCgpID0+IFByb21pc2U8dm9pZD4pIHwgbnVsbDtcbiAgaWRsZVNlYz86IG51bWJlcjtcbiAgdGltZW91dFNlYz86IG51bWJlcjtcbiAga2VlcEFsaXZlSW50ZXJ2YWxTZWM/OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJZGxlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgSURMRV9FWFBJUllfS0VZID0gJ25nMklkbGUubWFpbi5leHBpcnknO1xuICBwcml2YXRlIHJlYWRvbmx5IElETElOR19LRVkgPSAnbmcySWRsZS5tYWluLmlkbGluZyc7XG5cbiAgcHJpdmF0ZSBpbml0Q2FsbGVkID0gZmFsc2U7XG4gIHByaXZhdGUgb25UaW1lb3V0OiAoKCkgPT4gdm9pZCkgfCAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsO1xuICBwcml2YXRlIG9uS2VlcGFsaXZlOiAoKCkgPT4gdm9pZCkgfCAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoS0NfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogS2NDb25maWcsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgaWRsZTogSWRsZSxcbiAgICBwcml2YXRlIGtlZXBhbGl2ZTogS2VlcGFsaXZlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhDbGFzc1xuICApIHt9XG5cbiAgcHJpdmF0ZSBhc3NlcnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbml0Q2FsbGVkKSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRTdGF0ZUV4Y2VwdGlvbignQ2FsbCBJZGxlU2VydmljZS5pbml0KCkgZmlyc3QuJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXQocGFyYW1zPzogSWRsZVNlcnZpY2VJbml0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaW5pdENhbGxlZCkge1xuICAgICAgdGhyb3cgbmV3IExyQmFkU3RhdGVFeGNlcHRpb24oXG4gICAgICAgICdJZGxlU2VydmljZS5pbml0KCkgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UuIElkbGVTZXJ2aWNlLnN0YXJ0KCkgY2FsbHMgaW5pdCgpIHdpdGggZGVmYXVsdCB2YWx1ZXMgaWYgaW5pdCgpIGhhcyBub3QgYmVlbiBjYWxsZWQgeWV0LidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0Q2FsbGVkID0gdHJ1ZTtcblxuICAgIC8vIERlZmF1bHRzXG4gICAgcGFyYW1zID0ge1xuICAgICAgb25UaW1lb3V0OiBudWxsLFxuICAgICAgb25LZWVwYWxpdmU6IG51bGwsXG4gICAgICBpZGxlU2VjOiBDb25maWcuSURMRSxcbiAgICAgIHRpbWVvdXRTZWM6IENvbmZpZy5USU1FT1VULFxuICAgICAga2VlcEFsaXZlSW50ZXJ2YWxTZWM6IENvbmZpZy5LRUVQX0FMSVZFX0lOVEVSVkFMLFxuICAgICAgLi4ucGFyYW1zLFxuICAgIH07XG5cbiAgICAvLyBJZiB0aW1lb3V0U2VjID09IDAgdGhlbiB0aGUgb25UaW1lb3V0KCkgY2FsbGJhY2sgaXMgbmV2ZXIgY2FsbGVkLlxuICAgIGlmIChwYXJhbXMudGltZW91dFNlYyA8IDAuMDEpIHtcbiAgICAgIHRocm93IG5ldyBMckJhZEFyZ3VtZW50RXhjZXB0aW9uKFxuICAgICAgICAnTWluaW11bSB2YWx1ZSBmb3IgSWRsZVNlcnZpY2UuaW5pdCh7IHRpbWVvdXRTZWMgfSkgaXMgMC4wMSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5vblRpbWVvdXQgPSBwYXJhbXMub25UaW1lb3V0O1xuICAgIHRoaXMub25LZWVwYWxpdmUgPSBwYXJhbXMub25LZWVwYWxpdmU7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTZXR1cCBJZGxlXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gc2V0cyBhbiBpZGxlIHRpbWVvdXQgb2YgNSBzZWNvbmRzLCBmb3IgdGVzdGluZyBwdXJwb3Nlcy5cbiAgICB0aGlzLmlkbGUuc2V0SWRsZShwYXJhbXMuaWRsZVNlYyk7XG4gICAgLy8gc2V0cyBhIHRpbWVvdXQgcGVyaW9kIG9mIDUgc2Vjb25kcy4gYWZ0ZXIgMTAgc2Vjb25kcyBvZiBpbmFjdGl2aXR5LCB0aGUgdXNlciB3aWxsIGJlIGNvbnNpZGVyZWQgdGltZWQgb3V0LlxuICAgIHRoaXMuaWRsZS5zZXRUaW1lb3V0KHBhcmFtcy50aW1lb3V0U2VjKTtcbiAgICAvLyBzZXRzIHRoZSBkZWZhdWx0IGludGVycnVwdHMsIGluIHRoaXMgY2FzZSwgdGhpbmdzIGxpa2UgY2xpY2tzLCBzY3JvbGxzLCB0b3VjaGVzIHRvIHRoZSBkb2N1bWVudFxuICAgIHRoaXMuaWRsZS5zZXRJbnRlcnJ1cHRzKERFRkFVTFRfSU5URVJSVVBUU09VUkNFUyk7XG5cbiAgICB0aGlzLmlkbGUub25JZGxlRW5kLnN1YnNjcmliZSgoKSA9PiBjb25zb2xlLmxvZygnSWRsZSBzdG9wcGVkJykpO1xuICAgIHRoaXMuaWRsZS5vbklkbGVTdGFydC5zdWJzY3JpYmUoKCkgPT4gY29uc29sZS5sb2coJ0lkbGUgc3RhcnRlZCcpKTtcblxuICAgIHRoaXMuaWRsZS5vblRpbWVvdXQuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdJZGxlIHRpbWVkIG91dCcpO1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKHRoaXMub25UaW1lb3V0ICYmIHRoaXMub25UaW1lb3V0KCkpO1xuICAgIH0pO1xuICAgIHRoaXMuaWRsZS5vblRpbWVvdXRXYXJuaW5nLnN1YnNjcmliZSgoY291bnRkb3duKSA9PlxuICAgICAgY29uc29sZS5sb2coYFdpbGwgdGltZW91dCBpbiAke2NvdW50ZG93bn0gc2Vjb25kcyFgKVxuICAgICk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTZXR1cCBLZWVwYWxpdmVcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBSZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb3JpYnZuZHZzL25nMi1pZGxlI3JlYWRtZVxuICAgIC8vIG5nLWlkbGUgd2lsbCBpbnN0cnVjdCBAbmctaWRsZS9rZWVwYWxpdmUgdG8gcGluZyB3aGlsZSB0aGUgdXNlciBpcyBhY3RpdmUsIGFuZCBzdG9wIG9uY2VcbiAgICAvLyB0aGV5IGdvIGlkbGUgb3IgdGltZSBvdXQuIFdoZW4gdGhlIHVzZXIgcmVzdW1lcyBhY3Rpdml0eSBvciB0aGUgaWRsZSBzdGF0ZSBpcyByZXNldCwgaXQgd2lsbFxuICAgIC8vIHBpbmcgaW1tZWRpYXRlbHkgYW5kIHRoZW4gcmVzdW1lIHBpbmdpbmcuXG4gICAgdGhpcy5rZWVwYWxpdmUuaW50ZXJ2YWwocGFyYW1zLmtlZXBBbGl2ZUludGVydmFsU2VjKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBLZWVwIGFsaXZlIGludGVydmFsIHNldCBhdDogJHtDb25maWcuS0VFUF9BTElWRV9JTlRFUlZBTH0gc2Vjb25kc2BcbiAgICApO1xuXG4gICAgdGhpcy5rZWVwYWxpdmUub25QaW5nLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uUGluZygpKTtcblxuICAgIC8vIElmIHRoZSBicm93c2VyIHRhYiBoYXMgYmVlbiBjbG9zZWQgZm9yIGEgcGVyaW9kIGxvbmdlciB0aGFudCB0aGUgaW5hY3Rpdml0eVxuICAgIC8vIHBlcmlvZCwgdGhlbiB3ZSBzaG91bGQgbG9nb3V0IHJpZ2h0IGZyb20gdGhlIHN0YXJ0LlxuICAgIGNvbnN0IGlkbGVFeHBpcnkgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLklETEVfRVhQSVJZX0tFWSk7XG4gICAgaWYgKFxuICAgICAgaWRsZUV4cGlyeSAmJlxuICAgICAgcGFyc2VJbnQoaWRsZUV4cGlyeSwgMTApICsgdGhpcy5pZGxlLmdldFRpbWVvdXQoKSAqIDEwMDAgPCBEYXRlLm5vdygpXG4gICAgKSB7XG4gICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUodGhpcy5vblRpbWVvdXQgJiYgdGhpcy5vblRpbWVvdXQoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGtlZXBhbGl2ZVBvc3QoKTogUHJvbWlzZTx7XG4gICAgZXhwaXJlc0FmdGVyU2Vjb25kczogbnVtYmVyO1xuICAgIGtlZXBhbGl2ZVJlc3VsdDogS2VlcGFsaXZlUmVzdWx0O1xuICB9PiB7XG4gICAgY29uc3Qga2VlcGFsaXZlUmVzdWx0ID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAucG9zdDxLZWVwYWxpdmVSZXN1bHQ+KFxuICAgICAgICBgJHt0aGlzLmNvbmZpZy5hdXRoVXJsfWF1dGgva2VlcGFsaXZlL2AsXG4gICAgICAgIG51bGwsXG4gICAgICAgIC8vIC9hdXRoL2tlZXBhbGl2ZS8gd2lsbCBiZSBleHRlbmRpbmcgdGhlIHNlc3Npb25zIGNvb2tpZS5cbiAgICAgICAgYXdhaXQgaHR0cE9wdGlvbnModGhpcy5hdXRoLCB0aGlzLmNvbmZpZylcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZWVwYWxpdmVSZXN1bHQsXG4gICAgICBleHBpcmVzQWZ0ZXJTZWNvbmRzOlxuICAgICAgICB0aGlzLmlkbGUuZ2V0SWRsZSgpICtcbiAgICAgICAgdGhpcy5pZGxlLmdldFRpbWVvdXQoKSArXG4gICAgICAgIHRoaXMua2VlcGFsaXZlLmludGVydmFsKCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwZXJzaXN0TWFzdGVyS2V5KG1hc3RlcktleTogS2V5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVGhlIGtlZXBhbGl2ZSBBUEkgY2FsbCBleHRlbmRzIHRoZSBzZXJ2ZXItc2lkZSBzZXNzaW9uLCB0aGUgc2Vzc2lvbiBjb29raWUgZXhwaXJ5LCByZWZyZXNoIGtleSBjb29raWVcbiAgICAvLyBleHBpcnksIGFuZCByZXR1cm5zIHRoZSBzZXNzaW9uIGV4cGlyeS5cbiAgICAvLyBOT1RFIFVzZSB0aW1lIGRlbHRhIHJhdGhlciB0aGFuIGFic29sdXRlIHRpbWUsIHNpbmNlIGNsaWVudCBjbG9jayBhbmQgc2VydmVyIGNsb2NrIG1heWJlXG4gICAgLy8gb3V0IG9mIHN5bmMuIFdlIGNhbid0IHVzZSB0aGUgc2VydmVyVGltZSgpIGZ1bmN0aW9uYWxpdHkgYmVjYXVzZSB0aGUgY29va2llIGV4cGlyeSBzdGlsbFxuICAgIC8vIHJ1biBvbiBsb2NhbCBjbG9jay5cbiAgICBjb25zdCB7IGV4cGlyZXNBZnRlclNlY29uZHMgfSA9IGF3YWl0IHRoaXMua2VlcGFsaXZlUG9zdCgpO1xuXG4gICAgLy8gUGVyc2lzdCB0aGUgZGVyaXZlZCBwYXNzS2V5XG4gICAgYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLnBlcnNpc3RNYXN0ZXJLZXkobWFzdGVyS2V5LCBleHBpcmVzQWZ0ZXJTZWNvbmRzKTtcblxuICAgIGNvbnNvbGUubG9nKCdzZXRNYXN0ZXJLZXkoKSBkb25lJyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9uUGluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBLZWVwIGFsaXZlIHRyaWdnZXJlZCBhdCB0aW1lOiAke0RhdGUubm93KCl9LiBJbnRlcnZhbCBzZXQgYXQ6ICR7dGhpcy5rZWVwYWxpdmUuaW50ZXJ2YWwoKX0gc2Vjb25kc2BcbiAgICApO1xuXG4gICAgLy8gS2VlcGFsaXZlIEFQSSB3aWxsIGV4dGVuZCB0aGUgc2Vzc2lvbiBleHBpcnkuXG4gICAgY29uc3QgeyBleHBpcmVzQWZ0ZXJTZWNvbmRzIH0gPSBhd2FpdCB0aGlzLmtlZXBhbGl2ZVBvc3QoKTtcblxuICAgIC8vIEV4dGVuZCB0aGUgZXhwaXJ5IG9mIHRoZSBwZXJzaXN0ZWQga2V5XG4gICAgYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLnNldE1hc3RlcktleUV4cGlyZXNBZnRlclNlY29uZHMoZXhwaXJlc0FmdGVyU2Vjb25kcyk7XG5cbiAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUodGhpcy5vbktlZXBhbGl2ZSAmJiB0aGlzLm9uS2VlcGFsaXZlKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5pbml0Q2FsbGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pZGxlLmlzUnVubmluZygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUGluZyBkb2VzIG5vdCBzZWVtIHRvIGhhcHBlbiByaWdodCBhdCB0aGUgc3RhcnQuIFNvIHdlIGNhbGwgaXQgZXhwbGljaXRseVxuICAgIGF3YWl0IHRoaXMub25QaW5nKCk7XG5cbiAgICB0aGlzLmlkbGUud2F0Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaWRsZS5zdG9wKCk7XG4gICAgdGhpcy5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldCgpIHtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLklETEVfRVhQSVJZX0tFWSk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5JRExJTkdfS0VZKTtcbiAgfVxufVxuIl19
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2lkbGUvaWRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsV0FBVyxFQUFZLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEdBQ3BCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBbUIsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBY3ZELE1BQU0sT0FBTyxXQUFXO0lBUXRCLFlBQzZCLE1BQWdCLEVBQ25DLElBQWdCLEVBQ2hCLElBQVUsRUFDVixTQUFvQixFQUNwQixVQUFzQixFQUN0QixJQUFlO1FBTEksV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUNuQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBVztRQWJSLG9CQUFlLEdBQUcscUJBQXFCLENBQUM7UUFDeEMsZUFBVSxHQUFHLHFCQUFxQixDQUFDO1FBRTVD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QyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Ozs7WUFoTEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBVUksTUFBTSxTQUFDLFNBQVM7WUFuQ1osVUFBVTtZQUdnQixJQUFJO1lBQzlCLFNBQVM7WUFDVCxVQUFVO1lBSFYsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQgeyBERUZBVUxUX0lOVEVSUlVQVFNPVVJDRVMsIElkbGUgfSBmcm9tICdAbmctaWRsZS9jb3JlJztcbmltcG9ydCB7IEtlZXBhbGl2ZSB9IGZyb20gJ0BuZy1pZGxlL2tlZXBhbGl2ZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleSB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgaHR0cE9wdGlvbnMsIEtjQ29uZmlnLCBLQ19DT05GSUcgfSBmcm9tICcuLi9saWZlLXJlYWR5LmNvbmZpZyc7XG5pbXBvcnQge1xuICBLY0JhZEFyZ3VtZW50RXhjZXB0aW9uLFxuICBLY0JhZFN0YXRlRXhjZXB0aW9uLFxufSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgQ29uZmlnLCBLZWVwYWxpdmVSZXN1bHQgfSBmcm9tICcuL2lkbGUudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElkbGVTZXJ2aWNlSW5pdCB7XG4gIC8vIFRPRE86IHRoaXMgc2hvdWxkIGJlIEV2ZW50RW1pdHRlciBpbnN0ZWFkIG9mIGEgY2FsbGJhY2suXG4gIG9uVGltZW91dD86ICgoKSA9PiB2b2lkKSB8ICgoKSA9PiBQcm9taXNlPHZvaWQ+KSB8IG51bGw7XG4gIG9uS2VlcGFsaXZlPzogKCgpID0+IHZvaWQpIHwgKCgpID0+IFByb21pc2U8dm9pZD4pIHwgbnVsbDtcbiAgaWRsZVNlYz86IG51bWJlcjtcbiAgdGltZW91dFNlYz86IG51bWJlcjtcbiAga2VlcEFsaXZlSW50ZXJ2YWxTZWM/OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJZGxlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgSURMRV9FWFBJUllfS0VZID0gJ25nMklkbGUubWFpbi5leHBpcnknO1xuICBwcml2YXRlIHJlYWRvbmx5IElETElOR19LRVkgPSAnbmcySWRsZS5tYWluLmlkbGluZyc7XG5cbiAgcHJpdmF0ZSBpbml0Q2FsbGVkID0gZmFsc2U7XG4gIHByaXZhdGUgb25UaW1lb3V0OiAoKCkgPT4gdm9pZCkgfCAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsO1xuICBwcml2YXRlIG9uS2VlcGFsaXZlOiAoKCkgPT4gdm9pZCkgfCAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoS0NfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogS2NDb25maWcsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgaWRsZTogSWRsZSxcbiAgICBwcml2YXRlIGtlZXBhbGl2ZTogS2VlcGFsaXZlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhDbGFzc1xuICApIHt9XG5cbiAgcHJpdmF0ZSBhc3NlcnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbml0Q2FsbGVkKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbignQ2FsbCBJZGxlU2VydmljZS5pbml0KCkgZmlyc3QuJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXQocGFyYW1zPzogSWRsZVNlcnZpY2VJbml0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaW5pdENhbGxlZCkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU3RhdGVFeGNlcHRpb24oXG4gICAgICAgICdJZGxlU2VydmljZS5pbml0KCkgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UuIElkbGVTZXJ2aWNlLnN0YXJ0KCkgY2FsbHMgaW5pdCgpIHdpdGggZGVmYXVsdCB2YWx1ZXMgaWYgaW5pdCgpIGhhcyBub3QgYmVlbiBjYWxsZWQgeWV0LidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0Q2FsbGVkID0gdHJ1ZTtcblxuICAgIC8vIERlZmF1bHRzXG4gICAgcGFyYW1zID0ge1xuICAgICAgb25UaW1lb3V0OiBudWxsLFxuICAgICAgb25LZWVwYWxpdmU6IG51bGwsXG4gICAgICBpZGxlU2VjOiBDb25maWcuSURMRSxcbiAgICAgIHRpbWVvdXRTZWM6IENvbmZpZy5USU1FT1VULFxuICAgICAga2VlcEFsaXZlSW50ZXJ2YWxTZWM6IENvbmZpZy5LRUVQX0FMSVZFX0lOVEVSVkFMLFxuICAgICAgLi4ucGFyYW1zLFxuICAgIH07XG5cbiAgICAvLyBJZiB0aW1lb3V0U2VjID09IDAgdGhlbiB0aGUgb25UaW1lb3V0KCkgY2FsbGJhY2sgaXMgbmV2ZXIgY2FsbGVkLlxuICAgIGlmIChwYXJhbXMudGltZW91dFNlYyA8IDAuMDEpIHtcbiAgICAgIHRocm93IG5ldyBLY0JhZEFyZ3VtZW50RXhjZXB0aW9uKFxuICAgICAgICAnTWluaW11bSB2YWx1ZSBmb3IgSWRsZVNlcnZpY2UuaW5pdCh7IHRpbWVvdXRTZWMgfSkgaXMgMC4wMSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5vblRpbWVvdXQgPSBwYXJhbXMub25UaW1lb3V0O1xuICAgIHRoaXMub25LZWVwYWxpdmUgPSBwYXJhbXMub25LZWVwYWxpdmU7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTZXR1cCBJZGxlXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gc2V0cyBhbiBpZGxlIHRpbWVvdXQgb2YgNSBzZWNvbmRzLCBmb3IgdGVzdGluZyBwdXJwb3Nlcy5cbiAgICB0aGlzLmlkbGUuc2V0SWRsZShwYXJhbXMuaWRsZVNlYyk7XG4gICAgLy8gc2V0cyBhIHRpbWVvdXQgcGVyaW9kIG9mIDUgc2Vjb25kcy4gYWZ0ZXIgMTAgc2Vjb25kcyBvZiBpbmFjdGl2aXR5LCB0aGUgdXNlciB3aWxsIGJlIGNvbnNpZGVyZWQgdGltZWQgb3V0LlxuICAgIHRoaXMuaWRsZS5zZXRUaW1lb3V0KHBhcmFtcy50aW1lb3V0U2VjKTtcbiAgICAvLyBzZXRzIHRoZSBkZWZhdWx0IGludGVycnVwdHMsIGluIHRoaXMgY2FzZSwgdGhpbmdzIGxpa2UgY2xpY2tzLCBzY3JvbGxzLCB0b3VjaGVzIHRvIHRoZSBkb2N1bWVudFxuICAgIHRoaXMuaWRsZS5zZXRJbnRlcnJ1cHRzKERFRkFVTFRfSU5URVJSVVBUU09VUkNFUyk7XG5cbiAgICB0aGlzLmlkbGUub25JZGxlRW5kLnN1YnNjcmliZSgoKSA9PiBjb25zb2xlLmxvZygnSWRsZSBzdG9wcGVkJykpO1xuICAgIHRoaXMuaWRsZS5vbklkbGVTdGFydC5zdWJzY3JpYmUoKCkgPT4gY29uc29sZS5sb2coJ0lkbGUgc3RhcnRlZCcpKTtcblxuICAgIHRoaXMuaWRsZS5vblRpbWVvdXQuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdJZGxlIHRpbWVkIG91dCcpO1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKHRoaXMub25UaW1lb3V0ICYmIHRoaXMub25UaW1lb3V0KCkpO1xuICAgIH0pO1xuICAgIHRoaXMuaWRsZS5vblRpbWVvdXRXYXJuaW5nLnN1YnNjcmliZSgoY291bnRkb3duKSA9PlxuICAgICAgY29uc29sZS5sb2coYFdpbGwgdGltZW91dCBpbiAke2NvdW50ZG93bn0gc2Vjb25kcyFgKVxuICAgICk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTZXR1cCBLZWVwYWxpdmVcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBSZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb3JpYnZuZHZzL25nMi1pZGxlI3JlYWRtZVxuICAgIC8vIG5nLWlkbGUgd2lsbCBpbnN0cnVjdCBAbmctaWRsZS9rZWVwYWxpdmUgdG8gcGluZyB3aGlsZSB0aGUgdXNlciBpcyBhY3RpdmUsIGFuZCBzdG9wIG9uY2VcbiAgICAvLyB0aGV5IGdvIGlkbGUgb3IgdGltZSBvdXQuIFdoZW4gdGhlIHVzZXIgcmVzdW1lcyBhY3Rpdml0eSBvciB0aGUgaWRsZSBzdGF0ZSBpcyByZXNldCwgaXQgd2lsbFxuICAgIC8vIHBpbmcgaW1tZWRpYXRlbHkgYW5kIHRoZW4gcmVzdW1lIHBpbmdpbmcuXG4gICAgdGhpcy5rZWVwYWxpdmUuaW50ZXJ2YWwocGFyYW1zLmtlZXBBbGl2ZUludGVydmFsU2VjKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBLZWVwIGFsaXZlIGludGVydmFsIHNldCBhdDogJHtDb25maWcuS0VFUF9BTElWRV9JTlRFUlZBTH0gc2Vjb25kc2BcbiAgICApO1xuXG4gICAgdGhpcy5rZWVwYWxpdmUub25QaW5nLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uUGluZygpKTtcblxuICAgIC8vIElmIHRoZSBicm93c2VyIHRhYiBoYXMgYmVlbiBjbG9zZWQgZm9yIGEgcGVyaW9kIGxvbmdlciB0aGFudCB0aGUgaW5hY3Rpdml0eVxuICAgIC8vIHBlcmlvZCwgdGhlbiB3ZSBzaG91bGQgbG9nb3V0IHJpZ2h0IGZyb20gdGhlIHN0YXJ0LlxuICAgIGNvbnN0IGlkbGVFeHBpcnkgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLklETEVfRVhQSVJZX0tFWSk7XG4gICAgaWYgKFxuICAgICAgaWRsZUV4cGlyeSAmJlxuICAgICAgcGFyc2VJbnQoaWRsZUV4cGlyeSwgMTApICsgdGhpcy5pZGxlLmdldFRpbWVvdXQoKSAqIDEwMDAgPCBEYXRlLm5vdygpXG4gICAgKSB7XG4gICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUodGhpcy5vblRpbWVvdXQgJiYgdGhpcy5vblRpbWVvdXQoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGtlZXBhbGl2ZVBvc3QoKTogUHJvbWlzZTx7XG4gICAgZXhwaXJlc0FmdGVyU2Vjb25kczogbnVtYmVyO1xuICAgIGtlZXBhbGl2ZVJlc3VsdDogS2VlcGFsaXZlUmVzdWx0O1xuICB9PiB7XG4gICAgY29uc3Qga2VlcGFsaXZlUmVzdWx0ID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAucG9zdDxLZWVwYWxpdmVSZXN1bHQ+KFxuICAgICAgICBgJHt0aGlzLmNvbmZpZy5hdXRoVXJsfWF1dGgva2VlcGFsaXZlL2AsXG4gICAgICAgIG51bGwsXG4gICAgICAgIC8vIC9hdXRoL2tlZXBhbGl2ZS8gd2lsbCBiZSBleHRlbmRpbmcgdGhlIHNlc3Npb25zIGNvb2tpZS5cbiAgICAgICAgYXdhaXQgaHR0cE9wdGlvbnModGhpcy5hdXRoLCB0aGlzLmNvbmZpZylcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZWVwYWxpdmVSZXN1bHQsXG4gICAgICBleHBpcmVzQWZ0ZXJTZWNvbmRzOlxuICAgICAgICB0aGlzLmlkbGUuZ2V0SWRsZSgpICtcbiAgICAgICAgdGhpcy5pZGxlLmdldFRpbWVvdXQoKSArXG4gICAgICAgIHRoaXMua2VlcGFsaXZlLmludGVydmFsKCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwZXJzaXN0TWFzdGVyS2V5KG1hc3RlcktleTogS2V5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVGhlIGtlZXBhbGl2ZSBBUEkgY2FsbCBleHRlbmRzIHRoZSBzZXJ2ZXItc2lkZSBzZXNzaW9uLCB0aGUgc2Vzc2lvbiBjb29raWUgZXhwaXJ5LCByZWZyZXNoIGtleSBjb29raWVcbiAgICAvLyBleHBpcnksIGFuZCByZXR1cm5zIHRoZSBzZXNzaW9uIGV4cGlyeS5cbiAgICAvLyBOT1RFIFVzZSB0aW1lIGRlbHRhIHJhdGhlciB0aGFuIGFic29sdXRlIHRpbWUsIHNpbmNlIGNsaWVudCBjbG9jayBhbmQgc2VydmVyIGNsb2NrIG1heWJlXG4gICAgLy8gb3V0IG9mIHN5bmMuIFdlIGNhbid0IHVzZSB0aGUgc2VydmVyVGltZSgpIGZ1bmN0aW9uYWxpdHkgYmVjYXVzZSB0aGUgY29va2llIGV4cGlyeSBzdGlsbFxuICAgIC8vIHJ1biBvbiBsb2NhbCBjbG9jay5cbiAgICBjb25zdCB7IGV4cGlyZXNBZnRlclNlY29uZHMgfSA9IGF3YWl0IHRoaXMua2VlcGFsaXZlUG9zdCgpO1xuXG4gICAgLy8gUGVyc2lzdCB0aGUgZGVyaXZlZCBwYXNzS2V5XG4gICAgYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLnBlcnNpc3RNYXN0ZXJLZXkobWFzdGVyS2V5LCBleHBpcmVzQWZ0ZXJTZWNvbmRzKTtcblxuICAgIGNvbnNvbGUubG9nKCdzZXRNYXN0ZXJLZXkoKSBkb25lJyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9uUGluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBLZWVwIGFsaXZlIHRyaWdnZXJlZCBhdCB0aW1lOiAke0RhdGUubm93KCl9LiBJbnRlcnZhbCBzZXQgYXQ6ICR7dGhpcy5rZWVwYWxpdmUuaW50ZXJ2YWwoKX0gc2Vjb25kc2BcbiAgICApO1xuXG4gICAgLy8gS2VlcGFsaXZlIEFQSSB3aWxsIGV4dGVuZCB0aGUgc2Vzc2lvbiBleHBpcnkuXG4gICAgY29uc3QgeyBleHBpcmVzQWZ0ZXJTZWNvbmRzIH0gPSBhd2FpdCB0aGlzLmtlZXBhbGl2ZVBvc3QoKTtcblxuICAgIC8vIEV4dGVuZCB0aGUgZXhwaXJ5IG9mIHRoZSBwZXJzaXN0ZWQga2V5XG4gICAgYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLnNldE1hc3RlcktleUV4cGlyZXNBZnRlclNlY29uZHMoZXhwaXJlc0FmdGVyU2Vjb25kcyk7XG5cbiAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUodGhpcy5vbktlZXBhbGl2ZSAmJiB0aGlzLm9uS2VlcGFsaXZlKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5pbml0Q2FsbGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pZGxlLmlzUnVubmluZygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUGluZyBkb2VzIG5vdCBzZWVtIHRvIGhhcHBlbiByaWdodCBhdCB0aGUgc3RhcnQuIFNvIHdlIGNhbGwgaXQgZXhwbGljaXRseVxuICAgIGF3YWl0IHRoaXMub25QaW5nKCk7XG5cbiAgICB0aGlzLmlkbGUud2F0Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaWRsZS5zdG9wKCk7XG4gICAgdGhpcy5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldCgpIHtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLklETEVfRVhQSVJZX0tFWSk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5JRExJTkdfS0VZKTtcbiAgfVxufVxuIl19