nuxeo-development-framework 4.0.5 → 4.0.7

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 (24) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +1546 -1589
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/diagrams/utilities/index.js +1 -2
  4. package/esm2015/lib/shared/components/base/base.component.js +15 -17
  5. package/esm2015/lib/shared/components/nuxeo-dialog/confirmation/ndf-confirmation-dialog.component.js +4 -3
  6. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.js +8 -4
  7. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +12 -13
  8. package/esm2015/lib/shared/components/nuxeo-dialog/services/nuxeo-dialog.service.js +15 -15
  9. package/esm2015/lib/shared/services/base/base.service.js +23 -23
  10. package/esm2015/lib/shared/services/base/cache-base.service.js +23 -23
  11. package/esm2015/lib/shared/services/base/http-base.service.js +10 -10
  12. package/fesm2015/nuxeo-development-framework.js +1106 -1131
  13. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  14. package/lib/components/diagrams/utilities/index.d.ts +0 -1
  15. package/lib/shared/components/base/base.component.d.ts +11 -13
  16. package/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.d.ts +2 -1
  17. package/lib/shared/components/nuxeo-dialog/nuxeo.dialog.d.ts +3 -4
  18. package/lib/shared/components/nuxeo-dialog/services/nuxeo-dialog.service.d.ts +3 -3
  19. package/lib/shared/services/base/base.service.d.ts +6 -6
  20. package/lib/shared/services/base/cache-base.service.d.ts +4 -4
  21. package/lib/shared/services/base/http-base.service.d.ts +4 -4
  22. package/package.json +1 -1
  23. package/esm2015/lib/components/diagrams/utilities/export-graph.js +0 -28
  24. package/lib/components/diagrams/utilities/export-graph.d.ts +0 -3
@@ -1,14 +1,14 @@
1
1
  var _BaseService_nuxeoService, _BaseService_callApiService, _BaseService_cacheBaseService;
2
2
  import { __awaiter, __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Injectable } from "@angular/core";
4
- import { TranslateService } from "@ngx-translate/core";
5
- import { from } from "rxjs";
6
- import { map } from "rxjs/operators";
7
- import { HttpBaseService } from "./http-base.service";
8
- import { CacheBaseService } from "./cache-base.service";
9
- import { NuxeoService } from "../../../core/services/nuxeo/nuxeo.service";
10
- import { CallApiService } from "../../../core/services/callApi/call-api.service";
11
- import { AdapterService } from "../../../core/adapters/adapter.service";
3
+ import { Injectable } from '@angular/core';
4
+ import { TranslateService } from '@ngx-translate/core';
5
+ import { from } from 'rxjs';
6
+ import { map } from 'rxjs/operators';
7
+ import { HttpBaseService } from './http-base.service';
8
+ import { CacheBaseService } from './cache-base.service';
9
+ import { NuxeoService } from '../../../core/services/nuxeo/nuxeo.service';
10
+ import { CallApiService } from '../../../core/services/callApi/call-api.service';
11
+ import { AdapterService } from '../../../core/adapters/adapter.service';
12
12
  import * as i0 from "@angular/core";
