gamma-app-controller 1.1.5 → 1.1.6

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.
@@ -548,6 +548,37 @@ export class ApplicationContentService extends AppHttpService {
548
548
  return response;
549
549
  }), catchError(this.handleError));
550
550
  }
551
+ listMetricConfigs() {
552
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/settings/metrics/listMetricConfigs';
553
+ return this.http
554
+ .get(apiUrl, { withCredentials: true })
555
+ .pipe(map((response) => {
556
+ return response;
557
+ }), catchError(this.handleError));
558
+ }
559
+ deleteMetricConfig(metricId) {
560
+ return this.http
561
+ .delete(this.environment.appUrl + this.environment.apiVersion + '/settings/metrics/deleteMetricConfig/' + metricId, this.options)
562
+ .pipe(map((response) => {
563
+ return response;
564
+ }), catchError(this.handleError));
565
+ }
566
+ saveOnlineMetricConfig(metricConfig) {
567
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/settings/metrics/saveOnlineMetricConfig';
568
+ return this.http
569
+ .post(apiUrl, JSON.stringify(metricConfig), this.options)
570
+ .pipe(map((response) => {
571
+ return response;
572
+ }), catchError(this.handleError));
573
+ }
574
+ editOfflineMetricConfig(metricConfig) {
575
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/settings/metrics/editOfflineMetricConfig';
576
+ return this.http
577
+ .post(apiUrl, JSON.stringify(metricConfig), this.options)
578
+ .pipe(map((response) => {
579
+ return response;
580
+ }), catchError(this.handleError));
581
+ }
551
582
  }
552
583
  ApplicationContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ApplicationContentService, deps: [{ token: i1.HttpClient }, { token: APP_ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
553
584
  ApplicationContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ApplicationContentService });
@@ -557,4 +588,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
557
588
  type: Inject,
558
589
  args: [APP_ENVIRONMENT]
559
590
  }] }]; } });
