@churchillliving/se-ui-toolkit 6.54.276 → 6.54.278
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.
- package/esm2022/lib/components/base/report/reportGenerateBtn/generate-report-btn/generate-report-btn.component.mjs +3 -2
- package/esm2022/lib/models/form.model.mjs +1 -1
- package/esm2022/lib/services/report.service.mjs +28 -31
- package/fesm2022/churchillliving-se-ui-toolkit.mjs +29 -31
- package/fesm2022/churchillliving-se-ui-toolkit.mjs.map +1 -1
- package/lib/models/form.model.d.ts +1 -0
- package/lib/services/report.service.d.ts +8 -8
- package/package.json +1 -1
|
@@ -9,7 +9,8 @@ export class GenerateReportBtnComponent {
|
|
|
9
9
|
ngOnInit() {
|
|
10
10
|
}
|
|
11
11
|
reportClickEvent() {
|
|
12
|
-
this.repInfo = this.repInfo?.
|
|
12
|
+
this.repInfo = this.repInfo?.uniqueKey ? this.repInfo.uniqueKey : this.repInfo;
|
|
13
|
+
console.log('this.repInfo: ', this.repInfo);
|
|
13
14
|
this.reportService.downloadReport(this.repInfo, this.params, this.showDialog, this.reportType, this.reportHeader, this.reportFooter, this.form);
|
|
14
15
|
}
|
|
15
16
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: GenerateReportBtnComponent, deps: [{ token: i1.ReportService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -41,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
|
41
42
|
}], form: [{
|
|
42
43
|
type: Input
|
|
43
44
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVwb3J0LWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3JlcG9ydC9yZXBvcnRHZW5lcmF0ZUJ0bi9nZW5lcmF0ZS1yZXBvcnQtYnRuL2dlbmVyYXRlLXJlcG9ydC1idG4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2UtdWktdG9vbGtpdC9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0R2VuZXJhdGVCdG4vZ2VuZXJhdGUtcmVwb3J0LWJ0bi9nZW5lcmF0ZS1yZXBvcnQtYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBV3pELE1BQU0sT0FBTywwQkFBMEI7SUFZckMsWUFDVSxhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNsQyxDQUFDO0lBRUwsUUFBUTtJQUNSLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMvRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEosQ0FBQztpSUF2QlUsMEJBQTBCO3FIQUExQiwwQkFBMEIsMFRDWHZDLCtSQVNBOzsyRkRFYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCO29HQUt6QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElGb3JtRmllbGQsIEVGb3JtQ29udHJvbCwgSUR5bmFtaWNGb3JtLCBJUmVwb3J0VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcbmltcG9ydCB7IFJlcG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZS1nZW5lcmF0ZS1yZXBvcnQtYnRuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyYXRlLXJlcG9ydC1idG4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmF0ZS1yZXBvcnQtYnRuLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVSZXBvcnRCdG5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZXBJbmZvOiBhbnk7XG4gIEBJbnB1dCgpIG1hcHBlZEZpZWxkczogYW55O1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhcmFtczogYW55O1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nO1xuICBASW5wdXQoKSByZXBvcnRIZWFkZXI6IHN0cmluZztcbiAgQElucHV0KCkgcmVwb3J0Rm9vdGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlcG9ydFR5cGU6IElSZXBvcnRUeXBlO1xuICBASW5wdXQoKSBzaG93RGlhbG9nOiBib29sZWFuO1xuICBASW5wdXQoKSBmb3JtOiBJRHluYW1pY0Zvcm07XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVwb3J0U2VydmljZTogUmVwb3J0U2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcmVwb3J0Q2xpY2tFdmVudCgpIHtcbiAgICB0aGlzLnJlcEluZm8gPSB0aGlzLnJlcEluZm8/LnVuaXF1ZUtleSA/IHRoaXMucmVwSW5mby51bmlxdWVLZXkgOiB0aGlzLnJlcEluZm87XG4gICAgY29uc29sZS5sb2coJ3RoaXMucmVwSW5mbzogJywgdGhpcy5yZXBJbmZvKTtcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZG93bmxvYWRSZXBvcnQodGhpcy5yZXBJbmZvLCB0aGlzLnBhcmFtcywgdGhpcy5zaG93RGlhbG9nLCB0aGlzLnJlcG9ydFR5cGUsIHRoaXMucmVwb3J0SGVhZGVyLCB0aGlzLnJlcG9ydEZvb3RlciwgdGhpcy5mb3JtKTtcbiAgfVxufSIsIjxidXR0b25cbiAgcEJ1dHRvblxuICBbY2xhc3NdPVwiY2xhc3MgPyBjbGFzcysgJyByZXBvcnQtYnRuIGdlbmVyYXRlLXJlcG9ydC1idG4nIDogJ3JlcG9ydC1idG4gZ2VuZXJhdGUtcmVwb3J0LWJ0bidcIlxuICBbaWNvbl09XCJpY29uXCIgXG4gIHR5cGU9XCJidXR0b25cIlxuICBpZD1cInJlcG9ydGJ0blwiXG4gIFtsYWJlbF09XCJsYWJlbCA/IGxhYmVsIDogaWNvbiA/ICcnIDogJ0dlbmVyYXRlIFJlcG9ydCdcIlxuICAoY2xpY2spPVwicmVwb3J0Q2xpY2tFdmVudCgpXCJcbj48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -104,4 +104,4 @@ export var IReportType;
|
|
|
104
104
|
IReportType["TEXT"] = "txt";
|
|
105
105
|
IReportType["CSV"] = "csv";
|
|
106
106
|
})(IReportType || (IReportType = {}));
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlLXVpLXRvb2xraXQvc3JjL2xpYi9tb2RlbHMvZm9ybS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpTkEsTUFBTSxDQUFOLElBQVksZUFNWDtBQU5ELFdBQVksZUFBZTtJQUN6QixrQ0FBZSxDQUFBO0lBQ2YsNERBQXlDLENBQUE7SUFDekMseUNBQXNCLENBQUE7SUFDdEIsK0JBQVksQ0FBQTtJQUNaLCtCQUFZLENBQUE7QUFDZCxDQUFDLEVBTlcsZUFBZSxLQUFmLGVBQWUsUUFNMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQVlYO0FBWkQsV0FBWSxVQUFVO0lBQ3BCLG1DQUFxQixDQUFBO0lBQ3JCLHFDQUF1QixDQUFBO0lBQ3ZCLHFDQUF1QixDQUFBO0lBQ3ZCLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLDZCQUFlLENBQUE7SUFDZiw2QkFBZSxDQUFBO0lBQ2YsdUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVpXLFVBQVUsS0FBVixVQUFVLFFBWXJCO0FBRUQsTUFBTSxDQUFOLElBQVksWUEyQlg7QUEzQkQsV0FBWSxZQUFZO0lBQ3RCLGlDQUFpQixDQUFBO0lBQ2pCLCtCQUFlLENBQUE7SUFDZiwrQkFBZSxDQUFBO0lBQ2YscUNBQXFCLENBQUE7SUFDckIscUNBQXFCLENBQUE7SUFDckIscUNBQXFCLENBQUE7SUFDckIsa0NBQWtCLENBQUE7SUFDbEIsNENBQTRCLENBQUE7SUFDNUIsc0NBQXNCLENBQUE7SUFDdEIsdUNBQXVCLENBQUE7SUFDdkIsNkNBQTZCLENBQUE7SUFDN0IseUNBQXlCLENBQUE7SUFDekIsdUNBQXVCLENBQUE7SUFDdkIscUNBQXFCLENBQUE7SUFDckIsNkNBQTZCLENBQUE7SUFDN0IsaUNBQWlCLENBQUE7SUFDakIsaURBQWlDLENBQUE7SUFDakMsMkNBQTJCLENBQUE7SUFDM0IsNkJBQWEsQ0FBQTtJQUNiLDZDQUE2QixDQUFBO0lBQzdCLHlDQUF5QixDQUFBO0lBQ3pCLHlDQUF5QixDQUFBO0lBQ3pCLGlDQUFpQixDQUFBO0lBQ2pCLGlDQUFpQixDQUFBO0lBQ2pCLDhDQUE0QixDQUFBO0lBQzVCLHVDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUEzQlcsWUFBWSxLQUFaLFlBQVksUUEyQnZCO0FBRUQsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQix3QkFBVyxDQUFBO0lBQ1gsc0JBQVMsQ0FBQTtBQUNYLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQUVELE1BQU0sQ0FBTixJQUFZLFVBa0JYO0FBbEJELFdBQVksVUFBVTtJQUNwQiwrQkFBaUIsQ0FBQTtJQUNqQix1Q0FBeUIsQ0FBQTtJQUN6QixtQ0FBb0IsQ0FBQTtJQUNwQix1QkFBUyxDQUFBO0lBQ1QsbUNBQXFCLENBQUE7SUFDckIscUNBQXVCLENBQUE7SUFDdkIsNkJBQWUsQ0FBQTtJQUNmLHFDQUF1QixDQUFBO0lBQ3ZCLHlDQUEwQixDQUFBO0lBQzFCLHVCQUFTLENBQUE7SUFDVCwrQkFBaUIsQ0FBQTtJQUNqQix1Q0FBeUIsQ0FBQTtJQUN6Qix5QkFBVyxDQUFBO0lBQ1gsdUJBQVMsQ0FBQTtJQUNULDZCQUFlLENBQUE7SUFDZixxQ0FBdUIsQ0FBQTtJQUN2Qix5QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQWxCVyxVQUFVLEtBQVYsVUFBVSxRQWtCckI7QUFpQ0QsTUFBTSxDQUFOLElBQVksV0FZWDtBQVpELFdBQVksV0FBVztJQUNyQixtQ0FBb0IsQ0FBQTtJQUNwQixxQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBc0IsQ0FBQTtJQUN0QixvQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBZSxDQUFBO0lBQ2Ysd0NBQXlCLENBQUE7SUFDekIsZ0NBQWlCLENBQUE7SUFDakIsb0NBQXFCLENBQUE7SUFDckIsa0NBQW1CLENBQUE7SUFDbkIsa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVpXLFdBQVcsS0FBWCxXQUFXLFFBWXRCO0FBYUQsTUFBTSxDQUFOLElBQVksVUFPWDtBQVBELFdBQVksVUFBVTtJQUNwQiw4QkFBZ0IsQ0FBQTtJQUNoQiw0QkFBYyxDQUFBO0lBQ2QsZ0NBQWtCLENBQUE7SUFDbEIsMEJBQVksQ0FBQTtJQUNaLGdDQUFrQixDQUFBO0lBQ2xCLGdDQUFrQixDQUFBO0FBQ3BCLENBQUMsRUFQVyxVQUFVLEtBQVYsVUFBVSxRQU9yQjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsMEJBQVcsQ0FBQTtJQUNYLDhCQUFlLENBQUE7SUFDZiwyQkFBWSxDQUFBO0lBQ1osMEJBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxXQUFXLEtBQVgsV0FBVyxRQUt0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElHcmlkU29ydCwgSU92ZXJsYXlQYW5lbERhdGEsIElTZWxlY3RJdGVtIH0gZnJvbSAnLi9ncmlkLm1vZGVsJztcbmltcG9ydCB7IElQZXJtaXNzaW9uIH0gZnJvbSAnLi91c2VyLWluZm8ubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRm9ybSB7XG4gIGZvcm1TZWN0aW9ucz86IElGb3JtU2VjdGlvbltdO1xuICBjb2x1bW4/OiBudW1iZXI7XG4gIHBlcm1pc3Npb25zPzogSVBlcm1pc3Npb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFiZWwge1xuICBuYW1lOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbGFiZWxDb250cm9sPzogSUZvcm1GaWVsZDtcbiAgb25SZXR1cm4/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyb3BEb3duUmVxdWVzdCB7XG4gIHVuaXF1ZUtleTogc3RyaW5nLFxuICB2YWx1ZVByb3A6IHN0cmluZyxcbiAgbGFiZWxQcm9wOiBzdHJpbmcsXG4gIGZpbHRlcnM/OiBJU2V0RmlsdGVyW11cbiAgc29ydHM/OklHcmlkU29ydFtdIFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBdXRvQ29tcGxldGVTYXZlIHtcbiAgbmFtZTpzdHJpbmcsXG4gIHZhbHVlczpJQXV0b0NvbXBsZXRlVmFsdWVTYXZlW10sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF1dG9Db21wbGV0ZVZhbHVlU2F2ZXtcbiAgbmFtZTpzdHJpbmcsXG4gIHZhbHVlPzphbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2V0RmlsdGVyIHtcbiAgZmllbGQ/OiBzdHJpbmcsXG4gIHZhbHVlPzogYW55LFxuICBtYXRjaE1vZGU/OiBzdHJpbmcsXG4gIG9wZXJhdG9yPzogc3RyaW5nLFxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2VjdGlvbiB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZpZWxkcz86IElGb3JtRmllbGRbXTtcbiAgaWNvbj86IHN0cmluZztcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIGxpbmtzPzogSUxhYmVsW107XG4gIGhlYWRlckZpZWxkcz86IElGb3JtRmllbGRbXTtcbiAgcGVybWlzc2lvbnM/OiBJUGVybWlzc2lvbltdO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBhY2NvcmRpb25EaXNhYmxlZD86IGJvb2xlYW47XG4gIHNob3dBY2NvcmRpb24/OiBib29sZWFuO1xuICBleHBhbmRlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRUZXh0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUZpZWxkIHtcbiAgbGFiZWw/OiBzdHJpbmcgfCBJTGFiZWw7XG4gIGNsYXNzPzogc3RyaW5nO1xuICBjYXJkPzogSUR5bmFtaWNDYXJkO1xuICBjb250cm9sPzogRUZvcm1Db250cm9sO1xuICBmaWVsZD86IHN0cmluZztcbiAgZGlzcGxheUZpZWxkPzogc3RyaW5nO1xuICBzaG93T3B0aW9uPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBhbnkgfCBJTG9va3VwSW5wdXRWYWx1ZTtcbiAgZGF0YT86IGFueVtdO1xuICB2YWxpZGF0aW9ucz86IElWYWxpZGF0aW9uW107XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgbWludXRlc0ludGVydmFsPzogbnVtYmVyO1xuICBpZD86IHN0cmluZztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkVGV4dD86IGJvb2xlYW47XG4gIGxvb2t1cENvbnRyb2w/OiBJTG9va3VwQ29udHJvbEZpZWxkO1xuICB0YWJsZXM/OiBzdHJpbmdbXTtcbiAgY29tcG9uZW50Q29udHJvbD86IElGb3JtQ29tcG9uZW50RmllbGQ7XG4gIGNvbHVtbj86IG51bWJlcjtcbiAgcm93PzogbnVtYmVyO1xuICBoeXBlcmxpbms/OiBJSHlwZXJsaW5rO1xuICBmb3JtYXQ/OiBJRm9ybWF0O1xuICBwZXJtaXNzaW9ucz86IElQZXJtaXNzaW9uW107XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIG9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBvcHRpb25WYWx1ZT86IHN0cmluZztcbiAgc2F2ZUFzU3RyaW5nPzogYm9vbGVhbjtcbiAgc2hvd0FsbFZhbHVlPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICh2YWx1ZT86IGFueSkgPT4gYW55O1xuICBvblJldHVybj86ICh2YWx1ZT86IGFueSwgc2VsZWN0ZWRSb3c/OiBhbnkpID0+IHZvaWQ7XG4gIG9uRm9jdXNPdXQ/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25DaGFuZ2U/OiAodmFsdWU6IGFueSkgPT4gYW55O1xuICBpc3ZhbGlkPzogYm9vbGVhbjtcbiAgdGltZU9ubHk/OiBib29sZWFuXG4gIG1vbnRoT25seT86IGJvb2xlYW47XG4gIHNob3dUaW1lPzogYm9vbGVhbjsgLy8gdG8gc2hvdyB0aW1lIGFzIHdlbGwgaW4gY2FsZW5kYXIgZm9ybSBmaWVsZFxuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG4gIHJlcXVpcmVkRmllbGQ/OiBib29sZWFuO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG4gIHNob3dCb3R0b21Cb3JkZXI/OiBib29sZWFuO1xuICBhbGxvd1NlYXJjaD86IGJvb2xlYW47XG4gIGlzUGFzc3dvcmQ/OmJvb2xlYW5cbiAgdGV4dFR5cGU/OnN0cmluZztcbiAgc2VsZWN0TXVsdGlwbGVGaWxlcz86IGJvb2xlYW47XG4gIFNldGZpbGVUeXBlcz86IEVTZWxlY3RGaWxlVHlwZTtcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHVuaXF1ZUtleT86IHN0cmluZztcbiAgYXp1cmVDb250YWluZXI/OiBzdHJpbmc7XG4gIHBhdGhTeXN0ZW1Db25maWc/OiBzdHJpbmc7XG4gIGRpc3BsYXlTdHlsZT86Ym9vbGVhbjtcbiAgaG92ZXJEYXRhPzogSU92ZXJsYXlQYW5lbERhdGE7XG4gIG9wZW5Jbk5ld1RhYj86IGJvb2xlYW47XG4gIGlzQXp1cmVVcGxvYWQ/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUJ1dHRvbntcbiAgaWNvbj86c3RyaW5nO1xuICBsYWJlbDpzdHJpbmc7XG4gIGhpZGRlbj86Ym9vbGVhbjtcbiAgZnVuYzpGdW5jdGlvbjtcbiAgZGlzYWJsZWQ/OmJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljQ2FyZCB7XG4gIGlkPzogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogYW55W107XG4gIG9yZGVyQnlGaWVsZD86IHN0cmluZztcbiAgZm9ybVNlY3Rpb25zPzogSUZvcm1TZWN0aW9uW107XG4gIG9uU29ydD86ICh2YWx1ZTogYW55KSA9PiBhbnk7XG4gIGNvbnRhaW5lck5hbWU/OiBzdHJpbmc7XG4gIGFsbG93RGVsZXRlPzogYm9vbGVhbjtcbiAgYWxsb3dEb3dubG9hZD86IGJvb2xlYW47XG4gIHVybD86IHN0cmluZztcbiAgY2FwdGlvbj86IHN0cmluZztcbiAgd2lkdGg/OiBzdHJpbmc7XG4gIGhlaWdodD86IHN0cmluZztcbiAgYWxsb3dFZGl0YWJsZUNhcHRpb24/OiBib29sZWFuO1xuICBvbkNhcHRpb25TYXZlPzogKHZhbHVlOiBhbnkpID0+IGFueTtcbiAgb25EZWxldGU/OiAodmFsdWU6IGFueSkgPT4gYW55O1xuICBjbGFzcz86IHN0cmluZztcbiAgY2FyZEluZm8/OiBJVmlld0NhcmRQcm9wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWaWV3Q2FyZFByb3Age1xuICB1cmw/OiBzdHJpbmc7XG4gIGNhcHRpb24/OiBzdHJpbmc7XG4gIGV4dGVuc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVwb3J0QnRue1xuICByZXBvcnRJZD86IG51bWJlcjtcbiAgcmVwb3J0TmFtZT86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGNvbnRyb2w/OiBFRm9ybUNvbnRyb2wuUkVQT1JUO1xuICBwYXJhbXM/OiBhbnlbXTtcbiAgc2hvd0RpYWxvZz86IGJvb2xlYW47XG4gIHJlcG9ydEhlYWRlcj86IHN0cmluZztcbiAgcmVwb3J0Rm9vdGVyPzogc3RyaW5nO1xuICByZXBvcnRUeXBlPzogSVJlcG9ydFR5cGU7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMaXN0RmlsdGVyIHtcbiAgdW5pcXVlS2V5OiBzdHJpbmc7XG4gIGZpbHRlcnM/OiBJU2V0RmlsdGVyW107XG4gIHNvcnRzPzogSUdyaWRTb3J0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1Db21wb25lbnRGaWVsZCB7XG4gIGNvbXBvbmVudDogVHlwZTxhbnk+O1xuICBpZD86c3RyaW5nO1xuICBkYXRhPzoge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbiAgaGFuZGxlcnM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogRnVuY3Rpb247XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvb2t1cElucHV0VmFsdWUge1xuICB0ZXh0OiBhbnk7XG4gIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvb2t1cENvbnRyb2xGaWVsZCB7XG4gIGNvbXBvbmVudDogYW55O1xuICBkYXRhOiBJTG9va3VwRmllbGREYXRhO1xuICBpZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBJTG9va3VwRmllbGREYXRhID0ge1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIGhlaWdodD86IHN0cmluZztcbiAgd2lkdGg/OiBzdHJpbmc7XG4gIGRhdGE/OiB7W2tleTogc3RyaW5nXTogYW55fTtcbiAgbGFiZWxQcm9wPzogc3RyaW5nO1xuICB2YWx1ZVByb3A/OiBzdHJpbmc7XG59IFxuXG5leHBvcnQgaW50ZXJmYWNlIElWYWxpZGF0aW9uIHtcbiAgdHlwZTogRVZhbGlkYXRvcjtcbiAgZXhwcmVzc2lvbj86IGFueTtcbn1cblxuZXhwb3J0IGVudW0gRVNlbGVjdEZpbGVUeXBlIHtcbiAgRVhDRUwgPSAnLnhsc3gnLFxuICBJTUFHRSA9ICcuaW1hZ2UsIC5qcGcsIC5wbmcsIC5qcGVnLCAuZ2lmJyxcbiAgRE9DVU1FTlQgPSAnLmRvY3VtZW50JyxcbiAgUERGID0gJy5wZGYnLFxuICBNUlQgPSAnLm1ydCcsXG59XG5cbmV4cG9ydCBlbnVtIEVWYWxpZGF0b3Ige1xuICBSRVFVSVJFRCA9ICdyZXF1aXJlZCcsXG4gIE1JTkxFTkdUSCA9ICdtaW5sZW5ndGgnLFxuICBNQVhMRU5HVEggPSAnbWF4bGVuZ3RoJyxcbiAgUEFUVEVSTiA9ICdwYXR0ZXJuJyxcbiAgTUlOSU1VTSA9ICdtaW5pbXVtJyxcbiAgTUFYSU1VTSA9ICdtYXhpbXVtJyxcbiAgTlVNRVJJQyA9ICdudW1lcmljJyxcbiAgREVDSU1BTCA9ICdkZWNpbWFsJyxcbiAgRU1BSUwgPSAnZW1haWwnLFxuICBQSE9ORSA9ICdwaG9uZScsXG4gIE1BWE9QVElPTlM9J21heE9wdGlvbnMnXG59XG5cbmV4cG9ydCBlbnVtIEVGb3JtQ29udHJvbCB7XG4gIEJVVFRPTiA9ICdidXR0b24nLFxuICBMQUJFTCA9ICdsYWJlbCcsXG4gIElOUFVUID0gJ2lucHV0JyxcbiAgQ0hFQ0tCT1ggPSAnY2hlY2tib3gnLFxuICBEUk9QRE9XTiA9ICdkcm9wZG93bicsXG4gIENBTEVOREFSID0gJ2NhbGVuZGFyJyxcbiAgTlVNRVJJQyA9ICdudW1iZXInLFxuICBNVUxUSVNFTEVDVCA9ICdtdWx0aS1zZWxlY3QnLFxuICBURVhUQVJFQSA9ICd0ZXh0LWFyZWEnLFxuICBIWVBFUkxJTksgPSAnaHlwZXJsaW5rJyxcbiAgTE9PS1VQX0lOUFVUID0gJ2xvb2t1cF9pbnB1dCcsXG4gIE5PVEVfRklFTEQgPSAnbm90ZV9maWVsZCcsXG4gIENPTVBPTkVOVCA9ICdjb21wb25lbnQnLFxuICBQQVNTV09SRCA9ICdwYXNzd29yZCcsXG4gIEFVVE9DT01QTEVURSA9ICdBdXRvQ29tcGxldGUnLFxuICBTUEFDRVIgPSAnc3BhY2VyJyxcbiAgU0VDVElPTl9IRUFERVIgPSAnc2VjdGlvbl9oZWFkZXInLFxuICBGSUxFX1VQTE9BRCA9ICdmaWxlX3VwbG9hZCcsXG4gIENBUkQgPSAnY2FyZCcsXG4gIERJU1BMQVlfRklMRSA9ICdkaXNwbGF5X2ZpbGUnLFxuICBBRERfQlVUVE9OID0gJ2FkZF9idXR0b24nLFxuICBCUkVBS19MSU5FID0gJ2JyZWFrX2xpbmUnLFxuICBTV0lUQ0ggPSAnc3dpdGNoJyxcbiAgUkVQT1JUID0gJ3JlcG9ydCcsXG4gIFNFTEVDVEJVVFRPTj0nc2VsZWN0X2J1dHRvbicsIFxuICBIT1ZFUkRBVEEgPSAnaG92ZXJEYXRhJ1xufVxuXG5leHBvcnQgZW51bSBFT3BlcmF0b3Ige1xuICBBTkQgPSAnYW5kJyxcbiAgT1IgPSAnb3InLFxufVxuXG5leHBvcnQgZW51bSBFTWF0Y2hNb2RlIHtcbiAgRVFVQUxTID0gJ2VxdWFscycsXG4gIFNUQVJUU1dJVEggPSAnc3RhcnRzV2l0aCcsXG4gIENPTlRBSU5TID0nY29udGFpbnMnLFxuICBJTiA9ICdpbicsXG4gIEVORFNXSVRIID0gJ2VuZHNXaXRoJyxcbiAgTk9URVFVQUxTID0gJ25vdEVxdWFscycsXG4gIElTTk9UID0gJ2lzTm90JyxcbiAgREFURUlTTk9UID0gJ2RhdGVJc05vdCcsXG4gIE5PVENPTlRBSU5TID0nbm90Q29udGFpbnMnLFxuICBMVCA9ICdsdCcsXG4gIEJFRk9SRSA9ICdiZWZvcmUnLFxuICBEQVRFQkVGT1JFID0gJ2RhdGVCZWZvcmUnLFxuICBMVEUgPSAnbHRlJyxcbiAgR1QgPSAnZ3QnLFxuICBBRlRFUiA9ICdhZnRlcicsXG4gIERBVEVBRlRFUiA9ICdkYXRlQWZ0ZXInLFxuICBHVEUgPSAnZ3RlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybWF0IHtcbiAgdHlwZTogRUZvcm1hdFR5cGU7XG4gIGZvcm1hdFBhcmFtcz86XG4gICAgfCBJRm9ybWF0UGFyYW1cbiAgICB8IElEYXRlRm9ybWF0UGFyYW1cbiAgICB8IElOdW1iZXJGb3JtYXRQYXJhbVxuICAgIHwgSWFsbG93Q2FsY3VsYXRlRm9ybWF0UGFyYW1cbiAgICB8IElDdXJyZW5jeUZvcm1hdFBhcmFtO1xuICBmb3JtYXR0ZXI/OiAodmFsdWU6IGFueSkgPT4gYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtYXRQYXJhbSB7XG4gIGxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZUZvcm1hdFBhcmFtIGV4dGVuZHMgSUZvcm1hdFBhcmFtIHtcbiAgZm9ybWF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElhbGxvd0NhbGN1bGF0ZUZvcm1hdFBhcmFtIGV4dGVuZHMgSUZvcm1hdFBhcmFtIHtcbiAgYWxsb3dDYWxjdWxhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElOdW1iZXJGb3JtYXRQYXJhbSBleHRlbmRzIElGb3JtYXRQYXJhbSB7XG4gIGRpZ2l0c0luZm8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUN1cnJlbmN5Rm9ybWF0UGFyYW0gZXh0ZW5kcyBJTnVtYmVyRm9ybWF0UGFyYW0ge1xuICBjdXJyZW5jeTogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBFRm9ybWF0VHlwZSB7XG4gIFNNQUxMREFURSA9ICdtbS9kL3knLFxuICBTSE9SVERBVEUgPSAnbW0vZGQveXknLFxuICBNRURJVU1EQVRFID0gJ00gZCwgeXknLFxuICBMT05HREFURSA9ICdNTSBkLCB5eScsXG4gIE1PTlRIT05MWSA9ICdtbS95eScsXG4gIFBFUklPRCA9ICdtbS95JyxcbiAgQk9PTEVBTl9ZTiA9ICdCT09MRUFOX1lOJyxcbiAgQ1VTVE9NID0gJ2N1c3RvbScsXG4gIENVUlJFTkNZID0gJ2N1cnJlbmN5JyxcbiAgUEVSQ0VOVCA9ICdwZXJjZW50JyxcbiAgREVDSU1BTCA9ICdkZWNpbWFsJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSHlwZXJsaW5rIHtcbiAgdGFyZ2V0PzogRUh5cGVybGluaztcbiAgbGluaz86IHN0cmluZztcbiAgbGlua0lkPzogc3RyaW5nO1xuICBwYXJhbXM/OiBhbnk7XG4gIHdpZHRoPzpzdHJpbmc7XG4gIGhlaWdodD86c3RyaW5nO1xuICBjb21wb25lbnQ/OiBhbnk7XG4gIGRhdGE/OiBJTG9va3VwRmllbGREYXRhO1xufVxuXG5leHBvcnQgZW51bSBFSHlwZXJsaW5rIHtcbiAgQkxBTksgPSAnX2JsYW5rJyxcbiAgU0VMRiA9ICdfc2VsZicsXG4gIFBBUkVOVCA9ICdfcGFyZW50JyxcbiAgVE9QID0gJ190b3AnLFxuICBJRlJBTUUgPSAnX2lmcmFtZScsXG4gIERJQUxPRyA9ICdfZGlhbG9nJ1xufVxuXG5leHBvcnQgZW51bSBJUmVwb3J0VHlwZSB7XG4gIFBERiA9ICdwZGYnLFxuICBFWENFTCA9ICdleGNlbCcsXG4gIFRFWFQgPSAndHh0JyxcbiAgQ1NWID0gJ2Nzdidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRGb3JtRmllbGQge1xuICBjb250cm9sPzogRUZvcm1Db250cm9sO1xuICBmaWVsZD86IHN0cmluZztcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIGRpc3BsYXlGaWVsZD86IHN0cmluZztcbiAgc2hvd09wdGlvbj86IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nIHwgSUxhYmVsO1xuICB2YWx1ZT86IHN0cmluZyB8IGFueTtcbiAgZm9ybWF0PzogSUZvcm1hdDtcbiAgcGVybWlzc2lvbnM/OiBJUGVybWlzc2lvbltdO1xuICBpZD86IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgdmFsaWRhdGlvbnM/OiBJVmFsaWRhdGlvbltdIHwgYW55O1xuICBoeXBlcmxpbms/OiBJSHlwZXJsaW5rO1xuICBsb29rdXBDb250cm9sPzogSUxvb2t1cENvbnRyb2xGaWVsZDtcbiAgdGFibGVzPzogc3RyaW5nW107XG4gIG1pbnV0ZXNJbnRlcnZhbD86IG51bWJlcjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuIHwgYW55O1xuICBkaXNhYmxlZFRleHQ/OiBib29sZWFuO1xuICBjb2x1bW4/OiBudW1iZXI7XG4gIHJvdz86IG51bWJlcjtcbiAgY29tcG9uZW50Q29udHJvbD86IElGb3JtQ29tcG9uZW50RmllbGQ7XG4gIGRhdGE/OiBJU2VsZWN0SXRlbVtdO1xuICBvcHRpb25MYWJlbD86IHN0cmluZztcbiAgb3B0aW9uVmFsdWU/OiBzdHJpbmc7XG4gIHRpbWVPbmx5PzogYm9vbGVhbjtcbiAgbW9udGhPbmx5PzogYm9vbGVhbjtcbiAgbWluRGF0ZT86IERhdGU7XG4gIG1heERhdGU/OiBEYXRlO1xuICBzaG93VGltZT86IGJvb2xlYW47IC8vIHRvIHNob3cgdGltZSBhcyB3ZWxsIGluIGNhbGVuZGFyIGZvcm0gZmllbGRcbiAgc2F2ZUFzU3RyaW5nPzogYm9vbGVhbjtcbiAgc2hvd0FsbFZhbHVlPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICh2YWx1ZT86IGFueSkgPT4gYW55O1xuICBvblJldHVybj86ICh2YWx1ZT86IGFueSwgc2VsZWN0ZWRSb3c/OmFueSkgPT4gdm9pZDtcbiAgb25Gb2N1c091dD86ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICBvbkNoYW5nZT86ICh2YWx1ZTogYW55KSA9PiBhbnk7XG4gIGhlaWdodD86IHN0cmluZztcbiAgc2hvd0JvdHRvbUJvcmRlcj86IGJvb2xlYW47XG4gIGFsbG93U2VhcmNoPzogYm9vbGVhbjtcbiAgaXNQYXNzd29yZD86Ym9vbGVhbjtcbiAgdGV4dFR5cGU/OnN0cmluZztcbiAgc2VsZWN0TXVsdGlwbGVGaWxlcz86IGJvb2xlYW47XG4gIFNldGZpbGVUeXBlcz86IEVTZWxlY3RGaWxlVHlwZTtcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGNhcmQ/OiBJRHluYW1pY0NhcmQ7XG4gIGRpc3BsYXlTdHlsZT86Ym9vbGVhbjtcbiAgaG92ZXJEYXRhPzogSU92ZXJsYXlQYW5lbERhdGE7XG4gIG9wZW5Jbk5ld1RhYj86IGJvb2xlYW47XG59XG4iXX0=
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlLXVpLXRvb2xraXQvc3JjL2xpYi9tb2RlbHMvZm9ybS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrTkEsTUFBTSxDQUFOLElBQVksZUFNWDtBQU5ELFdBQVksZUFBZTtJQUN6QixrQ0FBZSxDQUFBO0lBQ2YsNERBQXlDLENBQUE7SUFDekMseUNBQXNCLENBQUE7SUFDdEIsK0JBQVksQ0FBQTtJQUNaLCtCQUFZLENBQUE7QUFDZCxDQUFDLEVBTlcsZUFBZSxLQUFmLGVBQWUsUUFNMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQVlYO0FBWkQsV0FBWSxVQUFVO0lBQ3BCLG1DQUFxQixDQUFBO0lBQ3JCLHFDQUF1QixDQUFBO0lBQ3ZCLHFDQUF1QixDQUFBO0lBQ3ZCLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLDZCQUFlLENBQUE7SUFDZiw2QkFBZSxDQUFBO0lBQ2YsdUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVpXLFVBQVUsS0FBVixVQUFVLFFBWXJCO0FBRUQsTUFBTSxDQUFOLElBQVksWUEyQlg7QUEzQkQsV0FBWSxZQUFZO0lBQ3RCLGlDQUFpQixDQUFBO0lBQ2pCLCtCQUFlLENBQUE7SUFDZiwrQkFBZSxDQUFBO0lBQ2YscUNBQXFCLENBQUE7SUFDckIscUNBQXFCLENBQUE7SUFDckIscUNBQXFCLENBQUE7SUFDckIsa0NBQWtCLENBQUE7SUFDbEIsNENBQTRCLENBQUE7SUFDNUIsc0NBQXNCLENBQUE7SUFDdEIsdUNBQXVCLENBQUE7SUFDdkIsNkNBQTZCLENBQUE7SUFDN0IseUNBQXlCLENBQUE7SUFDekIsdUNBQXVCLENBQUE7SUFDdkIscUNBQXFCLENBQUE7SUFDckIsNkNBQTZCLENBQUE7SUFDN0IsaUNBQWlCLENBQUE7SUFDakIsaURBQWlDLENBQUE7SUFDakMsMkNBQTJCLENBQUE7SUFDM0IsNkJBQWEsQ0FBQTtJQUNiLDZDQUE2QixDQUFBO0lBQzdCLHlDQUF5QixDQUFBO0lBQ3pCLHlDQUF5QixDQUFBO0lBQ3pCLGlDQUFpQixDQUFBO0lBQ2pCLGlDQUFpQixDQUFBO0lBQ2pCLDhDQUE0QixDQUFBO0lBQzVCLHVDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUEzQlcsWUFBWSxLQUFaLFlBQVksUUEyQnZCO0FBRUQsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQix3QkFBVyxDQUFBO0lBQ1gsc0JBQVMsQ0FBQTtBQUNYLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQUVELE1BQU0sQ0FBTixJQUFZLFVBa0JYO0FBbEJELFdBQVksVUFBVTtJQUNwQiwrQkFBaUIsQ0FBQTtJQUNqQix1Q0FBeUIsQ0FBQTtJQUN6QixtQ0FBb0IsQ0FBQTtJQUNwQix1QkFBUyxDQUFBO0lBQ1QsbUNBQXFCLENBQUE7SUFDckIscUNBQXVCLENBQUE7SUFDdkIsNkJBQWUsQ0FBQTtJQUNmLHFDQUF1QixDQUFBO0lBQ3ZCLHlDQUEwQixDQUFBO0lBQzFCLHVCQUFTLENBQUE7SUFDVCwrQkFBaUIsQ0FBQTtJQUNqQix1Q0FBeUIsQ0FBQTtJQUN6Qix5QkFBVyxDQUFBO0lBQ1gsdUJBQVMsQ0FBQTtJQUNULDZCQUFlLENBQUE7SUFDZixxQ0FBdUIsQ0FBQTtJQUN2Qix5QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQWxCVyxVQUFVLEtBQVYsVUFBVSxRQWtCckI7QUFpQ0QsTUFBTSxDQUFOLElBQVksV0FZWDtBQVpELFdBQVksV0FBVztJQUNyQixtQ0FBb0IsQ0FBQTtJQUNwQixxQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBc0IsQ0FBQTtJQUN0QixvQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBZSxDQUFBO0lBQ2Ysd0NBQXlCLENBQUE7SUFDekIsZ0NBQWlCLENBQUE7SUFDakIsb0NBQXFCLENBQUE7SUFDckIsa0NBQW1CLENBQUE7SUFDbkIsa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVpXLFdBQVcsS0FBWCxXQUFXLFFBWXRCO0FBYUQsTUFBTSxDQUFOLElBQVksVUFPWDtBQVBELFdBQVksVUFBVTtJQUNwQiw4QkFBZ0IsQ0FBQTtJQUNoQiw0QkFBYyxDQUFBO0lBQ2QsZ0NBQWtCLENBQUE7SUFDbEIsMEJBQVksQ0FBQTtJQUNaLGdDQUFrQixDQUFBO0lBQ2xCLGdDQUFrQixDQUFBO0FBQ3BCLENBQUMsRUFQVyxVQUFVLEtBQVYsVUFBVSxRQU9yQjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsMEJBQVcsQ0FBQTtJQUNYLDhCQUFlLENBQUE7SUFDZiwyQkFBWSxDQUFBO0lBQ1osMEJBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxXQUFXLEtBQVgsV0FBVyxRQUt0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElHcmlkU29ydCwgSU92ZXJsYXlQYW5lbERhdGEsIElTZWxlY3RJdGVtIH0gZnJvbSAnLi9ncmlkLm1vZGVsJztcbmltcG9ydCB7IElQZXJtaXNzaW9uIH0gZnJvbSAnLi91c2VyLWluZm8ubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRm9ybSB7XG4gIGZvcm1TZWN0aW9ucz86IElGb3JtU2VjdGlvbltdO1xuICBjb2x1bW4/OiBudW1iZXI7XG4gIHBlcm1pc3Npb25zPzogSVBlcm1pc3Npb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFiZWwge1xuICBuYW1lOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbGFiZWxDb250cm9sPzogSUZvcm1GaWVsZDtcbiAgb25SZXR1cm4/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyb3BEb3duUmVxdWVzdCB7XG4gIHVuaXF1ZUtleTogc3RyaW5nLFxuICB2YWx1ZVByb3A6IHN0cmluZyxcbiAgbGFiZWxQcm9wOiBzdHJpbmcsXG4gIGZpbHRlcnM/OiBJU2V0RmlsdGVyW11cbiAgc29ydHM/OklHcmlkU29ydFtdIFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBdXRvQ29tcGxldGVTYXZlIHtcbiAgbmFtZTpzdHJpbmcsXG4gIHZhbHVlczpJQXV0b0NvbXBsZXRlVmFsdWVTYXZlW10sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF1dG9Db21wbGV0ZVZhbHVlU2F2ZXtcbiAgbmFtZTpzdHJpbmcsXG4gIHZhbHVlPzphbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2V0RmlsdGVyIHtcbiAgZmllbGQ/OiBzdHJpbmcsXG4gIHZhbHVlPzogYW55LFxuICBtYXRjaE1vZGU/OiBzdHJpbmcsXG4gIG9wZXJhdG9yPzogc3RyaW5nLFxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2VjdGlvbiB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZpZWxkcz86IElGb3JtRmllbGRbXTtcbiAgaWNvbj86IHN0cmluZztcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIGxpbmtzPzogSUxhYmVsW107XG4gIGhlYWRlckZpZWxkcz86IElGb3JtRmllbGRbXTtcbiAgcGVybWlzc2lvbnM/OiBJUGVybWlzc2lvbltdO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBhY2NvcmRpb25EaXNhYmxlZD86IGJvb2xlYW47XG4gIHNob3dBY2NvcmRpb24/OiBib29sZWFuO1xuICBleHBhbmRlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRUZXh0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUZpZWxkIHtcbiAgbGFiZWw/OiBzdHJpbmcgfCBJTGFiZWw7XG4gIGNsYXNzPzogc3RyaW5nO1xuICBjYXJkPzogSUR5bmFtaWNDYXJkO1xuICBjb250cm9sPzogRUZvcm1Db250cm9sO1xuICBmaWVsZD86IHN0cmluZztcbiAgZGlzcGxheUZpZWxkPzogc3RyaW5nO1xuICBzaG93T3B0aW9uPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBhbnkgfCBJTG9va3VwSW5wdXRWYWx1ZTtcbiAgZGF0YT86IGFueVtdO1xuICB2YWxpZGF0aW9ucz86IElWYWxpZGF0aW9uW107XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgbWludXRlc0ludGVydmFsPzogbnVtYmVyO1xuICBpZD86IHN0cmluZztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkVGV4dD86IGJvb2xlYW47XG4gIGxvb2t1cENvbnRyb2w/OiBJTG9va3VwQ29udHJvbEZpZWxkO1xuICB0YWJsZXM/OiBzdHJpbmdbXTtcbiAgY29tcG9uZW50Q29udHJvbD86IElGb3JtQ29tcG9uZW50RmllbGQ7XG4gIGNvbHVtbj86IG51bWJlcjtcbiAgcm93PzogbnVtYmVyO1xuICBoeXBlcmxpbms/OiBJSHlwZXJsaW5rO1xuICBmb3JtYXQ/OiBJRm9ybWF0O1xuICBwZXJtaXNzaW9ucz86IElQZXJtaXNzaW9uW107XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIG9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBvcHRpb25WYWx1ZT86IHN0cmluZztcbiAgc2F2ZUFzU3RyaW5nPzogYm9vbGVhbjtcbiAgc2hvd0FsbFZhbHVlPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICh2YWx1ZT86IGFueSkgPT4gYW55O1xuICBvblJldHVybj86ICh2YWx1ZT86IGFueSwgc2VsZWN0ZWRSb3c/OiBhbnkpID0+IHZvaWQ7XG4gIG9uRm9jdXNPdXQ/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25DaGFuZ2U/OiAodmFsdWU6IGFueSkgPT4gYW55O1xuICBpc3ZhbGlkPzogYm9vbGVhbjtcbiAgdGltZU9ubHk/OiBib29sZWFuXG4gIG1vbnRoT25seT86IGJvb2xlYW47XG4gIHNob3dUaW1lPzogYm9vbGVhbjsgLy8gdG8gc2hvdyB0aW1lIGFzIHdlbGwgaW4gY2FsZW5kYXIgZm9ybSBmaWVsZFxuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG4gIHJlcXVpcmVkRmllbGQ/OiBib29sZWFuO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG4gIHNob3dCb3R0b21Cb3JkZXI/OiBib29sZWFuO1xuICBhbGxvd1NlYXJjaD86IGJvb2xlYW47XG4gIGlzUGFzc3dvcmQ/OmJvb2xlYW5cbiAgdGV4dFR5cGU/OnN0cmluZztcbiAgc2VsZWN0TXVsdGlwbGVGaWxlcz86IGJvb2xlYW47XG4gIFNldGZpbGVUeXBlcz86IEVTZWxlY3RGaWxlVHlwZTtcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHVuaXF1ZUtleT86IHN0cmluZztcbiAgYXp1cmVDb250YWluZXI/OiBzdHJpbmc7XG4gIHBhdGhTeXN0ZW1Db25maWc/OiBzdHJpbmc7XG4gIGRpc3BsYXlTdHlsZT86Ym9vbGVhbjtcbiAgaG92ZXJEYXRhPzogSU92ZXJsYXlQYW5lbERhdGE7XG4gIG9wZW5Jbk5ld1RhYj86IGJvb2xlYW47XG4gIGlzQXp1cmVVcGxvYWQ/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUJ1dHRvbntcbiAgaWNvbj86c3RyaW5nO1xuICBsYWJlbDpzdHJpbmc7XG4gIGhpZGRlbj86Ym9vbGVhbjtcbiAgZnVuYzpGdW5jdGlvbjtcbiAgZGlzYWJsZWQ/OmJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljQ2FyZCB7XG4gIGlkPzogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogYW55W107XG4gIG9yZGVyQnlGaWVsZD86IHN0cmluZztcbiAgZm9ybVNlY3Rpb25zPzogSUZvcm1TZWN0aW9uW107XG4gIG9uU29ydD86ICh2YWx1ZTogYW55KSA9PiBhbnk7XG4gIGNvbnRhaW5lck5hbWU/OiBzdHJpbmc7XG4gIGFsbG93RGVsZXRlPzogYm9vbGVhbjtcbiAgYWxsb3dEb3dubG9hZD86IGJvb2xlYW47XG4gIHVybD86IHN0cmluZztcbiAgY2FwdGlvbj86IHN0cmluZztcbiAgd2lkdGg/OiBzdHJpbmc7XG4gIGhlaWdodD86IHN0cmluZztcbiAgYWxsb3dFZGl0YWJsZUNhcHRpb24/OiBib29sZWFuO1xuICBvbkNhcHRpb25TYXZlPzogKHZhbHVlOiBhbnkpID0+IGFueTtcbiAgb25EZWxldGU/OiAodmFsdWU6IGFueSkgPT4gYW55O1xuICBjbGFzcz86IHN0cmluZztcbiAgY2FyZEluZm8/OiBJVmlld0NhcmRQcm9wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWaWV3Q2FyZFByb3Age1xuICB1cmw/OiBzdHJpbmc7XG4gIGNhcHRpb24/OiBzdHJpbmc7XG4gIGV4dGVuc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVwb3J0QnRue1xuICByZXBvcnRJZD86IG51bWJlcjtcbiAgdW5pcXVlS2V5Pzogc3RyaW5nO1xuICByZXBvcnROYW1lPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgY29udHJvbD86IEVGb3JtQ29udHJvbC5SRVBPUlQ7XG4gIHBhcmFtcz86IGFueVtdO1xuICBzaG93RGlhbG9nPzogYm9vbGVhbjtcbiAgcmVwb3J0SGVhZGVyPzogc3RyaW5nO1xuICByZXBvcnRGb290ZXI/OiBzdHJpbmc7XG4gIHJlcG9ydFR5cGU/OiBJUmVwb3J0VHlwZTtcbiAgaWNvbj86IHN0cmluZztcbiAgY2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxpc3RGaWx0ZXIge1xuICB1bmlxdWVLZXk6IHN0cmluZztcbiAgZmlsdGVycz86IElTZXRGaWx0ZXJbXTtcbiAgc29ydHM/OiBJR3JpZFNvcnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUNvbXBvbmVudEZpZWxkIHtcbiAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gIGlkPzpzdHJpbmc7XG4gIGRhdGE/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuICBoYW5kbGVycz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBGdW5jdGlvbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTG9va3VwSW5wdXRWYWx1ZSB7XG4gIHRleHQ6IGFueTtcbiAgdmFsdWU6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTG9va3VwQ29udHJvbEZpZWxkIHtcbiAgY29tcG9uZW50OiBhbnk7XG4gIGRhdGE6IElMb29rdXBGaWVsZERhdGE7XG4gIGlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIElMb29rdXBGaWVsZERhdGEgPSB7XG4gIGhlYWRlcj86IHN0cmluZztcbiAgaGVpZ2h0Pzogc3RyaW5nO1xuICB3aWR0aD86IHN0cmluZztcbiAgZGF0YT86IHtba2V5OiBzdHJpbmddOiBhbnl9O1xuICBsYWJlbFByb3A/OiBzdHJpbmc7XG4gIHZhbHVlUHJvcD86IHN0cmluZztcbn0gXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZhbGlkYXRpb24ge1xuICB0eXBlOiBFVmFsaWRhdG9yO1xuICBleHByZXNzaW9uPzogYW55O1xufVxuXG5leHBvcnQgZW51bSBFU2VsZWN0RmlsZVR5cGUge1xuICBFWENFTCA9ICcueGxzeCcsXG4gIElNQUdFID0gJy5pbWFnZSwgLmpwZywgLnBuZywgLmpwZWcsIC5naWYnLFxuICBET0NVTUVOVCA9ICcuZG9jdW1lbnQnLFxuICBQREYgPSAnLnBkZicsXG4gIE1SVCA9ICcubXJ0Jyxcbn1cblxuZXhwb3J0IGVudW0gRVZhbGlkYXRvciB7XG4gIFJFUVVJUkVEID0gJ3JlcXVpcmVkJyxcbiAgTUlOTEVOR1RIID0gJ21pbmxlbmd0aCcsXG4gIE1BWExFTkdUSCA9ICdtYXhsZW5ndGgnLFxuICBQQVRURVJOID0gJ3BhdHRlcm4nLFxuICBNSU5JTVVNID0gJ21pbmltdW0nLFxuICBNQVhJTVVNID0gJ21heGltdW0nLFxuICBOVU1FUklDID0gJ251bWVyaWMnLFxuICBERUNJTUFMID0gJ2RlY2ltYWwnLFxuICBFTUFJTCA9ICdlbWFpbCcsXG4gIFBIT05FID0gJ3Bob25lJyxcbiAgTUFYT1BUSU9OUz0nbWF4T3B0aW9ucydcbn1cblxuZXhwb3J0IGVudW0gRUZvcm1Db250cm9sIHtcbiAgQlVUVE9OID0gJ2J1dHRvbicsXG4gIExBQkVMID0gJ2xhYmVsJyxcbiAgSU5QVVQgPSAnaW5wdXQnLFxuICBDSEVDS0JPWCA9ICdjaGVja2JveCcsXG4gIERST1BET1dOID0gJ2Ryb3Bkb3duJyxcbiAgQ0FMRU5EQVIgPSAnY2FsZW5kYXInLFxuICBOVU1FUklDID0gJ251bWJlcicsXG4gIE1VTFRJU0VMRUNUID0gJ211bHRpLXNlbGVjdCcsXG4gIFRFWFRBUkVBID0gJ3RleHQtYXJlYScsXG4gIEhZUEVSTElOSyA9ICdoeXBlcmxpbmsnLFxuICBMT09LVVBfSU5QVVQgPSAnbG9va3VwX2lucHV0JyxcbiAgTk9URV9GSUVMRCA9ICdub3RlX2ZpZWxkJyxcbiAgQ09NUE9ORU5UID0gJ2NvbXBvbmVudCcsXG4gIFBBU1NXT1JEID0gJ3Bhc3N3b3JkJyxcbiAgQVVUT0NPTVBMRVRFID0gJ0F1dG9Db21wbGV0ZScsXG4gIFNQQUNFUiA9ICdzcGFjZXInLFxuICBTRUNUSU9OX0hFQURFUiA9ICdzZWN0aW9uX2hlYWRlcicsXG4gIEZJTEVfVVBMT0FEID0gJ2ZpbGVfdXBsb2FkJyxcbiAgQ0FSRCA9ICdjYXJkJyxcbiAgRElTUExBWV9GSUxFID0gJ2Rpc3BsYXlfZmlsZScsXG4gIEFERF9CVVRUT04gPSAnYWRkX2J1dHRvbicsXG4gIEJSRUFLX0xJTkUgPSAnYnJlYWtfbGluZScsXG4gIFNXSVRDSCA9ICdzd2l0Y2gnLFxuICBSRVBPUlQgPSAncmVwb3J0JyxcbiAgU0VMRUNUQlVUVE9OPSdzZWxlY3RfYnV0dG9uJywgXG4gIEhPVkVSREFUQSA9ICdob3ZlckRhdGEnXG59XG5cbmV4cG9ydCBlbnVtIEVPcGVyYXRvciB7XG4gIEFORCA9ICdhbmQnLFxuICBPUiA9ICdvcicsXG59XG5cbmV4cG9ydCBlbnVtIEVNYXRjaE1vZGUge1xuICBFUVVBTFMgPSAnZXF1YWxzJyxcbiAgU1RBUlRTV0lUSCA9ICdzdGFydHNXaXRoJyxcbiAgQ09OVEFJTlMgPSdjb250YWlucycsXG4gIElOID0gJ2luJyxcbiAgRU5EU1dJVEggPSAnZW5kc1dpdGgnLFxuICBOT1RFUVVBTFMgPSAnbm90RXF1YWxzJyxcbiAgSVNOT1QgPSAnaXNOb3QnLFxuICBEQVRFSVNOT1QgPSAnZGF0ZUlzTm90JyxcbiAgTk9UQ09OVEFJTlMgPSdub3RDb250YWlucycsXG4gIExUID0gJ2x0JyxcbiAgQkVGT1JFID0gJ2JlZm9yZScsXG4gIERBVEVCRUZPUkUgPSAnZGF0ZUJlZm9yZScsXG4gIExURSA9ICdsdGUnLFxuICBHVCA9ICdndCcsXG4gIEFGVEVSID0gJ2FmdGVyJyxcbiAgREFURUFGVEVSID0gJ2RhdGVBZnRlcicsXG4gIEdURSA9ICdndGUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtYXQge1xuICB0eXBlOiBFRm9ybWF0VHlwZTtcbiAgZm9ybWF0UGFyYW1zPzpcbiAgICB8IElGb3JtYXRQYXJhbVxuICAgIHwgSURhdGVGb3JtYXRQYXJhbVxuICAgIHwgSU51bWJlckZvcm1hdFBhcmFtXG4gICAgfCBJYWxsb3dDYWxjdWxhdGVGb3JtYXRQYXJhbVxuICAgIHwgSUN1cnJlbmN5Rm9ybWF0UGFyYW07XG4gIGZvcm1hdHRlcj86ICh2YWx1ZTogYW55KSA9PiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1hdFBhcmFtIHtcbiAgbG9jYWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlRm9ybWF0UGFyYW0gZXh0ZW5kcyBJRm9ybWF0UGFyYW0ge1xuICBmb3JtYXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWFsbG93Q2FsY3VsYXRlRm9ybWF0UGFyYW0gZXh0ZW5kcyBJRm9ybWF0UGFyYW0ge1xuICBhbGxvd0NhbGN1bGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU51bWJlckZvcm1hdFBhcmFtIGV4dGVuZHMgSUZvcm1hdFBhcmFtIHtcbiAgZGlnaXRzSW5mbz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ3VycmVuY3lGb3JtYXRQYXJhbSBleHRlbmRzIElOdW1iZXJGb3JtYXRQYXJhbSB7XG4gIGN1cnJlbmN5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEVGb3JtYXRUeXBlIHtcbiAgU01BTExEQVRFID0gJ21tL2QveScsXG4gIFNIT1JUREFURSA9ICdtbS9kZC95eScsXG4gIE1FRElVTURBVEUgPSAnTSBkLCB5eScsXG4gIExPTkdEQVRFID0gJ01NIGQsIHl5JyxcbiAgTU9OVEhPTkxZID0gJ21tL3l5JyxcbiAgUEVSSU9EID0gJ21tL3knLFxuICBCT09MRUFOX1lOID0gJ0JPT0xFQU5fWU4nLFxuICBDVVNUT00gPSAnY3VzdG9tJyxcbiAgQ1VSUkVOQ1kgPSAnY3VycmVuY3knLFxuICBQRVJDRU5UID0gJ3BlcmNlbnQnLFxuICBERUNJTUFMID0gJ2RlY2ltYWwnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIeXBlcmxpbmsge1xuICB0YXJnZXQ/OiBFSHlwZXJsaW5rO1xuICBsaW5rPzogc3RyaW5nO1xuICBsaW5rSWQ/OiBzdHJpbmc7XG4gIHBhcmFtcz86IGFueTtcbiAgd2lkdGg/OnN0cmluZztcbiAgaGVpZ2h0PzpzdHJpbmc7XG4gIGNvbXBvbmVudD86IGFueTtcbiAgZGF0YT86IElMb29rdXBGaWVsZERhdGE7XG59XG5cbmV4cG9ydCBlbnVtIEVIeXBlcmxpbmsge1xuICBCTEFOSyA9ICdfYmxhbmsnLFxuICBTRUxGID0gJ19zZWxmJyxcbiAgUEFSRU5UID0gJ19wYXJlbnQnLFxuICBUT1AgPSAnX3RvcCcsXG4gIElGUkFNRSA9ICdfaWZyYW1lJyxcbiAgRElBTE9HID0gJ19kaWFsb2cnXG59XG5cbmV4cG9ydCBlbnVtIElSZXBvcnRUeXBlIHtcbiAgUERGID0gJ3BkZicsXG4gIEVYQ0VMID0gJ2V4Y2VsJyxcbiAgVEVYVCA9ICd0eHQnLFxuICBDU1YgPSAnY3N2J1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZEZvcm1GaWVsZCB7XG4gIGNvbnRyb2w/OiBFRm9ybUNvbnRyb2w7XG4gIGZpZWxkPzogc3RyaW5nO1xuICBjbGFzcz86IHN0cmluZztcbiAgZGlzcGxheUZpZWxkPzogc3RyaW5nO1xuICBzaG93T3B0aW9uPzogYm9vbGVhbjtcbiAgbGFiZWw/OiBzdHJpbmcgfCBJTGFiZWw7XG4gIHZhbHVlPzogc3RyaW5nIHwgYW55O1xuICBmb3JtYXQ/OiBJRm9ybWF0O1xuICBwZXJtaXNzaW9ucz86IElQZXJtaXNzaW9uW107XG4gIGlkPzogc3RyaW5nO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICB2YWxpZGF0aW9ucz86IElWYWxpZGF0aW9uW10gfCBhbnk7XG4gIGh5cGVybGluaz86IElIeXBlcmxpbms7XG4gIGxvb2t1cENvbnRyb2w/OiBJTG9va3VwQ29udHJvbEZpZWxkO1xuICB0YWJsZXM/OiBzdHJpbmdbXTtcbiAgbWludXRlc0ludGVydmFsPzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW4gfCBhbnk7XG4gIGRpc2FibGVkVGV4dD86IGJvb2xlYW47XG4gIGNvbHVtbj86IG51bWJlcjtcbiAgcm93PzogbnVtYmVyO1xuICBjb21wb25lbnRDb250cm9sPzogSUZvcm1Db21wb25lbnRGaWVsZDtcbiAgZGF0YT86IElTZWxlY3RJdGVtW107XG4gIG9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBvcHRpb25WYWx1ZT86IHN0cmluZztcbiAgdGltZU9ubHk/OiBib29sZWFuO1xuICBtb250aE9ubHk/OiBib29sZWFuO1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG4gIHNob3dUaW1lPzogYm9vbGVhbjsgLy8gdG8gc2hvdyB0aW1lIGFzIHdlbGwgaW4gY2FsZW5kYXIgZm9ybSBmaWVsZFxuICBzYXZlQXNTdHJpbmc/OiBib29sZWFuO1xuICBzaG93QWxsVmFsdWU/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKHZhbHVlPzogYW55KSA9PiBhbnk7XG4gIG9uUmV0dXJuPzogKHZhbHVlPzogYW55LCBzZWxlY3RlZFJvdz86YW55KSA9PiB2b2lkO1xuICBvbkZvY3VzT3V0PzogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBhbnkpID0+IGFueTtcbiAgaGVpZ2h0Pzogc3RyaW5nO1xuICBzaG93Qm90dG9tQm9yZGVyPzogYm9vbGVhbjtcbiAgYWxsb3dTZWFyY2g/OiBib29sZWFuO1xuICBpc1Bhc3N3b3JkPzpib29sZWFuO1xuICB0ZXh0VHlwZT86c3RyaW5nO1xuICBzZWxlY3RNdWx0aXBsZUZpbGVzPzogYm9vbGVhbjtcbiAgU2V0ZmlsZVR5cGVzPzogRVNlbGVjdEZpbGVUeXBlO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgY2FyZD86IElEeW5hbWljQ2FyZDtcbiAgZGlzcGxheVN0eWxlPzpib29sZWFuO1xuICBob3ZlckRhdGE/OiBJT3ZlcmxheVBhbmVsRGF0YTtcbiAgb3BlbkluTmV3VGFiPzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -18,40 +18,37 @@ export class ReportService {
|
|
|
18
18
|
this.formFields = [];
|
|
19
19
|
this.paramsCopy = [];
|
|
20
20
|
}
|
|
21
|
-
downloadReport(
|
|
21
|
+
downloadReport(uniqueKey = '', params, showDialog = false, reportType, reportHeader = '', reportFooter = '', form = {}) {
|
|
22
22
|
params?.forEach((p) => {
|
|
23
23
|
this.paramsCopy.push(Object.assign({}, p));
|
|
24
24
|
});
|
|
25
|
-
this.createDynamicFields(
|
|
25
|
+
this.createDynamicFields(uniqueKey, params, showDialog, reportType, reportHeader, reportFooter, form);
|
|
26
26
|
}
|
|
27
|
-
createDynamicFields(
|
|
27
|
+
createDynamicFields(uniqueKey, params, showDialog, reportType, reportHeader, reportFooter, form) {
|
|
28
28
|
let reportJson;
|
|
29
29
|
let reportName;
|
|
30
30
|
let reportUniqueKey = '';
|
|
31
|
-
const getReportByReport = '/ReportConfig/Report';
|
|
32
|
-
const getReportById = '/ReportConfig/ById';
|
|
33
|
-
const getReportByIdOrName = typeof (repId) === 'number' ? getReportById : getReportByReport;
|
|
34
31
|
this.requestService
|
|
35
|
-
.getOne(
|
|
32
|
+
.getOne('/ReportConfig/Report', uniqueKey)
|
|
36
33
|
.subscribe((data) => {
|
|
37
34
|
if (data) {
|
|
38
35
|
reportJson = JSON.parse(data?.report);
|
|
39
36
|
reportType = reportType ? reportType : reportJson?.reportType ? reportJson?.reportType : IReportType.PDF;
|
|
40
|
-
reportName = data.
|
|
37
|
+
reportName = data.uniqueKey ? data.uniqueKey : EGridExcel.EXPORT;
|
|
41
38
|
reportUniqueKey = data?.uniqueKey;
|
|
42
39
|
this.formFields = reportJson?.FormFields;
|
|
43
|
-
this.generateReport(
|
|
40
|
+
this.generateReport(uniqueKey, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
|
|
44
41
|
}
|
|
45
42
|
}, (error) => {
|
|
46
43
|
this.alertService.error(error);
|
|
47
44
|
});
|
|
48
45
|
}
|
|
49
|
-
downloadCustomReport(dataSource, reportType,
|
|
46
|
+
downloadCustomReport(dataSource, reportType, selectedUniqueKey = '', params, reportUniqueKey = '') {
|
|
50
47
|
dataSource.forEach((uniqueKey) => {
|
|
51
|
-
this.getReportData(uniqueKey.datasource, reportType,
|
|
48
|
+
this.getReportData(uniqueKey.datasource, reportType, selectedUniqueKey, params, reportUniqueKey);
|
|
52
49
|
});
|
|
53
50
|
}
|
|
54
|
-
generateReport(
|
|
51
|
+
generateReport(uniqueKey, params, showDialog = false, reportType, selectedUniqueKey, reportHeader, reportFooter, form = {}, reportJsonData, reportUniqueKey = '') {
|
|
55
52
|
this.getFormFieldValues(form, params);
|
|
56
53
|
if ((this.formFields.some((field) => !field.hidden) &&
|
|
57
54
|
showDialog === undefined) ||
|
|
@@ -62,7 +59,7 @@ export class ReportService {
|
|
|
62
59
|
header: 'Generate Report',
|
|
63
60
|
style: { background: '#fff' },
|
|
64
61
|
styleClass: 'report-dialog',
|
|
65
|
-
data: { getReport:
|
|
62
|
+
data: { getReport: uniqueKey, param: params, showDialog, reportJsonData, reportType, reportHeader, reportFooter, reportName: selectedUniqueKey, uniqueKey: reportUniqueKey },
|
|
66
63
|
});
|
|
67
64
|
const dialogRef = this.dialogService.dialogComponentRefMap.get(ref);
|
|
68
65
|
const component = dialogRef?.instance;
|
|
@@ -71,14 +68,14 @@ export class ReportService {
|
|
|
71
68
|
}
|
|
72
69
|
else {
|
|
73
70
|
if (reportType === IReportType.EXCEL || reportType === IReportType.TEXT || reportType === IReportType.CSV) {
|
|
74
|
-
this.downloadCustomReport(reportJsonData, reportType,
|
|
71
|
+
this.downloadCustomReport(reportJsonData, reportType, selectedUniqueKey, params, reportUniqueKey);
|
|
75
72
|
}
|
|
76
73
|
else {
|
|
77
|
-
this.downloadQuickReport(params,
|
|
74
|
+
this.downloadQuickReport(params, uniqueKey, reportHeader, reportFooter);
|
|
78
75
|
}
|
|
79
76
|
}
|
|
80
77
|
}
|
|
81
|
-
getReportData(uniqueKeyValue, reportType,
|
|
78
|
+
getReportData(uniqueKeyValue, reportType, uniqueKey, params, reportUniqueKey = '') {
|
|
82
79
|
let filters = [];
|
|
83
80
|
if (params && params.length > 0) {
|
|
84
81
|
params.forEach((param) => {
|
|
@@ -102,13 +99,13 @@ export class ReportService {
|
|
|
102
99
|
if (reportType === IReportType.EXCEL) {
|
|
103
100
|
const isGridExcelData = false;
|
|
104
101
|
const columns = rowsInfo.length > 0 ? Object?.keys(response?.tables[0]?.records[0]) : [];
|
|
105
|
-
this.gridService.exportExcel(rowsInfo, columns,
|
|
102
|
+
this.gridService.exportExcel(rowsInfo, columns, uniqueKey, isGridExcelData);
|
|
106
103
|
}
|
|
107
104
|
else if (reportType === IReportType.TEXT) {
|
|
108
|
-
this.saveAsTextFile(rowsInfo,
|
|
105
|
+
this.saveAsTextFile(rowsInfo, uniqueKey);
|
|
109
106
|
}
|
|
110
107
|
else {
|
|
111
|
-
this.saveAsCsvFile(rowsInfo,
|
|
108
|
+
this.saveAsCsvFile(rowsInfo, uniqueKey);
|
|
112
109
|
}
|
|
113
110
|
});
|
|
114
111
|
}
|
|
@@ -126,14 +123,14 @@ export class ReportService {
|
|
|
126
123
|
/**
|
|
127
124
|
* Export to text (sub-method)
|
|
128
125
|
*/
|
|
129
|
-
saveAsTextFile(rowsInfo,
|
|
130
|
-
this.gridService.saveAsTextFile(rowsInfo,
|
|
126
|
+
saveAsTextFile(rowsInfo, uniqueKey) {
|
|
127
|
+
this.gridService.saveAsTextFile(rowsInfo, uniqueKey);
|
|
131
128
|
}
|
|
132
129
|
/**
|
|
133
130
|
* Export to CSV (sub-method)
|
|
134
131
|
*/
|
|
135
|
-
saveAsCsvFile(rowsInfo,
|
|
136
|
-
this.gridService.saveDataAsCsv(rowsInfo,
|
|
132
|
+
saveAsCsvFile(rowsInfo, uniqueKey) {
|
|
133
|
+
this.gridService.saveDataAsCsv(rowsInfo, uniqueKey);
|
|
137
134
|
}
|
|
138
135
|
getFormFieldValues(form, params) {
|
|
139
136
|
if (this.paramsCopy?.length > 0) {
|
|
@@ -183,7 +180,7 @@ export class ReportService {
|
|
|
183
180
|
});
|
|
184
181
|
}
|
|
185
182
|
}
|
|
186
|
-
downloadQuickReport(params,
|
|
183
|
+
downloadQuickReport(params, uniqueKey, reportHeader, reportFooter) {
|
|
187
184
|
let filters = [];
|
|
188
185
|
let repIdObj;
|
|
189
186
|
if (params && params.length > 0) {
|
|
@@ -199,12 +196,12 @@ export class ReportService {
|
|
|
199
196
|
else {
|
|
200
197
|
filters = this.getFilters();
|
|
201
198
|
}
|
|
202
|
-
if (typeof (repId) === 'number') {
|
|
203
|
-
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
|
|
207
|
-
}
|
|
199
|
+
// if (typeof (repId) === 'number') {
|
|
200
|
+
// repIdObj = { Id: repId, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter}
|
|
201
|
+
// }
|
|
202
|
+
// else {
|
|
203
|
+
repIdObj = { uniqueKey: uniqueKey, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter };
|
|
204
|
+
//}
|
|
208
205
|
this.requestService
|
|
209
206
|
.download('/Report/Generate', repIdObj)
|
|
210
207
|
.subscribe((response) => {
|
|
@@ -248,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
|
248
245
|
providedIn: 'root'
|
|
249
246
|
}]
|
|
250
247
|
}], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.RequestService }, { type: i3.GridService }, { type: i4.AuthenticationService }, { type: i5.AlertService }]; } });
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvc2VydmljZXMvcmVwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUE0QixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUl0SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFNbEQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBbUIsYUFBNEIsRUFDckMsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLFlBQTBCO1FBSmpCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTnBDLGVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBUSxFQUFFLENBQUM7SUFLb0IsQ0FBQztJQUUxQyxjQUFjLENBQUMsUUFBYSxFQUFFLEVBQUUsTUFBVyxFQUFFLGFBQXNCLEtBQUssRUFBRSxVQUFtQixFQUFFLGVBQXVCLEVBQUUsRUFBRSxlQUF1QixFQUFFLEVBQUUsT0FBcUIsRUFBRTtRQUUxSyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFD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O0lBQ04sQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNsQixTQUFTLEVBQUUsT0FBTztvQkFDbEIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2lCQUNuQixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztpSUEzUFUsYUFBYTtxSUFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRm9ybUNvbnRyb2wsIElEeW5hbWljRm9ybSwgSUZvcm1GaWVsZCwgSVJlcG9ydFR5cGUgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0LUZpbHRlci9yZXBvcnQtZmlsdGVyL3JlcG9ydC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRUdyaWRFeGNlbCB9IGZyb20gJy4uL21vZGVscy9ncmlkLm1vZGVsJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlcnZpY2Uge1xuICBmb3JtRmllbGRzOiBJRm9ybUZpZWxkW10gPSBbXTtcbiAgcGFyYW1zQ29weTogYW55ID0gW107XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVxdWVzdFNlcnZpY2U6IFJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSwpIHsgfVxuXG4gIGRvd25sb2FkUmVwb3J0KHJlcElkOiBhbnkgPSAnJywgcGFyYW1zOiBhbnksIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZSwgcmVwb3J0VHlwZT86IHN0cmluZywgcmVwb3J0SGVhZGVyOiBzdHJpbmcgPSAnJywgcmVwb3J0Rm9vdGVyOiBzdHJpbmcgPSAnJywgZm9ybTogSUR5bmFtaWNGb3JtID0ge30pIFxuICB7XG4gICAgcGFyYW1zPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtc0NvcHkucHVzaChPYmplY3QuYXNzaWduKHt9LCBwKSk7XG4gICAgfSk7XG4gICAgdGhpcy5jcmVhdGVEeW5hbWljRmllbGRzKHJlcElkLCBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydFR5cGUsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCBmb3JtKTtcbiAgfVxuXG4gIGNyZWF0ZUR5bmFtaWNGaWVsZHMocmVwSWQsIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0pIHtcbiAgICBsZXQgcmVwb3J0SnNvbjtcbiAgICBsZXQgcmVwb3J0TmFtZTtcbiAgICBsZXQgcmVwb3J0VW5pcXVlS2V5OiBzdHJpbmcgPSAnJztcblxuICAgIGNvbnN0IGdldFJlcG9ydEJ5UmVwb3J0ID0gJy9SZXBvcnRDb25maWcvUmVwb3J0JztcbiAgICBjb25zdCBnZXRSZXBvcnRCeUlkID0gJy9SZXBvcnRDb25maWcvQnlJZCc7XG4gICAgY29uc3QgZ2V0UmVwb3J0QnlJZE9yTmFtZSA9IHR5cGVvZiAocmVwSWQpID09PSAnbnVtYmVyJyA/IGdldFJlcG9ydEJ5SWQgOiBnZXRSZXBvcnRCeVJlcG9ydDtcbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlXG4gICAgICAuZ2V0T25lPFJlc3BvbnNlLCBhbnk+KGdldFJlcG9ydEJ5SWRPck5hbWUsIHJlcElkKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgIHJlcG9ydEpzb24gPSBKU09OLnBhcnNlKGRhdGE/LnJlcG9ydCk7XG4gICAgICAgICAgICAgIHJlcG9ydFR5cGUgPSByZXBvcnRUeXBlID8gcmVwb3J0VHlwZSA6IHJlcG9ydEpzb24/LnJlcG9ydFR5cGUgPyByZXBvcnRKc29uPy5yZXBvcnRUeXBlIDogSVJlcG9ydFR5cGUuUERGO1xuICAgICAgICAgICAgICByZXBvcnROYW1lID0gZGF0YS5uYW1lID8gZGF0YS5uYW1lIDogRUdyaWRFeGNlbC5FWFBPUlQ7XG4gICAgICAgICAgICAgIHJlcG9ydFVuaXF1ZUtleSA9IGRhdGE/LnVuaXF1ZUtleTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtRmllbGRzID0gcmVwb3J0SnNvbj8uRm9ybUZpZWxkcztcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcG9ydChyZXBJZCwgcGFyYW1zLCBzaG93RGlhbG9nLCByZXBvcnRUeXBlLCByZXBvcnROYW1lLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgZm9ybSwgcmVwb3J0SnNvbj8uUmVwb3J0RGF0YVNvdXJjZXMsIHJlcG9ydFVuaXF1ZUtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBkb3dubG9hZEN1c3RvbVJlcG9ydChkYXRhU291cmNlOiBhbnksIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWU6IHN0cmluZyA9ICcnLCBwYXJhbXM6IGFueSwgcmVwb3J0VW5pcXVlS2V5OiBzdHJpbmcgPSAnJykge1xuICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgodW5pcXVlS2V5KSA9PiB7XG4gICAgICB0aGlzLmdldFJlcG9ydERhdGEodW5pcXVlS2V5LmRhdGFzb3VyY2UsIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWUsIHBhcmFtcywgcmVwb3J0VW5pcXVlS2V5KTtcbiAgICB9KVxuICB9XG5cbiAgZ2VuZXJhdGVSZXBvcnQocmVwSWQ6IGFueSwgcGFyYW1zOiBhbnksIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZSwgcmVwb3J0VHlwZTogSVJlcG9ydFR5cGUsIHJlcG9ydE5hbWU6IHN0cmluZywgcmVwb3J0SGVhZGVyOiBzdHJpbmcsIHJlcG9ydEZvb3Rlcjogc3RyaW5nLCBmb3JtOiBJRHluYW1pY0Zvcm0gPSB7fSwgcmVwb3J0SnNvbkRhdGEsIHJlcG9ydFVuaXF1ZUtleSA9ICcnKSB7XG4gICAgdGhpcy5nZXRGb3JtRmllbGRWYWx1ZXMoZm9ybSwgcGFyYW1zKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5mb3JtRmllbGRzLnNvbWUoKGZpZWxkKSA9PiAhZmllbGQuaGlkZGVuKSAmJlxuICAgICAgICBzaG93RGlhbG9nID09PSB1bmRlZmluZWQpIHx8XG4gICAgICBzaG93RGlhbG9nID09PSB0cnVlXG4gICAgKSB7XG4gICAgICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihSZXBvcnRGaWx0ZXJDb21wb25lbnQsIHtcbiAgICAgICAgd2lkdGg6ICc1MCUnLFxuICAgICAgICBoZWlnaHQ6ICc1MCUnLFxuICAgICAgICBoZWFkZXI6ICdHZW5lcmF0ZSBSZXBvcnQnLFxuICAgICAgICBzdHlsZTogeyBiYWNrZ3JvdW5kOiAnI2ZmZicgfSxcbiAgICAgICAgc3R5bGVDbGFzczogJ3JlcG9ydC1kaWFsb2cnLFxuICAgICAgICBkYXRhOiB7IGdldFJlcG9ydDogcmVwSWQsIHBhcmFtOiBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydEpzb25EYXRhLCByZXBvcnRUeXBlLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgcmVwb3J0TmFtZSwgdW5pcXVlS2V5OiByZXBvcnRVbmlxdWVLZXl9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmdldChyZWYpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gZGlhbG9nUmVmPy5pbnN0YW5jZSBhcyBEeW5hbWljRGlhbG9nQ29tcG9uZW50O1xuICAgICAgY29uc3QgYXJpYUxhYmVsbGVkQnkgPSBjb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkoKTtcbiAgICAgIGNvbXBvbmVudC5nZXRBcmlhTGFiZWxsZWRCeSA9ICgpID0+IGFyaWFMYWJlbGxlZEJ5O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuRVhDRUwgfHwgcmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuVEVYVCB8fCByZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5DU1YpIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZEN1c3RvbVJlcG9ydChyZXBvcnRKc29uRGF0YSwgcmVwb3J0VHlwZSwgcmVwb3J0TmFtZSwgcGFyYW1zLCByZXBvcnRVbmlxdWVLZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZFF1aWNrUmVwb3J0KHBhcmFtcywgcmVwSWQsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRSZXBvcnREYXRhKHVuaXF1ZUtleVZhbHVlOiBhbnksIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWUsIHBhcmFtczogYW55LCByZXBvcnRVbmlxdWVLZXk6IHN0cmluZyA9ICcnKSB7XG4gICAgbGV0IGZpbHRlcnM6IGFueVtdID0gW107XG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgcGFyYW1zLmZvckVhY2goKHBhcmFtKSA9PiB7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtKS5tYXAoKGtleSkgPT5cbiAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgZmllbGQ6IGtleSxcbiAgICAgICAgICAgIG1hdGNoTW9kZTogJ2VxdWFsJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiAnYW5kJyxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJhbVtrZXldLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICAgIH1cbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlLmdldDxhbnlbXSwgYW55PignL0RhdGEvTXVsdGlGZXRjaCcsIHtcbiAgICAgIHVuaXF1ZUtleTogdW5pcXVlS2V5VmFsdWUsXG4gICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVSZXBvcnQocmVwb3J0VW5pcXVlS2V5KVxuICAgICAgY29uc3Qgcm93c0luZm8gPSByZXNwb25zZT8udGFibGVzWzBdPy5yZWNvcmRzO1xuICAgICAgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMKSB7XG4gICAgICAgIGNvbnN0IGlzR3JpZEV4Y2VsRGF0YSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gcm93c0luZm8ubGVuZ3RoID4gMCA/IE9iamVjdD8ua2V5cyhyZXNwb25zZT8udGFibGVzWzBdPy5yZWNvcmRzWzBdKSA6IFtdO1xuICAgICAgICB0aGlzLmdyaWRTZXJ2aWNlLmV4cG9ydEV4Y2VsKHJvd3NJbmZvLCBjb2x1bW5zLCByZXBvcnROYW1lLCBpc0dyaWRFeGNlbERhdGEpO1xuICAgICAgfSBlbHNlIGlmIChyZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5URVhUKSB7XG4gICAgICAgIHRoaXMuc2F2ZUFzVGV4dEZpbGUocm93c0luZm8sIHJlcG9ydE5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zYXZlQXNDc3ZGaWxlKHJvd3NJbmZvLCByZXBvcnROYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vdXBkYXRlIHJlcG9ydCBsb2dnaW5nXG4gIHVwZGF0ZVJlcG9ydCh1bmlxdWVLZXlWYWx1ZSl7XG4gICAgbGV0IGN1cnJlbnRVc2VyOiBhbnkgPSB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRVc2VySW5mbygpO1xuICAgIHRoaXMucmVxdWVzdFNlcnZpY2UuZ2V0PGFueVtdLCBhbnk+KCcvUmVwb3J0Q29uZmlnL1JlcG9ydFVzZXJTZXR0aW5nJywge1xuICAgICAgaXNSdW5SZXBvcnQ6IHRydWUsXG4gICAgICBpc0Zhdm9yaXRlOiBmYWxzZSxcbiAgICAgIHJlcG9ydFVuaXF1ZUtleTogdW5pcXVlS2V5VmFsdWUsXG4gICAgICB1c2VySWQ6IGN1cnJlbnRVc2VyPy5pZCxcbiAgICAgIHJlcG9ydElkOiAwXG4gICAgfSkuc3Vic2NyaWJlKChyZXMpID0+IHt9LFxuICAgICAoeyBlcnJvciB9KSA9PiB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IHRvIHRleHQgKHN1Yi1tZXRob2QpXG4gICAqL1xuICBzYXZlQXNUZXh0RmlsZShyb3dzSW5mbzogYW55LCByZXBvcnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVBc1RleHRGaWxlKHJvd3NJbmZvLCByZXBvcnROYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgdG8gQ1NWIChzdWItbWV0aG9kKVxuICAgKi9cbiAgc2F2ZUFzQ3N2RmlsZShyb3dzSW5mbzogYW55LCByZXBvcnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVEYXRhQXNDc3Yocm93c0luZm8sIHJlcG9ydE5hbWUpO1xuICB9XG5cbiAgZ2V0Rm9ybUZpZWxkVmFsdWVzKGZvcm06IElEeW5hbWljRm9ybSwgcGFyYW1zOiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXJhbXNDb3B5Py5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnBhcmFtc0NvcHkuZm9yRWFjaCgocGFyYW1Db3B5KSA9PiB7XG4gICAgICAgIHZhciBrZXkgPSBPYmplY3Qua2V5cyhwYXJhbUNvcHkpWzBdO1xuICAgICAgICBpZiAocGFyYW1Db3B5W2tleV0gPT09ICcnIHx8ICFwYXJhbUNvcHlba2V5XSkge1xuICAgICAgICAgIGZvcm0/LmZvcm1TZWN0aW9ucz8uZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGtleS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09IGZpZWxkLmZpZWxkPy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLmZvckVhY2goKG9yaWdQYXJhbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgdmFyIG9yaWdLZXkgPSBPYmplY3Qua2V5cyhvcmlnUGFyYW0pWzBdO1xuICAgICAgICAgICAgICAgICAgaWYgKG9yaWdLZXkgPT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5jb250cm9sID09IEVGb3JtQ29udHJvbC5DQUxFTkRBUikge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlID8gZmllbGQudmFsdWUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIHBhcmFtQ29weVtrZXldLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ3snKSAmJlxuICAgICAgICAgIHBhcmFtQ29weVtrZXldLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ30nKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgbmV3VmFsdWUgPSBwYXJhbUNvcHlba2V5XS5yZXBsYWNlKCd7JywgJycpLnJlcGxhY2UoJ30nLCAnJyk7XG4gICAgICAgICAgZm9ybT8uZm9ybVNlY3Rpb25zPy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgbmV3VmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZC5maWVsZD8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZm9yRWFjaCgob3JpZ1BhcmFtKSA9PiB7XG4gICAgICAgICAgICAgICAgICB2YXIgb3JpZ0tleSA9IE9iamVjdC5rZXlzKG9yaWdQYXJhbSlbMF07XG4gICAgICAgICAgICAgICAgICBpZiAob3JpZ0tleSA9PSBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLmNvbnRyb2wgPT0gRUZvcm1Db250cm9sLkNBTEVOREFSKSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWUgPyBmaWVsZC52YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGRvd25sb2FkUXVpY2tSZXBvcnQocGFyYW1zLCByZXBJZCwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICBsZXQgcmVwSWRPYmo6IGFueTtcbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbXMuZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW0pLm1hcCgoa2V5KSA9PlxuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgbWF0Y2hNb2RlOiAnZXF1YWwnLFxuICAgICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgICAgdmFsdWU6IHBhcmFtW2tleV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gICAgfVxuICAgIFxuICAgIGlmICh0eXBlb2YgKHJlcElkKSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJlcElkT2JqID0geyBJZDogcmVwSWQsIGZpbHRlcnM6IGZpbHRlcnMsIFJlcG9ydEhlYWRlcjogcmVwb3J0SGVhZGVyLCBSZXBvcnRGb290ZXI6IHJlcG9ydEZvb3Rlcn1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXBJZE9iaiA9IHsgcmVwb3J0TmFtZTogcmVwSWQsIGZpbHRlcnM6IGZpbHRlcnMsIFJlcG9ydEhlYWRlcjogcmVwb3J0SGVhZGVyLCBSZXBvcnRGb290ZXI6IHJlcG9ydEZvb3RlciB9XG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZVxuICAgICAgLmRvd25sb2FkKCcvUmVwb3J0L0dlbmVyYXRlJywgcmVwSWRPYmopXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB2YXIgbmV3QmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZS5ib2R5XSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KTtcbiAgICAgICAgICBjb25zdCBkYXRhID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3QmxvYik7XG4gICAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICBhLmhyZWYgPSBkYXRhO1xuICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHJlc3BvbnNlPy5oZWFkZXJzPy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKTtcbiAgICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGhlYWRlclxuICAgICAgICAgICAgPy5zcGxpdCgnZmlsZW5hbWU9Jyk/LlsxXVxuICAgICAgICAgICAgPy5zcGxpdCgnOycpWzBdXG4gICAgICAgICAgICA/LnJlcGxhY2VBbGwoL1xcXCIvZywgJycpO1xuICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hcGlFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRGaWx0ZXJzKCkge1xuICAgIGxldCBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuICAgIHRoaXMuZm9ybUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgaWYgKGZpZWxkICYmIGZpZWxkLnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgZmllbGQ6IGZpZWxkLmZpZWxkLFxuICAgICAgICAgIG1hdGNoTW9kZTogJ2VxdWFsJyxcbiAgICAgICAgICBvcGVyYXRvcjogJ2FuZCcsXG4gICAgICAgICAgdmFsdWU6IGZpZWxkLnZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmlsdGVycztcbiAgfVxufVxuIl19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvc2VydmljZXMvcmVwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUE0QixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUl0SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFNbEQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBbUIsYUFBNEIsRUFDckMsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLFlBQTBCO1FBSmpCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTnBDLGVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBUSxFQUFFLENBQUM7SUFLb0IsQ0FBQztJQUUxQyxjQUFjLENBQUMsWUFBb0IsRUFBRSxFQUFFLE1BQVcsRUFBRSxhQUFzQixLQUFLLEVBQUUsVUFBbUIsRUFBRSxlQUF1QixFQUFFLEVBQUUsZUFBdUIsRUFBRSxFQUFFLE9BQXFCLEVBQUU7UUFFakwsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FB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T0FBTztvQkFDbEIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2lCQUNuQixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztpSUF4UFUsYUFBYTtxSUFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRm9ybUNvbnRyb2wsIElEeW5hbWljRm9ybSwgSUZvcm1GaWVsZCwgSVJlcG9ydFR5cGUgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0LUZpbHRlci9yZXBvcnQtZmlsdGVyL3JlcG9ydC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRUdyaWRFeGNlbCB9IGZyb20gJy4uL21vZGVscy9ncmlkLm1vZGVsJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlcnZpY2Uge1xuICBmb3JtRmllbGRzOiBJRm9ybUZpZWxkW10gPSBbXTtcbiAgcGFyYW1zQ29weTogYW55ID0gW107XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVxdWVzdFNlcnZpY2U6IFJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSwpIHsgfVxuXG4gIGRvd25sb2FkUmVwb3J0KHVuaXF1ZUtleTogc3RyaW5nID0gJycsIHBhcmFtczogYW55LCBzaG93RGlhbG9nOiBib29sZWFuID0gZmFsc2UsIHJlcG9ydFR5cGU/OiBzdHJpbmcsIHJlcG9ydEhlYWRlcjogc3RyaW5nID0gJycsIHJlcG9ydEZvb3Rlcjogc3RyaW5nID0gJycsIGZvcm06IElEeW5hbWljRm9ybSA9IHt9KSBcbiAge1xuICAgIHBhcmFtcz8uZm9yRWFjaCgocCkgPT4ge1xuICAgICAgdGhpcy5wYXJhbXNDb3B5LnB1c2goT2JqZWN0LmFzc2lnbih7fSwgcCkpO1xuICAgIH0pO1xuICAgIHRoaXMuY3JlYXRlRHluYW1pY0ZpZWxkcyh1bmlxdWVLZXksIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0pO1xuICB9XG5cbiAgY3JlYXRlRHluYW1pY0ZpZWxkcyh1bmlxdWVLZXk6IHN0cmluZywgcGFyYW1zLCBzaG93RGlhbG9nLCByZXBvcnRUeXBlLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgZm9ybSkge1xuICAgIGxldCByZXBvcnRKc29uO1xuICAgIGxldCByZXBvcnROYW1lO1xuICAgIGxldCByZXBvcnRVbmlxdWVLZXk6IHN0cmluZyA9ICcnO1xuXG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZVxuICAgICAgLmdldE9uZTxSZXNwb25zZSwgYW55PignL1JlcG9ydENvbmZpZy9SZXBvcnQnLCB1bmlxdWVLZXkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgcmVwb3J0SnNvbiA9IEpTT04ucGFyc2UoZGF0YT8ucmVwb3J0KTtcbiAgICAgICAgICAgICAgcmVwb3J0VHlwZSA9IHJlcG9ydFR5cGUgPyByZXBvcnRUeXBlIDogcmVwb3J0SnNvbj8ucmVwb3J0VHlwZSA/IHJlcG9ydEpzb24/LnJlcG9ydFR5cGUgOiBJUmVwb3J0VHlwZS5QREY7XG4gICAgICAgICAgICAgIHJlcG9ydE5hbWUgPSBkYXRhLnVuaXF1ZUtleSA/IGRhdGEudW5pcXVlS2V5IDogRUdyaWRFeGNlbC5FWFBPUlQ7XG4gICAgICAgICAgICAgIHJlcG9ydFVuaXF1ZUtleSA9IGRhdGE/LnVuaXF1ZUtleTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtRmllbGRzID0gcmVwb3J0SnNvbj8uRm9ybUZpZWxkcztcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcG9ydCh1bmlxdWVLZXksIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0TmFtZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0sIHJlcG9ydEpzb24/LlJlcG9ydERhdGFTb3VyY2VzLCByZXBvcnRVbmlxdWVLZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZG93bmxvYWRDdXN0b21SZXBvcnQoZGF0YVNvdXJjZTogYW55LCByZXBvcnRUeXBlLCBzZWxlY3RlZFVuaXF1ZUtleTogc3RyaW5nID0gJycsIHBhcmFtczogYW55LCByZXBvcnRVbmlxdWVLZXk6IHN0cmluZyA9ICcnKSB7XG4gICAgZGF0YVNvdXJjZS5mb3JFYWNoKCh1bmlxdWVLZXkpID0+IHtcbiAgICAgIHRoaXMuZ2V0UmVwb3J0RGF0YSh1bmlxdWVLZXkuZGF0YXNvdXJjZSwgcmVwb3J0VHlwZSwgc2VsZWN0ZWRVbmlxdWVLZXksIHBhcmFtcywgcmVwb3J0VW5pcXVlS2V5KTtcbiAgICB9KVxuICB9XG5cbiAgZ2VuZXJhdGVSZXBvcnQodW5pcXVlS2V5OiBzdHJpbmcsIHBhcmFtczogYW55LCBzaG93RGlhbG9nOiBib29sZWFuID0gZmFsc2UsIHJlcG9ydFR5cGU6IElSZXBvcnRUeXBlLCBzZWxlY3RlZFVuaXF1ZUtleTogc3RyaW5nLCByZXBvcnRIZWFkZXI6IHN0cmluZywgcmVwb3J0Rm9vdGVyOiBzdHJpbmcsIGZvcm06IElEeW5hbWljRm9ybSA9IHt9LCByZXBvcnRKc29uRGF0YSwgcmVwb3J0VW5pcXVlS2V5ID0gJycpIHtcbiAgICB0aGlzLmdldEZvcm1GaWVsZFZhbHVlcyhmb3JtLCBwYXJhbXMpO1xuICAgIGlmIChcbiAgICAgICh0aGlzLmZvcm1GaWVsZHMuc29tZSgoZmllbGQpID0+ICFmaWVsZC5oaWRkZW4pICYmXG4gICAgICAgIHNob3dEaWFsb2cgPT09IHVuZGVmaW5lZCkgfHxcbiAgICAgIHNob3dEaWFsb2cgPT09IHRydWVcbiAgICApIHtcbiAgICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydEZpbHRlckNvbXBvbmVudCwge1xuICAgICAgICB3aWR0aDogJzUwJScsXG4gICAgICAgIGhlaWdodDogJzUwJScsXG4gICAgICAgIGhlYWRlcjogJ0dlbmVyYXRlIFJlcG9ydCcsXG4gICAgICAgIHN0eWxlOiB7IGJhY2tncm91bmQ6ICcjZmZmJyB9LFxuICAgICAgICBzdHlsZUNsYXNzOiAncmVwb3J0LWRpYWxvZycsXG4gICAgICAgIGRhdGE6IHsgZ2V0UmVwb3J0OiB1bmlxdWVLZXksIHBhcmFtOiBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydEpzb25EYXRhLCByZXBvcnRUeXBlLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgcmVwb3J0TmFtZTogc2VsZWN0ZWRVbmlxdWVLZXksIHVuaXF1ZUtleTogcmVwb3J0VW5pcXVlS2V5fSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5nZXQocmVmKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGRpYWxvZ1JlZj8uaW5zdGFuY2UgYXMgRHluYW1pY0RpYWxvZ0NvbXBvbmVudDtcbiAgICAgIGNvbnN0IGFyaWFMYWJlbGxlZEJ5ID0gY29tcG9uZW50LmdldEFyaWFMYWJlbGxlZEJ5KCk7XG4gICAgICBjb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkgPSAoKSA9PiBhcmlhTGFiZWxsZWRCeTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMIHx8IHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLlRFWFQgfHwgcmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuQ1NWKSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRDdXN0b21SZXBvcnQocmVwb3J0SnNvbkRhdGEsIHJlcG9ydFR5cGUsIHNlbGVjdGVkVW5pcXVlS2V5LCBwYXJhbXMsIHJlcG9ydFVuaXF1ZUtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRvd25sb2FkUXVpY2tSZXBvcnQocGFyYW1zLCB1bmlxdWVLZXksIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRSZXBvcnREYXRhKHVuaXF1ZUtleVZhbHVlOiBhbnksIHJlcG9ydFR5cGUsIHVuaXF1ZUtleSwgcGFyYW1zOiBhbnksIHJlcG9ydFVuaXF1ZUtleTogc3RyaW5nID0gJycpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbXMuZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW0pLm1hcCgoa2V5KSA9PlxuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgbWF0Y2hNb2RlOiAnZXF1YWwnLFxuICAgICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgICAgdmFsdWU6IHBhcmFtW2tleV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gICAgfVxuICAgIHRoaXMucmVxdWVzdFNlcnZpY2UuZ2V0PGFueVtdLCBhbnk+KCcvRGF0YS9NdWx0aUZldGNoJywge1xuICAgICAgdW5pcXVlS2V5OiB1bmlxdWVLZXlWYWx1ZSxcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVJlcG9ydChyZXBvcnRVbmlxdWVLZXkpXG4gICAgICBjb25zdCByb3dzSW5mbyA9IHJlc3BvbnNlPy50YWJsZXNbMF0/LnJlY29yZHM7XG4gICAgICBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuRVhDRUwpIHtcbiAgICAgICAgY29uc3QgaXNHcmlkRXhjZWxEYXRhID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSByb3dzSW5mby5sZW5ndGggPiAwID8gT2JqZWN0Py5rZXlzKHJlc3BvbnNlPy50YWJsZXNbMF0/LnJlY29yZHNbMF0pIDogW107XG4gICAgICAgIHRoaXMuZ3JpZFNlcnZpY2UuZXhwb3J0RXhjZWwocm93c0luZm8sIGNvbHVtbnMsIHVuaXF1ZUtleSwgaXNHcmlkRXhjZWxEYXRhKTtcbiAgICAgIH0gZWxzZSBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuVEVYVCkge1xuICAgICAgICB0aGlzLnNhdmVBc1RleHRGaWxlKHJvd3NJbmZvLCB1bmlxdWVLZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zYXZlQXNDc3ZGaWxlKHJvd3NJbmZvLCB1bmlxdWVLZXkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy91cGRhdGUgcmVwb3J0IGxvZ2dpbmdcbiAgdXBkYXRlUmVwb3J0KHVuaXF1ZUtleVZhbHVlKXtcbiAgICBsZXQgY3VycmVudFVzZXI6IGFueSA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFVzZXJJbmZvKCk7XG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZS5nZXQ8YW55W10sIGFueT4oJy9SZXBvcnRDb25maWcvUmVwb3J0VXNlclNldHRpbmcnLCB7XG4gICAgICBpc1J1blJlcG9ydDogdHJ1ZSxcbiAgICAgIGlzRmF2b3JpdGU6IGZhbHNlLFxuICAgICAgcmVwb3J0VW5pcXVlS2V5OiB1bmlxdWVLZXlWYWx1ZSxcbiAgICAgIHVzZXJJZDogY3VycmVudFVzZXI/LmlkLFxuICAgICAgcmVwb3J0SWQ6IDBcbiAgICB9KS5zdWJzY3JpYmUoKHJlcykgPT4ge30sXG4gICAgICh7IGVycm9yIH0pID0+IHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgdG8gdGV4dCAoc3ViLW1ldGhvZClcbiAgICovXG4gIHNhdmVBc1RleHRGaWxlKHJvd3NJbmZvOiBhbnksIHVuaXF1ZUtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5zYXZlQXNUZXh0RmlsZShyb3dzSW5mbywgdW5pcXVlS2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgdG8gQ1NWIChzdWItbWV0aG9kKVxuICAgKi9cbiAgc2F2ZUFzQ3N2RmlsZShyb3dzSW5mbzogYW55LCB1bmlxdWVLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2F2ZURhdGFBc0Nzdihyb3dzSW5mbywgdW5pcXVlS2V5KTtcbiAgfVxuXG4gIGdldEZvcm1GaWVsZFZhbHVlcyhmb3JtOiBJRHluYW1pY0Zvcm0sIHBhcmFtczogYW55KSB7XG4gICAgaWYgKHRoaXMucGFyYW1zQ29weT8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5wYXJhbXNDb3B5LmZvckVhY2goKHBhcmFtQ29weSkgPT4ge1xuICAgICAgICB2YXIga2V5ID0gT2JqZWN0LmtleXMocGFyYW1Db3B5KVswXTtcbiAgICAgICAgaWYgKHBhcmFtQ29weVtrZXldID09PSAnJyB8fCAhcGFyYW1Db3B5W2tleV0pIHtcbiAgICAgICAgICBmb3JtPy5mb3JtU2VjdGlvbnM/LmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChrZXkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZC5maWVsZD8udG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcy5mb3JFYWNoKChvcmlnUGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgICAgIHZhciBvcmlnS2V5ID0gT2JqZWN0LmtleXMob3JpZ1BhcmFtKVswXTtcbiAgICAgICAgICAgICAgICAgIGlmIChvcmlnS2V5ID09IGtleSkge1xuICAgICAgICAgICAgICAgICAgICAvL29yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQuY29udHJvbCA9PSBFRm9ybUNvbnRyb2wuQ0FMRU5EQVIpIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZSA/IGZpZWxkLnZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBwYXJhbUNvcHlba2V5XS50b1N0cmluZygpLmluY2x1ZGVzKCd7JykgJiZcbiAgICAgICAgICBwYXJhbUNvcHlba2V5XS50b1N0cmluZygpLmluY2x1ZGVzKCd9JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIG5ld1ZhbHVlID0gcGFyYW1Db3B5W2tleV0ucmVwbGFjZSgneycsICcnKS5yZXBsYWNlKCd9JywgJycpO1xuICAgICAgICAgIGZvcm0/LmZvcm1TZWN0aW9ucz8uZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gZmllbGQuZmllbGQ/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLmZvckVhY2goKG9yaWdQYXJhbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgdmFyIG9yaWdLZXkgPSBPYmplY3Qua2V5cyhvcmlnUGFyYW0pWzBdO1xuICAgICAgICAgICAgICAgICAgaWYgKG9yaWdLZXkgPT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5jb250cm9sID09IEVGb3JtQ29udHJvbC5DQUxFTkRBUikge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlID8gZmllbGQudmFsdWUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkb3dubG9hZFF1aWNrUmVwb3J0KHBhcmFtcywgdW5pcXVlS2V5LCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3Rlcikge1xuICAgIGxldCBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuICAgIGxldCByZXBJZE9iajogYW55O1xuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHBhcmFtcy5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJhbSkubWFwKChrZXkpID0+XG4gICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiBrZXksXG4gICAgICAgICAgICBtYXRjaE1vZGU6ICdlcXVhbCcsXG4gICAgICAgICAgICBvcGVyYXRvcjogJ2FuZCcsXG4gICAgICAgICAgICB2YWx1ZTogcGFyYW1ba2V5XSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcbiAgICB9XG4gICAgXG4gICAgLy8gaWYgKHR5cGVvZiAocmVwSWQpID09PSAnbnVtYmVyJykge1xuICAgIC8vICAgcmVwSWRPYmogPSB7IElkOiByZXBJZCwgZmlsdGVyczogZmlsdGVycywgUmVwb3J0SGVhZGVyOiByZXBvcnRIZWFkZXIsIFJlcG9ydEZvb3RlcjogcmVwb3J0Rm9vdGVyfVxuICAgIC8vIH1cbiAgICAvLyBlbHNlIHtcbiAgICAgIHJlcElkT2JqID0geyB1bmlxdWVLZXk6IHVuaXF1ZUtleSwgZmlsdGVyczogZmlsdGVycywgUmVwb3J0SGVhZGVyOiByZXBvcnRIZWFkZXIsIFJlcG9ydEZvb3RlcjogcmVwb3J0Rm9vdGVyIH1cbiAgICAvL31cblxuICAgIHRoaXMucmVxdWVzdFNlcnZpY2VcbiAgICAgIC5kb3dubG9hZCgnL1JlcG9ydC9HZW5lcmF0ZScsIHJlcElkT2JqKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdmFyIG5ld0Jsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2UuYm9keV0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSk7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ld0Jsb2IpO1xuICAgICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgICAgYS5ocmVmID0gZGF0YTtcbiAgICAgICAgICBjb25zdCBoZWFkZXIgPSByZXNwb25zZT8uaGVhZGVycz8uZ2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJyk7XG4gICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBoZWFkZXJcbiAgICAgICAgICAgID8uc3BsaXQoJ2ZpbGVuYW1lPScpPy5bMV1cbiAgICAgICAgICAgID8uc3BsaXQoJzsnKVswXVxuICAgICAgICAgICAgPy5yZXBsYWNlQWxsKC9cXFwiL2csICcnKTtcbiAgICAgICAgICBhLmRvd25sb2FkID0gZmlsZU5hbWU7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYXBpRXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0RmlsdGVycygpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICB0aGlzLmZvcm1GaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZCAmJiBmaWVsZC52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBmaWVsZC5maWVsZCxcbiAgICAgICAgICBtYXRjaE1vZGU6ICdlcXVhbCcsXG4gICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgIHZhbHVlOiBmaWVsZC52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5871,40 +5871,37 @@ class ReportService {
|
|
|
5871
5871
|
this.formFields = [];
|
|
5872
5872
|
this.paramsCopy = [];
|
|
5873
5873
|
}
|
|
5874
|
-
downloadReport(
|
|
5874
|
+
downloadReport(uniqueKey = '', params, showDialog = false, reportType, reportHeader = '', reportFooter = '', form = {}) {
|
|
5875
5875
|
params?.forEach((p) => {
|
|
5876
5876
|
this.paramsCopy.push(Object.assign({}, p));
|
|
5877
5877
|
});
|
|
5878
|
-
this.createDynamicFields(
|
|
5878
|
+
this.createDynamicFields(uniqueKey, params, showDialog, reportType, reportHeader, reportFooter, form);
|
|
5879
5879
|
}
|
|
5880
|
-
createDynamicFields(
|
|
5880
|
+
createDynamicFields(uniqueKey, params, showDialog, reportType, reportHeader, reportFooter, form) {
|
|
5881
5881
|
let reportJson;
|
|
5882
5882
|
let reportName;
|
|
5883
5883
|
let reportUniqueKey = '';
|
|
5884
|
-
const getReportByReport = '/ReportConfig/Report';
|
|
5885
|
-
const getReportById = '/ReportConfig/ById';
|
|
5886
|
-
const getReportByIdOrName = typeof (repId) === 'number' ? getReportById : getReportByReport;
|
|
5887
5884
|
this.requestService
|
|
5888
|
-
.getOne(
|
|
5885
|
+
.getOne('/ReportConfig/Report', uniqueKey)
|
|
5889
5886
|
.subscribe((data) => {
|
|
5890
5887
|
if (data) {
|
|
5891
5888
|
reportJson = JSON.parse(data?.report);
|
|
5892
5889
|
reportType = reportType ? reportType : reportJson?.reportType ? reportJson?.reportType : IReportType.PDF;
|
|
5893
|
-
reportName = data.
|
|
5890
|
+
reportName = data.uniqueKey ? data.uniqueKey : EGridExcel.EXPORT;
|
|
5894
5891
|
reportUniqueKey = data?.uniqueKey;
|
|
5895
5892
|
this.formFields = reportJson?.FormFields;
|
|
5896
|
-
this.generateReport(
|
|
5893
|
+
this.generateReport(uniqueKey, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
|
|
5897
5894
|
}
|
|
5898
5895
|
}, (error) => {
|
|
5899
5896
|
this.alertService.error(error);
|
|
5900
5897
|
});
|
|
5901
5898
|
}
|
|
5902
|
-
downloadCustomReport(dataSource, reportType,
|
|
5899
|
+
downloadCustomReport(dataSource, reportType, selectedUniqueKey = '', params, reportUniqueKey = '') {
|
|
5903
5900
|
dataSource.forEach((uniqueKey) => {
|
|
5904
|
-
this.getReportData(uniqueKey.datasource, reportType,
|
|
5901
|
+
this.getReportData(uniqueKey.datasource, reportType, selectedUniqueKey, params, reportUniqueKey);
|
|
5905
5902
|
});
|
|
5906
5903
|
}
|
|
5907
|
-
generateReport(
|
|
5904
|
+
generateReport(uniqueKey, params, showDialog = false, reportType, selectedUniqueKey, reportHeader, reportFooter, form = {}, reportJsonData, reportUniqueKey = '') {
|
|
5908
5905
|
this.getFormFieldValues(form, params);
|
|
5909
5906
|
if ((this.formFields.some((field) => !field.hidden) &&
|
|
5910
5907
|
showDialog === undefined) ||
|
|
@@ -5915,7 +5912,7 @@ class ReportService {
|
|
|
5915
5912
|
header: 'Generate Report',
|
|
5916
5913
|
style: { background: '#fff' },
|
|
5917
5914
|
styleClass: 'report-dialog',
|
|
5918
|
-
data: { getReport:
|
|
5915
|
+
data: { getReport: uniqueKey, param: params, showDialog, reportJsonData, reportType, reportHeader, reportFooter, reportName: selectedUniqueKey, uniqueKey: reportUniqueKey },
|
|
5919
5916
|
});
|
|
5920
5917
|
const dialogRef = this.dialogService.dialogComponentRefMap.get(ref);
|
|
5921
5918
|
const component = dialogRef?.instance;
|
|
@@ -5924,14 +5921,14 @@ class ReportService {
|
|
|
5924
5921
|
}
|
|
5925
5922
|
else {
|
|
5926
5923
|
if (reportType === IReportType.EXCEL || reportType === IReportType.TEXT || reportType === IReportType.CSV) {
|
|
5927
|
-
this.downloadCustomReport(reportJsonData, reportType,
|
|
5924
|
+
this.downloadCustomReport(reportJsonData, reportType, selectedUniqueKey, params, reportUniqueKey);
|
|
5928
5925
|
}
|
|
5929
5926
|
else {
|
|
5930
|
-
this.downloadQuickReport(params,
|
|
5927
|
+
this.downloadQuickReport(params, uniqueKey, reportHeader, reportFooter);
|
|
5931
5928
|
}
|
|
5932
5929
|
}
|
|
5933
5930
|
}
|
|
5934
|
-
getReportData(uniqueKeyValue, reportType,
|
|
5931
|
+
getReportData(uniqueKeyValue, reportType, uniqueKey, params, reportUniqueKey = '') {
|
|
5935
5932
|
let filters = [];
|
|
5936
5933
|
if (params && params.length > 0) {
|
|
5937
5934
|
params.forEach((param) => {
|
|
@@ -5955,13 +5952,13 @@ class ReportService {
|
|
|
5955
5952
|
if (reportType === IReportType.EXCEL) {
|
|
5956
5953
|
const isGridExcelData = false;
|
|
5957
5954
|
const columns = rowsInfo.length > 0 ? Object?.keys(response?.tables[0]?.records[0]) : [];
|
|
5958
|
-
this.gridService.exportExcel(rowsInfo, columns,
|
|
5955
|
+
this.gridService.exportExcel(rowsInfo, columns, uniqueKey, isGridExcelData);
|
|
5959
5956
|
}
|
|
5960
5957
|
else if (reportType === IReportType.TEXT) {
|
|
5961
|
-
this.saveAsTextFile(rowsInfo,
|
|
5958
|
+
this.saveAsTextFile(rowsInfo, uniqueKey);
|
|
5962
5959
|
}
|
|
5963
5960
|
else {
|
|
5964
|
-
this.saveAsCsvFile(rowsInfo,
|
|
5961
|
+
this.saveAsCsvFile(rowsInfo, uniqueKey);
|
|
5965
5962
|
}
|
|
5966
5963
|
});
|
|
5967
5964
|
}
|
|
@@ -5979,14 +5976,14 @@ class ReportService {
|
|
|
5979
5976
|
/**
|
|
5980
5977
|
* Export to text (sub-method)
|
|
5981
5978
|
*/
|
|
5982
|
-
saveAsTextFile(rowsInfo,
|
|
5983
|
-
this.gridService.saveAsTextFile(rowsInfo,
|
|
5979
|
+
saveAsTextFile(rowsInfo, uniqueKey) {
|
|
5980
|
+
this.gridService.saveAsTextFile(rowsInfo, uniqueKey);
|
|
5984
5981
|
}
|
|
5985
5982
|
/**
|
|
5986
5983
|
* Export to CSV (sub-method)
|
|
5987
5984
|
*/
|
|
5988
|
-
saveAsCsvFile(rowsInfo,
|
|
5989
|
-
this.gridService.saveDataAsCsv(rowsInfo,
|
|
5985
|
+
saveAsCsvFile(rowsInfo, uniqueKey) {
|
|
5986
|
+
this.gridService.saveDataAsCsv(rowsInfo, uniqueKey);
|
|
5990
5987
|
}
|
|
5991
5988
|
getFormFieldValues(form, params) {
|
|
5992
5989
|
if (this.paramsCopy?.length > 0) {
|
|
@@ -6036,7 +6033,7 @@ class ReportService {
|
|
|
6036
6033
|
});
|
|
6037
6034
|
}
|
|
6038
6035
|
}
|
|
6039
|
-
downloadQuickReport(params,
|
|
6036
|
+
downloadQuickReport(params, uniqueKey, reportHeader, reportFooter) {
|
|
6040
6037
|
let filters = [];
|
|
6041
6038
|
let repIdObj;
|
|
6042
6039
|
if (params && params.length > 0) {
|
|
@@ -6052,12 +6049,12 @@ class ReportService {
|
|
|
6052
6049
|
else {
|
|
6053
6050
|
filters = this.getFilters();
|
|
6054
6051
|
}
|
|
6055
|
-
if (typeof (repId) === 'number') {
|
|
6056
|
-
|
|
6057
|
-
}
|
|
6058
|
-
else {
|
|
6059
|
-
|
|
6060
|
-
}
|
|
6052
|
+
// if (typeof (repId) === 'number') {
|
|
6053
|
+
// repIdObj = { Id: repId, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter}
|
|
6054
|
+
// }
|
|
6055
|
+
// else {
|
|
6056
|
+
repIdObj = { uniqueKey: uniqueKey, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter };
|
|
6057
|
+
//}
|
|
6061
6058
|
this.requestService
|
|
6062
6059
|
.download('/Report/Generate', repIdObj)
|
|
6063
6060
|
.subscribe((response) => {
|
|
@@ -6109,7 +6106,8 @@ class GenerateReportBtnComponent {
|
|
|
6109
6106
|
ngOnInit() {
|
|
6110
6107
|
}
|
|
6111
6108
|
reportClickEvent() {
|
|
6112
|
-
this.repInfo = this.repInfo?.
|
|
6109
|
+
this.repInfo = this.repInfo?.uniqueKey ? this.repInfo.uniqueKey : this.repInfo;
|
|
6110
|
+
console.log('this.repInfo: ', this.repInfo);
|
|
6113
6111
|
this.reportService.downloadReport(this.repInfo, this.params, this.showDialog, this.reportType, this.reportHeader, this.reportFooter, this.form);
|
|
6114
6112
|
}
|
|
6115
6113
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: GenerateReportBtnComponent, deps: [{ token: ReportService }], target: i0.ɵɵFactoryTarget.Component }); }
|