13
13
  export class BaseService extends HttpBaseService {
14
14
  constructor(injector) {
@@ -34,7 +34,7 @@ export class BaseService extends HttpBaseService {
34
34
  automation(operationOrOptions, input = undefined, params = undefined, context = undefined, headers = undefined, isCustomAutomation = false) {
35
35
  var _a, _b, _c, _d;
36
36
  let operation;
37
- if (typeof operationOrOptions === "string") {
37
+ if (typeof operationOrOptions === 'string') {
38
38
  operation = operationOrOptions;
39
39
  }
40
40
  else {
@@ -49,7 +49,7 @@ export class BaseService extends HttpBaseService {
49
49
  return from(__classPrivateFieldGet(this, _BaseService_nuxeoService, "f").nuxeoClient
50
50
  .operation(operation, Object.assign({}, (isCustomAutomation
51
51
  ? {
52
- url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
52
+ url: `${this.environment.nuxeo}${this.environment.customAutomation}`
53
53
  }
54
54
  : {})))
55
55
  .input(input ? input : undefined)
@@ -58,22 +58,22 @@ export class BaseService extends HttpBaseService {
58
58
  .execute({ headers: headers ? Object.assign({}, headers) : undefined })).pipe(map((response) => response), this.catchErrors());
59
59
  }
60
60
  customAutomation(operationOrOptions, input = undefined, params = undefined, context = undefined, headers = undefined) {
61
- if (typeof operationOrOptions == "object") {
61
+ if (typeof operationOrOptions == 'object') {
62
62
  operationOrOptions.isCustomAutomation = true;
63
63
  }
64
64
  return this.automation(operationOrOptions, input, params, context, headers, true);
65
65
  }
66
- request(endpointOrOptions, queryParams = undefined, headers = undefined, payload = undefined, type = "get") {
66
+ request(endpointOrOptions, queryParams = undefined, headers = undefined, payload = undefined, type = 'get') {
67
67
  var _a, _b, _c, _d;
68
68
  let endpoint;
69
- if (typeof endpointOrOptions === "string") {
69
+ if (typeof endpointOrOptions === 'string') {
70
70
  endpoint = endpointOrOptions;
71
71
  }
72
72
  else {
73
73
  const options = endpointOrOptions;
74
74
  endpoint = options.endpoint;
75
75
  queryParams = (_a = options.queryParams) !== null && _a !== void 0 ? _a : undefined;
76
- type = (_b = options.type) !== null && _b !== void 0 ? _b : "get";
76
+ type = (_b = options.type) !== null && _b !== void 0 ? _b : 'get';
77
77
  headers = (_c = options.headers) !== null && _c !== void 0 ? _c : undefined;
78
78
  payload = (_d = options.payload) !== null && _d !== void 0 ? _d : undefined;
79
79
  }
@@ -81,13 +81,13 @@ export class BaseService extends HttpBaseService {
81
81
  .request(endpoint)
82
82
  .queryParams(queryParams ? Object.assign({}, queryParams) : undefined)[type]({
83
83
  headers: headers ? Object.assign({}, headers) : undefined,
84
- body: payload ? Object.assign({}, payload) : undefined,
84
+ body: payload ? Object.assign({}, payload) : undefined
85
85
  })).pipe(map((response) => response), this.catchErrors());
86
86
  }
87
87
  query(pageProviderOrOptions, params = undefined, headers = undefined) {
88
88
  var _a, _b;
89
89
  let pageProvider;
90
- if (typeof pageProviderOrOptions === "string") {
90
+ if (typeof pageProviderOrOptions === 'string') {
91
91
  pageProvider = pageProviderOrOptions;
92
92
  }
93
93
  else {
@@ -98,7 +98,7 @@ export class BaseService extends HttpBaseService {
98
98
  }
99
99
  return __classPrivateFieldGet(this, _BaseService_callApiService, "f")
100
100
  .query(Object.assign({ pageProvider }, (params ? params : {})), {
101
- headers: headers ? Object.assign({}, headers) : undefined,
101
+ headers: headers ? Object.assign({}, headers) : undefined
102
102
  })
103
103
  .pipe(map((response) => response), this.catchErrors());
104
104
  }
@@ -110,7 +110,7 @@ export class BaseService extends HttpBaseService {
110
110
  return this.query({
111
111
  pageProvider: options.pageProvider,
112
112
  params: Object.assign(Object.assign({}, (options.params ? options.params : {})), (params ? params : {})),
113
- headers: options.headers,
113
+ headers: options.headers
114
114
  });
115
115
  };
116
116
  return __classPrivateFieldGet(this, _BaseService_cacheBaseService, "f").startFetchingItems(Object.assign(Object.assign({}, options), { userName: this.userName, request: request }));
@@ -122,7 +122,7 @@ export class BaseService extends HttpBaseService {
122
122
  payload: options.payload,
123
123
  params: Object.assign(Object.assign({}, (options.params ? options.params : {})), (params ? params : {})),
124
124
  headers: options.headers,
125
- responseType: options.responseType,
125
+ responseType: options.responseType
126
126
  });
127
127
  };
128
128
  return __classPrivateFieldGet(this, _BaseService_cacheBaseService, "f").startFetchingItems(Object.assign(Object.assign({}, options), { userName: this.userName, request: request }));
@@ -149,9 +149,9 @@ export class BaseService extends HttpBaseService {
149
149
  }
150
150
  _BaseService_nuxeoService = new WeakMap(), _BaseService_callApiService = new WeakMap(), _BaseService_cacheBaseService = new WeakMap();
151
151
  BaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
152
- BaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseService, providedIn: "root" });
152
+ BaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseService, providedIn: 'root' });
153
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseService, decorators: [{
154
154
  type: Injectable,
155
- args: [{ providedIn: "root" }]
155
+ args: [{ providedIn: 'root' }]
156
156
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Jhc2UvYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVVyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBR3hFLE1BQU0sT0FBZ0IsV0FBWSxTQUFRLGVBQWU7SUFnQnZELFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBaEJsQiw0Q0FBNEI7UUFDNUIsOENBQWdDO1FBQ2hDLGdEQUFvQztRQWVsQyx1QkFBQSxJQUFJLDZCQUFpQixRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFBLENBQUM7UUFDaEQsdUJBQUEsSUFBSSwrQkFBbUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBQSxDQUFDO1FBQ3BELHVCQUFBLElBQUksaUNBQXFCLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBQSxDQUFDO1FB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QGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge1xyXG4gIENhY2hlZEZ1bGxIdHRwT3B0aW9ucyxcclxuICBDYWNoZWRGdWxsUXVlcnlPcHRpb25zLFxyXG4gIENhY2hlZEh0dHBPcHRpb25zLFxyXG4gIENhY2hlZFF1ZXJ5T3B0aW9ucyxcclxuICBPcGVyYXRpb25PcHRpb25zLFxyXG4gIFF1ZXJ5T3B0aW9ucyxcclxuICBSZXF1ZXN0T3B0aW9ucyxcclxufSBmcm9tIFwiLi9tb2RlbHNcIjtcclxuaW1wb3J0IHsgSHR0cEJhc2VTZXJ2aWNlIH0gZnJvbSBcIi4vaHR0cC1iYXNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ2FjaGVCYXNlU2VydmljZSB9IGZyb20gXCIuL2NhY2hlLWJhc2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENhbGxBcGlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2VydmljZXMvY2FsbEFwaS9jYWxsLWFwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvYWRhcHRlcnMvYWRhcHRlci5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2VydmljZSBleHRlbmRzIEh0dHBCYXNlU2VydmljZSB7XHJcbiAgI251eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlO1xyXG4gICNjYWxsQXBpU2VydmljZTogQ2FsbEFwaVNlcnZpY2U7XHJcbiAgI2NhY2hlQmFzZVNlcnZpY2U6IENhY2hlQmFzZVNlcnZpY2U7XHJcblxyXG4gIHByb3RlY3RlZCBhZGFwdGVyU2VydmljZTogQWRhcHRlclNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2U7XHJcblxyXG4gIGdldCB1c2VyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuI251eGVvU2VydmljZS5udXhlb0NsaWVudD8udXNlcjtcclxuICB9XHJcblxyXG4gIGdldCB1c2VyTmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLiNudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQ/LnVzZXI/LnByb3BlcnRpZXM/LnVzZXJuYW1lO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB0aGlzLiNudXhlb1NlcnZpY2UgPSBpbmplY3Rvci5nZXQoTnV4ZW9TZXJ2aWNlKTtcclxuICAgIHRoaXMuI2NhbGxBcGlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KENhbGxBcGlTZXJ2aWNlKTtcclxuICAgIHRoaXMuI2NhY2hlQmFzZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQ2FjaGVCYXNlU2VydmljZSk7XHJcblxyXG4gICAgdGhpcy5hZGFwdGVyU2VydmljZSA9IGluamVjdG9yLmdldChBZGFwdGVyU2VydmljZSk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgICB0aGlzLiNjYWNoZUJhc2VTZXJ2aWNlLnZhbGlkYXRlVFRMKHRoaXMudXNlck5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGF1dG9tYXRpb248VFJlc3BvbnNlID0gdW5rbm93bj4oXHJcbiAgICBvcGVyYXRpb25Pck9wdGlvbnM6IHN0cmluZyB8IE9wZXJhdGlvbk9wdGlvbnMsXHJcbiAgICBpbnB1dDogc3RyaW5nID0gdW5kZWZpbmVkLFxyXG4gICAgcGFyYW1zID0gdW5kZWZpbmVkLFxyXG4gICAgY29udGV4dCA9IHVuZGVmaW5lZCxcclxuICAgIGhlYWRlcnMgPSB1bmRlZmluZWQsXHJcbiAgICBpc0N1c3RvbUF1dG9tYXRpb24gPSBmYWxzZVxyXG4gICk6IE9ic2VydmFibGU8VFJlc3BvbnNlPiB7XHJcbiAgICBsZXQgb3BlcmF0aW9uOiBzdHJpbmc7XHJcblxyXG4gICAgaWYgKHR5cGVvZiBvcGVyYXRpb25Pck9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgb3BlcmF0aW9uID0gb3BlcmF0aW9uT3JPcHRpb25zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IG9wZXJhdGlvbk9yT3B0aW9ucyBhcyBPcGVyYXRpb25PcHRpb25zO1xyXG4gICAgICBvcGVyYXRpb24gPSBvcHRpb25zLm9wZXJhdGlvbjtcclxuICAgICAgaXNDdXN0b21BdXRvbWF0aW9uID0gb3B0aW9ucy5pc0N1c3RvbUF1dG9tYXRpb247XHJcbiAgICAgIGlucHV0ID0gb3B0aW9ucy5pbnB1dCA/PyB1bmRlZmluZWQ7XHJcbiAgICAgIHBhcmFtcyA9IG9wdGlvbnMucGFyYW1zID8/IHVuZGVmaW5lZDtcclxuICAgICAgY29udGV4dCA9IG9wdGlvbnMuY29udGV4dCA/PyB1bmRlZmluZWQ7XHJcbiAgICAgIGhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLiNudXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKG9wZXJhdGlvbiwge1xyXG4gICAgICAgICAgLi4uKGlzQ3VzdG9tQXV0b21hdGlvblxyXG4gICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuaW5wdXQoaW5wdXQgPyBpbnB1dCA6IHVuZGVmaW5lZClcclxuICAgICAgICAucGFyYW1zKHBhcmFtcyA/IHsgLi4ucGFyYW1zIH0gOiB1bmRlZmluZWQpXHJcbiAgICAgICAgLmNvbnRleHQoY29udGV4dCA/IHsgLi4uY29udGV4dCB9IDogdW5kZWZpbmVkKVxyXG4gICAgICAgIC5leGVjdXRlKHsgaGVhZGVyczogaGVhZGVycyA/IHsgLi4uaGVhZGVycyB9IDogdW5kZWZpbmVkIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UgYXMgVFJlc3BvbnNlKSxcclxuICAgICAgdGhpcy5jYXRjaEVycm9ycygpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGN1c3RvbUF1dG9tYXRpb248VFJlc3BvbnNlID0gdW5rbm93bj4oXHJcbiAgICBvcGVyYXRpb25Pck9wdGlvbnM6IHN0cmluZyB8IE9wZXJhdGlvbk9wdGlvbnMsXHJcbiAgICBpbnB1dDogc3RyaW5nID0gdW5kZWZpbmVkLFxyXG4gICAgcGFyYW1zID0gdW5kZWZpbmVkLFxyXG4gICAgY29udGV4dCA9IHVuZGVmaW5lZCxcclxuICAgIGhlYWRlcnMgPSB1bmRlZmluZWRcclxuICApOiBPYnNlcnZhYmxlPFRSZXNwb25zZT4ge1xyXG4gICAgaWYgKHR5cGVvZiBvcGVyYXRpb25Pck9wdGlvbnMgPT0gXCJvYmplY3RcIikge1xyXG4gICAgICBvcGVyYXRpb25Pck9wdGlvbnMuaXNDdXN0b21BdXRvbWF0aW9uID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmF1dG9tYXRpb24oXHJcbiAgICAgIG9wZXJhdGlvbk9yT3B0aW9ucyxcclxuICAgICAgaW5wdXQsXHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgY29udGV4dCxcclxuICAgICAgaGVhZGVycyxcclxuICAgICAgdHJ1ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZXF1ZXN0PFRSZXNwb25zZT4oXHJcbiAgICBlbmRwb2ludE9yT3B0aW9uczogc3RyaW5nIHwgUmVxdWVzdE9wdGlvbnMsXHJcbiAgICBxdWVyeVBhcmFtcyA9IHVuZGVmaW5lZCxcclxuICAgIGhlYWRlcnMgPSB1bmRlZmluZWQsXHJcbiAgICBwYXlsb2FkID0gdW5kZWZpbmVkLFxyXG4gICAgdHlwZSA9IFwiZ2V0XCJcclxuICApOiBPYnNlcnZhYmxlPFRSZXNwb25zZT4ge1xyXG4gICAgbGV0IGVuZHBvaW50OiBzdHJpbmc7XHJcblxyXG4gICAgaWYgKHR5cGVvZiBlbmRwb2ludE9yT3B0aW9ucyA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICBlbmRwb2ludCA9IGVuZHBvaW50T3JPcHRpb25zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IGVuZHBvaW50T3JPcHRpb25zIGFzIFJlcXVlc3RPcHRpb25zO1xyXG4gICAgICBlbmRwb2ludCA9IG9wdGlvbnMuZW5kcG9pbnQ7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zID0gb3B0aW9ucy5xdWVyeVBhcmFtcyA/PyB1bmRlZmluZWQ7XHJcbiAgICAgIHR5cGUgPSBvcHRpb25zLnR5cGUgPz8gXCJnZXRcIjtcclxuICAgICAgaGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyA/PyB1bmRlZmluZWQ7XHJcbiAgICAgIHBheWxvYWQgPSBvcHRpb25zLnBheWxvYWQgPz8gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLiNudXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAucmVxdWVzdChlbmRwb2ludClcclxuICAgICAgICAucXVlcnlQYXJhbXMocXVlcnlQYXJhbXMgPyB7IC4uLnF1ZXJ5UGFyYW1zIH0gOiB1bmRlZmluZWQpXHJcbiAgICAgICAgW3R5cGVdKHtcclxuICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMgPyB7IC4uLmhlYWRlcnMgfSA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGJvZHk6IHBheWxvYWQgPyB7IC4uLnBheWxvYWQgfSA6IHVuZGVmaW5lZCxcclxuICAgICAgICB9KVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlIGFzIFRSZXNwb25zZSksXHJcbiAgICAgIHRoaXMuY2F0Y2hFcnJvcnMoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBxdWVyeTxUUmVzcG9uc2U+KFxyXG4gICAgcGFnZVByb3ZpZGVyT3JPcHRpb25zOiBzdHJpbmcgfCBRdWVyeU9wdGlvbnMsXHJcbiAgICBwYXJhbXMgPSB1bmRlZmluZWQsXHJcbiAgICBoZWFkZXJzID0gdW5kZWZpbmVkXHJcbiAgKTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuICAgIGxldCBwYWdlUHJvdmlkZXI6IHN0cmluZztcclxuICAgIGlmICh0eXBlb2YgcGFnZVByb3ZpZGVyT3JPcHRpb25zID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIHBhZ2VQcm92aWRlciA9IHBhZ2VQcm92aWRlck9yT3B0aW9ucztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBwYWdlUHJvdmlkZXJPck9wdGlvbnMgYXMgUXVlcnlPcHRpb25zO1xyXG4gICAgICBwYWdlUHJvdmlkZXIgPSBvcHRpb25zLnBhZ2VQcm92aWRlcjtcclxuICAgICAgcGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgPz8gdW5kZWZpbmVkO1xyXG4gICAgICBoZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzID8/IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy4jY2FsbEFwaVNlcnZpY2VcclxuICAgICAgLnF1ZXJ5KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBhZ2VQcm92aWRlcixcclxuICAgICAgICAgIC4uLihwYXJhbXMgPyBwYXJhbXMgOiB7fSksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzID8geyAuLi5oZWFkZXJzIH0gOiB1bmRlZmluZWQsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UgYXMgVFJlc3BvbnNlKSxcclxuICAgICAgICB0aGlzLmNhdGNoRXJyb3JzKClcclxuICAgICAgKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIGhhc0l0ZW1JbkNhY2hlKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVCYXNlU2VydmljZS5oYXNJdGVtKGtleSk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBjYWNoZWRRdWVyeTxUUmVzcG9uc2U+KFxyXG4gICAgb3B0aW9uczogQ2FjaGVkUXVlcnlPcHRpb25zIHwgQ2FjaGVkRnVsbFF1ZXJ5T3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8VFJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0gKHBhcmFtcykgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5xdWVyeSh7XHJcbiAgICAgICAgcGFnZVByb3ZpZGVyOiBvcHRpb25zLnBhZ2VQcm92aWRlcixcclxuICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgIC4uLihvcHRpb25zLnBhcmFtcyA/IG9wdGlvbnMucGFyYW1zIDoge30pLFxyXG4gICAgICAgICAgLi4uKHBhcmFtcyA/IHBhcmFtcyA6IHt9KSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGhlYWRlcnM6IG9wdGlvbnMuaGVhZGVycyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLiNjYWNoZUJhc2VTZXJ2aWNlLnN0YXJ0RmV0Y2hpbmdJdGVtcyh7XHJcbiAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICAgIHVzZXJOYW1lOiB0aGlzLnVzZXJOYW1lLFxyXG4gICAgICByZXF1ZXN0OiByZXF1ZXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBjYWNoZWRHZXQ8VFJlc3BvbnNlPihcclxuICAgIG9wdGlvbnM6IENhY2hlZEh0dHBPcHRpb25zIHwgQ2FjaGVkRnVsbEh0dHBPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSAocGFyYW1zKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldCh7XHJcbiAgICAgICAgZW5kcG9pbnQ6IG9wdGlvbnMuZW5kcG9pbnQsXHJcbiAgICAgICAgcGF5bG9hZDogb3B0aW9ucy5wYXlsb2FkLFxyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgLi4uKG9wdGlvbnMucGFyYW1zID8gb3B0aW9ucy5wYXJhbXMgOiB7fSksXHJcbiAgICAgICAgICAuLi4ocGFyYW1zID8gcGFyYW1zIDoge30pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaGVhZGVyczogb3B0aW9ucy5oZWFkZXJzLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogb3B0aW9ucy5yZXNwb25zZVR5cGUsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVCYXNlU2VydmljZS5zdGFydEZldGNoaW5nSXRlbXMoe1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgICB1c2VyTmFtZTogdGhpcy51c2VyTmFtZSxcclxuICAgICAgcmVxdWVzdDogcmVxdWVzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZldGNoPFRSZXNwb25zZT4oXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBoZWFkZXJzID0gdW5kZWZpbmVkXHJcbiAgKTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSB0aGlzLiNudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQucmVwb3NpdG9yeSgpO1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIChoZWFkZXJzID8gcmVwb3NpdG9yeS5oZWFkZXJzKGhlYWRlcnMpIDogcmVwb3NpdG9yeSkuZmV0Y2gocGF0aClcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSBhcyBUUmVzcG9uc2UpLFxyXG4gICAgICB0aGlzLmNhdGNoRXJyb3JzKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB0b2tlbigpIHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLiNudXhlb1NlcnZpY2UuZ2V0VG9rZW4oKTtcclxuICB9XHJcblxyXG4gIGlzVXNlckluUm9sZShyb2xlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuI251eGVvU2VydmljZS5pc1VzZXJJblJvbGUocm9sZSk7XHJcbiAgfVxyXG5cclxuICBkb0xvZ291dCgpIHtcclxuICAgIHRoaXMuI2NhY2hlQmFzZVNlcnZpY2UuY2xlYXJBbGwodGhpcy51c2VyTmFtZSk7XHJcbiAgICB0aGlzLiNudXhlb1NlcnZpY2UuZG9Mb2dvdXQoKTtcclxuICB9XHJcblxyXG4gIGdldER1cGxpY2F0ZXMocGFyYW1zPzoge30sIGJvZHk/OiB7fSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy4jbnV4ZW9TZXJ2aWNlLmdldER1cGxpY2F0ZXMocGFyYW1zLCBib2R5KTtcclxuICB9XHJcbn1cclxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Jhc2UvYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVVyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBR3hFLE1BQU0sT0FBZ0IsV0FBWSxTQUFRLGVBQWU7SUFnQnhELFlBQVksUUFBa0I7UUFDN0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBaEJqQiw0Q0FBNEI7UUFDNUIsOENBQWdDO1FBQ2hDLGdEQUFvQztRQWVuQyx1QkFBQSxJQUFJLDZCQUFpQixRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFBLENBQUM7UUFDaEQsdUJBQUEsSUFBSSwrQkFBbUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBQSxDQUFDO1FBQ3BELHVCQUFBLElBQUksaUNBQXFCLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBQSxDQUFDO1FB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YW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuXHRDYWNoZWRGdWxsSHR0cE9wdGlvbnMsXHJcblx0Q2FjaGVkRnVsbFF1ZXJ5T3B0aW9ucyxcclxuXHRDYWNoZWRIdHRwT3B0aW9ucyxcclxuXHRDYWNoZWRRdWVyeU9wdGlvbnMsXHJcblx0T3BlcmF0aW9uT3B0aW9ucyxcclxuXHRRdWVyeU9wdGlvbnMsXHJcblx0UmVxdWVzdE9wdGlvbnNcclxufSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IEh0dHBCYXNlU2VydmljZSB9IGZyb20gJy4vaHR0cC1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWNoZUJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9jYWNoZS1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWxsQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvY2FsbEFwaS9jYWxsLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2FkYXB0ZXJzL2FkYXB0ZXIuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVNlcnZpY2UgZXh0ZW5kcyBIdHRwQmFzZVNlcnZpY2Uge1xyXG5cdCNudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZTtcclxuXHQjY2FsbEFwaVNlcnZpY2U6IENhbGxBcGlTZXJ2aWNlO1xyXG5cdCNjYWNoZUJhc2VTZXJ2aWNlOiBDYWNoZUJhc2VTZXJ2aWNlO1xyXG5cclxuXHRwcm90ZWN0ZWQgYWRhcHRlclNlcnZpY2U6IEFkYXB0ZXJTZXJ2aWNlO1xyXG5cdHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlO1xyXG5cclxuXHRnZXQgdXNlcigpIHtcclxuXHRcdHJldHVybiB0aGlzLiNudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQ/LnVzZXI7XHJcblx0fVxyXG5cclxuXHRnZXQgdXNlck5hbWUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy4jbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50Py51c2VyPy5wcm9wZXJ0aWVzPy51c2VybmFtZTtcclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG5cdFx0c3VwZXIoaW5qZWN0b3IpO1xyXG5cdFx0dGhpcy4jbnV4ZW9TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE51eGVvU2VydmljZSk7XHJcblx0XHR0aGlzLiNjYWxsQXBpU2VydmljZSA9IGluamVjdG9yLmdldChDYWxsQXBpU2VydmljZSk7XHJcblx0XHR0aGlzLiNjYWNoZUJhc2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KENhY2hlQmFzZVNlcnZpY2UpO1xyXG5cclxuXHRcdHRoaXMuYWRhcHRlclNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQWRhcHRlclNlcnZpY2UpO1xyXG5cdFx0dGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cdFx0dGhpcy4jY2FjaGVCYXNlU2VydmljZS52YWxpZGF0ZVRUTCh0aGlzLnVzZXJOYW1lKTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBhdXRvbWF0aW9uPFRSZXNwb25zZSA9IHVua25vd24+KFxyXG5cdFx0b3BlcmF0aW9uT3JPcHRpb25zOiBzdHJpbmcgfCBPcGVyYXRpb25PcHRpb25zLFxyXG5cdFx0aW5wdXQ6IHN0cmluZyA9IHVuZGVmaW5lZCxcclxuXHRcdHBhcmFtcyA9IHVuZGVmaW5lZCxcclxuXHRcdGNvbnRleHQgPSB1bmRlZmluZWQsXHJcblx0XHRoZWFkZXJzID0gdW5kZWZpbmVkLFxyXG5cdFx0aXNDdXN0b21BdXRvbWF0aW9uID0gZmFsc2VcclxuXHQpOiBPYnNlcnZhYmxlPFRSZXNwb25zZT4ge1xyXG5cdFx0bGV0IG9wZXJhdGlvbjogc3RyaW5nO1xyXG5cclxuXHRcdGlmICh0eXBlb2Ygb3BlcmF0aW9uT3JPcHRpb25zID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRvcGVyYXRpb24gPSBvcGVyYXRpb25Pck9wdGlvbnM7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCBvcHRpb25zID0gb3BlcmF0aW9uT3JPcHRpb25zIGFzIE9wZXJhdGlvbk9wdGlvbnM7XHJcblx0XHRcdG9wZXJhdGlvbiA9IG9wdGlvbnMub3BlcmF0aW9uO1xyXG5cdFx0XHRpc0N1c3RvbUF1dG9tYXRpb24gPSBvcHRpb25zLmlzQ3VzdG9tQXV0b21hdGlvbjtcclxuXHRcdFx0aW5wdXQgPSBvcHRpb25zLmlucHV0ID8/IHVuZGVmaW5lZDtcclxuXHRcdFx0cGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgPz8gdW5kZWZpbmVkO1xyXG5cdFx0XHRjb250ZXh0ID0gb3B0aW9ucy5jb250ZXh0ID8/IHVuZGVmaW5lZDtcclxuXHRcdFx0aGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyA/PyB1bmRlZmluZWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGZyb20oXHJcblx0XHRcdHRoaXMuI251eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG5cdFx0XHRcdC5vcGVyYXRpb24ob3BlcmF0aW9uLCB7XHJcblx0XHRcdFx0XHQuLi4oaXNDdXN0b21BdXRvbWF0aW9uXHJcblx0XHRcdFx0XHRcdD8ge1xyXG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWBcclxuXHRcdFx0XHRcdFx0ICB9XHJcblx0XHRcdFx0XHRcdDoge30pXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHQuaW5wdXQoaW5wdXQgPyBpbnB1dCA6IHVuZGVmaW5lZClcclxuXHRcdFx0XHQucGFyYW1zKHBhcmFtcyA/IHsgLi4ucGFyYW1zIH0gOiB1bmRlZmluZWQpXHJcblx0XHRcdFx0LmNvbnRleHQoY29udGV4dCA/IHsgLi4uY29udGV4dCB9IDogdW5kZWZpbmVkKVxyXG5cdFx0XHRcdC5leGVjdXRlKHsgaGVhZGVyczogaGVhZGVycyA/IHsgLi4uaGVhZGVycyB9IDogdW5kZWZpbmVkIH0pXHJcblx0XHQpLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UgYXMgVFJlc3BvbnNlKSxcclxuXHRcdFx0dGhpcy5jYXRjaEVycm9ycygpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGN1c3RvbUF1dG9tYXRpb248VFJlc3BvbnNlID0gdW5rbm93bj4oXHJcblx0XHRvcGVyYXRpb25Pck9wdGlvbnM6IHN0cmluZyB8IE9wZXJhdGlvbk9wdGlvbnMsXHJcblx0XHRpbnB1dDogc3RyaW5nID0gdW5kZWZpbmVkLFxyXG5cdFx0cGFyYW1zID0gdW5kZWZpbmVkLFxyXG5cdFx0Y29udGV4dCA9IHVuZGVmaW5lZCxcclxuXHRcdGhlYWRlcnMgPSB1bmRlZmluZWRcclxuXHQpOiBPYnNlcnZhYmxlPFRSZXNwb25zZT4ge1xyXG5cdFx0aWYgKHR5cGVvZiBvcGVyYXRpb25Pck9wdGlvbnMgPT0gJ29iamVjdCcpIHtcclxuXHRcdFx0b3BlcmF0aW9uT3JPcHRpb25zLmlzQ3VzdG9tQXV0b21hdGlvbiA9IHRydWU7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGhpcy5hdXRvbWF0aW9uKFxyXG5cdFx0XHRvcGVyYXRpb25Pck9wdGlvbnMsXHJcblx0XHRcdGlucHV0LFxyXG5cdFx0XHRwYXJhbXMsXHJcblx0XHRcdGNvbnRleHQsXHJcblx0XHRcdGhlYWRlcnMsXHJcblx0XHRcdHRydWVcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgcmVxdWVzdDxUUmVzcG9uc2U+KFxyXG5cdFx0ZW5kcG9pbnRPck9wdGlvbnM6IHN0cmluZyB8IFJlcXVlc3RPcHRpb25zLFxyXG5cdFx0cXVlcnlQYXJhbXMgPSB1bmRlZmluZWQsXHJcblx0XHRoZWFkZXJzID0gdW5kZWZpbmVkLFxyXG5cdFx0cGF5bG9hZCA9IHVuZGVmaW5lZCxcclxuXHRcdHR5cGUgPSAnZ2V0J1xyXG5cdCk6IE9ic2VydmFibGU8VFJlc3BvbnNlPiB7XHJcblx0XHRsZXQgZW5kcG9pbnQ6IHN0cmluZztcclxuXHJcblx0XHRpZiAodHlwZW9mIGVuZHBvaW50T3JPcHRpb25zID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRlbmRwb2ludCA9IGVuZHBvaW50T3JPcHRpb25zO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3Qgb3B0aW9ucyA9IGVuZHBvaW50T3JPcHRpb25zIGFzIFJlcXVlc3RPcHRpb25zO1xyXG5cdFx0XHRlbmRwb2ludCA9IG9wdGlvbnMuZW5kcG9pbnQ7XHJcblx0XHRcdHF1ZXJ5UGFyYW1zID0gb3B0aW9ucy5xdWVyeVBhcmFtcyA/PyB1bmRlZmluZWQ7XHJcblx0XHRcdHR5cGUgPSBvcHRpb25zLnR5cGUgPz8gJ2dldCc7XHJcblx0XHRcdGhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8gdW5kZWZpbmVkO1xyXG5cdFx0XHRwYXlsb2FkID0gb3B0aW9ucy5wYXlsb2FkID8/IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gZnJvbShcclxuXHRcdFx0dGhpcy4jbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcblx0XHRcdFx0LnJlcXVlc3QoZW5kcG9pbnQpXHJcblx0XHRcdFx0LnF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zID8geyAuLi5xdWVyeVBhcmFtcyB9IDogdW5kZWZpbmVkKVxyXG5cdFx0XHRcdFt0eXBlXSh7XHJcblx0XHRcdFx0XHRoZWFkZXJzOiBoZWFkZXJzID8geyAuLi5oZWFkZXJzIH0gOiB1bmRlZmluZWQsXHJcblx0XHRcdFx0XHRib2R5OiBwYXlsb2FkID8geyAuLi5wYXlsb2FkIH0gOiB1bmRlZmluZWRcclxuXHRcdFx0XHR9KVxyXG5cdFx0KS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlIGFzIFRSZXNwb25zZSksXHJcblx0XHRcdHRoaXMuY2F0Y2hFcnJvcnMoKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBxdWVyeTxUUmVzcG9uc2U+KFxyXG5cdFx0cGFnZVByb3ZpZGVyT3JPcHRpb25zOiBzdHJpbmcgfCBRdWVyeU9wdGlvbnMsXHJcblx0XHRwYXJhbXMgPSB1bmRlZmluZWQsXHJcblx0XHRoZWFkZXJzID0gdW5kZWZpbmVkXHJcblx0KTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuXHRcdGxldCBwYWdlUHJvdmlkZXI6IHN0cmluZztcclxuXHRcdGlmICh0eXBlb2YgcGFnZVByb3ZpZGVyT3JPcHRpb25zID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRwYWdlUHJvdmlkZXIgPSBwYWdlUHJvdmlkZXJPck9wdGlvbnM7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCBvcHRpb25zID0gcGFnZVByb3ZpZGVyT3JPcHRpb25zIGFzIFF1ZXJ5T3B0aW9ucztcclxuXHRcdFx0cGFnZVByb3ZpZGVyID0gb3B0aW9ucy5wYWdlUHJvdmlkZXI7XHJcblx0XHRcdHBhcmFtcyA9IG9wdGlvbnMucGFyYW1zID8/IHVuZGVmaW5lZDtcclxuXHRcdFx0aGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyA/PyB1bmRlZmluZWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuI2NhbGxBcGlTZXJ2aWNlXHJcblx0XHRcdC5xdWVyeShcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRwYWdlUHJvdmlkZXIsXHJcblx0XHRcdFx0XHQuLi4ocGFyYW1zID8gcGFyYW1zIDoge30pXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRoZWFkZXJzOiBoZWFkZXJzID8geyAuLi5oZWFkZXJzIH0gOiB1bmRlZmluZWRcclxuXHRcdFx0XHR9XHJcblx0XHRcdClcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSBhcyBUUmVzcG9uc2UpLFxyXG5cdFx0XHRcdHRoaXMuY2F0Y2hFcnJvcnMoKVxyXG5cdFx0XHQpO1xyXG5cdH1cclxuXHRwcm90ZWN0ZWQgaGFzSXRlbUluQ2FjaGUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLiNjYWNoZUJhc2VTZXJ2aWNlLmhhc0l0ZW0oa2V5KTtcclxuXHR9XHJcblx0cHJvdGVjdGVkIGNhY2hlZFF1ZXJ5PFRSZXNwb25zZT4oXHJcblx0XHRvcHRpb25zOiBDYWNoZWRRdWVyeU9wdGlvbnMgfCBDYWNoZWRGdWxsUXVlcnlPcHRpb25zXHJcblx0KTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuXHRcdGNvbnN0IHJlcXVlc3QgPSAocGFyYW1zKSA9PiB7XHJcblx0XHRcdHJldHVybiB0aGlzLnF1ZXJ5KHtcclxuXHRcdFx0XHRwYWdlUHJvdmlkZXI6IG9wdGlvbnMucGFnZVByb3ZpZGVyLFxyXG5cdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0Li4uKG9wdGlvbnMucGFyYW1zID8gb3B0aW9ucy5wYXJhbXMgOiB7fSksXHJcblx0XHRcdFx0XHQuLi4ocGFyYW1zID8gcGFyYW1zIDoge30pXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRoZWFkZXJzOiBvcHRpb25zLmhlYWRlcnNcclxuXHRcdFx0fSk7XHJcblx0XHR9O1xyXG5cclxuXHRcdHJldHVybiB0aGlzLiNjYWNoZUJhc2VTZXJ2aWNlLnN0YXJ0RmV0Y2hpbmdJdGVtcyh7XHJcblx0XHRcdC4uLm9wdGlvbnMsXHJcblx0XHRcdHVzZXJOYW1lOiB0aGlzLnVzZXJOYW1lLFxyXG5cdFx0XHRyZXF1ZXN0OiByZXF1ZXN0XHJcblx0XHR9KTtcclxuXHR9XHJcblx0cHJvdGVjdGVkIGNhY2hlZEdldDxUUmVzcG9uc2U+KFxyXG5cdFx0b3B0aW9uczogQ2FjaGVkSHR0cE9wdGlvbnMgfCBDYWNoZWRGdWxsSHR0cE9wdGlvbnNcclxuXHQpOiBPYnNlcnZhYmxlPFRSZXNwb25zZT4ge1xyXG5cdFx0Y29uc3QgcmVxdWVzdCA9IChwYXJhbXMpID0+IHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0KHtcclxuXHRcdFx0XHRlbmRwb2ludDogb3B0aW9ucy5lbmRwb2ludCxcclxuXHRcdFx0XHRwYXlsb2FkOiBvcHRpb25zLnBheWxvYWQsXHJcblx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHQuLi4ob3B0aW9ucy5wYXJhbXMgPyBvcHRpb25zLnBhcmFtcyA6IHt9KSxcclxuXHRcdFx0XHRcdC4uLihwYXJhbXMgPyBwYXJhbXMgOiB7fSlcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGhlYWRlcnM6IG9wdGlvbnMuaGVhZGVycyxcclxuXHRcdFx0XHRyZXNwb25zZVR5cGU6IG9wdGlvbnMucmVzcG9uc2VUeXBlXHJcblx0XHRcdH0pO1xyXG5cdFx0fTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy4jY2FjaGVCYXNlU2VydmljZS5zdGFydEZldGNoaW5nSXRlbXMoe1xyXG5cdFx0XHQuLi5vcHRpb25zLFxyXG5cdFx0XHR1c2VyTmFtZTogdGhpcy51c2VyTmFtZSxcclxuXHRcdFx0cmVxdWVzdDogcmVxdWVzdFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZmV0Y2g8VFJlc3BvbnNlPihcclxuXHRcdHBhdGg6IHN0cmluZyxcclxuXHRcdGhlYWRlcnMgPSB1bmRlZmluZWRcclxuXHQpOiBPYnNlcnZhYmxlPFRSZXNwb25zZT4ge1xyXG5cdFx0Y29uc3QgcmVwb3NpdG9yeSA9IHRoaXMuI251eGVvU2VydmljZS5udXhlb0NsaWVudC5yZXBvc2l0b3J5KCk7XHJcblx0XHRyZXR1cm4gZnJvbShcclxuXHRcdFx0KGhlYWRlcnMgPyByZXBvc2l0b3J5LmhlYWRlcnMoaGVhZGVycykgOiByZXBvc2l0b3J5KS5mZXRjaChwYXRoKVxyXG5cdFx0KS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlIGFzIFRSZXNwb25zZSksXHJcblx0XHRcdHRoaXMuY2F0Y2hFcnJvcnMoKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIHRva2VuKCkge1xyXG5cdFx0cmV0dXJuIGF3YWl0IHRoaXMuI251eGVvU2VydmljZS5nZXRUb2tlbigpO1xyXG5cdH1cclxuXHJcblx0aXNVc2VySW5Sb2xlKHJvbGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy4jbnV4ZW9TZXJ2aWNlLmlzVXNlckluUm9sZShyb2xlKTtcclxuXHR9XHJcblxyXG5cdGRvTG9nb3V0KCkge1xyXG5cdFx0dGhpcy4jY2FjaGVCYXNlU2VydmljZS5jbGVhckFsbCh0aGlzLnVzZXJOYW1lKTtcclxuXHRcdHRoaXMuI251eGVvU2VydmljZS5kb0xvZ291dCgpO1xyXG5cdH1cclxuXHJcblx0Z2V0RHVwbGljYXRlcyhwYXJhbXM/OiB7fSwgYm9keT86IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLiNudXhlb1NlcnZpY2UuZ2V0RHVwbGljYXRlcyhwYXJhbXMsIGJvZHkpO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -1,15 +1,15 @@
1
1
  var _CacheBaseService_instances, _CacheBaseService_fetchedItems, _CacheBaseService_handleCacheItems, _CacheBaseService_findNode, _CacheBaseService_findLargestDate, _CacheBaseService_handleFetchedItems, _CacheBaseService_addItemsTo, _CacheBaseService_prepareOptions, _CacheBaseService_prepareConfig, _CacheBaseService_add1SecondToModifiedDate, _CacheBaseService_clear, _CacheBaseService_validateTTLForKey, _CacheBaseService_setItemInMap, _CacheBaseService_getItem, _CacheBaseService_setItem;
2
2
  import { __classPrivateFieldGet } from "tslib";
3
- import { Injectable } from "@angular/core";
4
- import { EMPTY, Subject } from "rxjs";
5
- import { expand, last, map, retry } from "rxjs/operators";
6
- import * as moment from "moment";
7
- import { DEFAULT_CACHE_OPTIONS } from "./constants";
8
- import _omit from "lodash/omit";
9
- import _assign from "lodash/assign";
10
- import _cloneDeep from "lodash/cloneDeep";
11
- import { DEFAULT_TTL_CONFIG } from "./config";
12
- import { EnvManager } from "../../../core/env";
3
+ import { Injectable } from '@angular/core';
4
+ import { EMPTY, Subject } from 'rxjs';
5
+ import { expand, last, map, retry } from 'rxjs/operators';
6
+ import * as moment from 'moment';
7
+ import { DEFAULT_CACHE_OPTIONS } from './constants';
8
+ import _omit from 'lodash/omit';
9
+ import _assign from 'lodash/assign';
10
+ import _cloneDeep from 'lodash/cloneDeep';
11
+ import { DEFAULT_TTL_CONFIG } from './config';
12
+ import { EnvManager } from '../../../core/env/env-manager';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "../../../core/services/user/user-preferences.service";
15
15
  import * as i2 from "../../../core/utilities/utility.service";
@@ -36,10 +36,10 @@ export class CacheBaseService {
36
36
  .filter((key) => {
37
37
  var _a;
38
38
  const options = {
39
- cacheKey: key.replace(prefix, ""),
39
+ cacheKey: key.replace(prefix, ''),
40
40
  userName: userName,
41
41
  request: DEFAULT_CACHE_OPTIONS.REQUEST,
42
- prepareDataBeforeCaching: DEFAULT_CACHE_OPTIONS.PREPARE_DATA,
42
+ prepareDataBeforeCaching: DEFAULT_CACHE_OPTIONS.PREPARE_DATA
43
43
  };
44
44
  const firstFetchingDate = (_a = __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_getItem).call(this, options)) === null || _a === void 0 ? void 0 : _a.firstFetchingDate;
45
45
  if (!firstFetchingDate)
@@ -72,7 +72,7 @@ _CacheBaseService_fetchedItems = new WeakMap(), _CacheBaseService_instances = ne
72
72
  __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_setItemInMap).call(this, options.cacheKey, Object.assign(Object.assign({}, cachedItem), { fetchingItemsFromTheServer: false, onFinishFetching: new Subject(), request: options.request }));
73
73
  const params = {
74
74
  [options.pageKey]: 0,
75
- [options.minCompareDateKey]: __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_add1SecondToModifiedDate).call(this, new Date(__classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].lastModifiedDate)).toISOString(),
75
+ [options.minCompareDateKey]: __classPrivateFieldGet(this, _CacheBaseService_instances, "m", _CacheBaseService_add1SecondToModifiedDate).call(this, new Date(__classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].lastModifiedDate)).toISOString()
76
76
  };
77
77
  __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey].params = params;
78
78
  observable = options.request(params);
@@ -102,7 +102,7 @@ _CacheBaseService_fetchedItems = new WeakMap(), _CacheBaseService_instances = ne
102
102
  data: _fetchedItems.data,
103
103
  lastModifiedDate: _fetchedItems.lastModifiedDate,
104
104
  firstFetchingDate: _fetchedItems.firstFetchingDate,
105
- resultsCount: _fetchedItems[options.resultsCount],
105
+ resultsCount: _fetchedItems[options.resultsCount]
106
106
  }, options);
107
107
  }
108
108
  return _fetchedItems;
@@ -110,7 +110,7 @@ _CacheBaseService_fetchedItems = new WeakMap(), _CacheBaseService_instances = ne
110
110
  const result = _cloneDeep({
111
111
  [options.mappedDataKey]: res.data,
112
112
  [options.lastModifiedDateKey]: res.lastModifiedDate,
113
- [options.resultsCount]: res[options.resultsCount],
113
+ [options.resultsCount]: res[options.resultsCount]
114
114
  });
115
115
  res.onFinishFetching.next(result);
116
116
  return result;
@@ -231,14 +231,14 @@ _CacheBaseService_fetchedItems = new WeakMap(), _CacheBaseService_instances = ne
231
231
  DEFAULT_TTL_CONFIG.UNIT =
232
232
  ((_d = (_c = EnvManager.environment) === null || _c === void 0 ? void 0 : _c.cache) === null || _d === void 0 ? void 0 : _d.ttlUnit) || DEFAULT_TTL_CONFIG.UNIT;
233
233
  DEFAULT_TTL_CONFIG.AUTO_CHECK =
234
- ((_f = (_e = EnvManager.environment) === null || _e === void 0 ? void 0 : _e.cache) === null || _f === void 0 ? void 0 : _f.autoCheck) == "YES";
234
+ ((_f = (_e = EnvManager.environment) === null || _e === void 0 ? void 0 : _e.cache) === null || _f === void 0 ? void 0 : _f.autoCheck) == 'YES';
235
235
  DEFAULT_TTL_CONFIG.RETRY =
236
236
  ((_h = (_g = EnvManager.environment) === null || _g === void 0 ? void 0 : _g.cache) === null || _h === void 0 ? void 0 : _h.retry) || DEFAULT_TTL_CONFIG.RETRY;
237
237
  }, _CacheBaseService_add1SecondToModifiedDate = function _CacheBaseService_add1SecondToModifiedDate(date) {
238
238
  let newDate = new Date(date.getTime());
239
239
  newDate.setSeconds(newDate.getSeconds() + 1);
240
240
  return newDate;
241
- }, _CacheBaseService_clear = function _CacheBaseService_clear(userName, keyOrAll = "") {
241
+ }, _CacheBaseService_clear = function _CacheBaseService_clear(userName, keyOrAll = '') {
242
242
  Object.keys(window.localStorage)
243
243
  .filter((q) => q.startsWith(`${userName}__${DEFAULT_CACHE_OPTIONS.PREFIX}${keyOrAll}`))
244
244
  .forEach((key) => {
@@ -257,11 +257,11 @@ _CacheBaseService_fetchedItems = new WeakMap(), _CacheBaseService_instances = ne
257
257
  }, _CacheBaseService_setItemInMap = function _CacheBaseService_setItemInMap(key, val) {
258
258
  const empty = {
259
259
  data: [],
260
- firstFetchingDate: "",
261
- lastModifiedDate: "",
260
+ firstFetchingDate: '',
261
+ lastModifiedDate: '',
262
262
  resultsCount: 0,
263
263
  fetchingItemsFromTheServer: false,
264
- onFinishFetching: new Subject(),
264
+ onFinishFetching: new Subject()
265
265
  };
266
266
  let value = val ? val : empty;
267
267
  __classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[key] = value;
@@ -285,11 +285,11 @@ _CacheBaseService_fetchedItems = new WeakMap(), _CacheBaseService_instances = ne
285
285
  }
286
286
  };
287
287
  CacheBaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CacheBaseService, deps: [{ token: i1.UserPreferencesService }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Injectable });
288
- CacheBaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CacheBaseService, providedIn: "root" });
288
+ CacheBaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CacheBaseService, providedIn: 'root' });
289
289
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CacheBaseService, decorators: [{
290
290
  type: Injectable,
291
291
  args: [{
292
- providedIn: "root",
292
+ providedIn: 'root'
293
293
  }]
294
294
  }], ctorParameters: function () { return [{ type: i1.UserPreferencesService }, { type: i2.UtilityService }]; } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Jhc2UvY2FjaGUtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBELE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUsvQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLFlBQ1Usc0JBQThDLEVBQzlDLGNBQThCO1FBRDlCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCOztRQUp4Qyx5Q0FBd0MsSUFBSSxHQUFHLEVBQXFCLEVBQUM7UUFNbkUsdUJBQUEsSUFBSSxvRUFBZSxNQUFuQixJQUFJLENBQWlCLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFnQjtRQUN0QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENB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QXFCLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDdEIsQ0FBQztLQUNIO0FBQ0gsQ0FBQzs4R0E1V1UsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBleHBhbmQsIGxhc3QsIG1hcCwgcmV0cnkgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHsgREVGQVVMVF9DQUNIRV9PUFRJT05TIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEJhc2VDYWNoZU9wdGlvbnMsIENhY2hlSW5mbyB9IGZyb20gXCIuL21vZGVsc1wiO1xyXG5pbXBvcnQgX29taXQgZnJvbSBcImxvZGFzaC9vbWl0XCI7XHJcbmltcG9ydCBfYXNzaWduIGZyb20gXCJsb2Rhc2gvYXNzaWduXCI7XHJcbmltcG9ydCBfY2xvbmVEZWVwIGZyb20gXCJsb2Rhc2gvY2xvbmVEZWVwXCI7XHJcbmltcG9ydCB7IERFRkFVTFRfVFRMX0NPTkZJRyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2VydmljZXMvdXNlci91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS91dGlsaXRpZXMvdXRpbGl0eS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEVudk1hbmFnZXIgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbnZcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIENhY2hlQmFzZVNlcnZpY2Uge1xyXG4gICNmZXRjaGVkSXRlbXM6IE1hcDxzdHJpbmcsIENhY2hlSW5mbz4gPSBuZXcgTWFwPHN0cmluZywgQ2FjaGVJbmZvPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdXNlclByZWZlcmVuY2VzU2VydmljZTogVXNlclByZWZlcmVuY2VzU2VydmljZSxcclxuICAgIHByaXZhdGUgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLiNwcmVwYXJlQ29uZmlnKCk7XHJcbiAgfVxyXG5cclxuICBoYXNJdGVtKGNhY2hlS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJQcmVmZXJlbmNlc1NlcnZpY2UuaGFzSXRlbShcclxuICAgICAgYCR7REVGQVVMVF9DQUNIRV9PUFRJT05TLlBSRUZJWH0ke2NhY2hlS2V5fWBcclxuICAgICk7XHJcbiAgfVxyXG4gIGNsZWFyQWxsKHVzZXJOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuI2NsZWFyKHVzZXJOYW1lKTtcclxuICB9XHJcbiAgdmFsaWRhdGVUVEwodXNlck5hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKCFERUZBVUxUX1RUTF9DT05GSUcuQVVUT19DSEVDSyB8fCAhdXNlck5hbWUpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBwcmVmaXggPSBgJHt1c2VyTmFtZX1fXyR7REVGQVVMVF9DQUNIRV9PUFRJT05TLlBSRUZJWH1gO1xyXG4gICAgT2JqZWN0LmtleXMod2luZG93LmxvY2FsU3RvcmFnZSlcclxuICAgICAgLmZpbHRlcigocSkgPT4gcS5zdGFydHNXaXRoKHByZWZpeCkpXHJcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMgPSB7XHJcbiAgICAgICAgICBjYWNoZUtleToga2V5LnJlcGxhY2UocHJlZml4LCBcIlwiKSxcclxuICAgICAgICAgIHVzZXJOYW1lOiB1c2VyTmFtZSxcclxuICAgICAgICAgIHJlcXVlc3Q6IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5SRVFVRVNULFxyXG4gICAgICAgICAgcHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nOiBERUZBVUxUX0NBQ0hFX09QVElPTlMuUFJFUEFSRV9EQVRBLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgZmlyc3RGZXRjaGluZ0RhdGUgPSB0aGlzLiNnZXRJdGVtKG9wdGlvbnMpPy5maXJzdEZldGNoaW5nRGF0ZTtcclxuICAgICAgICBpZiAoIWZpcnN0RmV0Y2hpbmdEYXRlKSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IG1vbWVudERhdGUxID0gbW9tZW50KG5ldyBEYXRlKGZpcnN0RmV0Y2hpbmdEYXRlKSk7XHJcbiAgICAgICAgY29uc3QgbW9tZW50RGF0ZTIgPSBtb21lbnQobmV3IERhdGUoKSk7XHJcbiAgICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IG1vbWVudERhdGUyLmRpZmYoXHJcbiAgICAgICAgICBtb21lbnREYXRlMSxcclxuICAgICAgICAgIERFRkFVTFRfVFRMX0NPTkZJRy5VTklUXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZGlmZmVyZW5jZSA+PSBERUZBVUxUX1RUTF9DT05GSUcuVFRMO1xyXG4gICAgICB9KVxyXG4gICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBzdGFydEZldGNoaW5nSXRlbXMob3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLiN2YWxpZGF0ZVRUTEZvcktleShvcHRpb25zKTtcclxuXHJcbiAgICBpZiAodGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldPy5mZXRjaGluZ0l0ZW1zRnJvbVRoZVNlcnZlcikge1xyXG4gICAgICByZXR1cm4gdGhpcy4jZmV0Y2hlZEl0ZW1zW1xyXG4gICAgICAgIG9wdGlvbnMuY2FjaGVLZXlcclxuICAgICAgXS5vbkZpbmlzaEZldGNoaW5nLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuI2hhbmRsZUNhY2hlSXRlbXMob3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gICNoYW5kbGVDYWNoZUl0ZW1zKG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IG9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PjtcclxuICAgIHRoaXMuI3ByZXBhcmVPcHRpb25zKG9wdGlvbnMpO1xyXG5cclxuICAgIGNvbnN0IGNhY2hlZEl0ZW0gPSB0aGlzLiNnZXRJdGVtKG9wdGlvbnMpO1xyXG5cclxuICAgIGlmIChjYWNoZWRJdGVtKSB7XHJcbiAgICAgIHRoaXMuI3NldEl0ZW1Jbk1hcChvcHRpb25zLmNhY2hlS2V5LCB7XHJcbiAgICAgICAgLi4uY2FjaGVkSXRlbSxcclxuICAgICAgICBmZXRjaGluZ0l0ZW1zRnJvbVRoZVNlcnZlcjogZmFsc2UsXHJcbiAgICAgICAgb25GaW5pc2hGZXRjaGluZzogbmV3IFN1YmplY3Q8Q2FjaGVJbmZvPigpLFxyXG4gICAgICAgIHJlcXVlc3Q6IG9wdGlvbnMucmVxdWVzdCxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgICAgW29wdGlvbnMucGFnZUtleV06IDAsXHJcbiAgICAgICAgW29wdGlvbnMubWluQ29tcGFyZURhdGVLZXldOiB0aGlzLiNhZGQxU2Vjb25kVG9Nb2RpZmllZERhdGUoXHJcbiAgICAgICAgICBuZXcgRGF0ZSh0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ubGFzdE1vZGlmaWVkRGF0ZSlcclxuICAgICAgICApLnRvSVNPU3RyaW5nKCksXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5wYXJhbXMgPSBwYXJhbXM7XHJcbiAgICAgIG9ic2VydmFibGUgPSBvcHRpb25zLnJlcXVlc3QocGFyYW1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI3NldEl0ZW1Jbk1hcChvcHRpb25zLmNhY2hlS2V5KTtcclxuICAgICAgdGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLnJlcXVlc3QgPSBvcHRpb25zLnJlcXVlc3Q7XHJcbiAgICAgIHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5maXJzdEZldGNoaW5nRGF0ZSA9XHJcbiAgICAgICAgbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xyXG4gICAgICBvYnNlcnZhYmxlID0gb3B0aW9ucy5yZXF1ZXN0KHsgW29wdGlvbnMucGFnZUtleV06IDAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmZldGNoaW5nSXRlbXNGcm9tVGhlU2VydmVyID0gdHJ1ZTtcclxuICAgIHJldHVybiBvYnNlcnZhYmxlLnBpcGUoXHJcbiAgICAgIHJldHJ5KERFRkFVTFRfVFRMX0NPTkZJRy5SRVRSWSksXHJcbiAgICAgIGV4cGFuZCgocmVzdWx0czogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGFub3RoZXJDYWxsOiBPYnNlcnZhYmxlPGFueT4gfCBudWxsID0gbnVsbDtcclxuICAgICAgICBpZiAocmVzdWx0cyAmJiByZXN1bHRzW29wdGlvbnMubWFwcGVkRGF0YUtleV0/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgYW5vdGhlckNhbGwgPSB0aGlzLiNoYW5kbGVGZXRjaGVkSXRlbXMob3B0aW9ucywgcmVzdWx0cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhbm90aGVyQ2FsbCA/IGFub3RoZXJDYWxsIDogRU1QVFk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBsYXN0KCksXHJcbiAgICAgIG1hcCgoXykgPT4ge1xyXG4gICAgICAgIGxldCBfZmV0Y2hlZEl0ZW1zID0gdGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldIGFzIENhY2hlSW5mbztcclxuICAgICAgICBfZmV0Y2hlZEl0ZW1zLmZldGNoaW5nSXRlbXNGcm9tVGhlU2VydmVyID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKF9mZXRjaGVkSXRlbXMuZGF0YT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBfZmV0Y2hlZEl0ZW1zLmxhc3RNb2RpZmllZERhdGUgPSB0aGlzLiNmaW5kTGFyZ2VzdERhdGUoXHJcbiAgICAgICAgICAgIF9mZXRjaGVkSXRlbXMuZGF0YSxcclxuICAgICAgICAgICAgb3B0aW9ucy5jaGlsZHJlblBhdGgsXHJcbiAgICAgICAgICAgIG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLiNzZXRJdGVtKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZGF0YTogX2ZldGNoZWRJdGVtcy5kYXRhLFxyXG4gICAgICAgICAgICAgIGxhc3RNb2RpZmllZERhdGU6IF9mZXRjaGVkSXRlbXMubGFzdE1vZGlmaWVkRGF0ZSxcclxuICAgICAgICAgICAgICBmaXJzdEZldGNoaW5nRGF0ZTogX2ZldGNoZWRJdGVtcy5maXJzdEZldGNoaW5nRGF0ZSxcclxuICAgICAgICAgICAgICByZXN1bHRzQ291bnQ6IF9mZXRjaGVkSXRlbXNbb3B0aW9ucy5yZXN1bHRzQ291bnRdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvcHRpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gX2ZldGNoZWRJdGVtcztcclxuICAgICAgfSksXHJcbiAgICAgIG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gX2Nsb25lRGVlcCh7XHJcbiAgICAgICAgICBbb3B0aW9ucy5tYXBwZWREYXRhS2V5XTogcmVzLmRhdGEsXHJcbiAgICAgICAgICBbb3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlS2V5XTogcmVzLmxhc3RNb2RpZmllZERhdGUsXHJcbiAgICAgICAgICBbb3B0aW9ucy5yZXN1bHRzQ291bnRdOiByZXNbb3B0aW9ucy5yZXN1bHRzQ291bnRdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJlcy5vbkZpbmlzaEZldGNoaW5nLm5leHQocmVzdWx0KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgI2ZpbmROb2RlKFxyXG4gICAgaXRlbXM6IGFueVtdLFxyXG4gICAgdW5pcXVlQ29tcGFyZUtleTogc3RyaW5nLFxyXG4gICAgY2hpbGRyZW5QYXRoOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogYW55XHJcbiAgKSB7XHJcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgaXRlbXMpIHtcclxuICAgICAgaWYgKG5vZGVbdW5pcXVlQ29tcGFyZUtleV0gPT09IHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKG5vZGUsIGNoaWxkcmVuUGF0aCk7XHJcbiAgICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuI2ZpbmROb2RlKFxyXG4gICAgICAgICAgY2hpbGRyZW4sXHJcbiAgICAgICAgICB1bmlxdWVDb21wYXJlS2V5LFxyXG4gICAgICAgICAgY2hpbGRyZW5QYXRoLFxyXG4gICAgICAgICAgdmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgI2ZpbmRMYXJnZXN0RGF0ZShcclxuICAgIG5vZGVMaXN0OiBhbnlbXSxcclxuICAgIGNoaWxkcmVuUGF0aDogc3RyaW5nLFxyXG4gICAgZGF0ZVBhdGg6IHN0cmluZ1xyXG4gICk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFyZ2VzdERhdGU6IHN0cmluZyA9IG51bGw7XHJcbiAgICBjb25zdCB0cmF2ZXJzZSA9IChub2RlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCFub2RlKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRWYWx1ZShub2RlLCBjaGlsZHJlblBhdGgpO1xyXG4gICAgICBjb25zdCBub2RlRGF0ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUobm9kZSwgZGF0ZVBhdGgpO1xyXG4gICAgICBpZiAobm9kZURhdGUgJiYgKCFsYXJnZXN0RGF0ZSB8fCBub2RlRGF0ZSA+IGxhcmdlc3REYXRlKSkge1xyXG4gICAgICAgIGxhcmdlc3REYXRlID0gbm9kZURhdGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XHJcbiAgICAgICAgICB0cmF2ZXJzZShjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgbm9kZUxpc3QuZm9yRWFjaCgobm9kZSkgPT4gdHJhdmVyc2Uobm9kZSkpO1xyXG4gICAgcmV0dXJuIGxhcmdlc3REYXRlO1xyXG4gIH1cclxuICAjaGFuZGxlRmV0Y2hlZEl0ZW1zKFxyXG4gICAgb3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucyxcclxuICAgIHJlczogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHwgbnVsbCB7XHJcbiAgICBpZiAodGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmRhdGE/Lmxlbmd0aCkge1xyXG4gICAgICByZXNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZmlyc3QgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKFxyXG4gICAgICAgICAgYSxcclxuICAgICAgICAgIG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGhcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcbiAgICAgICAgICBiLFxyXG4gICAgICAgICAgb3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGZpcnN0KS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShzZWNvbmQpLmdldFRpbWUoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJlc1tvcHRpb25zLm1hcHBlZERhdGFLZXldLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy4jZmluZE5vZGUoXHJcbiAgICAgICAgICB0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZGF0YSxcclxuICAgICAgICAgIG9wdGlvbnMudW5pcXVlQ29tcGFyZUtleSxcclxuICAgICAgICAgIG9wdGlvbnMuY2hpbGRyZW5QYXRoLFxyXG4gICAgICAgICAgZWxlbWVudFtvcHRpb25zLnVuaXF1ZUNvbXBhcmVLZXldXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWFwcGVkRWxlbWVudCA9IG9wdGlvbnMucHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nKFtlbGVtZW50XSlbMF07XHJcbiAgICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICAgIC8vIGVkaXQgOiB1cGRhdGUgaXRlbSBpbiBjYWNoZVxyXG4gICAgICAgICAgY29uc3QgZmlsdGVyZWRTb3VyY2UgPSBfb21pdChcclxuICAgICAgICAgICAgbWFwcGVkRWxlbWVudCxcclxuICAgICAgICAgICAgb3B0aW9ucy5leGNsdWRlS2V5c1doZW5VcGRhdGVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBfYXNzaWduKGl0ZW0sIGZpbHRlcmVkU291cmNlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gYWRkIDogY2hlY2sgZGF0ZSB0byBkZXRlcm1pbmUgd2hlcmUgd2lsbCBpbnNlcnRcclxuXHJcbiAgICAgICAgICAvLyBpZiBpdGVtIHBhcmVudCBub3QgZm91bmQgYWRkIGFzIHJvb3QgZWxzZSB3aWxsIGFkZCBsZWF2ZXMgdG8gc3ViUGFyZW50XHJcbiAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy4jZmluZE5vZGUoXHJcbiAgICAgICAgICAgIHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5kYXRhLFxyXG4gICAgICAgICAgICBvcHRpb25zLnVuaXF1ZUNvbXBhcmVLZXksXHJcbiAgICAgICAgICAgIG9wdGlvbnMuY2hpbGRyZW5QYXRoLFxyXG4gICAgICAgICAgICBlbGVtZW50W29wdGlvbnMucGFyZW50S2V5XVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICBpZiAobm9kZSkge1xyXG4gICAgICAgICAgICAvLyB3aWxsIGNvbXBhcmUgd2l0aCBub2RlIGNoaWxkIHRvIGFkZFxyXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcbiAgICAgICAgICAgICAgbm9kZSxcclxuICAgICAgICAgICAgICBvcHRpb25zLmNoaWxkcmVuUGF0aFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLiNhZGRJdGVtc1RvKG9wdGlvbnMsIGNoaWxkcmVuLCBlbGVtZW50KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdpbGwgY29tcGFyZSB3aXRoIHJvb3QgbGV2ZWwgdG8gYWRkXHJcbiAgICAgICAgICAgIHRoaXMuI2FkZEl0ZW1zVG8oXHJcbiAgICAgICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgICAgICB0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZGF0YSxcclxuICAgICAgICAgICAgICBlbGVtZW50XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc1tvcHRpb25zLm1hcHBlZERhdGFLZXldID0gb3B0aW9ucy5wcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmcoXHJcbiAgICAgICAgcmVzW29wdGlvbnMubWFwcGVkRGF0YUtleV1cclxuICAgICAgKTtcclxuICAgICAgdGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmRhdGEgPSByZXNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XTtcclxuICAgICAgdGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLnJlc3VsdHNDb3VudCA9XHJcbiAgICAgICAgcmVzW29wdGlvbnMucmVzdWx0c0NvdW50XTtcclxuICAgIH1cclxuICAgIGlmIChyZXNbb3B0aW9ucy50b3RhbFBhZ2VLZXldIC0gcmVzW29wdGlvbnMucGFnZUtleV0gPiAxKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ucmVxdWVzdCh7XHJcbiAgICAgICAgLi4uKHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5wYXJhbXMgfHwge30pLFxyXG4gICAgICAgIFtvcHRpb25zLnBhZ2VLZXldOiByZXNbb3B0aW9ucy5wYWdlS2V5XSArIDEsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gICNhZGRJdGVtc1RvKG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMsIGRhdGE6IGFueVtdLCBpdGVtOiBhbnkpIHtcclxuICAgIGNvbnN0IGZpcnN0Q2FjaGVkTW9kaWZpZWQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKFxyXG4gICAgICBkYXRhWzBdLFxyXG4gICAgICBvcHRpb25zLmxhc3RNb2RpZmllZERhdGVQYXRoXHJcbiAgICApO1xyXG4gICAgY29uc3QgY3VycmVudE1vZGlmaWVkID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRWYWx1ZShcclxuICAgICAgaXRlbSxcclxuICAgICAgb3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aFxyXG4gICAgKTtcclxuICAgIGlmIChmaXJzdENhY2hlZE1vZGlmaWVkIDwgY3VycmVudE1vZGlmaWVkKSB7XHJcbiAgICAgIGRhdGEudW5zaGlmdCguLi5vcHRpb25zLnByZXBhcmVEYXRhQmVmb3JlQ2FjaGluZyhbaXRlbV0pKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGEucHVzaCguLi5vcHRpb25zLnByZXBhcmVEYXRhQmVmb3JlQ2FjaGluZyhbaXRlbV0pKTtcclxuICAgIH1cclxuICB9XHJcbiAgI3ByZXBhcmVPcHRpb25zKG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpIHtcclxuICAgIG9wdGlvbnMucHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nID1cclxuICAgICAgb3B0aW9ucy5wcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmcgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLlBSRVBBUkVfREFUQTtcclxuICAgIG9wdGlvbnMucGFnZUtleSA9IG9wdGlvbnMucGFnZUtleSB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuUEFHRV9LRVk7XHJcbiAgICBvcHRpb25zLnRvdGFsUGFnZUtleSA9XHJcbiAgICAgIG9wdGlvbnMudG90YWxQYWdlS2V5IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5UT1RBTF9QQUdFX0tFWTtcclxuICAgIG9wdGlvbnMucmVzdWx0c0NvdW50ID1cclxuICAgICAgb3B0aW9ucy5yZXN1bHRzQ291bnQgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLlJFU1VMVFNfQ09VTlRfS0VZO1xyXG4gICAgb3B0aW9ucy5tYXBwZWREYXRhS2V5ID1cclxuICAgICAgb3B0aW9ucy5tYXBwZWREYXRhS2V5IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5NQVBQRURfREFUQV9LRVk7XHJcbiAgICBvcHRpb25zLnVuaXF1ZUNvbXBhcmVLZXkgPVxyXG4gICAgICBvcHRpb25zLnVuaXF1ZUNvbXBhcmVLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLlVOSVFVRV9DT01QQVJFX0tFWTtcclxuICAgIG9wdGlvbnMubWluQ29tcGFyZURhdGVLZXkgPVxyXG4gICAgICBvcHRpb25zLm1pbkNvbXBhcmVEYXRlS2V5IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5NSU5fQ09NUEFSRV9EQVRFX0tFWTtcclxuICAgIG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZUtleSA9XHJcbiAgICAgIG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZUtleSB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuTEFTVF9NT0RJRklFRF9LRVk7XHJcbiAgICBvcHRpb25zLmxhc3RNb2RpZmllZERhdGVQYXRoID1cclxuICAgICAgb3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aCB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuTEFTVF9NT0RJRklFRF9QQVRIO1xyXG4gICAgb3B0aW9ucy5leGNsdWRlS2V5c1doZW5VcGRhdGUgPVxyXG4gICAgICBvcHRpb25zLmV4Y2x1ZGVLZXlzV2hlblVwZGF0ZSB8fFxyXG4gICAgICBERUZBVUxUX0NBQ0hFX09QVElPTlMuRVhDTFVERV9LRVlTX1dIRU5fVVBEQVRFO1xyXG4gICAgb3B0aW9ucy5jaGlsZHJlblBhdGggPVxyXG4gICAgICBvcHRpb25zLmNoaWxkcmVuUGF0aCB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuQ0hJTERSRU5fUEFUSDtcclxuICAgIG9wdGlvbnMucGFyZW50S2V5ID0gb3B0aW9ucy5wYXJlbnRLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLlBBUkVOVF9LRVk7XHJcbiAgfVxyXG4gICNwcmVwYXJlQ29uZmlnKCkge1xyXG4gICAgREVGQVVMVF9UVExfQ09ORklHLlRUTCA9XHJcbiAgICAgIEVudk1hbmFnZXIuZW52aXJvbm1lbnQ/LmNhY2hlPy50dGwgfHwgREVGQVVMVF9UVExfQ09ORklHLlRUTDtcclxuICAgIERFRkFVTFRfVFRMX0NPTkZJRy5VTklUID1cclxuICAgICAgRW52TWFuYWdlci5lbnZpcm9ubWVudD8uY2FjaGU/LnR0bFVuaXQgfHwgREVGQVVMVF9UVExfQ09ORklHLlVOSVQ7XHJcbiAgICBERUZBVUxUX1RUTF9DT05GSUcuQVVUT19DSEVDSyA9XHJcbiAgICAgIEVudk1hbmFnZXIuZW52aXJvbm1lbnQ/LmNhY2hlPy5hdXRvQ2hlY2sgPT0gXCJZRVNcIjtcclxuICAgIERFRkFVTFRfVFRMX0NPTkZJRy5SRVRSWSA9XHJcbiAgICAgIEVudk1hbmFnZXIuZW52aXJvbm1lbnQ/LmNhY2hlPy5yZXRyeSB8fCBERUZBVUxUX1RUTF9DT05GSUcuUkVUUlk7XHJcbiAgfVxyXG4gICNhZGQxU2Vjb25kVG9Nb2RpZmllZERhdGUoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgbGV0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XHJcbiAgICBuZXdEYXRlLnNldFNlY29uZHMobmV3RGF0ZS5nZXRTZWNvbmRzKCkgKyAxKTtcclxuICAgIHJldHVybiBuZXdEYXRlO1xyXG4gIH1cclxuICAjY2xlYXIodXNlck5hbWU6IHN0cmluZywga2V5T3JBbGw6IHN0cmluZyA9IFwiXCIpIHtcclxuICAgIE9iamVjdC5rZXlzKHdpbmRvdy5sb2NhbFN0b3JhZ2UpXHJcbiAgICAgIC5maWx0ZXIoKHEpID0+XHJcbiAgICAgICAgcS5zdGFydHNXaXRoKGAke3VzZXJOYW1lfV9fJHtERUZBVUxUX0NBQ0hFX09QVElPTlMuUFJFRklYfSR7a2V5T3JBbGx9YClcclxuICAgICAgKVxyXG4gICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAjdmFsaWRhdGVUVExGb3JLZXkob3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucykge1xyXG4gICAgY29uc3QgZmlyc3RGZXRjaGluZ0RhdGUgPSB0aGlzLiNnZXRJdGVtKG9wdGlvbnMpPy5maXJzdEZldGNoaW5nRGF0ZTtcclxuXHJcbiAgICBpZiAoIWZpcnN0RmV0Y2hpbmdEYXRlKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgbW9tZW50RGF0ZTEgPSBtb21lbnQobmV3IERhdGUoZmlyc3RGZXRjaGluZ0RhdGUpKTtcclxuICAgIGNvbnN0IG1vbWVudERhdGUyID0gbW9tZW50KG5ldyBEYXRlKCkpO1xyXG5cclxuICAgIGNvbnN0IGRpZmZlcmVuY2UgPSBtb21lbnREYXRlMi5kaWZmKG1vbWVudERhdGUxLCBERUZBVUxUX1RUTF9DT05GSUcuVU5JVCk7XHJcblxyXG4gICAgaWYgKGRpZmZlcmVuY2UgPj0gREVGQVVMVF9UVExfQ09ORklHLlRUTClcclxuICAgICAgdGhpcy4jY2xlYXIob3B0aW9ucy51c2VyTmFtZSwgb3B0aW9ucy5jYWNoZUtleSk7XHJcbiAgfVxyXG4gICNzZXRJdGVtSW5NYXAoa2V5OiBzdHJpbmcsIHZhbD86IENhY2hlSW5mbyk6IHZvaWQge1xyXG4gICAgY29uc3QgZW1wdHk6IENhY2hlSW5mbyA9IHtcclxuICAgICAgZGF0YTogW10sXHJcbiAgICAgIGZpcnN0RmV0Y2hpbmdEYXRlOiBcIlwiLFxyXG4gICAgICBsYXN0TW9kaWZpZWREYXRlOiBcIlwiLFxyXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXHJcbiAgICAgIGZldGNoaW5nSXRlbXNGcm9tVGhlU2VydmVyOiBmYWxzZSxcclxuICAgICAgb25GaW5pc2hGZXRjaGluZzogbmV3IFN1YmplY3Q8Q2FjaGVJbmZvPigpLFxyXG4gICAgfTtcclxuICAgIGxldCB2YWx1ZTogQ2FjaGVJbmZvID0gdmFsID8gdmFsIDogZW1wdHk7XHJcbiAgICB0aGlzLiNmZXRjaGVkSXRlbXNba2V5XSA9IHZhbHVlO1xyXG4gIH1cclxuICAjZ2V0SXRlbShvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zKSB7XHJcbiAgICBsZXQgZGF0YTogQ2FjaGVJbmZvO1xyXG4gICAgaWYgKG9wdGlvbnMuaW5NZW1vcnkpIHtcclxuICAgICAgZGF0YSA9IHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLmdldChcclxuICAgICAgICBgJHtERUZBVUxUX0NBQ0hFX09QVElPTlMuUFJFRklYfSR7b3B0aW9ucy5jYWNoZUtleX1gXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICghdmFsdWUpIHJldHVybjtcclxuICAgICAgZGF0YSA9IEpTT04ucGFyc2UodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG4gICNzZXRJdGVtKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zKSB7XHJcbiAgICBpZiAob3B0aW9ucy5pbk1lbW9yeSkgcmV0dXJuO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZS5zZXQoXHJcbiAgICAgICAgYCR7REVGQVVMVF9DQUNIRV9PUFRJT05TLlBSRUZJWH0ke29wdGlvbnMuY2FjaGVLZXl9YCxcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh2YWx1ZSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Jhc2UvY2FjaGUtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBELE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUszRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRzVCLFlBQ1Msc0JBQThDLEVBQzlDLGNBQThCO1FBRDlCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCOztRQUp2Qyx5Q0FBd0MsSUFBSSxHQUFHLEVBQXFCLEVBQUM7UUFNcEUsdUJBQUEsSUFBSSxvRUFBZSxNQUFuQixJQUFJLENBQWlCLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENB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QkFBcUIsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNyQixDQUFDO0tBQ0Y7QUFDRixDQUFDOzhHQTVXVyxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZoQixNQUFNOzRGQUVOLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGV4cGFuZCwgbGFzdCwgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IERFRkFVTFRfQ0FDSEVfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQmFzZUNhY2hlT3B0aW9ucywgQ2FjaGVJbmZvIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgX29taXQgZnJvbSAnbG9kYXNoL29taXQnO1xyXG5pbXBvcnQgX2Fzc2lnbiBmcm9tICdsb2Rhc2gvYXNzaWduJztcclxuaW1wb3J0IF9jbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XHJcbmltcG9ydCB7IERFRkFVTFRfVFRMX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdXNlci91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbGl0aWVzL3V0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudk1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2Vudi9lbnYtbWFuYWdlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWNoZUJhc2VTZXJ2aWNlIHtcclxuXHQjZmV0Y2hlZEl0ZW1zOiBNYXA8c3RyaW5nLCBDYWNoZUluZm8+ID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlSW5mbz4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHVzZXJQcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy4jcHJlcGFyZUNvbmZpZygpO1xyXG5cdH1cclxuXHJcblx0aGFzSXRlbShjYWNoZUtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLmhhc0l0ZW0oXHJcblx0XHRcdGAke0RFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVGSVh9JHtjYWNoZUtleX1gXHJcblx0XHQpO1xyXG5cdH1cclxuXHRjbGVhckFsbCh1c2VyTmFtZTogc3RyaW5nKSB7XHJcblx0XHR0aGlzLiNjbGVhcih1c2VyTmFtZSk7XHJcblx0fVxyXG5cdHZhbGlkYXRlVFRMKHVzZXJOYW1lOiBzdHJpbmcpIHtcclxuXHRcdGlmICghREVGQVVMVF9UVExfQ09ORklHLkFVVE9fQ0hFQ0sgfHwgIXVzZXJOYW1lKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgcHJlZml4ID0gYCR7dXNlck5hbWV9X18ke0RFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVGSVh9YDtcclxuXHRcdE9iamVjdC5rZXlzKHdpbmRvdy5sb2NhbFN0b3JhZ2UpXHJcblx0XHRcdC5maWx0ZXIoKHEpID0+IHEuc3RhcnRzV2l0aChwcmVmaXgpKVxyXG5cdFx0XHQuZmlsdGVyKChrZXkpID0+IHtcclxuXHRcdFx0XHRjb25zdCBvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zID0ge1xyXG5cdFx0XHRcdFx0Y2FjaGVLZXk6IGtleS5yZXBsYWNlKHByZWZpeCwgJycpLFxyXG5cdFx0XHRcdFx0dXNlck5hbWU6IHVzZXJOYW1lLFxyXG5cdFx0XHRcdFx0cmVxdWVzdDogREVGQVVMVF9DQUNIRV9PUFRJT05TLlJFUVVFU1QsXHJcblx0XHRcdFx0XHRwcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmc6IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVQQVJFX0RBVEFcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdGNvbnN0IGZpcnN0RmV0Y2hpbmdEYXRlID0gdGhpcy4jZ2V0SXRlbShvcHRpb25zKT8uZmlyc3RGZXRjaGluZ0RhdGU7XHJcblx0XHRcdFx0aWYgKCFmaXJzdEZldGNoaW5nRGF0ZSkgcmV0dXJuO1xyXG5cclxuXHRcdFx0XHRjb25zdCBtb21lbnREYXRlMSA9IG1vbWVudChuZXcgRGF0ZShmaXJzdEZldGNoaW5nRGF0ZSkpO1xyXG5cdFx0XHRcdGNvbnN0IG1vbWVudERhdGUyID0gbW9tZW50KG5ldyBEYXRlKCkpO1xyXG5cdFx0XHRcdGNvbnN0IGRpZmZlcmVuY2UgPSBtb21lbnREYXRlMi5kaWZmKFxyXG5cdFx0XHRcdFx0bW9tZW50RGF0ZTEsXHJcblx0XHRcdFx0XHRERUZBVUxUX1RUTF9DT05GSUcuVU5JVFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0cmV0dXJuIGRpZmZlcmVuY2UgPj0gREVGQVVMVF9UVExfQ09ORklHLlRUTDtcclxuXHRcdFx0fSlcclxuXHRcdFx0LmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRcdHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblx0c3RhcnRGZXRjaGluZ0l0ZW1zKG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0dGhpcy4jdmFsaWRhdGVUVExGb3JLZXkob3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XT8uZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXIpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuI2ZldGNoZWRJdGVtc1tcclxuXHRcdFx0XHRvcHRpb25zLmNhY2hlS2V5XHJcblx0XHRcdF0ub25GaW5pc2hGZXRjaGluZy5hc09ic2VydmFibGUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiB0aGlzLiNoYW5kbGVDYWNoZUl0ZW1zKG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQjaGFuZGxlQ2FjaGVJdGVtcyhvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGxldCBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT47XHJcblx0XHR0aGlzLiNwcmVwYXJlT3B0aW9ucyhvcHRpb25zKTtcclxuXHJcblx0XHRjb25zdCBjYWNoZWRJdGVtID0gdGhpcy4jZ2V0SXRlbShvcHRpb25zKTtcclxuXHJcblx0XHRpZiAoY2FjaGVkSXRlbSkge1xyXG5cdFx0XHR0aGlzLiNzZXRJdGVtSW5NYXAob3B0aW9ucy5jYWNoZUtleSwge1xyXG5cdFx0XHRcdC4uLmNhY2hlZEl0ZW0sXHJcblx0XHRcdFx0ZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXI6IGZhbHNlLFxyXG5cdFx0XHRcdG9uRmluaXNoRmV0Y2hpbmc6IG5ldyBTdWJqZWN0PENhY2hlSW5mbz4oKSxcclxuXHRcdFx0XHRyZXF1ZXN0OiBvcHRpb25zLnJlcXVlc3RcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHRjb25zdCBwYXJhbXMgPSB7XHJcblx0XHRcdFx0W29wdGlvbnMucGFnZUtleV06IDAsXHJcblx0XHRcdFx0W29wdGlvbnMubWluQ29tcGFyZURhdGVLZXldOiB0aGlzLiNhZGQxU2Vjb25kVG9Nb2RpZmllZERhdGUoXHJcblx0XHRcdFx0XHRuZXcgRGF0ZSh0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ubGFzdE1vZGlmaWVkRGF0ZSlcclxuXHRcdFx0XHQpLnRvSVNPU3RyaW5nKClcclxuXHRcdFx0fTtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLnBhcmFtcyA9IHBhcmFtcztcclxuXHRcdFx0b2JzZXJ2YWJsZSA9IG9wdGlvbnMucmVxdWVzdChwYXJhbXMpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy4jc2V0SXRlbUluTWFwKG9wdGlvbnMuY2FjaGVLZXkpO1xyXG5cdFx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ucmVxdWVzdCA9IG9wdGlvbnMucmVxdWVzdDtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmZpcnN0RmV0Y2hpbmdEYXRlID1cclxuXHRcdFx0XHRuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcblx0XHRcdG9ic2VydmFibGUgPSBvcHRpb25zLnJlcXVlc3QoeyBbb3B0aW9ucy5wYWdlS2V5XTogMCB9KTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXIgPSB0cnVlO1xyXG5cdFx0cmV0dXJuIG9ic2VydmFibGUucGlwZShcclxuXHRcdFx0cmV0cnkoREVGQVVMVF9UVExfQ09ORklHLlJFVFJZKSxcclxuXHRcdFx0ZXhwYW5kKChyZXN1bHRzOiBhbnkpID0+IHtcclxuXHRcdFx0XHRsZXQgYW5vdGhlckNhbGw6IE9ic2VydmFibGU8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cdFx0XHRcdGlmIChyZXN1bHRzICYmIHJlc3VsdHNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XT8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRhbm90aGVyQ2FsbCA9IHRoaXMuI2hhbmRsZUZldGNoZWRJdGVtcyhvcHRpb25zLCByZXN1bHRzKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGFub3RoZXJDYWxsID8gYW5vdGhlckNhbGwgOiBFTVBUWTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGxhc3QoKSxcclxuXHRcdFx0bWFwKChfKSA9PiB7XHJcblx0XHRcdFx0bGV0IF9mZXRjaGVkSXRlbXMgPSB0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0gYXMgQ2FjaGVJbmZvO1xyXG5cdFx0XHRcdF9mZXRjaGVkSXRlbXMuZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXIgPSBmYWxzZTtcclxuXHRcdFx0XHRpZiAoX2ZldGNoZWRJdGVtcy5kYXRhPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdF9mZXRjaGVkSXRlbXMubGFzdE1vZGlmaWVkRGF0ZSA9IHRoaXMuI2ZpbmRMYXJnZXN0RGF0ZShcclxuXHRcdFx0XHRcdFx0X2ZldGNoZWRJdGVtcy5kYXRhLFxyXG5cdFx0XHRcdFx0XHRvcHRpb25zLmNoaWxkcmVuUGF0aCxcclxuXHRcdFx0XHRcdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdHRoaXMuI3NldEl0ZW0oXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRkYXRhOiBfZmV0Y2hlZEl0ZW1zLmRhdGEsXHJcblx0XHRcdFx0XHRcdFx0bGFzdE1vZGlmaWVkRGF0ZTogX2ZldGNoZWRJdGVtcy5sYXN0TW9kaWZpZWREYXRlLFxyXG5cdFx0XHRcdFx0XHRcdGZpcnN0RmV0Y2hpbmdEYXRlOiBfZmV0Y2hlZEl0ZW1zLmZpcnN0RmV0Y2hpbmdEYXRlLFxyXG5cdFx0XHRcdFx0XHRcdHJlc3VsdHNDb3VudDogX2ZldGNoZWRJdGVtc1tvcHRpb25zLnJlc3VsdHNDb3VudF1cclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0b3B0aW9uc1xyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIF9mZXRjaGVkSXRlbXM7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRtYXAoKHJlcykgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHJlc3VsdCA9IF9jbG9uZURlZXAoe1xyXG5cdFx0XHRcdFx0W29wdGlvbnMubWFwcGVkRGF0YUtleV06IHJlcy5kYXRhLFxyXG5cdFx0XHRcdFx0W29wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZUtleV06IHJlcy5sYXN0TW9kaWZpZWREYXRlLFxyXG5cdFx0XHRcdFx0W29wdGlvbnMucmVzdWx0c0NvdW50XTogcmVzW29wdGlvbnMucmVzdWx0c0NvdW50XVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHJlcy5vbkZpbmlzaEZldGNoaW5nLm5leHQocmVzdWx0KTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblx0I2ZpbmROb2RlKFxyXG5cdFx0aXRlbXM6IGFueVtdLFxyXG5cdFx0dW5pcXVlQ29tcGFyZUtleTogc3RyaW5nLFxyXG5cdFx0Y2hpbGRyZW5QYXRoOiBzdHJpbmcsXHJcblx0XHR2YWx1ZTogYW55XHJcblx0KSB7XHJcblx0XHRmb3IgKGNvbnN0IG5vZGUgb2YgaXRlbXMpIHtcclxuXHRcdFx0aWYgKG5vZGVbdW5pcXVlQ29tcGFyZUtleV0gPT09IHZhbHVlKSB7XHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH1cclxuXHRcdFx0Y29uc3QgY2hpbGRyZW4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKG5vZGUsIGNoaWxkcmVuUGF0aCk7XHJcblx0XHRcdGlmIChjaGlsZHJlbikge1xyXG5cdFx0XHRcdGNvbnN0IHJlc3VsdCA9IHRoaXMuI2ZpbmROb2RlKFxyXG5cdFx0XHRcdFx0Y2hpbGRyZW4sXHJcblx0XHRcdFx0XHR1bmlxdWVDb21wYXJlS2V5LFxyXG5cdFx0XHRcdFx0Y2hpbGRyZW5QYXRoLFxyXG5cdFx0XHRcdFx0dmFsdWVcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0XHRcdHJldHVybiByZXN1bHQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblx0I2ZpbmRMYXJnZXN0RGF0ZShcclxuXHRcdG5vZGVMaXN0OiBhbnlbXSxcclxuXHRcdGNoaWxkcmVuUGF0aDogc3RyaW5nLFxyXG5cdFx0ZGF0ZVBhdGg6IHN0cmluZ1xyXG5cdCk6IHN0cmluZyB7XHJcblx0XHRsZXQgbGFyZ2VzdERhdGU6IHN0cmluZyA9IG51bGw7XHJcblx0XHRjb25zdCB0cmF2ZXJzZSA9IChub2RlOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKCFub2RlKSByZXR1cm47XHJcblx0XHRcdGNvbnN0IGNoaWxkcmVuID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRWYWx1ZShub2RlLCBjaGlsZHJlblBhdGgpO1xyXG5cdFx0XHRjb25zdCBub2RlRGF0ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUobm9kZSwgZGF0ZVBhdGgpO1xyXG5cdFx0XHRpZiAobm9kZURhdGUgJiYgKCFsYXJnZXN0RGF0ZSB8fCBub2RlRGF0ZSA+IGxhcmdlc3REYXRlKSkge1xyXG5cdFx0XHRcdGxhcmdlc3REYXRlID0gbm9kZURhdGU7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGNoaWxkcmVuPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XHJcblx0XHRcdFx0XHR0cmF2ZXJzZShjaGlsZCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdFx0bm9kZUxpc3QuZm9yRWFjaCgobm9kZSkgPT4gdHJhdmVyc2Uobm9kZSkpO1xyXG5cdFx0cmV0dXJuIGxhcmdlc3REYXRlO1xyXG5cdH1cclxuXHQjaGFuZGxlRmV0Y2hlZEl0ZW1zKFxyXG5cdFx0b3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucyxcclxuXHRcdHJlczogYW55XHJcblx0KTogT2JzZXJ2YWJsZTxhbnk+IHwgbnVsbCB7XHJcblx0XHRpZiAodGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmRhdGE/Lmxlbmd0aCkge1xyXG5cdFx0XHRyZXNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XS5zb3J0KChhLCBiKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZmlyc3QgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKFxyXG5cdFx0XHRcdFx0YSxcclxuXHRcdFx0XHRcdG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGhcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdGNvbnN0IHNlY29uZCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcblx0XHRcdFx0XHRiLFxyXG5cdFx0XHRcdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0cmV0dXJuIG5ldyBEYXRlKGZpcnN0KS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShzZWNvbmQpLmdldFRpbWUoKTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdHJlc1tvcHRpb25zLm1hcHBlZERhdGFLZXldLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuXHRcdFx0XHRjb25zdCBpdGVtID0gdGhpcy4jZmluZE5vZGUoXHJcblx0XHRcdFx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZGF0YSxcclxuXHRcdFx0XHRcdG9wdGlvbnMudW5pcXVlQ29tcGFyZUtleSxcclxuXHRcdFx0XHRcdG9wdGlvbnMuY2hpbGRyZW5QYXRoLFxyXG5cdFx0XHRcdFx0ZWxlbWVudFtvcHRpb25zLnVuaXF1ZUNvbXBhcmVLZXldXHJcblx0XHRcdFx0KTtcclxuXHJcblx0XHRcdFx0Y29uc3QgbWFwcGVkRWxlbWVudCA9IG9wdGlvbnMucHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nKFtlbGVtZW50XSlbMF07XHJcblx0XHRcdFx0aWYgKGl0ZW0pIHtcclxuXHRcdFx0XHRcdC8vIGVkaXQgOiB1cGRhdGUgaXRlbSBpbiBjYWNoZVxyXG5cdFx0XHRcdFx0Y29uc3QgZmlsdGVyZWRTb3VyY2UgPSBfb21pdChcclxuXHRcdFx0XHRcdFx0bWFwcGVkRWxlbWVudCxcclxuXHRcdFx0XHRcdFx0b3B0aW9ucy5leGNsdWRlS2V5c1doZW5VcGRhdGVcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRfYXNzaWduKGl0ZW0sIGZpbHRlcmVkU291cmNlKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8gYWRkIDogY2hlY2sgZGF0ZSB0byBkZXRlcm1pbmUgd2hlcmUgd2lsbCBpbnNlcnRcclxuXHJcblx0XHRcdFx0XHQvLyBpZiBpdGVtIHBhcmVudCBub3QgZm91bmQgYWRkIGFzIHJvb3QgZWxzZSB3aWxsIGFkZCBsZWF2ZXMgdG8gc3ViUGFyZW50XHJcblx0XHRcdFx0XHRjb25zdCBub2RlID0gdGhpcy4jZmluZE5vZGUoXHJcblx0XHRcdFx0XHRcdHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5kYXRhLFxyXG5cdFx0XHRcdFx0XHRvcHRpb25zLnVuaXF1ZUNvbXBhcmVLZXksXHJcblx0XHRcdFx0XHRcdG9wdGlvbnMuY2hpbGRyZW5QYXRoLFxyXG5cdFx0XHRcdFx0XHRlbGVtZW50W29wdGlvbnMucGFyZW50S2V5XVxyXG5cdFx0XHRcdFx0KTtcclxuXHJcblx0XHRcdFx0XHRpZiAobm9kZSkge1xyXG5cdFx0XHRcdFx0XHQvLyB3aWxsIGNvbXBhcmUgd2l0aCBub2RlIGNoaWxkIHRvIGFkZFxyXG5cdFx0XHRcdFx0XHRjb25zdCBjaGlsZHJlbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcblx0XHRcdFx0XHRcdFx0bm9kZSxcclxuXHRcdFx0XHRcdFx0XHRvcHRpb25zLmNoaWxkcmVuUGF0aFxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLiNhZGRJdGVtc1RvKG9wdGlvbnMsIGNoaWxkcmVuLCBlbGVtZW50KTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdC8vIHdpbGwgY29tcGFyZSB3aXRoIHJvb3QgbGV2ZWwgdG8gYWRkXHJcblx0XHRcdFx0XHRcdHRoaXMuI2FkZEl0ZW1zVG8oXHJcblx0XHRcdFx0XHRcdFx0b3B0aW9ucyxcclxuXHRcdFx0XHRcdFx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZGF0YSxcclxuXHRcdFx0XHRcdFx0XHRlbGVtZW50XHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJlc1tvcHRpb25zLm1hcHBlZERhdGFLZXldID0gb3B0aW9ucy5wcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmcoXHJcblx0XHRcdFx0cmVzW29wdGlvbnMubWFwcGVkRGF0YUtleV1cclxuXHRcdFx0KTtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmRhdGEgPSByZXNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XTtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLnJlc3VsdHNDb3VudCA9XHJcblx0XHRcdFx0cmVzW29wdGlvbnMucmVzdWx0c0NvdW50XTtcclxuXHRcdH1cclxuXHRcdGlmIChyZXNbb3B0aW9ucy50b3RhbFBhZ2VLZXldIC0gcmVzW29wdGlvbnMucGFnZUtleV0gPiAxKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ucmVxdWVzdCh7XHJcblx0XHRcdFx0Li4uKHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5wYXJhbXMgfHwge30pLFxyXG5cdFx0XHRcdFtvcHRpb25zLnBhZ2VLZXldOiByZXNbb3B0aW9ucy5wYWdlS2V5XSArIDFcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHR9XHJcblx0I2FkZEl0ZW1zVG8ob3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucywgZGF0YTogYW55W10sIGl0ZW06IGFueSkge1xyXG5cdFx0Y29uc3QgZmlyc3RDYWNoZWRNb2RpZmllZCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcblx0XHRcdGRhdGFbMF0sXHJcblx0XHRcdG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGhcclxuXHRcdCk7XHJcblx0XHRjb25zdCBjdXJyZW50TW9kaWZpZWQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKFxyXG5cdFx0XHRpdGVtLFxyXG5cdFx0XHRvcHRpb25zLmxhc3RNb2RpZmllZERhdGVQYXRoXHJcblx0XHQpO1xyXG5cdFx0aWYgKGZpcnN0Q2FjaGVkTW9kaWZpZWQgPCBjdXJyZW50TW9kaWZpZWQpIHtcclxuXHRcdFx0ZGF0YS51bnNoaWZ0KC4uLm9wdGlvbnMucHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nKFtpdGVtXSkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZGF0YS5wdXNoKC4uLm9wdGlvbnMucHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nKFtpdGVtXSkpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQjcHJlcGFyZU9wdGlvbnMob3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucykge1xyXG5cdFx0b3B0aW9ucy5wcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmcgPVxyXG5cdFx0XHRvcHRpb25zLnByZXBhcmVEYXRhQmVmb3JlQ2FjaGluZyB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuUFJFUEFSRV9EQVRBO1xyXG5cdFx0b3B0aW9ucy5wYWdlS2V5ID0gb3B0aW9ucy5wYWdlS2V5IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QQUdFX0tFWTtcclxuXHRcdG9wdGlvbnMudG90YWxQYWdlS2V5ID1cclxuXHRcdFx0b3B0aW9ucy50b3RhbFBhZ2VLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLlRPVEFMX1BBR0VfS0VZO1xyXG5cdFx0b3B0aW9ucy5yZXN1bHRzQ291bnQgPVxyXG5cdFx0XHRvcHRpb25zLnJlc3VsdHNDb3VudCB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuUkVTVUxUU19DT1VOVF9LRVk7XHJcblx0XHRvcHRpb25zLm1hcHBlZERhdGFLZXkgPVxyXG5cdFx0XHRvcHRpb25zLm1hcHBlZERhdGFLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLk1BUFBFRF9EQVRBX0tFWTtcclxuXHRcdG9wdGlvbnMudW5pcXVlQ29tcGFyZUtleSA9XHJcblx0XHRcdG9wdGlvbnMudW5pcXVlQ29tcGFyZUtleSB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuVU5JUVVFX0NPTVBBUkVfS0VZO1xyXG5cdFx0b3B0aW9ucy5taW5Db21wYXJlRGF0ZUtleSA9XHJcblx0XHRcdG9wdGlvbnMubWluQ29tcGFyZURhdGVLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLk1JTl9DT01QQVJFX0RBVEVfS0VZO1xyXG5cdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlS2V5ID1cclxuXHRcdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlS2V5IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5MQVNUX01PRElGSUVEX0tFWTtcclxuXHRcdG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGggPVxyXG5cdFx0XHRvcHRpb25zLmxhc3RNb2RpZmllZERhdGVQYXRoIHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5MQVNUX01PRElGSUVEX1BBVEg7XHJcblx0XHRvcHRpb25zLmV4Y2x1ZGVLZXlzV2hlblVwZGF0ZSA9XHJcblx0XHRcdG9wdGlvbnMuZXhjbHVkZUtleXNXaGVuVXBkYXRlIHx8XHJcblx0XHRcdERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5FWENMVURFX0tFWVNfV0hFTl9VUERBVEU7XHJcblx0XHRvcHRpb25zLmNoaWxkcmVuUGF0aCA9XHJcblx0XHRcdG9wdGlvbnMuY2hpbGRyZW5QYXRoIHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5DSElMRFJFTl9QQVRIO1xyXG5cdFx0b3B0aW9ucy5wYXJlbnRLZXkgPSBvcHRpb25zLnBhcmVudEtleSB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuUEFSRU5UX0tFWTtcclxuXHR9XHJcblx0I3ByZXBhcmVDb25maWcoKSB7XHJcblx0XHRERUZBVUxUX1RUTF9DT05GSUcuVFRMID1cclxuXHRcdFx0RW52TWFuYWdlci5lbnZpcm9ubWVudD8uY2FjaGU/LnR0bCB8fCBERUZBVUxUX1RUTF9DT05GSUcuVFRMO1xyXG5cdFx0REVGQVVMVF9UVExfQ09ORklHLlVOSVQgPVxyXG5cdFx0XHRFbnZNYW5hZ2VyLmVudmlyb25tZW50Py5jYWNoZT8udHRsVW5pdCB8fCBERUZBVUxUX1RUTF9DT05GSUcuVU5JVDtcclxuXHRcdERFRkFVTFRfVFRMX0NPTkZJRy5BVVRPX0NIRUNLID1cclxuXHRcdFx0RW52TWFuYWdlci5lbnZpcm9ubWVudD8uY2FjaGU/LmF1dG9DaGVjayA9PSAnWUVTJztcclxuXHRcdERFRkFVTFRfVFRMX0NPTkZJRy5SRVRSWSA9XHJcblx0XHRcdEVudk1hbmFnZXIuZW52aXJvbm1lbnQ/LmNhY2hlPy5yZXRyeSB8fCBERUZBVUxUX1RUTF9DT05GSUcuUkVUUlk7XHJcblx0fVxyXG5cdCNhZGQxU2Vjb25kVG9Nb2RpZmllZERhdGUoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG5cdFx0bGV0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XHJcblx0XHRuZXdEYXRlLnNldFNlY29uZHMobmV3RGF0ZS5nZXRTZWNvbmRzKCkgKyAxKTtcclxuXHRcdHJldHVybiBuZXdEYXRlO1xyXG5cdH1cclxuXHQjY2xlYXIodXNlck5hbWU6IHN0cmluZywga2V5T3JBbGw6IHN0cmluZyA9ICcnKSB7XHJcblx0XHRPYmplY3Qua2V5cyh3aW5kb3cubG9jYWxTdG9yYWdlKVxyXG5cdFx0XHQuZmlsdGVyKChxKSA9PlxyXG5cdFx0XHRcdHEuc3RhcnRzV2l0aChgJHt1c2VyTmFtZX1fXyR7REVGQVVMVF9DQUNIRV9PUFRJT05TLlBSRUZJWH0ke2tleU9yQWxsfWApXHJcblx0XHRcdClcclxuXHRcdFx0LmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRcdHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblx0I3ZhbGlkYXRlVFRMRm9yS2V5KG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpIHtcclxuXHRcdGNvbnN0IGZpcnN0RmV0Y2hpbmdEYXRlID0gdGhpcy4jZ2V0SXRlbShvcHRpb25zKT8uZmlyc3RGZXRjaGluZ0RhdGU7XHJcblxyXG5cdFx0aWYgKCFmaXJzdEZldGNoaW5nRGF0ZSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IG1vbWVudERhdGUxID0gbW9tZW50KG5ldyBEYXRlKGZpcnN0RmV0Y2hpbmdEYXRlKSk7XHJcblx0XHRjb25zdCBtb21lbnREYXRlMiA9IG1vbWVudChuZXcgRGF0ZSgpKTtcclxuXHJcblx0XHRjb25zdCBkaWZmZXJlbmNlID0gbW9tZW50RGF0ZTIuZGlmZihtb21lbnREYXRlMSwgREVGQVVMVF9UVExfQ09ORklHLlVOSVQpO1xyXG5cclxuXHRcdGlmIChkaWZmZXJlbmNlID49IERFRkFVTFRfVFRMX0NPTkZJRy5UVEwpXHJcblx0XHRcdHRoaXMuI2NsZWFyKG9wdGlvbnMudXNlck5hbWUsIG9wdGlvbnMuY2FjaGVLZXkpO1xyXG5cdH1cclxuXHQjc2V0SXRlbUluTWFwKGtleTogc3RyaW5nLCB2YWw/OiBDYWNoZUluZm8pOiB2b2lkIHtcclxuXHRcdGNvbnN0IGVtcHR5OiBDYWNoZUluZm8gPSB7XHJcblx0XHRcdGRhdGE6IFtdLFxyXG5cdFx0XHRmaXJzdEZldGNoaW5nRGF0ZTogJycsXHJcblx0XHRcdGxhc3RNb2RpZmllZERhdGU6ICcnLFxyXG5cdFx0XHRyZXN1bHRzQ291bnQ6IDAsXHJcblx0XHRcdGZldGNoaW5nSXRlbXNGcm9tVGhlU2VydmVyOiBmYWxzZSxcclxuXHRcdFx0b25GaW5pc2hGZXRjaGluZzogbmV3IFN1YmplY3Q8Q2FjaGVJbmZvPigpXHJcblx0XHR9O1xyXG5cdFx0bGV0IHZhbHVlOiBDYWNoZUluZm8gPSB2YWwgPyB2YWwgOiBlbXB0eTtcclxuXHRcdHRoaXMuI2ZldGNoZWRJdGVtc1trZXldID0gdmFsdWU7XHJcblx0fVxyXG5cdCNnZXRJdGVtKG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpIHtcclxuXHRcdGxldCBkYXRhOiBDYWNoZUluZm87XHJcblx0XHRpZiAob3B0aW9ucy5pbk1lbW9yeSkge1xyXG5cdFx0XHRkYXRhID0gdGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSB0aGlzLnVzZXJQcmVmZXJlbmNlc1NlcnZpY2UuZ2V0KFxyXG5cdFx0XHRcdGAke0RFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVGSVh9JHtvcHRpb25zLmNhY2hlS2V5fWBcclxuXHRcdFx0KTtcclxuXHRcdFx0aWYgKCF2YWx1ZSkgcmV0dXJuO1xyXG5cdFx0XHRkYXRhID0gSlNPTi5wYXJzZSh2YWx1ZSk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gZGF0YTtcclxuXHR9XHJcblx0I3NldEl0ZW0odmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT4sIG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpIHtcclxuXHRcdGlmIChvcHRpb25zLmluTWVtb3J5KSByZXR1cm47XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0dGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLnNldChcclxuXHRcdFx0XHRgJHtERUZBVUxUX0NBQ0hFX09QVElPTlMuUFJFRklYfSR7b3B0aW9ucy5jYWNoZUtleX1gLFxyXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHZhbHVlKVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0=
