@lifeready/core 4.0.4 → 5.0.2

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 (55) hide show
  1. package/bundles/lifeready-core.umd.js +324 -302
  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.service.js +3 -3
  21. package/esm2015/lib/encryption/encryption.service.js +4 -7
  22. package/esm2015/lib/file-upload/file-upload.service.js +2 -3
  23. package/esm2015/lib/idle/idle.service.js +6 -7
  24. package/esm2015/lib/item2/item2.service.js +3 -3
  25. package/esm2015/lib/key/key-factory.service.js +8 -8
  26. package/esm2015/lib/key/key-graph.service.js +7 -9
  27. package/esm2015/lib/key/key.service.js +5 -5
  28. package/esm2015/lib/key/key.types.js +1 -1
  29. package/esm2015/lib/key-exchange/key-exchange.service.js +3 -3
  30. package/esm2015/lib/key-exchange/key-exchange2.service.js +3 -3
  31. package/esm2015/lib/lbop/lbop.service.js +13 -10
  32. package/esm2015/lib/life-ready.config.js +15 -4
  33. package/esm2015/lib/password/password.service.js +4 -5
  34. package/esm2015/lib/persist/persist.service.js +3 -3
  35. package/esm2015/lib/plan/plan.service.js +3 -3
  36. package/esm2015/lib/profile/profile.types.js +8 -1
  37. package/esm2015/lib/scenario/scenario.service.js +4 -4
  38. package/esm2015/lib/time/time.service.js +3 -6
  39. package/esm2015/lib/tp-assembly/tp-assembly.js +7 -7
  40. package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +3 -3
  41. package/esm2015/lib/trusted-party/trusted-party2.service.js +4 -4
  42. package/esm2015/lib/two-factor/two-factor.service.js +3 -3
  43. package/fesm2015/lifeready-core.js +214 -195
  44. package/fesm2015/lifeready-core.js.map +1 -1
  45. package/lib/_common/exceptions.d.ts +54 -38
  46. package/lib/_common/types.d.ts +0 -4
  47. package/lib/_common/utils.d.ts +0 -8
  48. package/lib/api/types/lr-graphql.types.d.ts +0 -5
  49. package/lib/auth/auth.types.d.ts +1 -9
  50. package/lib/key/key.types.d.ts +4 -1
  51. package/lib/lbop/lbop.service.d.ts +4 -0
  52. package/lib/life-ready.config.d.ts +7 -0
  53. package/lib/profile/profile.types.d.ts +8 -1
  54. package/lifeready-core.metadata.json +1 -1
  55. package/package.json +1 -1
@@ -7,7 +7,7 @@ import * as gqlPrinter from 'graphql/language/printer';
7
7
  import * as lodash from 'lodash';
8
8
  import { KeyGraphService } from '../../key/key-graph.service';
9
9
  import { getMutation, getQuery } from '../../_common/ast';
10
- import { handleApolloError, LrBadStateException, LrUnsupportedException, } from '../../_common/exceptions';
10
+ import { handleApolloError, KcBadStateException, KcUnsupportedException, } from '../../_common/exceptions';
11
11
  import { FetchKeyGraphField, KeyGraphField } from '../../_common/queries.gql';
12
12
  import { RunOutsideAngular } from '../../_common/run-outside-angular';
13
13
  import { QueryProcessorService } from '../query-processor';