560
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUEwQixNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBR2hELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxjQUFjO0lBR3pELFlBQW9CLFVBQXNCLEVBQW1DLFdBQWdCO1FBQ3pGLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQURELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBbUMsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFJckYsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELG1CQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDaEQsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBTi9DLENBQUM7SUFRRCxlQUFlLENBQUMsSUFBUztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsd0JBQXdC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QUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxNQUFNO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsa0NBQWtDLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDekgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQWtCLEVBQU8sRUFBRTtZQUNsQyxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7c0hBcnVCUSx5QkFBeUIsNENBR2tCLGVBQWU7MEhBSDFELHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVOzswQkFJc0MsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgbWFwLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcHBIdHRwU2VydmljZSB9IGZyb20gJy4vYXBwLmh0dHAuc2VydmljZSc7XG5pbXBvcnQgeyBBUFBfRU5WSVJPTk1FTlQgfSBmcm9tICcuL2Vudmlyb25tZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UgZXh0ZW5kcyBBcHBIdHRwU2VydmljZSB7XG5cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCwgQEluamVjdChBUFBfRU5WSVJPTk1FTlQpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSkge1xuICAgICAgICBzdXBlcihodHRwQ2xpZW50KVxuICAgIH1cblxuICAgIHByaXZhdGUga3BpRmlsdGVyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFtdKTtcbiAgICB1c2Vya3BpRmlsdGVyJCA9IHRoaXMua3BpRmlsdGVyLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBkYXRhc2V0cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihbXSk7XG4gICAgdXBkYXRlRGF0c3NldHMkID0gdGhpcy5kYXRhc2V0cy5hc09ic2VydmFibGUoKTtcblxuICAgIGdldEZpbHRlckZvcktwaShwaW5zOiBhbnkpIHtcbiAgICAgICAgdGhpcy5rcGlGaWx0ZXIubmV4dChwaW5zKTtcbiAgICB9XG5cbiAgICBnZXRDdXJyZW50S3BpRmlsdGVyVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmtwaUZpbHRlci5nZXRWYWx1ZSgpO1xuICAgIH1cbiAgICBzZXRDdXJyZW50RGF0YXNldFZhbHVlKGRhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhc2V0cy5uZXh0KGRhdGEpO1xuICAgIH1cblxuXG5cbiAgICBnZXREYXRhU2V0KCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9ICcvYXNzZXRzL2FwaS1kYXRhL2RhdGEtc2V0Lmpzb24nO1xuICAgICAgICAvLyBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmdhdGV3YXlVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwcE5hbWUgKyAnL2Fzc2V0cy9hcGktZGF0YS9kYXNoYm9hcmQuanNvbic7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGdldENvbXBvbmVudERhdGFDb25maWdTZXQoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gJy9hc3NldHMvYXBpLWRhdGEvY29tcG9uZW50X2NvbmZpZy5qc29uJztcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5nYXRld2F5VXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcHBOYW1lICsgJy9hc3NldHMvYXBpLWRhdGEvZGFzaGJvYXJkLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGxpc3RDb2x1bW5FbnJpY2htZW50RnVuY3Rpb25zKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvbGlzdENvbHVtbkVucmljaG1lbnRGdW5jdGlvbnMnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuICAgIHZhbGlkYXRlQWdncmVnYXRlUGFnaW5hdGVkUXVlcnkodHJhbnNmb3JtZWRPYmplY3QpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpL3ZhbGlkYXRlQWdncmVnYXRlUGFnaW5hdGVkUXVlcnknO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KHRyYW5zZm9ybWVkT2JqZWN0KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICBnZXRLcGlCcm93c2VyQ29uZmlnQnlJZChpZCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEtwaUJyb3dzZXJDb25maWdCeUlkP2lkPScgKyBpZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuICAgIGdldERhdGEoYm9keSwgcmVxdWVzdElEKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyByZXF1ZXN0SUQsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0U2ltcGxlQXBpUG9zdFJlcXVlc3QocmVxdWVzdEFwaSwgYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgcmVxdWVzdEFwaSwgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0U2ltcGxlQXBpR2V0UmVxdWVzdChyZXF1ZXN0QXBpKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIHJlcXVlc3RBcGksIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEpzb25EYXRhc2V0UGF5bG9hZChyZXF1ZXN0QXBpKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIHJlcXVlc3RBcGksIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdlbmVyaWNTcWxRdWVyeVJlc3BvbnNlKHJlcXVlc3RBcGksIGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIHJlcXVlc3RBcGksIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgLy8gZGF0YXNldCBhcGlzXG4gICAgY3JlYXRlQXBwRGF0YXNldChib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY3JlYXRlQXBwRGF0YXNldCcsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQXBwRGF0YXNldENvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvdXBkYXRlQXBwRGF0YXNldENvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlQXBwRGF0YXNldENvbmZpZyhkYXRhc2V0SWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2RlbGV0ZUFwcERhdGFzZXRDb25maWcvJyArIGRhdGFzZXRJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBcHBEYXRhc2V0Q29uZmlncygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBEYXRhc2V0Q29uZmlncyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG4gICAgZ2V0QXBwRGF0YXNldENvbmZpZyhkYXRhc2V0SWQpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBEYXRhc2V0Q29uZmlnP2RhdGFzZXRJZD0nICsgZGF0YXNldElkO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgLy92aWV3cyBjb21wb25lbnQgYXBpc1xuICAgIGNyZWF0ZUFwcFZpZXdDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NyZWF0ZUFwcFZpZXdDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIHVwZGF0ZUFwcFZpZXdDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL3VwZGF0ZUFwcFZpZXdDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBcHBWaWV3Q29uZmlncygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBWaWV3Q29uZmlncyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG4gICAgZ2V0QXBwVmlld0NvbmZpZyh2aWV3SWQpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBWaWV3Q29uZmlnP3ZpZXdJZD0nICsgdmlld0lkO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGRlbGV0ZUFwcFZpZXdDb25maWcoZGF0YXNldElkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBWaWV3Q29uZmlnLycgKyBkYXRhc2V0SWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgLy9maWx0ZXIgY29udGVudCBhcGlzXG4gICAgY3JlYXRlQXBwRmlsdGVyQ29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVBcHBGaWx0ZXJDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGVkaXRBcHBGaWx0ZXJDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2VkaXRBcHBGaWx0ZXJDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBcHBGaWx0ZXJDb25maWdzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcEZpbHRlckNvbmZpZ3MnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgZGVsZXRlQXBwRmlsdGVyQ29uZmlnKGZpbHRlcklkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBGaWx0ZXJDb25maWcvJyArIGZpbHRlcklkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cblxuXG5cblxuXG5cblxuICAgIGdldE1hcERhdGEoYm9keSwgcmVxdWVzdElEKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gJy9hc3NldHMvYXBpLWRhdGEvbWFwanNvbi5qc29uJztcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5nYXRld2F5VXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcHBOYW1lICsgJy9hc3NldHMvYXBpLWRhdGEvbWFwanNvbi5qc29uJztcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IGFueSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cbiAgICBnZXREYXNoQm9hcmRKc29uKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9ICcvYXNzZXRzL2FwaS1kYXRhL2Rhc2hib2FyZF9sZWJhcmEuanNvbic7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuZ2F0ZXdheVVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZSArICcvYXNzZXRzL2FwaS1kYXRhL2Rhc2hib2FyZC5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRBcHBQYWdlQ29uZmlncygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBQYWdlQ29uZmlncyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICBjcmVhdGVBcHBQYWdlQ29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVBcHBQYWdlQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBlZGl0QXBwUGFnZUNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZWRpdEFwcFBhZ2VDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGRlbGV0ZUFwcFBhZ2VDb25maWcocGFnZUlkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBQYWdlQ29uZmlnLycgKyBwYWdlSWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICAvLyBjcmVhdGUgd2lkZ2V0XG4gICAgY3JlYXRlQXBwV2lkZ2V0Q29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVBcHBXaWRnZXRDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBlZGl0QXBwV2lkZ2V0Q29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9lZGl0QXBwV2lkZ2V0Q29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXBwUGFnZURldGFpbENvbmZpZyhwYWdlSWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcFBhZ2VEZXRhaWxDb25maWc/cGFnZUNvbmZpZ0lkPScgKyBwYWdlSWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBkZWxldGVBcHBXaWRnZXRDb25maWcoZmlsdGVySWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2RlbGV0ZUFwcFdpZGdldENvbmZpZy8nICsgZmlsdGVySWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXBwRmlsdGVyQ29uZmlnKGZpbHRlcklkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBGaWx0ZXJDb25maWc/ZmlsdGVySWQ9JyArIGZpbHRlcklkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0S1BJUmVmZXJlbmNlRW5kUG9pbnRzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEtQSVJlZmVyZW5jZUVuZFBvaW50cyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cblxuICAgIC8vIHBhZ2UgdGVtcGxhdGVcbiAgICBsb2FkS3BpQnJvd3NlcigpOiBhbnkge1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS9sb2FkS3BpQnJvd3NlcicsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0bGlzdEtwaUJyb3dzZXIoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvbGlzdEtwaUJyb3dzZXInO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgZ2V0Qm9va21hcmtlZFJlc291cmNlKCk6IGFueSB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpL2dldEJvb2ttYXJrZWRSZXNvdXJjZScsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGJvb2ttYXJrUmVzb3VyY2UoYm9keSk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvYm9va21hcmtSZXNvdXJjZSc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG5cbiAgICAvLyBjcmVhdGUga3BpXG4gICAgY29uZmlndXJlS3BpQnJvd3NlckNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY29uZmlndXJlS3BpQnJvd3NlckNvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0Q3JlYXRlS3BpKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVLcGknLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICB1cGxvYWREYXRhc2V0SnNvblBheWxvYWQoZm9ybURhdGEpOiBhbnkge1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICdlbmN0eXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsgaGVhZGVyczogaGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvdXBsb2FkRGF0YXNldEpzb25QYXlsb2FkJywgZm9ybURhdGEsIG9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cbiAgICAvLyBjZHIgY29uZmlnIHNlcnZpY2VcblxuICAgIGdldEtwaURhdGEoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChgJHt0aGlzLmVudmlyb25tZW50LmJhc2VQYXRofWFzc2V0cy9hcGktZGF0YS9wb2xpY3kuanNvbmAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0R3JvdXBEZXRhaWxzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2pvYnMvZ2V0R3JvdXBEZXRhaWxzJywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBsb2FkdGFibGVOYW1lKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwcFVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0U2VhcmNoRGF0YXNvdXJjZURldGFpbHMnO1xuICAgICAgICAvLyBjb25zdCBhcHBVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9nZXRTZWFyY2hEYXRhc291cmNlRGV0YWlscy5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBwVXJsKTtcbiAgICB9XG5cblxuICAgIGdldFNlYXJjaFJlc3VsdEZvckRhdGFzb3VyY2UoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0U2VhcmNoUmVzdWx0Rm9yRGF0YXNvdXJjZScsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgYWpheFNlbGZQcmV2QWN0aXZpdHlMb2dzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRVc2VyQ2RyQnJvd3NlckFjdGl2aXR5TG9ncz9hY3Rpdml0eUNvdW50PTUwJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBnZXRDZHJCcm93c2VyQWN0aXZpdHlMb2dzKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRDZHJCcm93c2VyQWN0aXZpdHlMb2dzP3N0YXJ0RGF0ZT0nICsgc3RhcnREYXRlICsgJyZlbmREYXRlPScgKyBlbmREYXRlKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBdmFpbGFibGVUYWJsZXMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldEF2YWlsYWJsZVRhYmxlcycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldFRhYmxlTWV0YWRhdGEodGFibGVOYW1lKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldFRhYmxlTWV0YWRhdGE/dGFibGVOYW1lPScgKyB0YWJsZU5hbWUsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldENkckJyb3dzZXJPcGVyYXRpb25zKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRDZHJCcm93c2VyT3BlcmF0aW9ucycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldFNlYXJjaERhdGFzb3VyY2VEZXRhaWxzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRTZWFyY2hEYXRhc291cmNlRGV0YWlscycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgc2F2ZURhdGFzb3VyY2VDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvc2F2ZURhdGFzb3VyY2VDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBlZGl0RGF0YXNvdXJjZUNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9lZGl0RGF0YXNvdXJjZUNvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGRlbGV0ZURhdGFzb3VyY2VDb25maWcodGFibGVOYW1lKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2RlbGV0ZURhdGFzb3VyY2VDb25maWcvJyArIHRhYmxlTmFtZSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICAvLyB2aWV3IHdpdGggZGF0YXNldHNcblxuICAgIGdldEtwaUNvbmZpZ2FyYXRpb24oKTogYW55IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC8vIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3JlcG9ydHMvZ2V0QXBwQ29uZmlndXJlZFJlcG9ydENvbmZpZycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmdhdGV3YXlVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwcE5hbWUgKyAnYXNzZXRzL2FwaS1kYXRhL2twaS1jb25maWcuanNvbicsIHtcbiAgICAgICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuXG5cbiAgICBnZXRsaXN0S3BpQnJvd3NlclR3bygpOiBhbnkge1xuICAgICAgICAvLyBjb25zdCBhcGlVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9kYXNoYm9hcmQuanNvbic7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuZ2F0ZXdheVVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZSArICcvYXNzZXRzL2FwaS1kYXRhL2Rhc2hib2FyZC5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRmaWx0ZXJEYXRhKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoXCIvYXNzZXRzL2FwaS1kYXRhL2ZpbHRlci1kaXJlY3Rpb24uanNvblwiKVxuICAgICAgICAgICAgLy8gLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIGFwaSArICc/JysgdXJsIClcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuXG4gICAgZ2VuZXJpY0RldGFpbERhdGFSZXNwb25zZShib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS9nZW5lcmljRGV0YWlsRGF0YVJlc3BvbnNlJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuICAgIGdldFVuaXF1ZURhdGEoYXBpKTogT2JzZXJ2YWJsZTxSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgYXBpLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG4gICAgZ2V0RmlsdGVyRGF0YUJ5RHJpbGxEb3duKGFwaU5hbWUpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIGFwaU5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cblxuICAgIC8vIHNoZWFyZCBtb2R1bGVcblxuXG4gICAgZ2V0RGF0YUJ5QVBJKHJlcXVlc3RJRCwgYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgcmVxdWVzdElELCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG5cbiAgICBnZXRDZHJEYXRhKGFwaSwgdXJsKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIGFwaSArICc/JyArIHVybClcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuICAgIGdldFNydlR5cGVEYXRhU291cmNlKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvc3J2LXBhcmFtcyc7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9IGVudmlyb25tZW50LmdhdGV3YXlVcmwgKyBlbnZpcm9ubWVudC5hcHBOYW1lICsgJy9hc3NldHMvYXBpLWRhdGEvc3J2X3R5cGVfcGFyYW1zLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC8vIC5nZXQoZW52aXJvbm1lbnQuYXBwVXJsICsgZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIGFwaSArICc/JysgdXJsIClcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgcGFnaW50ZWRBY3Rpdml0eUxvZ3MocGFybXMsIGFwaSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgYXBpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KHBhcm1zKSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGdldEFwaURhdGEoKTogYW55IHtcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gZW52aXJvbm1lbnQuYXBwVXJsICsgZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvYXBwLXNldHRpbmcvZ2V0SW50ZWdyYXRlZEFwcHMnO1xuICAgICAgICBjb25zdCBhcGlVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9hcGktc2VydmljZS5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuXG4gICAgLy8gYXBwIG1lbnUgY29udHJvbGxlclxuXG4gICAgY29uZmlndXJlQXBwTWVudUNvbmZpZyhtYW51ZUNvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NvbmZpZ3VyZUFwcE1lbnVDb25maWcnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KG1hbnVlQ29uZmlnKSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRMaXN0T2ZQYXJlbnRBcHBNZW51KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldExpc3RPZlBhcmVudEFwcE1lbnUnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwge3dpdGhDcmVkZW50aWFsczp0cnVlfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXBwQXBwTWVudUNvbmZpZ0J5SWQobWFudWlkKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0QXBwQXBwTWVudUNvbmZpZ0J5SWQ/bWVudUlkPScrbWFudWlkO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwge3dpdGhDcmVkZW50aWFsczp0cnVlfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICB1cGRhdGVBcHBNZW51Q29uZmlnKG1hbnVlQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvdXBkYXRlQXBwTWVudUNvbmZpZyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgSlNPTi5zdHJpbmdpZnkobWFudWVDb25maWcpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGRlbGV0ZUFwcE1lbnVDb25maWcobWVudUlkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBNZW51Q29uZmlnLycgKyBtZW51SWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxufVxuIl19
591
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUEwQixNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBR2hELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxjQUFjO0lBR3pELFlBQW9CLFVBQXNCLEVBQW1DLFdBQWdCO1FBQ3pGLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQURELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBbUMsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFJckYsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELG1CQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDaEQsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBTi9DLENBQUM7SUFRRCxlQUFlLENBQUMsSUFBUztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsd0JBQXdC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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBtYXAsIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi9hcHAuaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IEFQUF9FTlZJUk9OTUVOVCB9IGZyb20gJy4vZW52aXJvbm1lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25Db250ZW50U2VydmljZSBleHRlbmRzIEFwcEh0dHBTZXJ2aWNlIHtcblxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBASW5qZWN0KEFQUF9FTlZJUk9OTUVOVCkgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgICAgIHN1cGVyKGh0dHBDbGllbnQpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBrcGlGaWx0ZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oW10pO1xuICAgIHVzZXJrcGlGaWx0ZXIkID0gdGhpcy5rcGlGaWx0ZXIuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIGRhdGFzZXRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFtdKTtcbiAgICB1cGRhdGVEYXRzc2V0cyQgPSB0aGlzLmRhdGFzZXRzLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgZ2V0RmlsdGVyRm9yS3BpKHBpbnM6IGFueSkge1xuICAgICAgICB0aGlzLmtwaUZpbHRlci5uZXh0KHBpbnMpO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRLcGlGaWx0ZXJWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua3BpRmlsdGVyLmdldFZhbHVlKCk7XG4gICAgfVxuICAgIHNldEN1cnJlbnREYXRhc2V0VmFsdWUoZGF0YTogYW55KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFzZXRzLm5leHQoZGF0YSk7XG4gICAgfVxuXG5cblxuICAgIGdldERhdGFTZXQoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gJy9hc3NldHMvYXBpLWRhdGEvZGF0YS1zZXQuanNvbic7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuZ2F0ZXdheVVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZSArICcvYXNzZXRzL2FwaS1kYXRhL2Rhc2hib2FyZC5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0Q29tcG9uZW50RGF0YUNvbmZpZ1NldCgpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9jb21wb25lbnRfY29uZmlnLmpzb24nO1xuICAgICAgICAvLyBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmdhdGV3YXlVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwcE5hbWUgKyAnL2Fzc2V0cy9hcGktZGF0YS9kYXNoYm9hcmQuanNvbic7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbGlzdENvbHVtbkVucmljaG1lbnRGdW5jdGlvbnMoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS9saXN0Q29sdW1uRW5yaWNobWVudEZ1bmN0aW9ucyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG4gICAgdmFsaWRhdGVBZ2dyZWdhdGVQYWdpbmF0ZWRRdWVyeSh0cmFuc2Zvcm1lZE9iamVjdCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvdmFsaWRhdGVBZ2dyZWdhdGVQYWdpbmF0ZWRRdWVyeSc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgSlNPTi5zdHJpbmdpZnkodHJhbnNmb3JtZWRPYmplY3QpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuICAgIGdldEtwaUJyb3dzZXJDb25maWdCeUlkKGlkKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0S3BpQnJvd3NlckNvbmZpZ0J5SWQ/aWQ9JyArIGlkO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgZ2V0RGF0YShib2R5LCByZXF1ZXN0SUQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIHJlcXVlc3RJRCwgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBnZXRTaW1wbGVBcGlQb3N0UmVxdWVzdChyZXF1ZXN0QXBpLCBib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyByZXF1ZXN0QXBpLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRTaW1wbGVBcGlHZXRSZXF1ZXN0KHJlcXVlc3RBcGkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgcmVxdWVzdEFwaSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0SnNvbkRhdGFzZXRQYXlsb2FkKHJlcXVlc3RBcGkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgcmVxdWVzdEFwaSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2VuZXJpY1NxbFF1ZXJ5UmVzcG9uc2UocmVxdWVzdEFwaSwgYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgcmVxdWVzdEFwaSwgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICAvLyBkYXRhc2V0IGFwaXNcbiAgICBjcmVhdGVBcHBEYXRhc2V0KGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVBcHBEYXRhc2V0JywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICB1cGRhdGVBcHBEYXRhc2V0Q29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy91cGRhdGVBcHBEYXRhc2V0Q29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBkZWxldGVBcHBEYXRhc2V0Q29uZmlnKGRhdGFzZXRJZCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZGVsZXRlQXBwRGF0YXNldENvbmZpZy8nICsgZGF0YXNldElkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEFwcERhdGFzZXRDb25maWdzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcERhdGFzZXRDb25maWdzJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cbiAgICBnZXRBcHBEYXRhc2V0Q29uZmlnKGRhdGFzZXRJZCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcERhdGFzZXRDb25maWc/ZGF0YXNldElkPScgKyBkYXRhc2V0SWQ7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICAvL3ZpZXdzIGNvbXBvbmVudCBhcGlzXG4gICAgY3JlYXRlQXBwVmlld0NvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY3JlYXRlQXBwVmlld0NvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQXBwVmlld0NvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvdXBkYXRlQXBwVmlld0NvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEFwcFZpZXdDb25maWdzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcFZpZXdDb25maWdzJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cbiAgICBnZXRBcHBWaWV3Q29uZmlnKHZpZXdJZCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcFZpZXdDb25maWc/dmlld0lkPScgKyB2aWV3SWQ7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlQXBwVmlld0NvbmZpZyhkYXRhc2V0SWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2RlbGV0ZUFwcFZpZXdDb25maWcvJyArIGRhdGFzZXRJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICAvL2ZpbHRlciBjb250ZW50IGFwaXNcbiAgICBjcmVhdGVBcHBGaWx0ZXJDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NyZWF0ZUFwcEZpbHRlckNvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZWRpdEFwcEZpbHRlckNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZWRpdEFwcEZpbHRlckNvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEFwcEZpbHRlckNvbmZpZ3MoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0QXBwRmlsdGVyQ29uZmlncyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICBkZWxldGVBcHBGaWx0ZXJDb25maWcoZmlsdGVySWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2RlbGV0ZUFwcEZpbHRlckNvbmZpZy8nICsgZmlsdGVySWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuXG5cblxuXG5cblxuXG4gICAgZ2V0TWFwRGF0YShib2R5LCByZXF1ZXN0SUQpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9tYXBqc29uLmpzb24nO1xuICAgICAgICAvLyBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmdhdGV3YXlVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwcE5hbWUgKyAnL2Fzc2V0cy9hcGktZGF0YS9tYXBqc29uLmpzb24nO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogYW55KTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuICAgIGdldERhc2hCb2FyZEpzb24oKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gJy9hc3NldHMvYXBpLWRhdGEvZGFzaGJvYXJkX2xlYmFyYS5qc29uJztcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5nYXRld2F5VXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcHBOYW1lICsgJy9hc3NldHMvYXBpLWRhdGEvZGFzaGJvYXJkLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEFwcFBhZ2VDb25maWdzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcFBhZ2VDb25maWdzJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuICAgIGNyZWF0ZUFwcFBhZ2VDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NyZWF0ZUFwcFBhZ2VDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGVkaXRBcHBQYWdlQ29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9lZGl0QXBwUGFnZUNvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlQXBwUGFnZUNvbmZpZyhwYWdlSWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2RlbGV0ZUFwcFBhZ2VDb25maWcvJyArIHBhZ2VJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIC8vIGNyZWF0ZSB3aWRnZXRcbiAgICBjcmVhdGVBcHBXaWRnZXRDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NyZWF0ZUFwcFdpZGdldENvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGVkaXRBcHBXaWRnZXRDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2VkaXRBcHBXaWRnZXRDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBcHBQYWdlRGV0YWlsQ29uZmlnKHBhZ2VJZCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0QXBwUGFnZURldGFpbENvbmZpZz9wYWdlQ29uZmlnSWQ9JyArIHBhZ2VJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGRlbGV0ZUFwcFdpZGdldENvbmZpZyhmaWx0ZXJJZCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZGVsZXRlQXBwV2lkZ2V0Q29uZmlnLycgKyBmaWx0ZXJJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBcHBGaWx0ZXJDb25maWcoZmlsdGVySWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcEZpbHRlckNvbmZpZz9maWx0ZXJJZD0nICsgZmlsdGVySWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBnZXRLUElSZWZlcmVuY2VFbmRQb2ludHMoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0S1BJUmVmZXJlbmNlRW5kUG9pbnRzJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuXG4gICAgLy8gcGFnZSB0ZW1wbGF0ZVxuICAgIGxvYWRLcGlCcm93c2VyKCk6IGFueSB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpL2xvYWRLcGlCcm93c2VyJywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBnZXRsaXN0S3BpQnJvd3NlcigpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9saXN0S3BpQnJvd3Nlcic7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICBnZXRCb29rbWFya2VkUmVzb3VyY2UoKTogYW55IHtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvZ2V0Qm9va21hcmtlZFJlc291cmNlJywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgYm9va21hcmtSZXNvdXJjZShib2R5KTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS9ib29rbWFya1Jlc291cmNlJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QoYXBpVXJsLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cblxuICAgIC8vIGNyZWF0ZSBrcGlcbiAgICBjb25maWd1cmVLcGlCcm93c2VyQ29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jb25maWd1cmVLcGlCcm93c2VyQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBnZXRDcmVhdGVLcGkoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NyZWF0ZUtwaScsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIHVwbG9hZERhdGFzZXRKc29uUGF5bG9hZChmb3JtRGF0YSk6IGFueSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgJ2VuY3R5cGUnOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBvcHRpb25zID0geyBoZWFkZXJzOiBoZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy91cGxvYWREYXRhc2V0SnNvblBheWxvYWQnLCBmb3JtRGF0YSwgb3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuICAgIC8vIGNkciBjb25maWcgc2VydmljZVxuXG4gICAgZ2V0S3BpRGF0YSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVBhdGh9YXNzZXRzL2FwaS1kYXRhL3BvbGljeS5qc29uYCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBnZXRHcm91cERldGFpbHMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvam9icy9nZXRHcm91cERldGFpbHMnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGxvYWR0YWJsZU5hbWUoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBwVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRTZWFyY2hEYXRhc291cmNlRGV0YWlscyc7XG4gICAgICAgIC8vIGNvbnN0IGFwcFVybCA9ICcvYXNzZXRzL2FwaS1kYXRhL2dldFNlYXJjaERhdGFzb3VyY2VEZXRhaWxzLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcHBVcmwpO1xuICAgIH1cblxuXG4gICAgZ2V0U2VhcmNoUmVzdWx0Rm9yRGF0YXNvdXJjZShib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRTZWFyY2hSZXN1bHRGb3JEYXRhc291cmNlJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBhamF4U2VsZlByZXZBY3Rpdml0eUxvZ3MoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldFVzZXJDZHJCcm93c2VyQWN0aXZpdHlMb2dzP2FjdGl2aXR5Q291bnQ9NTAnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGdldENkckJyb3dzZXJBY3Rpdml0eUxvZ3Moc3RhcnREYXRlLCBlbmREYXRlKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldENkckJyb3dzZXJBY3Rpdml0eUxvZ3M/c3RhcnREYXRlPScgKyBzdGFydERhdGUgKyAnJmVuZERhdGU9JyArIGVuZERhdGUpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEF2YWlsYWJsZVRhYmxlcygpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0QXZhaWxhYmxlVGFibGVzJywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0VGFibGVNZXRhZGF0YSh0YWJsZU5hbWUpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0VGFibGVNZXRhZGF0YT90YWJsZU5hbWU9JyArIHRhYmxlTmFtZSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0Q2RyQnJvd3Nlck9wZXJhdGlvbnMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldENkckJyb3dzZXJPcGVyYXRpb25zJywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0U2VhcmNoRGF0YXNvdXJjZURldGFpbHMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldFNlYXJjaERhdGFzb3VyY2VEZXRhaWxzJywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBzYXZlRGF0YXNvdXJjZUNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9zYXZlRGF0YXNvdXJjZUNvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGVkaXREYXRhc291cmNlQ29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2VkaXREYXRhc291cmNlQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZGVsZXRlRGF0YXNvdXJjZUNvbmZpZyh0YWJsZU5hbWUpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZGVsZXRlRGF0YXNvdXJjZUNvbmZpZy8nICsgdGFibGVOYW1lLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIC8vIHZpZXcgd2l0aCBkYXRhc2V0c1xuXG4gICAgZ2V0S3BpQ29uZmlnYXJhdGlvbigpOiBhbnkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLy8gLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvcmVwb3J0cy9nZXRBcHBDb25maWd1cmVkUmVwb3J0Q29uZmlnJywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuZ2F0ZXdheVVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZSArICdhc3NldHMvYXBpLWRhdGEva3BpLWNvbmZpZy5qc29uJywge1xuICAgICAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG5cblxuICAgIGdldGxpc3RLcGlCcm93c2VyVHdvKCk6IGFueSB7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9ICcvYXNzZXRzL2FwaS1kYXRhL2Rhc2hib2FyZC5qc29uJztcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5nYXRld2F5VXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcHBOYW1lICsgJy9hc3NldHMvYXBpLWRhdGEvZGFzaGJvYXJkLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldGZpbHRlckRhdGEoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChcIi9hc3NldHMvYXBpLWRhdGEvZmlsdGVyLWRpcmVjdGlvbi5qc29uXCIpXG4gICAgICAgICAgICAvLyAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgYXBpICsgJz8nKyB1cmwgKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG5cbiAgICBnZW5lcmljRGV0YWlsRGF0YVJlc3BvbnNlKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpL2dlbmVyaWNEZXRhaWxEYXRhUmVzcG9uc2UnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG4gICAgZ2V0VW5pcXVlRGF0YShhcGkpOiBPYnNlcnZhYmxlPFJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyBhcGksIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cbiAgICBnZXRGaWx0ZXJEYXRhQnlEcmlsbERvd24oYXBpTmFtZSk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgYXBpTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuXG4gICAgLy8gc2hlYXJkIG1vZHVsZVxuXG5cbiAgICBnZXREYXRhQnlBUEkocmVxdWVzdElELCBib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyByZXF1ZXN0SUQsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cblxuICAgIGdldENkckRhdGEoYXBpLCB1cmwpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgYXBpICsgJz8nICsgdXJsKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG4gICAgZ2V0U3J2VHlwZURhdGFTb3VyY2UoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS9zcnYtcGFyYW1zJztcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gZW52aXJvbm1lbnQuZ2F0ZXdheVVybCArIGVudmlyb25tZW50LmFwcE5hbWUgKyAnL2Fzc2V0cy9hcGktZGF0YS9zcnZfdHlwZV9wYXJhbXMuanNvbic7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLy8gLmdldChlbnZpcm9ubWVudC5hcHBVcmwgKyBlbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgYXBpICsgJz8nKyB1cmwgKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBwYWdpbnRlZEFjdGl2aXR5TG9ncyhwYXJtcywgYXBpKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyBhcGk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgSlNPTi5zdHJpbmdpZnkocGFybXMpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0QXBpRGF0YSgpOiBhbnkge1xuICAgICAgICAvLyBjb25zdCBhcGlVcmwgPSBlbnZpcm9ubWVudC5hcHBVcmwgKyBlbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9hcHAtc2V0dGluZy9nZXRJbnRlZ3JhdGVkQXBwcyc7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9ICcvYXNzZXRzL2FwaS1kYXRhL2FwaS1zZXJ2aWNlLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG5cbiAgICAvLyBhcHAgbWVudSBjb250cm9sbGVyXG5cbiAgICBjb25maWd1cmVBcHBNZW51Q29uZmlnKG1hbnVlQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY29uZmlndXJlQXBwTWVudUNvbmZpZyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgSlNPTi5zdHJpbmdpZnkobWFudWVDb25maWcpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldExpc3RPZlBhcmVudEFwcE1lbnUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0TGlzdE9mUGFyZW50QXBwTWVudSc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7d2l0aENyZWRlbnRpYWxzOnRydWV9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBcHBBcHBNZW51Q29uZmlnQnlJZChtYW51aWQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBBcHBNZW51Q29uZmlnQnlJZD9tZW51SWQ9JyttYW51aWQ7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7d2l0aENyZWRlbnRpYWxzOnRydWV9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIHVwZGF0ZUFwcE1lbnVDb25maWcobWFudWVDb25maWcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy91cGRhdGVBcHBNZW51Q29uZmlnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QoYXBpVXJsLCBKU09OLnN0cmluZ2lmeShtYW51ZUNvbmZpZyksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICBcbiAgICBkZWxldGVBcHBNZW51Q29uZmlnKG1lbnVJZCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZGVsZXRlQXBwTWVudUNvbmZpZy8nICsgbWVudUlkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG4gICAgLy8gbWV0cmljcyBzZXJ2aWNlc1xuXG4gICAgbGlzdE1ldHJpY0NvbmZpZ3MoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NldHRpbmdzL21ldHJpY3MvbGlzdE1ldHJpY0NvbmZpZ3MnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgZGVsZXRlTWV0cmljQ29uZmlnKG1ldHJpY0lkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2V0dGluZ3MvbWV0cmljcy9kZWxldGVNZXRyaWNDb25maWcvJyArIG1ldHJpY0lkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgc2F2ZU9ubGluZU1ldHJpY0NvbmZpZyhtZXRyaWNDb25maWcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2V0dGluZ3MvbWV0cmljcy9zYXZlT25saW5lTWV0cmljQ29uZmlnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QoYXBpVXJsLCBKU09OLnN0cmluZ2lmeShtZXRyaWNDb25maWcpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGVkaXRPZmZsaW5lTWV0cmljQ29uZmlnKG1ldHJpY0NvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZXR0aW5ncy9tZXRyaWNzL2VkaXRPZmZsaW5lTWV0cmljQ29uZmlnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QoYXBpVXJsLCBKU09OLnN0cmluZ2lmeShtZXRyaWNDb25maWcpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxufVxuIl19
@@ -53,6 +53,7 @@ import { PageConfigMultilayoutComponent } from './page-controller/page-config-mu
53
53
  import { CreateMetricsComponent } from './application-metric-config/create-metrics/create-metrics.component';
