verben-ng-ui 0.1.9 → 0.2.1
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/data-export/data-export.component.mjs +2 -2
- package/esm2022/lib/components/data-export/data-export.service.mjs +7 -7
- package/esm2022/lib/components/data-table/data-table.component.mjs +32 -19
- package/esm2022/lib/components/data-view/data-view-click-outside.directive.mjs +1 -1
- package/esm2022/lib/components/data-view/data-view.component.mjs +4 -5
- package/esm2022/lib/components/data-view/data-view.module.mjs +5 -4
- package/esm2022/lib/components/notification/notification.component.mjs +1 -1
- package/esm2022/lib/components/visible-column/visible-column.component.mjs +7 -5
- package/esm2022/lib/verbena-button/verbena-button.component.mjs +12 -3
- package/fesm2022/verben-ng-ui.mjs +60 -37
- package/fesm2022/verben-ng-ui.mjs.map +1 -1
- package/lib/components/data-table/data-table.component.d.ts +5 -3
- package/lib/components/data-view/data-view.module.d.ts +2 -1
- package/lib/components/visible-column/visible-column.component.d.ts +2 -1
- package/lib/verbena-button/verbena-button.component.d.ts +4 -1
- package/package.json +1 -1
|
@@ -64,7 +64,7 @@ export class DataExportComponent {
|
|
|
64
64
|
}
|
|
65
65
|
initializeGroupItems() {
|
|
66
66
|
if (this.data && this.data.length > 0) {
|
|
67
|
-
const properties = Object.keys(this.data[0]);
|
|
67
|
+
const properties = Object.keys(this.data[0]).filter((k) => k !== 'id');
|
|
68
68
|
this.exportService.setBaseProperties(properties);
|
|
69
69
|
this.numericProperties = properties.filter((prop) => typeof this.data[0][prop] === 'number');
|
|
70
70
|
this.stringProperties = properties.filter((prop) => typeof this.data[0][prop] === 'string');
|
|
@@ -201,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
201
201
|
}], exportDataEvent: [{
|
|
202
202
|
type: Output
|
|
203
203
|
}] } });
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leHBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWV4cG9ydC9kYXRhLWV4cG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtZXhwb3J0L2RhdGEtZXhwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsT0FBTyxFQUlMLFNBQVMsR0FDVixNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7QUFRN0IsTUFBTSxPQUFPLG1CQUFtQjtJQWlDcEI7SUFDQTtJQWpDRCxJQUFJLENBQVM7SUFDWixlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFFdEUsUUFBUSxHQUE4QyxFQUFFLENBQUM7SUFDekQsVUFBVSxHQUEyQyxFQUFFLENBQUM7SUFDeEQsWUFBWSxDQUFZO0lBQ3hCLFlBQVksR0FBYztRQUN4QixFQUFFLEVBQUUsRUFBRTtRQUNOLElBQUksRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUc7UUFDdkIsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0lBQ0YsaUJBQWlCLEdBQWEsRUFBRSxDQUFDO0lBQ2pDLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUNoQyxrQkFBa0IsR0FBWSxLQUFLLENBQUM7SUFDcEMsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxhQUFhLEdBQVksS0FBSyxD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QW1CO2tCQU4vQixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNO2dIQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhRXhwb3J0U2VydmljZSB9IGZyb20gJy4vZGF0YS1leHBvcnQuc2VydmljZSc7XG5pbXBvcnQge1xuICBFeHBvcnRJdGVtLFxuICBFeHBvcnRQcm9maWxlLFxuICBPcGVyYXRpb24sXG4gIE9wZXJhdG9ycyxcbn0gZnJvbSAnLi9kYXRhLWV4cG9ydC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kYXRhLWV4cG9ydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWV4cG9ydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRhLWV4cG9ydC5jb21wb25lbnQuY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFFeHBvcnRDb21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhITogYW55W107XG4gIEBPdXRwdXQoKSBleHBvcnREYXRhRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZDxzdHJpbmcsIGFueT5bXT4oKTtcblxuICBwcm9maWxlczogKEV4cG9ydFByb2ZpbGUgJiB7IHNlbGVjdGVkOiBib29sZWFuIH0pW10gPSBbXTtcbiAgZ3JvdXBJdGVtczogKEV4cG9ydEl0ZW0gJiB7IHNlbGVjdGVkOiBib29sZWFuIH0pW10gPSBbXTtcbiAgbmV3R3JvdXBGb3JtOiBGb3JtR3JvdXA7XG4gIG5ld09wZXJhdGlvbjogT3BlcmF0aW9uID0ge1xuICAgIGlkOiAnJyxcbiAgICBuYW1lOiAnJyxcbiAgICBmaWVsZDE6ICcnLFxuICAgIG9wZXJhdG9yOiBPcGVyYXRvcnMuYWRkLFxuICAgIGZpZWxkMjogJycsXG4gIH07XG4gIG51bWVyaWNQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdO1xuICBzdHJpbmdQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdO1xuICBpc0VkaXRpbmdPcGVyYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd0FsbFByb2ZpbGVzOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dBbGxHcm91cHM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBvcGVyYXRvcnNOdW1lcmljOiBPcGVyYXRvcnNbXSA9IFtcbiAgICBPcGVyYXRvcnMuYWRkLFxuICAgIE9wZXJhdG9ycy5zdWJ0cmFjdCxcbiAgICBPcGVyYXRvcnMubXVsdGlwbHksXG4gICAgT3BlcmF0b3JzLmRpdmlkZSxcbiAgXTtcbiAgb3BlcmF0b3JzU3RyaW5nOiBPcGVyYXRvcnNbXSA9IFtcbiAgICBPcGVyYXRvcnMuY29uY2F0ZW5hdGVTcGFjZSxcbiAgICBPcGVyYXRvcnMuY29uY2F0ZW5hdGVDb21tYVNwYWNlLFxuICAgIE9wZXJhdG9ycy5jb25jYXRlbmF0ZUNvbW1hLFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXhwb3J0U2VydmljZTogRGF0YUV4cG9ydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgdGhpcy5uZXdHcm91cEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVHcm91cEl0ZW1zKCk7XG4gICAgdGhpcy51cGRhdGVQcm9maWxlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplR3JvdXBJdGVtcygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2aXNpYmxlUHJvZmlsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0FsbFByb2ZpbGVzID8gdGhpcy5wcm9maWxlcyA6IHRoaXMucHJvZmlsZXMuc2xpY2UoMCwgMyk7XG4gIH1cblxuICBnZXQgdmlzaWJsZUdyb3VwcygpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93QWxsR3JvdXBzID8gdGhpcy5ncm91cEl0ZW1zIDogdGhpcy5ncm91cEl0ZW1zLnNsaWNlKDAsIDMpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUdyb3VwSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHRoaXMuZGF0YVswXSk7XG4gICAgICB0aGlzLmV4cG9ydFNlcnZpY2Uuc2V0QmFzZVByb3BlcnRpZXMocHJvcGVydGllcyk7XG4gICAgICB0aGlzLm51bWVyaWNQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAgIChwcm9wKSA9PiB0eXBlb2YgdGhpcy5kYXRhWzBdW3Byb3BdID09PSAnbnVtYmVyJ1xuICAgICAgKTtcbiAgICAgIHRoaXMuc3RyaW5nUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgICAocHJvcCkgPT4gdHlwZW9mIHRoaXMuZGF0YVswXVtwcm9wXSA9PT0gJ3N0cmluZydcbiAgICAgICk7XG4gICAgICB0aGlzLnVwZGF0ZUdyb3VwSXRlbXMoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQcm9maWxlcygpIHtcbiAgICB0aGlzLnByb2ZpbGVzID0gdGhpcy5leHBvcnRTZXJ2aWNlLmdldFByb2ZpbGVzKCkubWFwKChwcm9maWxlKSA9PiAoe1xuICAgICAgLi4ucHJvZmlsZSxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICB9KSk7XG4gIH1cblxuICB1cGRhdGVHcm91cEl0ZW1zKCkge1xuICAgIHRoaXMuZ3JvdXBJdGVtcyA9IHRoaXMuZXhwb3J0U2VydmljZS5nZXRBbGxJdGVtcygpLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgfSkpO1xuICB9XG5cbiAgYWRkR3JvdXAoKSB7XG4gICAgY29uc29sZS5sb2coJ2luJyk7XG4gICAgaWYgKHRoaXMubmV3R3JvdXBGb3JtLnZhbGlkKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5ncm91cEl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZCk7XG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG5ld1Byb2ZpbGU6IEV4cG9ydFByb2ZpbGUgPSB7XG4gICAgICAgICAgaWQ6IERhdGUubm93KCkudG9TdHJpbmcoKSxcbiAgICAgICAgICBuYW1lOiB0aGlzLm5ld0dyb3VwRm9ybS5nZXQoJ25hbWUnKT8udmFsdWUsXG4gICAgICAgICAgaXRlbXM6IHNlbGVjdGVkSXRlbXMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZXhwb3J0U2VydmljZS5hZGRQcm9maWxlKG5ld1Byb2ZpbGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2ZpbGVzKCk7XG4gICAgICAgIHRoaXMuZ3JvdXBJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMubmV3R3JvdXBGb3JtLnJlc2V0KCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdTRUxFQ1RFRCcpO1xuICAgICAgfVxuICAgICAgY29uc29sZS5sb2coJ1ZBTElEJyk7XG4gICAgfVxuICB9XG5cbiAgZWRpdFByb2ZpbGUocHJvZmlsZTogRXhwb3J0UHJvZmlsZSAmIHsgc2VsZWN0ZWQ6IGJvb2xlYW4gfSkge1xuICAgIHRoaXMuZ3JvdXBJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnNlbGVjdGVkID0gcHJvZmlsZS5pdGVtcy5zb21lKFxuICAgICAgICAocHJvZmlsZUl0ZW0pID0+IHByb2ZpbGVJdGVtLmlkID09PSBpdGVtLmlkXG4gICAgICApO1xuICAgIH0pO1xuICAgIHRoaXMucmVtb3ZlUHJvZmlsZShwcm9maWxlKTtcbiAgfVxuXG4gIHJlbW92ZVByb2ZpbGUocHJvZmlsZTogRXhwb3J0UHJvZmlsZSAmIHsgc2VsZWN0ZWQ6IGJvb2xlYW4gfSkge1xuICAgIHRoaXMuZXhwb3J0U2VydmljZS5yZW1vdmVQcm9maWxlKHByb2ZpbGUuaWQpO1xuICAgIHRoaXMudXBkYXRlUHJvZmlsZXMoKTtcbiAgfVxuXG4gIGFkZE9yVXBkYXRlT3BlcmF0aW9uKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMubmV3T3BlcmF0aW9uLm5hbWUgJiZcbiAgICAgIHRoaXMubmV3T3BlcmF0aW9uLmZpZWxkMSAmJlxuICAgICAgdGhpcy5uZXdPcGVyYXRpb24uZmllbGQyXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5pc0VkaXRpbmdPcGVyYXRpb24pIHtcbiAgICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLnVwZGF0ZU9wZXJhdGlvbihcbiAgICAgICAgICB0aGlzLm5ld09wZXJhdGlvbi5pZCxcbiAgICAgICAgICB0aGlzLm5ld09wZXJhdGlvblxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uOiBPcGVyYXRpb24gPSB7XG4gICAgICAgICAgLi4udGhpcy5uZXdPcGVyYXRpb24sXG4gICAgICAgICAgaWQ6IERhdGUubm93KCkudG9TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLmFkZE9wZXJhdGlvbihvcGVyYXRpb24pO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVHcm91cEl0ZW1zKCk7XG4gICAgICB0aGlzLnJlc2V0T3BlcmF0aW9uRm9ybSgpO1xuICAgIH1cbiAgfVxuXG4gIGVkaXRPcGVyYXRpb24ob3BlcmF0aW9uOiBFeHBvcnRJdGVtICYgeyBzZWxlY3RlZDogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5uZXdPcGVyYXRpb24gPSB7IC4uLihvcGVyYXRpb24gYXMgdW5rbm93biBhcyBPcGVyYXRpb24pIH07XG4gICAgdGhpcy5pc0VkaXRpbmdPcGVyYXRpb24gPSB0cnVlO1xuICB9XG5cbiAgcmVtb3ZlT3BlcmF0aW9uKG9wZXJhdGlvbjogRXhwb3J0SXRlbSAmIHsgc2VsZWN0ZWQ6IGJvb2xlYW4gfSkge1xuICAgIHRoaXMuZXhwb3J0U2VydmljZS5yZW1vdmVPcGVyYXRpb24ob3BlcmF0aW9uLmlkKTtcbiAgICB0aGlzLnVwZGF0ZUdyb3VwSXRlbXMoKTtcbiAgfVxuXG4gIHJlc2V0T3BlcmF0aW9uRm9ybSgpIHtcbiAgICB0aGlzLm5ld09wZXJhdGlvbiA9IHtcbiAgICAgIGlkOiAnJyxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgZmllbGQxOiAnJyxcbiAgICAgIG9wZXJhdG9yOiBPcGVyYXRvcnMuYWRkLFxuICAgICAgZmllbGQyOiAnJyxcbiAgICB9O1xuICAgIHRoaXMuaXNFZGl0aW5nT3BlcmF0aW9uID0gZmFsc2U7XG4gIH1cblxuICByZXNldEFsbCgpIHtcbiAgICB0aGlzLmV4cG9ydFNlcnZpY2UucmVzZXRBbGwoKTtcbiAgICB0aGlzLmluaXRpYWxpemVHcm91cEl0ZW1zKCk7XG4gICAgdGhpcy51cGRhdGVQcm9maWxlcygpO1xuICAgIHRoaXMucmVzZXRPcGVyYXRpb25Gb3JtKCk7XG4gICAgdGhpcy5uZXdHcm91cEZvcm0ucmVzZXQoKTtcbiAgfVxuXG4gIGV4cG9ydERhdGEoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRQcm9maWxlcyA9IHRoaXMucHJvZmlsZXMuZmlsdGVyKFxuICAgICAgKHByb2ZpbGUpID0+IHByb2ZpbGUuc2VsZWN0ZWRcbiAgICApO1xuICAgIGlmIChzZWxlY3RlZFByb2ZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGV4cG9ydGVkRGF0YSA9IHRoaXMuZXhwb3J0U2VydmljZS5leHBvcnREYXRhKFxuICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgIHNlbGVjdGVkUHJvZmlsZXNcbiAgICAgICk7XG4gICAgICB0aGlzLmV4cG9ydERhdGFFdmVudC5lbWl0KGV4cG9ydGVkRGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBwcm9maWxlcyBzZWxlY3RlZCBmb3IgZXhwb3J0Jyk7XG4gICAgfVxuICB9XG5cbiAgb25GaWVsZDFDaGFuZ2UoKSB7XG4gICAgdGhpcy5uZXdPcGVyYXRpb24uZmllbGQyID0gJyc7XG4gICAgdGhpcy5uZXdPcGVyYXRpb24ub3BlcmF0b3IgPSB0aGlzLmlzTnVtZXJpY0ZpZWxkKHRoaXMubmV3T3BlcmF0aW9uLmZpZWxkMSlcbiAgICAgID8gT3BlcmF0b3JzLmFkZFxuICAgICAgOiBPcGVyYXRvcnMuY29uY2F0ZW5hdGVTcGFjZTtcbiAgfVxuXG4gIGlzTnVtZXJpY0ZpZWxkKGZpZWxkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5udW1lcmljUHJvcGVydGllcy5pbmNsdWRlcyhmaWVsZCk7XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlT3BlcmF0b3JzKCk6IE9wZXJhdG9yc1tdIHtcbiAgICByZXR1cm4gdGhpcy5pc051bWVyaWNGaWVsZCh0aGlzLm5ld09wZXJhdGlvbi5maWVsZDEpXG4gICAgICA/IHRoaXMub3BlcmF0b3JzTnVtZXJpY1xuICAgICAgOiB0aGlzLm9wZXJhdG9yc1N0cmluZztcbiAgfVxuXG4gIGdldCBhdmFpbGFibGVGaWVsZHMyKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5pc051bWVyaWNGaWVsZCh0aGlzLm5ld09wZXJhdGlvbi5maWVsZDEpXG4gICAgICA/IHRoaXMubnVtZXJpY1Byb3BlcnRpZXNcbiAgICAgIDogdGhpcy5zdHJpbmdQcm9wZXJ0aWVzO1xuICB9XG5cbiAgdG9nZ2xlU2hvd0FsbFByb2ZpbGVzKCkge1xuICAgIHRoaXMuc2hvd0FsbFByb2ZpbGVzID0gIXRoaXMuc2hvd0FsbFByb2ZpbGVzO1xuICB9XG5cbiAgdG9nZ2xlU2hvd0FsbEdyb3VwcygpIHtcbiAgICB0aGlzLnNob3dBbGxHcm91cHMgPSAhdGhpcy5zaG93QWxsR3JvdXBzO1xuICB9XG59XG4iLCI8dmVyYmVuLWNhcmRcbiAgd2lkdGg9XCIyNHJlbVwiXG4gIGJvcmRlclJhZGl1cz1cIjFyZW1cIlxuICBbYm9yZGVyXT1cIicxcHggc29saWQgI0Q0QTAwNydcIlxuICBiZ0NvbG9yPVwiI0ZGRkZGRlwiXG4gIGNsYXNzPVwiZXhwb3J0LWNhcmRcIlxuPlxuICA8ZGl2IGNhcmQtaGVhZGVyIGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICA8aDQgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5FeHBvcnQ8L2g0PlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwicmVzZXQtYnV0dG9uXCJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCInIzM0NzlFOSdcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICBbc3R5bGUuY3Vyc29yXT1cIidwb2ludGVyJ1wiXG4gICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAoY2xpY2spPVwicmVzZXRBbGwoKVwiXG4gICAgPlxuICAgICAgUmVzZXRcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2FyZC1ib2R5IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlByb2ZpbGVzPC9oMz5cbiAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICBpY29uPVwiaW5mb1wiXG4gICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICBmaWxsPVwiZ3JleVwiXG4gICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHByb2ZpbGUgb2YgdmlzaWJsZVByb2ZpbGVzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJpdGVtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWxhYmVsXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgW2lkXT1cIidwcm9maWxlLScgKyBpXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvZmlsZS5zZWxlY3RlZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bGFiZWwgW2Zvcl09XCIncHJvZmlsZS0nICsgaVwiIGNsYXNzPVwiY2hlY2tib3gtbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IHByb2ZpbGUubmFtZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1hY3Rpb25zXCI+XG4gICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgIGljb249XCJlZGl0XCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMzNDc5RTlcIlxuICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0UHJvZmlsZShwcm9maWxlKVwiXG4gICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICBzdHJva2U9XCIjRTIwMDAwXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVQcm9maWxlKHByb2ZpbGUpXCJcbiAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInByb2ZpbGVzLmxlbmd0aCA+IDNcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2hvd0FsbFByb2ZpbGVzKClcIlxuICAgICAgICBjbGFzcz1cInNob3ctbW9yZVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuPnt7IHNob3dBbGxQcm9maWxlcyA/IFwiU2hvdyBsZXNzXCIgOiBcIlNob3cgbW9yZVwiIH19PC9zcGFuPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJjaGV2cm9uXCJcbiAgICAgICAgICBbd2lkdGhdPVwiOFwiXG4gICAgICAgICAgW2hlaWdodF09XCI2XCJcbiAgICAgICAgICBmaWxsPVwiYmxhY2tcIlxuICAgICAgICAgIHN0cm9rZT1cImJsYWNrXCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbiAgICA8aHIgY2xhc3M9XCJkaXZpZGVyXCIgLz5cbiAgICA8c2VjdGlvbiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+R3JvdXA8L2gzPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJpbmZvXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgIGZpbGw9XCJncmV5XCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJuZXdHcm91cEZvcm1cIiAobmdTdWJtaXQpPVwiYWRkR3JvdXAoKVwiPlxuICAgICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiR3JvdXAgbmFtZVwiXG4gICAgICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkICNjY2NcIlxuICAgICAgICAgIGJvcmRlclJhZGl1cz1cIjVweFwiXG4gICAgICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgaGVpZ2h0PVwiMjBweFwiXG4gICAgICAgICAgcGQ9XCI0cHggNnB4XCJcbiAgICAgICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd0Vycm9yTWVzc2FnZV09XCJ0cnVlXCJcbiAgICAgICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG4gICAgICA8L2Zvcm0+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZpc2libGVHcm91cHM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cIml0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbGFiZWxcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbaWRdPVwiJ2dyb3VwLScgKyBpXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInZ3JvdXAtJyArIGlcIiBjbGFzcz1cImNoZWNrYm94LWxhYmVsXCI+XG4gICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tYWN0aW9uc1wiICpuZ0lmPVwiaXRlbS50eXBlID09PSAnb3BlcmF0aW9uJ1wiPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICBpY29uPVwiZWRpdFwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICBzdHJva2U9XCIjMzQ3OUU5XCJcbiAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdE9wZXJhdGlvbihpdGVtKVwiXG4gICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICBzdHJva2U9XCIjRTIwMDAwXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVPcGVyYXRpb24oaXRlbSlcIlxuICAgICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZ3JvdXBJdGVtcy5sZW5ndGggPiAzXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNob3dBbGxHcm91cHMoKVwiXG4gICAgICAgIGNsYXNzPVwic2hvdy1tb3JlXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4+e3sgc2hvd0FsbEdyb3VwcyA/IFwiU2hvdyBsZXNzXCIgOiBcIlNob3cgbW9yZVwiIH19PC9zcGFuPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJjaGV2cm9uXCJcbiAgICAgICAgICBbd2lkdGhdPVwiOFwiXG4gICAgICAgICAgW2hlaWdodF09XCI2XCJcbiAgICAgICAgICBmaWxsPVwiYmxhY2tcIlxuICAgICAgICAgIHN0cm9rZT1cImJsYWNrXCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZC1idXR0b25cIiAoY2xpY2spPVwiYWRkR3JvdXAoKVwiPisgQWRkPC9idXR0b24+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxociBjbGFzcz1cImRpdmlkZXJcIiAvPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5PcGVyYXRpb248L2gzPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJpbmZvXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgIGZpbGw9XCJncmV5XCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJPcGVyYXRpb24gbmFtZVwiXG4gICAgICAgIGJvcmRlcj1cIjFweCBzb2xpZCAjY2NjXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiNXB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgICAgcGQ9XCIycHggNnB4XCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwibmV3T3BlcmF0aW9uLm5hbWVcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJvcGVyYXRpb24tZ3JpZFwiPlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIHdpZHRoPVwiJzhyZW0nXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBmaWVsZFwiXG4gICAgICAgICAgW29wdGlvbnNdPVwibnVtZXJpY1Byb3BlcnRpZXMuY29uY2F0KHN0cmluZ1Byb3BlcnRpZXMpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld09wZXJhdGlvbi5maWVsZDFcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRmllbGQxQ2hhbmdlKClcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgICB3aWR0aD1cIic4cmVtJ1wiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3Qgb3BlcmF0b3JcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImF2YWlsYWJsZU9wZXJhdG9yc1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdPcGVyYXRpb24ub3BlcmF0b3JcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgICB3aWR0aD1cIic4cmVtJ1wiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgZmllbGRcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImF2YWlsYWJsZUZpZWxkczJcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3T3BlcmF0aW9uLmZpZWxkMlwiXG4gICAgICAgID5cbiAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkLWJ1dHRvblwiIChjbGljayk9XCJhZGRPclVwZGF0ZU9wZXJhdGlvbigpXCI+XG4gICAgICAgIHt7IGlzRWRpdGluZ09wZXJhdGlvbiA/IFwiVXBkYXRlXCIgOiBcIisgQWRkXCIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvc2VjdGlvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2FyZC1mb290ZXIgY2xhc3M9XCJjYXJkLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJleHBvcnQtYnV0dG9uXCIgKGNsaWNrKT1cImV4cG9ydERhdGEoKVwiPkV4cG9ydDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvdmVyYmVuLWNhcmQ+XG4iXX0=
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leHBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWV4cG9ydC9kYXRhLWV4cG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtZXhwb3J0L2RhdGEtZXhwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsT0FBTyxFQUlMLFNBQVMsR0FDVixNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7QUFRN0IsTUFBTSxPQUFPLG1CQUFtQjtJQWlDcEI7SUFDQTtJQWpDRCxJQUFJLENBQVM7SUFDWixlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFFdEUsUUFBUSxHQUE4QyxFQUFFLENBQUM7SUFDekQsVUFBVSxHQUEyQyxFQUFFLENBQUM7SUFDeEQsWUFBWSxDQUFZO0lBQ3hCLFlBQVksR0FBYztRQUN4QixFQUFFLEVBQUUsRUFBRTtRQUNOLElBQUksRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUc7UUFDdkIsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0lBQ0YsaUJBQWlCLEdBQWEsRUFBRSxDQUFDO0lBQ2pDLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUNoQyxrQkFBa0IsR0FBWSxLQUFLLENBQUM7SUFDcEMsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxhQUFhLEdBQVksS0FBSyxD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Q0FBQzt1R0ExTlUsbUJBQW1COzJGQUFuQixtQkFBbUIsdUpDdEJoQywycE1BNE1BOzsyRkR0TGEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNO2dIQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhRXhwb3J0U2VydmljZSB9IGZyb20gJy4vZGF0YS1leHBvcnQuc2VydmljZSc7XG5pbXBvcnQge1xuICBFeHBvcnRJdGVtLFxuICBFeHBvcnRQcm9maWxlLFxuICBPcGVyYXRpb24sXG4gIE9wZXJhdG9ycyxcbn0gZnJvbSAnLi9kYXRhLWV4cG9ydC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kYXRhLWV4cG9ydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWV4cG9ydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRhLWV4cG9ydC5jb21wb25lbnQuY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFFeHBvcnRDb21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhITogYW55W107XG4gIEBPdXRwdXQoKSBleHBvcnREYXRhRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZDxzdHJpbmcsIGFueT5bXT4oKTtcblxuICBwcm9maWxlczogKEV4cG9ydFByb2ZpbGUgJiB7IHNlbGVjdGVkOiBib29sZWFuIH0pW10gPSBbXTtcbiAgZ3JvdXBJdGVtczogKEV4cG9ydEl0ZW0gJiB7IHNlbGVjdGVkOiBib29sZWFuIH0pW10gPSBbXTtcbiAgbmV3R3JvdXBGb3JtOiBGb3JtR3JvdXA7XG4gIG5ld09wZXJhdGlvbjogT3BlcmF0aW9uID0ge1xuICAgIGlkOiAnJyxcbiAgICBuYW1lOiAnJyxcbiAgICBmaWVsZDE6ICcnLFxuICAgIG9wZXJhdG9yOiBPcGVyYXRvcnMuYWRkLFxuICAgIGZpZWxkMjogJycsXG4gIH07XG4gIG51bWVyaWNQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdO1xuICBzdHJpbmdQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdO1xuICBpc0VkaXRpbmdPcGVyYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd0FsbFByb2ZpbGVzOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dBbGxHcm91cHM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBvcGVyYXRvcnNOdW1lcmljOiBPcGVyYXRvcnNbXSA9IFtcbiAgICBPcGVyYXRvcnMuYWRkLFxuICAgIE9wZXJhdG9ycy5zdWJ0cmFjdCxcbiAgICBPcGVyYXRvcnMubXVsdGlwbHksXG4gICAgT3BlcmF0b3JzLmRpdmlkZSxcbiAgXTtcbiAgb3BlcmF0b3JzU3RyaW5nOiBPcGVyYXRvcnNbXSA9IFtcbiAgICBPcGVyYXRvcnMuY29uY2F0ZW5hdGVTcGFjZSxcbiAgICBPcGVyYXRvcnMuY29uY2F0ZW5hdGVDb21tYVNwYWNlLFxuICAgIE9wZXJhdG9ycy5jb25jYXRlbmF0ZUNvbW1hLFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXhwb3J0U2VydmljZTogRGF0YUV4cG9ydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgdGhpcy5uZXdHcm91cEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVHcm91cEl0ZW1zKCk7XG4gICAgdGhpcy51cGRhdGVQcm9maWxlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplR3JvdXBJdGVtcygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2aXNpYmxlUHJvZmlsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0FsbFByb2ZpbGVzID8gdGhpcy5wcm9maWxlcyA6IHRoaXMucHJvZmlsZXMuc2xpY2UoMCwgMyk7XG4gIH1cblxuICBnZXQgdmlzaWJsZUdyb3VwcygpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93QWxsR3JvdXBzID8gdGhpcy5ncm91cEl0ZW1zIDogdGhpcy5ncm91cEl0ZW1zLnNsaWNlKDAsIDMpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUdyb3VwSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHRoaXMuZGF0YVswXSkuZmlsdGVyKChrKSA9PiBrICE9PSAnaWQnKTtcbiAgICAgIHRoaXMuZXhwb3J0U2VydmljZS5zZXRCYXNlUHJvcGVydGllcyhwcm9wZXJ0aWVzKTtcbiAgICAgIHRoaXMubnVtZXJpY1Byb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgICAgKHByb3ApID0+IHR5cGVvZiB0aGlzLmRhdGFbMF1bcHJvcF0gPT09ICdudW1iZXInXG4gICAgICApO1xuICAgICAgdGhpcy5zdHJpbmdQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAgIChwcm9wKSA9PiB0eXBlb2YgdGhpcy5kYXRhWzBdW3Byb3BdID09PSAnc3RyaW5nJ1xuICAgICAgKTtcbiAgICAgIHRoaXMudXBkYXRlR3JvdXBJdGVtcygpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVByb2ZpbGVzKCkge1xuICAgIHRoaXMucHJvZmlsZXMgPSB0aGlzLmV4cG9ydFNlcnZpY2UuZ2V0UHJvZmlsZXMoKS5tYXAoKHByb2ZpbGUpID0+ICh7XG4gICAgICAuLi5wcm9maWxlLFxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgIH0pKTtcbiAgfVxuXG4gIHVwZGF0ZUdyb3VwSXRlbXMoKSB7XG4gICAgdGhpcy5ncm91cEl0ZW1zID0gdGhpcy5leHBvcnRTZXJ2aWNlLmdldEFsbEl0ZW1zKCkubWFwKChpdGVtKSA9PiAoe1xuICAgICAgLi4uaXRlbSxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICB9KSk7XG4gIH1cblxuICBhZGRHcm91cCgpIHtcbiAgICBjb25zb2xlLmxvZygnaW4nKTtcbiAgICBpZiAodGhpcy5uZXdHcm91cEZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLmdyb3VwSXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICAgIGlmIChzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgbmV3UHJvZmlsZTogRXhwb3J0UHJvZmlsZSA9IHtcbiAgICAgICAgICBpZDogRGF0ZS5ub3coKS50b1N0cmluZygpLFxuICAgICAgICAgIG5hbWU6IHRoaXMubmV3R3JvdXBGb3JtLmdldCgnbmFtZScpPy52YWx1ZSxcbiAgICAgICAgICBpdGVtczogc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLmFkZFByb2ZpbGUobmV3UHJvZmlsZSk7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvZmlsZXMoKTtcbiAgICAgICAgdGhpcy5ncm91cEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IChpdGVtLnNlbGVjdGVkID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5uZXdHcm91cEZvcm0ucmVzZXQoKTtcbiAgICAgICAgY29uc29sZS5sb2coJ1NFTEVDVEVEJyk7XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygnVkFMSUQnKTtcbiAgICB9XG4gIH1cblxuICBlZGl0UHJvZmlsZShwcm9maWxlOiBFeHBvcnRQcm9maWxlICYgeyBzZWxlY3RlZDogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5ncm91cEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBwcm9maWxlLml0ZW1zLnNvbWUoXG4gICAgICAgIChwcm9maWxlSXRlbSkgPT4gcHJvZmlsZUl0ZW0uaWQgPT09IGl0ZW0uaWRcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdGhpcy5yZW1vdmVQcm9maWxlKHByb2ZpbGUpO1xuICB9XG5cbiAgcmVtb3ZlUHJvZmlsZShwcm9maWxlOiBFeHBvcnRQcm9maWxlICYgeyBzZWxlY3RlZDogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLnJlbW92ZVByb2ZpbGUocHJvZmlsZS5pZCk7XG4gICAgdGhpcy51cGRhdGVQcm9maWxlcygpO1xuICB9XG5cbiAgYWRkT3JVcGRhdGVPcGVyYXRpb24oKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5uZXdPcGVyYXRpb24ubmFtZSAmJlxuICAgICAgdGhpcy5uZXdPcGVyYXRpb24uZmllbGQxICYmXG4gICAgICB0aGlzLm5ld09wZXJhdGlvbi5maWVsZDJcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLmlzRWRpdGluZ09wZXJhdGlvbikge1xuICAgICAgICB0aGlzLmV4cG9ydFNlcnZpY2UudXBkYXRlT3BlcmF0aW9uKFxuICAgICAgICAgIHRoaXMubmV3T3BlcmF0aW9uLmlkLFxuICAgICAgICAgIHRoaXMubmV3T3BlcmF0aW9uXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBvcGVyYXRpb246IE9wZXJhdGlvbiA9IHtcbiAgICAgICAgICAuLi50aGlzLm5ld09wZXJhdGlvbixcbiAgICAgICAgICBpZDogRGF0ZS5ub3coKS50b1N0cmluZygpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmV4cG9ydFNlcnZpY2UuYWRkT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUdyb3VwSXRlbXMoKTtcbiAgICAgIHRoaXMucmVzZXRPcGVyYXRpb25Gb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgZWRpdE9wZXJhdGlvbihvcGVyYXRpb246IEV4cG9ydEl0ZW0gJiB7IHNlbGVjdGVkOiBib29sZWFuIH0pIHtcbiAgICB0aGlzLm5ld09wZXJhdGlvbiA9IHsgLi4uKG9wZXJhdGlvbiBhcyB1bmtub3duIGFzIE9wZXJhdGlvbikgfTtcbiAgICB0aGlzLmlzRWRpdGluZ09wZXJhdGlvbiA9IHRydWU7XG4gIH1cblxuICByZW1vdmVPcGVyYXRpb24ob3BlcmF0aW9uOiBFeHBvcnRJdGVtICYgeyBzZWxlY3RlZDogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLnJlbW92ZU9wZXJhdGlvbihvcGVyYXRpb24uaWQpO1xuICAgIHRoaXMudXBkYXRlR3JvdXBJdGVtcygpO1xuICB9XG5cbiAgcmVzZXRPcGVyYXRpb25Gb3JtKCkge1xuICAgIHRoaXMubmV3T3BlcmF0aW9uID0ge1xuICAgICAgaWQ6ICcnLFxuICAgICAgbmFtZTogJycsXG4gICAgICBmaWVsZDE6ICcnLFxuICAgICAgb3BlcmF0b3I6IE9wZXJhdG9ycy5hZGQsXG4gICAgICBmaWVsZDI6ICcnLFxuICAgIH07XG4gICAgdGhpcy5pc0VkaXRpbmdPcGVyYXRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIHJlc2V0QWxsKCkge1xuICAgIHRoaXMuZXhwb3J0U2VydmljZS5yZXNldEFsbCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUdyb3VwSXRlbXMoKTtcbiAgICB0aGlzLnVwZGF0ZVByb2ZpbGVzKCk7XG4gICAgdGhpcy5yZXNldE9wZXJhdGlvbkZvcm0oKTtcbiAgICB0aGlzLm5ld0dyb3VwRm9ybS5yZXNldCgpO1xuICB9XG5cbiAgZXhwb3J0RGF0YSgpIHtcbiAgICBjb25zdCBzZWxlY3RlZFByb2ZpbGVzID0gdGhpcy5wcm9maWxlcy5maWx0ZXIoXG4gICAgICAocHJvZmlsZSkgPT4gcHJvZmlsZS5zZWxlY3RlZFxuICAgICk7XG4gICAgaWYgKHNlbGVjdGVkUHJvZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZXhwb3J0ZWREYXRhID0gdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydERhdGEoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgc2VsZWN0ZWRQcm9maWxlc1xuICAgICAgKTtcbiAgICAgIHRoaXMuZXhwb3J0RGF0YUV2ZW50LmVtaXQoZXhwb3J0ZWREYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ05vIHByb2ZpbGVzIHNlbGVjdGVkIGZvciBleHBvcnQnKTtcbiAgICB9XG4gIH1cblxuICBvbkZpZWxkMUNoYW5nZSgpIHtcbiAgICB0aGlzLm5ld09wZXJhdGlvbi5maWVsZDIgPSAnJztcbiAgICB0aGlzLm5ld09wZXJhdGlvbi5vcGVyYXRvciA9IHRoaXMuaXNOdW1lcmljRmllbGQodGhpcy5uZXdPcGVyYXRpb24uZmllbGQxKVxuICAgICAgPyBPcGVyYXRvcnMuYWRkXG4gICAgICA6IE9wZXJhdG9ycy5jb25jYXRlbmF0ZVNwYWNlO1xuICB9XG5cbiAgaXNOdW1lcmljRmllbGQoZmllbGQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWNQcm9wZXJ0aWVzLmluY2x1ZGVzKGZpZWxkKTtcbiAgfVxuXG4gIGdldCBhdmFpbGFibGVPcGVyYXRvcnMoKTogT3BlcmF0b3JzW10ge1xuICAgIHJldHVybiB0aGlzLmlzTnVtZXJpY0ZpZWxkKHRoaXMubmV3T3BlcmF0aW9uLmZpZWxkMSlcbiAgICAgID8gdGhpcy5vcGVyYXRvcnNOdW1lcmljXG4gICAgICA6IHRoaXMub3BlcmF0b3JzU3RyaW5nO1xuICB9XG5cbiAgZ2V0IGF2YWlsYWJsZUZpZWxkczIoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmlzTnVtZXJpY0ZpZWxkKHRoaXMubmV3T3BlcmF0aW9uLmZpZWxkMSlcbiAgICAgID8gdGhpcy5udW1lcmljUHJvcGVydGllc1xuICAgICAgOiB0aGlzLnN0cmluZ1Byb3BlcnRpZXM7XG4gIH1cblxuICB0b2dnbGVTaG93QWxsUHJvZmlsZXMoKSB7XG4gICAgdGhpcy5zaG93QWxsUHJvZmlsZXMgPSAhdGhpcy5zaG93QWxsUHJvZmlsZXM7XG4gIH1cblxuICB0b2dnbGVTaG93QWxsR3JvdXBzKCkge1xuICAgIHRoaXMuc2hvd0FsbEdyb3VwcyA9ICF0aGlzLnNob3dBbGxHcm91cHM7XG4gIH1cbn1cbiIsIjx2ZXJiZW4tY2FyZFxuICB3aWR0aD1cIjI0cmVtXCJcbiAgYm9yZGVyUmFkaXVzPVwiMXJlbVwiXG4gIFtib3JkZXJdPVwiJzFweCBzb2xpZCAjRDRBMDA3J1wiXG4gIGJnQ29sb3I9XCIjRkZGRkZGXCJcbiAgY2xhc3M9XCJleHBvcnQtY2FyZFwiXG4+XG4gIDxkaXYgY2FyZC1oZWFkZXIgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxuICAgIDxoNCBjbGFzcz1cImhlYWRlci10aXRsZVwiPkV4cG9ydDwvaDQ+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJyZXNldC1idXR0b25cIlxuICAgICAgW3N0eWxlLmNvbG9yXT1cIicjMzQ3OUU5J1wiXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgIFtzdHlsZS5ib3JkZXJdPVwiJ25vbmUnXCJcbiAgICAgIFtzdHlsZS5jdXJzb3JdPVwiJ3BvaW50ZXInXCJcbiAgICAgIFtzdHlsZS5mb250LXNpemVdPVwiJzEycHgnXCJcbiAgICAgIChjbGljayk9XCJyZXNldEFsbCgpXCJcbiAgICA+XG4gICAgICBSZXNldFxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjYXJkLWJvZHkgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+UHJvZmlsZXM8L2gzPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJpbmZvXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgIGZpbGw9XCJncmV5XCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcHJvZmlsZSBvZiB2aXNpYmxlUHJvZmlsZXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cIml0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbGFiZWxcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbaWRdPVwiJ3Byb2ZpbGUtJyArIGlcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwcm9maWxlLnNlbGVjdGVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidwcm9maWxlLScgKyBpXCIgY2xhc3M9XCJjaGVja2JveC1sYWJlbFwiPlxuICAgICAgICAgICAge3sgcHJvZmlsZS5uYW1lIH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWFjdGlvbnNcIj5cbiAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgaWNvbj1cImVkaXRcIlxuICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NzlFOVwiXG4gICAgICAgICAgICBmaWxsPVwid2hpdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRQcm9maWxlKHByb2ZpbGUpXCJcbiAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICBpY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiNFMjAwMDBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVByb2ZpbGUocHJvZmlsZSlcIlxuICAgICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwicHJvZmlsZXMubGVuZ3RoID4gM1wiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVTaG93QWxsUHJvZmlsZXMoKVwiXG4gICAgICAgIGNsYXNzPVwic2hvdy1tb3JlXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4+e3sgc2hvd0FsbFByb2ZpbGVzID8gXCJTaG93IGxlc3NcIiA6IFwiU2hvdyBtb3JlXCIgfX08L3NwYW4+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgaWNvbj1cImNoZXZyb25cIlxuICAgICAgICAgIFt3aWR0aF09XCI4XCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjZcIlxuICAgICAgICAgIGZpbGw9XCJibGFja1wiXG4gICAgICAgICAgc3Ryb2tlPVwiYmxhY2tcIlxuICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxociBjbGFzcz1cImRpdmlkZXJcIiAvPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Hcm91cDwvaDM+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgZmlsbD1cImdyZXlcIlxuICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIm5ld0dyb3VwRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRHcm91cCgpXCI+XG4gICAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJHcm91cCBuYW1lXCJcbiAgICAgICAgICBib3JkZXI9XCIxcHggc29saWQgI2NjY1wiXG4gICAgICAgICAgYm9yZGVyUmFkaXVzPVwiNXB4XCJcbiAgICAgICAgICB0ZXh0Q29sb3I9XCJibGFja1wiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgICAgICBwZD1cIjRweCA2cHhcIlxuICAgICAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cbiAgICAgIDwvZm9ybT5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmlzaWJsZUdyb3VwczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1sYWJlbFwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIFtpZF09XCInZ3JvdXAtJyArIGlcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidncm91cC0nICsgaVwiIGNsYXNzPVwiY2hlY2tib3gtbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1hY3Rpb25zXCIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdvcGVyYXRpb24nXCI+XG4gICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgIGljb249XCJlZGl0XCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMzNDc5RTlcIlxuICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0T3BlcmF0aW9uKGl0ZW0pXCJcbiAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICBpY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiNFMjAwMDBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZU9wZXJhdGlvbihpdGVtKVwiXG4gICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJncm91cEl0ZW1zLmxlbmd0aCA+IDNcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2hvd0FsbEdyb3VwcygpXCJcbiAgICAgICAgY2xhc3M9XCJzaG93LW1vcmVcIlxuICAgICAgPlxuICAgICAgICA8c3Bhbj57eyBzaG93QWxsR3JvdXBzID8gXCJTaG93IGxlc3NcIiA6IFwiU2hvdyBtb3JlXCIgfX08L3NwYW4+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgaWNvbj1cImNoZXZyb25cIlxuICAgICAgICAgIFt3aWR0aF09XCI4XCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjZcIlxuICAgICAgICAgIGZpbGw9XCJibGFja1wiXG4gICAgICAgICAgc3Ryb2tlPVwiYmxhY2tcIlxuICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkLWJ1dHRvblwiIChjbGljayk9XCJhZGRHcm91cCgpXCI+KyBBZGQ8L2J1dHRvbj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPGhyIGNsYXNzPVwiZGl2aWRlclwiIC8+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPk9wZXJhdGlvbjwvaDM+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgZmlsbD1cImdyZXlcIlxuICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBwbGFjZWhvbGRlcj1cIk9wZXJhdGlvbiBuYW1lXCJcbiAgICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkICNjY2NcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJibGFja1wiXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIGhlaWdodD1cIjIwcHhcIlxuICAgICAgICBwZD1cIjJweCA2cHhcIlxuICAgICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdPcGVyYXRpb24ubmFtZVwiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuICAgICAgPGRpdiBjbGFzcz1cIm9wZXJhdGlvbi1ncmlkXCI+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgd2lkdGg9XCInOHJlbSdcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGZpZWxkXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJudW1lcmljUHJvcGVydGllcy5jb25jYXQoc3RyaW5nUHJvcGVydGllcylcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3T3BlcmF0aW9uLmZpZWxkMVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25GaWVsZDFDaGFuZ2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIHdpZHRoPVwiJzhyZW0nXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBvcGVyYXRvclwiXG4gICAgICAgICAgW29wdGlvbnNdPVwiYXZhaWxhYmxlT3BlcmF0b3JzXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld09wZXJhdGlvbi5vcGVyYXRvclwiXG4gICAgICAgID5cbiAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIHdpZHRoPVwiJzhyZW0nXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBmaWVsZFwiXG4gICAgICAgICAgW29wdGlvbnNdPVwiYXZhaWxhYmxlRmllbGRzMlwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdPcGVyYXRpb24uZmllbGQyXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhZGQtYnV0dG9uXCIgKGNsaWNrKT1cImFkZE9yVXBkYXRlT3BlcmF0aW9uKClcIj5cbiAgICAgICAge3sgaXNFZGl0aW5nT3BlcmF0aW9uID8gXCJVcGRhdGVcIiA6IFwiKyBBZGRcIiB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjYXJkLWZvb3RlciBjbGFzcz1cImNhcmQtZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImV4cG9ydC1idXR0b25cIiAoY2xpY2spPVwiZXhwb3J0RGF0YSgpXCI+RXhwb3J0PC9idXR0b24+XG4gIDwvZGl2PlxuPC92ZXJiZW4tY2FyZD5cbiJdfQ==
|
|
@@ -33,7 +33,7 @@ export class DataExportService {
|
|
|
33
33
|
this.profiles = this.profiles.filter((p) => p.id !== id);
|
|
34
34
|
}
|
|
35
35
|
addOperation(operation) {
|
|
36
|
-
this.operations.
|
|
36
|
+
this.operations.unshift(operation);
|
|
37
37
|
this.updateDefaultProfile();
|
|
38
38
|
}
|
|
39
39
|
getOperations() {
|
|
@@ -61,16 +61,16 @@ export class DataExportService {
|
|
|
61
61
|
}
|
|
62
62
|
getAllItems() {
|
|
63
63
|
return [
|
|
64
|
-
...this.baseProperties.map((prop) => ({
|
|
65
|
-
id: prop,
|
|
66
|
-
name: prop,
|
|
67
|
-
type: 'property',
|
|
68
|
-
})),
|
|
69
64
|
...this.operations.map((op) => ({
|
|
70
65
|
id: op.id,
|
|
71
66
|
name: op.name,
|
|
72
67
|
type: 'operation',
|
|
73
68
|
})),
|
|
69
|
+
...this.baseProperties.map((prop) => ({
|
|
70
|
+
id: prop,
|
|
71
|
+
name: prop,
|
|
72
|
+
type: 'property',
|
|
73
|
+
})),
|
|
74
74
|
];
|
|
75
75
|
}
|
|
76
76
|
getBaseProperties() {
|
|
@@ -132,4 +132,4 @@ export class DataExportService {
|
|
|
132
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DataExportService, decorators: [{
|
|
133
133
|
type: Injectable
|
|
134
134
|
}], ctorParameters: () => [] });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leHBvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS1leHBvcnQvZGF0YS1leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFLTCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHN0IsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixRQUFRLEdBQW9CLEVBQUUsQ0FBQztJQUMvQixVQUFVLEdBQWdCLEVBQUUsQ0FBQztJQUM3QixjQUFjLEdBQWEsRUFBRSxDQUFDO0lBRXRDO1FBQ0UsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2Q7Z0JBQ0UsRUFBRSxFQUFFLFNBQVM7Z0JBQ2IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLEVBQUU7YUFDVjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQXNCO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBVSxFQUFFLGNBQTZCO1FBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FB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QUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFFLElBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2RCxRQUFRLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQixLQUFLLFNBQVMsQ0FBQyxHQUFHO2dCQUNoQixPQUFPLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDekIsS0FBSyxTQUFTLENBQUMsUUFBUTtnQkFDckIsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3pCLEtBQUssU0FBUyxDQUFDLFFBQVE7Z0JBQ3JCLE9BQU8sTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUN6QixLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUNuQixPQUFPLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUM5QyxLQUFLLFNBQVMsQ0FBQyxnQkFBZ0I7Z0JBQzdCLE9BQU8sR0FBRyxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7WUFDL0IsS0FBSyxTQUFTLENBQUMscUJBQXFCO2dCQUNsQyxPQUFPLEdBQUcsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLEtBQUssU0FBUyxDQUFDLGdCQUFnQjtnQkFDN0IsT0FBTyxHQUFHLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMvQjtnQkFDRSxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO3VHQXRKVSxpQkFBaUI7MkdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEV4cG9ydFByb2ZpbGUsXG4gIE9wZXJhdGlvbixcbiAgRXhwb3J0SXRlbSxcbiAgRXhwb3J0SXRlbVR5cGUsXG4gIE9wZXJhdG9ycyxcbn0gZnJvbSAnLi9kYXRhLWV4cG9ydC50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhRXhwb3J0U2VydmljZSB7XG4gIHByaXZhdGUgcHJvZmlsZXM6IEV4cG9ydFByb2ZpbGVbXSA9IFtdO1xuICBwcml2YXRlIG9wZXJhdGlvbnM6IE9wZXJhdGlvbltdID0gW107XG4gIHByaXZhdGUgYmFzZVByb3BlcnRpZXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdFByb2ZpbGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURlZmF1bHRQcm9maWxlKCkge1xuICAgIHRoaXMucHJvZmlsZXMgPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnZGVmYXVsdCcsXG4gICAgICAgIG5hbWU6ICdBbGwnLFxuICAgICAgICBpdGVtczogW10sXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBhZGRQcm9maWxlKHByb2ZpbGU6IEV4cG9ydFByb2ZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLnByb2ZpbGVzLnB1c2gocHJvZmlsZSk7XG4gIH1cblxuICBnZXRQcm9maWxlcygpOiBFeHBvcnRQcm9maWxlW10ge1xuICAgIHJldHVybiB0aGlzLnByb2ZpbGVzO1xuICB9XG5cbiAgdXBkYXRlUHJvZmlsZShpZDogc3RyaW5nLCB1cGRhdGVkUHJvZmlsZTogRXhwb3J0UHJvZmlsZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wcm9maWxlcy5maW5kSW5kZXgoKHApID0+IHAuaWQgPT09IGlkKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLnByb2ZpbGVzW2luZGV4XSA9IHVwZGF0ZWRQcm9maWxlO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVByb2ZpbGUoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucHJvZmlsZXMgPSB0aGlzLnByb2ZpbGVzLmZpbHRlcigocCkgPT4gcC5pZCAhPT0gaWQpO1xuICB9XG5cbiAgYWRkT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5vcGVyYXRpb25zLnB1c2gob3BlcmF0aW9uKTtcbiAgICB0aGlzLnVwZGF0ZURlZmF1bHRQcm9maWxlKCk7XG4gIH1cblxuICBnZXRPcGVyYXRpb25zKCk6IE9wZXJhdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb25zO1xuICB9XG5cbiAgdXBkYXRlT3BlcmF0aW9uKGlkOiBzdHJpbmcsIHVwZGF0ZWRPcGVyYXRpb246IE9wZXJhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVyYXRpb25zLmZpbmRJbmRleCgobykgPT4gby5pZCA9PT0gaWQpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMub3BlcmF0aW9uc1tpbmRleF0gPSB1cGRhdGVkT3BlcmF0aW9uO1xuICAgICAgdGhpcy51cGRhdGVEZWZhdWx0UHJvZmlsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZU9wZXJhdGlvbihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vcGVyYXRpb25zID0gdGhpcy5vcGVyYXRpb25zLmZpbHRlcigobykgPT4gby5pZCAhPT0gaWQpO1xuICAgIHRoaXMudXBkYXRlRGVmYXVsdFByb2ZpbGUoKTtcbiAgICAvLyBSZW1vdmUgb3BlcmF0aW9uIGZyb20gYWxsIHByb2ZpbGVzXG4gICAgdGhpcy5wcm9maWxlcy5mb3JFYWNoKChwcm9maWxlKSA9PiB7XG4gICAgICBwcm9maWxlLml0ZW1zID0gcHJvZmlsZS5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgIT09IGlkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMub3BlcmF0aW9ucyA9IFtdO1xuICAgIHRoaXMuYmFzZVByb3BlcnRpZXMgPSBbXTtcbiAgICB0aGlzLmluaXRpYWxpemVEZWZhdWx0UHJvZmlsZSgpO1xuICB9XG5cbiAgZ2V0QWxsSXRlbXMoKTogRXhwb3J0SXRlbVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5iYXNlUHJvcGVydGllcy5tYXAoKHByb3ApID0+ICh7XG4gICAgICAgIGlkOiBwcm9wLFxuICAgICAgICBuYW1lOiBwcm9wLFxuICAgICAgICB0eXBlOiAncHJvcGVydHknIGFzIEV4cG9ydEl0ZW1UeXBlLFxuICAgICAgfSkpLFxuICAgICAgLi4udGhpcy5vcGVyYXRpb25zLm1hcCgob3ApID0+ICh7XG4gICAgICAgIGlkOiBvcC5pZCxcbiAgICAgICAgbmFtZTogb3AubmFtZSxcbiAgICAgICAgdHlwZTogJ29wZXJhdGlvbicgYXMgRXhwb3J0SXRlbVR5cGUsXG4gICAgICB9KSksXG4gICAgXTtcbiAgfVxuXG4gIGdldEJhc2VQcm9wZXJ0aWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlUHJvcGVydGllcztcbiAgfVxuXG4gIHNldEJhc2VQcm9wZXJ0aWVzKHByb3BlcnRpZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5iYXNlUHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgdGhpcy51cGRhdGVEZWZhdWx0UHJvZmlsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEZWZhdWx0UHJvZmlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnByb2ZpbGVzWzBdLml0ZW1zID0gdGhpcy5nZXRBbGxJdGVtcygpO1xuICB9XG5cbiAgZXhwb3J0RGF0YTxUPihcbiAgICBkYXRhOiBUW10sXG4gICAgc2VsZWN0ZWRQcm9maWxlczogRXhwb3J0UHJvZmlsZVtdXG4gICk6IFJlY29yZDxzdHJpbmcsIGFueT5bXSB7XG4gICAgY29uc3QgdW5pcXVlSXRlbXMgPSBuZXcgU2V0PEV4cG9ydEl0ZW0+KCk7XG4gICAgc2VsZWN0ZWRQcm9maWxlcy5mb3JFYWNoKChwcm9maWxlKSA9PiB7XG4gICAgICBwcm9maWxlLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHVuaXF1ZUl0ZW1zLmFkZChpdGVtKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGV4cG9ydGVkSXRlbTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgdW5pcXVlSXRlbXMuZm9yRWFjaCgoZXhwb3J0SXRlbSkgPT4ge1xuICAgICAgICBpZiAoZXhwb3J0SXRlbS50eXBlID09PSAncHJvcGVydHknKSB7XG4gICAgICAgICAgZXhwb3J0ZWRJdGVtW2V4cG9ydEl0ZW0uaWRdID0gKGl0ZW0gYXMgYW55KVtleHBvcnRJdGVtLmlkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBvcGVyYXRpb24gPSB0aGlzLm9wZXJhdGlvbnMuZmluZCgobykgPT4gby5pZCA9PT0gZXhwb3J0SXRlbS5pZCk7XG4gICAgICAgICAgaWYgKG9wZXJhdGlvbikge1xuICAgICAgICAgICAgZXhwb3J0ZWRJdGVtW2V4cG9ydEl0ZW0uaWRdID0gdGhpcy5jYWxjdWxhdGVPcGVyYXRpb24oXG4gICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgIG9wZXJhdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGV4cG9ydGVkSXRlbTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlT3BlcmF0aW9uPFQ+KFxuICAgIGl0ZW06IFQsXG4gICAgb3BlcmF0aW9uOiBPcGVyYXRpb25cbiAgKTogbnVtYmVyIHwgc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZTEgPSBOdW1iZXIoKGl0ZW0gYXMgYW55KVtvcGVyYXRpb24uZmllbGQxXSk7XG4gICAgY29uc3QgdmFsdWUyID0gTnVtYmVyKChpdGVtIGFzIGFueSlbb3BlcmF0aW9uLmZpZWxkMl0pO1xuICAgIHN3aXRjaCAob3BlcmF0aW9uLm9wZXJhdG9yKSB7XG4gICAgICBjYXNlIE9wZXJhdG9ycy5hZGQ6XG4gICAgICAgIHJldHVybiB2YWx1ZTEgKyB2YWx1ZTI7XG4gICAgICBjYXNlIE9wZXJhdG9ycy5zdWJ0cmFjdDpcbiAgICAgICAgcmV0dXJuIHZhbHVlMSAtIHZhbHVlMjtcbiAgICAgIGNhc2UgT3BlcmF0b3JzLm11bHRpcGx5OlxuICAgICAgICByZXR1cm4gdmFsdWUxICogdmFsdWUyO1xuICAgICAgY2FzZSBPcGVyYXRvcnMuZGl2aWRlOlxuICAgICAgICByZXR1cm4gdmFsdWUyICE9PSAwID8gdmFsdWUxIC8gdmFsdWUyIDogTmFOO1xuICAgICAgY2FzZSBPcGVyYXRvcnMuY29uY2F0ZW5hdGVTcGFjZTpcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlMX0gJHt2YWx1ZTJ9YDtcbiAgICAgIGNhc2UgT3BlcmF0b3JzLmNvbmNhdGVuYXRlQ29tbWFTcGFjZTpcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlMX0sICR7dmFsdWUyfWA7XG4gICAgICBjYXNlIE9wZXJhdG9ycy5jb25jYXRlbmF0ZUNvbW1hOlxuICAgICAgICByZXR1cm4gYCR7dmFsdWUxfSwke3ZhbHVlMn1gO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leHBvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS1leHBvcnQvZGF0YS1leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFLTCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHN0IsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixRQUFRLEdBQW9CLEVBQUUsQ0FBQztJQUMvQixVQUFVLEdBQWdCLEVBQUUsQ0FBQztJQUM3QixjQUFjLEdBQWEsRUFBRSxDQUFDO0lBRXRDO1FBQ0UsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2Q7Z0JBQ0UsRUFBRSxFQUFFLFNBQVM7Z0JBQ2IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLEVBQUU7YUFDVjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQXNCO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBVSxFQUFFLGNBQTZCO1FBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FB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QUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFFLElBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2RCxRQUFRLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQixLQUFLLFNBQVMsQ0FBQyxHQUFHO2dCQUNoQixPQUFPLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDekIsS0FBSyxTQUFTLENBQUMsUUFBUTtnQkFDckIsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3pCLEtBQUssU0FBUyxDQUFDLFFBQVE7Z0JBQ3JCLE9BQU8sTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUN6QixLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUNuQixPQUFPLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUM5QyxLQUFLLFNBQVMsQ0FBQyxnQkFBZ0I7Z0JBQzdCLE9BQU8sR0FBRyxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7WUFDL0IsS0FBSyxTQUFTLENBQUMscUJBQXFCO2dCQUNsQyxPQUFPLEdBQUcsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLEtBQUssU0FBUyxDQUFDLGdCQUFnQjtnQkFDN0IsT0FBTyxHQUFHLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMvQjtnQkFDRSxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO3VHQXRKVSxpQkFBaUI7MkdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEV4cG9ydFByb2ZpbGUsXG4gIE9wZXJhdGlvbixcbiAgRXhwb3J0SXRlbSxcbiAgRXhwb3J0SXRlbVR5cGUsXG4gIE9wZXJhdG9ycyxcbn0gZnJvbSAnLi9kYXRhLWV4cG9ydC50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhRXhwb3J0U2VydmljZSB7XG4gIHByaXZhdGUgcHJvZmlsZXM6IEV4cG9ydFByb2ZpbGVbXSA9IFtdO1xuICBwcml2YXRlIG9wZXJhdGlvbnM6IE9wZXJhdGlvbltdID0gW107XG4gIHByaXZhdGUgYmFzZVByb3BlcnRpZXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdFByb2ZpbGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURlZmF1bHRQcm9maWxlKCkge1xuICAgIHRoaXMucHJvZmlsZXMgPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnZGVmYXVsdCcsXG4gICAgICAgIG5hbWU6ICdBbGwnLFxuICAgICAgICBpdGVtczogW10sXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBhZGRQcm9maWxlKHByb2ZpbGU6IEV4cG9ydFByb2ZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLnByb2ZpbGVzLnB1c2gocHJvZmlsZSk7XG4gIH1cblxuICBnZXRQcm9maWxlcygpOiBFeHBvcnRQcm9maWxlW10ge1xuICAgIHJldHVybiB0aGlzLnByb2ZpbGVzO1xuICB9XG5cbiAgdXBkYXRlUHJvZmlsZShpZDogc3RyaW5nLCB1cGRhdGVkUHJvZmlsZTogRXhwb3J0UHJvZmlsZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wcm9maWxlcy5maW5kSW5kZXgoKHApID0+IHAuaWQgPT09IGlkKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLnByb2ZpbGVzW2luZGV4XSA9IHVwZGF0ZWRQcm9maWxlO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVByb2ZpbGUoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucHJvZmlsZXMgPSB0aGlzLnByb2ZpbGVzLmZpbHRlcigocCkgPT4gcC5pZCAhPT0gaWQpO1xuICB9XG5cbiAgYWRkT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5vcGVyYXRpb25zLnVuc2hpZnQob3BlcmF0aW9uKTtcbiAgICB0aGlzLnVwZGF0ZURlZmF1bHRQcm9maWxlKCk7XG4gIH1cblxuICBnZXRPcGVyYXRpb25zKCk6IE9wZXJhdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb25zO1xuICB9XG5cbiAgdXBkYXRlT3BlcmF0aW9uKGlkOiBzdHJpbmcsIHVwZGF0ZWRPcGVyYXRpb246IE9wZXJhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVyYXRpb25zLmZpbmRJbmRleCgobykgPT4gby5pZCA9PT0gaWQpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMub3BlcmF0aW9uc1tpbmRleF0gPSB1cGRhdGVkT3BlcmF0aW9uO1xuICAgICAgdGhpcy51cGRhdGVEZWZhdWx0UHJvZmlsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZU9wZXJhdGlvbihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vcGVyYXRpb25zID0gdGhpcy5vcGVyYXRpb25zLmZpbHRlcigobykgPT4gby5pZCAhPT0gaWQpO1xuICAgIHRoaXMudXBkYXRlRGVmYXVsdFByb2ZpbGUoKTtcbiAgICAvLyBSZW1vdmUgb3BlcmF0aW9uIGZyb20gYWxsIHByb2ZpbGVzXG4gICAgdGhpcy5wcm9maWxlcy5mb3JFYWNoKChwcm9maWxlKSA9PiB7XG4gICAgICBwcm9maWxlLml0ZW1zID0gcHJvZmlsZS5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgIT09IGlkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMub3BlcmF0aW9ucyA9IFtdO1xuICAgIHRoaXMuYmFzZVByb3BlcnRpZXMgPSBbXTtcbiAgICB0aGlzLmluaXRpYWxpemVEZWZhdWx0UHJvZmlsZSgpO1xuICB9XG5cbiAgZ2V0QWxsSXRlbXMoKTogRXhwb3J0SXRlbVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5vcGVyYXRpb25zLm1hcCgob3ApID0+ICh7XG4gICAgICAgIGlkOiBvcC5pZCxcbiAgICAgICAgbmFtZTogb3AubmFtZSxcbiAgICAgICAgdHlwZTogJ29wZXJhdGlvbicgYXMgRXhwb3J0SXRlbVR5cGUsXG4gICAgICB9KSksXG4gICAgICAuLi50aGlzLmJhc2VQcm9wZXJ0aWVzLm1hcCgocHJvcCkgPT4gKHtcbiAgICAgICAgaWQ6IHByb3AsXG4gICAgICAgIG5hbWU6IHByb3AsXG4gICAgICAgIHR5cGU6ICdwcm9wZXJ0eScgYXMgRXhwb3J0SXRlbVR5cGUsXG4gICAgICB9KSksXG4gICAgXTtcbiAgfVxuXG4gIGdldEJhc2VQcm9wZXJ0aWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlUHJvcGVydGllcztcbiAgfVxuXG4gIHNldEJhc2VQcm9wZXJ0aWVzKHByb3BlcnRpZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5iYXNlUHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgdGhpcy51cGRhdGVEZWZhdWx0UHJvZmlsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEZWZhdWx0UHJvZmlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnByb2ZpbGVzWzBdLml0ZW1zID0gdGhpcy5nZXRBbGxJdGVtcygpO1xuICB9XG5cbiAgZXhwb3J0RGF0YTxUPihcbiAgICBkYXRhOiBUW10sXG4gICAgc2VsZWN0ZWRQcm9maWxlczogRXhwb3J0UHJvZmlsZVtdXG4gICk6IFJlY29yZDxzdHJpbmcsIGFueT5bXSB7XG4gICAgY29uc3QgdW5pcXVlSXRlbXMgPSBuZXcgU2V0PEV4cG9ydEl0ZW0+KCk7XG4gICAgc2VsZWN0ZWRQcm9maWxlcy5mb3JFYWNoKChwcm9maWxlKSA9PiB7XG4gICAgICBwcm9maWxlLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHVuaXF1ZUl0ZW1zLmFkZChpdGVtKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGV4cG9ydGVkSXRlbTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgdW5pcXVlSXRlbXMuZm9yRWFjaCgoZXhwb3J0SXRlbSkgPT4ge1xuICAgICAgICBpZiAoZXhwb3J0SXRlbS50eXBlID09PSAncHJvcGVydHknKSB7XG4gICAgICAgICAgZXhwb3J0ZWRJdGVtW2V4cG9ydEl0ZW0uaWRdID0gKGl0ZW0gYXMgYW55KVtleHBvcnRJdGVtLmlkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBvcGVyYXRpb24gPSB0aGlzLm9wZXJhdGlvbnMuZmluZCgobykgPT4gby5pZCA9PT0gZXhwb3J0SXRlbS5pZCk7XG4gICAgICAgICAgaWYgKG9wZXJhdGlvbikge1xuICAgICAgICAgICAgZXhwb3J0ZWRJdGVtW2V4cG9ydEl0ZW0uaWRdID0gdGhpcy5jYWxjdWxhdGVPcGVyYXRpb24oXG4gICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgIG9wZXJhdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGV4cG9ydGVkSXRlbTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlT3BlcmF0aW9uPFQ+KFxuICAgIGl0ZW06IFQsXG4gICAgb3BlcmF0aW9uOiBPcGVyYXRpb25cbiAgKTogbnVtYmVyIHwgc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZTEgPSBOdW1iZXIoKGl0ZW0gYXMgYW55KVtvcGVyYXRpb24uZmllbGQxXSk7XG4gICAgY29uc3QgdmFsdWUyID0gTnVtYmVyKChpdGVtIGFzIGFueSlbb3BlcmF0aW9uLmZpZWxkMl0pO1xuICAgIHN3aXRjaCAob3BlcmF0aW9uLm9wZXJhdG9yKSB7XG4gICAgICBjYXNlIE9wZXJhdG9ycy5hZGQ6XG4gICAgICAgIHJldHVybiB2YWx1ZTEgKyB2YWx1ZTI7XG4gICAgICBjYXNlIE9wZXJhdG9ycy5zdWJ0cmFjdDpcbiAgICAgICAgcmV0dXJuIHZhbHVlMSAtIHZhbHVlMjtcbiAgICAgIGNhc2UgT3BlcmF0b3JzLm11bHRpcGx5OlxuICAgICAgICByZXR1cm4gdmFsdWUxICogdmFsdWUyO1xuICAgICAgY2FzZSBPcGVyYXRvcnMuZGl2aWRlOlxuICAgICAgICByZXR1cm4gdmFsdWUyICE9PSAwID8gdmFsdWUxIC8gdmFsdWUyIDogTmFOO1xuICAgICAgY2FzZSBPcGVyYXRvcnMuY29uY2F0ZW5hdGVTcGFjZTpcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlMX0gJHt2YWx1ZTJ9YDtcbiAgICAgIGNhc2UgT3BlcmF0b3JzLmNvbmNhdGVuYXRlQ29tbWFTcGFjZTpcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlMX0sICR7dmFsdWUyfWA7XG4gICAgICBjYXNlIE9wZXJhdG9ycy5jb25jYXRlbmF0ZUNvbW1hOlxuICAgICAgICByZXR1cm4gYCR7dmFsdWUxfSwke3ZhbHVlMn1gO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, signal, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, ContentChildren, EventEmitter, Input, Output, signal, } from '@angular/core';
|
|
2
2
|
import { ColumnDirective } from './column.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
export class DataTableComponent {
|
|
6
6
|
data;
|
|
7
|
-
columns
|
|
7
|
+
// Modify columns input to use a signal
|
|
8
|
+
set columns(value) {
|
|
9
|
+
this.columnsSignal.set(value);
|
|
10
|
+
}
|
|
8
11
|
styleConfig = defaultTableStyles;
|
|
9
12
|
columnTemplates;
|
|
10
13
|
rowEdit = new EventEmitter();
|
|
@@ -15,25 +18,35 @@ export class DataTableComponent {
|
|
|
15
18
|
selectedRowsSignal = signal(new Set());
|
|
16
19
|
editedDataSignal = signal(new Map());
|
|
17
20
|
columnsSignal = signal([]);
|
|
21
|
+
hasFooter = computed(() => this.columnsSignal().some((col) => col.footerTemplate !== undefined));
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
// Set initial columns if not already set
|
|
24
|
+
if (this.columnsSignal().length === 0) {
|
|
25
|
+
this.columnsSignal.set(this.columns);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
18
28
|
ngAfterContentInit() {
|
|
19
29
|
this.columnTemplates.changes.subscribe(() => this.mergeColumnTemplates());
|
|
20
30
|
this.mergeColumnTemplates();
|
|
21
31
|
}
|
|
22
32
|
mergeColumnTemplates() {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
// Only merge if we have both columns and templates
|
|
34
|
+
if (this.columnsSignal().length > 0) {
|
|
35
|
+
const updatedColumns = this.columnsSignal().map((column) => {
|
|
36
|
+
const matchingTemplate = this.columnTemplates.find((t) => t.columnId === column.id);
|
|
37
|
+
if (matchingTemplate) {
|
|
38
|
+
return {
|
|
39
|
+
...column,
|
|
40
|
+
cellTemplate: matchingTemplate.cellTemplate,
|
|
41
|
+
cellEditTemplate: matchingTemplate.cellEditTemplate,
|
|
42
|
+
headerTemplate: matchingTemplate.headerTemplate,
|
|
43
|
+
footerTemplate: matchingTemplate.footerTemplate,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return column;
|
|
47
|
+
});
|
|
48
|
+
this.columnsSignal.set(updatedColumns);
|
|
49
|
+
}
|
|
37
50
|
}
|
|
38
51
|
getCellValue = (row, column) => {
|
|
39
52
|
if (column.accessorKey) {
|
|
@@ -270,11 +283,11 @@ export class DataTableComponent {
|
|
|
270
283
|
return cellStyle;
|
|
271
284
|
}
|
|
272
285
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
273
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: DataTableComponent, selector: "lib-data-table", inputs: { data: "data", columns: "columns", styleConfig: "styleConfig" }, outputs: { rowEdit: "rowEdit", rowSave: "rowSave", rowDelete: "rowDelete", selectionChange: "selectionChange" }, queries: [{ propertyName: "columnTemplates", predicate: ColumnDirective }], ngImport: i0, template: "<table [ngStyle]=\"getTableStyle()\">\n <thead>\n <tr [ngStyle]=\"getHeaderStyle()\">\n @for (column of columnsSignal(); track column.id) {\n <th [ngStyle]=\"getCellStyle(-1, $index)\">\n @if (column.headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"getHeaderContext(column)\"\n ></ng-container>\n } @else {\n {{ column.header }}\n }\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of data; track row.id; let rowIndex = $index) {\n <tr [ngStyle]=\"getRowStyle(rowIndex)\">\n @for (column of columnsSignal(); track column.id; let colIndex = $index) {\n <td [ngStyle]=\"getCellStyle(rowIndex, colIndex)\">\n @if (isRowEditing(row.id) && column.cellEditTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.cellEditTemplate\"\n [ngTemplateOutletContext]=\"getCellContext(row, column, rowIndex)\"\n ></ng-container>\n } @else if (column.cellTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"getCellContext(row, column, rowIndex)\"\n ></ng-container>\n } @else {\n {{ getCellValue(row, column) }}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n <tfoot>\n <tr [ngStyle]=\"getFooterStyle()\">\n @for (column of columnsSignal(); track column.id) {\n <td [ngStyle]=\"getCellStyle(-1, $index)\">\n @if (column.footerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.footerTemplate\"\n [ngTemplateOutletContext]=\"getFooterContext(column)\"\n ></ng-container>\n }\n </td>\n }\n </tr>\n </tfoot>\n</table>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
286
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: DataTableComponent, selector: "lib-data-table", inputs: { data: "data", columns: "columns", styleConfig: "styleConfig" }, outputs: { rowEdit: "rowEdit", rowSave: "rowSave", rowDelete: "rowDelete", selectionChange: "selectionChange" }, queries: [{ propertyName: "columnTemplates", predicate: ColumnDirective }], ngImport: i0, template: "<table [ngStyle]=\"getTableStyle()\">\n <thead>\n <tr [ngStyle]=\"getHeaderStyle()\">\n @for (column of columnsSignal(); track column.id) {\n <th [ngStyle]=\"getCellStyle(-1, $index)\">\n @if (column.headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"getHeaderContext(column)\"\n ></ng-container>\n } @else {\n {{ column.header }}\n }\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of data; track row.id; let rowIndex = $index) {\n <tr [ngStyle]=\"getRowStyle(rowIndex)\">\n @for (column of columnsSignal(); track column.id; let colIndex = $index) {\n <td [ngStyle]=\"getCellStyle(rowIndex, colIndex)\">\n @if (isRowEditing(row.id) && column.cellEditTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.cellEditTemplate\"\n [ngTemplateOutletContext]=\"getCellContext(row, column, rowIndex)\"\n ></ng-container>\n } @else if (column.cellTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"getCellContext(row, column, rowIndex)\"\n ></ng-container>\n } @else {\n {{ getCellValue(row, column) }}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n @if (hasFooter()) {\n <tfoot>\n <tr [ngStyle]=\"getFooterStyle()\">\n @for (column of columnsSignal(); track column.id) {\n <td [ngStyle]=\"getCellStyle(-1, $index)\">\n @if (column.footerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.footerTemplate\"\n [ngTemplateOutletContext]=\"getFooterContext(column)\"\n ></ng-container>\n }\n </td>\n }\n </tr>\n </tfoot>\n }\n</table>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
274
287
|
}
|
|
275
288
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DataTableComponent, decorators: [{
|
|
276
289
|
type: Component,
|
|
277
|
-
args: [{ selector: 'lib-data-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table [ngStyle]=\"getTableStyle()\">\n <thead>\n <tr [ngStyle]=\"getHeaderStyle()\">\n @for (column of columnsSignal(); track column.id) {\n <th [ngStyle]=\"getCellStyle(-1, $index)\">\n @if (column.headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"getHeaderContext(column)\"\n ></ng-container>\n } @else {\n {{ column.header }}\n }\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of data; track row.id; let rowIndex = $index) {\n <tr [ngStyle]=\"getRowStyle(rowIndex)\">\n @for (column of columnsSignal(); track column.id; let colIndex = $index) {\n <td [ngStyle]=\"getCellStyle(rowIndex, colIndex)\">\n @if (isRowEditing(row.id) && column.cellEditTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.cellEditTemplate\"\n [ngTemplateOutletContext]=\"getCellContext(row, column, rowIndex)\"\n ></ng-container>\n } @else if (column.cellTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"getCellContext(row, column, rowIndex)\"\n ></ng-container>\n } @else {\n {{ getCellValue(row, column) }}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n <tfoot>\n <tr [ngStyle]=\"getFooterStyle()\">\n @for (column of columnsSignal(); track column.id) {\n <td [ngStyle]=\"getCellStyle(-1, $index)\">\n @if (column.footerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.footerTemplate\"\n [ngTemplateOutletContext]=\"getFooterContext(column)\"\n ></ng-container>\n }\n </td>\n }\n </tr>\n </tfoot>\n</table>\n" }]
|
|
290
|
+
args: [{ selector: 'lib-data-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table [ngStyle]=\"getTableStyle()\">\n <thead>\n <tr [ngStyle]=\"getHeaderStyle()\">\n @for (column of columnsSignal(); track column.id) {\n <th [ngStyle]=\"getCellStyle(-1, $index)\">\n @if (column.headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"getHeaderContext(column)\"\n ></ng-container>\n } @else {\n {{ column.header }}\n }\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of data; track row.id; let rowIndex = $index) {\n <tr [ngStyle]=\"getRowStyle(rowIndex)\">\n @for (column of columnsSignal(); track column.id; let colIndex = $index) {\n <td [ngStyle]=\"getCellStyle(rowIndex, colIndex)\">\n @if (isRowEditing(row.id) && column.cellEditTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.cellEditTemplate\"\n [ngTemplateOutletContext]=\"getCellContext(row, column, rowIndex)\"\n ></ng-container>\n } @else if (column.cellTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.cellTemplate\"\n [ngTemplateOutletContext]=\"getCellContext(row, column, rowIndex)\"\n ></ng-container>\n } @else {\n {{ getCellValue(row, column) }}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n @if (hasFooter()) {\n <tfoot>\n <tr [ngStyle]=\"getFooterStyle()\">\n @for (column of columnsSignal(); track column.id) {\n <td [ngStyle]=\"getCellStyle(-1, $index)\">\n @if (column.footerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.footerTemplate\"\n [ngTemplateOutletContext]=\"getFooterContext(column)\"\n ></ng-container>\n }\n </td>\n }\n </tr>\n </tfoot>\n }\n</table>\n" }]
|
|
278
291
|
}], propDecorators: { data: [{
|
|
279
292
|
type: Input,
|
|
280
293
|
args: [{ required: true }]
|
|
@@ -337,4 +350,4 @@ const defaultTableStyles = {
|
|
|
337
350
|
borderTop: '2px solid #e0e0e0',
|
|
338
351
|
},
|
|
339
352
|
};
|
|
340
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBU3JELE1BQU0sT0FBTyxrQkFBa0I7SUFHRixJQUFJLENBQU87SUFDWCxPQUFPLENBQXlCO0lBRWxELFdBQVcsR0FBZ0Isa0JBQWtCLENBQUM7SUFHdkQsZUFBZSxDQUE4QjtJQUVuQyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztJQUNoQyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztJQUNoQyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztJQUNsQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUU1QyxpQkFBaUIsR0FBRyxNQUFNLENBQXVCLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1RCxrQkFBa0IsR0FBRyxNQUFNLENBQXVCLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM3RCxnQkFBZ0IsR0FBRyxNQUFNLENBQy9CLElBQUksR0FBRyxFQUFFLENBQ1YsQ0FBQztJQUVGLGFBQWEsR0FBMEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWxFLGtCQUFrQjtR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QUFFO1lBQ0osZUFBZSxFQUFFLFNBQVM7U0FDM0I7UUFDRCxHQUFHLEVBQUU7WUFDSCxlQUFlLEVBQUUsU0FBUztTQUMzQjtRQUNELEdBQUcsRUFBRTtZQUNILFFBQVEsRUFBRSxDQUFDO1lBQ1gsS0FBSyxFQUFFO2dCQUNMLGVBQWUsRUFBRSxTQUFTO2FBQzNCO1NBQ0Y7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLFlBQVksRUFBRSxtQkFBbUI7S0FDbEM7SUFDRCxNQUFNLEVBQUU7UUFDTixlQUFlLEVBQUUsU0FBUztRQUMxQixVQUFVLEVBQUUsTUFBTTtRQUNsQixLQUFLLEVBQUUsTUFBTTtRQUNiLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLFNBQVMsRUFBRSxtQkFBbUI7S0FDL0I7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2lnbmFsLFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbHVtbkRlZmluaXRpb24gfSBmcm9tICcuL2RhdGEtdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgQ29sdW1uRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2x1bW4uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhc2VTdHlsZXMsIFRhYmxlU3R5bGVzIH0gZnJvbSAnLi9zdHlsZS50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kYXRhLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbXBvbmVudDxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIHwgbnVtYmVyIH0+XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdFxue1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBkYXRhITogVFtdO1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2x1bW5zITogQ29sdW1uRGVmaW5pdGlvbjxUPltdO1xuXG4gIEBJbnB1dCgpIHN0eWxlQ29uZmlnOiBUYWJsZVN0eWxlcyA9IGRlZmF1bHRUYWJsZVN0eWxlcztcblxuICBAQ29udGVudENoaWxkcmVuKENvbHVtbkRpcmVjdGl2ZSlcbiAgY29sdW1uVGVtcGxhdGVzITogUXVlcnlMaXN0PENvbHVtbkRpcmVjdGl2ZT47XG5cbiAgQE91dHB1dCgpIHJvd0VkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIEBPdXRwdXQoKSByb3dTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgcm93RGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG5cbiAgcHJpdmF0ZSBlZGl0aW5nUm93c1NpZ25hbCA9IHNpZ25hbDxTZXQ8c3RyaW5nIHwgbnVtYmVyPj4obmV3IFNldCgpKTtcbiAgcHJpdmF0ZSBzZWxlY3RlZFJvd3NTaWduYWwgPSBzaWduYWw8U2V0PHN0cmluZyB8IG51bWJlcj4+KG5ldyBTZXQoKSk7XG4gIHByaXZhdGUgZWRpdGVkRGF0YVNpZ25hbCA9IHNpZ25hbDxNYXA8c3RyaW5nIHwgbnVtYmVyLCBFZGl0ZWREYXRhPFQ+Pj4oXG4gICAgbmV3IE1hcCgpXG4gICk7XG5cbiAgY29sdW1uc1NpZ25hbDogV3JpdGFibGVTaWduYWw8Q29sdW1uRGVmaW5pdGlvbjxUPltdPiA9IHNpZ25hbChbXSk7XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuY29sdW1uVGVtcGxhdGVzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMubWVyZ2VDb2x1bW5UZW1wbGF0ZXMoKSk7XG4gICAgdGhpcy5tZXJnZUNvbHVtblRlbXBsYXRlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUNvbHVtblRlbXBsYXRlcygpIHtcbiAgICBjb25zdCB1cGRhdGVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hpbmdUZW1wbGF0ZSA9IHRoaXMuY29sdW1uVGVtcGxhdGVzLmZpbmQoXG4gICAgICAgICh0KSA9PiB0LmNvbHVtbklkID09PSBjb2x1bW4uaWRcbiAgICAgICk7XG4gICAgICBpZiAobWF0Y2hpbmdUZW1wbGF0ZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmNvbHVtbixcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6IG1hdGNoaW5nVGVtcGxhdGUuY2VsbFRlbXBsYXRlLFxuICAgICAgICAgIGNlbGxFZGl0VGVtcGxhdGU6IG1hdGNoaW5nVGVtcGxhdGUuY2VsbEVkaXRUZW1wbGF0ZSxcbiAgICAgICAgICBoZWFkZXJUZW1wbGF0ZTogbWF0Y2hpbmdUZW1wbGF0ZS5oZWFkZXJUZW1wbGF0ZSxcbiAgICAgICAgICBmb290ZXJUZW1wbGF0ZTogbWF0Y2hpbmdUZW1wbGF0ZS5mb290ZXJUZW1wbGF0ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb2x1bW47XG4gICAgfSk7XG4gICAgdGhpcy5jb2x1bW5zU2lnbmFsLnNldCh1cGRhdGVkQ29sdW1ucyk7XG4gIH1cblxuICBnZXRDZWxsVmFsdWUgPSAocm93OiBULCBjb2x1bW46IENvbHVtbkRlZmluaXRpb248VD4pOiBhbnkgPT4ge1xuICAgIGlmIChjb2x1bW4uYWNjZXNzb3JLZXkpIHtcbiAgICAgIHJldHVybiAocm93IGFzIGFueSlbY29sdW1uLmFjY2Vzc29yS2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbHVtbi5hY2Nlc3NvckZuID8gY29sdW1uLmFjY2Vzc29yRm4ocm93KSA6IHVuZGVmaW5lZDtcbiAgfTtcblxuICBpc1Jvd0VkaXRpbmcgPSAocm93SWQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRpbmdSb3dzU2lnbmFsKCkuaGFzKHJvd0lkKTtcbiAgfTtcblxuICB0b2dnbGVSb3dFZGl0ID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICB0aGlzLmVkaXRpbmdSb3dzU2lnbmFsLnVwZGF0ZSgoc2V0KSA9PiB7XG4gICAgICBjb25zdCBuZXdTZXQgPSBuZXcgU2V0KHNldCk7XG4gICAgICBpZiAobmV3U2V0Lmhhcyhyb3dJZCkpIHtcbiAgICAgICAgbmV3U2V0LmRlbGV0ZShyb3dJZCk7XG4gICAgICAgIHRoaXMuc2F2ZVJvdyhyb3dJZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTZXQuYWRkKHJvd0lkKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRWRpdGVkRGF0YShyb3dJZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3U2V0O1xuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUVkaXRlZERhdGEocm93SWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGNvbnN0IHJvdyA9IHRoaXMuZGF0YS5maW5kKChyKSA9PiByLmlkID09PSByb3dJZCk7XG4gICAgaWYgKHJvdykge1xuICAgICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXAobWFwKTtcbiAgICAgICAgbmV3TWFwLnNldChyb3dJZCwgeyAuLi5yb3cgfSk7XG4gICAgICAgIHJldHVybiBuZXdNYXA7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVSb3cocm93SWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGNvbnN0IGVkaXRlZERhdGEgPSB0aGlzLmVkaXRlZERhdGFTaWduYWwoKS5nZXQocm93SWQpO1xuICAgIGlmIChlZGl0ZWREYXRhKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbFJvd0luZGV4ID0gdGhpcy5kYXRhLmZpbmRJbmRleCgocikgPT4gci5pZCA9PT0gcm93SWQpO1xuICAgICAgaWYgKG9yaWdpbmFsUm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRSb3cgPSB7IC4uLnRoaXMuZGF0YVtvcmlnaW5hbFJvd0luZGV4XSwgLi4uZWRpdGVkRGF0YSB9O1xuICAgICAgICB0aGlzLmRhdGFbb3JpZ2luYWxSb3dJbmRleF0gPSB1cGRhdGVkUm93O1xuICAgICAgICB0aGlzLnJvd1NhdmUuZW1pdCh1cGRhdGVkUm93KTtcbiAgICAgICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChtYXApO1xuICAgICAgICAgIG5ld01hcC5kZWxldGUocm93SWQpO1xuICAgICAgICAgIHJldHVybiBuZXdNYXA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzUm93U2VsZWN0ZWQgPSAocm93SWQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbCgpLmhhcyhyb3dJZCk7XG4gIH07XG5cbiAgdG9nZ2xlUm93U2VsZWN0aW9uID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbC51cGRhdGUoKHNldCkgPT4ge1xuICAgICAgY29uc3QgbmV3U2V0ID0gbmV3IFNldChzZXQpO1xuICAgICAgaWYgKG5ld1NldC5oYXMocm93SWQpKSB7XG4gICAgICAgIG5ld1NldC5kZWxldGUocm93SWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2V0LmFkZChyb3dJZCk7XG4gICAgICB9XG4gICAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgICAgIHJldHVybiBuZXdTZXQ7XG4gICAgfSk7XG4gIH07XG5cbiAgYWxsUm93c1NlbGVjdGVkID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbCgpLnNpemUgPT09IHRoaXMuZGF0YS5sZW5ndGg7XG4gIH07XG5cbiAgc29tZVJvd3NTZWxlY3RlZCA9ICgpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5zaXplID4gMCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5zaXplIDwgdGhpcy5kYXRhLmxlbmd0aFxuICAgICk7XG4gIH07XG5cbiAgdG9nZ2xlQWxsUm93cyA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5hbGxSb3dzU2VsZWN0ZWQoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwuc2V0KG5ldyBTZXQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzU2lnbmFsLnNldChuZXcgU2V0KHRoaXMuZGF0YS5tYXAoKHJvdykgPT4gcm93LmlkKSkpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfTtcblxuICBwcml2YXRlIGVtaXRTZWxlY3Rpb25DaGFuZ2UoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dzID0gdGhpcy5kYXRhLmZpbHRlcigocm93KSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5oYXMocm93LmlkKVxuICAgICk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChzZWxlY3RlZFJvd3MpO1xuICB9XG5cbiAgZ2V0SGVhZGVyQ29udGV4dChjb2x1bW46IENvbHVtbkRlZmluaXRpb248VD4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICBjb2x1bW4sXG4gICAgICBhbGxSb3dzU2VsZWN0ZWQ6IHRoaXMuYWxsUm93c1NlbGVjdGVkLFxuICAgICAgc29tZVJvd3NTZWxlY3RlZDogdGhpcy5zb21lUm93c1NlbGVjdGVkLFxuICAgICAgdG9nZ2xlQWxsUm93czogdGhpcy50b2dnbGVBbGxSb3dzLFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVFZGl0ZWRWYWx1ZShyb3dJZDogc3RyaW5nIHwgbnVtYmVyLCBjb2x1bW5JZDoga2V5b2YgVCwgdmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWRpdGVkRGF0YVNpZ25hbC51cGRhdGUoKG1hcCkgPT4ge1xuICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChtYXApO1xuICAgICAgY29uc3Qgcm93RGF0YSA9IG5ld01hcC5nZXQocm93SWQpIHx8ICh7fSBhcyBFZGl0ZWREYXRhPFQ+KTtcbiAgICAgIG5ld01hcC5zZXQocm93SWQsIHsgLi4ucm93RGF0YSwgW2NvbHVtbklkXTogdmFsdWUgfSk7XG4gICAgICByZXR1cm4gbmV3TWFwO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlTmVzdGVkRWRpdGVkVmFsdWUoXG4gICAgcm93SWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBjb2x1bW5JZDoga2V5b2YgVCxcbiAgICBuZXN0ZWRGaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG1hcCk7XG4gICAgICBjb25zdCByb3dEYXRhID0gbmV3TWFwLmdldChyb3dJZCkgfHwgKHt9IGFzIEVkaXRlZERhdGE8VD4pO1xuICAgICAgY29uc3QgY29sdW1uRGF0YSA9IChyb3dEYXRhW2NvbHVtbklkXSBhcyBhbnkpIHx8IHt9O1xuICAgICAgbmV3TWFwLnNldChyb3dJZCwge1xuICAgICAgICAuLi5yb3dEYXRhLFxuICAgICAgICBbY29sdW1uSWRdOiB7XG4gICAgICAgICAgLi4uY29sdW1uRGF0YSxcbiAgICAgICAgICBbbmVzdGVkRmllbGRdOiB2YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ld01hcDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldENlbGxDb250ZXh0KHJvdzogVCwgY29sdW1uOiBDb2x1bW5EZWZpbml0aW9uPFQ+LCByb3dJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgcm93SWQgPSByb3cuaWQ7XG4gICAgY29uc3QgaXNFZGl0aW5nID0gdGhpcy5pc1Jvd0VkaXRpbmcocm93SWQpO1xuICAgIGNvbnN0IGVkaXRlZERhdGEgPSB0aGlzLmVkaXRlZERhdGFTaWduYWwoKS5nZXQocm93SWQpO1xuXG4gICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgaWYgKGlzRWRpdGluZyAmJiBlZGl0ZWREYXRhICYmIGNvbHVtbi5pZCBpbiBlZGl0ZWREYXRhKSB7XG4gICAgICB2YWx1ZSA9IGVkaXRlZERhdGFbY29sdW1uLmlkIGFzIGtleW9mIFRdO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuZ2V0Q2VsbFZhbHVlKHJvdywgY29sdW1uKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiB2YWx1ZSxcbiAgICAgIHZhbHVlLFxuICAgICAgcm93LFxuICAgICAgY29sdW1uLFxuICAgICAgcm93SW5kZXgsXG4gICAgICBpc0VkaXRpbmcsXG4gICAgICBpc1NlbGVjdGVkOiB0aGlzLmlzUm93U2VsZWN0ZWQocm93SWQpLFxuICAgICAgdG9nZ2xlUm93U2VsZWN0aW9uOiAoKSA9PiB0aGlzLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3dJZCksXG4gICAgICB0b2dnbGVSb3dFZGl0OiAoKSA9PiB0aGlzLnRvZ2dsZVJvd0VkaXQocm93SWQpLFxuICAgICAgZGVsZXRlUm93OiAoKSA9PiB0aGlzLmRlbGV0ZVJvdyhyb3dJZCksXG4gICAgICB1cGRhdGVWYWx1ZTogKG5ld1ZhbHVlOiBhbnkpID0+XG4gICAgICAgIHRoaXMudXBkYXRlRWRpdGVkVmFsdWUocm93SWQsIGNvbHVtbi5pZCBhcyBrZXlvZiBULCBuZXdWYWx1ZSksXG4gICAgICB1cGRhdGVOZXN0ZWRWYWx1ZTogKG5lc3RlZEZpZWxkOiBzdHJpbmcsIG5ld1ZhbHVlOiBhbnkpID0+XG4gICAgICAgIHRoaXMudXBkYXRlTmVzdGVkRWRpdGVkVmFsdWUoXG4gICAgICAgICAgcm93SWQsXG4gICAgICAgICAgY29sdW1uLmlkIGFzIGtleW9mIFQsXG4gICAgICAgICAgbmVzdGVkRmllbGQsXG4gICAgICAgICAgbmV3VmFsdWVcbiAgICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgZGVsZXRlUm93ID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICBjb25zdCByb3dUb0RlbGV0ZSA9IHRoaXMuZGF0YS5maW5kKChyb3cpID0+IHJvdy5pZCA9PT0gcm93SWQpO1xuICAgIGlmIChyb3dUb0RlbGV0ZSkge1xuICAgICAgdGhpcy5yb3dEZWxldGUuZW1pdChyb3dUb0RlbGV0ZSk7XG4gICAgfVxuICB9O1xuXG4gIGdldEZvb3RlckNvbnRleHQoY29sdW1uOiBDb2x1bW5EZWZpbml0aW9uPFQ+KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgY29sdW1uLFxuICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgIH07XG4gIH1cblxuICBnZXRUYWJsZVN0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuc3R5bGVDb25maWcsXG4gICAgICBmb250RmFtaWx5OiB0aGlzLnN0eWxlQ29uZmlnLmZvbnRGYW1pbHksXG4gICAgICBmb250U2l6ZTogdGhpcy5zdHlsZUNvbmZpZy5mb250U2l6ZSxcbiAgICAgIHdoaXRlU3BhY2U6IHRoaXMuc3R5bGVDb25maWcud2hpdGVTcGFjZSxcbiAgICAgIG1hcmdpbjogdGhpcy5zdHlsZUNvbmZpZy5tYXJnaW4sXG4gICAgICBib3JkZXI6IHRoaXMuc3R5bGVDb25maWcuYm9yZGVyLFxuICAgICAgYm9yZGVyQ29sbGFwc2U6IHRoaXMuc3R5bGVDb25maWcuYm9yZGVyQ29sbGFwc2UsXG4gICAgICBib3JkZXJTcGFjaW5nOiB0aGlzLnN0eWxlQ29uZmlnLmJvcmRlclNwYWNpbmcsXG4gICAgICB0YWJsZUxheW91dDogdGhpcy5zdHlsZUNvbmZpZy50YWJsZUxheW91dCxcbiAgICAgIHdpZHRoOiB0aGlzLnN0eWxlQ29uZmlnLndpZHRoLFxuICAgIH07XG4gIH1cblxuICBnZXRIZWFkZXJTdHlsZSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLnN0eWxlQ29uZmlnLmhlYWRlcixcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnN0eWxlQ29uZmlnLmhlYWRlcj8uc3RpY2t5VG9wID8gJ3N0aWNreScgOiAnc3RhdGljJyxcbiAgICAgIHRvcDogdGhpcy5zdHlsZUNvbmZpZy5oZWFkZXI/LnN0aWNreVRvcCA/ICcwJyA6ICdhdXRvJyxcbiAgICAgIHpJbmRleDogdGhpcy5zdHlsZUNvbmZpZy5oZWFkZXI/LnpJbmRleCB8fCAnYXV0bycsXG4gICAgfTtcbiAgfVxuXG4gIGdldEZvb3RlclN0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuc3R5bGVDb25maWcuZm9vdGVyLFxuICAgICAgcG9zaXRpb246IHRoaXMuc3R5bGVDb25maWcuZm9vdGVyPy5zdGlja3lCb3R0b20gPyAnc3RpY2t5JyA6ICdzdGF0aWMnLFxuICAgICAgYm90dG9tOiB0aGlzLnN0eWxlQ29uZmlnLmZvb3Rlcj8uc3RpY2t5Qm90dG9tID8gJzAnIDogJ2F1dG8nLFxuICAgICAgekluZGV4OiB0aGlzLnN0eWxlQ29uZmlnLmZvb3Rlcj8uekluZGV4IHx8ICdhdXRvJyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0Um93U3R5bGUocm93SW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgY29uc3Qgcm93U3R5bGVzID0gdGhpcy5zdHlsZUNvbmZpZy5yb3dzO1xuICAgIGlmIChyb3dTdHlsZXMgJiYgJ2V2ZW4nIGluIHJvd1N0eWxlcyAmJiAnb2RkJyBpbiByb3dTdHlsZXMpIHtcbiAgICAgIHJldHVybiByb3dJbmRleCAlIDIgPT09IDAgPyByb3dTdHlsZXMuZXZlbiA6IHJvd1N0eWxlcy5vZGQ7XG4gICAgfSBlbHNlIGlmIChyb3dTdHlsZXMgJiYgJ250aCcgaW4gcm93U3R5bGVzICYmIHJvd1N0eWxlcy5udGgpIHtcbiAgICAgIGNvbnN0IHsgaW50ZXJ2YWwsIHN0eWxlIH0gPSByb3dTdHlsZXMubnRoO1xuICAgICAgcmV0dXJuIChyb3dJbmRleCArIDEpICUgKGludGVydmFsIHx8IDEpID09PSAwID8gc3R5bGUgOiB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJvd1N0eWxlcyB8fCB7fTtcbiAgICB9XG4gIH1cblxuICBnZXRDZWxsU3R5bGUocm93SW5kZXg6IG51bWJlciwgY29sSW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgY29uc3QgaXNGaXJzdENvbHVtbiA9IGNvbEluZGV4ID09PSAwO1xuICAgIGNvbnN0IGlzTGFzdENvbHVtbiA9IGNvbEluZGV4ID09PSB0aGlzLmNvbHVtbnNTaWduYWwoKS5sZW5ndGggLSAxO1xuXG4gICAgbGV0IGNlbGxTdHlsZSA9IHsgLi4udGhpcy5zdHlsZUNvbmZpZy5jZWxscyB9O1xuXG4gICAgaWYgKGlzRmlyc3RDb2x1bW4pIHtcbiAgICAgIGNlbGxTdHlsZSA9IHtcbiAgICAgICAgLi4uY2VsbFN0eWxlLFxuICAgICAgICAuLi50aGlzLnN0eWxlQ29uZmlnLmZpcnN0Q29sdW1uLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5zdHlsZUNvbmZpZy5maXJzdENvbHVtbj8uc3RpY2t5TGVmdFxuICAgICAgICAgID8gJ3N0aWNreSdcbiAgICAgICAgICA6ICdzdGF0aWMnLFxuICAgICAgICBsZWZ0OiB0aGlzLnN0eWxlQ29uZmlnLmZpcnN0Q29sdW1uPy5zdGlja3lMZWZ0ID8gJzAnIDogJ2F1dG8nLFxuICAgICAgICB6SW5kZXg6IHRoaXMuc3R5bGVDb25maWcuZmlyc3RDb2x1bW4/LnpJbmRleCB8fCAnYXV0bycsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoaXNMYXN0Q29sdW1uKSB7XG4gICAgICBjZWxsU3R5bGUgPSB7XG4gICAgICAgIC4uLmNlbGxTdHlsZSxcbiAgICAgICAgLi4udGhpcy5zdHlsZUNvbmZpZy5sYXN0Q29sdW1uLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5zdHlsZUNvbmZpZy5sYXN0Q29sdW1uPy5zdGlja3lSaWdodFxuICAgICAgICAgID8gJ3N0aWNreSdcbiAgICAgICAgICA6ICdzdGF0aWMnLFxuICAgICAgICByaWdodDogdGhpcy5zdHlsZUNvbmZpZy5sYXN0Q29sdW1uPy5zdGlja3lSaWdodCA/ICcwJyA6ICdhdXRvJyxcbiAgICAgICAgekluZGV4OiB0aGlzLnN0eWxlQ29uZmlnLmxhc3RDb2x1bW4/LnpJbmRleCB8fCAnYXV0bycsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChyb3dJbmRleCA+PSAwKSB7XG4gICAgICAvLyBBcHBseSBib2R5IHN0eWxlcyB0byBhbGwgY2VsbHNcbiAgICAgIGNlbGxTdHlsZSA9IHsgLi4uY2VsbFN0eWxlLCAuLi50aGlzLnN0eWxlQ29uZmlnLmJvZHkgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2VsbFN0eWxlID0geyAuLi50aGlzLnN0eWxlQ29uZmlnLmhlYWRlciB9O1xuICAgIH1cblxuICAgIHJldHVybiBjZWxsU3R5bGU7XG4gIH1cbn1cblxudHlwZSBFZGl0ZWREYXRhPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXT86IFRbS10gZXh0ZW5kcyBvYmplY3QgPyBQYXJ0aWFsPFRbS10+IDogVFtLXTtcbn07XG5cbi8vIERlZmF1bHQgc3R5bGVzXG5jb25zdCBkZWZhdWx0VGFibGVTdHlsZXM6IFRhYmxlU3R5bGVzID0ge1xuICBib3JkZXI6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG4gIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgYm94U2hhZG93OiAnMCAycHggNHB4IHJnYmEoMCwwLDAsMC4xKScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGhlYWRlcjoge1xuICAgIGJhY2tncm91bmRDb2xvcjogJyNmNWY1ZjUnLFxuICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICBjb2xvcjogJyMzMzMnLFxuICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgIHBhZGRpbmc6ICcxMnB4IDE2cHgnLFxuICAgIGJvcmRlckJvdHRvbTogJzJweCBzb2xpZCAjZTBlMGUwJyxcbiAgfSxcbiAgcm93czoge1xuICAgIGV2ZW46IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICAgIH0sXG4gICAgb2RkOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjlmOWY5JyxcbiAgICB9LFxuICAgIG50aDoge1xuICAgICAgaW50ZXJ2YWw6IDUsXG4gICAgICBzdHlsZToge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjBmMGYwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgY2VsbHM6IHtcbiAgICBwYWRkaW5nOiAnMTJweCAxNnB4JyxcbiAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgI2UwZTBlMCcsXG4gIH0sXG4gIGZvb3Rlcjoge1xuICAgIGJhY2tncm91bmRDb2xvcjogJyNmNWY1ZjUnLFxuICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICBjb2xvcjogJyMzMzMnLFxuICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgIHBhZGRpbmc6ICcxMnB4IDE2cHgnLFxuICAgIGJvcmRlclRvcDogJzJweCBzb2xpZCAjZTBlMGUwJyxcbiAgfSxcbn07XG4iLCI8dGFibGUgW25nU3R5bGVdPVwiZ2V0VGFibGVTdHlsZSgpXCI+XG4gIDx0aGVhZD5cbiAgICA8dHIgW25nU3R5bGVdPVwiZ2V0SGVhZGVyU3R5bGUoKVwiPlxuICAgICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnNTaWduYWwoKTsgdHJhY2sgY29sdW1uLmlkKSB7XG4gICAgICA8dGggW25nU3R5bGVdPVwiZ2V0Q2VsbFN0eWxlKC0xLCAkaW5kZXgpXCI+XG4gICAgICAgIEBpZiAoY29sdW1uLmhlYWRlclRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW4uaGVhZGVyVGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRIZWFkZXJDb250ZXh0KGNvbHVtbilcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBjb2x1bW4uaGVhZGVyIH19XG4gICAgICAgIH1cbiAgICAgIDwvdGg+XG4gICAgICB9XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIEBmb3IgKHJvdyBvZiBkYXRhOyB0cmFjayByb3cuaWQ7IGxldCByb3dJbmRleCA9ICRpbmRleCkge1xuICAgIDx0ciBbbmdTdHlsZV09XCJnZXRSb3dTdHlsZShyb3dJbmRleClcIj5cbiAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zU2lnbmFsKCk7IHRyYWNrIGNvbHVtbi5pZDsgbGV0IGNvbEluZGV4ID0gJGluZGV4KSB7XG4gICAgICA8dGQgW25nU3R5bGVdPVwiZ2V0Q2VsbFN0eWxlKHJvd0luZGV4LCBjb2xJbmRleClcIj5cbiAgICAgICAgQGlmIChpc1Jvd0VkaXRpbmcocm93LmlkKSAmJiBjb2x1bW4uY2VsbEVkaXRUZW1wbGF0ZSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uLmNlbGxFZGl0VGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRDZWxsQ29udGV4dChyb3csIGNvbHVtbiwgcm93SW5kZXgpXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBlbHNlIGlmIChjb2x1bW4uY2VsbFRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW4uY2VsbFRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0Q2VsbENvbnRleHQocm93LCBjb2x1bW4sIHJvd0luZGV4KVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHt7IGdldENlbGxWYWx1ZShyb3csIGNvbHVtbikgfX1cbiAgICAgICAgfVxuICAgICAgPC90ZD5cbiAgICAgIH1cbiAgICA8L3RyPlxuICAgIH1cbiAgPC90Ym9keT5cbiAgPHRmb290PlxuICAgIDx0ciBbbmdTdHlsZV09XCJnZXRGb290ZXJTdHlsZSgpXCI+XG4gICAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uc1NpZ25hbCgpOyB0cmFjayBjb2x1bW4uaWQpIHtcbiAgICAgIDx0ZCBbbmdTdHlsZV09XCJnZXRDZWxsU3R5bGUoLTEsICRpbmRleClcIj5cbiAgICAgICAgQGlmIChjb2x1bW4uZm9vdGVyVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5mb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldEZvb3RlckNvbnRleHQoY29sdW1uKVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgPC90ZD5cbiAgICAgIH1cbiAgICA8L3RyPlxuICA8L3Rmb290PlxuPC90YWJsZT5cbiJdfQ==
|
|
353
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQVNyRCxNQUFNLE9BQU8sa0JBQWtCO0lBR0YsSUFBSSxDQUFPO0lBQ3RDLHVDQUF1QztJQUN2QyxJQUNJLE9BQU8sQ0FBQyxLQUE0QjtRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRVEsV0FBVyxHQUFnQixrQkFBa0IsQ0FBQztJQUd2RCxlQUFlLENBQThCO0lBRW5DLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO0lBQ2hDLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO0lBQ2hDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO0lBQ2xDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRTVDLGlCQUFpQixHQUFHLE1BQU0sQ0FBdUIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzVELGtCQUFrQixHQUFHLE1BQU0sQ0FBdUIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzdELGdCQUFnQixH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IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2lnbmFsLFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbHVtbkRlZmluaXRpb24gfSBmcm9tICcuL2RhdGEtdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgQ29sdW1uRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2x1bW4uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhc2VTdHlsZXMsIFRhYmxlU3R5bGVzIH0gZnJvbSAnLi9zdHlsZS50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kYXRhLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbXBvbmVudDxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIHwgbnVtYmVyIH0+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0XG57XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGRhdGEhOiBUW107XG4gIC8vIE1vZGlmeSBjb2x1bW5zIGlucHV0IHRvIHVzZSBhIHNpZ25hbFxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBzZXQgY29sdW1ucyh2YWx1ZTogQ29sdW1uRGVmaW5pdGlvbjxUPltdKSB7XG4gICAgdGhpcy5jb2x1bW5zU2lnbmFsLnNldCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKSBzdHlsZUNvbmZpZzogVGFibGVTdHlsZXMgPSBkZWZhdWx0VGFibGVTdHlsZXM7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDb2x1bW5EaXJlY3RpdmUpXG4gIGNvbHVtblRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxDb2x1bW5EaXJlY3RpdmU+O1xuXG4gIEBPdXRwdXQoKSByb3dFZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgcm93U2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQE91dHB1dCgpIHJvd0RlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gIHByaXZhdGUgZWRpdGluZ1Jvd3NTaWduYWwgPSBzaWduYWw8U2V0PHN0cmluZyB8IG51bWJlcj4+KG5ldyBTZXQoKSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRSb3dzU2lnbmFsID0gc2lnbmFsPFNldDxzdHJpbmcgfCBudW1iZXI+PihuZXcgU2V0KCkpO1xuICBwcml2YXRlIGVkaXRlZERhdGFTaWduYWwgPSBzaWduYWw8TWFwPHN0cmluZyB8IG51bWJlciwgRWRpdGVkRGF0YTxUPj4+KFxuICAgIG5ldyBNYXAoKVxuICApO1xuXG4gIGNvbHVtbnNTaWduYWw6IFdyaXRhYmxlU2lnbmFsPENvbHVtbkRlZmluaXRpb248VD5bXT4gPSBzaWduYWwoW10pO1xuXG4gIGhhc0Zvb3RlciA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5jb2x1bW5zU2lnbmFsKCkuc29tZSgoY29sKSA9PiBjb2wuZm9vdGVyVGVtcGxhdGUgIT09IHVuZGVmaW5lZClcbiAgKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBTZXQgaW5pdGlhbCBjb2x1bW5zIGlmIG5vdCBhbHJlYWR5IHNldFxuICAgIGlmICh0aGlzLmNvbHVtbnNTaWduYWwoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuY29sdW1uc1NpZ25hbC5zZXQodGhpcy5jb2x1bW5zKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5jb2x1bW5UZW1wbGF0ZXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5tZXJnZUNvbHVtblRlbXBsYXRlcygpKTtcbiAgICB0aGlzLm1lcmdlQ29sdW1uVGVtcGxhdGVzKCk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlQ29sdW1uVGVtcGxhdGVzKCkge1xuICAgIC8vIE9ubHkgbWVyZ2UgaWYgd2UgaGF2ZSBib3RoIGNvbHVtbnMgYW5kIHRlbXBsYXRlc1xuICAgIGlmICh0aGlzLmNvbHVtbnNTaWduYWwoKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB1cGRhdGVkQ29sdW1ucyA9IHRoaXMuY29sdW1uc1NpZ25hbCgpLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nVGVtcGxhdGUgPSB0aGlzLmNvbHVtblRlbXBsYXRlcy5maW5kKFxuICAgICAgICAgICh0KSA9PiB0LmNvbHVtbklkID09PSBjb2x1bW4uaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKG1hdGNoaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiBtYXRjaGluZ1RlbXBsYXRlLmNlbGxUZW1wbGF0ZSxcbiAgICAgICAgICAgIGNlbGxFZGl0VGVtcGxhdGU6IG1hdGNoaW5nVGVtcGxhdGUuY2VsbEVkaXRUZW1wbGF0ZSxcbiAgICAgICAgICAgIGhlYWRlclRlbXBsYXRlOiBtYXRjaGluZ1RlbXBsYXRlLmhlYWRlclRlbXBsYXRlLFxuICAgICAgICAgICAgZm9vdGVyVGVtcGxhdGU6IG1hdGNoaW5nVGVtcGxhdGUuZm9vdGVyVGVtcGxhdGUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmNvbHVtbnNTaWduYWwuc2V0KHVwZGF0ZWRDb2x1bW5zKTtcbiAgICB9XG4gIH1cblxuICBnZXRDZWxsVmFsdWUgPSAocm93OiBULCBjb2x1bW46IENvbHVtbkRlZmluaXRpb248VD4pOiBhbnkgPT4ge1xuICAgIGlmIChjb2x1bW4uYWNjZXNzb3JLZXkpIHtcbiAgICAgIHJldHVybiAocm93IGFzIGFueSlbY29sdW1uLmFjY2Vzc29yS2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbHVtbi5hY2Nlc3NvckZuID8gY29sdW1uLmFjY2Vzc29yRm4ocm93KSA6IHVuZGVmaW5lZDtcbiAgfTtcblxuICBpc1Jvd0VkaXRpbmcgPSAocm93SWQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRpbmdSb3dzU2lnbmFsKCkuaGFzKHJvd0lkKTtcbiAgfTtcblxuICB0b2dnbGVSb3dFZGl0ID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICB0aGlzLmVkaXRpbmdSb3dzU2lnbmFsLnVwZGF0ZSgoc2V0KSA9PiB7XG4gICAgICBjb25zdCBuZXdTZXQgPSBuZXcgU2V0KHNldCk7XG4gICAgICBpZiAobmV3U2V0Lmhhcyhyb3dJZCkpIHtcbiAgICAgICAgbmV3U2V0LmRlbGV0ZShyb3dJZCk7XG4gICAgICAgIHRoaXMuc2F2ZVJvdyhyb3dJZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTZXQuYWRkKHJvd0lkKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRWRpdGVkRGF0YShyb3dJZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3U2V0O1xuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUVkaXRlZERhdGEocm93SWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGNvbnN0IHJvdyA9IHRoaXMuZGF0YS5maW5kKChyKSA9PiByLmlkID09PSByb3dJZCk7XG4gICAgaWYgKHJvdykge1xuICAgICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXAobWFwKTtcbiAgICAgICAgbmV3TWFwLnNldChyb3dJZCwgeyAuLi5yb3cgfSk7XG4gICAgICAgIHJldHVybiBuZXdNYXA7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVSb3cocm93SWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGNvbnN0IGVkaXRlZERhdGEgPSB0aGlzLmVkaXRlZERhdGFTaWduYWwoKS5nZXQocm93SWQpO1xuICAgIGlmIChlZGl0ZWREYXRhKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbFJvd0luZGV4ID0gdGhpcy5kYXRhLmZpbmRJbmRleCgocikgPT4gci5pZCA9PT0gcm93SWQpO1xuICAgICAgaWYgKG9yaWdpbmFsUm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRSb3cgPSB7IC4uLnRoaXMuZGF0YVtvcmlnaW5hbFJvd0luZGV4XSwgLi4uZWRpdGVkRGF0YSB9O1xuICAgICAgICB0aGlzLmRhdGFbb3JpZ2luYWxSb3dJbmRleF0gPSB1cGRhdGVkUm93O1xuICAgICAgICB0aGlzLnJvd1NhdmUuZW1pdCh1cGRhdGVkUm93KTtcbiAgICAgICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChtYXApO1xuICAgICAgICAgIG5ld01hcC5kZWxldGUocm93SWQpO1xuICAgICAgICAgIHJldHVybiBuZXdNYXA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzUm93U2VsZWN0ZWQgPSAocm93SWQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbCgpLmhhcyhyb3dJZCk7XG4gIH07XG5cbiAgdG9nZ2xlUm93U2VsZWN0aW9uID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbC51cGRhdGUoKHNldCkgPT4ge1xuICAgICAgY29uc3QgbmV3U2V0ID0gbmV3IFNldChzZXQpO1xuICAgICAgaWYgKG5ld1NldC5oYXMocm93SWQpKSB7XG4gICAgICAgIG5ld1NldC5kZWxldGUocm93SWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2V0LmFkZChyb3dJZCk7XG4gICAgICB9XG4gICAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgICAgIHJldHVybiBuZXdTZXQ7XG4gICAgfSk7XG4gIH07XG5cbiAgYWxsUm93c1NlbGVjdGVkID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbCgpLnNpemUgPT09IHRoaXMuZGF0YS5sZW5ndGg7XG4gIH07XG5cbiAgc29tZVJvd3NTZWxlY3RlZCA9ICgpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5zaXplID4gMCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5zaXplIDwgdGhpcy5kYXRhLmxlbmd0aFxuICAgICk7XG4gIH07XG5cbiAgdG9nZ2xlQWxsUm93cyA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5hbGxSb3dzU2VsZWN0ZWQoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwuc2V0KG5ldyBTZXQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzU2lnbmFsLnNldChuZXcgU2V0KHRoaXMuZGF0YS5tYXAoKHJvdykgPT4gcm93LmlkKSkpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfTtcblxuICBwcml2YXRlIGVtaXRTZWxlY3Rpb25DaGFuZ2UoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dzID0gdGhpcy5kYXRhLmZpbHRlcigocm93KSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5oYXMocm93LmlkKVxuICAgICk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChzZWxlY3RlZFJvd3MpO1xuICB9XG5cbiAgZ2V0SGVhZGVyQ29udGV4dChjb2x1bW46IENvbHVtbkRlZmluaXRpb248VD4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICBjb2x1bW4sXG4gICAgICBhbGxSb3dzU2VsZWN0ZWQ6IHRoaXMuYWxsUm93c1NlbGVjdGVkLFxuICAgICAgc29tZVJvd3NTZWxlY3RlZDogdGhpcy5zb21lUm93c1NlbGVjdGVkLFxuICAgICAgdG9nZ2xlQWxsUm93czogdGhpcy50b2dnbGVBbGxSb3dzLFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVFZGl0ZWRWYWx1ZShyb3dJZDogc3RyaW5nIHwgbnVtYmVyLCBjb2x1bW5JZDoga2V5b2YgVCwgdmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWRpdGVkRGF0YVNpZ25hbC51cGRhdGUoKG1hcCkgPT4ge1xuICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChtYXApO1xuICAgICAgY29uc3Qgcm93RGF0YSA9IG5ld01hcC5nZXQocm93SWQpIHx8ICh7fSBhcyBFZGl0ZWREYXRhPFQ+KTtcbiAgICAgIG5ld01hcC5zZXQocm93SWQsIHsgLi4ucm93RGF0YSwgW2NvbHVtbklkXTogdmFsdWUgfSk7XG4gICAgICByZXR1cm4gbmV3TWFwO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlTmVzdGVkRWRpdGVkVmFsdWUoXG4gICAgcm93SWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBjb2x1bW5JZDoga2V5b2YgVCxcbiAgICBuZXN0ZWRGaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG1hcCk7XG4gICAgICBjb25zdCByb3dEYXRhID0gbmV3TWFwLmdldChyb3dJZCkgfHwgKHt9IGFzIEVkaXRlZERhdGE8VD4pO1xuICAgICAgY29uc3QgY29sdW1uRGF0YSA9IChyb3dEYXRhW2NvbHVtbklkXSBhcyBhbnkpIHx8IHt9O1xuICAgICAgbmV3TWFwLnNldChyb3dJZCwge1xuICAgICAgICAuLi5yb3dEYXRhLFxuICAgICAgICBbY29sdW1uSWRdOiB7XG4gICAgICAgICAgLi4uY29sdW1uRGF0YSxcbiAgICAgICAgICBbbmVzdGVkRmllbGRdOiB2YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ld01hcDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldENlbGxDb250ZXh0KHJvdzogVCwgY29sdW1uOiBDb2x1bW5EZWZpbml0aW9uPFQ+LCByb3dJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgcm93SWQgPSByb3cuaWQ7XG4gICAgY29uc3QgaXNFZGl0aW5nID0gdGhpcy5pc1Jvd0VkaXRpbmcocm93SWQpO1xuICAgIGNvbnN0IGVkaXRlZERhdGEgPSB0aGlzLmVkaXRlZERhdGFTaWduYWwoKS5nZXQocm93SWQpO1xuXG4gICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgaWYgKGlzRWRpdGluZyAmJiBlZGl0ZWREYXRhICYmIGNvbHVtbi5pZCBpbiBlZGl0ZWREYXRhKSB7XG4gICAgICB2YWx1ZSA9IGVkaXRlZERhdGFbY29sdW1uLmlkIGFzIGtleW9mIFRdO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuZ2V0Q2VsbFZhbHVlKHJvdywgY29sdW1uKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiB2YWx1ZSxcbiAgICAgIHZhbHVlLFxuICAgICAgcm93LFxuICAgICAgY29sdW1uLFxuICAgICAgcm93SW5kZXgsXG4gICAgICBpc0VkaXRpbmcsXG4gICAgICBpc1NlbGVjdGVkOiB0aGlzLmlzUm93U2VsZWN0ZWQocm93SWQpLFxuICAgICAgdG9nZ2xlUm93U2VsZWN0aW9uOiAoKSA9PiB0aGlzLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3dJZCksXG4gICAgICB0b2dnbGVSb3dFZGl0OiAoKSA9PiB0aGlzLnRvZ2dsZVJvd0VkaXQocm93SWQpLFxuICAgICAgZGVsZXRlUm93OiAoKSA9PiB0aGlzLmRlbGV0ZVJvdyhyb3dJZCksXG4gICAgICB1cGRhdGVWYWx1ZTogKG5ld1ZhbHVlOiBhbnkpID0+XG4gICAgICAgIHRoaXMudXBkYXRlRWRpdGVkVmFsdWUocm93SWQsIGNvbHVtbi5pZCBhcyBrZXlvZiBULCBuZXdWYWx1ZSksXG4gICAgICB1cGRhdGVOZXN0ZWRWYWx1ZTogKG5lc3RlZEZpZWxkOiBzdHJpbmcsIG5ld1ZhbHVlOiBhbnkpID0+XG4gICAgICAgIHRoaXMudXBkYXRlTmVzdGVkRWRpdGVkVmFsdWUoXG4gICAgICAgICAgcm93SWQsXG4gICAgICAgICAgY29sdW1uLmlkIGFzIGtleW9mIFQsXG4gICAgICAgICAgbmVzdGVkRmllbGQsXG4gICAgICAgICAgbmV3VmFsdWVcbiAgICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgZGVsZXRlUm93ID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICBjb25zdCByb3dUb0RlbGV0ZSA9IHRoaXMuZGF0YS5maW5kKChyb3cpID0+IHJvdy5pZCA9PT0gcm93SWQpO1xuICAgIGlmIChyb3dUb0RlbGV0ZSkge1xuICAgICAgdGhpcy5yb3dEZWxldGUuZW1pdChyb3dUb0RlbGV0ZSk7XG4gICAgfVxuICB9O1xuXG4gIGdldEZvb3RlckNvbnRleHQoY29sdW1uOiBDb2x1bW5EZWZpbml0aW9uPFQ+KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgY29sdW1uLFxuICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgIH07XG4gIH1cblxuICBnZXRUYWJsZVN0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuc3R5bGVDb25maWcsXG4gICAgICBmb250RmFtaWx5OiB0aGlzLnN0eWxlQ29uZmlnLmZvbnRGYW1pbHksXG4gICAgICBmb250U2l6ZTogdGhpcy5zdHlsZUNvbmZpZy5mb250U2l6ZSxcbiAgICAgIHdoaXRlU3BhY2U6IHRoaXMuc3R5bGVDb25maWcud2hpdGVTcGFjZSxcbiAgICAgIG1hcmdpbjogdGhpcy5zdHlsZUNvbmZpZy5tYXJnaW4sXG4gICAgICBib3JkZXI6IHRoaXMuc3R5bGVDb25maWcuYm9yZGVyLFxuICAgICAgYm9yZGVyQ29sbGFwc2U6IHRoaXMuc3R5bGVDb25maWcuYm9yZGVyQ29sbGFwc2UsXG4gICAgICBib3JkZXJTcGFjaW5nOiB0aGlzLnN0eWxlQ29uZmlnLmJvcmRlclNwYWNpbmcsXG4gICAgICB0YWJsZUxheW91dDogdGhpcy5zdHlsZUNvbmZpZy50YWJsZUxheW91dCxcbiAgICAgIHdpZHRoOiB0aGlzLnN0eWxlQ29uZmlnLndpZHRoLFxuICAgIH07XG4gIH1cblxuICBnZXRIZWFkZXJTdHlsZSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLnN0eWxlQ29uZmlnLmhlYWRlcixcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnN0eWxlQ29uZmlnLmhlYWRlcj8uc3RpY2t5VG9wID8gJ3N0aWNreScgOiAnc3RhdGljJyxcbiAgICAgIHRvcDogdGhpcy5zdHlsZUNvbmZpZy5oZWFkZXI/LnN0aWNreVRvcCA/ICcwJyA6ICdhdXRvJyxcbiAgICAgIHpJbmRleDogdGhpcy5zdHlsZUNvbmZpZy5oZWFkZXI/LnpJbmRleCB8fCAnYXV0bycsXG4gICAgfTtcbiAgfVxuXG4gIGdldEZvb3RlclN0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuc3R5bGVDb25maWcuZm9vdGVyLFxuICAgICAgcG9zaXRpb246IHRoaXMuc3R5bGVDb25maWcuZm9vdGVyPy5zdGlja3lCb3R0b20gPyAnc3RpY2t5JyA6ICdzdGF0aWMnLFxuICAgICAgYm90dG9tOiB0aGlzLnN0eWxlQ29uZmlnLmZvb3Rlcj8uc3RpY2t5Qm90dG9tID8gJzAnIDogJ2F1dG8nLFxuICAgICAgekluZGV4OiB0aGlzLnN0eWxlQ29uZmlnLmZvb3Rlcj8uekluZGV4IHx8ICdhdXRvJyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0Um93U3R5bGUocm93SW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgY29uc3Qgcm93U3R5bGVzID0gdGhpcy5zdHlsZUNvbmZpZy5yb3dzO1xuICAgIGlmIChyb3dTdHlsZXMgJiYgJ2V2ZW4nIGluIHJvd1N0eWxlcyAmJiAnb2RkJyBpbiByb3dTdHlsZXMpIHtcbiAgICAgIHJldHVybiByb3dJbmRleCAlIDIgPT09IDAgPyByb3dTdHlsZXMuZXZlbiA6IHJvd1N0eWxlcy5vZGQ7XG4gICAgfSBlbHNlIGlmIChyb3dTdHlsZXMgJiYgJ250aCcgaW4gcm93U3R5bGVzICYmIHJvd1N0eWxlcy5udGgpIHtcbiAgICAgIGNvbnN0IHsgaW50ZXJ2YWwsIHN0eWxlIH0gPSByb3dTdHlsZXMubnRoO1xuICAgICAgcmV0dXJuIChyb3dJbmRleCArIDEpICUgKGludGVydmFsIHx8IDEpID09PSAwID8gc3R5bGUgOiB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJvd1N0eWxlcyB8fCB7fTtcbiAgICB9XG4gIH1cblxuICBnZXRDZWxsU3R5bGUocm93SW5kZXg6IG51bWJlciwgY29sSW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgY29uc3QgaXNGaXJzdENvbHVtbiA9IGNvbEluZGV4ID09PSAwO1xuICAgIGNvbnN0IGlzTGFzdENvbHVtbiA9IGNvbEluZGV4ID09PSB0aGlzLmNvbHVtbnNTaWduYWwoKS5sZW5ndGggLSAxO1xuXG4gICAgbGV0IGNlbGxTdHlsZSA9IHsgLi4udGhpcy5zdHlsZUNvbmZpZy5jZWxscyB9O1xuXG4gICAgaWYgKGlzRmlyc3RDb2x1bW4pIHtcbiAgICAgIGNlbGxTdHlsZSA9IHtcbiAgICAgICAgLi4uY2VsbFN0eWxlLFxuICAgICAgICAuLi50aGlzLnN0eWxlQ29uZmlnLmZpcnN0Q29sdW1uLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5zdHlsZUNvbmZpZy5maXJzdENvbHVtbj8uc3RpY2t5TGVmdFxuICAgICAgICAgID8gJ3N0aWNreSdcbiAgICAgICAgICA6ICdzdGF0aWMnLFxuICAgICAgICBsZWZ0OiB0aGlzLnN0eWxlQ29uZmlnLmZpcnN0Q29sdW1uPy5zdGlja3lMZWZ0ID8gJzAnIDogJ2F1dG8nLFxuICAgICAgICB6SW5kZXg6IHRoaXMuc3R5bGVDb25maWcuZmlyc3RDb2x1bW4/LnpJbmRleCB8fCAnYXV0bycsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoaXNMYXN0Q29sdW1uKSB7XG4gICAgICBjZWxsU3R5bGUgPSB7XG4gICAgICAgIC4uLmNlbGxTdHlsZSxcbiAgICAgICAgLi4udGhpcy5zdHlsZUNvbmZpZy5sYXN0Q29sdW1uLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5zdHlsZUNvbmZpZy5sYXN0Q29sdW1uPy5zdGlja3lSaWdodFxuICAgICAgICAgID8gJ3N0aWNreSdcbiAgICAgICAgICA6ICdzdGF0aWMnLFxuICAgICAgICByaWdodDogdGhpcy5zdHlsZUNvbmZpZy5sYXN0Q29sdW1uPy5zdGlja3lSaWdodCA/ICcwJyA6ICdhdXRvJyxcbiAgICAgICAgekluZGV4OiB0aGlzLnN0eWxlQ29uZmlnLmxhc3RDb2x1bW4/LnpJbmRleCB8fCAnYXV0bycsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChyb3dJbmRleCA+PSAwKSB7XG4gICAgICAvLyBBcHBseSBib2R5IHN0eWxlcyB0byBhbGwgY2VsbHNcbiAgICAgIGNlbGxTdHlsZSA9IHsgLi4uY2VsbFN0eWxlLCAuLi50aGlzLnN0eWxlQ29uZmlnLmJvZHkgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2VsbFN0eWxlID0geyAuLi50aGlzLnN0eWxlQ29uZmlnLmhlYWRlciB9O1xuICAgIH1cblxuICAgIHJldHVybiBjZWxsU3R5bGU7XG4gIH1cbn1cblxudHlwZSBFZGl0ZWREYXRhPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXT86IFRbS10gZXh0ZW5kcyBvYmplY3QgPyBQYXJ0aWFsPFRbS10+IDogVFtLXTtcbn07XG5cbi8vIERlZmF1bHQgc3R5bGVzXG5jb25zdCBkZWZhdWx0VGFibGVTdHlsZXM6IFRhYmxlU3R5bGVzID0ge1xuICBib3JkZXI6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG4gIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgYm94U2hhZG93OiAnMCAycHggNHB4IHJnYmEoMCwwLDAsMC4xKScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGhlYWRlcjoge1xuICAgIGJhY2tncm91bmRDb2xvcjogJyNmNWY1ZjUnLFxuICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICBjb2xvcjogJyMzMzMnLFxuICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgIHBhZGRpbmc6ICcxMnB4IDE2cHgnLFxuICAgIGJvcmRlckJvdHRvbTogJzJweCBzb2xpZCAjZTBlMGUwJyxcbiAgfSxcbiAgcm93czoge1xuICAgIGV2ZW46IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICAgIH0sXG4gICAgb2RkOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjlmOWY5JyxcbiAgICB9LFxuICAgIG50aDoge1xuICAgICAgaW50ZXJ2YWw6IDUsXG4gICAgICBzdHlsZToge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjBmMGYwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgY2VsbHM6IHtcbiAgICBwYWRkaW5nOiAnMTJweCAxNnB4JyxcbiAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgI2UwZTBlMCcsXG4gIH0sXG4gIGZvb3Rlcjoge1xuICAgIGJhY2tncm91bmRDb2xvcjogJyNmNWY1ZjUnLFxuICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICBjb2xvcjogJyMzMzMnLFxuICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgIHBhZGRpbmc6ICcxMnB4IDE2cHgnLFxuICAgIGJvcmRlclRvcDogJzJweCBzb2xpZCAjZTBlMGUwJyxcbiAgfSxcbn07XG4iLCI8dGFibGUgW25nU3R5bGVdPVwiZ2V0VGFibGVTdHlsZSgpXCI+XG4gIDx0aGVhZD5cbiAgICA8dHIgW25nU3R5bGVdPVwiZ2V0SGVhZGVyU3R5bGUoKVwiPlxuICAgICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnNTaWduYWwoKTsgdHJhY2sgY29sdW1uLmlkKSB7XG4gICAgICA8dGggW25nU3R5bGVdPVwiZ2V0Q2VsbFN0eWxlKC0xLCAkaW5kZXgpXCI+XG4gICAgICAgIEBpZiAoY29sdW1uLmhlYWRlclRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW4uaGVhZGVyVGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRIZWFkZXJDb250ZXh0KGNvbHVtbilcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBjb2x1bW4uaGVhZGVyIH19XG4gICAgICAgIH1cbiAgICAgIDwvdGg+XG4gICAgICB9XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIEBmb3IgKHJvdyBvZiBkYXRhOyB0cmFjayByb3cuaWQ7IGxldCByb3dJbmRleCA9ICRpbmRleCkge1xuICAgIDx0ciBbbmdTdHlsZV09XCJnZXRSb3dTdHlsZShyb3dJbmRleClcIj5cbiAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zU2lnbmFsKCk7IHRyYWNrIGNvbHVtbi5pZDsgbGV0IGNvbEluZGV4ID0gJGluZGV4KSB7XG4gICAgICA8dGQgW25nU3R5bGVdPVwiZ2V0Q2VsbFN0eWxlKHJvd0luZGV4LCBjb2xJbmRleClcIj5cbiAgICAgICAgQGlmIChpc1Jvd0VkaXRpbmcocm93LmlkKSAmJiBjb2x1bW4uY2VsbEVkaXRUZW1wbGF0ZSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uLmNlbGxFZGl0VGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRDZWxsQ29udGV4dChyb3csIGNvbHVtbiwgcm93SW5kZXgpXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBlbHNlIGlmIChjb2x1bW4uY2VsbFRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW4uY2VsbFRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0Q2VsbENvbnRleHQocm93LCBjb2x1bW4sIHJvd0luZGV4KVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHt7IGdldENlbGxWYWx1ZShyb3csIGNvbHVtbikgfX1cbiAgICAgICAgfVxuICAgICAgPC90ZD5cbiAgICAgIH1cbiAgICA8L3RyPlxuICAgIH1cbiAgPC90Ym9keT5cbiAgQGlmIChoYXNGb290ZXIoKSkge1xuICA8dGZvb3Q+XG4gICAgPHRyIFtuZ1N0eWxlXT1cImdldEZvb3RlclN0eWxlKClcIj5cbiAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zU2lnbmFsKCk7IHRyYWNrIGNvbHVtbi5pZCkge1xuICAgICAgPHRkIFtuZ1N0eWxlXT1cImdldENlbGxTdHlsZSgtMSwgJGluZGV4KVwiPlxuICAgICAgICBAaWYgKGNvbHVtbi5mb290ZXJUZW1wbGF0ZSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uLmZvb3RlclRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0Rm9vdGVyQ29udGV4dChjb2x1bW4pXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L3RkPlxuICAgICAgfVxuICAgIDwvdHI+XG4gIDwvdGZvb3Q+XG4gIH1cbjwvdGFibGU+XG4iXX0=
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
38
38
|
}], outSideClick: [{
|
|
39
39
|
type: Output
|
|
40
40
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LWNsaWNrLW91dHNpZGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvZGF0YS12aWV3LWNsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUV4QyxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDOztBQU12QixNQUFNLE9BQU8scUJBQXFCO0lBR1o7SUFBNkI7SUFGeEMsZUFBZSxDQUFVO0lBQ3hCLFlBQVksR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNoRSxZQUFvQixPQUFtQixFQUFVLFFBQW1CO1FBQWhELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQUcsQ0FBQztJQUVoRSxRQUFRLENBQTJCO0lBRTNDLGVBQWUsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNsQyxVQUFVLEVBQ1YsT0FBTyxFQUNQLElBQUksQ0FBQyxlQUFlLENBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQzt1R0F6QlUscUJBQXFCOzJGQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3VHQUVVLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGRpcmVjdGl2ZXMvb3V0c2lkZS1jbGljay5kaXJlY3RpdmUudHNcblxuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICBcbiAgQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXBwT3V0U2lkZUNsaWNrXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgfSlcbiAgZXhwb3J0IGNsYXNzIE91dFNpZGVDbGlja0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBhcHBPdXRTaWRlQ2xpY2shOiBib29sZWFuXG4gICAgQE91dHB1dCgpIG91dFNpZGVDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuICBcbiAgICBwcml2YXRlIGxpc3RlbmVyOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gIFxuICAgIG9uRG9jdW1lbnRDbGljayA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgIGlmICghdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgIHRoaXMub3V0U2lkZUNsaWNrLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9O1xuICBcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIHRoaXMubGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgJ2RvY3VtZW50JyxcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgdGhpcy5vbkRvY3VtZW50Q2xpY2tcbiAgICAgICk7XG4gICAgfVxuICBcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmxpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMubGlzdGVuZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0iXX0=
|