@@ -70,10 +70,10 @@ let LrGraphQLService = class LrGraphQLService {
70
70
  lrMutateImpl(lrMutation, options) {
71
71
  return __awaiter(this, void 0, void 0, function* () {
72
72
  if (options === null || options === void 0 ? void 0 : options.variables) {
73
- throw new LrUnsupportedException('Unsupported field: "options.variables"');
73
+ throw new KcUnsupportedException('Unsupported field: "options.variables"');
74
74
  }
75
75
  if (lrMutation.executed) {
76
- throw new LrBadStateException('LrMutation has already executed. LrMutation can only be used once in a lrMutate() call. Create new instances of LrMutation.');
76
+ throw new KcBadStateException('LrMutation has already executed. LrMutation can only be used once in a lrMutate() call. Create new instances of LrMutation.');
77
77
  }
78
78
  lrMutation.setExecuted();
79
79
  return this.apolloMutate(Object.assign(Object.assign({}, options), lrMutation.lrMutationData))
@@ -167,4 +167,4 @@ LrGraphQLService = __decorate([
167
167
  })
168
168
  ], LrGraphQLService);
169
169
  export { LrGraphQLService };
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FwaS9sci1ncmFwaHFsL2xyLWdyYXBocWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUW5ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRFLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFHeEQsa0JBQWtCO0FBQ2xCLDZFQUE2RTtBQUM3RSxNQUFNLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUE7O0lBRTFDLGFBQWE7O0NBRWhCLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBYyxDQUFDO0FBRTNDLE1BQU0sOEJB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QyxDQUFDO2dCQUMzQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDekI7UUFDSCxDQUFDO0tBQUE7Q0FDRixDQUFBOzs7WUE5T0EsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUExRm9CLE1BQU07WUFRbEIsTUFBTTtZQUtOLGVBQWU7WUFXRyxxQkFBcUI7O0FBbUVuQyxnQkFBZ0I7SUFONUIsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLGdCQUFnQixDQTJPNUI7U0EzT1ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGZXRjaFBvbGljeSxcbiAgTXV0YXRpb25PcHRpb25zLFxuICBPcGVyYXRpb25WYXJpYWJsZXMsXG4gIFF1ZXJ5T3B0aW9ucyxcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBNdXRhdGlvbkJhc2VPcHRpb25zIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZS93YXRjaFF1ZXJ5T3B0aW9ucyc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBGaWVsZE5vZGUgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuaW1wb3J0ICogYXMgZ3FsUHJpbnRlciBmcm9tICdncmFwaHFsL2xhbmd1YWdlL3ByaW50ZXInO1xuaW1wb3J0ICogYXMgbG9kYXNoIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi8uLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IGdldE11dGF0aW9uLCBnZXRRdWVyeSwgVHlwZWREb2N1bWVudE5vZGUgfSBmcm9tICcuLi8uLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQge1xuICBoYW5kbGVBcG9sbG9FcnJvcixcbiAgTHJCYWRTdGF0ZUV4Y2VwdGlvbixcbiAgTHJVbnN1cHBvcnRlZEV4Y2VwdGlvbixcbn0gZnJvbSAnLi4vLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IEZldGNoS2V5R3JhcGhGaWVsZCwgS2V5R3JhcGhGaWVsZCB9IGZyb20gJy4uLy4uL19jb21tb24vcXVlcmllcy5ncWwnO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi8uLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgTWF5QXN5bmMgfSBmcm9tICcuLi8uLi9fY29tbW9uL3R5cGVzJztcbmltcG9ydCB7IFByb2Nlc3Nvck9wdGlvbnMsIFF1ZXJ5UHJvY2Vzc29yU2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5LXByb2Nlc3Nvcic7XG5pbXBvcnQgeyBMck1lcmdlZE11dGF0aW9uIH0gZnJvbSAnLi9sci1tZXJnZWQtbXV0YXRpb24nO1xuaW1wb3J0IHsgTHJNdXRhdGlvbkJhc2UgfSBmcm9tICcuL2xyLW11dGF0aW9uLWJhc2UnO1xuXG4vLyBEYXRhIHN0cnVjdHVyZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBrZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uID0gZ2V0UXVlcnkoZ3FsYFxucXVlcnkge1xuICAke0tleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbmNvbnN0IGZldGNoS2V5R3JhcGhGaWVsZEFzdFNlbGVjdGlvbiA9IGdldFF1ZXJ5KGdxbGBcbnF1ZXJ5IHtcbiAgJHtGZXRjaEtleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbi8vIGNvbnN0IGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9rZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uKSBhcyBGaWVsZE5vZGU7XG4vLyBjb25zdCBmZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9mZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24pIGFzIEZpZWxkTm9kZTtcblxuZXhwb3J0IGludGVyZmFjZSBMclF1ZXJ5T3B0aW9uczxULCBUVmFyaWFibGVzPlxuICBleHRlbmRzIFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzPiB7XG4gIHF1ZXJ5OiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbi8vIENvcGllZCBmcm9tIE11dGF0aW9uT3B0aW9uc1xuLy8gUmVtb3ZlZCByZXF1aXJlZCBmaWVsZCBcIm11dGF0aW9uXCIuIFRoZSBcInZhcmlhYmxlc1wiIGZpZWxkIGlzIHN0aWxsIHRoZXJlXG4vLyBidXQgaXQncyBkeW5hbWljYWxseSBjaGVja2VkLlxuZXhwb3J0IGludGVyZmFjZSBMck11dGF0aW9uT3B0aW9uczxcbiAgVCA9IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH0sXG4gIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXNcbj4gZXh0ZW5kcyBNdXRhdGlvbkJhc2VPcHRpb25zPFQsIFRWYXJpYWJsZXM+IHtcbiAgY29udGV4dD86IGFueTtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbn1cblxuLy8gVGhlIFwibXV0YXRpb25cIiBhbmQgXCJ2YXJpYWJsZVwiIGZpZWxkcyBhcmUgaW5oZXJpdGVkIGJ1dCBkeW5hbWljYWxseSBwcm9oaWJpdGVkIGJlY2F1c2Vcbi8vIHRoZXkgYXJlIHByb3ZpZGVkIGJ5IExyTXV0YXRpb24uIEl0J3MgYSBiaXQgdW5jbGVhbiBidXQgYXZvaWRzIGEgbG90IG9mIHR5cGluZyB3b3JrLlxuZXhwb3J0IGludGVyZmFjZSBMckFwb2xsb011dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzID0gT3BlcmF0aW9uVmFyaWFibGVzPlxuICBleHRlbmRzIE11dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPiB7XG4gIG11dGF0aW9uOiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbmludGVyZmFjZSBMckdyYXBoUUxTZXJ2aWNlU3RhdHMge1xuICBxdWVyeUNvdW50OiBudW1iZXI7XG4gIG11dGF0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExyR3JhcGhRTFNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRzOiBMckdyYXBoUUxTZXJ2aWNlU3RhdHMgPSB7XG4gICAgcXVlcnlDb3VudDogMCxcbiAgICBtdXRhdGlvbkNvdW50OiAwLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBhcG9sbG86IEFwb2xsbyxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdWVyeVByb2Nlc3NvcjogUXVlcnlQcm9jZXNzb3JTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBxdWVyeTxULCBWID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgb3B0aW9uczogTHJRdWVyeU9wdGlvbnM8VCwgVj5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgLy8gTWFrZSBjb3BpZXMgdG8gYXZvaWQgc2lkZSBlZmZlY3QuXG4gICAgb3B0aW9ucyA9IGxvZGFzaC5jbG9uZURlZXAob3B0aW9ucyk7XG5cbiAgICAvLyBBcHBlbmQgdGhlIGtleSBncmFwaCBxdWVyeVxuICAgIGNvbnN0IGluY2x1ZGVLZXlHcmFwaCA9IHRoaXMuaXNJbmNsdWRlS2V5R3JhcGgob3B0aW9ucy5pbmNsdWRlS2V5R3JhcGgpO1xuICAgIGlmIChpbmNsdWRlS2V5R3JhcGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldFF1ZXJ5KG9wdGlvbnMucXVlcnkpO1xuICAgICAgb3BlcmF0aW9uLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gW1xuICAgICAgICAuLi5vcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMsXG4gICAgICAgIGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm5hbWUpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldFF1ZXJ5KG9wdGlvbnMucXVlcnkpO1xuICAgICAgKG9wZXJhdGlvbi5uYW1lIGFzIGFueSkgPSB7XG4gICAgICAgIGtpbmQ6ICdOYW1lJyxcbiAgICAgICAgdmFsdWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmFwb2xsby5xdWVyeTxULCBWPihvcHRpb25zKS50b1Byb21pc2UoKTtcblxuICAgIHRoaXMuc3RhdHMucXVlcnlDb3VudCsrO1xuXG4gICAgaGFuZGxlQXBvbGxvRXJyb3IocmVzcG9uc2UuZXJyb3JzKTtcblxuICAgIHRoaXMuYWRkS2V5cyhyZXNwb25zZSk7XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5xdWVyeVByb2Nlc3Nvci5wcm9jZXNzUXVlcnkoXG4gICAgICByZXNwb25zZS5kYXRhLFxuICAgICAgb3B0aW9ucy5wcm9jZXNzb3JPcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsck11dGF0ZUltcGwobHJNdXRhdGlvbiwgb3B0aW9ucz8pIHtcbiAgICBpZiAob3B0aW9ucz8udmFyaWFibGVzKSB7XG4gICAgICB0aHJvdyBuZXcgTHJVbnN1cHBvcnRlZEV4Y2VwdGlvbihcbiAgICAgICAgJ1Vuc3VwcG9ydGVkIGZpZWxkOiBcIm9wdGlvbnMudmFyaWFibGVzXCInXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChsck11dGF0aW9uLmV4ZWN1dGVkKSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRTdGF0ZUV4Y2VwdGlvbihcbiAgICAgICAgJ0xyTXV0YXRpb24gaGFzIGFscmVhZHkgZXhlY3V0ZWQuIExyTXV0YXRpb24gY2FuIG9ubHkgYmUgdXNlZCBvbmNlIGluIGEgbHJNdXRhdGUoKSBjYWxsLiBDcmVhdGUgbmV3IGluc3RhbmNlcyBvZiBMck11dGF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbHJNdXRhdGlvbi5zZXRFeGVjdXRlZCgpO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBvbGxvTXV0YXRlKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAuLi5sck11dGF0aW9uLmxyTXV0YXRpb25EYXRhLFxuICAgIH0pXG4gICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgIC8vIFJlc29sdmUgcHJvbWlzZXMgc2V0IG9uIHRoZSBsck11dGF0aW9uIHJhdGhlciB0aGFuIHRoZSBsck11dGF0ZSgpIGNhbGwuXG4gICAgICAgIGxyTXV0YXRpb24ucmVzb2x2ZShyZXMpO1xuICAgICAgICAvLyBTdGlsbCBuZWVkIHRvIHJldHVybiB2YWx1ZSB0byB0aGUgcHJvbWlzZSB3YWl0aW5nIGZvciB0aGUgcmVzdWx0cyBvZiBsck11dGF0ZSgpLlxuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgbHJNdXRhdGlvbi5yZWplY3QoZXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgYXBvbGxvTXV0YXRlPFQgZXh0ZW5kcyBhbnksIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBvcHRpb25zOiBMckFwb2xsb011dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPlxuICApOiBQcm9taXNlPFQ+IHtcbiAgICAvLyBNYWtlIGNvcGllcyB0byBhdm9pZCBzaWRlIGVmZmVjdC5cbiAgICBvcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG11dGF0aW9uOiBsb2Rhc2guY2xvbmVEZWVwKG9wdGlvbnMubXV0YXRpb24pLFxuICAgIH07XG5cbiAgICAvLyBBcHBlbmQgdGhlIGtleSBncmFwaCBxdWVyeVxuICAgIGNvbnN0IGluY2x1ZGVLZXlHcmFwaCA9IHRoaXMuaXNJbmNsdWRlS2V5R3JhcGgob3B0aW9ucy5pbmNsdWRlS2V5R3JhcGgpO1xuXG4gICAgaWYgKGluY2x1ZGVLZXlHcmFwaCkge1xuICAgICAgY29uc3Qgb3BlcmF0aW9uID0gZ2V0TXV0YXRpb24ob3B0aW9ucy5tdXRhdGlvbik7XG4gICAgICBvcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMgPSBbXG4gICAgICAgIC4uLm9wZXJhdGlvbi5zZWxlY3Rpb25TZXQuc2VsZWN0aW9ucyxcbiAgICAgICAgZmV0Y2hLZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICBjb25zdCBvcGVyYXRpb24gPSBnZXRNdXRhdGlvbihvcHRpb25zLm11dGF0aW9uKTtcbiAgICAgIChvcGVyYXRpb24ubmFtZSBhcyBhbnkpID0ge1xuICAgICAgICBraW5kOiAnTmFtZScsXG4gICAgICAgIHZhbHVlOiBvcHRpb25zLm5hbWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEZvcm1hdCB0byBzdHJpbmcgYW5kIHBhcnNlIGFnYWluLiBUaGlzIGFsbG93cyB0aGUgXCJsb2NcIjogeyBcInN0YXJ0XCI6IC4uLiB9XG4gICAgLy8gcGFydCBvZiB0aGUgRG9jdW1lbnROb2RlIHRvIGJlIGNvcnJlY3RseSBzZXR1cC4gSXQncyBleHRyYSBwcm9jZXNzaW5nXG4gICAgLy8gaW4gc2VyaWFsaXNpbmcgYW5kIHBhcnNpbmcsIGJ1dCBwcm9iYWJseSBtaW5pbWFsIG92ZXJoZWFkLlxuICAgIG9wdGlvbnMubXV0YXRpb24gPSBncWwoZ3FsUHJpbnRlci5wcmludChvcHRpb25zLm11dGF0aW9uKSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYXBvbGxvLm11dGF0ZTxUPihvcHRpb25zKS50b1Byb21pc2UoKTtcblxuICAgIHRoaXMuc3RhdHMubXV0YXRpb25Db3VudCsrO1xuXG4gICAgaGFuZGxlQXBvbGxvRXJyb3IocmVzcG9uc2UuZXJyb3JzKTtcblxuICAgIHRoaXMuYWRkS2V5cyhyZXNwb25zZSk7XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5xdWVyeVByb2Nlc3Nvci5wcm9jZXNzUXVlcnkoXG4gICAgICByZXNwb25zZS5kYXRhLFxuICAgICAgb3B0aW9ucy5wcm9jZXNzb3JPcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdHNTbmFwc2hvdCgpOiBMckdyYXBoUUxTZXJ2aWNlU3RhdHMge1xuICAgIHJldHVybiBsb2Rhc2guY2xvbmVEZWVwKHRoaXMuc3RhdHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRLZXlzKHJlc3BvbnNlKSB7XG4gICAgaWYgKChyZXNwb25zZS5kYXRhIGFzIEhhc0tleUdyYXBoKS5rZXlHcmFwaCkge1xuICAgICAgdGhpcy5rZXlHcmFwaC5hZGRLZXlzKChyZXNwb25zZS5kYXRhIGFzIEhhc0tleUdyYXBoKS5rZXlHcmFwaCk7XG4gICAgICBkZWxldGUgcmVzcG9uc2UuZGF0YS5rZXlHcmFwaDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzSW5jbHVkZUtleUdyYXBoKGluY2x1ZGVLZXlHcmFwaCkge1xuICAgIC8vIERlZmF1bHQgdG8gdHJ1ZSB3aGVuIG51bGwgb3IgdW5kZWZpbmVkLlxuICAgIHJldHVybiBpbmNsdWRlS2V5R3JhcGggPT0gbnVsbCA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIGxyTXV0YXRlPFQxLCBUVmFyaWFibGVzMSwgVDIsIFRWYXJpYWJsZXMyPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQxLCBUVmFyaWFibGVzMT4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPlxuICAgIF0sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8W1QxLCBUMl0+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQxLCBUVmFyaWFibGVzMSwgVDIsIFRWYXJpYWJsZXMyLCBUMywgVFZhcmlhYmxlczM+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDEsIFRWYXJpYWJsZXMxPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMiwgVFZhcmlhYmxlczI+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQzLCBUVmFyaWFibGVzMz5cbiAgICBdLFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzXT47XG5cbiAgYXN5bmMgbHJNdXRhdGU8XG4gICAgVDEsXG4gICAgVFZhcmlhYmxlczEsXG4gICAgVDIsXG4gICAgVFZhcmlhYmxlczIsXG4gICAgVDMsXG4gICAgVFZhcmlhYmxlczMsXG4gICAgVDQsXG4gICAgVFZhcmlhYmxlczRcbiAgPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQxLCBUVmFyaWFibGVzMT4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMywgVFZhcmlhYmxlczM+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQ0LCBUVmFyaWFibGVzND5cbiAgICBdLFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzLCBUNF0+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFxuICAgIFQxLFxuICAgIFRWYXJpYWJsZXMxLFxuICAgIFQyLFxuICAgIFRWYXJpYWJsZXMyLFxuICAgIFQzLFxuICAgIFRWYXJpYWJsZXMzLFxuICAgIFQ0LFxuICAgIFRWYXJpYWJsZXM0LFxuICAgIFQ1LFxuICAgIFRWYXJpYWJsZXM1XG4gID4oXG4gICAgbHJNdXRhdGlvbnM6IFtcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMSwgVFZhcmlhYmxlczE+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQyLCBUVmFyaWFibGVzMj4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDMsIFRWYXJpYWJsZXMzPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUNCwgVFZhcmlhYmxlczQ+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQ1LCBUVmFyaWFibGVzNT5cbiAgICBdLFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcblxuICBhc3luYyBsck11dGF0ZTxULCBUVmFyaWFibGVzID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgbHJNdXRhdGlvbjogTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPlxuICApOiBQcm9taXNlPFQ+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBsck11dGF0aW9uczpcbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+W11cbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApO1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBsck11dGF0aW9uczpcbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+W11cbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApIHtcbiAgICBpZiAobHJNdXRhdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgY29uc3QgbWVyZ2VkID0gTHJNZXJnZWRNdXRhdGlvbi5jcmVhdGUoYXdhaXQgUHJvbWlzZS5hbGwobHJNdXRhdGlvbnMpKTtcbiAgICAgIGF3YWl0IHRoaXMubHJNdXRhdGVJbXBsKG1lcmdlZCwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gbWVyZ2VkLnByb21pc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgbHJNdXRhdGlvbnM7XG4gICAgICBhd2FpdCB0aGlzLmxyTXV0YXRlSW1wbChyZXNvbHZlZCwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmVzb2x2ZWQucHJvbWlzZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXM+ID0gTWF5QXN5bmM8XG4gIExyTXV0YXRpb25CYXNlPFQsIFRWYXJpYWJsZXM+XG4+O1xuIl19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FwaS9sci1ncmFwaHFsL2xyLWdyYXBocWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUW5ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRFLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFHeEQsa0JBQWtCO0FBQ2xCLDZFQUE2RTtBQUM3RSxNQUFNLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUE7O0lBRTFDLGFBQWE7O0NBRWhCLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBYyxDQUFDO0FBRTNDLE1BQU0sOEJB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QyxDQUFDO2dCQUMzQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDekI7UUFDSCxDQUFDO0tBQUE7Q0FDRixDQUFBOzs7WUE5T0EsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUExRm9CLE1BQU07WUFRbEIsTUFBTTtZQUtOLGVBQWU7WUFXRyxxQkFBcUI7O0FBbUVuQyxnQkFBZ0I7SUFONUIsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLGdCQUFnQixDQTJPNUI7U0EzT1ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGZXRjaFBvbGljeSxcbiAgTXV0YXRpb25PcHRpb25zLFxuICBPcGVyYXRpb25WYXJpYWJsZXMsXG4gIFF1ZXJ5T3B0aW9ucyxcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBNdXRhdGlvbkJhc2VPcHRpb25zIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZS93YXRjaFF1ZXJ5T3B0aW9ucyc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBGaWVsZE5vZGUgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuaW1wb3J0ICogYXMgZ3FsUHJpbnRlciBmcm9tICdncmFwaHFsL2xhbmd1YWdlL3ByaW50ZXInO1xuaW1wb3J0ICogYXMgbG9kYXNoIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi8uLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IGdldE11dGF0aW9uLCBnZXRRdWVyeSwgVHlwZWREb2N1bWVudE5vZGUgfSBmcm9tICcuLi8uLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQge1xuICBoYW5kbGVBcG9sbG9FcnJvcixcbiAgS2NCYWRTdGF0ZUV4Y2VwdGlvbixcbiAgS2NVbnN1cHBvcnRlZEV4Y2VwdGlvbixcbn0gZnJvbSAnLi4vLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IEZldGNoS2V5R3JhcGhGaWVsZCwgS2V5R3JhcGhGaWVsZCB9IGZyb20gJy4uLy4uL19jb21tb24vcXVlcmllcy5ncWwnO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi8uLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgTWF5QXN5bmMgfSBmcm9tICcuLi8uLi9fY29tbW9uL3R5cGVzJztcbmltcG9ydCB7IFByb2Nlc3Nvck9wdGlvbnMsIFF1ZXJ5UHJvY2Vzc29yU2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5LXByb2Nlc3Nvcic7XG5pbXBvcnQgeyBMck1lcmdlZE11dGF0aW9uIH0gZnJvbSAnLi9sci1tZXJnZWQtbXV0YXRpb24nO1xuaW1wb3J0IHsgTHJNdXRhdGlvbkJhc2UgfSBmcm9tICcuL2xyLW11dGF0aW9uLWJhc2UnO1xuXG4vLyBEYXRhIHN0cnVjdHVyZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBrZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uID0gZ2V0UXVlcnkoZ3FsYFxucXVlcnkge1xuICAke0tleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbmNvbnN0IGZldGNoS2V5R3JhcGhGaWVsZEFzdFNlbGVjdGlvbiA9IGdldFF1ZXJ5KGdxbGBcbnF1ZXJ5IHtcbiAgJHtGZXRjaEtleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbi8vIGNvbnN0IGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9rZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uKSBhcyBGaWVsZE5vZGU7XG4vLyBjb25zdCBmZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9mZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24pIGFzIEZpZWxkTm9kZTtcblxuZXhwb3J0IGludGVyZmFjZSBMclF1ZXJ5T3B0aW9uczxULCBUVmFyaWFibGVzPlxuICBleHRlbmRzIFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzPiB7XG4gIHF1ZXJ5OiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbi8vIENvcGllZCBmcm9tIE11dGF0aW9uT3B0aW9uc1xuLy8gUmVtb3ZlZCByZXF1aXJlZCBmaWVsZCBcIm11dGF0aW9uXCIuIFRoZSBcInZhcmlhYmxlc1wiIGZpZWxkIGlzIHN0aWxsIHRoZXJlXG4vLyBidXQgaXQncyBkeW5hbWljYWxseSBjaGVja2VkLlxuZXhwb3J0IGludGVyZmFjZSBMck11dGF0aW9uT3B0aW9uczxcbiAgVCA9IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH0sXG4gIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXNcbj4gZXh0ZW5kcyBNdXRhdGlvbkJhc2VPcHRpb25zPFQsIFRWYXJpYWJsZXM+IHtcbiAgY29udGV4dD86IGFueTtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbn1cblxuLy8gVGhlIFwibXV0YXRpb25cIiBhbmQgXCJ2YXJpYWJsZVwiIGZpZWxkcyBhcmUgaW5oZXJpdGVkIGJ1dCBkeW5hbWljYWxseSBwcm9oaWJpdGVkIGJlY2F1c2Vcbi8vIHRoZXkgYXJlIHByb3ZpZGVkIGJ5IExyTXV0YXRpb24uIEl0J3MgYSBiaXQgdW5jbGVhbiBidXQgYXZvaWRzIGEgbG90IG9mIHR5cGluZyB3b3JrLlxuZXhwb3J0IGludGVyZmFjZSBMckFwb2xsb011dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzID0gT3BlcmF0aW9uVmFyaWFibGVzPlxuICBleHRlbmRzIE11dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPiB7XG4gIG11dGF0aW9uOiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbmludGVyZmFjZSBMckdyYXBoUUxTZXJ2aWNlU3RhdHMge1xuICBxdWVyeUNvdW50OiBudW1iZXI7XG4gIG11dGF0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExyR3JhcGhRTFNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRzOiBMckdyYXBoUUxTZXJ2aWNlU3RhdHMgPSB7XG4gICAgcXVlcnlDb3VudDogMCxcbiAgICBtdXRhdGlvbkNvdW50OiAwLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBhcG9sbG86IEFwb2xsbyxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdWVyeVByb2Nlc3NvcjogUXVlcnlQcm9jZXNzb3JTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBxdWVyeTxULCBWID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgb3B0aW9uczogTHJRdWVyeU9wdGlvbnM8VCwgVj5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgLy8gTWFrZSBjb3BpZXMgdG8gYXZvaWQgc2lkZSBlZmZlY3QuXG4gICAgb3B0aW9ucyA9IGxvZGFzaC5jbG9uZURlZXAob3B0aW9ucyk7XG5cbiAgICAvLyBBcHBlbmQgdGhlIGtleSBncmFwaCBxdWVyeVxuICAgIGNvbnN0IGluY2x1ZGVLZXlHcmFwaCA9IHRoaXMuaXNJbmNsdWRlS2V5R3JhcGgob3B0aW9ucy5pbmNsdWRlS2V5R3JhcGgpO1xuICAgIGlmIChpbmNsdWRlS2V5R3JhcGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldFF1ZXJ5KG9wdGlvbnMucXVlcnkpO1xuICAgICAgb3BlcmF0aW9uLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gW1xuICAgICAgICAuLi5vcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMsXG4gICAgICAgIGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm5hbWUpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldFF1ZXJ5KG9wdGlvbnMucXVlcnkpO1xuICAgICAgKG9wZXJhdGlvbi5uYW1lIGFzIGFueSkgPSB7XG4gICAgICAgIGtpbmQ6ICdOYW1lJyxcbiAgICAgICAgdmFsdWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmFwb2xsby5xdWVyeTxULCBWPihvcHRpb25zKS50b1Byb21pc2UoKTtcblxuICAgIHRoaXMuc3RhdHMucXVlcnlDb3VudCsrO1xuXG4gICAgaGFuZGxlQXBvbGxvRXJyb3IocmVzcG9uc2UuZXJyb3JzKTtcblxuICAgIHRoaXMuYWRkS2V5cyhyZXNwb25zZSk7XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5xdWVyeVByb2Nlc3Nvci5wcm9jZXNzUXVlcnkoXG4gICAgICByZXNwb25zZS5kYXRhLFxuICAgICAgb3B0aW9ucy5wcm9jZXNzb3JPcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsck11dGF0ZUltcGwobHJNdXRhdGlvbiwgb3B0aW9ucz8pIHtcbiAgICBpZiAob3B0aW9ucz8udmFyaWFibGVzKSB7XG4gICAgICB0aHJvdyBuZXcgS2NVbnN1cHBvcnRlZEV4Y2VwdGlvbihcbiAgICAgICAgJ1Vuc3VwcG9ydGVkIGZpZWxkOiBcIm9wdGlvbnMudmFyaWFibGVzXCInXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChsck11dGF0aW9uLmV4ZWN1dGVkKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbihcbiAgICAgICAgJ0xyTXV0YXRpb24gaGFzIGFscmVhZHkgZXhlY3V0ZWQuIExyTXV0YXRpb24gY2FuIG9ubHkgYmUgdXNlZCBvbmNlIGluIGEgbHJNdXRhdGUoKSBjYWxsLiBDcmVhdGUgbmV3IGluc3RhbmNlcyBvZiBMck11dGF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbHJNdXRhdGlvbi5zZXRFeGVjdXRlZCgpO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBvbGxvTXV0YXRlKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAuLi5sck11dGF0aW9uLmxyTXV0YXRpb25EYXRhLFxuICAgIH0pXG4gICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgIC8vIFJlc29sdmUgcHJvbWlzZXMgc2V0IG9uIHRoZSBsck11dGF0aW9uIHJhdGhlciB0aGFuIHRoZSBsck11dGF0ZSgpIGNhbGwuXG4gICAgICAgIGxyTXV0YXRpb24ucmVzb2x2ZShyZXMpO1xuICAgICAgICAvLyBTdGlsbCBuZWVkIHRvIHJldHVybiB2YWx1ZSB0byB0aGUgcHJvbWlzZSB3YWl0aW5nIGZvciB0aGUgcmVzdWx0cyBvZiBsck11dGF0ZSgpLlxuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgbHJNdXRhdGlvbi5yZWplY3QoZXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgYXBvbGxvTXV0YXRlPFQgZXh0ZW5kcyBhbnksIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBvcHRpb25zOiBMckFwb2xsb011dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPlxuICApOiBQcm9taXNlPFQ+IHtcbiAgICAvLyBNYWtlIGNvcGllcyB0byBhdm9pZCBzaWRlIGVmZmVjdC5cbiAgICBvcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG11dGF0aW9uOiBsb2Rhc2guY2xvbmVEZWVwKG9wdGlvbnMubXV0YXRpb24pLFxuICAgIH07XG5cbiAgICAvLyBBcHBlbmQgdGhlIGtleSBncmFwaCBxdWVyeVxuICAgIGNvbnN0IGluY2x1ZGVLZXlHcmFwaCA9IHRoaXMuaXNJbmNsdWRlS2V5R3JhcGgob3B0aW9ucy5pbmNsdWRlS2V5R3JhcGgpO1xuXG4gICAgaWYgKGluY2x1ZGVLZXlHcmFwaCkge1xuICAgICAgY29uc3Qgb3BlcmF0aW9uID0gZ2V0TXV0YXRpb24ob3B0aW9ucy5tdXRhdGlvbik7XG4gICAgICBvcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMgPSBbXG4gICAgICAgIC4uLm9wZXJhdGlvbi5zZWxlY3Rpb25TZXQuc2VsZWN0aW9ucyxcbiAgICAgICAgZmV0Y2hLZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICBjb25zdCBvcGVyYXRpb24gPSBnZXRNdXRhdGlvbihvcHRpb25zLm11dGF0aW9uKTtcbiAgICAgIChvcGVyYXRpb24ubmFtZSBhcyBhbnkpID0ge1xuICAgICAgICBraW5kOiAnTmFtZScsXG4gICAgICAgIHZhbHVlOiBvcHRpb25zLm5hbWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEZvcm1hdCB0byBzdHJpbmcgYW5kIHBhcnNlIGFnYWluLiBUaGlzIGFsbG93cyB0aGUgXCJsb2NcIjogeyBcInN0YXJ0XCI6IC4uLiB9XG4gICAgLy8gcGFydCBvZiB0aGUgRG9jdW1lbnROb2RlIHRvIGJlIGNvcnJlY3RseSBzZXR1cC4gSXQncyBleHRyYSBwcm9jZXNzaW5nXG4gICAgLy8gaW4gc2VyaWFsaXNpbmcgYW5kIHBhcnNpbmcsIGJ1dCBwcm9iYWJseSBtaW5pbWFsIG92ZXJoZWFkLlxuICAgIG9wdGlvbnMubXV0YXRpb24gPSBncWwoZ3FsUHJpbnRlci5wcmludChvcHRpb25zLm11dGF0aW9uKSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYXBvbGxvLm11dGF0ZTxUPihvcHRpb25zKS50b1Byb21pc2UoKTtcblxuICAgIHRoaXMuc3RhdHMubXV0YXRpb25Db3VudCsrO1xuXG4gICAgaGFuZGxlQXBvbGxvRXJyb3IocmVzcG9uc2UuZXJyb3JzKTtcblxuICAgIHRoaXMuYWRkS2V5cyhyZXNwb25zZSk7XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5xdWVyeVByb2Nlc3Nvci5wcm9jZXNzUXVlcnkoXG4gICAgICByZXNwb25zZS5kYXRhLFxuICAgICAgb3B0aW9ucy5wcm9jZXNzb3JPcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdHNTbmFwc2hvdCgpOiBMckdyYXBoUUxTZXJ2aWNlU3RhdHMge1xuICAgIHJldHVybiBsb2Rhc2guY2xvbmVEZWVwKHRoaXMuc3RhdHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRLZXlzKHJlc3BvbnNlKSB7XG4gICAgaWYgKChyZXNwb25zZS5kYXRhIGFzIEhhc0tleUdyYXBoKS5rZXlHcmFwaCkge1xuICAgICAgdGhpcy5rZXlHcmFwaC5hZGRLZXlzKChyZXNwb25zZS5kYXRhIGFzIEhhc0tleUdyYXBoKS5rZXlHcmFwaCk7XG4gICAgICBkZWxldGUgcmVzcG9uc2UuZGF0YS5rZXlHcmFwaDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzSW5jbHVkZUtleUdyYXBoKGluY2x1ZGVLZXlHcmFwaCkge1xuICAgIC8vIERlZmF1bHQgdG8gdHJ1ZSB3aGVuIG51bGwgb3IgdW5kZWZpbmVkLlxuICAgIHJldHVybiBpbmNsdWRlS2V5R3JhcGggPT0gbnVsbCA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIGxyTXV0YXRlPFQxLCBUVmFyaWFibGVzMSwgVDIsIFRWYXJpYWJsZXMyPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQxLCBUVmFyaWFibGVzMT4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPlxuICAgIF0sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8W1QxLCBUMl0+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQxLCBUVmFyaWFibGVzMSwgVDIsIFRWYXJpYWJsZXMyLCBUMywgVFZhcmlhYmxlczM+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDEsIFRWYXJpYWJsZXMxPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMiwgVFZhcmlhYmxlczI+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQzLCBUVmFyaWFibGVzMz5cbiAgICBdLFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzXT47XG5cbiAgYXN5bmMgbHJNdXRhdGU8XG4gICAgVDEsXG4gICAgVFZhcmlhYmxlczEsXG4gICAgVDIsXG4gICAgVFZhcmlhYmxlczIsXG4gICAgVDMsXG4gICAgVFZhcmlhYmxlczMsXG4gICAgVDQsXG4gICAgVFZhcmlhYmxlczRcbiAgPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQxLCBUVmFyaWFibGVzMT4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMywgVFZhcmlhYmxlczM+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQ0LCBUVmFyaWFibGVzND5cbiAgICBdLFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzLCBUNF0+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFxuICAgIFQxLFxuICAgIFRWYXJpYWJsZXMxLFxuICAgIFQyLFxuICAgIFRWYXJpYWJsZXMyLFxuICAgIFQzLFxuICAgIFRWYXJpYWJsZXMzLFxuICAgIFQ0LFxuICAgIFRWYXJpYWJsZXM0LFxuICAgIFQ1LFxuICAgIFRWYXJpYWJsZXM1XG4gID4oXG4gICAgbHJNdXRhdGlvbnM6IFtcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMSwgVFZhcmlhYmxlczE+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQyLCBUVmFyaWFibGVzMj4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDMsIFRWYXJpYWJsZXMzPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUNCwgVFZhcmlhYmxlczQ+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQ1LCBUVmFyaWFibGVzNT5cbiAgICBdLFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcblxuICBhc3luYyBsck11dGF0ZTxULCBUVmFyaWFibGVzID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgbHJNdXRhdGlvbjogTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPlxuICApOiBQcm9taXNlPFQ+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBsck11dGF0aW9uczpcbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+W11cbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApO1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBsck11dGF0aW9uczpcbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+W11cbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApIHtcbiAgICBpZiAobHJNdXRhdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgY29uc3QgbWVyZ2VkID0gTHJNZXJnZWRNdXRhdGlvbi5jcmVhdGUoYXdhaXQgUHJvbWlzZS5hbGwobHJNdXRhdGlvbnMpKTtcbiAgICAgIGF3YWl0IHRoaXMubHJNdXRhdGVJbXBsKG1lcmdlZCwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gbWVyZ2VkLnByb21pc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgbHJNdXRhdGlvbnM7XG4gICAgICBhd2FpdCB0aGlzLmxyTXV0YXRlSW1wbChyZXNvbHZlZCwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmVzb2x2ZWQucHJvbWlzZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXM+ID0gTWF5QXN5bmM8XG4gIExyTXV0YXRpb25CYXNlPFQsIFRWYXJpYWJsZXM+XG4+O1xuIl19
@@ -1,7 +1,7 @@
1
1
  import * as lodash from 'lodash';
2
2
  import * as ast from '../../_common/ast';
3
3
  import { getAliasOrName, getFragments, getMutation } from '../../_common/ast';
4
- import { LrBadLogicException, LrUnsupportedException, } from '../../_common/exceptions';
4
+ import { KcBadLogicException, KcUnsupportedException, } from '../../_common/exceptions';
5
5
  import { LrMutation } from './lr-mutation';
6
6
  import { LrMutationBase } from './lr-mutation-base';
7
7
  const lrMergedMutationDoc = {
@@ -40,7 +40,7 @@ export class LrMergedMutation extends LrMutationBase {
40
40
  const ret = new Set();
41
41
  const addOrThrow = (item) => {
42
42
  if (ret.has(item)) {
43
- throw new LrBadLogicException('Classes that are derived from LrMutationBase can not be used more than once in a merged mutation.');
43
+ throw new KcBadLogicException('Classes that are derived from LrMutationBase can not be used more than once in a merged mutation.');
44
44
  }
45
45
  ret.add(item);
46
46
  };
@@ -52,7 +52,7 @@ export class LrMergedMutation extends LrMutationBase {
52
52
  lrMutation.descendants.forEach((t) => addOrThrow(t));
53
53
  }
54
54
  else {
55
- throw new LrUnsupportedException(`LrMergeMutation can not handle class: ${lrMutation.constructor.name}`);
55
+ throw new KcUnsupportedException(`LrMergeMutation can not handle class: ${lrMutation.constructor.name}`);
56
56
  }
57
57
  });
58
58
  return ret;
@@ -208,4 +208,4 @@ export class LrMergedMutation extends LrMutationBase {
208
208
  };
209
209
  }
210
210
  }
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItbWVyZ2VkLW11dGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FwaS9sci1ncmFwaHFsL2xyLW1lcmdlZC1tdXRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsTUFBTSxtQkFBbUIsR0FBaUI7SUFDeEMsSUFBSSxFQUFFLFVBQVU7SUFDaEIsV0FBVyxFQUFFO1FBQ1g7WUFDRSxJQUFJLEVBQUUscUJBQXFCO1lBQzNCLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsa0JBQWtCO2FBQzFCO1lBQ0QsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixVQUFVLEVBQUUsRUFBRTtZQUNkLFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUUsY0FBYztnQkFDcEIsVUFBVSxFQUFFLEVBQUU7YUFDZjtTQUNGO0tBQ0Y7Q0FNRixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFvQixTQUFRLGNBQWlCO0lBSXhELFlBQTRCLFdBQWtDO1FBQzVELEtBQUssRUFBRSxDQUFDO1FBRGtCLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUc1RCxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVB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QyxDQUFDO2FBQ2xEO1lBRUQsNkJBQTZCO1lBQzdCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxlQUFlLEdBQUc7Z0JBQ2hCLEdBQUcsZUFBZTtnQkFDbEIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQzthQUNyRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGNBQWMsR0FBaUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRCxpQ0FBaUM7UUFDakMsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2xELHVCQUF1QjtRQUN2Qiw0Q0FBNEM7UUFDM0MsWUFBb0IsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUNoRSx1QkFBdUI7UUFDdEIsY0FBc0IsQ0FBQyxXQUFXLEdBQUc7WUFDcEMsR0FBRyxjQUFjLENBQUMsV0FBVztZQUM3QixHQUFHLGVBQWU7U0FDbkIsQ0FBQztRQUVGLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUUsZUFBZTtZQUMxQixRQUFRO1NBQ1QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7XG4gIEFyZ3VtZW50Tm9kZSxcbiAgRG9jdW1lbnROb2RlLFxuICBGaWVsZE5vZGUsXG4gIEZyYWdtZW50RGVmaW5pdGlvbk5vZGUsXG4gIEZyYWdtZW50U3ByZWFkTm9kZSxcbiAgU2VsZWN0aW9uTm9kZSxcbiAgU2VsZWN0aW9uU2V0Tm9kZSxcbiAgVmFyaWFibGVEZWZpbml0aW9uTm9kZSxcbn0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgKiBhcyBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIGFzdCBmcm9tICcuLi8uLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQgeyBnZXRBbGlhc09yTmFtZSwgZ2V0RnJhZ21lbnRzLCBnZXRNdXRhdGlvbiB9IGZyb20gJy4uLy4uL19jb21tb24vYXN0JztcbmltcG9ydCB7XG4gIExyQmFkTG9naWNFeGNlcHRpb24sXG4gIExyVW5zdXBwb3J0ZWRFeGNlcHRpb24sXG59IGZyb20gJy4uLy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBMck11dGF0aW9uIH0gZnJvbSAnLi9sci1tdXRhdGlvbic7XG5pbXBvcnQgeyBMck11dGF0aW9uQmFzZSB9IGZyb20gJy4vbHItbXV0YXRpb24tYmFzZSc7XG5cbmNvbnN0IGxyTWVyZ2VkTXV0YXRpb25Eb2M6IERvY3VtZW50Tm9kZSA9IHtcbiAga2luZDogJ0RvY3VtZW50JyxcbiAgZGVmaW5pdGlvbnM6IFtcbiAgICB7XG4gICAgICBraW5kOiAnT3BlcmF0aW9uRGVmaW5pdGlvbicsXG4gICAgICBvcGVyYXRpb246ICdtdXRhdGlvbicsXG4gICAgICBuYW1lOiB7XG4gICAgICAgIGtpbmQ6ICdOYW1lJyxcbiAgICAgICAgdmFsdWU6ICdsck1lcmdlZE11dGF0aW9uJyxcbiAgICAgIH0sXG4gICAgICB2YXJpYWJsZURlZmluaXRpb25zOiBbXSxcbiAgICAgIGRpcmVjdGl2ZXM6IFtdLFxuICAgICAgc2VsZWN0aW9uU2V0OiB7XG4gICAgICAgIGtpbmQ6ICdTZWxlY3Rpb25TZXQnLFxuICAgICAgICBzZWxlY3Rpb25zOiBbXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgLy8gVE9ETyBXaGF0IHRvIGRvIGFib3V0IHRoZXNlPyBTZXJpYWxpc2UgYW5kIHJlcGFyc2U/XG4gIC8vIFwibG9jXCI6IHtcbiAgLy8gICBcInN0YXJ0XCI6IDAsXG4gIC8vICAgXCJlbmRcIjogMjA0XG4gIC8vIH1cbn07XG5cbmV4cG9ydCBjbGFzcyBMck1lcmdlZE11dGF0aW9uPFQ+IGV4dGVuZHMgTHJNdXRhdGlvbkJhc2U8VD4ge1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY2VuZGFudHM6IFNldDxMck11dGF0aW9uQmFzZTxhbnk+PjtcbiAgcHJvdGVjdGVkIHByZWZpeGVzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbHJNdXRhdGlvbnM6IExyTXV0YXRpb25CYXNlPGFueT5bXSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25zdCB7IG11dGF0aW9uLCB2YXJpYWJsZXMsIHByZWZpeGVzIH0gPSB0aGlzLm1lcmdlKCk7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG11dGF0aW9uO1xuICAgIHRoaXMudmFyaWFibGVzID0gdmFyaWFibGVzO1xuICAgIHRoaXMucHJlZml4ZXMgPSBwcmVmaXhlcztcbiAgICB0aGlzLmRlc2NlbmRhbnRzID0gdGhpcy5nZXREZXNjZW5kYW50cygpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZTxUMSwgVDI+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uQmFzZTxUMT4gfCBMck1lcmdlZE11dGF0aW9uPFQxPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQyPiB8IExyTWVyZ2VkTXV0YXRpb248VDI+XG4gICAgXVxuICApOiBMck1lcmdlZE11dGF0aW9uPFtUMSwgVDJdPjtcblxuICBzdGF0aWMgY3JlYXRlPFQxLCBUMiwgVDM+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uQmFzZTxUMT4gfCBMck1lcmdlZE11dGF0aW9uPFQxPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQyPiB8IExyTWVyZ2VkTXV0YXRpb248VDI+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDM+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMz5cbiAgICBdXG4gICk6IExyTWVyZ2VkTXV0YXRpb248W1QxLCBUMiwgVDNdPjtcblxuICBzdGF0aWMgY3JlYXRlPFQxLCBUMiwgVDMsIFQ0PihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbkJhc2U8VDE+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMT4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUMj4gfCBMck1lcmdlZE11dGF0aW9uPFQyPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQzPiB8IExyTWVyZ2VkTXV0YXRpb248VDM+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDQ+IHwgTHJNZXJnZWRNdXRhdGlvbjxUND5cbiAgICBdXG4gICk6IExyTWVyZ2VkTXV0YXRpb248W1QxLCBUMiwgVDMsIFQ0XT47XG5cbiAgc3RhdGljIGNyZWF0ZTxUMSwgVDIsIFQzLCBUNCwgVDU+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uQmFzZTxUMT4gfCBMck1lcmdlZE11dGF0aW9uPFQxPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQyPiB8IExyTWVyZ2VkTXV0YXRpb248VDI+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDM+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMz4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUND4gfCBMck1lcmdlZE11dGF0aW9uPFQ0PixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQ1PiB8IExyTWVyZ2VkTXV0YXRpb248VDU+XG4gICAgXVxuICApOiBMck1lcmdlZE11dGF0aW9uPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcblxuICBzdGF0aWMgY3JlYXRlPFQ+KGxyTXV0YXRpb25zOiBMck11dGF0aW9uQmFzZTxUPltdKTogTHJNZXJnZWRNdXRhdGlvbjxUW10+O1xuXG4gIHN0YXRpYyBjcmVhdGUobHJNdXRhdGlvbnM6IExyTXV0YXRpb25CYXNlPGFueT5bXSk6IExyTWVyZ2VkTXV0YXRpb248YW55W10+O1xuXG4gIHN0YXRpYyBjcmVhdGUobHJNdXRhdGlvbnM6IExyTXV0YXRpb25CYXNlPGFueT5bXSkge1xuICAgIHJldHVybiBuZXcgTHJNZXJnZWRNdXRhdGlvbihsck11dGF0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldERlc2NlbmRhbnRzKCkge1xuICAgIGNvbnN0IHJldCA9IG5ldyBTZXQ8THJNdXRhdGlvbkJhc2U8YW55Pj4oKTtcblxuICAgIGNvbnN0IGFkZE9yVGhyb3cgPSAoaXRlbSkgPT4ge1xuICAgICAgaWYgKHJldC5oYXMoaXRlbSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IExyQmFkTG9naWNFeGNlcHRpb24oXG4gICAgICAgICAgJ0NsYXNzZXMgdGhhdCBhcmUgZGVyaXZlZCBmcm9tIExyTXV0YXRpb25CYXNlIGNhbiBub3QgYmUgdXNlZCBtb3JlIHRoYW4gb25jZSBpbiBhIG1lcmdlZCBtdXRhdGlvbi4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldC5hZGQoaXRlbSk7XG4gICAgfTtcblxuICAgIHRoaXMubHJNdXRhdGlvbnMuZm9yRWFjaCgobHJNdXRhdGlvbikgPT4ge1xuICAgICAgaWYgKGxyTXV0YXRpb24gaW5zdGFuY2VvZiBMck11dGF0aW9uKSB7XG4gICAgICAgIGFkZE9yVGhyb3cobHJNdXRhdGlvbik7XG4gICAgICB9IGVsc2UgaWYgKGxyTXV0YXRpb24gaW5zdGFuY2VvZiBMck1lcmdlZE11dGF0aW9uKSB7XG4gICAgICAgIGxyTXV0YXRpb24uZGVzY2VuZGFudHMuZm9yRWFjaCgodCkgPT4gYWRkT3JUaHJvdyh0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgTHJVbnN1cHBvcnRlZEV4Y2VwdGlvbihcbiAgICAgICAgICBgTHJNZXJnZU11dGF0aW9uIGNhbiBub3QgaGFuZGxlIGNsYXNzOiAke2xyTXV0YXRpb24uY29uc3RydWN0b3IubmFtZX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcmVzb2x2ZSh2YWx1ZTogYW55KSB7XG4gICAgLy8gUmVzb2x2ZXMgYW55IHByb21pc2VzIHdhaXRpbmcgZm9yIHRoZSBjaGlsZCBtdXRhdGlvbnNcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubHJNdXRhdGlvbnMubGVuZ3RoOyArK2kpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMucHJlZml4ZXNbaV07XG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgcHJlZml4IGFuZCByZXNvbHZlIGNoaWxkIG11dGF0aW9uLlxuICAgICAgY29uc3QgcmVzOiBhbnkgPSB7fTtcbiAgICAgIGZvciAoY29uc3Qga2V5MiBpbiB2YWx1ZSkge1xuICAgICAgICBpZiAoa2V5Mi5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbEtleSA9IGtleTIuc2xpY2UocHJlZml4Lmxlbmd0aCk7XG4gICAgICAgICAgcmVzW29yaWdpbmFsS2V5XSA9IHZhbHVlW2tleTJdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmxyTXV0YXRpb25zW2ldLnJlc29sdmUocmVzKTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlcyB0byB0aGUgcmVzdWx0IG9mIGNoaWxkcmVuXG4gICAgUHJvbWlzZS5hbGwodGhpcy5sck11dGF0aW9ucy5tYXAoKG0pID0+IG0ucHJvbWlzZSkpLnRoZW4oXG4gICAgICAoY2hpbGRWYWx1ZXM6IGFueSkgPT4ge1xuICAgICAgICAvLyBSZXNvbHZlcyBhbnkgcHJvbWlzZXMgd2FpdGluZyBmb3IgdGhlIGN1cnJlbnQgbWVyZ2VkIG11dGF0aW9uXG4gICAgICAgIHN1cGVyLnJlc29sdmUoY2hpbGRWYWx1ZXMpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICByZWplY3QocmVhc29uPzogYW55KSB7XG4gICAgc3VwZXIucmVqZWN0KHJlYXNvbik7XG4gICAgdGhpcy5sck11dGF0aW9ucy5mb3JFYWNoKChsck11dGF0aW9uKSA9PiBsck11dGF0aW9uLnJlamVjdChyZWFzb24pKTtcbiAgfVxuXG4gIHNldEV4ZWN1dGVkKCkge1xuICAgIHN1cGVyLnNldEV4ZWN1dGVkKCk7XG4gICAgdGhpcy5sck11dGF0aW9ucy5mb3JFYWNoKChsck11dGF0aW9uKSA9PiBsck11dGF0aW9uLnNldEV4ZWN1dGVkKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5hbWVWYXJpYWJsZURlZmluaXRpb24odmFyRGVmOiBWYXJpYWJsZURlZmluaXRpb25Ob2RlLCBwcmVmaXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udmFyRGVmLFxuICAgICAgdmFyaWFibGU6IHtcbiAgICAgICAgLi4udmFyRGVmLnZhcmlhYmxlLFxuICAgICAgICBuYW1lOiBhc3QubmFtZShwcmVmaXggKyB2YXJEZWYudmFyaWFibGUubmFtZS52YWx1ZSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZVZhcmlhYmxlRGVmaW5pdGlvbnMoXG4gICAgdmFyRGVmczogUmVhZG9ubHlBcnJheTxWYXJpYWJsZURlZmluaXRpb25Ob2RlPixcbiAgICBwcmVmaXhcbiAgKSB7XG4gICAgcmV0dXJuIHZhckRlZnMubWFwKCh2YXJEZWYpID0+XG4gICAgICB0aGlzLnJlbmFtZVZhcmlhYmxlRGVmaW5pdGlvbih2YXJEZWYsIHByZWZpeClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5hbWVBcmd1bWVudChhcmc6IEFyZ3VtZW50Tm9kZSwgcHJlZml4KSB7XG4gICAgaWYgKGFyZy52YWx1ZS5raW5kICE9PSAnVmFyaWFibGUnKSB7XG4gICAgICByZXR1cm4gYXJnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hcmcsXG4gICAgICB2YWx1ZToge1xuICAgICAgICAuLi5hcmcudmFsdWUsXG4gICAgICAgIG5hbWU6IGFzdC5uYW1lKHByZWZpeCArIGFyZy52YWx1ZS5uYW1lLnZhbHVlKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lRmllbGQoc2VsZWN0aW9uOiBGaWVsZE5vZGUsIHByZWZpeCk6IEZpZWxkTm9kZSB7XG4gICAgLy8gT25seSBoYW5kbGluZyB0eXBlIEZpZWxkXG4gICAgaWYgKHNlbGVjdGlvbi5raW5kICE9PSAnRmllbGQnKSB7XG4gICAgICByZXR1cm4gc2VsZWN0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGFsaWFzID0gcHJlZml4ICsgZ2V0QWxpYXNPck5hbWUoc2VsZWN0aW9uKTtcbiAgICBjb25zdCBhcmdzID0gc2VsZWN0aW9uLmFyZ3VtZW50cy5tYXAoKGFyZykgPT5cbiAgICAgIHRoaXMucmVuYW1lQXJndW1lbnQoYXJnLCBwcmVmaXgpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zZWxlY3Rpb24sXG4gICAgICBhbGlhczoge1xuICAgICAgICBraW5kOiAnTmFtZScsXG4gICAgICAgIHZhbHVlOiBhbGlhcyxcbiAgICAgIH0sXG4gICAgICBhcmd1bWVudHM6IGFyZ3MsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lRnJhZ21lbnRTcHJlYWQoXG4gICAgc2VsZWN0aW9uOiBGcmFnbWVudFNwcmVhZE5vZGUsXG4gICAgcHJlZml4XG4gICk6IEZyYWdtZW50U3ByZWFkTm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNlbGVjdGlvbixcbiAgICAgIG5hbWU6IGFzdC5uYW1lKHByZWZpeCArIHNlbGVjdGlvbi5uYW1lLnZhbHVlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzU2VsZWN0aW9uKHNlbGVjdGlvbjogU2VsZWN0aW9uTm9kZSwgcHJlZml4KTogU2VsZWN0aW9uTm9kZSB7XG4gICAgc3dpdGNoIChzZWxlY3Rpb24ua2luZCkge1xuICAgICAgY2FzZSAnRnJhZ21lbnRTcHJlYWQnOlxuICAgICAgICByZXR1cm4gdGhpcy5yZW5hbWVGcmFnbWVudFNwcmVhZChzZWxlY3Rpb24sIHByZWZpeCk7XG4gICAgICBjYXNlICdGaWVsZCc6XG4gICAgICAgIC8vIENvbnRpbnVlIHRvIHByb2Nlc3MgY2hpbGRyZW4gZm9yIG5lc3RlZCBzZWxlY3Rpb25zLlxuICAgICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvblNldCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zZWxlY3Rpb24sXG4gICAgICAgICAgICBzZWxlY3Rpb25TZXQ6IHRoaXMucHJvY2Vzc1NlbGVjdGlvblNldChcbiAgICAgICAgICAgICAgc2VsZWN0aW9uLnNlbGVjdGlvblNldCxcbiAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICApLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NTZWxlY3Rpb25TZXQoXG4gICAgc2VsZWN0aW9uU2V0OiBTZWxlY3Rpb25TZXROb2RlLFxuICAgIHByZWZpeFxuICApOiBTZWxlY3Rpb25TZXROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2VsZWN0aW9uU2V0LFxuICAgICAgc2VsZWN0aW9uczogc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMubWFwKChzZWxlY3Rpb24pID0+XG4gICAgICAgIHRoaXMucHJvY2Vzc1NlbGVjdGlvbihzZWxlY3Rpb24sIHByZWZpeClcbiAgICAgICksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lU2VsZWN0aW9ucyhcbiAgICBzZWxlY3Rpb25zOiBSZWFkb25seUFycmF5PFNlbGVjdGlvbk5vZGU+LFxuICAgIHByZWZpeFxuICApOiBTZWxlY3Rpb25Ob2RlW10ge1xuICAgIHJldHVybiBzZWxlY3Rpb25zLm1hcCgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICBzd2l0Y2ggKHNlbGVjdGlvbi5raW5kKSB7XG4gICAgICAgIGNhc2UgJ0ZpZWxkJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU2VsZWN0aW9uKFxuICAgICAgICAgICAgdGhpcy5yZW5hbWVGaWVsZChzZWxlY3Rpb24sIHByZWZpeCksXG4gICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBzZWxlY3Rpb247XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZUZyYWdtZW50RGVmaW5pdGlvbihmcmFnbWVudDogRnJhZ21lbnREZWZpbml0aW9uTm9kZSwgcHJlZml4KSB7XG4gICAgY29uc3QgcmV0ID0ge1xuICAgICAgLi4uZnJhZ21lbnQsXG4gICAgICBuYW1lOiBhc3QubmFtZShwcmVmaXggKyBmcmFnbWVudC5uYW1lLnZhbHVlKSxcbiAgICB9O1xuXG4gICAgaWYgKGZyYWdtZW50LnNlbGVjdGlvblNldCkge1xuICAgICAgcmV0LnNlbGVjdGlvblNldCA9IHRoaXMucHJvY2Vzc1NlbGVjdGlvblNldChcbiAgICAgICAgZnJhZ21lbnQuc2VsZWN0aW9uU2V0LFxuICAgICAgICBwcmVmaXhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lRnJhZ21lbnREZWZpbml0aW9ucyhcbiAgICBmcmFnbWVudHM6IEZyYWdtZW50RGVmaW5pdGlvbk5vZGVbXSxcbiAgICBwcmVmaXhcbiAgKSB7XG4gICAgcmV0dXJuIGZyYWdtZW50cy5tYXAoKGZyYWdtZW50KSA9PlxuICAgICAgdGhpcy5yZW5hbWVGcmFnbWVudERlZmluaXRpb24oZnJhZ21lbnQsIHByZWZpeClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZSgpIHtcbiAgICBsZXQgdmFyaWFibGVEZWZpbml0aW9uczogVmFyaWFibGVEZWZpbml0aW9uTm9kZVtdID0gW107XG4gICAgbGV0IHNlbGVjdGlvbnM6IFNlbGVjdGlvbk5vZGVbXSA9IFtdO1xuICAgIGNvbnN0IG1lcmdlZFZhcmlhYmxlcyA9IHt9O1xuICAgIGxldCBtZXJnZWRGcmFnbWVudHM6IEZyYWdtZW50RGVmaW5pdGlvbk5vZGVbXSA9IFtdO1xuXG4gICAgY29uc3QgcHJlZml4ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBKdXN0IHdhaXQgZm9yIGV2ZXJ5dGhpbmcgdG8gcmVzb2x2ZSBiZWNhdXNlIHdlIGhhdmUgdG9cbiAgICAvLyBtZXJnZSB0aGUgZG9jIHN5bmNocm9ub3VzbHkuXG4gICAgdGhpcy5sck11dGF0aW9ucy5mb3JFYWNoKChsck11dGF0aW9uLCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IHsgbXV0YXRpb24sIHZhcmlhYmxlcyB9ID0gbHJNdXRhdGlvbi5sck11dGF0aW9uRGF0YTtcblxuICAgICAgY29uc3QgY2hpbGRNdXRhdGlvbk5vZGUgPSBnZXRNdXRhdGlvbihtdXRhdGlvbik7XG5cbiAgICAgIC8vIFByZWZpeGluZyBhbGwgbXV0YXRpb24gZmllbGRzIHNvIHRoZXkgZG9uJ3QgY29uZmxpY3QuXG4gICAgICBsZXQgcHJlZml4ID0gYGl0ZW0ke2lkeH1fYDtcbiAgICAgIGlmIChjaGlsZE11dGF0aW9uTm9kZS5uYW1lKSB7XG4gICAgICAgIHByZWZpeCArPSBjaGlsZE11dGF0aW9uTm9kZS5uYW1lLnZhbHVlICsgJ18nO1xuICAgICAgfVxuXG4gICAgICBwcmVmaXhlcy5wdXNoKHByZWZpeCk7XG5cbiAgICAgIC8vIFJlbmFtZSBhbmQgbWVyZ2UgdmFyaWFibGVzXG4gICAgICB2YXJpYWJsZURlZmluaXRpb25zID0gW1xuICAgICAgICAuLi52YXJpYWJsZURlZmluaXRpb25zLFxuICAgICAgICAuLi50aGlzLnJlbmFtZVZhcmlhYmxlRGVmaW5pdGlvbnMoXG4gICAgICAgICAgY2hpbGRNdXRhdGlvbk5vZGUudmFyaWFibGVEZWZpbml0aW9ucyxcbiAgICAgICAgICBwcmVmaXhcbiAgICAgICAgKSxcbiAgICAgIF07XG5cbiAgICAgIC8vIFJlbmFtZSBhbmQgbWVyZ2Ugc2VsZWN0aW9uc1xuICAgICAgc2VsZWN0aW9ucyA9IFtcbiAgICAgICAgLi4uc2VsZWN0aW9ucyxcbiAgICAgICAgLi4udGhpcy5yZW5hbWVTZWxlY3Rpb25zKFxuICAgICAgICAgIGNoaWxkTXV0YXRpb25Ob2RlLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zLFxuICAgICAgICAgIHByZWZpeFxuICAgICAgICApLFxuICAgICAgXTtcblxuICAgICAgLy8gUmVuYW1lIGFuZCBtZXJnZSB2YXJpYWJsZXNcbiAgICAgIGZvciAoY29uc3Qga2V5MiBvZiBPYmplY3Qua2V5cyh2YXJpYWJsZXMpKSB7XG4gICAgICAgIG1lcmdlZFZhcmlhYmxlc1twcmVmaXggKyBrZXkyXSA9IHZhcmlhYmxlc1trZXkyXTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVuYW1lIGFuZCBtZXJnZSBmcmFnbWVudHNcbiAgICAgIGNvbnN0IGZyYWdtZW50cyA9IGdldEZyYWdtZW50cyhtdXRhdGlvbik7XG4gICAgICBtZXJnZWRGcmFnbWVudHMgPSBbXG4gICAgICAgIC4uLm1lcmdlZEZyYWdtZW50cyxcbiAgICAgICAgLi4udGhpcy5yZW5hbWVGcmFnbWVudERlZmluaXRpb25zKGZyYWdtZW50cywgcHJlZml4KSxcbiAgICAgIF07XG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRNdXRhdGlvbjogRG9jdW1lbnROb2RlID0gbG9kYXNoLmNsb25lRGVlcChsck1lcmdlZE11dGF0aW9uRG9jKTtcbiAgICBjb25zdCBtdXRhdGlvbk5vZGUgPSBnZXRNdXRhdGlvbihtZXJnZWRNdXRhdGlvbik7XG4gICAgLy8gQWRkIGluIHRoZSBtdXRhdGlvbiBzZWxlY3Rpb25zXG4gICAgbXV0YXRpb25Ob2RlLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gc2VsZWN0aW9ucztcbiAgICAvLyBBZGQgaW4gdGhlIHZhcmlhYmxlc1xuICAgIC8vIHZhcmlhYmxlRGVmaW5pdGlvbnMgaXMgcmVhZG9ubHkgcHJvcGVydHkuXG4gICAgKG11dGF0aW9uTm9kZSBhcyBhbnkpLnZhcmlhYmxlRGVmaW5pdGlvbnMgPSB2YXJpYWJsZURlZmluaXRpb25zO1xuICAgIC8vIEFkZCBpbiB0aGUgZnJhZ21lbnRzXG4gICAgKG1lcmdlZE11dGF0aW9uIGFzIGFueSkuZGVmaW5pdGlvbnMgPSBbXG4gICAgICAuLi5tZXJnZWRNdXRhdGlvbi5kZWZpbml0aW9ucyxcbiAgICAgIC4uLm1lcmdlZEZyYWdtZW50cyxcbiAgICBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG11dGF0aW9uOiBtZXJnZWRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogbWVyZ2VkVmFyaWFibGVzLFxuICAgICAgcHJlZml4ZXMsXG4gICAgfTtcbiAgfVxufVxuIl19
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItbWVyZ2VkLW11dGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FwaS9sci1ncmFwaHFsL2xyLW1lcmdlZC1tdXRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsTUFBTSxtQkFBbUIsR0FBaUI7SUFDeEMsSUFBSSxFQUFFLFVBQVU7SUFDaEIsV0FBVyxFQUFFO1FBQ1g7WUFDRSxJQUFJLEVBQUUscUJBQXFCO1lBQzNCLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsa0JBQWtCO2FBQzFCO1lBQ0QsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixVQUFVLEVBQUUsRUFBRTtZQUNkLFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUUsY0FBYztnQkFDcEIsVUFBVSxFQUFFLEVBQUU7YUFDZjtTQUNGO0tBQ0Y7Q0FNRixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFvQixTQUFRLGNBQWlCO0lBSXhELFlBQTRCLFdBQWtDO1FBQzVELEtBQUssRUFBRSxDQUFDO1FBRGtCLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUc1RCxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVB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QyxDQUFDO2FBQ2xEO1lBRUQsNkJBQTZCO1lBQzdCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxlQUFlLEdBQUc7Z0JBQ2hCLEdBQUcsZUFBZTtnQkFDbEIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQzthQUNyRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGNBQWMsR0FBaUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRCxpQ0FBaUM7UUFDakMsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2xELHVCQUF1QjtRQUN2Qiw0Q0FBNEM7UUFDM0MsWUFBb0IsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUNoRSx1QkFBdUI7UUFDdEIsY0FBc0IsQ0FBQyxXQUFXLEdBQUc7WUFDcEMsR0FBRyxjQUFjLENBQUMsV0FBVztZQUM3QixHQUFHLGVBQWU7U0FDbkIsQ0FBQztRQUVGLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUUsZUFBZTtZQUMxQixRQUFRO1NBQ1QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7XG4gIEFyZ3VtZW50Tm9kZSxcbiAgRG9jdW1lbnROb2RlLFxuICBGaWVsZE5vZGUsXG4gIEZyYWdtZW50RGVmaW5pdGlvbk5vZGUsXG4gIEZyYWdtZW50U3ByZWFkTm9kZSxcbiAgU2VsZWN0aW9uTm9kZSxcbiAgU2VsZWN0aW9uU2V0Tm9kZSxcbiAgVmFyaWFibGVEZWZpbml0aW9uTm9kZSxcbn0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgKiBhcyBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIGFzdCBmcm9tICcuLi8uLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQgeyBnZXRBbGlhc09yTmFtZSwgZ2V0RnJhZ21lbnRzLCBnZXRNdXRhdGlvbiB9IGZyb20gJy4uLy4uL19jb21tb24vYXN0JztcbmltcG9ydCB7XG4gIEtjQmFkTG9naWNFeGNlcHRpb24sXG4gIEtjVW5zdXBwb3J0ZWRFeGNlcHRpb24sXG59IGZyb20gJy4uLy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBMck11dGF0aW9uIH0gZnJvbSAnLi9sci1tdXRhdGlvbic7XG5pbXBvcnQgeyBMck11dGF0aW9uQmFzZSB9IGZyb20gJy4vbHItbXV0YXRpb24tYmFzZSc7XG5cbmNvbnN0IGxyTWVyZ2VkTXV0YXRpb25Eb2M6IERvY3VtZW50Tm9kZSA9IHtcbiAga2luZDogJ0RvY3VtZW50JyxcbiAgZGVmaW5pdGlvbnM6IFtcbiAgICB7XG4gICAgICBraW5kOiAnT3BlcmF0aW9uRGVmaW5pdGlvbicsXG4gICAgICBvcGVyYXRpb246ICdtdXRhdGlvbicsXG4gICAgICBuYW1lOiB7XG4gICAgICAgIGtpbmQ6ICdOYW1lJyxcbiAgICAgICAgdmFsdWU6ICdsck1lcmdlZE11dGF0aW9uJyxcbiAgICAgIH0sXG4gICAgICB2YXJpYWJsZURlZmluaXRpb25zOiBbXSxcbiAgICAgIGRpcmVjdGl2ZXM6IFtdLFxuICAgICAgc2VsZWN0aW9uU2V0OiB7XG4gICAgICAgIGtpbmQ6ICdTZWxlY3Rpb25TZXQnLFxuICAgICAgICBzZWxlY3Rpb25zOiBbXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgLy8gVE9ETyBXaGF0IHRvIGRvIGFib3V0IHRoZXNlPyBTZXJpYWxpc2UgYW5kIHJlcGFyc2U/XG4gIC8vIFwibG9jXCI6IHtcbiAgLy8gICBcInN0YXJ0XCI6IDAsXG4gIC8vICAgXCJlbmRcIjogMjA0XG4gIC8vIH1cbn07XG5cbmV4cG9ydCBjbGFzcyBMck1lcmdlZE11dGF0aW9uPFQ+IGV4dGVuZHMgTHJNdXRhdGlvbkJhc2U8VD4ge1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY2VuZGFudHM6IFNldDxMck11dGF0aW9uQmFzZTxhbnk+PjtcbiAgcHJvdGVjdGVkIHByZWZpeGVzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbHJNdXRhdGlvbnM6IExyTXV0YXRpb25CYXNlPGFueT5bXSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25zdCB7IG11dGF0aW9uLCB2YXJpYWJsZXMsIHByZWZpeGVzIH0gPSB0aGlzLm1lcmdlKCk7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG11dGF0aW9uO1xuICAgIHRoaXMudmFyaWFibGVzID0gdmFyaWFibGVzO1xuICAgIHRoaXMucHJlZml4ZXMgPSBwcmVmaXhlcztcbiAgICB0aGlzLmRlc2NlbmRhbnRzID0gdGhpcy5nZXREZXNjZW5kYW50cygpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZTxUMSwgVDI+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uQmFzZTxUMT4gfCBMck1lcmdlZE11dGF0aW9uPFQxPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQyPiB8IExyTWVyZ2VkTXV0YXRpb248VDI+XG4gICAgXVxuICApOiBMck1lcmdlZE11dGF0aW9uPFtUMSwgVDJdPjtcblxuICBzdGF0aWMgY3JlYXRlPFQxLCBUMiwgVDM+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uQmFzZTxUMT4gfCBMck1lcmdlZE11dGF0aW9uPFQxPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQyPiB8IExyTWVyZ2VkTXV0YXRpb248VDI+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDM+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMz5cbiAgICBdXG4gICk6IExyTWVyZ2VkTXV0YXRpb248W1QxLCBUMiwgVDNdPjtcblxuICBzdGF0aWMgY3JlYXRlPFQxLCBUMiwgVDMsIFQ0PihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbkJhc2U8VDE+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMT4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUMj4gfCBMck1lcmdlZE11dGF0aW9uPFQyPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQzPiB8IExyTWVyZ2VkTXV0YXRpb248VDM+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDQ+IHwgTHJNZXJnZWRNdXRhdGlvbjxUND5cbiAgICBdXG4gICk6IExyTWVyZ2VkTXV0YXRpb248W1QxLCBUMiwgVDMsIFQ0XT47XG5cbiAgc3RhdGljIGNyZWF0ZTxUMSwgVDIsIFQzLCBUNCwgVDU+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uQmFzZTxUMT4gfCBMck1lcmdlZE11dGF0aW9uPFQxPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQyPiB8IExyTWVyZ2VkTXV0YXRpb248VDI+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDM+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMz4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUND4gfCBMck1lcmdlZE11dGF0aW9uPFQ0PixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQ1PiB8IExyTWVyZ2VkTXV0YXRpb248VDU+XG4gICAgXVxuICApOiBMck1lcmdlZE11dGF0aW9uPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcblxuICBzdGF0aWMgY3JlYXRlPFQ+KGxyTXV0YXRpb25zOiBMck11dGF0aW9uQmFzZTxUPltdKTogTHJNZXJnZWRNdXRhdGlvbjxUW10+O1xuXG4gIHN0YXRpYyBjcmVhdGUobHJNdXRhdGlvbnM6IExyTXV0YXRpb25CYXNlPGFueT5bXSk6IExyTWVyZ2VkTXV0YXRpb248YW55W10+O1xuXG4gIHN0YXRpYyBjcmVhdGUobHJNdXRhdGlvbnM6IExyTXV0YXRpb25CYXNlPGFueT5bXSkge1xuICAgIHJldHVybiBuZXcgTHJNZXJnZWRNdXRhdGlvbihsck11dGF0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldERlc2NlbmRhbnRzKCkge1xuICAgIGNvbnN0IHJldCA9IG5ldyBTZXQ8THJNdXRhdGlvbkJhc2U8YW55Pj4oKTtcblxuICAgIGNvbnN0IGFkZE9yVGhyb3cgPSAoaXRlbSkgPT4ge1xuICAgICAgaWYgKHJldC5oYXMoaXRlbSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEtjQmFkTG9naWNFeGNlcHRpb24oXG4gICAgICAgICAgJ0NsYXNzZXMgdGhhdCBhcmUgZGVyaXZlZCBmcm9tIExyTXV0YXRpb25CYXNlIGNhbiBub3QgYmUgdXNlZCBtb3JlIHRoYW4gb25jZSBpbiBhIG1lcmdlZCBtdXRhdGlvbi4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldC5hZGQoaXRlbSk7XG4gICAgfTtcblxuICAgIHRoaXMubHJNdXRhdGlvbnMuZm9yRWFjaCgobHJNdXRhdGlvbikgPT4ge1xuICAgICAgaWYgKGxyTXV0YXRpb24gaW5zdGFuY2VvZiBMck11dGF0aW9uKSB7XG4gICAgICAgIGFkZE9yVGhyb3cobHJNdXRhdGlvbik7XG4gICAgICB9IGVsc2UgaWYgKGxyTXV0YXRpb24gaW5zdGFuY2VvZiBMck1lcmdlZE11dGF0aW9uKSB7XG4gICAgICAgIGxyTXV0YXRpb24uZGVzY2VuZGFudHMuZm9yRWFjaCgodCkgPT4gYWRkT3JUaHJvdyh0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgS2NVbnN1cHBvcnRlZEV4Y2VwdGlvbihcbiAgICAgICAgICBgTHJNZXJnZU11dGF0aW9uIGNhbiBub3QgaGFuZGxlIGNsYXNzOiAke2xyTXV0YXRpb24uY29uc3RydWN0b3IubmFtZX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcmVzb2x2ZSh2YWx1ZTogYW55KSB7XG4gICAgLy8gUmVzb2x2ZXMgYW55IHByb21pc2VzIHdhaXRpbmcgZm9yIHRoZSBjaGlsZCBtdXRhdGlvbnNcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubHJNdXRhdGlvbnMubGVuZ3RoOyArK2kpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMucHJlZml4ZXNbaV07XG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgcHJlZml4IGFuZCByZXNvbHZlIGNoaWxkIG11dGF0aW9uLlxuICAgICAgY29uc3QgcmVzOiBhbnkgPSB7fTtcbiAgICAgIGZvciAoY29uc3Qga2V5MiBpbiB2YWx1ZSkge1xuICAgICAgICBpZiAoa2V5Mi5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbEtleSA9IGtleTIuc2xpY2UocHJlZml4Lmxlbmd0aCk7XG4gICAgICAgICAgcmVzW29yaWdpbmFsS2V5XSA9IHZhbHVlW2tleTJdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmxyTXV0YXRpb25zW2ldLnJlc29sdmUocmVzKTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlcyB0byB0aGUgcmVzdWx0IG9mIGNoaWxkcmVuXG4gICAgUHJvbWlzZS5hbGwodGhpcy5sck11dGF0aW9ucy5tYXAoKG0pID0+IG0ucHJvbWlzZSkpLnRoZW4oXG4gICAgICAoY2hpbGRWYWx1ZXM6IGFueSkgPT4ge1xuICAgICAgICAvLyBSZXNvbHZlcyBhbnkgcHJvbWlzZXMgd2FpdGluZyBmb3IgdGhlIGN1cnJlbnQgbWVyZ2VkIG11dGF0aW9uXG4gICAgICAgIHN1cGVyLnJlc29sdmUoY2hpbGRWYWx1ZXMpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICByZWplY3QocmVhc29uPzogYW55KSB7XG4gICAgc3VwZXIucmVqZWN0KHJlYXNvbik7XG4gICAgdGhpcy5sck11dGF0aW9ucy5mb3JFYWNoKChsck11dGF0aW9uKSA9PiBsck11dGF0aW9uLnJlamVjdChyZWFzb24pKTtcbiAgfVxuXG4gIHNldEV4ZWN1dGVkKCkge1xuICAgIHN1cGVyLnNldEV4ZWN1dGVkKCk7XG4gICAgdGhpcy5sck11dGF0aW9ucy5mb3JFYWNoKChsck11dGF0aW9uKSA9PiBsck11dGF0aW9uLnNldEV4ZWN1dGVkKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5hbWVWYXJpYWJsZURlZmluaXRpb24odmFyRGVmOiBWYXJpYWJsZURlZmluaXRpb25Ob2RlLCBwcmVmaXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udmFyRGVmLFxuICAgICAgdmFyaWFibGU6IHtcbiAgICAgICAgLi4udmFyRGVmLnZhcmlhYmxlLFxuICAgICAgICBuYW1lOiBhc3QubmFtZShwcmVmaXggKyB2YXJEZWYudmFyaWFibGUubmFtZS52YWx1ZSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZVZhcmlhYmxlRGVmaW5pdGlvbnMoXG4gICAgdmFyRGVmczogUmVhZG9ubHlBcnJheTxWYXJpYWJsZURlZmluaXRpb25Ob2RlPixcbiAgICBwcmVmaXhcbiAgKSB7XG4gICAgcmV0dXJuIHZhckRlZnMubWFwKCh2YXJEZWYpID0+XG4gICAgICB0aGlzLnJlbmFtZVZhcmlhYmxlRGVmaW5pdGlvbih2YXJEZWYsIHByZWZpeClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5hbWVBcmd1bWVudChhcmc6IEFyZ3VtZW50Tm9kZSwgcHJlZml4KSB7XG4gICAgaWYgKGFyZy52YWx1ZS5raW5kICE9PSAnVmFyaWFibGUnKSB7XG4gICAgICByZXR1cm4gYXJnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hcmcsXG4gICAgICB2YWx1ZToge1xuICAgICAgICAuLi5hcmcudmFsdWUsXG4gICAgICAgIG5hbWU6IGFzdC5uYW1lKHByZWZpeCArIGFyZy52YWx1ZS5uYW1lLnZhbHVlKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lRmllbGQoc2VsZWN0aW9uOiBGaWVsZE5vZGUsIHByZWZpeCk6IEZpZWxkTm9kZSB7XG4gICAgLy8gT25seSBoYW5kbGluZyB0eXBlIEZpZWxkXG4gICAgaWYgKHNlbGVjdGlvbi5raW5kICE9PSAnRmllbGQnKSB7XG4gICAgICByZXR1cm4gc2VsZWN0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGFsaWFzID0gcHJlZml4ICsgZ2V0QWxpYXNPck5hbWUoc2VsZWN0aW9uKTtcbiAgICBjb25zdCBhcmdzID0gc2VsZWN0aW9uLmFyZ3VtZW50cy5tYXAoKGFyZykgPT5cbiAgICAgIHRoaXMucmVuYW1lQXJndW1lbnQoYXJnLCBwcmVmaXgpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zZWxlY3Rpb24sXG4gICAgICBhbGlhczoge1xuICAgICAgICBraW5kOiAnTmFtZScsXG4gICAgICAgIHZhbHVlOiBhbGlhcyxcbiAgICAgIH0sXG4gICAgICBhcmd1bWVudHM6IGFyZ3MsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lRnJhZ21lbnRTcHJlYWQoXG4gICAgc2VsZWN0aW9uOiBGcmFnbWVudFNwcmVhZE5vZGUsXG4gICAgcHJlZml4XG4gICk6IEZyYWdtZW50U3ByZWFkTm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNlbGVjdGlvbixcbiAgICAgIG5hbWU6IGFzdC5uYW1lKHByZWZpeCArIHNlbGVjdGlvbi5uYW1lLnZhbHVlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzU2VsZWN0aW9uKHNlbGVjdGlvbjogU2VsZWN0aW9uTm9kZSwgcHJlZml4KTogU2VsZWN0aW9uTm9kZSB7XG4gICAgc3dpdGNoIChzZWxlY3Rpb24ua2luZCkge1xuICAgICAgY2FzZSAnRnJhZ21lbnRTcHJlYWQnOlxuICAgICAgICByZXR1cm4gdGhpcy5yZW5hbWVGcmFnbWVudFNwcmVhZChzZWxlY3Rpb24sIHByZWZpeCk7XG4gICAgICBjYXNlICdGaWVsZCc6XG4gICAgICAgIC8vIENvbnRpbnVlIHRvIHByb2Nlc3MgY2hpbGRyZW4gZm9yIG5lc3RlZCBzZWxlY3Rpb25zLlxuICAgICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvblNldCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zZWxlY3Rpb24sXG4gICAgICAgICAgICBzZWxlY3Rpb25TZXQ6IHRoaXMucHJvY2Vzc1NlbGVjdGlvblNldChcbiAgICAgICAgICAgICAgc2VsZWN0aW9uLnNlbGVjdGlvblNldCxcbiAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICApLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NTZWxlY3Rpb25TZXQoXG4gICAgc2VsZWN0aW9uU2V0OiBTZWxlY3Rpb25TZXROb2RlLFxuICAgIHByZWZpeFxuICApOiBTZWxlY3Rpb25TZXROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2VsZWN0aW9uU2V0LFxuICAgICAgc2VsZWN0aW9uczogc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMubWFwKChzZWxlY3Rpb24pID0+XG4gICAgICAgIHRoaXMucHJvY2Vzc1NlbGVjdGlvbihzZWxlY3Rpb24sIHByZWZpeClcbiAgICAgICksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lU2VsZWN0aW9ucyhcbiAgICBzZWxlY3Rpb25zOiBSZWFkb25seUFycmF5PFNlbGVjdGlvbk5vZGU+LFxuICAgIHByZWZpeFxuICApOiBTZWxlY3Rpb25Ob2RlW10ge1xuICAgIHJldHVybiBzZWxlY3Rpb25zLm1hcCgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICBzd2l0Y2ggKHNlbGVjdGlvbi5raW5kKSB7XG4gICAgICAgIGNhc2UgJ0ZpZWxkJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU2VsZWN0aW9uKFxuICAgICAgICAgICAgdGhpcy5yZW5hbWVGaWVsZChzZWxlY3Rpb24sIHByZWZpeCksXG4gICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBzZWxlY3Rpb247XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZUZyYWdtZW50RGVmaW5pdGlvbihmcmFnbWVudDogRnJhZ21lbnREZWZpbml0aW9uTm9kZSwgcHJlZml4KSB7XG4gICAgY29uc3QgcmV0ID0ge1xuICAgICAgLi4uZnJhZ21lbnQsXG4gICAgICBuYW1lOiBhc3QubmFtZShwcmVmaXggKyBmcmFnbWVudC5uYW1lLnZhbHVlKSxcbiAgICB9O1xuXG4gICAgaWYgKGZyYWdtZW50LnNlbGVjdGlvblNldCkge1xuICAgICAgcmV0LnNlbGVjdGlvblNldCA9IHRoaXMucHJvY2Vzc1NlbGVjdGlvblNldChcbiAgICAgICAgZnJhZ21lbnQuc2VsZWN0aW9uU2V0LFxuICAgICAgICBwcmVmaXhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lRnJhZ21lbnREZWZpbml0aW9ucyhcbiAgICBmcmFnbWVudHM6IEZyYWdtZW50RGVmaW5pdGlvbk5vZGVbXSxcbiAgICBwcmVmaXhcbiAgKSB7XG4gICAgcmV0dXJuIGZyYWdtZW50cy5tYXAoKGZyYWdtZW50KSA9PlxuICAgICAgdGhpcy5yZW5hbWVGcmFnbWVudERlZmluaXRpb24oZnJhZ21lbnQsIHByZWZpeClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZSgpIHtcbiAgICBsZXQgdmFyaWFibGVEZWZpbml0aW9uczogVmFyaWFibGVEZWZpbml0aW9uTm9kZVtdID0gW107XG4gICAgbGV0IHNlbGVjdGlvbnM6IFNlbGVjdGlvbk5vZGVbXSA9IFtdO1xuICAgIGNvbnN0IG1lcmdlZFZhcmlhYmxlcyA9IHt9O1xuICAgIGxldCBtZXJnZWRGcmFnbWVudHM6IEZyYWdtZW50RGVmaW5pdGlvbk5vZGVbXSA9IFtdO1xuXG4gICAgY29uc3QgcHJlZml4ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBKdXN0IHdhaXQgZm9yIGV2ZXJ5dGhpbmcgdG8gcmVzb2x2ZSBiZWNhdXNlIHdlIGhhdmUgdG9cbiAgICAvLyBtZXJnZSB0aGUgZG9jIHN5bmNocm9ub3VzbHkuXG4gICAgdGhpcy5sck11dGF0aW9ucy5mb3JFYWNoKChsck11dGF0aW9uLCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IHsgbXV0YXRpb24sIHZhcmlhYmxlcyB9ID0gbHJNdXRhdGlvbi5sck11dGF0aW9uRGF0YTtcblxuICAgICAgY29uc3QgY2hpbGRNdXRhdGlvbk5vZGUgPSBnZXRNdXRhdGlvbihtdXRhdGlvbik7XG5cbiAgICAgIC8vIFByZWZpeGluZyBhbGwgbXV0YXRpb24gZmllbGRzIHNvIHRoZXkgZG9uJ3QgY29uZmxpY3QuXG4gICAgICBsZXQgcHJlZml4ID0gYGl0ZW0ke2lkeH1fYDtcbiAgICAgIGlmIChjaGlsZE11dGF0aW9uTm9kZS5uYW1lKSB7XG4gICAgICAgIHByZWZpeCArPSBjaGlsZE11dGF0aW9uTm9kZS5uYW1lLnZhbHVlICsgJ18nO1xuICAgICAgfVxuXG4gICAgICBwcmVmaXhlcy5wdXNoKHByZWZpeCk7XG5cbiAgICAgIC8vIFJlbmFtZSBhbmQgbWVyZ2UgdmFyaWFibGVzXG4gICAgICB2YXJpYWJsZURlZmluaXRpb25zID0gW1xuICAgICAgICAuLi52YXJpYWJsZURlZmluaXRpb25zLFxuICAgICAgICAuLi50aGlzLnJlbmFtZVZhcmlhYmxlRGVmaW5pdGlvbnMoXG4gICAgICAgICAgY2hpbGRNdXRhdGlvbk5vZGUudmFyaWFibGVEZWZpbml0aW9ucyxcbiAgICAgICAgICBwcmVmaXhcbiAgICAgICAgKSxcbiAgICAgIF07XG5cbiAgICAgIC8vIFJlbmFtZSBhbmQgbWVyZ2Ugc2VsZWN0aW9uc1xuICAgICAgc2VsZWN0aW9ucyA9IFtcbiAgICAgICAgLi4uc2VsZWN0aW9ucyxcbiAgICAgICAgLi4udGhpcy5yZW5hbWVTZWxlY3Rpb25zKFxuICAgICAgICAgIGNoaWxkTXV0YXRpb25Ob2RlLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zLFxuICAgICAgICAgIHByZWZpeFxuICAgICAgICApLFxuICAgICAgXTtcblxuICAgICAgLy8gUmVuYW1lIGFuZCBtZXJnZSB2YXJpYWJsZXNcbiAgICAgIGZvciAoY29uc3Qga2V5MiBvZiBPYmplY3Qua2V5cyh2YXJpYWJsZXMpKSB7XG4gICAgICAgIG1lcmdlZFZhcmlhYmxlc1twcmVmaXggKyBrZXkyXSA9IHZhcmlhYmxlc1trZXkyXTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVuYW1lIGFuZCBtZXJnZSBmcmFnbWVudHNcbiAgICAgIGNvbnN0IGZyYWdtZW50cyA9IGdldEZyYWdtZW50cyhtdXRhdGlvbik7XG4gICAgICBtZXJnZWRGcmFnbWVudHMgPSBbXG4gICAgICAgIC4uLm1lcmdlZEZyYWdtZW50cyxcbiAgICAgICAgLi4udGhpcy5yZW5hbWVGcmFnbWVudERlZmluaXRpb25zKGZyYWdtZW50cywgcHJlZml4KSxcbiAgICAgIF07XG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRNdXRhdGlvbjogRG9jdW1lbnROb2RlID0gbG9kYXNoLmNsb25lRGVlcChsck1lcmdlZE11dGF0aW9uRG9jKTtcbiAgICBjb25zdCBtdXRhdGlvbk5vZGUgPSBnZXRNdXRhdGlvbihtZXJnZWRNdXRhdGlvbik7XG4gICAgLy8gQWRkIGluIHRoZSBtdXRhdGlvbiBzZWxlY3Rpb25zXG4gICAgbXV0YXRpb25Ob2RlLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gc2VsZWN0aW9ucztcbiAgICAvLyBBZGQgaW4gdGhlIHZhcmlhYmxlc1xuICAgIC8vIHZhcmlhYmxlRGVmaW5pdGlvbnMgaXMgcmVhZG9ubHkgcHJvcGVydHkuXG4gICAgKG11dGF0aW9uTm9kZSBhcyBhbnkpLnZhcmlhYmxlRGVmaW5pdGlvbnMgPSB2YXJpYWJsZURlZmluaXRpb25zO1xuICAgIC8vIEFkZCBpbiB0aGUgZnJhZ21lbnRzXG4gICAgKG1lcmdlZE11dGF0aW9uIGFzIGFueSkuZGVmaW5pdGlvbnMgPSBbXG4gICAgICAuLi5tZXJnZWRNdXRhdGlvbi5kZWZpbml0aW9ucyxcbiAgICAgIC4uLm1lcmdlZEZyYWdtZW50cyxcbiAgICBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG11dGF0aW9uOiBtZXJnZWRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogbWVyZ2VkVmFyaWFibGVzLFxuICAgICAgcHJlZml4ZXMsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import gql from 'graphql-tag';
2
2
  import { getQuery } from '../../_common/ast';