54
54
  import { OnlineMetricsComponent } from './application-metric-config/online-metrics/online-metrics.component';
55
55
  import { OflineMetricsComponent } from './application-metric-config/ofline-metrics/ofline-metrics.component';
56
+ import { AllMetricsConfigComponent } from './application-metric-config/all-metrics-config/all-metrics-config.component';
56
57
  import * as i0 from "@angular/core";
57
58
  import * as i1 from "@angular/router";
58
59
  const appRoutes = [
@@ -104,6 +105,18 @@ const appRoutes = [
104
105
  {
105
106
  path: 'applicationViews/viewEditor',
106
107
  component: CreateCompViewComponent,
108
+ },
109
+ {
110
+ path: 'metricController',
111
+ component: AllMetricsConfigComponent,
112
+ },
113
+ {
114
+ path: 'metricController/createMetrics',
115
+ component: CreateMetricsComponent,
116
+ },
117
+ {
118
+ path: 'metricController/editMetrics',
119
+ component: CreateMetricsComponent,
107
120
  }
108
121
  ];
109
122
  export class PackageApplicationControllerModule {
@@ -150,7 +163,8 @@ PackageApplicationControllerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion
150
163
  PageConfigMultilayoutComponent,
151
164
  CreateMetricsComponent,
152
165
  OnlineMetricsComponent,
153
- OflineMetricsComponent], imports: [CommonModule, i1.RouterModule, DevExtremeModule,
166
+ OflineMetricsComponent,
167
+ AllMetricsConfigComponent], imports: [CommonModule, i1.RouterModule, DevExtremeModule,
154
168
  DxButtonModule,
155
169
  DxCheckBoxModule,
156
170
  DxNumberBoxModule,
@@ -212,7 +226,8 @@ PackageApplicationControllerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion
212
226
  PageConfigMultilayoutComponent,
213
227
  CreateMetricsComponent,
214
228
  OnlineMetricsComponent,
215
- OflineMetricsComponent] });
229
+ OflineMetricsComponent,
230
+ AllMetricsConfigComponent] });
216
231
  PackageApplicationControllerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PackageApplicationControllerModule, providers: [
217
232
  ApplicationContentService,
218
233
  ApplicationDatssetsCall
@@ -299,7 +314,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
299
314
  PageConfigMultilayoutComponent,
300
315
  CreateMetricsComponent,
301
316
  OnlineMetricsComponent,
302
- OflineMetricsComponent
317
+ OflineMetricsComponent,
318
+ AllMetricsConfigComponent
303
319
  ],
