tango-app-ui-manage-tickets 3.7.0-beta.44 → 3.7.0-beta.45

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.
@@ -16,6 +16,7 @@ export class TicketService {
16
16
  footfallCDN;
17
17
  trafficApiUrl;
18
18
  revopApiUrl;
19
+ clientApiUrl;
19
20
  dropDownTrigger = new BehaviorSubject(null);
20
21
  constructor(http, gs) {
21
22
  this.http = http;
@@ -27,6 +28,7 @@ export class TicketService {
27
28
  this.auditmetricApiUrl = env.auditmetricApiUrl;
28
29
  this.auditApiUrl = env.auditApiUrl;
29
30
  this.zoneauditApiUrl = env.zoneauditApiUrl;
31
+ this.clientApiUrl = env.clientApiUrl;
30
32
  this.footfallDirapiUrl = env.footfallDirapiUrl;
31
33
  this.footfallCDN = env.footfallCDN;
32
34
  this.trafficApiUrl = env.trafficApiUrl;
@@ -234,6 +236,10 @@ export class TicketService {
234
236
  getMultiCloseTicketApi(data) {
235
237
  return this.http.post(`${this.footfallDirapiUrl}/multi-close-tickets`, data);
236
238
  }
239
+ getTypeFunction(clientId) {
240
+ let params = new HttpParams().set("clientId", clientId);
241
+ return this.http.get(`${this.clientApiUrl}/get-footfall-directory-config`, { params });
242
+ }
237
243
  footfallData;
238
244
  setFootfallData(data) {
239
245
  this.footfallData = data;
@@ -250,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
250
256
  providedIn: "root",
251
257
  }]
252
258
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFXSjtJQUEwQjtJQVY5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2pELFlBQW9CLElBQWdCLEVBQVUsRUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ2xFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3BDLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixDQUFDO2dCQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUM7Z0JBQ25DLElBQUksQ0FB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VUFBVSxFQUFFLFFBQVEsQ0FBQzthQUNwRCxHQUFHLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBUztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBUztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsc0JBQXNCLEVBQy9DLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUNPLFlBQVksQ0FBTTtJQUUxQixlQUFlLENBQUMsSUFBUztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO3dHQXRYVSxhQUFhOzRHQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBPYnNlcnZhYmxlLFxyXG4gIGNhdGNoRXJyb3IsXHJcbiAgbWFwLFxyXG4gIG9mLFxyXG4gIHRocm93RXJyb3IsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaWNrZXRTZXJ2aWNlIHtcclxuICB1c2VyQXBpVXJsOiBhbnk7XHJcbiAgdGlja2V0c0FwaVVybDogYW55O1xyXG4gIGF1ZGl0QXBpVXJsOiBhbnk7XHJcbiAgYXVkaXRtZXRyaWNBcGlVcmw6IGFueTtcclxuICB6b25lYXVkaXRBcGlVcmw6IGFueTtcclxuICBmb290ZmFsbERpcmFwaVVybDogYW55O1xyXG4gIGZvb3RmYWxsQ0ROOiBhbnk7XHJcbiAgdHJhZmZpY0FwaVVybDogYW55O1xyXG4gIHJldm9wQXBpVXJsOiBhbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDtcclxuICAgICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlbnYudGlja2V0c0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0bWV0cmljQXBpVXJsID0gZW52LmF1ZGl0bWV0cmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuYXVkaXRBcGlVcmwgPSBlbnYuYXVkaXRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy56b25lYXVkaXRBcGlVcmwgPSBlbnYuem9uZWF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuZm9vdGZhbGxEaXJhcGlVcmwgPSBlbnYuZm9vdGZhbGxEaXJhcGlVcmw7XHJcbiAgICAgICAgdGhpcy5mb290ZmFsbENETiA9IGVudi5mb290ZmFsbENETjtcclxuICAgICAgICB0aGlzLnRyYWZmaWNBcGlVcmwgPSBlbnYudHJhZmZpY0FwaVVybDtcclxuICAgICAgICB0aGlzLnJldm9wQXBpVXJsID0gZW52LnJldm9wQXBpVXJsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJMaXN0KHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudXNlckFwaVVybH0vZ2V0LWxpc3RgLCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0SW5zdGFsbGF0aW9uTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEluZnJhTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luZnJhVGFibGVgLCBkYXRhLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRNYXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvbWF0VGFibGVgLCBkYXRhLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb3RyZXNMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9zdG9yZUZpbHRlcmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5zdGFsbGF0aW9uTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luc3RhbGxhdGlvblRhYmxlYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEluZnJhTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5mcmFUYWJsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXNzaWduVGlja2V0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvYXNzaWduVGlja2V0YCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldE1hdExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL21hdFRhYmxlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUaWNrZXRJc3N1ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2VtcGxveWVlVHJhbmluZy91cGRhdGVjb21tZW50YCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJBY3RpdmVMaXN0KHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudXNlckFwaVVybH0vbGlzdGAsIHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxDb3VudHMoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9hbGxDb3VudHNgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRzdG9yZU1ldHJpY3MoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3Mvc3RvcmUtbWV0cmljc2AsZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzRXhwb3J0KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG4gIGdldGNsaWVudExpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2NsaWVudHNgKVxyXG4gIH1cclxuICBnZXR1c2VyTGlzdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hdWRpdEFwaVVybH0vdGFuZ28tdXNlcnNgKVxyXG4gIH1cclxuICBhdWRpdHJldHJpZ2dlcihkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9yZS10cmlnZ2VyYCxkYXRhKVxyXG4gfVxyXG4gZ2V0Zm9vdGZhbGxjb3VudChkYXRhOmFueSl7XHJcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5yZXZvcEFwaVVybH0vc3RvcmUtcHJvY2Vzc2VkLWRhdGE/c3RvcmVJZD0ke2RhdGEuc3RvcmVJZH0mZnJvbURhdGU9JHtkYXRhLkRhdGV9JnRvRGF0ZT0ke2RhdGEuRGF0ZX1gKVxyXG4gIFxyXG4gfVxyXG4gZ2V0c3RvcmVMaXN0KGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtc3RvcmVzYCxkYXRhKVxyXG4gfVxyXG4gY2hlY2tUaWNrZXRFeGlzdHMoZGF0YTphbnkpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jaGVja1RpY2tldEV4aXN0c2AsZGF0YSlcclxuIH1cclxuIG1lcmdldGlja2V0KGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vbWVyZ2V0aWNrZXRgLGRhdGEpXHJcbiB9XHJcbiAgZ2V0RGF0YU1pc21hdGhMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0RGF0YU1pc21hdGNoTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9kYXRhTWlzbWF0Y2hUYWJsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRBdWRpdEltYWdlcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmF1ZGl0QXBpVXJsfS9hdWRpdC1pbWFnZXM/ZmlsZURhdGU9JHtkYXRhPy5maWxlRGF0ZX0mc3RvcmVJZD0ke2RhdGE/LnN0b3JlSWR9JmltYWdlVHlwZT0ke2RhdGE/LmltYWdlVHlwZX0mZXhwb3J0PSR7ZGF0YT8uZXhwb3J0fSZ6b25lTmFtZT0ke2RhdGE/LnpvbmVOYW1lfSZtb2R1bGVUeXBlPSR7ZGF0YT8ubW9kdWxlVHlwZX1gXHJcbiAgICApO1xyXG4gIH1cclxuICBFeHBvcnRBdWRpdEltYWdlc2FzeGxzeChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmF1ZGl0QXBpVXJsfS9hdWRpdC1pbWFnZXM/ZmlsZURhdGU9JHtkYXRhPy5maWxlRGF0ZX0mc3RvcmVJZD0ke2RhdGE/LnN0b3JlSWR9JmltYWdlVHlwZT0ke2RhdGE/LmltYWdlVHlwZX0mZXhwb3J0PSR7ZGF0YT8uZXhwb3J0fSZ6b25lTmFtZT0ke2RhdGE/LnpvbmVOYW1lfSZtb2R1bGVUeXBlPSR7ZGF0YT8ubW9kdWxlVHlwZX1gLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRTdW1tYXJ5QXBpKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1zdW1tYXJ5P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9YFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldExpc3RPbGRBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgICBsaW1pdDogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBpc0V4cG9ydDogYW55LFxyXG4gICAgc29ydEJ5OiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX0mc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX0mbGltaXQ9JHtsaW1pdH0mb2Zmc2V0PSR7b2Zmc2V0fSZpc0V4cG9ydD0ke2lzRXhwb3J0fSZzb3J0Qnk9JHtzb3J0Qnl9JnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0TGlzdEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55LFxyXG4gICAgdGFuZ29UeXBlOiBhbnksXHJcbiAgICAgcGVybWlzc2lvblR5cGU/OiBzdHJpbmcgfCBudWxsXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9gICtcclxuICAgICAgICAgICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgICAgICAgICBgJmZyb21EYXRlPSR7ZnJvbURhdGV9YCArXHJcbiAgICAgICAgICAgIGAmdG9EYXRlPSR7dG9EYXRlfWAgK1xyXG4gICAgICAgICAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICAgICAgICAgIGAmbGltaXQ9JHtsaW1pdH1gICtcclxuICAgICAgICAgICAgYCZvZmZzZXQ9JHtvZmZzZXR9YCArXHJcbiAgICAgICAgICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgICAgICAgICAgYCZzb3J0Qnk9JHtzb3J0Qnl9YCArXHJcbiAgICAgICAgICAgIGAmc29ydE9yZGVyPSR7c29ydE9yZGVyfWAgK1xyXG4gICAgICAgICAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDsgXHJcbiAgfVxyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0TGlzdEV4cG9ydE9sZEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWAsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldExpc3RFeHBvcnRBcGkoXHJcbiAgICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICBzZWFyY2h2YWx1ZTogYW55LFxyXG4gICAgbGltaXQ6IGFueSxcclxuICAgIG9mZnNldDogYW55LFxyXG4gICAgaXNFeHBvcnQ6IGFueSxcclxuICAgIHNvcnRCeTogYW55LFxyXG4gICAgc29ydE9yZGVyOiBhbnksXHJcbiAgICB0YW5nb1R5cGU6IGFueSxcclxuICAgICBwZXJtaXNzaW9uVHlwZT86IHN0cmluZyB8IG51bGxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgIGxldCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9gICtcclxuICAgICAgICAgICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgICAgICAgICBgJmZyb21EYXRlPSR7ZnJvbURhdGV9YCArXHJcbiAgICAgICAgICAgIGAmdG9EYXRlPSR7dG9EYXRlfWAgK1xyXG4gICAgICAgICAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICAgICAgICAgIGAmbGltaXQ9JHtsaW1pdH1gICtcclxuICAgICAgICAgICAgYCZvZmZzZXQ9JHtvZmZzZXR9YCArXHJcbiAgICAgICAgICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgICAgICAgICAgYCZzb3J0Qnk9JHtzb3J0Qnl9YCArXHJcbiAgICAgICAgICAgIGAmc29ydE9yZGVyPSR7c29ydE9yZGVyfWAgK1xyXG4gICAgICAgICAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDtcclxuICB9XHJcblxyXG4gIC8vIElmIGV4cG9ydCBpcyBUUlVFIOKGkiByZXR1cm4gYXJyYXlidWZmZXJcclxuICBjb25zdCBvcHRpb25zID0gaXNFeHBvcnRcclxuICAgID8geyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgYXMgJ2pzb24nIH1cclxuICAgIDoge307XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRzQXBpKFxyXG4gICAgc3RvcmU6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHJldm9wc1R5cGU6IGFueSxcclxuICAgIHN0YXR1czogYW55LFxyXG4gICAgYWN0aW9uOiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGxpbWl0OiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgLnNldChcInN0b3JlSWRcIiwgc3RvcmUpXHJcbiAgICAgIC5zZXQoXCJmcm9tRGF0ZVwiLCBmcm9tRGF0ZSlcclxuICAgICAgLnNldChcInRvRGF0ZVwiLCB0b0RhdGUpXHJcbiAgICAgIC5zZXQoXCJvZmZzZXRcIiwgb2Zmc2V0KVxyXG4gICAgICAuc2V0KFwibGltaXRcIiwgbGltaXQpO1xyXG4gICAgaWYgKHJldm9wc1R5cGUpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInJldm9wc1R5cGVcIiwgcmV2b3BzVHlwZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoc3RhdHVzKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzdGF0dXNcIiwgc3RhdHVzKTtcclxuICAgIH1cclxuICAgIGlmIChhY3Rpb24pIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcImFjdGlvblwiLCBhY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRpY2tldHNgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldHNOZXdBcGkodGlja2V0SWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJ0aWNrZXRJZFwiLCB0aWNrZXRJZCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGlja2V0c2AsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFnZ2VkU3RvcmVzQXBpKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICBzZWFyY2hWYWx1ZTogYW55LFxyXG4gICAgY2x1c3RlcnM6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnQpXHJcbiAgICAgIC5zZXQoXCJmcm9tRGF0ZVwiLCBmcm9tRGF0ZSlcclxuICAgICAgLnNldChcInRvRGF0ZVwiLCB0b0RhdGUpOyAvLyBBZGQgc2VhcmNoVmFsdWUgYXMgYW4gZW1wdHkgc3RyaW5nIGlmIG5vdCBwcm92aWRlZFxyXG4gICAgLy8gT25seSBhZGQgJ2NsdXN0ZXJzJyBpZiBpdCdzIG5vdCBudWxsLCB1bmRlZmluZWQsIG9yIGFuIGVtcHR5IGFycmF5L3N0cmluZ1xyXG4gICAgaWYgKHNlYXJjaFZhbHVlKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzZWFyY2hWYWx1ZVwiLCBzZWFyY2hWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNsdXN0ZXJzICYmIGNsdXN0ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcImNsdXN0ZXJzXCIsIGNsdXN0ZXJzKTtcclxuICAgIH1cclxuICAgIGlmIChzb3J0T3JkZXIpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInNvcnRPcmRlclwiLCBzb3J0T3JkZXIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRhZ2dlZC1zdG9yZXNgLCB7XHJcbiAgICAgIHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlU3RhdHVzQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtc3RhdHVzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVUZW1wU3RhdHVzQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXRlbXAtc3RhdHVzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRPcGVuVGlja2V0TGlzdEFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L29wZW4tdGlja2V0LWxpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZVRpY2tldFN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtdGlja2V0LXN0YXR1c2AsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0Q3JlYXRlVGlja2V0TGlzdEFwaShkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2NyZWF0ZS10aWNrZXRgLCBkYXRhKTtcclxufVxyXG5DcmVhdGVpbnRlcm5hbFRpY2tldEFwaShkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2NyZWF0ZS1pbnRlcm5hbHRpY2tldGAsIGRhdGEpO1xyXG59XHJcbiAgZ2V0Y2x1c3RlcnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJjbHVzdGVyX3YyYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXZpZXdlckFwaShjbGllbnRJZDogYW55LHR5cGU6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldChcImNsaWVudElkXCIsIGNsaWVudElkKVxyXG4gICAgICAuc2V0KFwidHlwZVwiLHR5cGUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vcmV2aWV3ZXItbGlzdGAsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0QXNzaWduQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vYXNzaWduLXRpY2tldGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TXVsdGlDbG9zZVRpY2tldEFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9tdWx0aS1jbG9zZS10aWNrZXRzYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBmb290ZmFsbERhdGE6IGFueTtcclxuXHJcbiAgc2V0Rm9vdGZhbGxEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5mb290ZmFsbERhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9vdGZhbGxEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9vdGZhbGxEYXRhO1xyXG4gIH1cclxufVxyXG4iXX0=
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFZSjtJQUEwQjtJQVg5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsWUFBWSxDQUFLO0lBQ2pCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUNqRCxZQUFvQixJQUFnQixFQUFVLEVBQXNCO1FBQWhELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFD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TUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBjYXRjaEVycm9yLFxyXG4gIG1hcCxcclxuICBvZixcclxuICB0aHJvd0Vycm9yLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0U2VydmljZSB7XHJcbiAgdXNlckFwaVVybDogYW55O1xyXG4gIHRpY2tldHNBcGlVcmw6IGFueTtcclxuICBhdWRpdEFwaVVybDogYW55O1xyXG4gIGF1ZGl0bWV0cmljQXBpVXJsOiBhbnk7XHJcbiAgem9uZWF1ZGl0QXBpVXJsOiBhbnk7XHJcbiAgZm9vdGZhbGxEaXJhcGlVcmw6IGFueTtcclxuICBmb290ZmFsbENETjogYW55O1xyXG4gIHRyYWZmaWNBcGlVcmw6IGFueTtcclxuICByZXZvcEFwaVVybDogYW55O1xyXG4gIGNsaWVudEFwaVVybDphbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDtcclxuICAgICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlbnYudGlja2V0c0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0bWV0cmljQXBpVXJsID0gZW52LmF1ZGl0bWV0cmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuYXVkaXRBcGlVcmwgPSBlbnYuYXVkaXRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy56b25lYXVkaXRBcGlVcmwgPSBlbnYuem9uZWF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuY2xpZW50QXBpVXJsID0gZW52LmNsaWVudEFwaVVybDtcclxuICAgICAgICB0aGlzLmZvb3RmYWxsRGlyYXBpVXJsID0gZW52LmZvb3RmYWxsRGlyYXBpVXJsO1xyXG4gICAgICAgIHRoaXMuZm9vdGZhbGxDRE4gPSBlbnYuZm9vdGZhbGxDRE47XHJcbiAgICAgICAgdGhpcy50cmFmZmljQXBpVXJsID0gZW52LnRyYWZmaWNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5yZXZvcEFwaVVybCA9IGVudi5yZXZvcEFwaVVybDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2dldC1saXN0YCwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5zdGFsbGF0aW9uVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbmZyYVRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0TWF0TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL21hdFRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U290cmVzTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvc3RvcmVGaWx0ZXJgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luZnJhVGFibGVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEFzc2lnblRpY2tldChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2Fzc2lnblRpY2tldGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRNYXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGlja2V0SXNzdWUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9lbXBsb3llZVRyYW5pbmcvdXBkYXRlY29tbWVudGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyQWN0aXZlTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2xpc3RgLCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ291bnRzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvYWxsQ291bnRzYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEpXHJcbiAgfVxyXG4gIGdldHN0b3JlTWV0cmljc0V4cG9ydChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9zdG9yZS1tZXRyaWNzYCxkYXRhLHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBnZXRjbGllbnRMaXN0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9jbGllbnRzYClcclxuICB9XHJcbiAgZ2V0dXNlckxpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L3RhbmdvLXVzZXJzYClcclxuICB9XHJcbiAgYXVkaXRyZXRyaWdnZXIoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3MvcmUtdHJpZ2dlcmAsZGF0YSlcclxuIH1cclxuIGdldGZvb3RmYWxsY291bnQoZGF0YTphbnkpe1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMucmV2b3BBcGlVcmx9L3N0b3JlLXByb2Nlc3NlZC1kYXRhP3N0b3JlSWQ9JHtkYXRhLnN0b3JlSWR9JmZyb21EYXRlPSR7ZGF0YS5EYXRlfSZ0b0RhdGU9JHtkYXRhLkRhdGV9YClcclxuICBcclxuIH1cclxuIGdldHN0b3JlTGlzdChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LXN0b3Jlc2AsZGF0YSlcclxuIH1cclxuIGNoZWNrVGlja2V0RXhpc3RzKGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vY2hlY2tUaWNrZXRFeGlzdHNgLGRhdGEpXHJcbiB9XHJcbiBtZXJnZXRpY2tldChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L21lcmdldGlja2V0YCxkYXRhKVxyXG4gfVxyXG4gIGdldERhdGFNaXNtYXRoTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2RhdGFNaXNtYXRjaFRhYmxlYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydERhdGFNaXNtYXRjaExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QXVkaXRJbWFnZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YFxyXG4gICAgKTtcclxuICB9XHJcbiAgRXhwb3J0QXVkaXRJbWFnZXNhc3hsc3goZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0U3VtbWFyeUFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtc3VtbWFyeT9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRMaXN0T2xkQXBpKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICBzZWFyY2h2YWx1ZTogYW55LFxyXG4gICAgbGltaXQ6IGFueSxcclxuICAgIG9mZnNldDogYW55LFxyXG4gICAgaXNFeHBvcnQ6IGFueSxcclxuICAgIHNvcnRCeTogYW55LFxyXG4gICAgc29ydE9yZGVyOiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9JnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9JmxpbWl0PSR7bGltaXR9Jm9mZnNldD0ke29mZnNldH0maXNFeHBvcnQ9JHtpc0V4cG9ydH0mc29ydEJ5PSR7c29ydEJ5fSZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldExpc3RBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgICBsaW1pdDogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBpc0V4cG9ydDogYW55LFxyXG4gICAgc29ydEJ5OiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueSxcclxuICAgIHRhbmdvVHlwZTogYW55LFxyXG4gICAgIHBlcm1pc3Npb25UeXBlPzogc3RyaW5nIHwgbnVsbFxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/YCArXHJcbiAgICAgICAgICAgIGBjbGllbnRJZD0ke2NsaWVudH1gICtcclxuICAgICAgICAgICAgYCZmcm9tRGF0ZT0ke2Zyb21EYXRlfWAgK1xyXG4gICAgICAgICAgICBgJnRvRGF0ZT0ke3RvRGF0ZX1gICtcclxuICAgICAgICAgICAgYCZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfWAgK1xyXG4gICAgICAgICAgICBgJmxpbWl0PSR7bGltaXR9YCArXHJcbiAgICAgICAgICAgIGAmb2Zmc2V0PSR7b2Zmc2V0fWAgK1xyXG4gICAgICAgICAgICBgJmlzRXhwb3J0PSR7aXNFeHBvcnR9YCArXHJcbiAgICAgICAgICAgIGAmc29ydEJ5PSR7c29ydEJ5fWAgK1xyXG4gICAgICAgICAgICBgJnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gICtcclxuICAgICAgICAgICAgYCZ0YW5nb1R5cGU9JHt0YW5nb1R5cGV9YDtcclxuXHJcbiAgaWYgKHBlcm1pc3Npb25UeXBlKSB7XHJcbiAgICB1cmwgKz0gYCZwZXJtaXNzaW9uVHlwZT0ke3Blcm1pc3Npb25UeXBlfWA7IFxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldExpc3RFeHBvcnRPbGRBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgICBsaW1pdDogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBpc0V4cG9ydDogYW55LFxyXG4gICAgc29ydEJ5OiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX0mc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX0mbGltaXQ9JHtsaW1pdH0mb2Zmc2V0PSR7b2Zmc2V0fSZpc0V4cG9ydD0ke2lzRXhwb3J0fSZzb3J0Qnk9JHtzb3J0Qnl9JnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRMaXN0RXhwb3J0QXBpKFxyXG4gICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55LFxyXG4gICAgdGFuZ29UeXBlOiBhbnksXHJcbiAgICAgcGVybWlzc2lvblR5cGU/OiBzdHJpbmcgfCBudWxsXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICBsZXQgdXJsID0gYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/YCArXHJcbiAgICAgICAgICAgIGBjbGllbnRJZD0ke2NsaWVudH1gICtcclxuICAgICAgICAgICAgYCZmcm9tRGF0ZT0ke2Zyb21EYXRlfWAgK1xyXG4gICAgICAgICAgICBgJnRvRGF0ZT0ke3RvRGF0ZX1gICtcclxuICAgICAgICAgICAgYCZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfWAgK1xyXG4gICAgICAgICAgICBgJmxpbWl0PSR7bGltaXR9YCArXHJcbiAgICAgICAgICAgIGAmb2Zmc2V0PSR7b2Zmc2V0fWAgK1xyXG4gICAgICAgICAgICBgJmlzRXhwb3J0PSR7aXNFeHBvcnR9YCArXHJcbiAgICAgICAgICAgIGAmc29ydEJ5PSR7c29ydEJ5fWAgK1xyXG4gICAgICAgICAgICBgJnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gICtcclxuICAgICAgICAgICAgYCZ0YW5nb1R5cGU9JHt0YW5nb1R5cGV9YDtcclxuXHJcbiAgaWYgKHBlcm1pc3Npb25UeXBlKSB7XHJcbiAgICB1cmwgKz0gYCZwZXJtaXNzaW9uVHlwZT0ke3Blcm1pc3Npb25UeXBlfWA7XHJcbiAgfVxyXG5cclxuICAvLyBJZiBleHBvcnQgaXMgVFJVRSDihpIgcmV0dXJuIGFycmF5YnVmZmVyXHJcbiAgY29uc3Qgb3B0aW9ucyA9IGlzRXhwb3J0XHJcbiAgICA/IHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIGFzICdqc29uJyB9XHJcbiAgICA6IHt9O1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0c0FwaShcclxuICAgIHN0b3JlOiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICByZXZvcHNUeXBlOiBhbnksXHJcbiAgICBzdGF0dXM6IGFueSxcclxuICAgIGFjdGlvbjogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBsaW1pdDogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoXCJzdG9yZUlkXCIsIHN0b3JlKVxyXG4gICAgICAuc2V0KFwiZnJvbURhdGVcIiwgZnJvbURhdGUpXHJcbiAgICAgIC5zZXQoXCJ0b0RhdGVcIiwgdG9EYXRlKVxyXG4gICAgICAuc2V0KFwib2Zmc2V0XCIsIG9mZnNldClcclxuICAgICAgLnNldChcImxpbWl0XCIsIGxpbWl0KTtcclxuICAgIGlmIChyZXZvcHNUeXBlKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJyZXZvcHNUeXBlXCIsIHJldm9wc1R5cGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic3RhdHVzXCIsIHN0YXR1cyk7XHJcbiAgICB9XHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJhY3Rpb25cIiwgYWN0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10aWNrZXRzYCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRzTmV3QXBpKHRpY2tldElkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwidGlja2V0SWRcIiwgdGlja2V0SWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRpY2tldHNgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRhZ2dlZFN0b3Jlc0FwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNoVmFsdWU6IGFueSxcclxuICAgIGNsdXN0ZXJzOiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KFwiY2xpZW50SWRcIiwgY2xpZW50KVxyXG4gICAgICAuc2V0KFwiZnJvbURhdGVcIiwgZnJvbURhdGUpXHJcbiAgICAgIC5zZXQoXCJ0b0RhdGVcIiwgdG9EYXRlKTsgLy8gQWRkIHNlYXJjaFZhbHVlIGFzIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgcHJvdmlkZWRcclxuICAgIC8vIE9ubHkgYWRkICdjbHVzdGVycycgaWYgaXQncyBub3QgbnVsbCwgdW5kZWZpbmVkLCBvciBhbiBlbXB0eSBhcnJheS9zdHJpbmdcclxuICAgIGlmIChzZWFyY2hWYWx1ZSkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic2VhcmNoVmFsdWVcIiwgc2VhcmNoVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjbHVzdGVycyAmJiBjbHVzdGVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJjbHVzdGVyc1wiLCBjbHVzdGVycyk7XHJcbiAgICB9XHJcbiAgICBpZiAoc29ydE9yZGVyKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzb3J0T3JkZXJcIiwgc29ydE9yZGVyKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10YWdnZWQtc3RvcmVzYCwge1xyXG4gICAgICBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZVN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXN0YXR1c2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlVGVtcFN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3VwZGF0ZS10ZW1wLXN0YXR1c2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3BlblRpY2tldExpc3RBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9vcGVuLXRpY2tldC1saXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVUaWNrZXRTdGF0dXNBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXRpY2tldC1zdGF0dXNgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbmdldENyZWF0ZVRpY2tldExpc3RBcGkoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jcmVhdGUtdGlja2V0YCwgZGF0YSk7XHJcbn1cclxuQ3JlYXRlaW50ZXJuYWxUaWNrZXRBcGkoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jcmVhdGUtaW50ZXJuYWx0aWNrZXRgLCBkYXRhKTtcclxufVxyXG4gIGdldGNsdXN0ZXJzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJhZmZpY0FwaVVybH0vaGVhZGVyY2x1c3Rlcl92MmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmV2aWV3ZXJBcGkoY2xpZW50SWQ6IGFueSx0eXBlOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnRJZClcclxuICAgICAgLnNldChcInR5cGVcIix0eXBlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3Jldmlld2VyLWxpc3RgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldEFzc2lnbkFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2Fzc2lnbi10aWNrZXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE11bHRpQ2xvc2VUaWNrZXRBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vbXVsdGktY2xvc2UtdGlja2V0c2AsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUeXBlRnVuY3Rpb24oY2xpZW50SWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnRJZCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vZ2V0LWZvb3RmYWxsLWRpcmVjdG9yeS1jb25maWdgLCB7IHBhcmFtcyB9KTtcclxuXHJcbiAgICBcclxuICB9XHJcbiAgcHJpdmF0ZSBmb290ZmFsbERhdGE6IGFueTtcclxuXHJcbiAgc2V0Rm9vdGZhbGxEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5mb290ZmFsbERhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9vdGZhbGxEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9vdGZhbGxEYXRhO1xyXG4gIH1cclxufVxyXG4iXX0=