3
3
  import { DeferredPromise } from '../../_common/deferred-promise';
4
- import { LrBadStateException } from '../../_common/exceptions';
4
+ import { KcBadStateException } from '../../_common/exceptions';
5
5
  export const fragmentSpreadAstSelection = getQuery(gql `
6
6
  query {
7
7
  ...FragmentName
@@ -43,9 +43,9 @@ export class LrMutationBase {
43
43
  }
44
44
  setExecuted() {
45
45
  if (this._executed) {
46
- throw new LrBadStateException('Already executed');
46
+ throw new KcBadStateException('Already executed');
47
47
  }
48
48
  this._executed = true;
49
49
  }
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItbXV0YXRpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvbHItZ3JhcGhxbC9sci1tdXRhdGlvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU8vRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFBOzs7O0NBSXJELENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBdUIsQ0FBQztBQUVwRCwyQ0FBMkM7QUFDM0MseUVBQXlFO0FBRXpFOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBZ0IsY0FBYztJQUFwQztRQUdFLGtDQUFrQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTVCLGlEQUFpRDtRQUNqQyxvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFLLENBQUM7SUErQjdELENBQUM7SUE3QkMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUN0QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVE7UUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVk7UUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLElBQUksbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IE9wZXJhdGlvblZhcmlhYmxlcyB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgRnJhZ21lbnRTcHJlYWROb2RlIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcbmltcG9ydCB7IGdldFF1ZXJ5LCBUeXBlZERvY3VtZW50Tm9kZSB9IGZyb20gJy4uLy4uL19jb21tb24vYXN0JztcbmltcG9ydCB7IERlZmVycmVkUHJvbWlzZSB9IGZyb20gJy4uLy4uL19jb21tb24vZGVmZXJyZWQtcHJvbWlzZSc7XG5pbXBvcnQgeyBMckJhZFN0YXRlRXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9leGNlcHRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBMck11dGF0aW9uRGF0YTxULCBUVmFyaWFibGVzID0gT3BlcmF0aW9uVmFyaWFibGVzPiB7XG4gIG11dGF0aW9uOiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgdmFyaWFibGVzPzogVFZhcmlhYmxlcztcbn1cblxuZXhwb3J0IGNvbnN0IGZyYWdtZW50U3ByZWFkQXN0U2VsZWN0aW9uID0gZ2V0UXVlcnkoZ3FsYFxuICBxdWVyeSB7XG4gICAgLi4uRnJhZ21lbnROYW1lXG4gIH1cbmApLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zWzBdIGFzIEZyYWdtZW50U3ByZWFkTm9kZTtcblxuLy8gY29uc3QgZnJhZ21lbnRTcHJlYWRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9mcmFnbWVudFNwcmVhZEFzdFNlbGVjdGlvbikgYXMgRnJhZ21lbnRTcHJlYWROb2RlO1xuXG4vKipcbiAqIERFQ0lTSU9OOiBMck11dGF0aW9uQmFzZSBkb2VzIG5vdCBwcm92aWRlIGEgY29udmVuaWVuY2UgbWV0aG9kIHRvIGNhbGwgbHJHcmFwaFFMLmxyTXV0YXRlKClcbiAqIGJlY2F1c2UgdGhpcyBjbGFzcyBjb3VsZCBiZSBtYWRlIGluZGVwZW5kZW50IG9mIHdoYXQgbGliIGlzIHVzZWQgdG8gY2FsbCB0aGUgQVBJLiBJZiB3ZVxuICogcHJvdmlkZWQgYSBjb25maWd1cmFibGUgY2FsbCBiYWNrIHRvIG1ha2UgdGhlIEFQSSBjYWxsLCB0aGVuIHRoZSB0eXBpbmcgZm9yIHRoYXQgY2FsbGJhY2tcbiAqIG5lZWRzIHRvIGJlIGtub3duLiBCdXQgc2luY2UgdGhlIEFQSSBsaWIgKGVnLiBBcG9sbG8pIGhhcyBpdCdzIG93biB1bmlxdWUgcmV0dXJuIHR5cGUsIHNvXG4gKiBpdCdzIG5vdCBwb3NzaWJsZSB0byBkbyBpbiBnZW5lcmFsLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTHJNdXRhdGlvbkJhc2U8VCwgVFZhcmlhYmxlcyA9IE9wZXJhdGlvblZhcmlhYmxlcz4ge1xuICBwcm90ZWN0ZWQgbXV0YXRpb246IFR5cGVkRG9jdW1lbnROb2RlPFQ+O1xuICBwcm90ZWN0ZWQgdmFyaWFibGVzPzogVFZhcmlhYmxlcztcbiAgLyogdHNsaW50OmRpc2FibGU6dmFyaWFibGUtbmFtZSAqL1xuICBwcm90ZWN0ZWQgX2V4ZWN1dGVkID0gZmFsc2U7XG5cbiAgLy8gcHJvdGVjdGVkIHByb21pc2VzOiBEZWZlcnJlZFByb21pc2U8VD5bXSA9IFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmZXJyZWRQcm9taXNlID0gbmV3IERlZmVycmVkUHJvbWlzZTxUPigpO1xuXG4gIGdldCBwcm9taXNlKCk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLmRlZmVycmVkUHJvbWlzZS5wcm9taXNlO1xuICB9XG5cbiAgcmVzb2x2ZSh2YWx1ZTogVCkge1xuICAgIHRoaXMuZGVmZXJyZWRQcm9taXNlLnJlc29sdmUodmFsdWUpO1xuICB9XG5cbiAgcmVqZWN0KHJlYXNvbj86IGFueSkge1xuICAgIHRoaXMuZGVmZXJyZWRQcm9taXNlLnJlamVjdChyZWFzb24pO1xuICB9XG5cbiAgZ2V0IGxyTXV0YXRpb25EYXRhKCk6IExyTXV0YXRpb25EYXRhPFQsIFRWYXJpYWJsZXM+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbXV0YXRpb246IHRoaXMubXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHRoaXMudmFyaWFibGVzLFxuICAgIH07XG4gIH1cblxuICBnZXQgZXhlY3V0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2V4ZWN1dGVkO1xuICB9XG5cbiAgc2V0RXhlY3V0ZWQoKSB7XG4gICAgaWYgKHRoaXMuX2V4ZWN1dGVkKSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRTdGF0ZUV4Y2VwdGlvbignQWxyZWFkeSBleGVjdXRlZCcpO1xuICAgIH1cbiAgICB0aGlzLl9leGVjdXRlZCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItbXV0YXRpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvbHItZ3JhcGhxbC9sci1tdXRhdGlvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU8vRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFBOzs7O0NBSXJELENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBdUIsQ0FBQztBQUVwRCwyQ0FBMkM7QUFDM0MseUVBQXlFO0FBRXpFOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBZ0IsY0FBYztJQUFwQztRQUdFLGtDQUFrQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTVCLGlEQUFpRDtRQUNqQyxvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFLLENBQUM7SUErQjdELENBQUM7SUE3QkMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUN0QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVE7UUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVk7UUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLElBQUksbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IE9wZXJhdGlvblZhcmlhYmxlcyB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgRnJhZ21lbnRTcHJlYWROb2RlIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcbmltcG9ydCB7IGdldFF1ZXJ5LCBUeXBlZERvY3VtZW50Tm9kZSB9IGZyb20gJy4uLy4uL19jb21tb24vYXN0JztcbmltcG9ydCB7IERlZmVycmVkUHJvbWlzZSB9IGZyb20gJy4uLy4uL19jb21tb24vZGVmZXJyZWQtcHJvbWlzZSc7XG5pbXBvcnQgeyBLY0JhZFN0YXRlRXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9leGNlcHRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBMck11dGF0aW9uRGF0YTxULCBUVmFyaWFibGVzID0gT3BlcmF0aW9uVmFyaWFibGVzPiB7XG4gIG11dGF0aW9uOiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgdmFyaWFibGVzPzogVFZhcmlhYmxlcztcbn1cblxuZXhwb3J0IGNvbnN0IGZyYWdtZW50U3ByZWFkQXN0U2VsZWN0aW9uID0gZ2V0UXVlcnkoZ3FsYFxuICBxdWVyeSB7XG4gICAgLi4uRnJhZ21lbnROYW1lXG4gIH1cbmApLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zWzBdIGFzIEZyYWdtZW50U3ByZWFkTm9kZTtcblxuLy8gY29uc3QgZnJhZ21lbnRTcHJlYWRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9mcmFnbWVudFNwcmVhZEFzdFNlbGVjdGlvbikgYXMgRnJhZ21lbnRTcHJlYWROb2RlO1xuXG4vKipcbiAqIERFQ0lTSU9OOiBMck11dGF0aW9uQmFzZSBkb2VzIG5vdCBwcm92aWRlIGEgY29udmVuaWVuY2UgbWV0aG9kIHRvIGNhbGwgbHJHcmFwaFFMLmxyTXV0YXRlKClcbiAqIGJlY2F1c2UgdGhpcyBjbGFzcyBjb3VsZCBiZSBtYWRlIGluZGVwZW5kZW50IG9mIHdoYXQgbGliIGlzIHVzZWQgdG8gY2FsbCB0aGUgQVBJLiBJZiB3ZVxuICogcHJvdmlkZWQgYSBjb25maWd1cmFibGUgY2FsbCBiYWNrIHRvIG1ha2UgdGhlIEFQSSBjYWxsLCB0aGVuIHRoZSB0eXBpbmcgZm9yIHRoYXQgY2FsbGJhY2tcbiAqIG5lZWRzIHRvIGJlIGtub3duLiBCdXQgc2luY2UgdGhlIEFQSSBsaWIgKGVnLiBBcG9sbG8pIGhhcyBpdCdzIG93biB1bmlxdWUgcmV0dXJuIHR5cGUsIHNvXG4gKiBpdCdzIG5vdCBwb3NzaWJsZSB0byBkbyBpbiBnZW5lcmFsLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTHJNdXRhdGlvbkJhc2U8VCwgVFZhcmlhYmxlcyA9IE9wZXJhdGlvblZhcmlhYmxlcz4ge1xuICBwcm90ZWN0ZWQgbXV0YXRpb246IFR5cGVkRG9jdW1lbnROb2RlPFQ+O1xuICBwcm90ZWN0ZWQgdmFyaWFibGVzPzogVFZhcmlhYmxlcztcbiAgLyogdHNsaW50OmRpc2FibGU6dmFyaWFibGUtbmFtZSAqL1xuICBwcm90ZWN0ZWQgX2V4ZWN1dGVkID0gZmFsc2U7XG5cbiAgLy8gcHJvdGVjdGVkIHByb21pc2VzOiBEZWZlcnJlZFByb21pc2U8VD5bXSA9IFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmZXJyZWRQcm9taXNlID0gbmV3IERlZmVycmVkUHJvbWlzZTxUPigpO1xuXG4gIGdldCBwcm9taXNlKCk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLmRlZmVycmVkUHJvbWlzZS5wcm9taXNlO1xuICB9XG5cbiAgcmVzb2x2ZSh2YWx1ZTogVCkge1xuICAgIHRoaXMuZGVmZXJyZWRQcm9taXNlLnJlc29sdmUodmFsdWUpO1xuICB9XG5cbiAgcmVqZWN0KHJlYXNvbj86IGFueSkge1xuICAgIHRoaXMuZGVmZXJyZWRQcm9taXNlLnJlamVjdChyZWFzb24pO1xuICB9XG5cbiAgZ2V0IGxyTXV0YXRpb25EYXRhKCk6IExyTXV0YXRpb25EYXRhPFQsIFRWYXJpYWJsZXM+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbXV0YXRpb246IHRoaXMubXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHRoaXMudmFyaWFibGVzLFxuICAgIH07XG4gIH1cblxuICBnZXQgZXhlY3V0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2V4ZWN1dGVkO1xuICB9XG5cbiAgc2V0RXhlY3V0ZWQoKSB7XG4gICAgaWYgKHRoaXMuX2V4ZWN1dGVkKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbignQWxyZWFkeSBleGVjdXRlZCcpO1xuICAgIH1cbiAgICB0aGlzLl9leGVjdXRlZCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -2,7 +2,7 @@ import { __awaiter, __decorate } from "tslib";
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
  import { Injectable, NgZone } from '@angular/core';
4
4
  import { KeyGraphService } from '../../key/key-graph.service';
5
- import { LrBadLogicException } from '../../_common/exceptions';
5
+ import { KcBadLogicException } from '../../_common/exceptions';
6
6
  import { RunOutsideAngular } from '../../_common/run-outside-angular';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../../key/key-graph.service";
@@ -67,7 +67,7 @@ let CommonProcessorsService = class CommonProcessorsService {
67
67
  : field.keyId || ((_a = field.key) === null || _a === void 0 ? void 0 : _a.id);
68
68
  if (!keyId) {
69
69
  const keyIdName = getKeyId ? 'key-id' : 'keyId or key.id';
70
- throw new LrBadLogicException(`Query response does not contain ${keyIdName} field: ${context.path.join('.')}`);
70
+ throw new KcBadLogicException(`Query response does not contain ${keyIdName} field: ${context.path.join('.')}`);
71
71
  }
72
72
  return this.keyGraph
73
73
  .decryptFromString(keyId, cipherField)
@@ -91,4 +91,4 @@ CommonProcessorsService = __decorate([
91
91
  })
92
92
  ], CommonProcessorsService);
93
93
  export { CommonProcessorsService };
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXByb2Nlc3NvcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvcXVlcnktcHJvY2Vzc29yL2NvbW1vbi1wcm9jZXNzb3JzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQU90RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBcUI7SUFDdkQsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBK0JGLE1BQU0sVUFBZ0IsaUJBQWlCLENBQ3JDLEtBQXVCLEVBQ3ZCLFdBQWlEOztRQUVqRCx1Q0FDSyxLQUFLLEtBQ1IsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBTyxJQUFJLEVBQUUsRUFBRTtnQkFBQyxPQUFBLGlDQUMzQixJQUFJLEtBQ1AsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFDbEMsQ0FBQTtjQUFBLENBQUMsQ0FDSixJQUNEO0lBQ0osQ0FBQztDQUFBO0lBUVksdUJBQXVCLFNBQXZCLHVCQUF1QjtJQUNsQyxZQUFvQixNQUFjLEVBQVUsUUFBeUI7UUFBakQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQUcsQ0FBQztJQUV6RSxNQUFNLENBQUMsVUFBK0I7UUFDcEMsT0FBTyxDQUFPLEVBQUUsS0FBSyxF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QUF1QixDQWtGbkM7U0FsRlksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgTHJCYWRMb2dpY0V4Y2VwdGlvbiB9IGZyb20gJy4uLy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uLy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3Nvck9wdGlvbnMge1xuICBoYXNLZXlzOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdFByb2Nlc3Nvck9wdGlvbnM6IFByb2Nlc3Nvck9wdGlvbnMgPSB7XG4gIGhhc0tleXM6IHRydWUsXG59O1xuXG4vLyBTZW50IHRvIGVhY2ggcHJvY2Vzc29yIGZvciBjb250ZXh0IGluZm9ybWF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NvckNvbnRleHQge1xuICBwYXRoOiBSZWFkb25seUFycmF5PHN0cmluZz47XG4gIC8vIHByb2Nlc3NvciBjYW4gc2V0IHRoaXMgdG8gZmFsc2UgaWYgY2hpbGQgZmllbGRzIHNob3VsZFxuICAvLyBub3QgYmUgcHJvY2Vzc2VkIGFueSBmdXJ0aGVyXG4gIHByb2Nlc3NDaGlsZHJlbjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzb3JDYWxsYmFja1BhcmFtczxUID0gYW55PiB7XG4gIGZpZWxkOiBUO1xuICBjb250ZXh0OiBQcm9jZXNzb3JDb250ZXh0O1xuICBvcHRpb25zOiBQcm9jZXNzb3JPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBQcm9jZXNzb3JDYWxsYmFjazxUID0gYW55PiA9IChcbiAgcGFyYW1zOiBQcm9jZXNzb3JDYWxsYmFja1BhcmFtczxUPlxuKSA9PiBUIHwgUHJvbWlzZTxUPjtcblxuaW50ZXJmYWNlIFBhcnNlSnNvblByb2Nlc3Nvck9wdGlvbnMge1xuICBwbGFpbkZpZWxkTmFtZT86IHN0cmluZztcbiAganNvbkZpZWxkU3VmZml4Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRGVjcnlwdGlvblByb2Nlc3Nvck9wdGlvbnMge1xuICBjaXBoZXJGaWVsZE5hbWU/OiBzdHJpbmc7XG4gIGNsZWFyRmllbGRTdWZmaXg/OiBzdHJpbmc7XG4gIGdldEtleUlkPzogKHBhcmFtczogUHJvY2Vzc29yQ2FsbGJhY2tQYXJhbXMpID0+IFByb21pc2U8c3RyaW5nPiB8IHN0cmluZztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NDb25uZWN0aW9uPE5vZGU+KFxuICBmaWVsZDogQ29ubmVjdGlvbjxOb2RlPixcbiAgcHJvY2Vzc05vZGU6IChub2RlOiBOb2RlKSA9PiBOb2RlIHwgUHJvbWlzZTxOb2RlPlxuKTogUHJvbWlzZTxDb25uZWN0aW9uPE5vZGU+PiB7XG4gIHJldHVybiB7XG4gICAgLi4uZmllbGQsXG4gICAgZWRnZXM6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZmllbGQuZWRnZXMubWFwKGFzeW5jIChlZGdlKSA9PiAoe1xuICAgICAgICAuLi5lZGdlLFxuICAgICAgICBub2RlOiBhd2FpdCBwcm9jZXNzTm9kZShlZGdlLm5vZGUpLFxuICAgICAgfSkpXG4gICAgKSxcbiAgfTtcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbW1vblByb2Nlc3NvcnNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlKSB7fVxuXG4gIHNlcmllcyhwcm9jZXNzb3JzOiBQcm9jZXNzb3JDYWxsYmFja1tdKTogUHJvY2Vzc29yQ2FsbGJhY2sge1xuICAgIHJldHVybiBhc3luYyAoeyBmaWVsZCwgY29udGV4dCwgb3B0aW9ucyB9KSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IHByb2Nlc3NvciBvZiBwcm9jZXNzb3JzKSB7XG4gICAgICAgIGZpZWxkID0gYXdhaXQgcHJvY2Vzc29yKHsgZmllbGQsIGNvbnRleHQsIG9wdGlvbnMgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcbiAgfVxuXG4gIG1ha2VKc29uUGFyc2VQcm9jZXNzb3Ioe1xuICAgIHBsYWluRmllbGROYW1lLFxuICAgIGpzb25GaWVsZFN1ZmZpeCA9ICdKc29uJyxcbiAgfTogUGFyc2VKc29uUHJvY2Vzc29yT3B0aW9ucyA9IHt9KTogUHJvY2Vzc29yQ2FsbGJhY2sge1xuICAgIGNvbnN0IGpzb25GaWVsZE5hbWUgPSBwbGFpbkZpZWxkTmFtZSArIGpzb25GaWVsZFN1ZmZpeDtcblxuICAgIHJldHVybiAoeyBmaWVsZCB9KSA9PiB7XG4gICAgICBpZiAoZmllbGRbcGxhaW5GaWVsZE5hbWVdID09IG51bGwgfHwganNvbkZpZWxkTmFtZSBpbiBmaWVsZCkge1xuICAgICAgICAvLyBpZiBwbGFpbkZpZWxkTmFtZSBpcyB1bmRlZmluZWQgb3IgbnVsbCwgdGhlbiBkb24ndCBwYXJzZSBpdC5cbiAgICAgICAgLy8gaWYgeW91IHBhcnNlIGl0LCB0aGVuIEpTT04ucGFyc2UobnVsbCkgYW5kIEpTT04ucGFyc2UoXCJudWxsXCIpIGJvdGggcmV0dXJuIG51bGwsIHNvXG4gICAgICAgIC8vIHlvdSBjYW4ndCBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB0d28uXG4gICAgICAgIC8vIElmIGNsZWFyRmllbGROYW1lIGFscmVhZHkgZXhpc3RzIGluIG5vZGUgYXMgYSBwcm9wZXJ0eSwgdGhlbiB3ZSBkb24ndFxuICAgICAgICAvLyBuZWVkIHRvIHByb2Nlc3MgaXQgYWdhaW4sIGV2ZW4gaWYgaXQncyB2YWx1ZSBjYW4gYmUgdW5kZWZpbmVkIG9yIG51bGwgZXZlbi5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICAgIFtqc29uRmllbGROYW1lXTogSlNPTi5wYXJzZShmaWVsZFtwbGFpbkZpZWxkTmFtZV0pLFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBtYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgY2lwaGVyRmllbGROYW1lLFxuICAgIGNsZWFyRmllbGRTdWZmaXggPSAnQ2xlYXJKc29uJyxcbiAgICBnZXRLZXlJZCA9IG51bGwsXG4gIH06IERlY3J5cHRpb25Qcm9jZXNzb3JPcHRpb25zID0ge30pOiBQcm9jZXNzb3JDYWxsYmFjayB7XG4gICAgY29uc3QgY2xlYXJGaWVsZE5hbWUgPSBjaXBoZXJGaWVsZE5hbWUgKyBjbGVhckZpZWxkU3VmZml4O1xuXG4gICAgcmV0dXJuIGFzeW5jIChwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIGNvbnRleHQsIG9wdGlvbnMgfSA9IHBhcmFtcztcblxuICAgICAgLy8gQ2FuJ3QgZGVjcnlwdCBhbnl0aGluZyBpZiBrZXkgZ3JhcGggaXMgbm90IHJldHVybmVkXG4gICAgICBpZiAoIW9wdGlvbnMuaGFzS2V5cykge1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNpcGhlckZpZWxkID0gZmllbGRbY2lwaGVyRmllbGROYW1lXTtcblxuICAgICAgLy8gY2lwaGVyRmllbGQgY2FuIGJlIGVtcHR5IHN0cmluZywgbnVsbCBvciB1bmRlZmluZWQuXG4gICAgICBpZiAoIWNpcGhlckZpZWxkIHx8IGNsZWFyRmllbGROYW1lIGluIGZpZWxkKSB7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH1cblxuICAgICAgY29uc3Qga2V5SWQgPSBnZXRLZXlJZFxuICAgICAgICA/IGF3YWl0IGdldEtleUlkKHBhcmFtcylcbiAgICAgICAgOiBmaWVsZC5rZXlJZCB8fCBmaWVsZC5rZXk/LmlkO1xuXG4gICAgICBpZiAoIWtleUlkKSB7XG4gICAgICAgIGNvbnN0IGtleUlkTmFtZSA9IGdldEtleUlkID8gJ2tleS1pZCcgOiAna2V5SWQgb3Iga2V5LmlkJztcbiAgICAgICAgdGhyb3cgbmV3IExyQmFkTG9naWNFeGNlcHRpb24oXG4gICAgICAgICAgYFF1ZXJ5IHJlc3BvbnNlIGRvZXMgbm90IGNvbnRhaW4gJHtrZXlJZE5hbWV9IGZpZWxkOiAke2NvbnRleHQucGF0aC5qb2luKFxuICAgICAgICAgICAgJy4nXG4gICAgICAgICAgKX1gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmtleUdyYXBoXG4gICAgICAgIC5kZWNyeXB0RnJvbVN0cmluZyhrZXlJZCwgY2lwaGVyRmllbGQpXG4gICAgICAgIC50aGVuKChjbGVhcikgPT4gKHtcbiAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICBbY2xlYXJGaWVsZE5hbWVdOiBjbGVhcixcbiAgICAgICAgfSkpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXByb2Nlc3NvcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvcXVlcnktcHJvY2Vzc29yL2NvbW1vbi1wcm9jZXNzb3JzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQU90RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBcUI7SUFDdkQsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBK0JGLE1BQU0sVUFBZ0IsaUJBQWlCLENBQ3JDLEtBQXVCLEVBQ3ZCLFdBQWlEOztRQUVqRCx1Q0FDSyxLQUFLLEtBQ1IsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBTyxJQUFJLEVBQUUsRUFBRTtnQkFBQyxPQUFBLGlDQUMzQixJQUFJLEtBQ1AsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFDbEMsQ0FBQTtjQUFBLENBQUMsQ0FDSixJQUNEO0lBQ0osQ0FBQztDQUFBO0lBUVksdUJBQXVCLFNBQXZCLHVCQUF1QjtJQUNsQyxZQUFvQixNQUFjLEVBQVUsUUFBeUI7UUFBakQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQUcsQ0FBQztJQUV6RSxNQUFNLENBQUMsVUFBK0I7UUFDcEMsT0FBTyxDQUFPLEVBQUUsS0FBSyxF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QUF1QixDQWtGbkM7U0FsRlksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2NCYWRMb2dpY0V4Y2VwdGlvbiB9IGZyb20gJy4uLy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uLy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3Nvck9wdGlvbnMge1xuICBoYXNLZXlzOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdFByb2Nlc3Nvck9wdGlvbnM6IFByb2Nlc3Nvck9wdGlvbnMgPSB7XG4gIGhhc0tleXM6IHRydWUsXG59O1xuXG4vLyBTZW50IHRvIGVhY2ggcHJvY2Vzc29yIGZvciBjb250ZXh0IGluZm9ybWF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NvckNvbnRleHQge1xuICBwYXRoOiBSZWFkb25seUFycmF5PHN0cmluZz47XG4gIC8vIHByb2Nlc3NvciBjYW4gc2V0IHRoaXMgdG8gZmFsc2UgaWYgY2hpbGQgZmllbGRzIHNob3VsZFxuICAvLyBub3QgYmUgcHJvY2Vzc2VkIGFueSBmdXJ0aGVyXG4gIHByb2Nlc3NDaGlsZHJlbjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzb3JDYWxsYmFja1BhcmFtczxUID0gYW55PiB7XG4gIGZpZWxkOiBUO1xuICBjb250ZXh0OiBQcm9jZXNzb3JDb250ZXh0O1xuICBvcHRpb25zOiBQcm9jZXNzb3JPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBQcm9jZXNzb3JDYWxsYmFjazxUID0gYW55PiA9IChcbiAgcGFyYW1zOiBQcm9jZXNzb3JDYWxsYmFja1BhcmFtczxUPlxuKSA9PiBUIHwgUHJvbWlzZTxUPjtcblxuaW50ZXJmYWNlIFBhcnNlSnNvblByb2Nlc3Nvck9wdGlvbnMge1xuICBwbGFpbkZpZWxkTmFtZT86IHN0cmluZztcbiAganNvbkZpZWxkU3VmZml4Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRGVjcnlwdGlvblByb2Nlc3Nvck9wdGlvbnMge1xuICBjaXBoZXJGaWVsZE5hbWU/OiBzdHJpbmc7XG4gIGNsZWFyRmllbGRTdWZmaXg/OiBzdHJpbmc7XG4gIGdldEtleUlkPzogKHBhcmFtczogUHJvY2Vzc29yQ2FsbGJhY2tQYXJhbXMpID0+IFByb21pc2U8c3RyaW5nPiB8IHN0cmluZztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NDb25uZWN0aW9uPE5vZGU+KFxuICBmaWVsZDogQ29ubmVjdGlvbjxOb2RlPixcbiAgcHJvY2Vzc05vZGU6IChub2RlOiBOb2RlKSA9PiBOb2RlIHwgUHJvbWlzZTxOb2RlPlxuKTogUHJvbWlzZTxDb25uZWN0aW9uPE5vZGU+PiB7XG4gIHJldHVybiB7XG4gICAgLi4uZmllbGQsXG4gICAgZWRnZXM6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZmllbGQuZWRnZXMubWFwKGFzeW5jIChlZGdlKSA9PiAoe1xuICAgICAgICAuLi5lZGdlLFxuICAgICAgICBub2RlOiBhd2FpdCBwcm9jZXNzTm9kZShlZGdlLm5vZGUpLFxuICAgICAgfSkpXG4gICAgKSxcbiAgfTtcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbW1vblByb2Nlc3NvcnNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlKSB7fVxuXG4gIHNlcmllcyhwcm9jZXNzb3JzOiBQcm9jZXNzb3JDYWxsYmFja1tdKTogUHJvY2Vzc29yQ2FsbGJhY2sge1xuICAgIHJldHVybiBhc3luYyAoeyBmaWVsZCwgY29udGV4dCwgb3B0aW9ucyB9KSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IHByb2Nlc3NvciBvZiBwcm9jZXNzb3JzKSB7XG4gICAgICAgIGZpZWxkID0gYXdhaXQgcHJvY2Vzc29yKHsgZmllbGQsIGNvbnRleHQsIG9wdGlvbnMgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcbiAgfVxuXG4gIG1ha2VKc29uUGFyc2VQcm9jZXNzb3Ioe1xuICAgIHBsYWluRmllbGROYW1lLFxuICAgIGpzb25GaWVsZFN1ZmZpeCA9ICdKc29uJyxcbiAgfTogUGFyc2VKc29uUHJvY2Vzc29yT3B0aW9ucyA9IHt9KTogUHJvY2Vzc29yQ2FsbGJhY2sge1xuICAgIGNvbnN0IGpzb25GaWVsZE5hbWUgPSBwbGFpbkZpZWxkTmFtZSArIGpzb25GaWVsZFN1ZmZpeDtcblxuICAgIHJldHVybiAoeyBmaWVsZCB9KSA9PiB7XG4gICAgICBpZiAoZmllbGRbcGxhaW5GaWVsZE5hbWVdID09IG51bGwgfHwganNvbkZpZWxkTmFtZSBpbiBmaWVsZCkge1xuICAgICAgICAvLyBpZiBwbGFpbkZpZWxkTmFtZSBpcyB1bmRlZmluZWQgb3IgbnVsbCwgdGhlbiBkb24ndCBwYXJzZSBpdC5cbiAgICAgICAgLy8gaWYgeW91IHBhcnNlIGl0LCB0aGVuIEpTT04ucGFyc2UobnVsbCkgYW5kIEpTT04ucGFyc2UoXCJudWxsXCIpIGJvdGggcmV0dXJuIG51bGwsIHNvXG4gICAgICAgIC8vIHlvdSBjYW4ndCBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB0d28uXG4gICAgICAgIC8vIElmIGNsZWFyRmllbGROYW1lIGFscmVhZHkgZXhpc3RzIGluIG5vZGUgYXMgYSBwcm9wZXJ0eSwgdGhlbiB3ZSBkb24ndFxuICAgICAgICAvLyBuZWVkIHRvIHByb2Nlc3MgaXQgYWdhaW4sIGV2ZW4gaWYgaXQncyB2YWx1ZSBjYW4gYmUgdW5kZWZpbmVkIG9yIG51bGwgZXZlbi5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICAgIFtqc29uRmllbGROYW1lXTogSlNPTi5wYXJzZShmaWVsZFtwbGFpbkZpZWxkTmFtZV0pLFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBtYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgY2lwaGVyRmllbGROYW1lLFxuICAgIGNsZWFyRmllbGRTdWZmaXggPSAnQ2xlYXJKc29uJyxcbiAgICBnZXRLZXlJZCA9IG51bGwsXG4gIH06IERlY3J5cHRpb25Qcm9jZXNzb3JPcHRpb25zID0ge30pOiBQcm9jZXNzb3JDYWxsYmFjayB7XG4gICAgY29uc3QgY2xlYXJGaWVsZE5hbWUgPSBjaXBoZXJGaWVsZE5hbWUgKyBjbGVhckZpZWxkU3VmZml4O1xuXG4gICAgcmV0dXJuIGFzeW5jIChwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIGNvbnRleHQsIG9wdGlvbnMgfSA9IHBhcmFtcztcblxuICAgICAgLy8gQ2FuJ3QgZGVjcnlwdCBhbnl0aGluZyBpZiBrZXkgZ3JhcGggaXMgbm90IHJldHVybmVkXG4gICAgICBpZiAoIW9wdGlvbnMuaGFzS2V5cykge1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNpcGhlckZpZWxkID0gZmllbGRbY2lwaGVyRmllbGROYW1lXTtcblxuICAgICAgLy8gY2lwaGVyRmllbGQgY2FuIGJlIGVtcHR5IHN0cmluZywgbnVsbCBvciB1bmRlZmluZWQuXG4gICAgICBpZiAoIWNpcGhlckZpZWxkIHx8IGNsZWFyRmllbGROYW1lIGluIGZpZWxkKSB7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH1cblxuICAgICAgY29uc3Qga2V5SWQgPSBnZXRLZXlJZFxuICAgICAgICA/IGF3YWl0IGdldEtleUlkKHBhcmFtcylcbiAgICAgICAgOiBmaWVsZC5rZXlJZCB8fCBmaWVsZC5rZXk/LmlkO1xuXG4gICAgICBpZiAoIWtleUlkKSB7XG4gICAgICAgIGNvbnN0IGtleUlkTmFtZSA9IGdldEtleUlkID8gJ2tleS1pZCcgOiAna2V5SWQgb3Iga2V5LmlkJztcbiAgICAgICAgdGhyb3cgbmV3IEtjQmFkTG9naWNFeGNlcHRpb24oXG4gICAgICAgICAgYFF1ZXJ5IHJlc3BvbnNlIGRvZXMgbm90IGNvbnRhaW4gJHtrZXlJZE5hbWV9IGZpZWxkOiAke2NvbnRleHQucGF0aC5qb2luKFxuICAgICAgICAgICAgJy4nXG4gICAgICAgICAgKX1gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmtleUdyYXBoXG4gICAgICAgIC5kZWNyeXB0RnJvbVN0cmluZyhrZXlJZCwgY2lwaGVyRmllbGQpXG4gICAgICAgIC50aGVuKChjbGVhcikgPT4gKHtcbiAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICBbY2xlYXJGaWVsZE5hbWVdOiBjbGVhcixcbiAgICAgICAgfSkpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -2,7 +2,7 @@ import { __awaiter, __decorate } from "tslib";
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
  import { Injectable, NgZone } from '@angular/core';
4
4
  import { KeyService } from '../../key/key.service';
5
- import { LrBadLogicException } from '../../_common/exceptions';
5
+ import { KcBadLogicException } from '../../_common/exceptions';
6
6
  import { RunOutsideAngular } from '../../_common/run-outside-angular';
7
7
  import { mapValuesMayAsync, promiseAllMayAsync } from '../../_common/utils';
8
8
  import { CommonProcessorsService, DefaultProcessorOptions, } from './common-processors.service';
@@ -173,7 +173,7 @@ let QueryProcessorService = class QueryProcessorService {
173
173
  processField({ field, context, options, }) {
174
174
  return __awaiter(this, void 0, void 0, function* () {
175
175
  if (field === null || field === void 0 ? void 0 : field.then) {
176
- throw new LrBadLogicException('processField() should not receive thenable.');
176
+ throw new KcBadLogicException('processField() should not receive thenable.');
177
177
  }
178
178
  if (field == null) {
179
179
  return null;
@@ -237,7 +237,7 @@ let QueryProcessorService = class QueryProcessorService {
237
237
  }
238
238
  registerProcessor(name, processor) {
239
239
  if (this.processors[name]) {
240
- throw new LrBadLogicException(`Processor for field ${name} already exists.`);
240
+ throw new KcBadLogicException(`Processor for field ${name} already exists.`);
241
241
  }
242
242
  this.processors[name] = processor;
243
243
  }
@@ -260,4 +260,4 @@ QueryProcessorService = __decorate([
260
260
  })
261
261
  ], QueryProcessorService);
262
262
  export { QueryProcessorService };
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcHJvY2Vzc29yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXBpL3F1ZXJ5LXByb2Nlc3Nvci9xdWVyeS1wcm9jZXNzb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHVCQUF1QixHQU14QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7OztBQUV4RixTQUFTLFVBQVUsQ0FBQyxPQUF5QixFQUFFLEdBQVc7SUFDeEQsdUNBQ0ssT0FBTyxLQUNWLElBQUksRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFDNUI7QUFDSixDQUFDO0lBUVkscUJBQXFCLFNBQXJCLHFCQUFxQjtJQTRIaEMsWUFDVSxNQUFjLEVBQ2QsVUFBc0IsRUFDdEIsTUFBK0IsRUFDL0IsYUFBOEM7UUFIOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQWlDO1FBL0gvQyxhQUFRLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLGVBQVUs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VUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxtQkFBbUIsQ0FDM0IsdUJBQXVCLElBQUksa0JBQWtCLENBQzlDLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7Q0EyTEYsQ0FBQTs7O1lBeFRBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBNUJvQixNQUFNO1lBQ2xCLFVBQVU7WUFLakIsdUJBQXVCO1lBUWhCLCtCQUErQjs7QUFlM0IscUJBQXFCO0lBTmpDLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxxQkFBcUIsQ0FxVGpDO1NBclRZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBMckJhZExvZ2ljRXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7IG1hcFZhbHVlc01heUFzeW5jLCBwcm9taXNlQWxsTWF5QXN5bmMgfSBmcm9tICcuLi8uLi9fY29tbW9uL3V0aWxzJztcbmltcG9ydCB7XG4gIENvbW1vblByb2Nlc3NvcnNTZXJ2aWNlLFxuICBEZWZhdWx0UHJvY2Vzc29yT3B0aW9ucyxcbiAgLy8gRmllbGRDb250ZXh0LFxuICBQcm9jZXNzb3JDYWxsYmFjayxcbiAgUHJvY2Vzc29yQ2FsbGJhY2tQYXJhbXMsXG4gIFByb2Nlc3NvckNvbnRleHQsXG4gIFByb2Nlc3Nvck9wdGlvbnMsXG59IGZyb20gJy4vY29tbW9uLXByb2Nlc3NvcnMuc2VydmljZSc7XG5pbXBvcnQgeyBUcFBhc3N3b3JkUmVzZXRQcm9jZXNzb3JTZXJ2aWNlIH0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC1wcm9jZXNzb3Iuc2VydmljZSc7XG5cbmZ1bmN0aW9uIGV4dGVuZFBhdGgoY29udGV4dDogUHJvY2Vzc29yQ29udGV4dCwga2V5OiBzdHJpbmcpOiBQcm9jZXNzb3JDb250ZXh0IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb250ZXh0LFxuICAgIHBhdGg6IFsuLi5jb250ZXh0LnBhdGgsIGtleV0sXG4gIH07XG59XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBRdWVyeVByb2Nlc3NvclNlcnZpY2Uge1xuICByZWFkb25seSBUWVBFTkFNRSA9ICdfX3R5cGVuYW1lJztcbiAgcHJpdmF0ZSBwcm9jZXNzb3JzOiB7IFtrZXk6IHN0cmluZ106IFByb2Nlc3NvckNhbGxiYWNrIH0gPSB7fTtcblxuICBhc3luYyBwcm9jZXNzUXVlcnkoXG4gICAgZmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgIG9wdGlvbnM6IFByb2Nlc3Nvck9wdGlvbnNcbiAgKSB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIC4uLkRlZmF1bHRQcm9jZXNzb3JPcHRpb25zLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLy8gVGhlIHRvcCBsZXZlbCBxdWVyeSBkb2VzIG5vdCBoYXZlIF9fdHlwZW5hbWVcbiAgICBjb25zdCByZXQgPSBtYXBWYWx1ZXNNYXlBc3luYyhmaWVsZHMsIChmaWVsZCwga2V5KSA9PlxuICAgICAgdGhpcy5wcm9jZXNzRmllbGQoe1xuICAgICAgICBmaWVsZCxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIHBhdGg6IFtrZXldLFxuICAgICAgICAgIHByb2Nlc3NDaGlsZHJlbjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLy8gRWl0aGVyIHJldHVybnMgYSBQcm9taXNlLCBvciBhIHZhbHVlLlxuICAvLyBUaGUgUHJvbWlzZTxhbnk+IHR5cGUgaXMgcmVkdW5kYW50IGJ1dCBpdCBzaG93cyB0aGF0IGl0IGNhbiByZXR1cm4gYSBwcm9taXNlXG4gIC8vIFdlIGFyZSBub3QgdXNpbmcgYXN5bmMgb24gdGhlIGZ1bmN0aW9uIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCBhdXRvIHByb21vdGlvbiBpbnRvIGEgUHJvbWlzZSwgd2hpY2hcbiAgLy8gYWx3YXlzIGRlZmVyIGV4ZWN1dGlvbiBpbnRvIHRoZSBldmVudCBsb29wcy4gSXQgaXMgY29zdGx5IGFuZCB1bm5lY2Vzc2FyeSBmb3Igb2JqZWN0c1xuICAvLyB3aXRoIG9ubHkgbmF0aXZlIGRhdGEgdHlwZXMuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0ZpZWxkKHtcbiAgICBmaWVsZCxcbiAgICBjb250ZXh0LFxuICAgIG9wdGlvbnMsXG4gIH06IFByb2Nlc3NvckNhbGxiYWNrUGFyYW1zKSB7XG4gICAgaWYgKGZpZWxkPy50aGVuKSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRMb2dpY0V4Y2VwdGlvbihcbiAgICAgICAgJ3Byb2Nlc3NGaWVsZCgpIHNob3VsZCBub3QgcmVjZWl2ZSB0aGVuYWJsZS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChmaWVsZCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdQYXJhbXM6IFByb2Nlc3NvckNhbGxiYWNrUGFyYW1zID0ge1xuICAgICAgZmllbGQsXG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIC8vIFByb2Nlc3NvcnMgbW9kaWZpZXMgdGhpcyBmaWVsZCB0byBjb21tdW5pY2F0ZSBiYWNrIHRvIHRoZSBjYWxsZXIuXG4gICAgICAgIHByb2Nlc3NDaGlsZHJlbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBUT0RPIGFsbG93IHJlZ2lzdGVyaW5nIHByb2Nlc3NvcnMgYnkgZmllbGQgbmFtZSBzbyB3ZSBjYW4gcHJvY2VzcyBwcmltaXRpdmUgZmllbGRzIGFzIHdlbGwuXG4gICAgLy8gV2UgaGF2ZSBjb21tb24gZmllbGRzIGxpa2UgXCJjcmVhdGVkXCIsIFwibW9kaWZpZWRcIiB0aGF0IGJlIHByb2Nlc3NlZCBiYXNlZCBvbiBuYW1lLlxuICAgIGlmIChmaWVsZFt0aGlzLlRZUEVOQU1FXSkge1xuICAgICAgLy8gSXQncyBhIGN1c3RvbSBvYmplY3QgdHlwZVxuICAgICAgY29uc3QgcHJvY2Vzc29yID0gdGhpcy5wcm9jZXNzb3JzW2ZpZWxkW3RoaXMuVFlQRU5BTUVdXTtcbiAgICAgIGlmIChwcm9jZXNzb3IpIHtcbiAgICAgICAgLy8gUmV0dXJucyBlaXRoZXIgYSB2YWx1ZSBvciBhIHByb21pc2UuXG4gICAgICAgIGZpZWxkID0gcHJvY2Vzc29yKG5ld1BhcmFtcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2Nlc3NDaGlsZHJlbiA9IChjaGlsZEZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjb250ZXh0LnByb2Nlc3NDaGlsZHJlbiAmJlxuICAgICAgICAgIGNoaWxkRmllbGQgIT09IG51bGwgJiZcbiAgICAgICAgICB0eXBlb2YgY2hpbGRGaWVsZCA9PT0gJ29iamVjdCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIG1hcFZhbHVlc01heUFzeW5jKGNoaWxkRmllbGQsICh4LCBrZXkpID0+XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NGaWVsZCh7XG4gICAgICAgICAgICAgIGZpZWxkOiB4LFxuICAgICAgICAgICAgICBjb250ZXh0OiBleHRlbmRQYXRoKGNvbnRleHQsIGtleSksXG4gICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGNoaWxkRmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIC8vIEtlZXAgcHJvY2Vzc2luZyBhbGwgY2hpbGQgZmllbGRzXG4gICAgICBpZiAoZmllbGQudGhlbikge1xuICAgICAgICAvLyBXYWl0IGZvciBmaWVsZCB0byByZXNvbHZlXG4gICAgICAgIGZpZWxkID0gZmllbGQudGhlbigocmVzb2x2ZWRGaWVsZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBwcm9jZXNzQ2hpbGRyZW4ocmVzb2x2ZWRGaWVsZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRmllbGQgaXMgYWxyZWFkeSByZXNvbHZlZFxuICAgICAgICBmaWVsZCA9IHByb2Nlc3NDaGlsZHJlbihmaWVsZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEtlZXAgcHJvY2Vzc2luZyBhbGwgY2hpbGQgZmllbGRzXG4gICAgICBpZiAoY29udGV4dC5wcm9jZXNzQ2hpbGRyZW4pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQpKSB7XG4gICAgICAgICAgZmllbGQgPSBwcm9taXNlQWxsTWF5QXN5bmMoXG4gICAgICAgICAgICAoZmllbGQgYXMgQXJyYXk8YW55PikubWFwKCh4LCBpKSA9PlxuICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NGaWVsZCh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IHgsXG4gICAgICAgICAgICAgICAgY29udGV4dDogZXh0ZW5kUGF0aChjb250ZXh0LCBpLnRvU3RyaW5nKCkpLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJQcm9jZXNzb3IobmFtZTogc3RyaW5nLCBwcm9jZXNzb3I6IFByb2Nlc3NvckNhbGxiYWNrKSB7XG4gICAgaWYgKHRoaXMucHJvY2Vzc29yc1tuYW1lXSkge1xuICAgICAgdGhyb3cgbmV3IExyQmFkTG9naWNFeGNlcHRpb24oXG4gICAgICAgIGBQcm9jZXNzb3IgZm9yIGZpZWxkICR7bmFtZX0gYWxyZWFkeSBleGlzdHMuYFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5wcm9jZXNzb3JzW25hbWVdID0gcHJvY2Vzc29yO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tb246IENvbW1vblByb2Nlc3NvcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHBwclByb2Nlc3NvcjogVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZVxuICApIHtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ0RpcmVjdG9yeU5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlSnNvblBhcnNlUHJvY2Vzc29yKHtcbiAgICAgICAgICBwbGFpbkZpZWxkTmFtZTogJ3BsYWluTWV0YScsXG4gICAgICAgIH0pLFxuICAgICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICAgIGNpcGhlckZpZWxkTmFtZTogJ2NpcGhlck1ldGEnLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ0ZpbGVTdGF0ZU5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlSnNvblBhcnNlUHJvY2Vzc29yKHtcbiAgICAgICAgICBwbGFpbkZpZWxkTmFtZTogJ3BsYWluTWV0YScsXG4gICAgICAgIH0pLFxuICAgICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICAgIGNpcGhlckZpZWxkTmFtZTogJ2NpcGhlck1ldGEnLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ0NvbnRhY3RDYXJkTm9kZScsXG4gICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdjaXBoZXJEYXRhJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ1NoYXJlZENvbnRhY3RDYXJkTm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VKc29uUGFyc2VQcm9jZXNzb3Ioe1xuICAgICAgICAgIHBsYWluRmllbGROYW1lOiAnb3duZXJQbGFpbkRhdGEnLFxuICAgICAgICB9KSxcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdvd25lckNpcGhlckRhdGEnLFxuICAgICAgICAgIGdldEtleUlkOiAoeyBmaWVsZCB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQub3duZXJLZXkuaWQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAncmVjZWl2ZXJDaXBoZXJEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkLnJlY2VpdmVyS2V5LmlkO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICAgIGNpcGhlckZpZWxkTmFtZTogJ3NoYXJlZENpcGhlckRhdGEnLFxuICAgICAgICAgIGdldEtleUlkOiAoeyBmaWVsZCB9KSA9PiBmaWVsZC5zaGFyZWRLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnVHBQYXNzd29yZFJlc2V0Tm9kZScsXG4gICAgICB0aGlzLnRwcHJQcm9jZXNzb3IubWFrZVRwUGFzc3dvcmRSZXNldE5vZGVQcm9jZXNzb3IoKVxuICAgICk7XG4gICAgdGhpcy5yZWdpc3RlclByb2Nlc3NvcihcbiAgICAgICdTaGFyZWRUcENsYWltQXBwcm92ZXJOb2RlJyxcbiAgICAgIGNvbW1vbi5zZXJpZXMoW1xuICAgICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICAgIGNpcGhlckZpZWxkTmFtZTogJ3NoYXJlZENpcGhlckFwcHJvdmFsRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnNoYXJlZEtleS5pZCxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5JyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuc2hhcmVkS2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ1RwQXNzZW1ibHlBc0FwcHJvdmVyTm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzaGFyZWRDaXBoZXJEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuc2hhcmVkS2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ1NjZW5hcmlvTm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzdWJqZWN0Q2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnN1YmplY3RLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnU2NlbmFyaW9SZWNlaXZlck5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnNoYXJlZEtleS5pZCxcbiAgICAgICAgfSksXG4gICAgICBdKVxuICAgICk7XG4gICAgdGhpcy5yZWdpc3RlclByb2Nlc3NvcihcbiAgICAgICdTY2VuYXJpb1JlY2VpdmVyRGlyZWN0b3J5Tm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzaGFyZWRDaXBoZXJEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuc2hhcmVkS2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ1NjZW5hcmlvQXBwcm92ZXJBc3NlbWJseU5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnYXNzZW1ibHlDaXBoZXJEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuYXNzZW1ibHlLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnU2NlbmFyaW9BcHByb3ZlclN1YkFzc2VtYmx5Tm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzdWJqZWN0Q2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnN1YmplY3RLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnU2NlbmFyaW9BcHByb3Zlck5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnNoYXJlZEtleS5pZCxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuc2hhcmVkS2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXknLFxuICAgICAgICAgIGdldEtleUlkOiAoeyBmaWVsZCB9KSA9PiBmaWVsZC5zaGFyZWRLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnU2NlbmFyaW9DbGFpbWFudE5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnNoYXJlZEtleS5pZCxcbiAgICAgICAgfSksXG4gICAgICBdKVxuICAgICk7XG4gICAgdGhpcy5yZWdpc3RlclByb2Nlc3NvcihcbiAgICAgICdUcEFzc2VtYmx5Tm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzdWJqZWN0Q2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnN1YmplY3RLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnVHBTdWJBc3NlbWJseU5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc3ViamVjdENpcGhlckRhdGEnLFxuICAgICAgICAgIGdldEtleUlkOiAoeyBmaWVsZCB9KSA9PiBmaWVsZC5zdWJqZWN0S2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ05vdGlmaWNhdGlvbk5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlSnNvblBhcnNlUHJvY2Vzc29yKHtcbiAgICAgICAgICBwbGFpbkZpZWxkTmFtZTogJ3BsYWluTWV0YScsXG4gICAgICAgIH0pLFxuICAgICAgICBjb21tb24ubWFrZUpzb25QYXJzZVByb2Nlc3Nvcih7XG4gICAgICAgICAgcGxhaW5GaWVsZE5hbWU6ICdwbGFpbkRhdGEnLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgfVxufVxuIl19
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcHJvY2Vzc29yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXBpL3F1ZXJ5LXByb2Nlc3Nvci9xdWVyeS1wcm9jZXNzb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHVCQUF1QixHQU14QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7OztBQUV4RixTQUFTLFVBQVUsQ0FBQyxPQUF5QixFQUFFLEdBQVc7SUFDeEQsdUNBQ0ssT0FBTyxLQUNWLElBQUksRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFDNUI7QUFDSixDQUFDO0lBUVkscUJBQXFCLFNBQXJCLHFCQUFxQjtJQTRIaEMsWUFDVSxNQUFjLEVBQ2QsVUFBc0IsRUFDdEIsTUFBK0IsRUFDL0IsYUFBOEM7UUFIOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQWlDO1FBL0gvQyxhQUFRLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLGVBQVUs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VUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxtQkFBbUIsQ0FDM0IsdUJBQXVCLElBQUksa0JBQWtCLENBQzlDLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7Q0EyTEYsQ0FBQTs7O1lBeFRBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBNUJvQixNQUFNO1lBQ2xCLFVBQVU7WUFLakIsdUJBQXVCO1lBUWhCLCtCQUErQjs7QUFlM0IscUJBQXFCO0lBTmpDLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxxQkFBcUIsQ0FxVGpDO1NBclRZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBLY0JhZExvZ2ljRXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7IG1hcFZhbHVlc01heUFzeW5jLCBwcm9taXNlQWxsTWF5QXN5bmMgfSBmcm9tICcuLi8uLi9fY29tbW9uL3V0aWxzJztcbmltcG9ydCB7XG4gIENvbW1vblByb2Nlc3NvcnNTZXJ2aWNlLFxuICBEZWZhdWx0UHJvY2Vzc29yT3B0aW9ucyxcbiAgLy8gRmllbGRDb250ZXh0LFxuICBQcm9jZXNzb3JDYWxsYmFjayxcbiAgUHJvY2Vzc29yQ2FsbGJhY2tQYXJhbXMsXG4gIFByb2Nlc3NvckNvbnRleHQsXG4gIFByb2Nlc3Nvck9wdGlvbnMsXG59IGZyb20gJy4vY29tbW9uLXByb2Nlc3NvcnMuc2VydmljZSc7XG5pbXBvcnQgeyBUcFBhc3N3b3JkUmVzZXRQcm9jZXNzb3JTZXJ2aWNlIH0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC1wcm9jZXNzb3Iuc2VydmljZSc7XG5cbmZ1bmN0aW9uIGV4dGVuZFBhdGgoY29udGV4dDogUHJvY2Vzc29yQ29udGV4dCwga2V5OiBzdHJpbmcpOiBQcm9jZXNzb3JDb250ZXh0IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb250ZXh0LFxuICAgIHBhdGg6IFsuLi5jb250ZXh0LnBhdGgsIGtleV0sXG4gIH07XG59XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBRdWVyeVByb2Nlc3NvclNlcnZpY2Uge1xuICByZWFkb25seSBUWVBFTkFNRSA9ICdfX3R5cGVuYW1lJztcbiAgcHJpdmF0ZSBwcm9jZXNzb3JzOiB7IFtrZXk6IHN0cmluZ106IFByb2Nlc3NvckNhbGxiYWNrIH0gPSB7fTtcblxuICBhc3luYyBwcm9jZXNzUXVlcnkoXG4gICAgZmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgIG9wdGlvbnM6IFByb2Nlc3Nvck9wdGlvbnNcbiAgKSB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIC4uLkRlZmF1bHRQcm9jZXNzb3JPcHRpb25zLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLy8gVGhlIHRvcCBsZXZlbCBxdWVyeSBkb2VzIG5vdCBoYXZlIF9fdHlwZW5hbWVcbiAgICBjb25zdCByZXQgPSBtYXBWYWx1ZXNNYXlBc3luYyhmaWVsZHMsIChmaWVsZCwga2V5KSA9PlxuICAgICAgdGhpcy5wcm9jZXNzRmllbGQoe1xuICAgICAgICBmaWVsZCxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIHBhdGg6IFtrZXldLFxuICAgICAgICAgIHByb2Nlc3NDaGlsZHJlbjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLy8gRWl0aGVyIHJldHVybnMgYSBQcm9taXNlLCBvciBhIHZhbHVlLlxuICAvLyBUaGUgUHJvbWlzZTxhbnk+IHR5cGUgaXMgcmVkdW5kYW50IGJ1dCBpdCBzaG93cyB0aGF0IGl0IGNhbiByZXR1cm4gYSBwcm9taXNlXG4gIC8vIFdlIGFyZSBub3QgdXNpbmcgYXN5bmMgb24gdGhlIGZ1bmN0aW9uIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCBhdXRvIHByb21vdGlvbiBpbnRvIGEgUHJvbWlzZSwgd2hpY2hcbiAgLy8gYWx3YXlzIGRlZmVyIGV4ZWN1dGlvbiBpbnRvIHRoZSBldmVudCBsb29wcy4gSXQgaXMgY29zdGx5IGFuZCB1bm5lY2Vzc2FyeSBmb3Igb2JqZWN0c1xuICAvLyB3aXRoIG9ubHkgbmF0aXZlIGRhdGEgdHlwZXMuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0ZpZWxkKHtcbiAgICBmaWVsZCxcbiAgICBjb250ZXh0LFxuICAgIG9wdGlvbnMsXG4gIH06IFByb2Nlc3NvckNhbGxiYWNrUGFyYW1zKSB7XG4gICAgaWYgKGZpZWxkPy50aGVuKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRMb2dpY0V4Y2VwdGlvbihcbiAgICAgICAgJ3Byb2Nlc3NGaWVsZCgpIHNob3VsZCBub3QgcmVjZWl2ZSB0aGVuYWJsZS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChmaWVsZCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdQYXJhbXM6IFByb2Nlc3NvckNhbGxiYWNrUGFyYW1zID0ge1xuICAgICAgZmllbGQsXG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIC8vIFByb2Nlc3NvcnMgbW9kaWZpZXMgdGhpcyBmaWVsZCB0byBjb21tdW5pY2F0ZSBiYWNrIHRvIHRoZSBjYWxsZXIuXG4gICAgICAgIHByb2Nlc3NDaGlsZHJlbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBUT0RPIGFsbG93IHJlZ2lzdGVyaW5nIHByb2Nlc3NvcnMgYnkgZmllbGQgbmFtZSBzbyB3ZSBjYW4gcHJvY2VzcyBwcmltaXRpdmUgZmllbGRzIGFzIHdlbGwuXG4gICAgLy8gV2UgaGF2ZSBjb21tb24gZmllbGRzIGxpa2UgXCJjcmVhdGVkXCIsIFwibW9kaWZpZWRcIiB0aGF0IGJlIHByb2Nlc3NlZCBiYXNlZCBvbiBuYW1lLlxuICAgIGlmIChmaWVsZFt0aGlzLlRZUEVOQU1FXSkge1xuICAgICAgLy8gSXQncyBhIGN1c3RvbSBvYmplY3QgdHlwZVxuICAgICAgY29uc3QgcHJvY2Vzc29yID0gdGhpcy5wcm9jZXNzb3JzW2ZpZWxkW3RoaXMuVFlQRU5BTUVdXTtcbiAgICAgIGlmIChwcm9jZXNzb3IpIHtcbiAgICAgICAgLy8gUmV0dXJucyBlaXRoZXIgYSB2YWx1ZSBvciBhIHByb21pc2UuXG4gICAgICAgIGZpZWxkID0gcHJvY2Vzc29yKG5ld1BhcmFtcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2Nlc3NDaGlsZHJlbiA9IChjaGlsZEZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjb250ZXh0LnByb2Nlc3NDaGlsZHJlbiAmJlxuICAgICAgICAgIGNoaWxkRmllbGQgIT09IG51bGwgJiZcbiAgICAgICAgICB0eXBlb2YgY2hpbGRGaWVsZCA9PT0gJ29iamVjdCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIG1hcFZhbHVlc01heUFzeW5jKGNoaWxkRmllbGQsICh4LCBrZXkpID0+XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NGaWVsZCh7XG4gICAgICAgICAgICAgIGZpZWxkOiB4LFxuICAgICAgICAgICAgICBjb250ZXh0OiBleHRlbmRQYXRoKGNvbnRleHQsIGtleSksXG4gICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGNoaWxkRmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIC8vIEtlZXAgcHJvY2Vzc2luZyBhbGwgY2hpbGQgZmllbGRzXG4gICAgICBpZiAoZmllbGQudGhlbikge1xuICAgICAgICAvLyBXYWl0IGZvciBmaWVsZCB0byByZXNvbHZlXG4gICAgICAgIGZpZWxkID0gZmllbGQudGhlbigocmVzb2x2ZWRGaWVsZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBwcm9jZXNzQ2hpbGRyZW4ocmVzb2x2ZWRGaWVsZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRmllbGQgaXMgYWxyZWFkeSByZXNvbHZlZFxuICAgICAgICBmaWVsZCA9IHByb2Nlc3NDaGlsZHJlbihmaWVsZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEtlZXAgcHJvY2Vzc2luZyBhbGwgY2hpbGQgZmllbGRzXG4gICAgICBpZiAoY29udGV4dC5wcm9jZXNzQ2hpbGRyZW4pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQpKSB7XG4gICAgICAgICAgZmllbGQgPSBwcm9taXNlQWxsTWF5QXN5bmMoXG4gICAgICAgICAgICAoZmllbGQgYXMgQXJyYXk8YW55PikubWFwKCh4LCBpKSA9PlxuICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NGaWVsZCh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IHgsXG4gICAgICAgICAgICAgICAgY29udGV4dDogZXh0ZW5kUGF0aChjb250ZXh0LCBpLnRvU3RyaW5nKCkpLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJQcm9jZXNzb3IobmFtZTogc3RyaW5nLCBwcm9jZXNzb3I6IFByb2Nlc3NvckNhbGxiYWNrKSB7XG4gICAgaWYgKHRoaXMucHJvY2Vzc29yc1tuYW1lXSkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkTG9naWNFeGNlcHRpb24oXG4gICAgICAgIGBQcm9jZXNzb3IgZm9yIGZpZWxkICR7bmFtZX0gYWxyZWFkeSBleGlzdHMuYFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5wcm9jZXNzb3JzW25hbWVdID0gcHJvY2Vzc29yO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tb246IENvbW1vblByb2Nlc3NvcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHBwclByb2Nlc3NvcjogVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZVxuICApIHtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ0RpcmVjdG9yeU5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlSnNvblBhcnNlUHJvY2Vzc29yKHtcbiAgICAgICAgICBwbGFpbkZpZWxkTmFtZTogJ3BsYWluTWV0YScsXG4gICAgICAgIH0pLFxuICAgICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICAgIGNpcGhlckZpZWxkTmFtZTogJ2NpcGhlck1ldGEnLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ0ZpbGVTdGF0ZU5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlSnNvblBhcnNlUHJvY2Vzc29yKHtcbiAgICAgICAgICBwbGFpbkZpZWxkTmFtZTogJ3BsYWluTWV0YScsXG4gICAgICAgIH0pLFxuICAgICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICAgIGNpcGhlckZpZWxkTmFtZTogJ2NpcGhlck1ldGEnLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ0NvbnRhY3RDYXJkTm9kZScsXG4gICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdjaXBoZXJEYXRhJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ1NoYXJlZENvbnRhY3RDYXJkTm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VKc29uUGFyc2VQcm9jZXNzb3Ioe1xuICAgICAgICAgIHBsYWluRmllbGROYW1lOiAnb3duZXJQbGFpbkRhdGEnLFxuICAgICAgICB9KSxcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdvd25lckNpcGhlckRhdGEnLFxuICAgICAgICAgIGdldEtleUlkOiAoeyBmaWVsZCB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQub3duZXJLZXkuaWQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAncmVjZWl2ZXJDaXBoZXJEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkLnJlY2VpdmVyS2V5LmlkO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICAgIGNpcGhlckZpZWxkTmFtZTogJ3NoYXJlZENpcGhlckRhdGEnLFxuICAgICAgICAgIGdldEtleUlkOiAoeyBmaWVsZCB9KSA9PiBmaWVsZC5zaGFyZWRLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnVHBQYXNzd29yZFJlc2V0Tm9kZScsXG4gICAgICB0aGlzLnRwcHJQcm9jZXNzb3IubWFrZVRwUGFzc3dvcmRSZXNldE5vZGVQcm9jZXNzb3IoKVxuICAgICk7XG4gICAgdGhpcy5yZWdpc3RlclByb2Nlc3NvcihcbiAgICAgICdTaGFyZWRUcENsYWltQXBwcm92ZXJOb2RlJyxcbiAgICAgIGNvbW1vbi5zZXJpZXMoW1xuICAgICAgICBjb21tb24ubWFrZURlY3J5cHRpb25Qcm9jZXNzb3Ioe1xuICAgICAgICAgIGNpcGhlckZpZWxkTmFtZTogJ3NoYXJlZENpcGhlckFwcHJvdmFsRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnNoYXJlZEtleS5pZCxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5JyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuc2hhcmVkS2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ1RwQXNzZW1ibHlBc0FwcHJvdmVyTm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzaGFyZWRDaXBoZXJEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuc2hhcmVkS2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ1NjZW5hcmlvTm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzdWJqZWN0Q2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnN1YmplY3RLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnU2NlbmFyaW9SZWNlaXZlck5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnNoYXJlZEtleS5pZCxcbiAgICAgICAgfSksXG4gICAgICBdKVxuICAgICk7XG4gICAgdGhpcy5yZWdpc3RlclByb2Nlc3NvcihcbiAgICAgICdTY2VuYXJpb1JlY2VpdmVyRGlyZWN0b3J5Tm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzaGFyZWRDaXBoZXJEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuc2hhcmVkS2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ1NjZW5hcmlvQXBwcm92ZXJBc3NlbWJseU5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnYXNzZW1ibHlDaXBoZXJEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuYXNzZW1ibHlLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnU2NlbmFyaW9BcHByb3ZlclN1YkFzc2VtYmx5Tm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzdWJqZWN0Q2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnN1YmplY3RLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnU2NlbmFyaW9BcHByb3Zlck5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnNoYXJlZEtleS5pZCxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhJyxcbiAgICAgICAgICBnZXRLZXlJZDogKHsgZmllbGQgfSkgPT4gZmllbGQuc2hhcmVkS2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXknLFxuICAgICAgICAgIGdldEtleUlkOiAoeyBmaWVsZCB9KSA9PiBmaWVsZC5zaGFyZWRLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnU2NlbmFyaW9DbGFpbWFudE5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc2hhcmVkQ2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnNoYXJlZEtleS5pZCxcbiAgICAgICAgfSksXG4gICAgICBdKVxuICAgICk7XG4gICAgdGhpcy5yZWdpc3RlclByb2Nlc3NvcihcbiAgICAgICdUcEFzc2VtYmx5Tm9kZScsXG4gICAgICBjb21tb24uc2VyaWVzKFtcbiAgICAgICAgY29tbW9uLm1ha2VEZWNyeXB0aW9uUHJvY2Vzc29yKHtcbiAgICAgICAgICBjaXBoZXJGaWVsZE5hbWU6ICdzdWJqZWN0Q2lwaGVyRGF0YScsXG4gICAgICAgICAgZ2V0S2V5SWQ6ICh7IGZpZWxkIH0pID0+IGZpZWxkLnN1YmplY3RLZXkuaWQsXG4gICAgICAgIH0pLFxuICAgICAgXSlcbiAgICApO1xuICAgIHRoaXMucmVnaXN0ZXJQcm9jZXNzb3IoXG4gICAgICAnVHBTdWJBc3NlbWJseU5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlRGVjcnlwdGlvblByb2Nlc3Nvcih7XG4gICAgICAgICAgY2lwaGVyRmllbGROYW1lOiAnc3ViamVjdENpcGhlckRhdGEnLFxuICAgICAgICAgIGdldEtleUlkOiAoeyBmaWVsZCB9KSA9PiBmaWVsZC5zdWJqZWN0S2V5LmlkLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJvY2Vzc29yKFxuICAgICAgJ05vdGlmaWNhdGlvbk5vZGUnLFxuICAgICAgY29tbW9uLnNlcmllcyhbXG4gICAgICAgIGNvbW1vbi5tYWtlSnNvblBhcnNlUHJvY2Vzc29yKHtcbiAgICAgICAgICBwbGFpbkZpZWxkTmFtZTogJ3BsYWluTWV0YScsXG4gICAgICAgIH0pLFxuICAgICAgICBjb21tb24ubWFrZUpzb25QYXJzZVByb2Nlc3Nvcih7XG4gICAgICAgICAgcGxhaW5GaWVsZE5hbWU6ICdwbGFpbkRhdGEnLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { __awaiter, __decorate } from "tslib";
2
2
  import { Injectable, NgZone } from '@angular/core';
3
3
  import { KeyGraphService } from '../../key/key-graph.service';
4
- import { LrBadRequestException } from '../../_common/exceptions';
4
+ import { KcBadRequestException } from '../../_common/exceptions';
5
5
  import { RunOutsideAngular } from '../../_common/run-outside-angular';
6
6
  import { processConnection, } from './common-processors.service';
7
7
  import * as i0 from "@angular/core";
@@ -40,7 +40,7 @@ let TpPasswordResetProcessorService = class TpPasswordResetProcessorService {
40
40
  const ret = Object.assign({}, field);
41
41
  if (field.assembly) {
42
42
  if (field.applied == null) {
43
- throw new LrBadRequestException('If you request for field "assembly" in the TpPasswordResetNode, then you must also request the "applied" field');
43
+ throw new KcBadRequestException('If you request for field "assembly" in the TpPasswordResetNode, then you must also request the "applied" field');
44
44
  }
45
45
  ret.assembly = yield this.processTpAssemblyNode(field.assembly, field.applied);
46
46
  }
@@ -107,4 +107,4 @@ TpPasswordResetProcessorService = __decorate([
107
107
  })
108
108
  ], TpPasswordResetProcessorService);
109
109
  export { TpPasswordResetProcessorService };
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQtcHJvY2Vzc29yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXBpL3F1ZXJ5LXByb2Nlc3Nvci90cC1wYXNzd29yZC1yZXNldC1wcm9jZXNzb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBVXRFLE9BQU8sRUFDTCxpQkFBaUIsR0FFbEIsTUFBTSw2QkFBNkIsQ0FBQzs7O0lBUXhCLCtCQUErQixTQUEvQiwrQkFBK0I7SUFDMUMsWUFBb0IsTUFBYyxFQUFVLFFBQXlCO1FBQWpELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUFHLENBQUM7SUFFbkUsOEJBQThCLENBQ2xDLElBQTZCOzs7WUFFN0IsTUFBTSxHQUFHLEdBQUcsT0FBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxFQUFFLEtBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUV0RSxNQUFNLEdBQUcscUJBQ0osSUFBSSxDQUNSLENBQUM7WUFFRixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUN6QixHQUFHLENBQUMsU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVB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SSxpQkFBaUIsRUFBRTtvQkFDckIsR0FBRyxDQUFDLDBCQUEwQixHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDcEUsWUFBWSxFQUNaLGlCQUFpQixDQUNsQixDQUFDO2lCQUNIO2FBQ0Y7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7S0FBQTtJQUVhLDZCQUE2QixDQUN6QyxRQUFnQyxFQUNoQyxRQUFpQjs7WUFFakIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBcEpBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBeEJvQixNQUFNO1lBQ2xCLGVBQWU7O0FBd0JYLCtCQUErQjtJQU4zQyxpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsK0JBQStCLENBaUozQztTQWpKWSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uLy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXkgfSBmcm9tICcuLi8uLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IExyQmFkUmVxdWVzdEV4Y2VwdGlvbiB9IGZyb20gJy4uLy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uLy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQge1xuICBJRCxcbiAgVHBBc3NlbWJseUFwcHJvdmVyTm9kZSxcbiAgVHBBc3NlbWJseU5vZGUsXG4gIFRwUGFzc3dvcmRSZXNldE5vZGUsXG4gIFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGUsXG4gIFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlLFxuICBUcFN1YkFzc2VtYmx5Tm9kZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc0Nvbm5lY3Rpb24sXG4gIFByb2Nlc3NvckNhbGxiYWNrUGFyYW1zLFxufSBmcm9tICcuL2NvbW1vbi1wcm9jZXNzb3JzLnNlcnZpY2UnO1xuXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcbn0pXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZSkge31cblxuICBhc3luYyBwcm9jZXNzVHBQYXNzd29yZFJlc2V0VXNlck5vZGUoXG4gICAgbm9kZTogVHBQYXNzd29yZFJlc2V0VXNlck5vZGVcbiAgKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZT4ge1xuICAgIGNvbnN0IHB4ayA9IG5vZGUucHhrPy5pZCAmJiAoYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkobm9kZS5weGsuaWQpKTtcblxuICAgIGNvbnN0IHJldCA9IHtcbiAgICAgIC4uLm5vZGUsXG4gICAgfTtcblxuICAgIGlmIChweGsgJiYgbm9kZS5hcHByb3ZhbHMpIHtcbiAgICAgIHJldC5hcHByb3ZhbHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgbm9kZS5hcHByb3ZhbHMubWFwKChhcHByb3ZhbCkgPT5cbiAgICAgICAgICB0aGlzLnByb2Nlc3NUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92YWxOb2RlKGFwcHJvdmFsLCBweGspXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc1RwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGUoXG4gICAgYXBwcm92YWw6IFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGUsXG4gICAgcHhrOiBLZXlcbiAgKSB7XG4gICAgY29uc3QgcmV0ID0ge1xuICAgICAgLi4uYXBwcm92YWwsXG4gICAgfTtcblxuICAgIGlmIChhcHByb3ZhbC5yZWNlaXZlckNpcGhlcikge1xuICAgICAgcmV0LnJlY2VpdmVyQ2lwaGVyQ2xlYXJKc29uID0gdGhpcy5rZXlHcmFwaC5kZWNyeXB0RnJvbVN0cmluZyhcbiAgICAgICAgcHhrLFxuICAgICAgICBhcHByb3ZhbC5yZWNlaXZlckNpcGhlclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYXBwcm92YWwucmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXkpIHtcbiAgICAgIHJldC5yZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvbiA9XG4gICAgICAgIGF3YWl0IHRoaXMua2V5R3JhcGguZGVjcnlwdEZyb21TdHJpbmcoXG4gICAgICAgICAgcHhrLFxuICAgICAgICAgIGFwcHJvdmFsLnJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5XG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBtYWtlVHBQYXNzd29yZFJlc2V0Tm9kZVByb2Nlc3NvcigpIHtcbiAgICByZXR1cm4gYXN5bmMgKHtcbiAgICAgIGZpZWxkLFxuICAgIH06IFByb2Nlc3NvckNhbGxiYWNrUGFyYW1zKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXROb2RlPiA9PiB7XG4gICAgICBjb25zdCByZXQgPSB7XG4gICAgICAgIC4uLmZpZWxkLFxuICAgICAgfTtcblxuICAgICAgaWYgKGZpZWxkLmFzc2VtYmx5KSB7XG4gICAgICAgIGlmIChmaWVsZC5hcHBsaWVkID09IG51bGwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTHJCYWRSZXF1ZXN0RXhjZXB0aW9uKFxuICAgICAgICAgICAgJ0lmIHlvdSByZXF1ZXN0IGZvciBmaWVsZCBcImFzc2VtYmx5XCIgaW4gdGhlIFRwUGFzc3dvcmRSZXNldE5vZGUsIHRoZW4geW91IG11c3QgYWxzbyByZXF1ZXN0IHRoZSBcImFwcGxpZWRcIiBmaWVsZCdcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0LmFzc2VtYmx5ID0gYXdhaXQgdGhpcy5wcm9jZXNzVHBBc3NlbWJseU5vZGUoXG4gICAgICAgICAgZmllbGQuYXNzZW1ibHksXG4gICAgICAgICAgZmllbGQuYXBwbGllZFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NUcEFzc2VtYmx5Tm9kZShcbiAgICBhc3NlbWJseTogVHBBc3NlbWJseU5vZGUsXG4gICAgYXBwbGllZDogYm9vbGVhblxuICApOiBQcm9taXNlPFRwQXNzZW1ibHlOb2RlPiB7XG4gICAgLy8gU3ViamVjdCBrZXkgaXMgZW5jcnlwdGVkIHVzZXIgdGhlIG1hc3RlciBrZXkuIFNvIGlmIHJlc2V0IGhhcyBiZWVuIGFwcGxpZWQsIHRoZW5cbiAgICAvLyB0aGVzZSBrZXlzIGFyZSBub3QgYXZhaWxhYmxlIGFueSBtb3JlLlxuICAgIGNvbnN0IHsgc3ViamVjdEtleSwgYXNzZW1ibHlLZXksIGFzc2VtYmx5Q2lwaGVyRGF0YSwgc3ViQXNzZW1ibGllcyB9ID1cbiAgICAgIGFzc2VtYmx5O1xuXG4gICAgY29uc3QgcmV0OiBUcEFzc2VtYmx5Tm9kZSA9IHtcbiAgICAgIC4uLmFzc2VtYmx5LFxuICAgICAgc3ViQXNzZW1ibGllczogYXdhaXQgcHJvY2Vzc0Nvbm5lY3Rpb24oc3ViQXNzZW1ibGllcywgKG5vZGUpID0+XG4gICAgICAgIHRoaXMucHJvY2Vzc1RwU3ViQXNzZW1ibHlOb2RlKG5vZGUsIHN1YmplY3RLZXkuaWQsIGFwcGxpZWQpXG4gICAgICApLFxuICAgIH07XG5cbiAgICBpZiAoIWFwcGxpZWQpIHtcbiAgICAgIGlmIChhc3NlbWJseUNpcGhlckRhdGEpIHtcbiAgICAgICAgcmV0LmFzc2VtYmx5Q2lwaGVyRGF0YUNsZWFySnNvbiA9IGF3YWl0IHRoaXMua2V5R3JhcGguZGVjcnlwdEZyb21TdHJpbmcoXG4gICAgICAgICAgYXNzZW1ibHlLZXkuaWQsXG4gICAgICAgICAgYXNzZW1ibHlDaXBoZXJEYXRhXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc1RwU3ViQXNzZW1ibHlOb2RlKFxuICAgIHN1YkFzc2VtYmx5OiBUcFN1YkFzc2VtYmx5Tm9kZSxcbiAgICBzdWJqZWN0S2V5SWQ6IElELFxuICAgIGFwcGxpZWQ6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxUcFN1YkFzc2VtYmx5Tm9kZT4ge1xuICAgIGNvbnN0IHsgc3ViamVjdENpcGhlckRhdGEsIGFwcHJvdmVycyB9ID0gc3ViQXNzZW1ibHk7XG5cbiAgICAvLyBjb25zdCByZXQ6IFRwU3ViQXNzZW1ibHlOb2RlID0ge1xuICAgIC8vICAgLi4uc3ViQXNzZW1ibHksXG4gICAgLy8gICBhcHByb3ZlcnM6IHtcbiAgICAvLyAgICAgLi4uYXBwcm92ZXJzLFxuICAgIC8vICAgICBlZGdlczogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgLy8gICAgICAgYXBwcm92ZXJzLmVkZ2VzLm1hcChhc3luYyAoZWRnZSkgPT4gKHtcbiAgICAvLyAgICAgICAgIC4uLmVkZ2UsXG4gICAgLy8gICAgICAgICBub2RlOiBhd2FpdCB0aGlzLnByb2Nlc3NUcEFzc2VtYmx5QXBwcm92ZXJOb2RlKGVkZ2Uubm9kZSwgYXBwbGllZCksXG4gICAgLy8gICAgICAgfSkpXG4gICAgLy8gICAgICksXG4gICAgLy8gICB9LFxuICAgIC8vIH07XG4gICAgY29uc3QgcmV0OiBUcFN1YkFzc2VtYmx5Tm9kZSA9IHtcbiAgICAgIC4uLnN1YkFzc2VtYmx5LFxuICAgICAgYXBwcm92ZXJzOiBhd2FpdCBwcm9jZXNzQ29ubmVjdGlvbihhcHByb3ZlcnMsIChub2RlKSA9PlxuICAgICAgICB0aGlzLnByb2Nlc3NUcEFzc2VtYmx5QXBwcm92ZXJOb2RlKG5vZGUsIGFwcGxpZWQpXG4gICAgICApLFxuICAgIH07XG5cbiAgICBpZiAoIWFwcGxpZWQpIHtcbiAgICAgIGlmIChzdWJqZWN0Q2lwaGVyRGF0YSkge1xuICAgICAgICByZXQuc3ViamVjdENpcGhlckRhdGFDbGVhckpzb24gPSBhd2FpdCB0aGlzLmtleUdyYXBoLmRlY3J5cHRGcm9tU3RyaW5nKFxuICAgICAgICAgIHN1YmplY3RLZXlJZCxcbiAgICAgICAgICBzdWJqZWN0Q2lwaGVyRGF0YVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NUcEFzc2VtYmx5QXBwcm92ZXJOb2RlKFxuICAgIGFwcHJvdmVyOiBUcEFzc2VtYmx5QXBwcm92ZXJOb2RlLFxuICAgIF9hcHBsaWVkOiBib29sZWFuXG4gICkge1xuICAgIHJldHVybiBhcHByb3ZlcjtcbiAgfVxufVxuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQtcHJvY2Vzc29yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXBpL3F1ZXJ5LXByb2Nlc3Nvci90cC1wYXNzd29yZC1yZXNldC1wcm9jZXNzb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBVXRFLE9BQU8sRUFDTCxpQkFBaUIsR0FFbEIsTUFBTSw2QkFBNkIsQ0FBQzs7O0lBUXhCLCtCQUErQixTQUEvQiwrQkFBK0I7SUFDMUMsWUFBb0IsTUFBYyxFQUFVLFFBQXlCO1FBQWpELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUFHLENBQUM7SUFFbkUsOEJBQThCLENBQ2xDLElBQTZCOzs7WUFFN0IsTUFBTSxHQUFHLEdBQUcsT0FBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxFQUFFLEtBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUV0RSxNQUFNLEdBQUcscUJBQ0osSUFBSSxDQUNSLENBQUM7WUFFRixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUN6QixHQUFHLENBQUMsU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUM5QixJQUFJLENBQUMsc0NBQXNDLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUMzRCxDQUNGLENBQUM7YUFDSDtZQUVELE9BQU8sR0FBRyxDQUFDOztLQUNaO0lBRWEsc0NBQXNDLENBQ2xELFFBQXlDLEVBQ3pDLEdBQVE7O1lBRVIsTUFBTSxHQUFHLHFCQUNKLFFBQVEsQ0FDWixDQUFDO1lBRUYsSUFBSSxRQUFRLENBQUMsY0FBYyxFQUFFO2dCQUMzQixHQUFHLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDM0QsR0FBRyxFQUNILFFBQVEsQ0FBQyxjQUFjLENBQ3hCLENBQUM7YUFDSDtZQUVELElBQUksUUFBUSxDQUFDLGdDQUFnQyxFQUFFO2dCQUM3QyxHQUFHLENBQUMseUNBQXlDO29CQUMzQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQ25DLEdBQUcsRUFDSCxRQUFRLENBQUMsZ0NBQWdDLENBQzFDLENBQUM7YUFDTDtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztLQUFBO0lBRUQsZ0NBQWdDO1FBQzlCLE9BQU8sQ0FBTyxFQUNaLEtBQUssR0FDbUIsRUFBZ0MsRUFBRTtZQUMxRCxNQUFNLEdBQUcscUJBQ0osS0FBSyxDQUNULENBQUM7WUFFRixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7b0JBQ3pCLE1BQU0sSUFBSSxxQkFBcUIsQ0FDN0IsZ0hBQWdILENBQ2pILENBQUM7aUJBQ0g7Z0JBRUQsR0FBRyxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FDN0MsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsT0FBTyxDQUNkLENBQUM7YUFDSDtZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFBLENBQUM7SUFDSixDQUFDO0lBRWEscUJBQXFCLENBQ2pDLFFBQXdCLEVBQ3hCLE9BQWdCOztZQUVoQixtRkFBbUY7WUFDbkYseUNBQXlDO1lBQ3pDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxHQUNsRSxRQUFRLENBQUM7WUFFWCxNQUFNLEdBQUcsbUNBQ0osUUFBUSxLQUNYLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQzdELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FDNUQsR0FDRixDQUFDO1lBRUYsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixJQUFJLGtCQUFrQixFQUFFO29CQUN0QixHQUFHLENBQUMsMkJBQTJCLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUNyRSxXQUFXLENBQUMsRUFBRSxFQUNkLGtCQUFrQixDQUNuQixDQUFDO2lCQUNIO2FBQ0Y7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7S0FBQTtJQUVhLHdCQUF3QixDQUNwQyxXQUE4QixFQUM5QixZQUFnQixFQUNoQixPQUFnQjs7WUFFaEIsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxHQUFHLFdBQVcsQ0FBQztZQUVyRCxtQ0FBbUM7WUFDbkMsb0JBQW9CO1lBQ3BCLGlCQUFpQjtZQUNqQixvQkFBb0I7WUFDcEIsZ0NBQWdDO1lBQ2hDLCtDQUErQztZQUMvQyxtQkFBbUI7WUFDbkIsOEVBQThFO1lBQzlFLFlBQVk7WUFDWixTQUFTO1lBQ1QsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNLEdBQUcsbUNBQ0osV0FBVyxLQUNkLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3JELElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQ2xELEdBQ0YsQ0FBQztZQUVGLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ1osSUFBSSxpQkFBaUIsRUFBRTtvQkFDckIsR0FBRyxDQUFDLDBCQUEwQixHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDcEUsWUFBWSxFQUNaLGlCQUFpQixDQUNsQixDQUFDO2lCQUNIO2FBQ0Y7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7S0FBQTtJQUVhLDZCQUE2QixDQUN6QyxRQUFnQyxFQUNoQyxRQUFpQjs7WUFFakIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBcEpBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBeEJvQixNQUFNO1lBQ2xCLGVBQWU7O0FBd0JYLCtCQUErQjtJQU4zQyxpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsK0JBQStCLENBaUozQztTQWpKWSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uLy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXkgfSBmcm9tICcuLi8uLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IEtjQmFkUmVxdWVzdEV4Y2VwdGlvbiB9IGZyb20gJy4uLy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uLy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQge1xuICBJRCxcbiAgVHBBc3NlbWJseUFwcHJvdmVyTm9kZSxcbiAgVHBBc3NlbWJseU5vZGUsXG4gIFRwUGFzc3dvcmRSZXNldE5vZGUsXG4gIFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGUsXG4gIFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlLFxuICBUcFN1YkFzc2VtYmx5Tm9kZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc0Nvbm5lY3Rpb24sXG4gIFByb2Nlc3NvckNhbGxiYWNrUGFyYW1zLFxufSBmcm9tICcuL2NvbW1vbi1wcm9jZXNzb3JzLnNlcnZpY2UnO1xuXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcbn0pXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZSkge31cblxuICBhc3luYyBwcm9jZXNzVHBQYXNzd29yZFJlc2V0VXNlck5vZGUoXG4gICAgbm9kZTogVHBQYXNzd29yZFJlc2V0VXNlck5vZGVcbiAgKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZT4ge1xuICAgIGNvbnN0IHB4ayA9IG5vZGUucHhrPy5pZCAmJiAoYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkobm9kZS5weGsuaWQpKTtcblxuICAgIGNvbnN0IHJldCA9IHtcbiAgICAgIC4uLm5vZGUsXG4gICAgfTtcblxuICAgIGlmIChweGsgJiYgbm9kZS5hcHByb3ZhbHMpIHtcbiAgICAgIHJldC5hcHByb3ZhbHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgbm9kZS5hcHByb3ZhbHMubWFwKChhcHByb3ZhbCkgPT5cbiAgICAgICAgICB0aGlzLnByb2Nlc3NUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92YWxOb2RlKGFwcHJvdmFsLCBweGspXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc1RwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGUoXG4gICAgYXBwcm92YWw6IFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGUsXG4gICAgcHhrOiBLZXlcbiAgKSB7XG4gICAgY29uc3QgcmV0ID0ge1xuICAgICAgLi4uYXBwcm92YWwsXG4gICAgfTtcblxuICAgIGlmIChhcHByb3ZhbC5yZWNlaXZlckNpcGhlcikge1xuICAgICAgcmV0LnJlY2VpdmVyQ2lwaGVyQ2xlYXJKc29uID0gdGhpcy5rZXlHcmFwaC5kZWNyeXB0RnJvbVN0cmluZyhcbiAgICAgICAgcHhrLFxuICAgICAgICBhcHByb3ZhbC5yZWNlaXZlckNpcGhlclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYXBwcm92YWwucmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXkpIHtcbiAgICAgIHJldC5yZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvbiA9XG4gICAgICAgIGF3YWl0IHRoaXMua2V5R3JhcGguZGVjcnlwdEZyb21TdHJpbmcoXG4gICAgICAgICAgcHhrLFxuICAgICAgICAgIGFwcHJvdmFsLnJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5XG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBtYWtlVHBQYXNzd29yZFJlc2V0Tm9kZVByb2Nlc3NvcigpIHtcbiAgICByZXR1cm4gYXN5bmMgKHtcbiAgICAgIGZpZWxkLFxuICAgIH06IFByb2Nlc3NvckNhbGxiYWNrUGFyYW1zKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXROb2RlPiA9PiB7XG4gICAgICBjb25zdCByZXQgPSB7XG4gICAgICAgIC4uLmZpZWxkLFxuICAgICAgfTtcblxuICAgICAgaWYgKGZpZWxkLmFzc2VtYmx5KSB7XG4gICAgICAgIGlmIChmaWVsZC5hcHBsaWVkID09IG51bGwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgS2NCYWRSZXF1ZXN0RXhjZXB0aW9uKFxuICAgICAgICAgICAgJ0lmIHlvdSByZXF1ZXN0IGZvciBmaWVsZCBcImFzc2VtYmx5XCIgaW4gdGhlIFRwUGFzc3dvcmRSZXNldE5vZGUsIHRoZW4geW91IG11c3QgYWxzbyByZXF1ZXN0IHRoZSBcImFwcGxpZWRcIiBmaWVsZCdcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0LmFzc2VtYmx5ID0gYXdhaXQgdGhpcy5wcm9jZXNzVHBBc3NlbWJseU5vZGUoXG4gICAgICAgICAgZmllbGQuYXNzZW1ibHksXG4gICAgICAgICAgZmllbGQuYXBwbGllZFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NUcEFzc2VtYmx5Tm9kZShcbiAgICBhc3NlbWJseTogVHBBc3NlbWJseU5vZGUsXG4gICAgYXBwbGllZDogYm9vbGVhblxuICApOiBQcm9taXNlPFRwQXNzZW1ibHlOb2RlPiB7XG4gICAgLy8gU3ViamVjdCBrZXkgaXMgZW5jcnlwdGVkIHVzZXIgdGhlIG1hc3RlciBrZXkuIFNvIGlmIHJlc2V0IGhhcyBiZWVuIGFwcGxpZWQsIHRoZW5cbiAgICAvLyB0aGVzZSBrZXlzIGFyZSBub3QgYXZhaWxhYmxlIGFueSBtb3JlLlxuICAgIGNvbnN0IHsgc3ViamVjdEtleSwgYXNzZW1ibHlLZXksIGFzc2VtYmx5Q2lwaGVyRGF0YSwgc3ViQXNzZW1ibGllcyB9ID1cbiAgICAgIGFzc2VtYmx5O1xuXG4gICAgY29uc3QgcmV0OiBUcEFzc2VtYmx5Tm9kZSA9IHtcbiAgICAgIC4uLmFzc2VtYmx5LFxuICAgICAgc3ViQXNzZW1ibGllczogYXdhaXQgcHJvY2Vzc0Nvbm5lY3Rpb24oc3ViQXNzZW1ibGllcywgKG5vZGUpID0+XG4gICAgICAgIHRoaXMucHJvY2Vzc1RwU3ViQXNzZW1ibHlOb2RlKG5vZGUsIHN1YmplY3RLZXkuaWQsIGFwcGxpZWQpXG4gICAgICApLFxuICAgIH07XG5cbiAgICBpZiAoIWFwcGxpZWQpIHtcbiAgICAgIGlmIChhc3NlbWJseUNpcGhlckRhdGEpIHtcbiAgICAgICAgcmV0LmFzc2VtYmx5Q2lwaGVyRGF0YUNsZWFySnNvbiA9IGF3YWl0IHRoaXMua2V5R3JhcGguZGVjcnlwdEZyb21TdHJpbmcoXG4gICAgICAgICAgYXNzZW1ibHlLZXkuaWQsXG4gICAgICAgICAgYXNzZW1ibHlDaXBoZXJEYXRhXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc1RwU3ViQXNzZW1ibHlOb2RlKFxuICAgIHN1YkFzc2VtYmx5OiBUcFN1YkFzc2VtYmx5Tm9kZSxcbiAgICBzdWJqZWN0S2V5SWQ6IElELFxuICAgIGFwcGxpZWQ6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxUcFN1YkFzc2VtYmx5Tm9kZT4ge1xuICAgIGNvbnN0IHsgc3ViamVjdENpcGhlckRhdGEsIGFwcHJvdmVycyB9ID0gc3ViQXNzZW1ibHk7XG5cbiAgICAvLyBjb25zdCByZXQ6IFRwU3ViQXNzZW1ibHlOb2RlID0ge1xuICAgIC8vICAgLi4uc3ViQXNzZW1ibHksXG4gICAgLy8gICBhcHByb3ZlcnM6IHtcbiAgICAvLyAgICAgLi4uYXBwcm92ZXJzLFxuICAgIC8vICAgICBlZGdlczogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgLy8gICAgICAgYXBwcm92ZXJzLmVkZ2VzLm1hcChhc3luYyAoZWRnZSkgPT4gKHtcbiAgICAvLyAgICAgICAgIC4uLmVkZ2UsXG4gICAgLy8gICAgICAgICBub2RlOiBhd2FpdCB0aGlzLnByb2Nlc3NUcEFzc2VtYmx5QXBwcm92ZXJOb2RlKGVkZ2Uubm9kZSwgYXBwbGllZCksXG4gICAgLy8gICAgICAgfSkpXG4gICAgLy8gICAgICksXG4gICAgLy8gICB9LFxuICAgIC8vIH07XG4gICAgY29uc3QgcmV0OiBUcFN1YkFzc2VtYmx5Tm9kZSA9IHtcbiAgICAgIC4uLnN1YkFzc2VtYmx5LFxuICAgICAgYXBwcm92ZXJzOiBhd2FpdCBwcm9jZXNzQ29ubmVjdGlvbihhcHByb3ZlcnMsIChub2RlKSA9PlxuICAgICAgICB0aGlzLnByb2Nlc3NUcEFzc2VtYmx5QXBwcm92ZXJOb2RlKG5vZGUsIGFwcGxpZWQpXG4gICAgICApLFxuICAgIH07XG5cbiAgICBpZiAoIWFwcGxpZWQpIHtcbiAgICAgIGlmIChzdWJqZWN0Q2lwaGVyRGF0YSkge1xuICAgICAgICByZXQuc3ViamVjdENpcGhlckRhdGFDbGVhckpzb24gPSBhd2FpdCB0aGlzLmtleUdyYXBoLmRlY3J5cHRGcm9tU3RyaW5nKFxuICAgICAgICAgIHN1YmplY3RLZXlJZCxcbiAgICAgICAgICBzdWJqZWN0Q2lwaGVyRGF0YVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NUcEFzc2VtYmx5QXBwcm92ZXJOb2RlKFxuICAgIGFwcHJvdmVyOiBUcEFzc2VtYmx5QXBwcm92ZXJOb2RlLFxuICAgIF9hcHBsaWVkOiBib29sZWFuXG4gICkge1xuICAgIHJldHVybiBhcHByb3ZlcjtcbiAgfVxufVxuIl19