@@ -1,9 +1,9 @@
1
1
  var _HttpBaseService_http;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { HttpClient } from "@angular/common/http";
4
- import { pipe } from "rxjs";
5
- import { catchError, map } from "rxjs/operators";
6
- import { EnvManager } from "../../../core/env";
3
+ import { HttpClient } from '@angular/common/http';
4
+ import { pipe } from 'rxjs';
5
+ import { catchError, map } from 'rxjs/operators';
6
+ import { EnvManager } from '../../../core/env/env-manager';
7
7
  export class HttpBaseService {
8
8
  constructor(injector) {
9
9
  _HttpBaseService_http.set(this, void 0);
@@ -15,7 +15,7 @@ export class HttpBaseService {
15
15
  get(endpointOrOptions, params = undefined, headers = undefined, responseType = undefined) {
16
16
  var _a, _b, _c;
17
17
  let url;
18
- if (typeof endpointOrOptions === "string") {
18
+ if (typeof endpointOrOptions === 'string') {
19
19
  url = endpointOrOptions;
20
20
  }
21
21
  else {
@@ -32,7 +32,7 @@ export class HttpBaseService {
32
32
  post(endpointOrOptions, payload = undefined, params = undefined, headers = undefined, responseType = undefined) {
33
33
  var _a, _b, _c, _d;
34
34
  let url;
35
- if (typeof endpointOrOptions === "string") {
35
+ if (typeof endpointOrOptions === 'string') {
36
36
  url = endpointOrOptions;
37
37
  }
38
38
  else {
@@ -50,7 +50,7 @@ export class HttpBaseService {
50
50
  put(endpointOrOptions, payload = undefined, params = undefined, headers = undefined, responseType = undefined) {
51
51
  var _a, _b, _c, _d;
52
52
  let url;
53
- if (typeof endpointOrOptions === "string") {
53
+ if (typeof endpointOrOptions === 'string') {
54
54
  url = endpointOrOptions;
55
55
  }
56
56
  else {
@@ -68,7 +68,7 @@ export class HttpBaseService {
68
68
  patch(endpointOrOptions, payload = undefined, params = undefined, headers = undefined, responseType = undefined) {
69
69
  var _a, _b, _c, _d;
70
70
  let url;
71
- if (typeof endpointOrOptions === "string") {
71
+ if (typeof endpointOrOptions === 'string') {
72
72
  url = endpointOrOptions;
73
73
  }
74
74
  else {
@@ -86,7 +86,7 @@ export class HttpBaseService {
86
86
  delete(endpointOrOptions, params = undefined, headers = undefined, responseType = undefined) {
87
87
  var _a, _b, _c;
88
88
  let url;
89
- if (typeof endpointOrOptions === "string") {
89
+ if (typeof endpointOrOptions === 'string') {
90
90
  url = endpointOrOptions;
91
91
  }
92
92
  else {
@@ -112,4 +112,4 @@ export class HttpBaseService {
112
112
  }
113
113
  }
114
114
  _HttpBaseService_http = new WeakMap();
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvYmFzZS9odHRwLWJhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxPQUFPLEVBQWdDLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxNQUFNLE9BQWdCLGVBQWU7SUFPbkMsWUFBWSxRQUFrQjtRQU45Qix3Q0FBa0I7UUFPaEIsdUJBQUEsSUFBSSx5QkFBUyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFBLENBQUM7SUFDeEMsQ0FBQztJQU5ELElBQUksV0FBVztRQUNiLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUNoQyxDQUFDO0lBS1MsR0FBRyxDQUNYLGlCQUF1QyxFQUN2QyxNQUFNLEdBQUcsU0FBUyxFQUNsQixPQUFPLEdBQUcsU0FBUyxFQUNuQixZQUFZLEdBQUcsU0FBUzs7UUFFeEIsSUFBSSxHQUFXLENBQUM7UUFFaEIsSUFBSSxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRTtZQUN6QyxHQUFHLEdBQUcsaUJBQWlCLENBQUM7U0FDekI7YUFBTTtZQUNMLE1BQU0sT0FBTyxHQUFHLGlCQUFnQyxDQUFDO1lBQ2pELEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLFNBQVMsQ0FBQztZQUNyQyxPQUFPLEdBQUcsTUFBQSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxTQUFTLENBQUM7WUFDdkMsWUFBWSxHQUFHLE1BQUEsT0FBTyxDQUFDLFlBQVksbUNBQUksU0FBUyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyx1QkFBQSxJQUFJLDZCQUFNO2FBQ2QsR0FBRyxDQUFZLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7YUFDdEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsUUFBcUIsQ0FBQyxFQUM3QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQ25CLENBQUM7SUFDTixDQUFDO0lBRVMsSUFBSSxDQUNaLGlCQUF1QyxFQUN2QyxPQUFPLEdBQUcsU0FBUyxFQUNuQixNQUFNLEdBQUcsU0FBUyxFQUNsQixPQUFPLEdBQUcsU0FBUyxFQUNuQixZQUFZLEdBQUcsU0FBUzs7UUFFeEIsSUFBSSxHQUFXLENBQUM7UUFFaEIsSUFBSSxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRTtZQUN6QyxHQUFHLEdBQUcsaUJBQWlCLENBQUM7U0FDekI7YUFBTTtZQUNMLE1BQU0sT0FBTyxHQUFHLGlCQUFnQyxDQUFDO1lBQ2pELEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLE9BQU8sR0FBRyxNQUFBLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLFNBQVMsQ0FBQztZQUN2QyxNQUFNLEdBQUcsTUFBQSxPQUFPLENBQUMsTUFBTSxtQ0FBSSxTQUFTLENBQUM7WUFDckMsT0FBTyxHQUFHLE1BQUEsT0FBTyxDQUFDLE9BQU8sbUNBQUksU0FBUyxDQUFDO1lBQ3ZDLFlBQVksR0FBRyxNQUFBLE9BQU8sQ0FBQyxZQUFZLG1DQUFJLFNBQVMsQ0FBQztTQUNsRDtRQUVELE9BQU8sdUJBQUEsSUFBSSw2QkFBTTthQUNkLElBQUksQ0FBWSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQzthQUNoRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxRQUFxQixDQUFDLEVBQzdDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FDbkIsQ0FBQztJQUNOLENBQUM7SUFFUyxHQUFHLENBQ1gsaUJBQXVDLEVBQ3ZDLE9BQU8sR0FBRyxTQUFTLEVBQ25CLE1BQU0sR0FBRyxTQUFTLEVBQ2xCLE9BQU8sR0FBRyxTQUFTLEVBQ25CLFlBQVksR0FBRyxTQUFTOztRQUV4QixJQUFJLEdBQVcsQ0FBQztRQUVoQixJQUFJLE9BQU8saUJBQWlCLEtBQUssUUFBUSxFQUFFO1lBQ3pDLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQztTQUN6QjthQUFNO1lBQ0wsTUFBTSxPQUFPLEdBQUcsaUJBQWdDLENBQUM7WUFDakQsR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDdkIsT0FBTyxHQUFHLE1BQUEsT0FBTyxDQUFDLE9BQU8sbUNBQUksU0FBUyxDQUFDO1lBQ3ZDLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLFNBQVMsQ0FBQztZQUNyQyxPQUFPLEdBQUcsTUFBQSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxTQUFTLENBQUM7WUFDdkMsWUFBWSxHQUFHLE1BQUEsT0FBTyxDQUFDLFlBQVksbUNBQUksU0FBUyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyx1QkFBQSxJQUFJLDZCQUFNO2FBQ2QsR0FBRyxDQUFZLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDO2FBQy9ELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQXFCLENBQUMsRUFDN0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUNuQixDQUFDO0lBQ04sQ0FBQztJQUVTLEtBQUssQ0FDYixpQkFBdUMsRUFDdkMsT0FBTyxHQUFHLFNBQVMsRUFDbkIsTUFBTSxHQUFHLFNBQVMsRUFDbEIsT0FBTyxHQUFHLFNBQVMsRUFDbkIsWUFBWSxHQUFHLFNBQVM7O1FBRXhCLElBQUksR0FBVyxDQUFDO1FBRWhCLElBQUksT0FBTyxpQkFBaUIsS0FBSyxRQUFRLEVBQUU7WUFDekMsR0FBRyxHQUFHLGlCQUFpQixDQUFDO1NBQ3pCO2FBQU07WUFDTCxNQUFNLE9BQU8sR0FBRyxpQkFBZ0MsQ0FBQztZQUNqRCxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUN2QixPQUFPLEdBQUcsTUFBQSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxTQUFTLENBQUM7WUFDdkMsTUFBTSxHQUFHLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksU0FBUyxDQUFDO1lBQ3JDLE9BQU8sR0FBRyxNQUFBLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLFNBQVMsQ0FBQztZQUN2QyxZQUFZLEdBQUcsTUFBQSxPQUFPLENBQUMsWUFBWSxtQ0FBSSxTQUFTLENBQUM7U0FDbEQ7UUFFRCxPQUFPLHVCQUFBLElBQUksNkJBQU07YUFDZCxLQUFLLENBQVksR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7YUFDakUsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsUUFBcUIsQ0FBQyxFQUM3QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQ25CLENBQUM7SUFDTixDQUFDO0lBRVMsTUFBTSxDQUNkLGlCQUF1QyxFQUN2QyxNQUFNLEdBQUcsU0FBUyxFQUNsQixPQUFPLEdBQUcsU0FBUyxFQUNuQixZQUFZLEdBQUcsU0FBUzs7UUFFeEIsSUFBSSxHQUFXLENBQUM7UUFFaEIsSUFBSSxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRTtZQUN6QyxHQUFHLEdBQUcsaUJBQWlCLENBQUM7U0FDekI7YUFBTTtZQUNMLE1BQU0sT0FBTyxHQUFHLGlCQUFnQyxDQUFDO1lBQ2pELEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLFNBQVMsQ0FBQztZQUNyQyxPQUFPLEdBQUcsTUFBQSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxTQUFTLENBQUM7WUFDdkMsWUFBWSxHQUFHLE1BQUEsT0FBTyxDQUFDLFlBQVksbUNBQUksU0FBUyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyx1QkFBQSxJQUFJLDZCQUFNO2FBQ2QsTUFBTSxDQUFZLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7YUFDekQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsUUFBcUIsQ0FBQyxFQUM3QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQ25CLENBQUM7SUFDTixDQUFDO0lBRVMsY0FBYyxDQUN0QixRQUFnQixFQUNoQixVQUFlLFNBQVMsRUFDeEIsWUFBWSxHQUFHLFNBQVM7UUFFeEIsT0FBTyx1QkFBQSxJQUFJLDZCQUFNO2FBQ2QsSUFBSSxDQUFZLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQzthQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVTLFdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQ1QsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEh0dHBPcHRpb25zIH0gZnJvbSBcIi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIE9wZXJhdG9yRnVuY3Rpb24sIHBpcGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgRW52TWFuYWdlciB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudlwiO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEh0dHBCYXNlU2VydmljZSB7XHJcbiAgI2h0dHA6IEh0dHBDbGllbnQ7XHJcblxyXG4gIGdldCBlbnZpcm9ubWVudCgpIHtcclxuICAgIHJldHVybiBFbnZNYW5hZ2VyLmVudmlyb25tZW50O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLiNodHRwID0gaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgZ2V0PFRSZXNwb25zZT4oXHJcbiAgICBlbmRwb2ludE9yT3B0aW9uczogc3RyaW5nIHwgSHR0cE9wdGlvbnMsXHJcbiAgICBwYXJhbXMgPSB1bmRlZmluZWQsXHJcbiAgICBoZWFkZXJzID0gdW5kZWZpbmVkLFxyXG4gICAgcmVzcG9uc2VUeXBlID0gdW5kZWZpbmVkXHJcbiAgKTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuICAgIGxldCB1cmw6IHN0cmluZztcclxuXHJcbiAgICBpZiAodHlwZW9mIGVuZHBvaW50T3JPcHRpb25zID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIHVybCA9IGVuZHBvaW50T3JPcHRpb25zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IGVuZHBvaW50T3JPcHRpb25zIGFzIEh0dHBPcHRpb25zO1xyXG4gICAgICB1cmwgPSBvcHRpb25zLmVuZHBvaW50O1xyXG4gICAgICBwYXJhbXMgPSBvcHRpb25zLnBhcmFtcyA/PyB1bmRlZmluZWQ7XHJcbiAgICAgIGhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8gdW5kZWZpbmVkO1xyXG4gICAgICByZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZSA/PyB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuI2h0dHBcclxuICAgICAgLmdldDxUUmVzcG9uc2U+KHVybCwgeyBoZWFkZXJzLCBwYXJhbXMsIHJlc3BvbnNlVHlwZSB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlIGFzIFRSZXNwb25zZSksXHJcbiAgICAgICAgdGhpcy5jYXRjaEVycm9ycygpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcG9zdDxUUmVzcG9uc2U+KFxyXG4gICAgZW5kcG9pbnRPck9wdGlvbnM6IHN0cmluZyB8IEh0dHBPcHRpb25zLFxyXG4gICAgcGF5bG9hZCA9IHVuZGVmaW5lZCxcclxuICAgIHBhcmFtcyA9IHVuZGVmaW5lZCxcclxuICAgIGhlYWRlcnMgPSB1bmRlZmluZWQsXHJcbiAgICByZXNwb25zZVR5cGUgPSB1bmRlZmluZWRcclxuICApOiBPYnNlcnZhYmxlPFRSZXNwb25zZT4ge1xyXG4gICAgbGV0IHVybDogc3RyaW5nO1xyXG5cclxuICAgIGlmICh0eXBlb2YgZW5kcG9pbnRPck9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgdXJsID0gZW5kcG9pbnRPck9wdGlvbnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gZW5kcG9pbnRPck9wdGlvbnMgYXMgSHR0cE9wdGlvbnM7XHJcbiAgICAgIHVybCA9IG9wdGlvbnMuZW5kcG9pbnQ7XHJcbiAgICAgIHBheWxvYWQgPSBvcHRpb25zLnBheWxvYWQgPz8gdW5kZWZpbmVkO1xyXG4gICAgICBwYXJhbXMgPSBvcHRpb25zLnBhcmFtcyA/PyB1bmRlZmluZWQ7XHJcbiAgICAgIGhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8gdW5kZWZpbmVkO1xyXG4gICAgICByZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZSA/PyB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuI2h0dHBcclxuICAgICAgLnBvc3Q8VFJlc3BvbnNlPih1cmwsIHBheWxvYWQsIHsgaGVhZGVycywgcGFyYW1zLCByZXNwb25zZVR5cGUgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSBhcyBUUmVzcG9uc2UpLFxyXG4gICAgICAgIHRoaXMuY2F0Y2hFcnJvcnMoKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHB1dDxUUmVzcG9uc2U+KFxyXG4gICAgZW5kcG9pbnRPck9wdGlvbnM6IHN0cmluZyB8IEh0dHBPcHRpb25zLFxyXG4gICAgcGF5bG9hZCA9IHVuZGVmaW5lZCxcclxuICAgIHBhcmFtcyA9IHVuZGVmaW5lZCxcclxuICAgIGhlYWRlcnMgPSB1bmRlZmluZWQsXHJcbiAgICByZXNwb25zZVR5cGUgPSB1bmRlZmluZWRcclxuICApOiBPYnNlcnZhYmxlPFRSZXNwb25zZT4ge1xyXG4gICAgbGV0IHVybDogc3RyaW5nO1xyXG5cclxuICAgIGlmICh0eXBlb2YgZW5kcG9pbnRPck9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgdXJsID0gZW5kcG9pbnRPck9wdGlvbnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gZW5kcG9pbnRPck9wdGlvbnMgYXMgSHR0cE9wdGlvbnM7XHJcbiAgICAgIHVybCA9IG9wdGlvbnMuZW5kcG9pbnQ7XHJcbiAgICAgIHBheWxvYWQgPSBvcHRpb25zLnBheWxvYWQgPz8gdW5kZWZpbmVkO1xyXG4gICAgICBwYXJhbXMgPSBvcHRpb25zLnBhcmFtcyA/PyB1bmRlZmluZWQ7XHJcbiAgICAgIGhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8gdW5kZWZpbmVkO1xyXG4gICAgICByZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZSA/PyB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuI2h0dHBcclxuICAgICAgLnB1dDxUUmVzcG9uc2U+KHVybCwgcGF5bG9hZCwgeyBoZWFkZXJzLCBwYXJhbXMsIHJlc3BvbnNlVHlwZSB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlIGFzIFRSZXNwb25zZSksXHJcbiAgICAgICAgdGhpcy5jYXRjaEVycm9ycygpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcGF0Y2g8VFJlc3BvbnNlPihcclxuICAgIGVuZHBvaW50T3JPcHRpb25zOiBzdHJpbmcgfCBIdHRwT3B0aW9ucyxcclxuICAgIHBheWxvYWQgPSB1bmRlZmluZWQsXHJcbiAgICBwYXJhbXMgPSB1bmRlZmluZWQsXHJcbiAgICBoZWFkZXJzID0gdW5kZWZpbmVkLFxyXG4gICAgcmVzcG9uc2VUeXBlID0gdW5kZWZpbmVkXHJcbiAgKTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuICAgIGxldCB1cmw6IHN0cmluZztcclxuXHJcbiAgICBpZiAodHlwZW9mIGVuZHBvaW50T3JPcHRpb25zID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIHVybCA9IGVuZHBvaW50T3JPcHRpb25zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IGVuZHBvaW50T3JPcHRpb25zIGFzIEh0dHBPcHRpb25zO1xyXG4gICAgICB1cmwgPSBvcHRpb25zLmVuZHBvaW50O1xyXG4gICAgICBwYXlsb2FkID0gb3B0aW9ucy5wYXlsb2FkID8/IHVuZGVmaW5lZDtcclxuICAgICAgcGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgPz8gdW5kZWZpbmVkO1xyXG4gICAgICBoZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzID8/IHVuZGVmaW5lZDtcclxuICAgICAgcmVzcG9uc2VUeXBlID0gb3B0aW9ucy5yZXNwb25zZVR5cGUgPz8gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLiNodHRwXHJcbiAgICAgIC5wYXRjaDxUUmVzcG9uc2U+KHVybCwgcGF5bG9hZCwgeyBoZWFkZXJzLCBwYXJhbXMsIHJlc3BvbnNlVHlwZSB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlIGFzIFRSZXNwb25zZSksXHJcbiAgICAgICAgdGhpcy5jYXRjaEVycm9ycygpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZGVsZXRlPFRSZXNwb25zZT4oXHJcbiAgICBlbmRwb2ludE9yT3B0aW9uczogc3RyaW5nIHwgSHR0cE9wdGlvbnMsXHJcbiAgICBwYXJhbXMgPSB1bmRlZmluZWQsXHJcbiAgICBoZWFkZXJzID0gdW5kZWZpbmVkLFxyXG4gICAgcmVzcG9uc2VUeXBlID0gdW5kZWZpbmVkXHJcbiAgKTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuICAgIGxldCB1cmw6IHN0cmluZztcclxuXHJcbiAgICBpZiAodHlwZW9mIGVuZHBvaW50T3JPcHRpb25zID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIHVybCA9IGVuZHBvaW50T3JPcHRpb25zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IGVuZHBvaW50T3JPcHRpb25zIGFzIEh0dHBPcHRpb25zO1xyXG4gICAgICB1cmwgPSBvcHRpb25zLmVuZHBvaW50O1xyXG4gICAgICBwYXJhbXMgPSBvcHRpb25zLnBhcmFtcyA/PyB1bmRlZmluZWQ7XHJcbiAgICAgIGhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8gdW5kZWZpbmVkO1xyXG4gICAgICByZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZSA/PyB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuI2h0dHBcclxuICAgICAgLmRlbGV0ZTxUUmVzcG9uc2U+KHVybCwgeyBoZWFkZXJzLCBwYXJhbXMsIHJlc3BvbnNlVHlwZSB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlIGFzIFRSZXNwb25zZSksXHJcbiAgICAgICAgdGhpcy5jYXRjaEVycm9ycygpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaHR0cEF1dG9tYXRpb248VFJlc3BvbnNlID0gdW5rbm93bj4oXHJcbiAgICBlbmRwb2ludDogc3RyaW5nLFxyXG4gICAgcGF5bG9hZDogYW55ID0gdW5kZWZpbmVkLFxyXG4gICAgcmVzcG9uc2VUeXBlID0gdW5kZWZpbmVkXHJcbiAgKTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLiNodHRwXHJcbiAgICAgIC5wb3N0PFRSZXNwb25zZT4oZW5kcG9pbnQsIHBheWxvYWQsIHsgcmVzcG9uc2VUeXBlIH0pXHJcbiAgICAgIC5waXBlKHRoaXMuY2F0Y2hFcnJvcnMoKSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY2F0Y2hFcnJvcnM8VFJlc3BvbnNlPigpOiBPcGVyYXRvckZ1bmN0aW9uPFRSZXNwb25zZSwgVFJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gcGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvYmFzZS9odHRwLWJhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxPQUFPLEVBQWdDLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxNQUFNLE9BQWdCLGVBQWU7SUFPcEMsWUFBWSxRQUFrQjtRQU45Qix3Q0FBa0I7UUFPakIsdUJBQUEsSUFBSSx5QkFBUyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFBLENBQUM7SUFDdkMsQ0FBQztJQU5ELElBQUksV0FBVztRQUNkLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUMvQixDQUFDO0lBS1MsR0FBRyxDQUNaLGlCQUF1QyxFQUN2QyxNQUFNLEdBQUcsU0FBUyxFQUNsQixPQUFPLEdBQUcsU0FBUyxFQUNuQixZQUFZLEdBQUcsU0FBUzs7UUFFeEIsSUFBSSxHQUFXLENBQUM7UUFFaEIsSUFBSSxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRTtZQUMxQyxHQUFHLEdBQUcsaUJBQWlCLENBQUM7U0FDeEI7YUFBTTtZQUNOLE1BQU0sT0FBTyxHQUFHLGlCQUFnQyxDQUFDO1lBQ2pELEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLFNBQVMsQ0FBQztZQUNyQyxPQUFPLEdBQUcsTUFBQSxPQUFPLENB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QSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxTQUFTLENBQUM7WUFDdkMsWUFBWSxHQUFHLE1BQUEsT0FBTyxDQUFDLFlBQVksbUNBQUksU0FBUyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyx1QkFBQSxJQUFJLDZCQUFNO2FBQ2YsTUFBTSxDQUFZLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7YUFDekQsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsUUFBcUIsQ0FBQyxFQUM3QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQ2xCLENBQUM7SUFDSixDQUFDO0lBRVMsY0FBYyxDQUN2QixRQUFnQixFQUNoQixVQUFlLFNBQVMsRUFDeEIsWUFBWSxHQUFHLFNBQVM7UUFFeEIsT0FBTyx1QkFBQSxJQUFJLDZCQUFNO2FBQ2YsSUFBSSxDQUFZLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQzthQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVTLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQ1YsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxHQUFHLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cE9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIE9wZXJhdG9yRnVuY3Rpb24sIHBpcGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFbnZNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnYvZW52LW1hbmFnZXInO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEh0dHBCYXNlU2VydmljZSB7XHJcblx0I2h0dHA6IEh0dHBDbGllbnQ7XHJcblxyXG5cdGdldCBlbnZpcm9ubWVudCgpIHtcclxuXHRcdHJldHVybiBFbnZNYW5hZ2VyLmVudmlyb25tZW50O1xyXG5cdH1cclxuXHJcblx0Y29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcblx0XHR0aGlzLiNodHRwID0gaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xyXG5cdH1cclxuXHRwcm90ZWN0ZWQgZ2V0PFRSZXNwb25zZT4oXHJcblx0XHRlbmRwb2ludE9yT3B0aW9uczogc3RyaW5nIHwgSHR0cE9wdGlvbnMsXHJcblx0XHRwYXJhbXMgPSB1bmRlZmluZWQsXHJcblx0XHRoZWFkZXJzID0gdW5kZWZpbmVkLFxyXG5cdFx0cmVzcG9uc2VUeXBlID0gdW5kZWZpbmVkXHJcblx0KTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuXHRcdGxldCB1cmw6IHN0cmluZztcclxuXHJcblx0XHRpZiAodHlwZW9mIGVuZHBvaW50T3JPcHRpb25zID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHR1cmwgPSBlbmRwb2ludE9yT3B0aW9ucztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IG9wdGlvbnMgPSBlbmRwb2ludE9yT3B0aW9ucyBhcyBIdHRwT3B0aW9ucztcclxuXHRcdFx0dXJsID0gb3B0aW9ucy5lbmRwb2ludDtcclxuXHRcdFx0cGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgPz8gdW5kZWZpbmVkO1xyXG5cdFx0XHRoZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzID8/IHVuZGVmaW5lZDtcclxuXHRcdFx0cmVzcG9uc2VUeXBlID0gb3B0aW9ucy5yZXNwb25zZVR5cGUgPz8gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLiNodHRwXHJcblx0XHRcdC5nZXQ8VFJlc3BvbnNlPih1cmwsIHsgaGVhZGVycywgcGFyYW1zLCByZXNwb25zZVR5cGUgfSlcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSBhcyBUUmVzcG9uc2UpLFxyXG5cdFx0XHRcdHRoaXMuY2F0Y2hFcnJvcnMoKVxyXG5cdFx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIHBvc3Q8VFJlc3BvbnNlPihcclxuXHRcdGVuZHBvaW50T3JPcHRpb25zOiBzdHJpbmcgfCBIdHRwT3B0aW9ucyxcclxuXHRcdHBheWxvYWQgPSB1bmRlZmluZWQsXHJcblx0XHRwYXJhbXMgPSB1bmRlZmluZWQsXHJcblx0XHRoZWFkZXJzID0gdW5kZWZpbmVkLFxyXG5cdFx0cmVzcG9uc2VUeXBlID0gdW5kZWZpbmVkXHJcblx0KTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuXHRcdGxldCB1cmw6IHN0cmluZztcclxuXHJcblx0XHRpZiAodHlwZW9mIGVuZHBvaW50T3JPcHRpb25zID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHR1cmwgPSBlbmRwb2ludE9yT3B0aW9ucztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IG9wdGlvbnMgPSBlbmRwb2ludE9yT3B0aW9ucyBhcyBIdHRwT3B0aW9ucztcclxuXHRcdFx0dXJsID0gb3B0aW9ucy5lbmRwb2ludDtcclxuXHRcdFx0cGF5bG9hZCA9IG9wdGlvbnMucGF5bG9hZCA/PyB1bmRlZmluZWQ7XHJcblx0XHRcdHBhcmFtcyA9IG9wdGlvbnMucGFyYW1zID8/IHVuZGVmaW5lZDtcclxuXHRcdFx0aGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyA/PyB1bmRlZmluZWQ7XHJcblx0XHRcdHJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlID8/IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy4jaHR0cFxyXG5cdFx0XHQucG9zdDxUUmVzcG9uc2U+KHVybCwgcGF5bG9hZCwgeyBoZWFkZXJzLCBwYXJhbXMsIHJlc3BvbnNlVHlwZSB9KVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlIGFzIFRSZXNwb25zZSksXHJcblx0XHRcdFx0dGhpcy5jYXRjaEVycm9ycygpXHJcblx0XHRcdCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgcHV0PFRSZXNwb25zZT4oXHJcblx0XHRlbmRwb2ludE9yT3B0aW9uczogc3RyaW5nIHwgSHR0cE9wdGlvbnMsXHJcblx0XHRwYXlsb2FkID0gdW5kZWZpbmVkLFxyXG5cdFx0cGFyYW1zID0gdW5kZWZpbmVkLFxyXG5cdFx0aGVhZGVycyA9IHVuZGVmaW5lZCxcclxuXHRcdHJlc3BvbnNlVHlwZSA9IHVuZGVmaW5lZFxyXG5cdCk6IE9ic2VydmFibGU8VFJlc3BvbnNlPiB7XHJcblx0XHRsZXQgdXJsOiBzdHJpbmc7XHJcblxyXG5cdFx0aWYgKHR5cGVvZiBlbmRwb2ludE9yT3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0dXJsID0gZW5kcG9pbnRPck9wdGlvbnM7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCBvcHRpb25zID0gZW5kcG9pbnRPck9wdGlvbnMgYXMgSHR0cE9wdGlvbnM7XHJcblx0XHRcdHVybCA9IG9wdGlvbnMuZW5kcG9pbnQ7XHJcblx0XHRcdHBheWxvYWQgPSBvcHRpb25zLnBheWxvYWQgPz8gdW5kZWZpbmVkO1xyXG5cdFx0XHRwYXJhbXMgPSBvcHRpb25zLnBhcmFtcyA/PyB1bmRlZmluZWQ7XHJcblx0XHRcdGhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8gdW5kZWZpbmVkO1xyXG5cdFx0XHRyZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZSA/PyB1bmRlZmluZWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuI2h0dHBcclxuXHRcdFx0LnB1dDxUUmVzcG9uc2U+KHVybCwgcGF5bG9hZCwgeyBoZWFkZXJzLCBwYXJhbXMsIHJlc3BvbnNlVHlwZSB9KVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlIGFzIFRSZXNwb25zZSksXHJcblx0XHRcdFx0dGhpcy5jYXRjaEVycm9ycygpXHJcblx0XHRcdCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgcGF0Y2g8VFJlc3BvbnNlPihcclxuXHRcdGVuZHBvaW50T3JPcHRpb25zOiBzdHJpbmcgfCBIdHRwT3B0aW9ucyxcclxuXHRcdHBheWxvYWQgPSB1bmRlZmluZWQsXHJcblx0XHRwYXJhbXMgPSB1bmRlZmluZWQsXHJcblx0XHRoZWFkZXJzID0gdW5kZWZpbmVkLFxyXG5cdFx0cmVzcG9uc2VUeXBlID0gdW5kZWZpbmVkXHJcblx0KTogT2JzZXJ2YWJsZTxUUmVzcG9uc2U+IHtcclxuXHRcdGxldCB1cmw6IHN0cmluZztcclxuXHJcblx0XHRpZiAodHlwZW9mIGVuZHBvaW50T3JPcHRpb25zID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHR1cmwgPSBlbmRwb2ludE9yT3B0aW9ucztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IG9wdGlvbnMgPSBlbmRwb2ludE9yT3B0aW9ucyBhcyBIdHRwT3B0aW9ucztcclxuXHRcdFx0dXJsID0gb3B0aW9ucy5lbmRwb2ludDtcclxuXHRcdFx0cGF5bG9hZCA9IG9wdGlvbnMucGF5bG9hZCA/PyB1bmRlZmluZWQ7XHJcblx0XHRcdHBhcmFtcyA9IG9wdGlvbnMucGFyYW1zID8/IHVuZGVmaW5lZDtcclxuXHRcdFx0aGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyA/PyB1bmRlZmluZWQ7XHJcblx0XHRcdHJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlID8/IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy4jaHR0cFxyXG5cdFx0XHQucGF0Y2g8VFJlc3BvbnNlPih1cmwsIHBheWxvYWQsIHsgaGVhZGVycywgcGFyYW1zLCByZXNwb25zZVR5cGUgfSlcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSBhcyBUUmVzcG9uc2UpLFxyXG5cdFx0XHRcdHRoaXMuY2F0Y2hFcnJvcnMoKVxyXG5cdFx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGRlbGV0ZTxUUmVzcG9uc2U+KFxyXG5cdFx0ZW5kcG9pbnRPck9wdGlvbnM6IHN0cmluZyB8IEh0dHBPcHRpb25zLFxyXG5cdFx0cGFyYW1zID0gdW5kZWZpbmVkLFxyXG5cdFx0aGVhZGVycyA9IHVuZGVmaW5lZCxcclxuXHRcdHJlc3BvbnNlVHlwZSA9IHVuZGVmaW5lZFxyXG5cdCk6IE9ic2VydmFibGU8VFJlc3BvbnNlPiB7XHJcblx0XHRsZXQgdXJsOiBzdHJpbmc7XHJcblxyXG5cdFx0aWYgKHR5cGVvZiBlbmRwb2ludE9yT3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0dXJsID0gZW5kcG9pbnRPck9wdGlvbnM7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCBvcHRpb25zID0gZW5kcG9pbnRPck9wdGlvbnMgYXMgSHR0cE9wdGlvbnM7XHJcblx0XHRcdHVybCA9IG9wdGlvbnMuZW5kcG9pbnQ7XHJcblx0XHRcdHBhcmFtcyA9IG9wdGlvbnMucGFyYW1zID8/IHVuZGVmaW5lZDtcclxuXHRcdFx0aGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyA/PyB1bmRlZmluZWQ7XHJcblx0XHRcdHJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlID8/IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy4jaHR0cFxyXG5cdFx0XHQuZGVsZXRlPFRSZXNwb25zZT4odXJsLCB7IGhlYWRlcnMsIHBhcmFtcywgcmVzcG9uc2VUeXBlIH0pXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UgYXMgVFJlc3BvbnNlKSxcclxuXHRcdFx0XHR0aGlzLmNhdGNoRXJyb3JzKClcclxuXHRcdFx0KTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBodHRwQXV0b21hdGlvbjxUUmVzcG9uc2UgPSB1bmtub3duPihcclxuXHRcdGVuZHBvaW50OiBzdHJpbmcsXHJcblx0XHRwYXlsb2FkOiBhbnkgPSB1bmRlZmluZWQsXHJcblx0XHRyZXNwb25zZVR5cGUgPSB1bmRlZmluZWRcclxuXHQpOiBPYnNlcnZhYmxlPFRSZXNwb25zZT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuI2h0dHBcclxuXHRcdFx0LnBvc3Q8VFJlc3BvbnNlPihlbmRwb2ludCwgcGF5bG9hZCwgeyByZXNwb25zZVR5cGUgfSlcclxuXHRcdFx0LnBpcGUodGhpcy5jYXRjaEVycm9ycygpKTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBjYXRjaEVycm9yczxUUmVzcG9uc2U+KCk6IE9wZXJhdG9yRnVuY3Rpb248VFJlc3BvbnNlLCBUUmVzcG9uc2U+IHtcclxuXHRcdHJldHVybiBwaXBlKFxyXG5cdFx0XHRjYXRjaEVycm9yKChlcnIpID0+IHtcclxuXHRcdFx0XHR0aHJvdyBlcnI7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxufVxyXG4iXX0=