304
320
  imports: [
305
321
  CommonModule,
@@ -369,7 +385,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
369
385
  PageConfigMultilayoutComponent,
370
386
  CreateMetricsComponent,
371
387
  OnlineMetricsComponent,
372
- OflineMetricsComponent
388
+ OflineMetricsComponent,
389
+ AllMetricsConfigComponent
373
390
  ],
374
391
  providers: [
375
392
  ApplicationContentService,
@@ -377,4 +394,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
377
394
  ]
378
395
  }]
379
396
  }] });
380
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFVLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBRW5CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQ0wsMkJBQTJCLEVBQzVCLE1BQU0s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QXFCO3dCQUNyQixnQ0FBZ0M7d0JBQ2hDLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3FCQUV2QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QseUJBQXlCO3dCQUN6Qix1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgRGV2RXh0cmVtZU1vZHVsZSxcbiAgRHhBY2NvcmRpb25Nb2R1bGUsXG4gIER4QnV0dG9uTW9kdWxlLFxuICBEeENoZWNrQm94TW9kdWxlLFxuICBEeERhdGFHcmlkTW9kdWxlLFxuICBEeERyb3BEb3duQm94TW9kdWxlLFxuICBEeEZvcm1Nb2R1bGUsXG4gIER4SHRtbEVkaXRvck1vZHVsZSxcbiAgRHhOdW1iZXJCb3hNb2R1bGUsXG4gIER4UG9wdXBNb2R1bGUsXG4gIER4U2VsZWN0Qm94TW9kdWxlLFxuICBEeFRhZ0JveE1vZHVsZSxcbiAgRHhUZXh0Qm94TW9kdWxlLFxuICBEeFRyZWVWaWV3TW9kdWxlLFxuICBEeEJ1bGxldE1vZHVsZSxcbiAgRHhDaGFydE1vZHVsZSxcbiAgRHhEYXRlQm94TW9kdWxlLFxuICBEeExvYWRQYW5lbE1vZHVsZSxcbiAgRHhMb29rdXBNb2R1bGUsXG4gIER4UGl2b3RHcmlkTW9kdWxlLFxuICBEeFRlbXBsYXRlTW9kdWxlLFxuICBEeFRleHRBcmVhTW9kdWxlLFxuICBEeFZhbGlkYXRpb25TdW1tYXJ5TW9kdWxlLFxuICBEeFZhbGlkYXRvck1vZHVsZSxcbiAgRHhDYWxlbmRhck1vZHVsZSxcbiAgRHhUb29sdGlwTW9kdWxlLFxuICBEeENvbnRleHRNZW51TW9kdWxlLFxuICBEeExvYWRJbmRpY2F0b3JNb2R1bGUsXG4gIER4U2Nyb2xsVmlld01vZHVsZVxuXG59IGZyb20gXCJkZXZleHRyZW1lLWFuZ3VsYXJcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuLy8gaW1wb3J0IHsgQXBwVmlld0Zyb21LcGlDb21wb25lbnQgfSBmcm9tICcuL2FwcC12aWV3LWZyb20ta3BpL2FwcC12aWV3LWZyb20ta3BpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZmlsdGVyL2FwcGxpY2F0aW9uLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25EYXRhc2V0Q29tcG9uZW50XG59IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvYXBwbGljYXRpb24tZGF0YXNldC9hcHBsaWNhdGlvbi1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblZpZXdzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi12aWV3LWNvbXBvbmVudHMvYXBwbGljYXRpb24tdmlld3MvYXBwbGljYXRpb24tdmlld3MuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFzZXRNb25nb0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvZGF0YXNldC1tb25nby9kYXRhc2V0LW1vbmdvLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBEYXRhc2V0UXVlcnlCdWxkZXJDb21wb25lbnRcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9kYXRhc2V0LXF1ZXJ5LWJ1bGRlci9kYXRhc2V0LXF1ZXJ5LWJ1bGRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YXNldFJlc3RBcGlDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2RhdGFzZXQtcmVzdC1hcGkvZGF0YXNldC1yZXN0LWFwaS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3JlYXRlQ29tcFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9jcmVhdGUtY29tcC12aWV3L2NyZWF0ZS1jb21wLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc3VwcG9ydC1jb21wb25lbnRzL2Rhc2gtY2hhcnQvZGFzaC1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC10YWJsZS9kYXNoLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb25maWcvcGFnZS1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VDb250cm9sZXJDb21wb25lbnQgfSBmcm9tICcuL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IER5bmFtaWNSb3V0ZVNlcnZpY2UgfSBmcm9tICcuL3BhZ2UtdGVtcGxhdGVzL2R5bmFtaWMtcm91dGUtc2VydmljZSc7XG5cblxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJy4vc2hhcmVkL3NhZmVIdG1sUGlwZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBDcmVhdGVEYXRhc2V0SnNvbkNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQtanNvbi9jcmVhdGUtZGF0YXNldC1qc29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGVEYXRhc2V0U3FsQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcWxQaXBlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvc3FsRm9ybWF0dGVyJztcbmltcG9ydCB7IENyZWF0ZURhdGFzZXRDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0L2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZHJDb25maWdDb21wb25lbnQgfSBmcm9tICcuL3BhZ2UtdGVtcGxhdGVzL2Nkci1jb25maWcvY2RyLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWR2YW5jZVdpZGdldEhlYWRlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hZHZhbmNlLXdpZGdldC1oZWFkZXItZmlsdGVyL2FkdmFuY2Utd2lkZ2V0LWhlYWRlci1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcEFkdmFuY2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYXBwLWFkdmFuY2UtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1TaW5nbGVOdW1iZXJDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW0tc2luZ2xlLW51bWJlci1jYXJkL2dhbW0tc2luZ2xlLW51bWJlci1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYUFkdmFuY2VDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1hZHZhbmNlLWNoYXJ0L2dhbW1hLWFkdmFuY2UtY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hQWR2YW5jZU9wZXJhdG9yVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtYWR2YW5jZS1vcGVyYXRvci10YWJsZS9nYW1tYS1hZHZhbmNlLW9wZXJhdG9yLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb250ZW50U2FmZUh0bWwgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlL2NvbnRlbnRTYWZlSHRtbCc7XG5pbXBvcnQgeyBHYW1tYVRhYmxlV2l0aFBlcmNlbnRhZ2VDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlL2dhbW1hLXRhYmxlLXdpdGgtcGVyY2VudGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFUb2RheVByZXZpb3VzQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRvZGF5LXByZXZpb3VzL2dhbW1hLXRvZGF5LXByZXZpb3VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FwcC10aXRsZS9hcHAtdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbWFtV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvZ2FtYW0td2lkZ2V0L2dhbWFtLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFBZHZhbmNlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvZ2FtbWEtYWR2YW5jZS1maWx0ZXIvZ2FtbWEtYWR2YW5jZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJyZWFkQ3J1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvZ2FtbWEtYnJlYWQtY3J1bWJzL2JyZWFkLWNydW1icy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVXaXRoQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvdGFibGUtd2l0aC1iYXIvdGFibGUtd2l0aC1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tbW9uLWhlYWRlci9jb21tb24taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW9NYXBDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy9nZW8tbWFwL2dlby1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRpbmdNb2R1bGUgfSBmcm9tICcuL3NoYXJlZC9sb2FkaW5nL2xvYWRpbmdNb2R1bGUnO1xuaW1wb3J0IHsgR29vZ2xlR2VvTWFwQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dvb2dsZS1nZW8tbWFwL2dvb2dsZS1nZW8tbWFwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYVRhYmxlQ2x1bW5CYXJDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS1jbHVtbi1iYXItY2hhcnQvZ2FtbWEtdGFibGUtY2x1bW4tYmFyLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25EYXRzc2V0c0NhbGwgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uTWVudXNDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1lbnUtY29udHJvbGxlci9hcHBsaWNhdGlvbi1tZW51cy9hcHBsaWNhdGlvbi1tZW51cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25DcmVhdGVNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1tZW51LWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY3JlYXRlLW1lbnUvYXBwbGljYXRpb24tY3JlYXRlLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hR2VvQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtZ2VvLWNoYXJ0L2dhbW1hLWdlby1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZUNvbmZpZ011bHRpbGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb25maWctbXVsdGktbGF5b3V0L3BhZ2UtY29uZmlnLW11bHRpLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3JlYXRlTWV0cmljc0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tbWV0cmljLWNvbmZpZy9jcmVhdGUtbWV0cmljcy9jcmVhdGUtbWV0cmljcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT25saW5lTWV0cmljc0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tbWV0cmljLWNvbmZpZy9vbmxpbmUtbWV0cmljcy9vbmxpbmUtbWV0cmljcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2ZsaW5lTWV0cmljc0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tbWV0cmljLWNvbmZpZy9vZmxpbmUtbWV0cmljcy9vZmxpbmUtbWV0cmljcy5jb21wb25lbnQnO1xuXG5jb25zdCBhcHBSb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIHJlZGlyZWN0VG86ICdhcHBsaWNhdGlvbkRhdGFzZXQnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXRhc2V0JyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uRGF0YXNldENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvblZpZXdzJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uVmlld3NDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25GaWx0ZXInLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25GaWx0ZXJDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXNoYm9hcmQnLFxuICAgIGNvbXBvbmVudDogUGFnZUNvbnRyb2xlckNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwYWdlQ29uZmlnQ29udHJvbGxlcicsXG4gICAgY29tcG9uZW50OiBQYWdlQ29uZmlnQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ211bHRpUGFnZUNvbmZpZ0NvbnRyb2xsZXInLFxuICAgIGNvbXBvbmVudDogUGFnZUNvbmZpZ011bHRpbGF5b3V0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ21lbnVDb250cm9sbGVyJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uTWVudXNDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbWVudUNvbnRyb2xsZXIvY3JlYXRlTWVudScsXG4gICAgY29tcG9uZW50OiBBcHBsaWNhdGlvbkNyZWF0ZU1lbnVDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbWVudUNvbnRyb2xsZXIvZWRpdE1lbnUnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25DcmVhdGVNZW51Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2FwcGxpY2F0aW9uRGF0YXNldC9kYXRhc2V0RWRpdG9yJyxcbiAgICBjb21wb25lbnQ6IENyZWF0ZURhdGFzZXRDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25WaWV3cy92aWV3RWRpdG9yJyxcbiAgICBjb21wb25lbnQ6IENyZWF0ZUNvbXBWaWV3Q29tcG9uZW50LFxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBsaWNhdGlvbkRhdGFzZXRDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25WaWV3c0NvbXBvbmVudCxcbiAgICBEYXRhc2V0TW9uZ29Db21wb25lbnQsXG4gICAgRGF0YXNldFF1ZXJ5QnVsZGVyQ29tcG9uZW50LFxuICAgIERhdGFzZXRSZXN0QXBpQ29tcG9uZW50LFxuICAgIEdlb01hcENvbXBvbmVudCxcbiAgICAvLyBBcHBWaWV3RnJvbUtwaUNvbXBvbmVudCxcbiAgICBDcmVhdGVDb21wVmlld0NvbXBvbmVudCxcbiAgICBEYXNoQ2hhcnRDb21wb25lbnQsXG4gICAgRGFzaFRhYmxlQ29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uRmlsdGVyQ29tcG9uZW50LFxuICAgIFBhZ2VDb25maWdDb21wb25lbnQsXG4gICAgUGFnZUNvbnRyb2xlckNvbXBvbmVudCxcbiAgICBDZHJDb25maWdDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldENvbXBvbmVudCxcbiAgICBUYWJsZVdpdGhCYXJDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldFNxbENvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0SnNvbkNvbXBvbmVudCxcbiAgICBBcHBUaXRsZUNvbXBvbmVudCxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgR2FtYW1XaWRnZXRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlRmlsdGVyQ29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZUNoYXJ0Q29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZU9wZXJhdG9yVGFibGVDb21wb25lbnQsXG4gICAgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCxcbiAgICBHYW1tYVRvZGF5UHJldmlvdXNDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZVdpdGhQZXJjZW50YWdlQ29tcG9uZW50LFxuICAgIGNvbnRlbnRTYWZlSHRtbCxcbiAgICBHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudCxcbiAgICBBZHZhbmNlV2lkZ2V0SGVhZGVyRmlsdGVyQ29tcG9uZW50LFxuICAgIEJyZWFkQ3J1bWJzQ29tcG9uZW50LFxuICAgIFNxbFBpcGUsXG4gICAgU2FmZUh0bWxQaXBlLFxuICAgIENvbW1vbkhlYWRlckNvbXBvbmVudCxcbiAgICBHb29nbGVHZW9NYXBDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZUNsdW1uQmFyQ2hhcnRDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25NZW51c0NvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbkNyZWF0ZU1lbnVDb21wb25lbnQsXG4gICAgR2FtbWFHZW9DaGFydENvbXBvbmVudCxcbiAgICBQYWdlQ29uZmlnTXVsdGlsYXlvdXRDb21wb25lbnQsXG4gICAgQ3JlYXRlTWV0cmljc0NvbXBvbmVudCxcbiAgICBPbmxpbmVNZXRyaWNzQ29tcG9uZW50LFxuICAgIE9mbGluZU1ldHJpY3NDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoYXBwUm91dGVzKSxcblxuICAgIERldkV4dHJlbWVNb2R1bGUsXG4gICAgRHhCdXR0b25Nb2R1bGUsXG4gICAgRHhDaGVja0JveE1vZHVsZSxcbiAgICBEeE51bWJlckJveE1vZHVsZSxcbiAgICBEeERhdGFHcmlkTW9kdWxlLFxuICAgIER4RHJvcERvd25Cb3hNb2R1bGUsXG4gICAgRHhUcmVlVmlld01vZHVsZSxcbiAgICBEeFNjcm9sbFZpZXdNb2R1bGUsXG4gICAgRHhGb3JtTW9kdWxlLFxuICAgIER4QWNjb3JkaW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIER4VGFnQm94TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBEeEh0bWxFZGl0b3JNb2R1bGUsXG4gICAgRHhCdWxsZXRNb2R1bGUsXG4gICAgRHhDaGFydE1vZHVsZSxcbiAgICBEeERhdGVCb3hNb2R1bGUsXG4gICAgRHhMb2FkUGFuZWxNb2R1bGUsXG4gICAgRHhMb29rdXBNb2R1bGUsXG4gICAgRHhQaXZvdEdyaWRNb2R1bGUsXG4gICAgRHhUZW1wbGF0ZU1vZHVsZSxcbiAgICBEeFRleHRBcmVhTW9kdWxlLFxuICAgIER4VmFsaWRhdGlvblN1bW1hcnlNb2R1bGUsXG4gICAgRHhWYWxpZGF0b3JNb2R1bGUsXG4gICAgRHhDYWxlbmRhck1vZHVsZSxcbiAgICBEeFRvb2x0aXBNb2R1bGUsXG4gICAgRHhDb250ZXh0TWVudU1vZHVsZSxcbiAgICBEeExvYWRJbmRpY2F0b3JNb2R1bGUsXG4gICAgLy8gU3RydWN0dXJlS3BpTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgRHhQb3B1cE1vZHVsZSwgRHhTZWxlY3RCb3hNb2R1bGUsIER4VGV4dEJveE1vZHVsZSwgRHhUcmVlVmlld01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIERhc2hDaGFydENvbXBvbmVudCxcbiAgICBEYXNoVGFibGVDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25GaWx0ZXJDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldENvbXBvbmVudCxcbiAgICBBcHBUaXRsZUNvbXBvbmVudCxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgR2FtYW1XaWRnZXRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlRmlsdGVyQ29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZUNoYXJ0Q29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZU9wZXJhdG9yVGFibGVDb21wb25lbnQsXG4gICAgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCxcbiAgICBHYW1tYVRvZGF5UHJldmlvdXNDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZVdpdGhQZXJjZW50YWdlQ29tcG9uZW50LFxuICAgIGNvbnRlbnRTYWZlSHRtbCxcbiAgICBHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudCxcbiAgICBBZHZhbmNlV2lkZ2V0SGVhZGVyRmlsdGVyQ29tcG9uZW50LFxuICAgIEJyZWFkQ3J1bWJzQ29tcG9uZW50LFxuICAgIENvbW1vbkhlYWRlckNvbXBvbmVudCxcbiAgICBHZW9NYXBDb21wb25lbnQsXG4gICAgU2FmZUh0bWxQaXBlLFxuICAgIEdvb2dsZUdlb01hcENvbXBvbmVudCxcbiAgICBHYW1tYVRhYmxlQ2x1bW5CYXJDaGFydENvbXBvbmVudCxcbiAgICBHYW1tYUdlb0NoYXJ0Q29tcG9uZW50LFxuICAgIFBhZ2VDb25maWdNdWx0aWxheW91dENvbXBvbmVudCxcbiAgICBDcmVhdGVNZXRyaWNzQ29tcG9uZW50LFxuICAgIE9ubGluZU1ldHJpY3NDb21wb25lbnQsXG4gICAgT2ZsaW5lTWV0cmljc0NvbXBvbmVudFxuICBcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQXBwbGljYXRpb25Db250ZW50U2VydmljZSxcbiAgICBBcHBsaWNhdGlvbkRhdHNzZXRzQ2FsbFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBhY2thZ2VBcHBsaWNhdGlvbkNvbnRyb2xsZXJNb2R1bGUge1xuXG59XG4iXX0=
397
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFVLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBRW5CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQ0wsMkJBQTJCLEVBQzVCLE1BQU0s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QWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsMkJBQTJCO3dCQUMzQiwwQkFBMEI7d0JBQzFCLGtDQUFrQzt3QkFDbEMseUJBQXlCO3dCQUN6QiwyQkFBMkI7d0JBQzNCLGlDQUFpQzt3QkFDakMsZUFBZTt3QkFDZiw2QkFBNkI7d0JBQzdCLGtDQUFrQzt3QkFDbEMsb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLGdDQUFnQzt3QkFDaEMsc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLHlCQUF5QjtxQkFFMUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULHlCQUF5Qjt3QkFDekIsdUJBQXVCO3FCQUN4QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIERldkV4dHJlbWVNb2R1bGUsXG4gIER4QWNjb3JkaW9uTW9kdWxlLFxuICBEeEJ1dHRvbk1vZHVsZSxcbiAgRHhDaGVja0JveE1vZHVsZSxcbiAgRHhEYXRhR3JpZE1vZHVsZSxcbiAgRHhEcm9wRG93bkJveE1vZHVsZSxcbiAgRHhGb3JtTW9kdWxlLFxuICBEeEh0bWxFZGl0b3JNb2R1bGUsXG4gIER4TnVtYmVyQm94TW9kdWxlLFxuICBEeFBvcHVwTW9kdWxlLFxuICBEeFNlbGVjdEJveE1vZHVsZSxcbiAgRHhUYWdCb3hNb2R1bGUsXG4gIER4VGV4dEJveE1vZHVsZSxcbiAgRHhUcmVlVmlld01vZHVsZSxcbiAgRHhCdWxsZXRNb2R1bGUsXG4gIER4Q2hhcnRNb2R1bGUsXG4gIER4RGF0ZUJveE1vZHVsZSxcbiAgRHhMb2FkUGFuZWxNb2R1bGUsXG4gIER4TG9va3VwTW9kdWxlLFxuICBEeFBpdm90R3JpZE1vZHVsZSxcbiAgRHhUZW1wbGF0ZU1vZHVsZSxcbiAgRHhUZXh0QXJlYU1vZHVsZSxcbiAgRHhWYWxpZGF0aW9uU3VtbWFyeU1vZHVsZSxcbiAgRHhWYWxpZGF0b3JNb2R1bGUsXG4gIER4Q2FsZW5kYXJNb2R1bGUsXG4gIER4VG9vbHRpcE1vZHVsZSxcbiAgRHhDb250ZXh0TWVudU1vZHVsZSxcbiAgRHhMb2FkSW5kaWNhdG9yTW9kdWxlLFxuICBEeFNjcm9sbFZpZXdNb2R1bGVcblxufSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbi8vIGltcG9ydCB7IEFwcFZpZXdGcm9tS3BpQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAtdmlldy1mcm9tLWtwaS9hcHAtdmlldy1mcm9tLWtwaS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWZpbHRlci9hcHBsaWNhdGlvbi1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uRGF0YXNldENvbXBvbmVudFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2FwcGxpY2F0aW9uLWRhdGFzZXQvYXBwbGljYXRpb24tZGF0YXNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25WaWV3c0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tdmlldy1jb21wb25lbnRzL2FwcGxpY2F0aW9uLXZpZXdzL2FwcGxpY2F0aW9uLXZpZXdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhc2V0TW9uZ29Db21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2RhdGFzZXQtbW9uZ28vZGF0YXNldC1tb25nby5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRGF0YXNldFF1ZXJ5QnVsZGVyQ29tcG9uZW50XG59IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvZGF0YXNldC1xdWVyeS1idWxkZXIvZGF0YXNldC1xdWVyeS1idWxkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFzZXRSZXN0QXBpQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9kYXRhc2V0LXJlc3QtYXBpL2RhdGFzZXQtcmVzdC1hcGkuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZUNvbXBWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi12aWV3LWNvbXBvbmVudHMvY3JlYXRlLWNvbXAtdmlldy9jcmVhdGUtY29tcC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy9kYXNoLWNoYXJ0L2Rhc2gtY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vc3VwcG9ydC1jb21wb25lbnRzL2Rhc2gtdGFibGUvZGFzaC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZUNvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vcGFnZS1jb250cm9sbGVyL3BhZ2UtY29uZmlnL3BhZ2UtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlQ29udHJvbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEeW5hbWljUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi9wYWdlLXRlbXBsYXRlcy9keW5hbWljLXJvdXRlLXNlcnZpY2UnO1xuXG5cbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUgfSBmcm9tICcuL3NoYXJlZC9zYWZlSHRtbFBpcGUnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQ3JlYXRlRGF0YXNldEpzb25Db21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LWpzb24vY3JlYXRlLWRhdGFzZXQtanNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3JlYXRlRGF0YXNldFNxbENvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQtc3FsL2NyZWF0ZS1kYXRhc2V0LXNxbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3FsUGlwZSB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQtc3FsL3NxbEZvcm1hdHRlcic7XG5pbXBvcnQgeyBDcmVhdGVEYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC9jcmVhdGUtZGF0YXNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2RyQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlLXRlbXBsYXRlcy9jZHItY29uZmlnL2Nkci1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkdmFuY2VXaWRnZXRIZWFkZXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYWR2YW5jZS13aWRnZXQtaGVhZGVyLWZpbHRlci9hZHZhbmNlLXdpZGdldC1oZWFkZXItZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBBZHZhbmNlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2FwcC1hZHZhbmNlLWhlYWRlci9hcHAtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tLXNpbmdsZS1udW1iZXItY2FyZC9nYW1tLXNpbmdsZS1udW1iZXItY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFBZHZhbmNlQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtYWR2YW5jZS1jaGFydC9nYW1tYS1hZHZhbmNlLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYUFkdmFuY2VPcGVyYXRvclRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWFkdmFuY2Utb3BlcmF0b3ItdGFibGUvZ2FtbWEtYWR2YW5jZS1vcGVyYXRvci10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgY29udGVudFNhZmVIdG1sIH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLXdpdGgtcGVyY2VudGFnZS9jb250ZW50U2FmZUh0bWwnO1xuaW1wb3J0IHsgR2FtbWFUYWJsZVdpdGhQZXJjZW50YWdlQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLXdpdGgtcGVyY2VudGFnZS9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hVG9kYXlQcmV2aW91c0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10b2RheS1wcmV2aW91cy9nYW1tYS10b2RheS1wcmV2aW91cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hcHAtdGl0bGUvYXBwLXRpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1hbVdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2dhbWFtLXdpZGdldC9nYW1hbS13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hQWR2YW5jZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2dhbW1hLWFkdmFuY2UtZmlsdGVyL2dhbW1hLWFkdmFuY2UtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmVhZENydW1ic0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2dhbW1hLWJyZWFkLWNydW1icy9icmVhZC1jcnVtYnMuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlV2l0aEJhckNvbXBvbmVudCB9IGZyb20gJy4vc3VwcG9ydC1jb21wb25lbnRzL3RhYmxlLXdpdGgtYmFyL3RhYmxlLXdpdGgtYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbW1vbi1oZWFkZXIvY29tbW9uLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VvTWFwQ29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvZ2VvLW1hcC9nZW8tbWFwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nTW9kdWxlIH0gZnJvbSAnLi9zaGFyZWQvbG9hZGluZy9sb2FkaW5nTW9kdWxlJztcbmltcG9ydCB7IEdvb2dsZUdlb01hcENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nb29nbGUtZ2VvLW1hcC9nb29nbGUtZ2VvLW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFUYWJsZUNsdW1uQmFyQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdGFibGUtY2x1bW4tYmFyLWNoYXJ0L2dhbW1hLXRhYmxlLWNsdW1uLWJhci1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db250ZW50U2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uRGF0c3NldHNDYWxsIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNhbGwuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbk1lbnVzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1tZW51LWNvbnRyb2xsZXIvYXBwbGljYXRpb24tbWVudXMvYXBwbGljYXRpb24tbWVudXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ3JlYXRlTWVudUNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tbWVudS1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNyZWF0ZS1tZW51L2FwcGxpY2F0aW9uLWNyZWF0ZS1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYUdlb0NoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWdlby1jaGFydC9nYW1tYS1nZW8tY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VDb25maWdNdWx0aWxheW91dENvbXBvbmVudCB9IGZyb20gJy4vcGFnZS1jb250cm9sbGVyL3BhZ2UtY29uZmlnLW11bHRpLWxheW91dC9wYWdlLWNvbmZpZy1tdWx0aS1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZU1ldHJpY3NDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvY3JlYXRlLW1ldHJpY3MvY3JlYXRlLW1ldHJpY3MuY29tcG9uZW50JztcbmltcG9ydCB7IE9ubGluZU1ldHJpY3NDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvb25saW5lLW1ldHJpY3Mvb25saW5lLW1ldHJpY3MuY29tcG9uZW50JztcbmltcG9ydCB7IE9mbGluZU1ldHJpY3NDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvb2ZsaW5lLW1ldHJpY3Mvb2ZsaW5lLW1ldHJpY3MuY29tcG9uZW50JztcbmltcG9ydCB7IEFsbE1ldHJpY3NDb25maWdDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvYWxsLW1ldHJpY3MtY29uZmlnL2FsbC1tZXRyaWNzLWNvbmZpZy5jb21wb25lbnQnO1xuXG5jb25zdCBhcHBSb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIHJlZGlyZWN0VG86ICdhcHBsaWNhdGlvbkRhdGFzZXQnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXRhc2V0JyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uRGF0YXNldENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvblZpZXdzJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uVmlld3NDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25GaWx0ZXInLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25GaWx0ZXJDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXNoYm9hcmQnLFxuICAgIGNvbXBvbmVudDogUGFnZUNvbnRyb2xlckNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwYWdlQ29uZmlnQ29udHJvbGxlcicsXG4gICAgY29tcG9uZW50OiBQYWdlQ29uZmlnQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ211bHRpUGFnZUNvbmZpZ0NvbnRyb2xsZXInLFxuICAgIGNvbXBvbmVudDogUGFnZUNvbmZpZ011bHRpbGF5b3V0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ21lbnVDb250cm9sbGVyJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uTWVudXNDb21wb25lbnQsXG4gIH0sXG4gIFxuICB7XG4gICAgcGF0aDogJ21lbnVDb250cm9sbGVyL2NyZWF0ZU1lbnUnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25DcmVhdGVNZW51Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ21lbnVDb250cm9sbGVyL2VkaXRNZW51JyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uQ3JlYXRlTWVudUNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbkRhdGFzZXQvZGF0YXNldEVkaXRvcicsXG4gICAgY29tcG9uZW50OiBDcmVhdGVEYXRhc2V0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2FwcGxpY2F0aW9uVmlld3Mvdmlld0VkaXRvcicsXG4gICAgY29tcG9uZW50OiBDcmVhdGVDb21wVmlld0NvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdtZXRyaWNDb250cm9sbGVyJyxcbiAgICBjb21wb25lbnQ6IEFsbE1ldHJpY3NDb25maWdDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbWV0cmljQ29udHJvbGxlci9jcmVhdGVNZXRyaWNzJyxcbiAgICBjb21wb25lbnQ6IENyZWF0ZU1ldHJpY3NDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbWV0cmljQ29udHJvbGxlci9lZGl0TWV0cmljcycsXG4gICAgY29tcG9uZW50OiBDcmVhdGVNZXRyaWNzQ29tcG9uZW50LFxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBsaWNhdGlvbkRhdGFzZXRDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25WaWV3c0NvbXBvbmVudCxcbiAgICBEYXRhc2V0TW9uZ29Db21wb25lbnQsXG4gICAgRGF0YXNldFF1ZXJ5QnVsZGVyQ29tcG9uZW50LFxuICAgIERhdGFzZXRSZXN0QXBpQ29tcG9uZW50LFxuICAgIEdlb01hcENvbXBvbmVudCxcbiAgICAvLyBBcHBWaWV3RnJvbUtwaUNvbXBvbmVudCxcbiAgICBDcmVhdGVDb21wVmlld0NvbXBvbmVudCxcbiAgICBEYXNoQ2hhcnRDb21wb25lbnQsXG4gICAgRGFzaFRhYmxlQ29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uRmlsdGVyQ29tcG9uZW50LFxuICAgIFBhZ2VDb25maWdDb21wb25lbnQsXG4gICAgUGFnZUNvbnRyb2xlckNvbXBvbmVudCxcbiAgICBDZHJDb25maWdDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldENvbXBvbmVudCxcbiAgICBUYWJsZVdpdGhCYXJDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldFNxbENvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0SnNvbkNvbXBvbmVudCxcbiAgICBBcHBUaXRsZUNvbXBvbmVudCxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgR2FtYW1XaWRnZXRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlRmlsdGVyQ29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZUNoYXJ0Q29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZU9wZXJhdG9yVGFibGVDb21wb25lbnQsXG4gICAgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCxcbiAgICBHYW1tYVRvZGF5UHJldmlvdXNDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZVdpdGhQZXJjZW50YWdlQ29tcG9uZW50LFxuICAgIGNvbnRlbnRTYWZlSHRtbCxcbiAgICBHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudCxcbiAgICBBZHZhbmNlV2lkZ2V0SGVhZGVyRmlsdGVyQ29tcG9uZW50LFxuICAgIEJyZWFkQ3J1bWJzQ29tcG9uZW50LFxuICAgIFNxbFBpcGUsXG4gICAgU2FmZUh0bWxQaXBlLFxuICAgIENvbW1vbkhlYWRlckNvbXBvbmVudCxcbiAgICBHb29nbGVHZW9NYXBDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZUNsdW1uQmFyQ2hhcnRDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25NZW51c0NvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbkNyZWF0ZU1lbnVDb21wb25lbnQsXG4gICAgR2FtbWFHZW9DaGFydENvbXBvbmVudCxcbiAgICBQYWdlQ29uZmlnTXVsdGlsYXlvdXRDb21wb25lbnQsXG4gICAgQ3JlYXRlTWV0cmljc0NvbXBvbmVudCxcbiAgICBPbmxpbmVNZXRyaWNzQ29tcG9uZW50LFxuICAgIE9mbGluZU1ldHJpY3NDb21wb25lbnQsXG4gICAgQWxsTWV0cmljc0NvbmZpZ0NvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChhcHBSb3V0ZXMpLFxuXG4gICAgRGV2RXh0cmVtZU1vZHVsZSxcbiAgICBEeEJ1dHRvbk1vZHVsZSxcbiAgICBEeENoZWNrQm94TW9kdWxlLFxuICAgIER4TnVtYmVyQm94TW9kdWxlLFxuICAgIER4RGF0YUdyaWRNb2R1bGUsXG4gICAgRHhEcm9wRG93bkJveE1vZHVsZSxcbiAgICBEeFRyZWVWaWV3TW9kdWxlLFxuICAgIER4U2Nyb2xsVmlld01vZHVsZSxcbiAgICBEeEZvcm1Nb2R1bGUsXG4gICAgRHhBY2NvcmRpb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRHhUYWdCb3hNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIER4SHRtbEVkaXRvck1vZHVsZSxcbiAgICBEeEJ1bGxldE1vZHVsZSxcbiAgICBEeENoYXJ0TW9kdWxlLFxuICAgIER4RGF0ZUJveE1vZHVsZSxcbiAgICBEeExvYWRQYW5lbE1vZHVsZSxcbiAgICBEeExvb2t1cE1vZHVsZSxcbiAgICBEeFBpdm90R3JpZE1vZHVsZSxcbiAgICBEeFRlbXBsYXRlTW9kdWxlLFxuICAgIER4VGV4dEFyZWFNb2R1bGUsXG4gICAgRHhWYWxpZGF0aW9uU3VtbWFyeU1vZHVsZSxcbiAgICBEeFZhbGlkYXRvck1vZHVsZSxcbiAgICBEeENhbGVuZGFyTW9kdWxlLFxuICAgIER4VG9vbHRpcE1vZHVsZSxcbiAgICBEeENvbnRleHRNZW51TW9kdWxlLFxuICAgIER4TG9hZEluZGljYXRvck1vZHVsZSxcbiAgICAvLyBTdHJ1Y3R1cmVLcGlNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBEeFBvcHVwTW9kdWxlLCBEeFNlbGVjdEJveE1vZHVsZSwgRHhUZXh0Qm94TW9kdWxlLCBEeFRyZWVWaWV3TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBMb2FkaW5nTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgRGFzaENoYXJ0Q29tcG9uZW50LFxuICAgIERhc2hUYWJsZUNvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbkZpbHRlckNvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0Q29tcG9uZW50LFxuICAgIEFwcFRpdGxlQ29tcG9uZW50LFxuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBHYW1hbVdpZGdldENvbXBvbmVudCxcbiAgICBHYW1tYUFkdmFuY2VGaWx0ZXJDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlQ2hhcnRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlT3BlcmF0b3JUYWJsZUNvbXBvbmVudCxcbiAgICBBcHBBZHZhbmNlSGVhZGVyQ29tcG9uZW50LFxuICAgIEdhbW1hVG9kYXlQcmV2aW91c0NvbXBvbmVudCxcbiAgICBHYW1tYVRhYmxlV2l0aFBlcmNlbnRhZ2VDb21wb25lbnQsXG4gICAgY29udGVudFNhZmVIdG1sLFxuICAgIEdhbW1TaW5nbGVOdW1iZXJDYXJkQ29tcG9uZW50LFxuICAgIEFkdmFuY2VXaWRnZXRIZWFkZXJGaWx0ZXJDb21wb25lbnQsXG4gICAgQnJlYWRDcnVtYnNDb21wb25lbnQsXG4gICAgQ29tbW9uSGVhZGVyQ29tcG9uZW50LFxuICAgIEdlb01hcENvbXBvbmVudCxcbiAgICBTYWZlSHRtbFBpcGUsXG4gICAgR29vZ2xlR2VvTWFwQ29tcG9uZW50LFxuICAgIEdhbW1hVGFibGVDbHVtbkJhckNoYXJ0Q29tcG9uZW50LFxuICAgIEdhbW1hR2VvQ2hhcnRDb21wb25lbnQsXG4gICAgUGFnZUNvbmZpZ011bHRpbGF5b3V0Q29tcG9uZW50LFxuICAgIENyZWF0ZU1ldHJpY3NDb21wb25lbnQsXG4gICAgT25saW5lTWV0cmljc0NvbXBvbmVudCxcbiAgICBPZmxpbmVNZXRyaWNzQ29tcG9uZW50LFxuICAgIEFsbE1ldHJpY3NDb25maWdDb21wb25lbnRcbiAgXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UsXG4gICAgQXBwbGljYXRpb25EYXRzc2V0c0NhbGxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQYWNrYWdlQXBwbGljYXRpb25Db250cm9sbGVyTW9kdWxlIHtcblxufVxuIl19