ontimize-web-ngx 15.5.5 → 15.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +1 -1
- package/esm2020/lib/components/table/column/o-column.class.mjs +1 -1
- package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +24 -6
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +75 -87
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +53 -0
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +12 -4
- package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
- package/esm2020/lib/components/table/o-table.component.mjs +21 -8
- package/esm2020/lib/components/table/o-table.module.mjs +4 -1
- package/esm2020/lib/interfaces/o-table-column.interface.mjs +1 -1
- package/esm2020/lib/types/table/o-column-value-filter.type.mjs +1 -1
- package/fesm2015/ontimize-web-ngx.mjs +175 -95
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +165 -92
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.d.ts +1 -1
- package/lib/components/table/column/o-column.class.d.ts +1 -1
- package/lib/components/table/extensions/contextmenu/o-table-context-menu.component.d.ts +2 -0
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +9 -6
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.d.ts +12 -0
- package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +1 -1
- package/lib/components/table/o-table-base.class.d.ts +2 -0
- package/lib/components/table/o-table.component.d.ts +2 -0
- package/lib/interfaces/o-table-column.interface.d.ts +1 -1
- package/lib/types/table/o-column-value-filter.type.d.ts +3 -0
- package/package.json +1 -1
- package/theme.scss +26 -26
package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs
CHANGED
|
@@ -83,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
83
83
|
inputs: DEFAULT_INPUTS_O_BASE_TABLE_CELL_RENDERER
|
|
84
84
|
}]
|
|
85
85
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1iYXNlLXRhYmxlLWNlbGwtcmVuZGVyZXIuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci9vLWJhc2UtdGFibGUtY2VsbC1yZW5kZXJlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxRQUFRLEVBQXNDLE1BQU0sZUFBZSxDQUFDO0FBSTFHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFcEUsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUc7SUFDdkQsNkJBQTZCO0lBQzdCLGlDQUFpQztDQUNsQyxDQUFDO0FBTUYsTUFBTSxPQUFPLHNCQUFzQjtJQVdqQyxZQUFzQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBUGpDLGtCQUFhLEdBQStCLFFBQVEsQ0FBQztRQVExRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLFVBQVU7SUFFakIsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxVQUFVLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7U0FDakM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBS00sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQU9NLFdBQVcsQ0FBQyxTQUFjLEVBQUUsUUFBYztRQUMvQyxJQUFJLFdBQW1CLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDckYsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0U7YUFBTTtZQUNMLFdBQVcsR0FBRyxTQUFTLENBQUM7U0FDekI7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sVUFBVSxDQUFDLFNBQWMsRUFBRSxRQUFhO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEdBQVc7UUFDMUIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxLQUFLLE1BQU0sSUFBSSxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ25ILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQVFELFNBQVMsQ0FBQyxTQUFjLEVBQUUsUUFBYztRQUN0QyxJQUFJLE1BQU0sQ0FBQztRQUNYLFFBQVEsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN6QixLQUFLLFFBQVE7Z0JBQ1gsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDakQsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxNQUFNLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDckIsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDNUQsTUFBTTtTQUNUO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFdBQW1CO1FBQzVDLE9BQU8scUJBQXFCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs7b0hBcEdVLHNCQUFzQjt3R0FBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsTUFBTSxFQUFFLHlDQUF5QztpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBEaXJlY3RpdmUsIEluamVjdG9yLCBPbkluaXQsIFBpcGVUcmFuc2Zvcm0sIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9UYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvby10YWJsZS1jb2x1bW4uaW50ZXJmYWNlJztcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcy9leHByZXNzaW9uLnR5cGUnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB0eXBlIHsgT1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vby10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT1RhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vby10YWJsZS1jb2x1bW4uY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fQkFTRV9UQUJMRV9DRUxMX1JFTkRFUkVSID0gW1xuICAnZmlsdGVyU291cmNlOiBmaWx0ZXItc291cmNlJyxcbiAgJ2ZpbHRlckZ1bmN0aW9uOiBmaWx0ZXItZnVuY3Rpb24nXG5dO1xuXG5ARGlyZWN0aXZlKHtcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX0JBU0VfVEFCTEVfQ0VMTF9SRU5ERVJFUlxufSlcblxuZXhwb3J0IGNsYXNzIE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuXG4gIHB1YmxpYyB0ZW1wbGF0ZXJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHVibGljIHRhYmxlQ29sdW1uOiBPVGFibGVDb2x1bW47XG4gIHB1YmxpYyBfZmlsdGVyU291cmNlOiAncmVuZGVyJyB8ICdkYXRhJyB8ICdib3RoJyA9ICdyZW5kZXInO1xuICBwdWJsaWMgZmlsdGVyRnVuY3Rpb246IChjZWxsVmFsdWU6IGFueSwgcm93VmFsdWU6IGFueSwgcXVpY2tGaWx0ZXI/OiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIHR5cGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIHBpcGVBcmd1bWVudHM6IGFueTtcbiAgcHJvdGVjdGVkIGNvbXBvbmVudFBpcGU6IFBpcGVUcmFuc2Zvcm07XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMudGFibGVDb2x1bW4gPSB0aGlzLmluamVjdG9yLmdldChPVGFibGVDb2x1bW5Db21wb25lbnQpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlckZ1bmN0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmZpbHRlckZ1bmN0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lzdGVyUmVuZGVyZXIoKTtcbiAgfVxuXG4gIGdldCB0YWJsZSgpOiBPVGFibGVDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1uLnRhYmxlO1xuICB9XG5cbiAgZ2V0IGNvbHVtbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1uLmF0dHI7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHJlbmRlcmVyXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJSZW5kZXJlcigpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlQ29sdW1uLnJlZ2lzdGVyUmVuZGVyZXIodGhpcyk7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLnR5cGUpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMudGFibGVDb2x1bW4udHlwZSkpIHtcbiAgICAgIHRoaXMudHlwZSA9IHRoaXMudGFibGVDb2x1bW4udHlwZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGlzcGxheWVkIHRhYmxlIGNlbGwgdmFsdWVcbiAgICogQHBhcmFtIGNlbGx2YWx1ZSB0aGUgaW50ZXJuYWwgdGFibGUgY2VsbCB2YWx1ZVxuICAgKiBAcGFyYW0gcm93dmFsdWUgdGhlIHRhYmxlIHJvdyB2YWx1ZVxuICAgKi9cbiAgcHVibGljIGdldENlbGxEYXRhKGNlbGx2YWx1ZTogYW55LCByb3d2YWx1ZT86IGFueSk6IHN0cmluZyB7XG4gICAgbGV0IHBhcnNlZFZhbHVlOiBzdHJpbmc7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UGlwZSAmJiB0aGlzLnBpcGVBcmd1bWVudHMgIT09IHVuZGVmaW5lZCAmJiBjZWxsdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyc2VkVmFsdWUgPSB0aGlzLmNvbXBvbmVudFBpcGUudHJhbnNmb3JtKGNlbGx2YWx1ZSwgdGhpcy5waXBlQXJndW1lbnRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VkVmFsdWUgPSBjZWxsdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZWRWYWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUb29sdGlwKGNlbGxWYWx1ZTogYW55LCByb3dWYWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDZWxsRGF0YShjZWxsVmFsdWUsIHJvd1ZhbHVlKTtcbiAgfVxuXG4gIHNldCBmaWx0ZXJTb3VyY2UodmFsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsb3dlclZhbCA9ICh2YWwgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5fZmlsdGVyU291cmNlID0gKGxvd2VyVmFsID09PSAncmVuZGVyJyB8fCBsb3dlclZhbCA9PT0gJ2RhdGEnIHx8IGxvd2VyVmFsID09PSAnYm90aCcpID8gbG93ZXJWYWwgOiAncmVuZGVyJztcbiAgfVxuXG4gIGdldCBmaWx0ZXJTb3VyY2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyU291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgdmFsdWVzIHRvIGZpbHRlclxuICAgKiBAcGFyYW0gY2VsbFZhbHVlXG4gICAqIEBwYXJhbSBbcm93VmFsdWVdXG4gICAqIEByZXR1cm5zIGZpbHRlclxuICAgKi9cbiAgZ2V0RmlsdGVyKGNlbGxWYWx1ZTogYW55LCByb3dWYWx1ZT86IGFueSk6IGFueVtdIHtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHN3aXRjaCAodGhpcy5maWx0ZXJTb3VyY2UpIHtcbiAgICAgIGNhc2UgJ3JlbmRlcic6XG4gICAgICAgIHJlc3VsdCA9IFt0aGlzLmdldENlbGxEYXRhKGNlbGxWYWx1ZSwgcm93VmFsdWUpXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkYXRhJzpcbiAgICAgICAgcmVzdWx0ID0gW2NlbGxWYWx1ZV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90aCc6XG4gICAgICAgIHJlc3VsdCA9IFtjZWxsVmFsdWUsIHRoaXMuZ2V0Q2VsbERhdGEoY2VsbFZhbHVlLCByb3dWYWx1ZSldO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWx0ZXJFeHByZXNzaW9uKHF1aWNrRmlsdGVyOiBzdHJpbmcpOiBFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkRXhwcmVzc2lvbkxpa2UodGhpcy50YWJsZUNvbHVtbi5hdHRyLCBxdWlja0ZpbHRlcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -198,4 +198,4 @@ export class OColumn {
|
|
|
198
198
|
return this.searching && this.visible && !(this.renderer != null && this.renderer.filterFunction != null);
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1jb2x1bW4uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vby1jb2x1bW4uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQVFuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVDLE1BQU0sT0FBTyxPQUFPO0lBQXBCO1FBY1ksYUFBUSxHQUFZLEtBQUssQ0FBQztRQVk1QixxQkFBZ0IsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xGLGdCQUFXLEdBQXdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQW1PakYsQ0FBQztJQWhPQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQVk7UUFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENB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QyxRQUFRLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzVHLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPVGFibGVDb2x1bW5DYWxjdWxhdGVkIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9vLXRhYmxlLWNvbHVtbi1jYWxjdWxhdGVkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL28tdGFibGUtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZXhwcmVzc2lvbi50eXBlJztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9vcGVyYXRpb24tZnVuY3Rpb24udHlwZSc7XG5pbXBvcnQgeyBPQ29sdW1uQWdncmVnYXRlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tYWdncmVnYXRlLnR5cGUnO1xuaW1wb3J0IHsgT0NvbHVtblRvb2x0aXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi10b29sdGlwLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPQmFzZVRhYmxlQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyL28tYmFzZS10YWJsZS1jZWxsLXJlbmRlcmVyLmNsYXNzJztcbmltcG9ydCB7IENvZGVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9jb2Rlcyc7XG5cbmV4cG9ydCBjbGFzcyBPQ29sdW1uIHtcbiAgYXR0cjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgc3FsVHlwZTogbnVtYmVyO1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgb3JkZXJhYmxlOiBib29sZWFuO1xuICBncm91cGFibGU6IGJvb2xlYW47XG4gIF9zZWFyY2hhYmxlOiBib29sZWFuO1xuICBzZWFyY2hpbmc6IGJvb2xlYW47IC8vIHRoaXMgY29sdW1uIGlzIHVzZWQgdG8gZmlsdGVyIGluIHF1aWNrZmlsdGVyXG4gIHZpc2libGU6IGJvb2xlYW47XG4gIHJlbmRlcmVyOiBPQmFzZVRhYmxlQ2VsbFJlbmRlcmVyO1xuICBlZGl0b3I6IGFueTtcbiAgcHJvdGVjdGVkIF9lZGl0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gIF93aWR0aDogc3RyaW5nO1xuICBtaW5XaWR0aDogc3RyaW5nO1xuICBtYXhXaWR0aDogc3RyaW5nO1xuICBhZ2dyZWdhdGU6IE9Db2x1bW5BZ2dyZWdhdGU7XG4gIGNhbGN1bGF0ZTogc3RyaW5nIHwgT3BlcmF0b3JGdW5jdGlvbjtcbiAgZGVmaW5pdGlvbjogT1RhYmxlQ29sdW1uO1xuICB0b29sdGlwOiBPQ29sdW1uVG9vbHRpcDtcbiAgcmVzaXphYmxlOiBib29sZWFuO1xuICBET01XaWR0aDogbnVtYmVyO1xuICBmaWx0ZXJFeHByZXNzaW9uRnVuY3Rpb246IChjb2x1bW5BdHRyOiBzdHJpbmcsIHF1aWNrRmlsdGVyPzogc3RyaW5nKSA9PiBFeHByZXNzaW9uO1xuXG4gIHByaXZhdGUgbXVsdGlsaW5lU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLm11bHRpbGluZSk7XG4gIHB1YmxpYyBpc011bHRpbGluZTogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubXVsdGlsaW5lU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgcHJpdmF0ZSBfbXVsdGlsaW5lOiBib29sZWFuO1xuXG4gIGdldCBlZGl0aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lZGl0aW5nO1xuICB9XG5cbiAgc2V0IGVkaXRpbmcodmFsOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2Jvb2xlYW4nICYmIHRoaXMuZWRpdG9yICYmIHRoaXMuZWRpdG9yLmF1dG9Db21taXQpIHtcbiAgICAgIHRoaXMuX2VkaXRpbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5fZWRpdGluZyA9IHRoaXMuZWRpdG9yICE9IG51bGwgJiYgdmFsO1xuICAgIHRoaXMuZWRpdG9yLnNldEVkaXRpbmdSb3dDbGFzcyh0aGlzLl9lZGl0aW5nKVxuICB9XG5cbiAgc2V0RGVmYXVsdFByb3BlcnRpZXMoYXJnczogYW55KSB7XG4gICAgdGhpcy50eXBlID0gJ3N0cmluZyc7XG4gICAgdGhpcy5jbGFzc05hbWUgPSAnby1jb2x1bW4tJyArICh0aGlzLnR5cGUpICsgJyAnO1xuICAgIHRoaXMub3JkZXJhYmxlID0gYXJncy5vcmRlcmFibGU7XG4gICAgdGhpcy5yZXNpemFibGUgPSBhcmdzLnJlc2l6YWJsZTtcbiAgICB0aGlzLmdyb3VwYWJsZSA9IGFyZ3MuZ3JvdXBhYmxlO1xuICAgIHRoaXMuc2VhcmNoYWJsZSA9ICEodGhpcy50eXBlID09PSAnZGF0ZScgJiYgYXJncy5wYWdlYWJsZSk7XG4gICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xuICAgIC8vIGNvbHVtbiB3aXRob3V0ICdhdHRyJyBzaG91bGQgY29udGFpbiBvbmx5IHJlbmRlcmVycyB0aGF0IGRvIG5vdCBkZXBlbmQgb24gY2VsbCBkYXRhLCBidXQgcm93IGRhdGEgKGUuZy4gYWN0aW9ucylcbiAgICB0aGlzLm5hbWUgPSB0aGlzLmF0dHI7XG4gICAgdGhpcy50aXRsZSA9IHRoaXMuYXR0cjtcbiAgICB0aGlzLm11bHRpbGluZSA9IGZhbHNlO1xuICB9XG5cbiAgc2V0Q29sdW1uUHJvcGVydGllcyhjb2x1bW46IE9UYWJsZUNvbHVtbiAmIE9UYWJsZUNvbHVtbkNhbGN1bGF0ZWQpIHtcbiAgICB0aGlzLnRpdGxlID0gVXRpbC5pc0RlZmluZWQoY29sdW1uLnRpdGxlKSA/IGNvbHVtbi50aXRsZSA6IGNvbHVtbi5hdHRyO1xuICAgIHRoaXMuZGVmaW5pdGlvbiA9IGNvbHVtbjtcbiAgICB0aGlzLm11bHRpbGluZSA9IGNvbHVtbi5tdWx0aWxpbmU7XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLm1pbldpZHRoKSkge1xuICAgICAgdGhpcy5taW5XaWR0aCA9IGNvbHVtbi5taW5XaWR0aDtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbHVtbi5tYXhXaWR0aCkpIHtcbiAgICAgIHRoaXMubWF4V2lkdGggPSBjb2x1bW4ubWF4V2lkdGg7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4ub3JkZXJhYmxlKSkge1xuICAgICAgdGhpcy5vcmRlcmFibGUgPSBjb2x1bW4ub3JkZXJhYmxlO1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLnJlc2l6YWJsZSkpIHtcbiAgICAgIHRoaXMucmVzaXphYmxlID0gY29sdW1uLnJlc2l6YWJsZTtcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLnNlYXJjaGFibGUpKSB7XG4gICAgICB0aGlzLnNlYXJjaGFibGUgPSBjb2x1bW4uc2VhcmNoYWJsZTtcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLmdyb3VwYWJsZSkpIHtcbiAgICAgIHRoaXMuZ3JvdXBhYmxlID0gY29sdW1uLmdyb3VwYWJsZTtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbHVtbi5yZW5kZXJlcikpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIgPSBjb2x1bW4ucmVuZGVyZXI7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4uZWRpdG9yKSkge1xuICAgICAgdGhpcy5lZGl0b3IgPSBjb2x1bW4uZWRpdG9yO1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLnR5cGUpKSB7XG4gICAgICB0aGlzLnR5cGUgPSBjb2x1bW4udHlwZTtcbiAgICAgIHRoaXMuY2xhc3NOYW1lID0gJ28tY29sdW1uLScgKyAodGhpcy50eXBlKSArICcgJztcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLnR5cGUpKSB7XG4gICAgICB0aGlzLnNxbFR5cGUgPSBjb2x1bW4uZ2V0U1FMVHlwZSgpO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4uY2xhc3MpKSB7XG4gICAgICB0aGlzLmNsYXNzTmFtZSA9IFV0aWwuaXNEZWZpbmVkKHRoaXMuY2xhc3NOYW1lKSA/ICh0aGlzLmNsYXNzTmFtZSArICcgJyArIGNvbHVtbi5jbGFzcykgOiBjb2x1bW4uY2xhc3M7XG4gICAgfVxuICAgIC8vIGlmIChjb2x1bW4gaW5zdGFuY2VvZiBPVGFibGVDb2x1bW5DYWxjdWxhdGVkQ29tcG9uZW50KSB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbHVtbi5vcGVyYXRpb24pIHx8IFV0aWwuaXNEZWZpbmVkKGNvbHVtbi5mdW5jdGlvbk9wZXJhdGlvbikpIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlID0gY29sdW1uLm9wZXJhdGlvbiA/IGNvbHVtbi5vcGVyYXRpb24gOiBjb2x1bW4uZnVuY3Rpb25PcGVyYXRpb247XG4gICAgfVxuICAgIC8vIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLnRvb2x0aXApICYmIGNvbHVtbi50b29sdGlwKSB7XG4gICAgICB0aGlzLnRvb2x0aXAgPSB7XG4gICAgICAgIHZhbHVlOiBjb2x1bW4udG9vbHRpcFZhbHVlLFxuICAgICAgICBmdW5jdGlvbjogY29sdW1uLnRvb2x0aXBGdW5jdGlvblxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbHVtbi5maWx0ZXJFeHByZXNzaW9uRnVuY3Rpb24pKSB7XG4gICAgICB0aGlzLmZpbHRlckV4cHJlc3Npb25GdW5jdGlvbiA9IGNvbHVtbi5maWx0ZXJFeHByZXNzaW9uRnVuY3Rpb247XG4gICAgfVxuICB9XG5cbiAgc2V0IHNlYXJjaGFibGUodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VhcmNoYWJsZSA9IHZhbDtcbiAgICB0aGlzLnNlYXJjaGluZyA9IHZhbDtcbiAgfVxuXG4gIGdldCBzZWFyY2hhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hhYmxlO1xuICB9XG5cbiAgc2V0IG11bHRpbGluZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB2YWwgPSBVdGlsLnBhcnNlQm9vbGVhbihTdHJpbmcodmFsKSk7XG4gICAgdGhpcy5fbXVsdGlsaW5lID0gdmFsO1xuICAgIHRoaXMubXVsdGlsaW5lU3ViamVjdC5uZXh0KHRoaXMuX211bHRpbGluZSk7XG4gIH1cblxuICBnZXQgbXVsdGlsaW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aWxpbmU7XG4gIH1cblxuICBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZCh0aGlzLnRvb2x0aXApO1xuICB9XG5cbiAgZ2V0VG9vbHRpcChyb3dEYXRhOiBhbnkpOiBhbnkge1xuICAgIGlmICghdGhpcy5oYXNUb29sdGlwKCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCB0b29sdGlwO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnRvb2x0aXAudmFsdWUpKSB7XG4gICAgICB0b29sdGlwID0gdGhpcy50b29sdGlwLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy50b29sdGlwLmZ1bmN0aW9uKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdG9vbHRpcCA9IHRoaXMudG9vbHRpcC5mdW5jdGlvbihyb3dEYXRhKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdvLXRhYmxlLWNvbHVtbiB0b29sdGlwLWZ1bmN0aW9uIGRpZG50IHdvcmtlZCcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0b29sdGlwID0gVXRpbC5pc0RlZmluZWQodGhpcy5yZW5kZXJlcikgPyB0aGlzLnJlbmRlcmVyLmdldFRvb2x0aXAocm93RGF0YVt0aGlzLm5hbWVdLCByb3dEYXRhKSA6IHJvd0RhdGFbdGhpcy5uYW1lXTtcbiAgICB9XG4gICAgcmV0dXJuIHRvb2x0aXA7XG4gIH1cblxuICBnZXRNaW5XaWR0aCgpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy53aWR0aCkpIHtcbiAgICAgIHJldHVybiB0aGlzLndpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5taW5XaWR0aDtcbiAgfVxuXG4gIGdldE1pbldpZHRoVmFsdWUoKSB7XG4gICAgcmV0dXJuIFV0aWwuZXh0cmFjdFBpeGVsc1ZhbHVlKHRoaXMubWluV2lkdGgsIENvZGVzLkRFRkFVTFRfQ09MVU1OX01JTl9XSURUSCk7XG4gIH1cblxuICBnZXRNYXhXaWR0aFZhbHVlKCkge1xuICAgIGNvbnN0IHZhbHVlID0gVXRpbC5leHRyYWN0UGl4ZWxzVmFsdWUodGhpcy5tYXhXaWR0aCk7XG4gICAgcmV0dXJuIHZhbHVlID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBzZXRSZW5kZXJXaWR0aChob3Jpem9udGFsU2Nyb2xsZWQ6IGJvb2xlYW4sIGNsaWVudFdpZHRoOiBudW1iZXIpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy53aWR0aCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0V2lkdGggPSAoaG9yaXpvbnRhbFNjcm9sbGVkKSA/IHVuZGVmaW5lZCA6ICdhdXRvJztcbiAgICB0aGlzLndpZHRoID0gVXRpbC5pc0RlZmluZWQodGhpcy5ET01XaWR0aCkgPyAodGhpcy5nZXRET01XaWR0aChjbGllbnRXaWR0aCkgKyAncHgnKSA6IGRlZmF1bHRXaWR0aDtcbiAgfVxuXG4gIGdldERPTVdpZHRoKHZhbDogYW55KTogbnVtYmVyIHtcbiAgICBsZXQgRE9NV2lkdGg7XG4gICAgY29uc3QgcHhWYWwgPSBVdGlsLmV4dHJhY3RQaXhlbHNWYWx1ZSh2YWwpO1xuXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHB4VmFsKSkge1xuICAgICAgRE9NV2lkdGggPSBweFZhbDtcbiAgICAgIGNvbnN0IG1pblZhbHVlID0gdGhpcy5nZXRNaW5XaWR0aFZhbHVlKCk7XG4gICAgICBpZiAoVXRpbC5pc0RlZmluZWQobWluVmFsdWUpICYmIHB4VmFsID4gMCAmJiBweFZhbCA8IG1pblZhbHVlKSB7XG4gICAgICAgIERPTVdpZHRoID0gbWluVmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLm1heFdpZHRoKSkge1xuICAgICAgICBjb25zdCBtYXhWYWx1ZSA9IFV0aWwuZXh0cmFjdFBpeGVsc1ZhbHVlKHRoaXMubWF4V2lkdGgpO1xuICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQobWF4VmFsdWUpICYmIHB4VmFsID4gbWF4VmFsdWUpIHtcbiAgICAgICAgICBET01XaWR0aCA9IG1heFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gICAgcmV0dXJuIERPTVdpZHRoO1xuICB9XG5cbiAgc2V0IHdpZHRoKHZhbDogc3RyaW5nKSB7XG4gICAgbGV0IHdpZHRoVmFsID0gdmFsO1xuICAgIGxldCBET01XaWR0aCA9IHRoaXMuZ2V0RE9NV2lkdGgodmFsKTtcbiAgICBjb25zdCBweFZhbCA9IFV0aWwuZXh0cmFjdFBpeGVsc1ZhbHVlKERPTVdpZHRoKTtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocHhWYWwpKSB7XG4gICAgICB0aGlzLkRPTVdpZHRoID0gcHhWYWw7XG4gICAgICB3aWR0aFZhbCA9IHB4VmFsICsgJ3B4JztcbiAgICB9XG5cbiAgICB0aGlzLl93aWR0aCA9IHdpZHRoVmFsO1xuICB9XG5cbiAgZ2V0IHdpZHRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICB9XG5cblxuICBnZXRXaWR0aFRvU3RvcmUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fd2lkdGg7XG4gIH1cblxuICBzZXRXaWR0aCh2YWw6IG51bWJlcikge1xuICAgIHRoaXMud2lkdGggPSB2YWwgKyAncHgnO1xuICAgIHRoaXMuRE9NV2lkdGggPSB2YWw7XG4gIH1cblxuICBnZXRUaXRsZUFsaWduQ2xhc3MoKSB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMuZGVmaW5pdGlvbikpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmluaXRpb24udGl0bGVBbGlnbiB8fCBDb2Rlcy5DT0xVTU5fVElUTEVfQUxJR05fQ0VOVEVSO1xuICAgIH1cbiAgICAvLyBkZWZhdWx0IHRpdGxlIGFsaWduXG4gICAgcmV0dXJuIENvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9DRU5URVI7XG4gIH1cblxuICBnZXRGaWx0ZXJWYWx1ZShjZWxsVmFsdWU6IGFueSwgcm93VmFsdWU/OiBhbnkpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMucmVuZGVyZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLmdldEZpbHRlcihjZWxsVmFsdWUsIHJvd1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtjZWxsVmFsdWVdO1xuICAgIH1cbiAgfVxuXG4gIHVzZUN1c3RvbUZpbHRlckZ1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGluZyAmJiB0aGlzLnZpc2libGUgJiYgdGhpcy5yZW5kZXJlciAhPSBudWxsICYmIHRoaXMucmVuZGVyZXIuZmlsdGVyRnVuY3Rpb24gIT0gbnVsbDtcbiAgfVxuXG4gIHVzZVF1aWNrZmlsdGVyRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoaW5nICYmIHRoaXMudmlzaWJsZSAmJiAhKHRoaXMucmVuZGVyZXIgIT0gbnVsbCAmJiB0aGlzLnJlbmRlcmVyLmZpbHRlckZ1bmN0aW9uICE9IG51bGwpO1xuICB9XG5cbn1cbiJdfQ==
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1jb2x1bW4uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vby1jb2x1bW4uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQVFuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVDLE1BQU0sT0FBTyxPQUFPO0lBQXBCO1FBY1ksYUFBUSxHQUFZLEtBQUssQ0FBQztRQVk1QixxQkFBZ0IsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xGLGdCQUFXLEdBQXdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQW1PakYsQ0FBQztJQWhPQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQVk7UUFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUE2QztRQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUVsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUNqQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDbkM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUNuQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDbkM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUNqQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNwQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDeEc7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDaEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7U0FDakY7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDcEQsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVk7Z0JBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsZUFBZTthQUNqQyxDQUFDO1NBQ0g7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxHQUFZO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLEdBQVk7UUFDeEIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFZO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdEIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxJQUFJLE9BQU8sQ0FBQztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUM5QjthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hELElBQUk7Z0JBQ0YsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzFDO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2FBQzlEO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0SDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkI7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjLENBQUMsa0JBQTJCLEVBQUUsV0FBbUI7UUFDN0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QixPQUFPO1NBQ1I7UUFFRCxNQUFNLFlBQVksR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQy9ELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3JHLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBUTtRQUNsQixJQUFJLFFBQVEsQ0FBQztRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekIsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNqQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsUUFBUSxFQUFFO2dCQUM3RCxRQUFRLEdBQUcsUUFBUSxDQUFDO2FBQ3JCO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssR0FBRyxRQUFRLEVBQUU7b0JBQ2hELFFBQVEsR0FBRyxRQUFRLENBQUM7aUJBQ3JCO2FBQ0Y7U0FFRjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxHQUFXO1FBQ25CLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNuQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsUUFBUSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFDdEIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDO1NBQ3RFO1FBRUQsT0FBTyxLQUFLLENBQUMseUJBQXlCLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFjLEVBQUUsUUFBYztRQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDO0lBQ3pHLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzVHLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPVGFibGVDb2x1bW5DYWxjdWxhdGVkIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9vLXRhYmxlLWNvbHVtbi1jYWxjdWxhdGVkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL28tdGFibGUtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZXhwcmVzc2lvbi50eXBlJztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9vcGVyYXRpb24tZnVuY3Rpb24udHlwZSc7XG5pbXBvcnQgeyBPQ29sdW1uQWdncmVnYXRlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tYWdncmVnYXRlLnR5cGUnO1xuaW1wb3J0IHsgT0NvbHVtblRvb2x0aXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi10b29sdGlwLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgdHlwZSB7IE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXIvby1iYXNlLXRhYmxlLWNlbGwtcmVuZGVyZXIuY2xhc3MnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NvZGVzJztcblxuZXhwb3J0IGNsYXNzIE9Db2x1bW4ge1xuICBhdHRyOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzcWxUeXBlOiBudW1iZXI7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBvcmRlcmFibGU6IGJvb2xlYW47XG4gIGdyb3VwYWJsZTogYm9vbGVhbjtcbiAgX3NlYXJjaGFibGU6IGJvb2xlYW47XG4gIHNlYXJjaGluZzogYm9vbGVhbjsgLy8gdGhpcyBjb2x1bW4gaXMgdXNlZCB0byBmaWx0ZXIgaW4gcXVpY2tmaWx0ZXJcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgcmVuZGVyZXI6IE9CYXNlVGFibGVDZWxsUmVuZGVyZXI7XG4gIGVkaXRvcjogYW55O1xuICBwcm90ZWN0ZWQgX2VkaXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX3dpZHRoOiBzdHJpbmc7XG4gIG1pbldpZHRoOiBzdHJpbmc7XG4gIG1heFdpZHRoOiBzdHJpbmc7XG4gIGFnZ3JlZ2F0ZTogT0NvbHVtbkFnZ3JlZ2F0ZTtcbiAgY2FsY3VsYXRlOiBzdHJpbmcgfCBPcGVyYXRvckZ1bmN0aW9uO1xuICBkZWZpbml0aW9uOiBPVGFibGVDb2x1bW47XG4gIHRvb2x0aXA6IE9Db2x1bW5Ub29sdGlwO1xuICByZXNpemFibGU6IGJvb2xlYW47XG4gIERPTVdpZHRoOiBudW1iZXI7XG4gIGZpbHRlckV4cHJlc3Npb25GdW5jdGlvbjogKGNvbHVtbkF0dHI6IHN0cmluZywgcXVpY2tGaWx0ZXI/OiBzdHJpbmcpID0+IEV4cHJlc3Npb247XG5cbiAgcHJpdmF0ZSBtdWx0aWxpbmVTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubXVsdGlsaW5lKTtcbiAgcHVibGljIGlzTXVsdGlsaW5lOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5tdWx0aWxpbmVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICBwcml2YXRlIF9tdWx0aWxpbmU6IGJvb2xlYW47XG5cbiAgZ2V0IGVkaXRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRpbmc7XG4gIH1cblxuICBzZXQgZWRpdGluZyh2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnYm9vbGVhbicgJiYgdGhpcy5lZGl0b3IgJiYgdGhpcy5lZGl0b3IuYXV0b0NvbW1pdCkge1xuICAgICAgdGhpcy5fZWRpdGluZyA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9lZGl0aW5nID0gdGhpcy5lZGl0b3IgIT0gbnVsbCAmJiB2YWw7XG4gICAgdGhpcy5lZGl0b3Iuc2V0RWRpdGluZ1Jvd0NsYXNzKHRoaXMuX2VkaXRpbmcpXG4gIH1cblxuICBzZXREZWZhdWx0UHJvcGVydGllcyhhcmdzOiBhbnkpIHtcbiAgICB0aGlzLnR5cGUgPSAnc3RyaW5nJztcbiAgICB0aGlzLmNsYXNzTmFtZSA9ICdvLWNvbHVtbi0nICsgKHRoaXMudHlwZSkgKyAnICc7XG4gICAgdGhpcy5vcmRlcmFibGUgPSBhcmdzLm9yZGVyYWJsZTtcbiAgICB0aGlzLnJlc2l6YWJsZSA9IGFyZ3MucmVzaXphYmxlO1xuICAgIHRoaXMuZ3JvdXBhYmxlID0gYXJncy5ncm91cGFibGU7XG4gICAgdGhpcy5zZWFyY2hhYmxlID0gISh0aGlzLnR5cGUgPT09ICdkYXRlJyAmJiBhcmdzLnBhZ2VhYmxlKTtcbiAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XG4gICAgLy8gY29sdW1uIHdpdGhvdXQgJ2F0dHInIHNob3VsZCBjb250YWluIG9ubHkgcmVuZGVyZXJzIHRoYXQgZG8gbm90IGRlcGVuZCBvbiBjZWxsIGRhdGEsIGJ1dCByb3cgZGF0YSAoZS5nLiBhY3Rpb25zKVxuICAgIHRoaXMubmFtZSA9IHRoaXMuYXR0cjtcbiAgICB0aGlzLnRpdGxlID0gdGhpcy5hdHRyO1xuICAgIHRoaXMubXVsdGlsaW5lID0gZmFsc2U7XG4gIH1cblxuICBzZXRDb2x1bW5Qcm9wZXJ0aWVzKGNvbHVtbjogT1RhYmxlQ29sdW1uICYgT1RhYmxlQ29sdW1uQ2FsY3VsYXRlZCkge1xuICAgIHRoaXMudGl0bGUgPSBVdGlsLmlzRGVmaW5lZChjb2x1bW4udGl0bGUpID8gY29sdW1uLnRpdGxlIDogY29sdW1uLmF0dHI7XG4gICAgdGhpcy5kZWZpbml0aW9uID0gY29sdW1uO1xuICAgIHRoaXMubXVsdGlsaW5lID0gY29sdW1uLm11bHRpbGluZTtcblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4ubWluV2lkdGgpKSB7XG4gICAgICB0aGlzLm1pbldpZHRoID0gY29sdW1uLm1pbldpZHRoO1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLm1heFdpZHRoKSkge1xuICAgICAgdGhpcy5tYXhXaWR0aCA9IGNvbHVtbi5tYXhXaWR0aDtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbHVtbi5vcmRlcmFibGUpKSB7XG4gICAgICB0aGlzLm9yZGVyYWJsZSA9IGNvbHVtbi5vcmRlcmFibGU7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4ucmVzaXphYmxlKSkge1xuICAgICAgdGhpcy5yZXNpemFibGUgPSBjb2x1bW4ucmVzaXphYmxlO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4uc2VhcmNoYWJsZSkpIHtcbiAgICAgIHRoaXMuc2VhcmNoYWJsZSA9IGNvbHVtbi5zZWFyY2hhYmxlO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4uZ3JvdXBhYmxlKSkge1xuICAgICAgdGhpcy5ncm91cGFibGUgPSBjb2x1bW4uZ3JvdXBhYmxlO1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLnJlbmRlcmVyKSkge1xuICAgICAgdGhpcy5yZW5kZXJlciA9IGNvbHVtbi5yZW5kZXJlcjtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbHVtbi5lZGl0b3IpKSB7XG4gICAgICB0aGlzLmVkaXRvciA9IGNvbHVtbi5lZGl0b3I7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4udHlwZSkpIHtcbiAgICAgIHRoaXMudHlwZSA9IGNvbHVtbi50eXBlO1xuICAgICAgdGhpcy5jbGFzc05hbWUgPSAnby1jb2x1bW4tJyArICh0aGlzLnR5cGUpICsgJyAnO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4udHlwZSkpIHtcbiAgICAgIHRoaXMuc3FsVHlwZSA9IGNvbHVtbi5nZXRTUUxUeXBlKCk7XG4gICAgfVxuXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbHVtbi5jbGFzcykpIHtcbiAgICAgIHRoaXMuY2xhc3NOYW1lID0gVXRpbC5pc0RlZmluZWQodGhpcy5jbGFzc05hbWUpID8gKHRoaXMuY2xhc3NOYW1lICsgJyAnICsgY29sdW1uLmNsYXNzKSA6IGNvbHVtbi5jbGFzcztcbiAgICB9XG4gICAgLy8gaWYgKGNvbHVtbiBpbnN0YW5jZW9mIE9UYWJsZUNvbHVtbkNhbGN1bGF0ZWRDb21wb25lbnQpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLm9wZXJhdGlvbikgfHwgVXRpbC5pc0RlZmluZWQoY29sdW1uLmZ1bmN0aW9uT3BlcmF0aW9uKSkge1xuICAgICAgdGhpcy5jYWxjdWxhdGUgPSBjb2x1bW4ub3BlcmF0aW9uID8gY29sdW1uLm9wZXJhdGlvbiA6IGNvbHVtbi5mdW5jdGlvbk9wZXJhdGlvbjtcbiAgICB9XG4gICAgLy8gfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb2x1bW4udG9vbHRpcCkgJiYgY29sdW1uLnRvb2x0aXApIHtcbiAgICAgIHRoaXMudG9vbHRpcCA9IHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi50b29sdGlwVmFsdWUsXG4gICAgICAgIGZ1bmN0aW9uOiBjb2x1bW4udG9vbHRpcEZ1bmN0aW9uXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29sdW1uLmZpbHRlckV4cHJlc3Npb25GdW5jdGlvbikpIHtcbiAgICAgIHRoaXMuZmlsdGVyRXhwcmVzc2lvbkZ1bmN0aW9uID0gY29sdW1uLmZpbHRlckV4cHJlc3Npb25GdW5jdGlvbjtcbiAgICB9XG4gIH1cblxuICBzZXQgc2VhcmNoYWJsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zZWFyY2hhYmxlID0gdmFsO1xuICAgIHRoaXMuc2VhcmNoaW5nID0gdmFsO1xuICB9XG5cbiAgZ2V0IHNlYXJjaGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaGFibGU7XG4gIH1cblxuICBzZXQgbXVsdGlsaW5lKHZhbDogYm9vbGVhbikge1xuICAgIHZhbCA9IFV0aWwucGFyc2VCb29sZWFuKFN0cmluZyh2YWwpKTtcbiAgICB0aGlzLl9tdWx0aWxpbmUgPSB2YWw7XG4gICAgdGhpcy5tdWx0aWxpbmVTdWJqZWN0Lm5leHQodGhpcy5fbXVsdGlsaW5lKTtcbiAgfVxuXG4gIGdldCBtdWx0aWxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpbGluZTtcbiAgfVxuXG4gIGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMudG9vbHRpcCk7XG4gIH1cblxuICBnZXRUb29sdGlwKHJvd0RhdGE6IGFueSk6IGFueSB7XG4gICAgaWYgKCF0aGlzLmhhc1Rvb2x0aXAoKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgbGV0IHRvb2x0aXA7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMudG9vbHRpcC52YWx1ZSkpIHtcbiAgICAgIHRvb2x0aXAgPSB0aGlzLnRvb2x0aXAudmFsdWU7XG4gICAgfSBlbHNlIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnRvb2x0aXAuZnVuY3Rpb24pKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0b29sdGlwID0gdGhpcy50b29sdGlwLmZ1bmN0aW9uKHJvd0RhdGEpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ28tdGFibGUtY29sdW1uIHRvb2x0aXAtZnVuY3Rpb24gZGlkbnQgd29ya2VkJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvb2x0aXAgPSBVdGlsLmlzRGVmaW5lZCh0aGlzLnJlbmRlcmVyKSA/IHRoaXMucmVuZGVyZXIuZ2V0VG9vbHRpcChyb3dEYXRhW3RoaXMubmFtZV0sIHJvd0RhdGEpIDogcm93RGF0YVt0aGlzLm5hbWVdO1xuICAgIH1cbiAgICByZXR1cm4gdG9vbHRpcDtcbiAgfVxuXG4gIGdldE1pbldpZHRoKCkge1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLndpZHRoKSkge1xuICAgICAgcmV0dXJuIHRoaXMud2lkdGg7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1pbldpZHRoO1xuICB9XG5cbiAgZ2V0TWluV2lkdGhWYWx1ZSgpIHtcbiAgICByZXR1cm4gVXRpbC5leHRyYWN0UGl4ZWxzVmFsdWUodGhpcy5taW5XaWR0aCwgQ29kZXMuREVGQVVMVF9DT0xVTU5fTUlOX1dJRFRIKTtcbiAgfVxuXG4gIGdldE1heFdpZHRoVmFsdWUoKSB7XG4gICAgY29uc3QgdmFsdWUgPSBVdGlsLmV4dHJhY3RQaXhlbHNWYWx1ZSh0aGlzLm1heFdpZHRoKTtcbiAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHNldFJlbmRlcldpZHRoKGhvcml6b250YWxTY3JvbGxlZDogYm9vbGVhbiwgY2xpZW50V2lkdGg6IG51bWJlcikge1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLndpZHRoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmF1bHRXaWR0aCA9IChob3Jpem9udGFsU2Nyb2xsZWQpID8gdW5kZWZpbmVkIDogJ2F1dG8nO1xuICAgIHRoaXMud2lkdGggPSBVdGlsLmlzRGVmaW5lZCh0aGlzLkRPTVdpZHRoKSA/ICh0aGlzLmdldERPTVdpZHRoKGNsaWVudFdpZHRoKSArICdweCcpIDogZGVmYXVsdFdpZHRoO1xuICB9XG5cbiAgZ2V0RE9NV2lkdGgodmFsOiBhbnkpOiBudW1iZXIge1xuICAgIGxldCBET01XaWR0aDtcbiAgICBjb25zdCBweFZhbCA9IFV0aWwuZXh0cmFjdFBpeGVsc1ZhbHVlKHZhbCk7XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocHhWYWwpKSB7XG4gICAgICBET01XaWR0aCA9IHB4VmFsO1xuICAgICAgY29uc3QgbWluVmFsdWUgPSB0aGlzLmdldE1pbldpZHRoVmFsdWUoKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChtaW5WYWx1ZSkgJiYgcHhWYWwgPiAwICYmIHB4VmFsIDwgbWluVmFsdWUpIHtcbiAgICAgICAgRE9NV2lkdGggPSBtaW5WYWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMubWF4V2lkdGgpKSB7XG4gICAgICAgIGNvbnN0IG1heFZhbHVlID0gVXRpbC5leHRyYWN0UGl4ZWxzVmFsdWUodGhpcy5tYXhXaWR0aCk7XG4gICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChtYXhWYWx1ZSkgJiYgcHhWYWwgPiBtYXhWYWx1ZSkge1xuICAgICAgICAgIERPTVdpZHRoID0gbWF4VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgICByZXR1cm4gRE9NV2lkdGg7XG4gIH1cblxuICBzZXQgd2lkdGgodmFsOiBzdHJpbmcpIHtcbiAgICBsZXQgd2lkdGhWYWwgPSB2YWw7XG4gICAgbGV0IERPTVdpZHRoID0gdGhpcy5nZXRET01XaWR0aCh2YWwpO1xuICAgIGNvbnN0IHB4VmFsID0gVXRpbC5leHRyYWN0UGl4ZWxzVmFsdWUoRE9NV2lkdGgpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChweFZhbCkpIHtcbiAgICAgIHRoaXMuRE9NV2lkdGggPSBweFZhbDtcbiAgICAgIHdpZHRoVmFsID0gcHhWYWwgKyAncHgnO1xuICAgIH1cblxuICAgIHRoaXMuX3dpZHRoID0gd2lkdGhWYWw7XG4gIH1cblxuICBnZXQgd2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fd2lkdGg7XG4gIH1cblxuXG4gIGdldFdpZHRoVG9TdG9yZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl93aWR0aDtcbiAgfVxuXG4gIHNldFdpZHRoKHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy53aWR0aCA9IHZhbCArICdweCc7XG4gICAgdGhpcy5ET01XaWR0aCA9IHZhbDtcbiAgfVxuXG4gIGdldFRpdGxlQWxpZ25DbGFzcygpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5kZWZpbml0aW9uKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvbi50aXRsZUFsaWduIHx8IENvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9DRU5URVI7XG4gICAgfVxuICAgIC8vIGRlZmF1bHQgdGl0bGUgYWxpZ25cbiAgICByZXR1cm4gQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUjtcbiAgfVxuXG4gIGdldEZpbHRlclZhbHVlKGNlbGxWYWx1ZTogYW55LCByb3dWYWx1ZT86IGFueSk6IGFueVtdIHtcbiAgICBpZiAodGhpcy5yZW5kZXJlcikge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyZXIuZ2V0RmlsdGVyKGNlbGxWYWx1ZSwgcm93VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW2NlbGxWYWx1ZV07XG4gICAgfVxuICB9XG5cbiAgdXNlQ3VzdG9tRmlsdGVyRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoaW5nICYmIHRoaXMudmlzaWJsZSAmJiB0aGlzLnJlbmRlcmVyICE9IG51bGwgJiYgdGhpcy5yZW5kZXJlci5maWx0ZXJGdW5jdGlvbiAhPSBudWxsO1xuICB9XG5cbiAgdXNlUXVpY2tmaWx0ZXJGdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hpbmcgJiYgdGhpcy52aXNpYmxlICYmICEodGhpcy5yZW5kZXJlciAhPSBudWxsICYmIHRoaXMucmVuZGVyZXIuZmlsdGVyRnVuY3Rpb24gIT0gbnVsbCk7XG4gIH1cblxufVxuIl19
|
package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs
CHANGED
|
@@ -8,6 +8,7 @@ import { Util } from '../../../../util/util';
|
|
|
8
8
|
import { OContextMenuComponent } from '../../../contextmenu/o-context-menu.component';
|
|
9
9
|
import { OTableGroupedRow } from '../row/o-table-row-group.class';
|
|
10
10
|
import { OTableBase } from '../../o-table-base.class';
|
|
11
|
+
import { OTableFilterByColumnService } from '../dialog/filter-by-column/o-table-filter-by-column.service';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "@angular/common";
|
|
13
14
|
import * as i2 from "../../../contextmenu/o-context-menu.component";
|
|
@@ -191,13 +192,30 @@ export class OTableContextMenuComponent {
|
|
|
191
192
|
this.table.refresh();
|
|
192
193
|
}
|
|
193
194
|
filterByValue() {
|
|
194
|
-
const
|
|
195
|
-
|
|
195
|
+
const filterService = this.injector.get(OTableFilterByColumnService);
|
|
196
|
+
const columnAttr = this.column.attr;
|
|
197
|
+
const sourceDataType = this.table.getSourceDataByFilterColumn(this.column);
|
|
198
|
+
const tableData = this.table.getValue();
|
|
199
|
+
const selectedValue = this.row[columnAttr];
|
|
200
|
+
const filter = this.table.dataSource.getColumnValueFilterByAttr(this.column.attr) ??
|
|
201
|
+
this.createColumnValueFilter(columnAttr, selectedValue, sourceDataType);
|
|
202
|
+
let columnData = filterService.parseListData(filter, this.column, tableData, this.table.pageable, sourceDataType);
|
|
203
|
+
const selectedValues = this.getSelectedValues(columnData, selectedValue);
|
|
204
|
+
filterService.applySelectedValuesToFilter(this.column, tableData, filter, selectedValues, sourceDataType, this.table.pageable, () => this.table.getComponentFilter());
|
|
205
|
+
this.table.filterByColumn(filter);
|
|
206
|
+
}
|
|
207
|
+
createColumnValueFilter(attr, value, sourceData) {
|
|
208
|
+
return {
|
|
209
|
+
attr,
|
|
196
210
|
operator: ColumnValueFilterOperator.IN,
|
|
197
|
-
values: [
|
|
198
|
-
availableValues:
|
|
211
|
+
values: [value],
|
|
212
|
+
availableValues: null,
|
|
213
|
+
filterValuesInData: sourceData,
|
|
214
|
+
filterExpresion: this.table.getComponentFilter() ?? undefined
|
|
199
215
|
};
|
|
200
|
-
|
|
216
|
+
}
|
|
217
|
+
getSelectedValues(columnData, targetValue) {
|
|
218
|
+
return columnData.filter(item => item.value === targetValue && item.selected);
|
|
201
219
|
}
|
|
202
220
|
groupByColumn(dateType) {
|
|
203
221
|
this.table.groupByColumn(this.column, dateType);
|
|
@@ -324,4 +342,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
324
342
|
type: ViewChild,
|
|
325
343
|
args: ['defaultContextMenu']
|
|
326
344
|
}] } });
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb250ZXh0LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvZXh0ZW5zaW9ucy9jb250ZXh0bWVudS9vLXRhYmxlLWNvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2NvbnRleHRtZW51L28tdGFibGUtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFzQixNQUFNLG9EQUFvRCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBRXRELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHO0lBQy9DLDJCQUEyQjtJQUMzQixvQkFBb0I7SUFDcEIs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LENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVwRSxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7O3dIQXRWVSwwQkFBMEIsMENBaUkzQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDOzRHQWpJM0IsMEJBQTBCLGttQkMvQnZDLDIzTEFzRUE7QUR3QkU7SUFBQyxxQkFBcUIsRUFBRTs7OytEQU12Qjs0RkFyRVUsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHNCQUFzQixtQkFFZix1QkFBdUIsQ0FBQyxNQUFNLFVBQ3ZDLGlDQUFpQzs7MEJBbUl0QyxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7NENBakVsQyxhQUFhLE1BeURQLGtCQUFrQjtzQkFEM0IsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dENvbnZlcnRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvaW5wdXQtY29udmVydGVyJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvciwgT0NvbHVtblZhbHVlRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0bWVudS9vLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vY29sdW1uL28tY29sdW1uLmNsYXNzJztcbmltcG9ydCB7IE9UYWJsZUdyb3VwZWRSb3cgfSBmcm9tICcuLi9yb3cvby10YWJsZS1yb3ctZ3JvdXAuY2xhc3MnO1xuaW1wb3J0IHsgT1RhYmxlQmFzZSB9IGZyb20gJy4uLy4uL28tdGFibGUtYmFzZS5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RBQkxFX0NPTlRFWFRfTUVOVV9JTlBVVFMgPSBbXG4gICdjb250ZXh0TWVudTogY29udGV4dC1tZW51JyxcbiAgJ3Nob3dJbnNlcnQ6IGluc2VydCcsXG4gICdzaG93RWRpdDogZWRpdCcsXG4gICdzaG93Vmlld0RldGFpbDogdmlldy1kZXRhaWwnLFxuICAnc2hvd0NvcHk6IGNvcHknLFxuICAnc2hvd1NlbGVjdEFsbDogc2VsZWN0LWFsbCcsXG4gICdzaG93UmVmcmVzaDogcmVmcmVzaCcsXG4gICdzaG93RGVsZXRlOiBkZWxldGUnLFxuICAnc2hvd0ZpbHRlcjogZmlsdGVyJyxcbiAgJ3Nob3dHcm91cEJ5Um93OiBncm91cC1ieS1yb3cnXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLXRhYmxlLWNvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbnB1dHM6IERFRkFVTFRfVEFCTEVfQ09OVEVYVF9NRU5VX0lOUFVUU1xufSlcbmV4cG9ydCBjbGFzcyBPVGFibGVDb250ZXh0TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwdWJsaWMgY29udGV4dE1lbnU6IE9Db250ZXh0TWVudUNvbXBvbmVudDtcbiAgcHVibGljIGlzVmlzaWJsZUluc2VydDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIGlzVmlzaWJsZUVkaXQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyBpc1Zpc2libGVEZXRhaWw6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyBpc1Zpc2libGVDb3B5OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwdWJsaWMgaXNWaXNpYmxlU2VsZWN0QWxsOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwdWJsaWMgaXNWaXNpYmxlUmVmcmVzaDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIGlzVmlzaWJsZURlbGV0ZTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIGlzVmlzaWJsZUZpbHRlcjogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIGlzVmlzaWJsZUdyb3VwQnlSb3c6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyBpc0VuYWJsZWRHcm91cEJ5Q29sdW1uOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwdWJsaWMgaXNFbmFibGVkVW5Hcm91cEJ5Q29sdW1uOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIGlzRW5hYmxlZFVuR3JvdXBBbGxDb2x1bW46IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHB1YmxpYyBpc0RhdGFDZWxsOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwdWJsaWMgaXNUYWJsZUdyb3VwZWRSb3c6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyBpc0dyb3VwYWJsZUNlbGw6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG5cbiAgc2V0IHNob3dJbnNlcnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHZhbHVlID0gVXRpbC5wYXJzZUJvb2xlYW4odmFsdWUgYXMgYW55KTtcbiAgICB9XG4gICAgdGhpcy5pc1Zpc2libGVJbnNlcnQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgc2hvd0luc2VydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1Zpc2libGVJbnNlcnQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHNldCBzaG93RWRpdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgdmFsdWUgPSBVdGlsLnBhcnNlQm9vbGVhbih2YWx1ZSBhcyBhbnkpO1xuICAgIH1cbiAgICB0aGlzLmlzVmlzaWJsZUVkaXQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgc2hvd0VkaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlRWRpdC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgc2V0IHNob3dWaWV3RGV0YWlsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB2YWx1ZSA9IFV0aWwucGFyc2VCb29sZWFuKHZhbHVlIGFzIGFueSk7XG4gICAgfVxuICAgIHRoaXMuaXNWaXNpYmxlRGV0YWlsLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNob3dWaWV3RGV0YWlsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZURldGFpbC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgc2V0IHNob3dDb3B5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB2YWx1ZSA9IFV0aWwucGFyc2VCb29sZWFuKHZhbHVlIGFzIGFueSk7XG4gICAgfVxuICAgIHRoaXMuaXNWaXNpYmxlQ29weS5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzaG93Q29weSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1Zpc2libGVDb3B5LmdldFZhbHVlKCk7XG4gIH1cblxuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgc2V0IHNob3dTZWxlY3RBbGwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHZhbHVlID0gVXRpbC5wYXJzZUJvb2xlYW4odmFsdWUgYXMgYW55KTtcbiAgICB9XG4gICAgdGhpcy50YWJsZS5pc1NlbGVjdGlvbk1vZGVOb25lKCkgPyB0aGlzLmlzVmlzaWJsZVNlbGVjdEFsbC5uZXh0KGZhbHNlKSA6IHRoaXMuaXNWaXNpYmxlU2VsZWN0QWxsLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNob3dTZWxlY3RBbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlU2VsZWN0QWxsLmdldFZhbHVlKCk7XG4gIH1cblxuICBzZXQgc2hvd1JlZnJlc2godmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHZhbHVlID0gVXRpbC5wYXJzZUJvb2xlYW4odmFsdWUgYXMgYW55KTtcbiAgICB9XG4gICAgdGhpcy5pc1Zpc2libGVSZWZyZXNoLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNob3dSZWZyZXNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZVJlZnJlc2guZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHNldCBzaG93RGVsZXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB2YWx1ZSA9IFV0aWwucGFyc2VCb29sZWFuKHZhbHVlIGFzIGFueSk7XG4gICAgfVxuICAgIHRoaXMuaXNWaXNpYmxlRGVsZXRlLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNob3dEZWxldGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlRGVsZXRlLmdldFZhbHVlKCk7XG4gIH1cblxuICBzZXQgc2hvd0ZpbHRlcih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgdmFsdWUgPSBVdGlsLnBhcnNlQm9vbGVhbih2YWx1ZSBhcyBhbnkpO1xuICAgIH1cbiAgICB0aGlzLmlzVmlzaWJsZUZpbHRlci5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzaG93RmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZUZpbHRlci5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgc2V0IHNob3dHcm91cEJ5Um93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB2YWx1ZSA9IFV0aWwucGFyc2VCb29sZWFuKHZhbHVlIGFzIGFueSk7XG4gICAgfVxuICAgIHRoaXMuaXNWaXNpYmxlR3JvdXBCeVJvdy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzaG93R3JvdXBCeVJvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1Zpc2libGVHcm91cEJ5Um93LmdldFZhbHVlKCk7XG4gIH1cblxuXG4gIEBWaWV3Q2hpbGQoJ2RlZmF1bHRDb250ZXh0TWVudScpXG4gIHByb3RlY3RlZCBkZWZhdWx0Q29udGV4dE1lbnU6IE9Db250ZXh0TWVudUNvbXBvbmVudDtcbiAgcHJvdGVjdGVkIF9yb3c6IGFueTtcbiAgcHJvdGVjdGVkIGNvbHVtbjogT0NvbHVtbjtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IE9UcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgY29udGV4dE1lbnVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHVibGljIGlzRGF0ZUNvbHVtbjogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9UYWJsZUJhc2UpKSBwdWJsaWMgdGFibGU6IE9UYWJsZUJhc2VcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoT1RyYW5zbGF0ZVNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMuc2hvd1NlbGVjdEFsbCkpIHtcbiAgICAgIHRoaXMuaXNWaXNpYmxlU2VsZWN0QWxsLm5leHQodGhpcy50YWJsZS5zZWxlY3RBbGxDaGVja2JveCk7XG4gICAgfVxuICAgIGlmICghdGhpcy50YWJsZS5ncm91cGFibGUpIHtcbiAgICAgIHRoaXMuaXNWaXNpYmxlR3JvdXBCeVJvdy5uZXh0KHRoaXMudGFibGUuZ3JvdXBhYmxlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29udGV4dE1lbnUpIHtcbiAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRNZW51LmV4dGVybmFsQ29udGV4dE1lbnVJdGVtcyA9IHRoaXMuY29udGV4dE1lbnUub0NvbnRleHRNZW51SXRlbXM7XG4gICAgfVxuICAgIHRoaXMudGFibGUucmVnaXN0ZXJDb250ZXh0TWVudSh0aGlzLmRlZmF1bHRDb250ZXh0TWVudSk7XG4gICAgdGhpcy5yZWdpc3RlckNvbnRleHRNZW51TGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJDb250ZXh0TWVudUxpc3RlbmVycygpIHtcbiAgICB0aGlzLmNvbnRleHRNZW51U3Vic2NyaXB0aW9uLmFkZCh0aGlzLmRlZmF1bHRDb250ZXh0TWVudS5vbkNsb3NlLnN1YnNjcmliZSgocGFyYW06IGFueSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnRhYmxlLmlzU2VsZWN0aW9uTW9kZU11bHRpcGxlKCkpIHtcbiAgICAgICAgdGhpcy50YWJsZS5jbGVhclNlbGVjdGlvbigpO1xuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHRoaXMuY29udGV4dE1lbnVTdWJzY3JpcHRpb24uYWRkKHRoaXMuZGVmYXVsdENvbnRleHRNZW51Lm9uU2hvdy5zdWJzY3JpYmUoKHBhcmFtOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuaW5pdFByb3BlcnRpZXMocGFyYW0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBnb3RvRGV0YWlscyhldmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhLnJvd1ZhbHVlO1xuICAgIHRoaXMudGFibGUudmlld0RldGFpbChkYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0KGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5kb0hhbmRsZUNsaWNrKGV2ZW50LmRhdGEucm93VmFsdWUsIGV2ZW50LmRhdGEuY2VsbE5hbWUsIGV2ZW50LmRhdGEucm93SW5kZXgsIGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5hZGQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5zaG93QW5kU2VsZWN0QWxsQ2hlY2tib3goKTtcbiAgfVxuXG4gIHB1YmxpYyB1blNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLnNlbGVjdGlvbi5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIGNvcHlBbGwoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5jb3B5QWxsKCk7XG4gIH1cblxuICBwdWJsaWMgY29weUNlbGwoZXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjZWxsX2RhdGEgPSB0aGlzLmRlZmF1bHRDb250ZXh0TWVudS5vcmlnaW4uaW5uZXJUZXh0O1xuICAgIFV0aWwuY29weVRvQ2xpcGJvYXJkKGNlbGxfZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgY29weVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLmNvcHlTZWxlY3Rpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5Um93KGV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04uc3RyaW5naWZ5KHRoaXMudGFibGUuZGF0YVNvdXJjZS5nZXRSZW5kZXJlZERhdGEoW2V2ZW50LmRhdGEucm93VmFsdWVdKSk7XG4gICAgVXRpbC5jb3B5VG9DbGlwYm9hcmQoZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5yZW1vdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGUucmVmcmVzaCgpO1xuICB9XG5cbiAgcHVibGljIGZpbHRlckJ5VmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgY29sdW1WYWx1ZUZpbHRlcjogT0NvbHVtblZhbHVlRmlsdGVyID0ge1xuICAgICAgYXR0cjogdGhpcy5jb2x1bW4uYXR0cixcbiAgICAgIG9wZXJhdG9yOiBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLklOLFxuICAgICAgdmFsdWVzOiBbdGhpcy5yb3dbdGhpcy5jb2x1bW4uYXR0cl1dLFxuICAgICAgYXZhaWxhYmxlVmFsdWVzOiB1bmRlZmluZWRcbiAgICB9O1xuICAgIHRoaXMudGFibGUuZmlsdGVyQnlDb2x1bW4oY29sdW1WYWx1ZUZpbHRlcik7XG4gIH1cblxuXG4gIHB1YmxpYyBncm91cEJ5Q29sdW1uKGRhdGVUeXBlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5ncm91cEJ5Q29sdW1uKHRoaXMuY29sdW1uLCBkYXRlVHlwZSk7XG4gICAgdGhpcy5pc0VuYWJsZWRHcm91cEJ5Q29sdW1uLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIHVuR3JvdXBCeUNvbHVtbigpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLnVuR3JvdXBCeUNvbHVtbih0aGlzLmNvbHVtbik7XG4gIH1cblxuICBwdWJsaWMgdW5Hcm91cEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLnVuR3JvdXBCeUFsbENvbHVtbnMoKTtcbiAgfVxuXG4gIGdldCBsYWJlbEZpbHRlckJ5Q29sdW1uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmNvbHVtbiAmJiB0aGlzLmNvbHVtbi50aXRsZSkgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdUQUJMRV9DT05URVhUX01FTlUuRklMVEVSX0JZJykgKyAnICcgKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KHRoaXMuY29sdW1uLnRpdGxlKSA6ICcnO1xuICB9XG5cbiAgZ2V0IGxhYmVsR3JvdXBCeUNvbHVtbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jb2x1bW4gJiYgdGhpcy5jb2x1bW4udGl0bGUpID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnVEFCTEVfQ09OVEVYVF9NRU5VLkdST1VQX0JZX0NPTFVNTicpICsgJyAnICsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0aGlzLmNvbHVtbi50aXRsZSkgOiAnJztcbiAgfVxuXG4gIGdldCBsYWJlbFVuR3JvdXBCeUNvbHVtbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jb2x1bW4gJiYgdGhpcy5jb2x1bW4udGl0bGUpID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnVEFCTEVfQ09OVEVYVF9NRU5VLlVOR1JPVVBfQllfQ09MVU1OJykgKyAnICcgKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KHRoaXMuY29sdW1uLnRpdGxlKSA6ICcnO1xuICB9XG5cbiAgZ2V0IHJvdygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9yb3c7XG4gIH1cblxuICBzZXQgcm93KHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl9yb3cgPSB2YWx1ZS5yb3dWYWx1ZTtcbiAgICBjb25zdCBpc1RhYmxlR3JvdXBlZFJvdyA9IHRoaXMuX3JvdyBpbnN0YW5jZW9mIE9UYWJsZUdyb3VwZWRSb3c7XG4gICAgbGV0IGNvbHVtbk5hbWUgPSB2YWx1ZS5jZWxsTmFtZTtcbiAgICBpZiAoaXNUYWJsZUdyb3VwZWRSb3cpIHtcbiAgICAgIGNvbHVtbk5hbWUgPSBjb2x1bW5OYW1lLnN1YnN0cmluZygnZ3JvdXBIZWFkZXItJy5sZW5ndGgpO1xuICAgIH1cbiAgICB0aGlzLmNvbHVtbiA9IHRoaXMudGFibGUuZ2V0T0NvbHVtbihjb2x1bW5OYW1lKTtcbiAgICB0aGlzLmlzQ29sdW1uRGF0ZSgpO1xuICAgIHRoaXMuaXNEYXRhQ2VsbC5uZXh0KCFpc1RhYmxlR3JvdXBlZFJvdyk7XG4gICAgdGhpcy5pc1RhYmxlR3JvdXBlZFJvdy5uZXh0KGlzVGFibGVHcm91cGVkUm93KTtcbiAgICB0aGlzLmlzR3JvdXBhYmxlQ2VsbC5uZXh0KGlzVGFibGVHcm91cGVkUm93ICYmICh0aGlzLl9yb3cgYXMgT1RhYmxlR3JvdXBlZFJvdykuaGFzQ29sdW1uRGF0YSh0aGlzLmNvbHVtbi5hdHRyKSk7XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlQ29sdW1uQWdncmVnYXRlcygpOiBzdHJpbmdbXSB7XG4gICAgbGV0IHJlc3VsdCA9IFV0aWwuY29sdW1uQWdncmVnYXRlcztcbiAgICBpZiAodGhpcy5yb3cgaW5zdGFuY2VvZiBPVGFibGVHcm91cGVkUm93KSB7XG4gICAgICBjb25zdCBncm91cGluZ0NvbXAgPSB0aGlzLnJvdy5nZXRDb2x1bW5Hcm91cGluZ0NvbXBvbmVudCh0aGlzLmNvbHVtbi5hdHRyKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChncm91cGluZ0NvbXAuYWdncmVnYXRlTmFtZSkpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKCk7XG4gICAgICAgIGlmIChyZXN1bHQuaW5jbHVkZXMoZ3JvdXBpbmdDb21wLmFnZ3JlZ2F0ZSkpIHtcbiAgICAgICAgICByZXN1bHQuc3BsaWNlKHJlc3VsdC5pbmRleE9mKGdyb3VwaW5nQ29tcC5hZ2dyZWdhdGUpLCAxLCBncm91cGluZ0NvbXAuYWdncmVnYXRlTmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goZ3JvdXBpbmdDb21wLmFnZ3JlZ2F0ZU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyQnlDb2x1bW4oZXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YWJsZS5vVGFibGVNZW51KSB7XG4gICAgICB0aGlzLnRhYmxlLmlzQ29sdW1uRmlsdGVyc0FjdGl2ZSA9IHRydWU7XG4gICAgICB0aGlzLnRhYmxlLm9wZW5Db2x1bW5GaWx0ZXJEaWFsb2codGhpcy5jb2x1bW4sIGV2ZW50LmV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hlY2tWaXNpYmxlRmlsdGVyKCk6IHZvaWQge1xuICAgIGxldCBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jb2x1bW4pIHtcbiAgICAgIGlzVmlzaWJsZSA9IHRoaXMuc2hvd0ZpbHRlciAmJiB0aGlzLnRhYmxlLmlzQ29sdW1uRmlsdGVyYWJsZSh0aGlzLmNvbHVtbik7XG4gICAgfVxuICAgIHRoaXMuaXNWaXNpYmxlRmlsdGVyLm5leHQoaXNWaXNpYmxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgZ3JvdXAgYnkgcm93IG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBjaGVja0dyb3VwQnlSb3dPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuaXNFbmFibGVkVW5Hcm91cEJ5Q29sdW1uLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuaXNFbmFibGVkVW5Hcm91cEFsbENvbHVtbi5uZXh0KGZhbHNlKTtcbiAgICBsZXQgZ3JvdXBlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbHVtbi5ncm91cGFibGUgJiYgIVV0aWwuaXNBcnJheUVtcHR5KHRoaXMudGFibGUuZ3JvdXBlZENvbHVtbnNBcnJheSkgJiYgdGhpcy5mb3VuZENvbHVtbkluR3JvdXBlZENvbHVtbnModGhpcy5jb2x1bW4pKSB7XG4gICAgICB0aGlzLmlzRW5hYmxlZFVuR3JvdXBCeUNvbHVtbi5uZXh0KHRydWUpO1xuICAgICAgZ3JvdXBlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5pc0VuYWJsZWRHcm91cEJ5Q29sdW1uLm5leHQodGhpcy5jb2x1bW4uZ3JvdXBhYmxlICYmICFncm91cGVkKTtcbiAgICBpZiAoIVV0aWwuaXNBcnJheUVtcHR5KHRoaXMudGFibGUuZ3JvdXBlZENvbHVtbnNBcnJheSkpIHtcbiAgICAgIHRoaXMuaXNFbmFibGVkVW5Hcm91cEFsbENvbHVtbi5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZm91bmRDb2x1bW5Jbkdyb3VwZWRDb2x1bW5zKGNvbHVtbik6IGJvb2xlYW4ge1xuICAgIGxldCBmb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHRoaXMudGFibGUuZ3JvdXBlZENvbHVtbnNBcnJheS5mb3JFYWNoKGdyb3VwZWRDb2x1bW4gPT4geyBpZiAoZ3JvdXBlZENvbHVtbiA9PSBjb2x1bW4uYXR0cikgeyBmb3VuZCA9IHRydWUgfSB9KTtcbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cblxuXG4gIHB1YmxpYyBjaGFuZ2VBZ2dyZWdhdGVGdW5jdGlvbihhcmc6IGFueSwgYWdncmVnYXRlRm5OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoYXJnLmRhdGEucm93VmFsdWUgaW5zdGFuY2VvZiBPVGFibGVHcm91cGVkUm93KSB7XG4gICAgICAoYXJnLmRhdGEucm93VmFsdWUgYXMgT1RhYmxlR3JvdXBlZFJvdykuc2V0Q29sdW1uQWN0aXZlQWdncmVnYXRlRnVuY3Rpb24odGhpcy5jb2x1bW4uYXR0ciwgYWdncmVnYXRlRm5OYW1lKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdFByb3BlcnRpZXMocGFyYW06IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSBwYXJhbS5kYXRhO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQoZGF0YSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yb3cgPSB7IHJvd1ZhbHVlOiBkYXRhLnJvd1ZhbHVlLCBjZWxsTmFtZTogZGF0YS5jZWxsTmFtZSB9O1xuICAgIHRoaXMuY2hlY2tWaXNpYmxlRmlsdGVyKCk7XG4gICAgdGhpcy5jaGVja0dyb3VwQnlSb3dPcHRpb25zKCk7XG4gIH1cblxuICBleHBhbmRSb3dHcm91cHNTYW1lTGV2ZWwoKSB7XG4gICAgdGhpcy50YWJsZS5kYXRhU291cmNlLnNldFJvd0dyb3VwTGV2ZWxFeHBhbnNpb24odGhpcy5fcm93LCB0cnVlKTtcbiAgfVxuXG4gIGNvbGxhcHNlUm93R3JvdXBzU2FtZUxldmVsKCkge1xuICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5zZXRSb3dHcm91cExldmVsRXhwYW5zaW9uKHRoaXMuX3JvdywgZmFsc2UpO1xuXG4gIH1cbiAgaXNDb2x1bW5EYXRlKCkge1xuICAgIHRoaXMuaXNEYXRlQ29sdW1uLm5leHQodGhpcy5jb2x1bW4udHlwZSA9PSAnZGF0ZScpO1xuICB9XG59XG4iLCI8by1jb250ZXh0LW1lbnUgI2RlZmF1bHRDb250ZXh0TWVudT5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEYXRhQ2VsbCB8IGFzeW5jXCI+XG4gICAgPG8tY29udGV4dC1tZW51LWl0ZW0gYXR0cj1cInJlZnJlc2hcIiBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5SRUZSRVNIXCIgc3ZnLWljb249XCJvbnRpbWl6ZTphdXRvcmVuZXdcIiAoZXhlY3V0ZSk9XCJyZWZyZXNoKClcIlxuICAgICAgW3Zpc2libGVdPVwiaXNWaXNpYmxlUmVmcmVzaCB8IGFzeW5jXCI+PC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGF0dHI9XCJkZXRhaWxcIiBpY29uPVwiY2hldnJvbl9yaWdodFwiIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLlZJRVdfREVUQUlMXCIgKGV4ZWN1dGUpPVwiZ290b0RldGFpbHMoJGV2ZW50KVwiXG4gICAgICBbdmlzaWJsZV09XCJpc1Zpc2libGVEZXRhaWwgfCBhc3luY1wiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBhdHRyPVwiZWRpdFwiIGljb249XCJlZGl0XCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuRURJVFwiIChleGVjdXRlKT1cImVkaXQoJGV2ZW50KVwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZUVkaXQgfCBhc3luY1wiPlxuICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBhdHRyPVwiaW5zZXJ0XCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuSU5TRVJUXCIgaWNvbj1cImFkZFwiIChleGVjdXRlKT1cImFkZCgpXCIgW3Zpc2libGVdPVwiaXNWaXNpYmxlSW5zZXJ0IHwgYXN5bmNcIj5cbiAgICA8L28tY29udGV4dC1tZW51LWl0ZW0+XG4gICAgPG8tY29udGV4dC1tZW51LWl0ZW0gYXR0cj1cImRlbGV0ZVwiIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkRFTEVURVwiIGljb249XCJkZWxldGVcIiAoZXhlY3V0ZSk9XCJkZWxldGUoJGV2ZW50KVwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZURlbGV0ZSB8IGFzeW5jXCI+XG4gICAgPC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgIDwhLS0gRklMVEVSIEdST1VQIC0tPlxuICAgIDxvLWNvbnRleHQtbWVudS1ncm91cCBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5GSUxURVJcIiBpY29uPVwiZmlsdGVyX2FsdFwiIHR5cGU9XCJncm91cFwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZUZpbHRlciB8IGFzeW5jXCI+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBpY29uPVwiZmlsdGVyX2FsdFwiIFtsYWJlbF09XCJsYWJlbEZpbHRlckJ5Q29sdW1uXCIgKGV4ZWN1dGUpPVwiZmlsdGVyQnlDb2x1bW4oJGV2ZW50KVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGljb249XCJmaWx0ZXJfYWx0XCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuRklMVEVSX0JZX1ZBTFVFXCIgKGV4ZWN1dGUpPVwiZmlsdGVyQnlWYWx1ZSgpXCI+PC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgIDwvby1jb250ZXh0LW1lbnUtZ3JvdXA+XG4gICAgPCEtLSBDT1BZIEdST1VQIC0tPlxuICAgIDxvLWNvbnRleHQtbWVudS1zZXBhcmF0b3IgW3Zpc2libGVdPVwiaXNWaXNpYmxlQ29weSB8IGFzeW5jXCI+PC9vLWNvbnRleHQtbWVudS1zZXBhcmF0b3I+XG4gICAgPG8tY29udGV4dC1tZW51LWdyb3VwIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkNPUFlcIiBpY29uPVwiZmlsZV9jb3B5XCIgdHlwZT1cImdyb3VwXCIgW3Zpc2libGVdPVwiaXNWaXNpYmxlQ29weSB8IGFzeW5jXCI+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBpY29uPVwiZmlsZV9jb3B5XCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuQ09QWV9DRUxMXCIgKGV4ZWN1dGUpPVwiY29weUNlbGwoJGV2ZW50KVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGljb249XCJmaWxlX2NvcHlcIiBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5DT1BZX1JPV1wiIChleGVjdXRlKT1cImNvcHlSb3coJGV2ZW50KVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkNPUFlfQUxMXCIgaWNvbj1cImZpbGVfY29weVwiIChleGVjdXRlKT1cImNvcHlBbGwoKVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkNPUFlfU0VMRUNUSU9OXCIgaWNvbj1cImZpbGVfY29weVwiIChleGVjdXRlKT1cImNvcHlTZWxlY3Rpb24oKVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8L28tY29udGV4dC1tZW51LWdyb3VwPlxuICAgIDxvLWNvbnRleHQtbWVudS1zZXBhcmF0b3IgW3Zpc2libGVdPVwiaXNWaXNpYmxlU2VsZWN0QWxsIHwgYXN5bmNcIj48L28tY29udGV4dC1tZW51LXNlcGFyYXRvcj5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBhdHRyPVwic2VsZWN0LWFsbFwiIFtsYWJlbF09XCJ0YWJsZS5pc0FsbFNlbGVjdGVkKCkgPyAnVEFCTEVfQ09OVEVYVF9NRU5VLkRFU0VMRUNUX0FMTCc6ICdUQUJMRV9DT05URVhUX01FTlUuU0VMRUNUX0FMTCdcIlxuICAgICAgaWNvbj1cInNlbGVjdF9hbGxcIiAoZXhlY3V0ZSk9XCJ0YWJsZS5pc0FsbFNlbGVjdGVkKCkgPyB1blNlbGVjdEFsbCgpIDogc2VsZWN0QWxsKClcIiBbdmlzaWJsZV09XCJpc1Zpc2libGVTZWxlY3RBbGwgfCBhc3luY1wiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cblxuICAgIDwhLS0gR1JPVVAgQlkgLS0+XG4gICAgPG8tY29udGV4dC1tZW51LXNlcGFyYXRvciBbdmlzaWJsZV09XCJpc1Zpc2libGVHcm91cEJ5Um93IHwgYXN5bmNcIj48L28tY29udGV4dC1tZW51LXNlcGFyYXRvcj5cbiAgICA8by1jb250ZXh0LW1lbnUtZ3JvdXAgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuR1JPVVBfQllcIiBpY29uPVwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiIHR5cGU9XCJncm91cFwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZUdyb3VwQnlSb3cgfCBhc3luY1wiPlxuICAgICAgPG8tY29udGV4dC1tZW51LWl0ZW0gKm5nSWY9XCJpc0RhdGVDb2x1bW4gfCBhc3luY1wiIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkdST1VQX0JZX1lFQVJcIiAoZXhlY3V0ZSk9XCJncm91cEJ5Q29sdW1uKCdZRUFSJylcIlxuICAgICAgICBpY29uPVwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiIHR5cGU9XCJncm91cFwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZUdyb3VwQnlSb3cgfCBhc3luY1wiIFtlbmFibGVkXT1cImlzRW5hYmxlZEdyb3VwQnlDb2x1bW4gfCBhc3luY1wiPlxuICAgICAgPC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgICAgPG8tY29udGV4dC1tZW51LWl0ZW0gKm5nSWY9XCJpc0RhdGVDb2x1bW4gfCBhc3luY1wiIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkdST1VQX0JZX01PTlRIXCIgKGV4ZWN1dGUpPVwiZ3JvdXBCeUNvbHVtbignTU9OVEgnKVwiXG4gICAgICAgIGljb249XCJmb3JtYXRfaW5kZW50X2luY3JlYXNlXCIgdHlwZT1cImdyb3VwXCIgW3Zpc2libGVdPVwiaXNWaXNpYmxlR3JvdXBCeVJvdyB8IGFzeW5jXCIgW2VuYWJsZWRdPVwiaXNFbmFibGVkR3JvdXBCeUNvbHVtbiB8IGFzeW5jXCI+XG4gICAgICA8L28tY29udGV4dC1tZW51LWl0ZW0+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSAqbmdJZj1cImlzRGF0ZUNvbHVtbiB8IGFzeW5jXCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuR1JPVVBfQllfWUVBUl9NT05USFwiIGljb249XCJmb3JtYXRfaW5kZW50X2luY3JlYXNlXCIgdHlwZT1cImdyb3VwXCJcbiAgICAgICAgKGV4ZWN1dGUpPVwiZ3JvdXBCeUNvbHVtbignWUVBUl9NT05USCcpXCIgW3Zpc2libGVdPVwiaXNWaXNpYmxlR3JvdXBCeVJvdyB8IGFzeW5jXCIgW2VuYWJsZWRdPVwiaXNFbmFibGVkR3JvdXBCeUNvbHVtbiB8IGFzeW5jXCI+XG4gICAgICA8L28tY29udGV4dC1tZW51LWl0ZW0+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSAqbmdJZj1cImlzRGF0ZUNvbHVtbiB8IGFzeW5jXCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuR1JPVVBfQllfWUVBUl9NT05USF9EQVlcIiBpY29uPVwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiIHR5cGU9XCJncm91cFwiXG4gICAgICAgIChleGVjdXRlKT1cImdyb3VwQnlDb2x1bW4oJ1lFQVJfTU9OVEhfREFZJylcIiBbdmlzaWJsZV09XCJpc1Zpc2libGVHcm91cEJ5Um93IHwgYXN5bmNcIiBbZW5hYmxlZF09XCJpc0VuYWJsZWRHcm91cEJ5Q29sdW1uIHwgYXN5bmNcIj5cbiAgICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtICpuZ0lmPVwiIShpc0RhdGVDb2x1bW4gfCBhc3luYylcIiBpY29uPVwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiIFtsYWJlbF09XCJsYWJlbEdyb3VwQnlDb2x1bW5cIiAoZXhlY3V0ZSk9XCJncm91cEJ5Q29sdW1uKClcIlxuICAgICAgICBbZW5hYmxlZF09XCJpc0VuYWJsZWRHcm91cEJ5Q29sdW1uIHwgYXN5bmNcIj48L28tY29udGV4dC1tZW51LWl0ZW0+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSAqbmdJZj1cImlzRW5hYmxlZFVuR3JvdXBCeUNvbHVtbiB8IGFzeW5jXCIgaWNvbj1cImZvcm1hdF9pbmRlbnRfZGVjcmVhc2VcIiBbbGFiZWxdPVwibGFiZWxVbkdyb3VwQnlDb2x1bW5cIlxuICAgICAgICAoZXhlY3V0ZSk9XCJ1bkdyb3VwQnlDb2x1bW4oKVwiIFtlbmFibGVkXT1cImlzRW5hYmxlZFVuR3JvdXBCeUNvbHVtbiB8IGFzeW5jXCI+PC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgICAgPG8tY29udGV4dC1tZW51LWl0ZW0gaWNvbj1cImZvcm1hdF9saW5lX3NwYWNpbmdcIiBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5VTkdST1VQX0FMTENPTFVNTlNcIiAoZXhlY3V0ZSk9XCJ1bkdyb3VwQWxsKClcIlxuICAgICAgICBbZW5hYmxlZF09XCJpc0VuYWJsZWRVbkdyb3VwQWxsQ29sdW1uIHwgYXN5bmNcIj5cbiAgICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8L28tY29udGV4dC1tZW51LWdyb3VwPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIEdST1VQIEJZIEhFQURFUiBDRUxMIEFHR1JFR0FURSBGVU5DVElPTiAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzR3JvdXBhYmxlQ2VsbCB8IGFzeW5jXCI+XG4gICAgPG8tY29udGV4dC1tZW51LWdyb3VwIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkdST1VQX0JZLkFHR1JFR0FURV9GVU5DVElPTlwiIGljb249XCJmb3JtYXRfaW5kZW50X2luY3JlYXNlXCIgdHlwZT1cImdyb3VwXCI+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgYWdncmVnYXRlRm4gb2YgYXZhaWxhYmxlQ29sdW1uQWdncmVnYXRlc1wiIGxhYmVsPVwie3sgJ0FHR1JFR0FURV9OQU1FLicgKyBhZ2dyZWdhdGVGbiB9fVwiXG4gICAgICAgIChleGVjdXRlKT1cImNoYW5nZUFnZ3JlZ2F0ZUZ1bmN0aW9uKCRldmVudCwgYWdncmVnYXRlRm4pXCI+PC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgIDwvby1jb250ZXh0LW1lbnUtZ3JvdXA+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RhYmxlR3JvdXBlZFJvdyB8IGFzeW5jXCI+XG4gICAgPG8tY29udGV4dC1tZW51LWl0ZW0gaWNvbj1cInVuZm9sZF9tb3JlXCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuRVhQQU5EX0FMTF9HUk9VUFNcIiAoZXhlY3V0ZSk9XCJleHBhbmRSb3dHcm91cHNTYW1lTGV2ZWwoKVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBpY29uPVwidW5mb2xkX2xlc3NcIiBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5DT0xMQVBTRV9BTExfR1JPVVBTXCIgKGV4ZWN1dGUpPVwiY29sbGFwc2VSb3dHcm91cHNTYW1lTGV2ZWwoKVwiPlxuICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvby1jb250ZXh0LW1lbnU+XG4iXX0=
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb250ZXh0LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvZXh0ZW5zaW9ucy9jb250ZXh0bWVudS9vLXRhYmxlLWNvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2NvbnRleHRtZW51L28tdGFibGUtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFzQixNQUFNLG9EQUFvRCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkRBQTZELENBQUM7Ozs7Ozs7O0FBRzFHLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHO0lBQy9DLDJCQUEyQjtJQUMzQixvQkFBb0I7SUFDcEIsZ0JBQWdCO0lBQ2hCLDZCQUE2QjtJQUM3QixnQkFBZ0I7SUFDaEIsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLDhCQUE4QjtDQUMvQixDQUFDO0FBUUYsTUFBTSxPQUFPLDBCQUEwQjtJQW1CckMsSUFBSSxVQUFVLENBQUMsS0FBYztRQUMzQixJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUM5QixLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFZLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDOUIsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBWSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxLQUFjO1FBQy9CLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQVksQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDOUIsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBWSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUNJLGFBQWEsQ0FBQyxLQUFjO1FBQzlCLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQVksQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsS0FBYztRQUM1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUM5QixLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFZLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFjO1FBQzNCLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQVksQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBYztRQUMzQixJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUM5QixLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFZLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEtBQWM7UUFDL0IsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDOUIsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBWSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQVVELFlBQ1ksUUFBa0IsRUFDaUIsS0FBaUI7UUFEcEQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNpQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBL0h6RCxvQkFBZSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RSxrQkFBYSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxvQkFBZSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RSxrQkFBYSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSx1QkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUscUJBQWdCLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLG9CQUFlLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLG9CQUFlLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLHdCQUFtQixHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSwyQkFBc0IsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0UsNkJBQXdCLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLDhCQUF5QixHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqRixlQUFVLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLHNCQUFpQixHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RSxvQkFBZSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQTRHbkUsNEJBQXVCLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUQsaUJBQVksR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFLekUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNyRDtRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztTQUN2RjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLDRCQUE0QjtRQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDeEYsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDdkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFLO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFTSxHQUFHO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFLO1FBQ25CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sYUFBYTtRQUNsQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzQyxNQUFNLE1BQU0sR0FDVixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNsRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUUxRSxJQUFJLFVBQVUsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNsSCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLGFBQWEsQ0FBQywyQkFBMkIsQ0FDdkMsSUFBSSxDQUFDLE1BQU0sRUFDWCxTQUFTLEVBQ1QsTUFBTSxFQUNOLGNBQWMsRUFDZCxjQUFjLEVBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQ25CLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FDdEMsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxJQUFZLEVBQUUsS0FBVSxFQUFFLFVBQXVDO1FBQy9GLE9BQU87WUFDTCxJQUFJO1lBQ0osUUFBUSxFQUFFLHlCQUF5QixDQUFDLEVBQUU7WUFDdEMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2YsZUFBZSxFQUFFLElBQUk7WUFDckIsa0JBQWtCLEVBQUUsVUFBVTtZQUM5QixlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLFNBQVM7U0FDOUQsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxVQUFxQyxFQUFFLFdBQWdCO1FBQy9FLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU0sYUFBYSxDQUFDLFFBQWlCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbEssQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEssQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsc0NBQXNDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUssQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxHQUFHLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDM0IsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxZQUFZLGdCQUFnQixDQUFDO1FBQ2hFLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixVQUFVLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUQ7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFLLElBQUksQ0FBQyxJQUF5QixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEgsQ0FBQztJQUVELElBQUkseUJBQXlCO1FBQzNCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxHQUFHLFlBQVksZ0JBQWdCLEVBQUU7WUFDeEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDdEY7cUJBQU07b0JBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3pDO2FBQ0Y7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBSztRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0Q7SUFDSCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRTtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFLTSxzQkFBc0I7UUFDM0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBQ00sMkJBQTJCLENBQUMsTUFBTTtRQUN2QyxJQUFJLEtBQUssR0FBWSxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxJQUFJLGFBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQTtTQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEgsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR00sdUJBQXVCLENBQUMsR0FBUSxFQUFFLGVBQXVCO1FBQzlELElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLFlBQVksZ0JBQWdCLEVBQUU7WUFDaEQsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUE2QixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1NBQzdHO0lBQ0gsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFVO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVwRSxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7O3dIQXJYVSwwQkFBMEIsMENBaUkzQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDOzRHQWpJM0IsMEJBQTBCLGttQkNqQ3ZDLDIzTEFzRUE7QUQwQkU7SUFBQyxxQkFBcUIsRUFBRTs7OytEQU12Qjs0RkFyRVUsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHNCQUFzQixtQkFFZix1QkFBdUIsQ0FBQyxNQUFNLFVBQ3ZDLGlDQUFpQzs7MEJBbUl0QyxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7NENBakVsQyxhQUFhLE1BeURQLGtCQUFrQjtzQkFEM0IsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dENvbnZlcnRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvaW5wdXQtY29udmVydGVyJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29sdW1uVmFsdWVGaWx0ZXJPcGVyYXRvciwgT0NvbHVtblZhbHVlRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0bWVudS9vLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vY29sdW1uL28tY29sdW1uLmNsYXNzJztcbmltcG9ydCB7IE9UYWJsZUdyb3VwZWRSb3cgfSBmcm9tICcuLi9yb3cvby10YWJsZS1yb3ctZ3JvdXAuY2xhc3MnO1xuaW1wb3J0IHsgT1RhYmxlQmFzZSB9IGZyb20gJy4uLy4uL28tdGFibGUtYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBPVGFibGVGaWx0ZXJCeUNvbHVtblNlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cvZmlsdGVyLWJ5LWNvbHVtbi9vLXRhYmxlLWZpbHRlci1ieS1jb2x1bW4uc2VydmljZSc7XG5pbXBvcnQgeyBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzL3RhYmxlL28tdGFibGUtZmlsdGVyLWJ5LWNvbHVtbi1kYXRhLnR5cGUnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9UQUJMRV9DT05URVhUX01FTlVfSU5QVVRTID0gW1xuICAnY29udGV4dE1lbnU6IGNvbnRleHQtbWVudScsXG4gICdzaG93SW5zZXJ0OiBpbnNlcnQnLFxuICAnc2hvd0VkaXQ6IGVkaXQnLFxuICAnc2hvd1ZpZXdEZXRhaWw6IHZpZXctZGV0YWlsJyxcbiAgJ3Nob3dDb3B5OiBjb3B5JyxcbiAgJ3Nob3dTZWxlY3RBbGw6IHNlbGVjdC1hbGwnLFxuICAnc2hvd1JlZnJlc2g6IHJlZnJlc2gnLFxuICAnc2hvd0RlbGV0ZTogZGVsZXRlJyxcbiAgJ3Nob3dGaWx0ZXI6IGZpbHRlcicsXG4gICdzaG93R3JvdXBCeVJvdzogZ3JvdXAtYnktcm93J1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby10YWJsZS1jb250ZXh0LW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vby10YWJsZS1jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW5wdXRzOiBERUZBVUxUX1RBQkxFX0NPTlRFWFRfTUVOVV9JTlBVVFNcbn0pXG5leHBvcnQgY2xhc3MgT1RhYmxlQ29udGV4dE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIGNvbnRleHRNZW51OiBPQ29udGV4dE1lbnVDb21wb25lbnQ7XG4gIHB1YmxpYyBpc1Zpc2libGVJbnNlcnQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyBpc1Zpc2libGVFZGl0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwdWJsaWMgaXNWaXNpYmxlRGV0YWlsOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwdWJsaWMgaXNWaXNpYmxlQ29weTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIGlzVmlzaWJsZVNlbGVjdEFsbDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIGlzVmlzaWJsZVJlZnJlc2g6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyBpc1Zpc2libGVEZWxldGU6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyBpc1Zpc2libGVGaWx0ZXI6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyBpc1Zpc2libGVHcm91cEJ5Um93OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwdWJsaWMgaXNFbmFibGVkR3JvdXBCeUNvbHVtbjogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIGlzRW5hYmxlZFVuR3JvdXBCeUNvbHVtbjogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyBpc0VuYWJsZWRVbkdyb3VwQWxsQ29sdW1uOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBwdWJsaWMgaXNEYXRhQ2VsbDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIGlzVGFibGVHcm91cGVkUm93OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwdWJsaWMgaXNHcm91cGFibGVDZWxsOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuXG4gIHNldCBzaG93SW5zZXJ0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB2YWx1ZSA9IFV0aWwucGFyc2VCb29sZWFuKHZhbHVlIGFzIGFueSk7XG4gICAgfVxuICAgIHRoaXMuaXNWaXNpYmxlSW5zZXJ0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNob3dJbnNlcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlSW5zZXJ0LmdldFZhbHVlKCk7XG4gIH1cblxuICBzZXQgc2hvd0VkaXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHZhbHVlID0gVXRpbC5wYXJzZUJvb2xlYW4odmFsdWUgYXMgYW55KTtcbiAgICB9XG4gICAgdGhpcy5pc1Zpc2libGVFZGl0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNob3dFZGl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZUVkaXQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHNldCBzaG93Vmlld0RldGFpbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgdmFsdWUgPSBVdGlsLnBhcnNlQm9vbGVhbih2YWx1ZSBhcyBhbnkpO1xuICAgIH1cbiAgICB0aGlzLmlzVmlzaWJsZURldGFpbC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzaG93Vmlld0RldGFpbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1Zpc2libGVEZXRhaWwuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHNldCBzaG93Q29weSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgdmFsdWUgPSBVdGlsLnBhcnNlQm9vbGVhbih2YWx1ZSBhcyBhbnkpO1xuICAgIH1cbiAgICB0aGlzLmlzVmlzaWJsZUNvcHkubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgc2hvd0NvcHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlQ29weS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHNldCBzaG93U2VsZWN0QWxsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB2YWx1ZSA9IFV0aWwucGFyc2VCb29sZWFuKHZhbHVlIGFzIGFueSk7XG4gICAgfVxuICAgIHRoaXMudGFibGUuaXNTZWxlY3Rpb25Nb2RlTm9uZSgpID8gdGhpcy5pc1Zpc2libGVTZWxlY3RBbGwubmV4dChmYWxzZSkgOiB0aGlzLmlzVmlzaWJsZVNlbGVjdEFsbC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzaG93U2VsZWN0QWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZVNlbGVjdEFsbC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgc2V0IHNob3dSZWZyZXNoKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB2YWx1ZSA9IFV0aWwucGFyc2VCb29sZWFuKHZhbHVlIGFzIGFueSk7XG4gICAgfVxuICAgIHRoaXMuaXNWaXNpYmxlUmVmcmVzaC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzaG93UmVmcmVzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1Zpc2libGVSZWZyZXNoLmdldFZhbHVlKCk7XG4gIH1cblxuICBzZXQgc2hvd0RlbGV0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgdmFsdWUgPSBVdGlsLnBhcnNlQm9vbGVhbih2YWx1ZSBhcyBhbnkpO1xuICAgIH1cbiAgICB0aGlzLmlzVmlzaWJsZURlbGV0ZS5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzaG93RGVsZXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZURlbGV0ZS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgc2V0IHNob3dGaWx0ZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHZhbHVlID0gVXRpbC5wYXJzZUJvb2xlYW4odmFsdWUgYXMgYW55KTtcbiAgICB9XG4gICAgdGhpcy5pc1Zpc2libGVGaWx0ZXIubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgc2hvd0ZpbHRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1Zpc2libGVGaWx0ZXIuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHNldCBzaG93R3JvdXBCeVJvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgdmFsdWUgPSBVdGlsLnBhcnNlQm9vbGVhbih2YWx1ZSBhcyBhbnkpO1xuICAgIH1cbiAgICB0aGlzLmlzVmlzaWJsZUdyb3VwQnlSb3cubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgc2hvd0dyb3VwQnlSb3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlR3JvdXBCeVJvdy5nZXRWYWx1ZSgpO1xuICB9XG5cblxuICBAVmlld0NoaWxkKCdkZWZhdWx0Q29udGV4dE1lbnUnKVxuICBwcm90ZWN0ZWQgZGVmYXVsdENvbnRleHRNZW51OiBPQ29udGV4dE1lbnVDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBfcm93OiBhbnk7XG4gIHByb3RlY3RlZCBjb2x1bW46IE9Db2x1bW47XG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcbiAgcHJvdGVjdGVkIGNvbnRleHRNZW51U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHB1YmxpYyBpc0RhdGVDb2x1bW46IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBPVGFibGVCYXNlKSkgcHVibGljIHRhYmxlOiBPVGFibGVCYXNlXG4gICkge1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9UcmFuc2xhdGVTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLnNob3dTZWxlY3RBbGwpKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZVNlbGVjdEFsbC5uZXh0KHRoaXMudGFibGUuc2VsZWN0QWxsQ2hlY2tib3gpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudGFibGUuZ3JvdXBhYmxlKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZUdyb3VwQnlSb3cubmV4dCh0aGlzLnRhYmxlLmdyb3VwYWJsZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLmRlZmF1bHRDb250ZXh0TWVudS5leHRlcm5hbENvbnRleHRNZW51SXRlbXMgPSB0aGlzLmNvbnRleHRNZW51Lm9Db250ZXh0TWVudUl0ZW1zO1xuICAgIH1cbiAgICB0aGlzLnRhYmxlLnJlZ2lzdGVyQ29udGV4dE1lbnUodGhpcy5kZWZhdWx0Q29udGV4dE1lbnUpO1xuICAgIHRoaXMucmVnaXN0ZXJDb250ZXh0TWVudUxpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyQ29udGV4dE1lbnVMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5jb250ZXh0TWVudVN1YnNjcmlwdGlvbi5hZGQodGhpcy5kZWZhdWx0Q29udGV4dE1lbnUub25DbG9zZS5zdWJzY3JpYmUoKHBhcmFtOiBhbnkpID0+IHtcbiAgICAgIGlmICghdGhpcy50YWJsZS5pc1NlbGVjdGlvbk1vZGVNdWx0aXBsZSgpKSB7XG4gICAgICAgIHRoaXMudGFibGUuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICB0aGlzLmNvbnRleHRNZW51U3Vic2NyaXB0aW9uLmFkZCh0aGlzLmRlZmF1bHRDb250ZXh0TWVudS5vblNob3cuc3Vic2NyaWJlKChwYXJhbTogYW55KSA9PiB7XG4gICAgICB0aGlzLmluaXRQcm9wZXJ0aWVzKHBhcmFtKTtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgZ290b0RldGFpbHMoZXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YS5yb3dWYWx1ZTtcbiAgICB0aGlzLnRhYmxlLnZpZXdEZXRhaWwoZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZWRpdChldmVudCk6IHZvaWQge1xuICAgIHRoaXMudGFibGUuZG9IYW5kbGVDbGljayhldmVudC5kYXRhLnJvd1ZhbHVlLCBldmVudC5kYXRhLmNlbGxOYW1lLCBldmVudC5kYXRhLnJvd0luZGV4LCBldmVudCk7XG4gIH1cblxuICBwdWJsaWMgYWRkKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGUuYWRkKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGUuc2hvd0FuZFNlbGVjdEFsbENoZWNrYm94KCk7XG4gIH1cblxuICBwdWJsaWMgdW5TZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5QWxsKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGUuY29weUFsbCgpO1xuICB9XG5cbiAgcHVibGljIGNvcHlDZWxsKGV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2VsbF9kYXRhID0gdGhpcy5kZWZhdWx0Q29udGV4dE1lbnUub3JpZ2luLmlubmVyVGV4dDtcbiAgICBVdGlsLmNvcHlUb0NsaXBib2FyZChjZWxsX2RhdGEpO1xuICB9XG5cbiAgcHVibGljIGNvcHlTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5jb3B5U2VsZWN0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgY29weVJvdyhldmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZ2V0UmVuZGVyZWREYXRhKFtldmVudC5kYXRhLnJvd1ZhbHVlXSkpO1xuICAgIFV0aWwuY29weVRvQ2xpcGJvYXJkKGRhdGEpO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShldmVudCk6IHZvaWQge1xuICAgIHRoaXMudGFibGUucmVtb3ZlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXJCeVZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlclNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChPVGFibGVGaWx0ZXJCeUNvbHVtblNlcnZpY2UpO1xuXG4gICAgY29uc3QgY29sdW1uQXR0ciA9IHRoaXMuY29sdW1uLmF0dHI7XG4gICAgY29uc3Qgc291cmNlRGF0YVR5cGUgPSB0aGlzLnRhYmxlLmdldFNvdXJjZURhdGFCeUZpbHRlckNvbHVtbih0aGlzLmNvbHVtbik7XG4gICAgY29uc3QgdGFibGVEYXRhID0gdGhpcy50YWJsZS5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSB0aGlzLnJvd1tjb2x1bW5BdHRyXTtcblxuICAgIGNvbnN0IGZpbHRlcjogT0NvbHVtblZhbHVlRmlsdGVyID1cbiAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5nZXRDb2x1bW5WYWx1ZUZpbHRlckJ5QXR0cih0aGlzLmNvbHVtbi5hdHRyKSA/P1xuICAgICAgdGhpcy5jcmVhdGVDb2x1bW5WYWx1ZUZpbHRlcihjb2x1bW5BdHRyLCBzZWxlY3RlZFZhbHVlLCBzb3VyY2VEYXRhVHlwZSk7XG5cbiAgICBsZXQgY29sdW1uRGF0YSA9IGZpbHRlclNlcnZpY2UucGFyc2VMaXN0RGF0YShmaWx0ZXIsIHRoaXMuY29sdW1uLCB0YWJsZURhdGEsIHRoaXMudGFibGUucGFnZWFibGUsIHNvdXJjZURhdGFUeXBlKTtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoY29sdW1uRGF0YSwgc2VsZWN0ZWRWYWx1ZSk7XG4gICAgZmlsdGVyU2VydmljZS5hcHBseVNlbGVjdGVkVmFsdWVzVG9GaWx0ZXIoXG4gICAgICB0aGlzLmNvbHVtbixcbiAgICAgIHRhYmxlRGF0YSxcbiAgICAgIGZpbHRlcixcbiAgICAgIHNlbGVjdGVkVmFsdWVzLFxuICAgICAgc291cmNlRGF0YVR5cGUsXG4gICAgICB0aGlzLnRhYmxlLnBhZ2VhYmxlLFxuICAgICAgKCkgPT4gdGhpcy50YWJsZS5nZXRDb21wb25lbnRGaWx0ZXIoKVxuICAgICk7XG5cbiAgICB0aGlzLnRhYmxlLmZpbHRlckJ5Q29sdW1uKGZpbHRlcik7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvbHVtblZhbHVlRmlsdGVyKGF0dHI6IHN0cmluZywgdmFsdWU6IGFueSwgc291cmNlRGF0YTogJ2N1cnJlbnQtcGFnZScgfCAnYWxsLWRhdGEnKTogT0NvbHVtblZhbHVlRmlsdGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cixcbiAgICAgIG9wZXJhdG9yOiBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yLklOLFxuICAgICAgdmFsdWVzOiBbdmFsdWVdLFxuICAgICAgYXZhaWxhYmxlVmFsdWVzOiBudWxsLFxuICAgICAgZmlsdGVyVmFsdWVzSW5EYXRhOiBzb3VyY2VEYXRhLFxuICAgICAgZmlsdGVyRXhwcmVzaW9uOiB0aGlzLnRhYmxlLmdldENvbXBvbmVudEZpbHRlcigpID8/IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdGVkVmFsdWVzKGNvbHVtbkRhdGE6IFRhYmxlRmlsdGVyQnlDb2x1bW5EYXRhW10sIHRhcmdldFZhbHVlOiBhbnkpOiBUYWJsZUZpbHRlckJ5Q29sdW1uRGF0YVtdIHtcbiAgICByZXR1cm4gY29sdW1uRGF0YS5maWx0ZXIoaXRlbSA9PiBpdGVtLnZhbHVlID09PSB0YXJnZXRWYWx1ZSAmJiBpdGVtLnNlbGVjdGVkKTtcbiAgfVxuXG4gIHB1YmxpYyBncm91cEJ5Q29sdW1uKGRhdGVUeXBlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5ncm91cEJ5Q29sdW1uKHRoaXMuY29sdW1uLCBkYXRlVHlwZSk7XG4gICAgdGhpcy5pc0VuYWJsZWRHcm91cEJ5Q29sdW1uLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIHVuR3JvdXBCeUNvbHVtbigpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLnVuR3JvdXBCeUNvbHVtbih0aGlzLmNvbHVtbik7XG4gIH1cblxuICBwdWJsaWMgdW5Hcm91cEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLnVuR3JvdXBCeUFsbENvbHVtbnMoKTtcbiAgfVxuXG4gIGdldCBsYWJlbEZpbHRlckJ5Q29sdW1uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmNvbHVtbiAmJiB0aGlzLmNvbHVtbi50aXRsZSkgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdUQUJMRV9DT05URVhUX01FTlUuRklMVEVSX0JZJykgKyAnICcgKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KHRoaXMuY29sdW1uLnRpdGxlKSA6ICcnO1xuICB9XG5cbiAgZ2V0IGxhYmVsR3JvdXBCeUNvbHVtbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jb2x1bW4gJiYgdGhpcy5jb2x1bW4udGl0bGUpID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnVEFCTEVfQ09OVEVYVF9NRU5VLkdST1VQX0JZX0NPTFVNTicpICsgJyAnICsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0aGlzLmNvbHVtbi50aXRsZSkgOiAnJztcbiAgfVxuXG4gIGdldCBsYWJlbFVuR3JvdXBCeUNvbHVtbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jb2x1bW4gJiYgdGhpcy5jb2x1bW4udGl0bGUpID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnVEFCTEVfQ09OVEVYVF9NRU5VLlVOR1JPVVBfQllfQ09MVU1OJykgKyAnICcgKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KHRoaXMuY29sdW1uLnRpdGxlKSA6ICcnO1xuICB9XG5cbiAgZ2V0IHJvdygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9yb3c7XG4gIH1cblxuICBzZXQgcm93KHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl9yb3cgPSB2YWx1ZS5yb3dWYWx1ZTtcbiAgICBjb25zdCBpc1RhYmxlR3JvdXBlZFJvdyA9IHRoaXMuX3JvdyBpbnN0YW5jZW9mIE9UYWJsZUdyb3VwZWRSb3c7XG4gICAgbGV0IGNvbHVtbk5hbWUgPSB2YWx1ZS5jZWxsTmFtZTtcbiAgICBpZiAoaXNUYWJsZUdyb3VwZWRSb3cpIHtcbiAgICAgIGNvbHVtbk5hbWUgPSBjb2x1bW5OYW1lLnN1YnN0cmluZygnZ3JvdXBIZWFkZXItJy5sZW5ndGgpO1xuICAgIH1cbiAgICB0aGlzLmNvbHVtbiA9IHRoaXMudGFibGUuZ2V0T0NvbHVtbihjb2x1bW5OYW1lKTtcbiAgICB0aGlzLmlzQ29sdW1uRGF0ZSgpO1xuICAgIHRoaXMuaXNEYXRhQ2VsbC5uZXh0KCFpc1RhYmxlR3JvdXBlZFJvdyk7XG4gICAgdGhpcy5pc1RhYmxlR3JvdXBlZFJvdy5uZXh0KGlzVGFibGVHcm91cGVkUm93KTtcbiAgICB0aGlzLmlzR3JvdXBhYmxlQ2VsbC5uZXh0KGlzVGFibGVHcm91cGVkUm93ICYmICh0aGlzLl9yb3cgYXMgT1RhYmxlR3JvdXBlZFJvdykuaGFzQ29sdW1uRGF0YSh0aGlzLmNvbHVtbi5hdHRyKSk7XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlQ29sdW1uQWdncmVnYXRlcygpOiBzdHJpbmdbXSB7XG4gICAgbGV0IHJlc3VsdCA9IFV0aWwuY29sdW1uQWdncmVnYXRlcztcbiAgICBpZiAodGhpcy5yb3cgaW5zdGFuY2VvZiBPVGFibGVHcm91cGVkUm93KSB7XG4gICAgICBjb25zdCBncm91cGluZ0NvbXAgPSB0aGlzLnJvdy5nZXRDb2x1bW5Hcm91cGluZ0NvbXBvbmVudCh0aGlzLmNvbHVtbi5hdHRyKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChncm91cGluZ0NvbXAuYWdncmVnYXRlTmFtZSkpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKCk7XG4gICAgICAgIGlmIChyZXN1bHQuaW5jbHVkZXMoZ3JvdXBpbmdDb21wLmFnZ3JlZ2F0ZSkpIHtcbiAgICAgICAgICByZXN1bHQuc3BsaWNlKHJlc3VsdC5pbmRleE9mKGdyb3VwaW5nQ29tcC5hZ2dyZWdhdGUpLCAxLCBncm91cGluZ0NvbXAuYWdncmVnYXRlTmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goZ3JvdXBpbmdDb21wLmFnZ3JlZ2F0ZU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyQnlDb2x1bW4oZXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YWJsZS5vVGFibGVNZW51KSB7XG4gICAgICB0aGlzLnRhYmxlLmlzQ29sdW1uRmlsdGVyc0FjdGl2ZSA9IHRydWU7XG4gICAgICB0aGlzLnRhYmxlLm9wZW5Db2x1bW5GaWx0ZXJEaWFsb2codGhpcy5jb2x1bW4sIGV2ZW50LmV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hlY2tWaXNpYmxlRmlsdGVyKCk6IHZvaWQge1xuICAgIGxldCBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jb2x1bW4pIHtcbiAgICAgIGlzVmlzaWJsZSA9IHRoaXMuc2hvd0ZpbHRlciAmJiB0aGlzLnRhYmxlLmlzQ29sdW1uRmlsdGVyYWJsZSh0aGlzLmNvbHVtbik7XG4gICAgfVxuICAgIHRoaXMuaXNWaXNpYmxlRmlsdGVyLm5leHQoaXNWaXNpYmxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgZ3JvdXAgYnkgcm93IG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBjaGVja0dyb3VwQnlSb3dPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuaXNFbmFibGVkVW5Hcm91cEJ5Q29sdW1uLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuaXNFbmFibGVkVW5Hcm91cEFsbENvbHVtbi5uZXh0KGZhbHNlKTtcbiAgICBsZXQgZ3JvdXBlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbHVtbi5ncm91cGFibGUgJiYgIVV0aWwuaXNBcnJheUVtcHR5KHRoaXMudGFibGUuZ3JvdXBlZENvbHVtbnNBcnJheSkgJiYgdGhpcy5mb3VuZENvbHVtbkluR3JvdXBlZENvbHVtbnModGhpcy5jb2x1bW4pKSB7XG4gICAgICB0aGlzLmlzRW5hYmxlZFVuR3JvdXBCeUNvbHVtbi5uZXh0KHRydWUpO1xuICAgICAgZ3JvdXBlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5pc0VuYWJsZWRHcm91cEJ5Q29sdW1uLm5leHQodGhpcy5jb2x1bW4uZ3JvdXBhYmxlICYmICFncm91cGVkKTtcbiAgICBpZiAoIVV0aWwuaXNBcnJheUVtcHR5KHRoaXMudGFibGUuZ3JvdXBlZENvbHVtbnNBcnJheSkpIHtcbiAgICAgIHRoaXMuaXNFbmFibGVkVW5Hcm91cEFsbENvbHVtbi5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZm91bmRDb2x1bW5Jbkdyb3VwZWRDb2x1bW5zKGNvbHVtbik6IGJvb2xlYW4ge1xuICAgIGxldCBmb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHRoaXMudGFibGUuZ3JvdXBlZENvbHVtbnNBcnJheS5mb3JFYWNoKGdyb3VwZWRDb2x1bW4gPT4geyBpZiAoZ3JvdXBlZENvbHVtbiA9PSBjb2x1bW4uYXR0cikgeyBmb3VuZCA9IHRydWUgfSB9KTtcbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cblxuXG4gIHB1YmxpYyBjaGFuZ2VBZ2dyZWdhdGVGdW5jdGlvbihhcmc6IGFueSwgYWdncmVnYXRlRm5OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoYXJnLmRhdGEucm93VmFsdWUgaW5zdGFuY2VvZiBPVGFibGVHcm91cGVkUm93KSB7XG4gICAgICAoYXJnLmRhdGEucm93VmFsdWUgYXMgT1RhYmxlR3JvdXBlZFJvdykuc2V0Q29sdW1uQWN0aXZlQWdncmVnYXRlRnVuY3Rpb24odGhpcy5jb2x1bW4uYXR0ciwgYWdncmVnYXRlRm5OYW1lKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdFByb3BlcnRpZXMocGFyYW06IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSBwYXJhbS5kYXRhO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQoZGF0YSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yb3cgPSB7IHJvd1ZhbHVlOiBkYXRhLnJvd1ZhbHVlLCBjZWxsTmFtZTogZGF0YS5jZWxsTmFtZSB9O1xuICAgIHRoaXMuY2hlY2tWaXNpYmxlRmlsdGVyKCk7XG4gICAgdGhpcy5jaGVja0dyb3VwQnlSb3dPcHRpb25zKCk7XG4gIH1cblxuICBleHBhbmRSb3dHcm91cHNTYW1lTGV2ZWwoKSB7XG4gICAgdGhpcy50YWJsZS5kYXRhU291cmNlLnNldFJvd0dyb3VwTGV2ZWxFeHBhbnNpb24odGhpcy5fcm93LCB0cnVlKTtcbiAgfVxuXG4gIGNvbGxhcHNlUm93R3JvdXBzU2FtZUxldmVsKCkge1xuICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5zZXRSb3dHcm91cExldmVsRXhwYW5zaW9uKHRoaXMuX3JvdywgZmFsc2UpO1xuXG4gIH1cbiAgaXNDb2x1bW5EYXRlKCkge1xuICAgIHRoaXMuaXNEYXRlQ29sdW1uLm5leHQodGhpcy5jb2x1bW4udHlwZSA9PSAnZGF0ZScpO1xuICB9XG59XG4iLCI8by1jb250ZXh0LW1lbnUgI2RlZmF1bHRDb250ZXh0TWVudT5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEYXRhQ2VsbCB8IGFzeW5jXCI+XG4gICAgPG8tY29udGV4dC1tZW51LWl0ZW0gYXR0cj1cInJlZnJlc2hcIiBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5SRUZSRVNIXCIgc3ZnLWljb249XCJvbnRpbWl6ZTphdXRvcmVuZXdcIiAoZXhlY3V0ZSk9XCJyZWZyZXNoKClcIlxuICAgICAgW3Zpc2libGVdPVwiaXNWaXNpYmxlUmVmcmVzaCB8IGFzeW5jXCI+PC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGF0dHI9XCJkZXRhaWxcIiBpY29uPVwiY2hldnJvbl9yaWdodFwiIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLlZJRVdfREVUQUlMXCIgKGV4ZWN1dGUpPVwiZ290b0RldGFpbHMoJGV2ZW50KVwiXG4gICAgICBbdmlzaWJsZV09XCJpc1Zpc2libGVEZXRhaWwgfCBhc3luY1wiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBhdHRyPVwiZWRpdFwiIGljb249XCJlZGl0XCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuRURJVFwiIChleGVjdXRlKT1cImVkaXQoJGV2ZW50KVwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZUVkaXQgfCBhc3luY1wiPlxuICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBhdHRyPVwiaW5zZXJ0XCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuSU5TRVJUXCIgaWNvbj1cImFkZFwiIChleGVjdXRlKT1cImFkZCgpXCIgW3Zpc2libGVdPVwiaXNWaXNpYmxlSW5zZXJ0IHwgYXN5bmNcIj5cbiAgICA8L28tY29udGV4dC1tZW51LWl0ZW0+XG4gICAgPG8tY29udGV4dC1tZW51LWl0ZW0gYXR0cj1cImRlbGV0ZVwiIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkRFTEVURVwiIGljb249XCJkZWxldGVcIiAoZXhlY3V0ZSk9XCJkZWxldGUoJGV2ZW50KVwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZURlbGV0ZSB8IGFzeW5jXCI+XG4gICAgPC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgIDwhLS0gRklMVEVSIEdST1VQIC0tPlxuICAgIDxvLWNvbnRleHQtbWVudS1ncm91cCBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5GSUxURVJcIiBpY29uPVwiZmlsdGVyX2FsdFwiIHR5cGU9XCJncm91cFwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZUZpbHRlciB8IGFzeW5jXCI+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBpY29uPVwiZmlsdGVyX2FsdFwiIFtsYWJlbF09XCJsYWJlbEZpbHRlckJ5Q29sdW1uXCIgKGV4ZWN1dGUpPVwiZmlsdGVyQnlDb2x1bW4oJGV2ZW50KVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGljb249XCJmaWx0ZXJfYWx0XCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuRklMVEVSX0JZX1ZBTFVFXCIgKGV4ZWN1dGUpPVwiZmlsdGVyQnlWYWx1ZSgpXCI+PC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgIDwvby1jb250ZXh0LW1lbnUtZ3JvdXA+XG4gICAgPCEtLSBDT1BZIEdST1VQIC0tPlxuICAgIDxvLWNvbnRleHQtbWVudS1zZXBhcmF0b3IgW3Zpc2libGVdPVwiaXNWaXNpYmxlQ29weSB8IGFzeW5jXCI+PC9vLWNvbnRleHQtbWVudS1zZXBhcmF0b3I+XG4gICAgPG8tY29udGV4dC1tZW51LWdyb3VwIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkNPUFlcIiBpY29uPVwiZmlsZV9jb3B5XCIgdHlwZT1cImdyb3VwXCIgW3Zpc2libGVdPVwiaXNWaXNpYmxlQ29weSB8IGFzeW5jXCI+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBpY29uPVwiZmlsZV9jb3B5XCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuQ09QWV9DRUxMXCIgKGV4ZWN1dGUpPVwiY29weUNlbGwoJGV2ZW50KVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGljb249XCJmaWxlX2NvcHlcIiBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5DT1BZX1JPV1wiIChleGVjdXRlKT1cImNvcHlSb3coJGV2ZW50KVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkNPUFlfQUxMXCIgaWNvbj1cImZpbGVfY29weVwiIChleGVjdXRlKT1cImNvcHlBbGwoKVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkNPUFlfU0VMRUNUSU9OXCIgaWNvbj1cImZpbGVfY29weVwiIChleGVjdXRlKT1cImNvcHlTZWxlY3Rpb24oKVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8L28tY29udGV4dC1tZW51LWdyb3VwPlxuICAgIDxvLWNvbnRleHQtbWVudS1zZXBhcmF0b3IgW3Zpc2libGVdPVwiaXNWaXNpYmxlU2VsZWN0QWxsIHwgYXN5bmNcIj48L28tY29udGV4dC1tZW51LXNlcGFyYXRvcj5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBhdHRyPVwic2VsZWN0LWFsbFwiIFtsYWJlbF09XCJ0YWJsZS5pc0FsbFNlbGVjdGVkKCkgPyAnVEFCTEVfQ09OVEVYVF9NRU5VLkRFU0VMRUNUX0FMTCc6ICdUQUJMRV9DT05URVhUX01FTlUuU0VMRUNUX0FMTCdcIlxuICAgICAgaWNvbj1cInNlbGVjdF9hbGxcIiAoZXhlY3V0ZSk9XCJ0YWJsZS5pc0FsbFNlbGVjdGVkKCkgPyB1blNlbGVjdEFsbCgpIDogc2VsZWN0QWxsKClcIiBbdmlzaWJsZV09XCJpc1Zpc2libGVTZWxlY3RBbGwgfCBhc3luY1wiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cblxuICAgIDwhLS0gR1JPVVAgQlkgLS0+XG4gICAgPG8tY29udGV4dC1tZW51LXNlcGFyYXRvciBbdmlzaWJsZV09XCJpc1Zpc2libGVHcm91cEJ5Um93IHwgYXN5bmNcIj48L28tY29udGV4dC1tZW51LXNlcGFyYXRvcj5cbiAgICA8by1jb250ZXh0LW1lbnUtZ3JvdXAgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuR1JPVVBfQllcIiBpY29uPVwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiIHR5cGU9XCJncm91cFwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZUdyb3VwQnlSb3cgfCBhc3luY1wiPlxuICAgICAgPG8tY29udGV4dC1tZW51LWl0ZW0gKm5nSWY9XCJpc0RhdGVDb2x1bW4gfCBhc3luY1wiIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkdST1VQX0JZX1lFQVJcIiAoZXhlY3V0ZSk9XCJncm91cEJ5Q29sdW1uKCdZRUFSJylcIlxuICAgICAgICBpY29uPVwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiIHR5cGU9XCJncm91cFwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZUdyb3VwQnlSb3cgfCBhc3luY1wiIFtlbmFibGVkXT1cImlzRW5hYmxlZEdyb3VwQnlDb2x1bW4gfCBhc3luY1wiPlxuICAgICAgPC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgICAgPG8tY29udGV4dC1tZW51LWl0ZW0gKm5nSWY9XCJpc0RhdGVDb2x1bW4gfCBhc3luY1wiIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkdST1VQX0JZX01PTlRIXCIgKGV4ZWN1dGUpPVwiZ3JvdXBCeUNvbHVtbignTU9OVEgnKVwiXG4gICAgICAgIGljb249XCJmb3JtYXRfaW5kZW50X2luY3JlYXNlXCIgdHlwZT1cImdyb3VwXCIgW3Zpc2libGVdPVwiaXNWaXNpYmxlR3JvdXBCeVJvdyB8IGFzeW5jXCIgW2VuYWJsZWRdPVwiaXNFbmFibGVkR3JvdXBCeUNvbHVtbiB8IGFzeW5jXCI+XG4gICAgICA8L28tY29udGV4dC1tZW51LWl0ZW0+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSAqbmdJZj1cImlzRGF0ZUNvbHVtbiB8IGFzeW5jXCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuR1JPVVBfQllfWUVBUl9NT05USFwiIGljb249XCJmb3JtYXRfaW5kZW50X2luY3JlYXNlXCIgdHlwZT1cImdyb3VwXCJcbiAgICAgICAgKGV4ZWN1dGUpPVwiZ3JvdXBCeUNvbHVtbignWUVBUl9NT05USCcpXCIgW3Zpc2libGVdPVwiaXNWaXNpYmxlR3JvdXBCeVJvdyB8IGFzeW5jXCIgW2VuYWJsZWRdPVwiaXNFbmFibGVkR3JvdXBCeUNvbHVtbiB8IGFzeW5jXCI+XG4gICAgICA8L28tY29udGV4dC1tZW51LWl0ZW0+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSAqbmdJZj1cImlzRGF0ZUNvbHVtbiB8IGFzeW5jXCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuR1JPVVBfQllfWUVBUl9NT05USF9EQVlcIiBpY29uPVwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiIHR5cGU9XCJncm91cFwiXG4gICAgICAgIChleGVjdXRlKT1cImdyb3VwQnlDb2x1bW4oJ1lFQVJfTU9OVEhfREFZJylcIiBbdmlzaWJsZV09XCJpc1Zpc2libGVHcm91cEJ5Um93IHwgYXN5bmNcIiBbZW5hYmxlZF09XCJpc0VuYWJsZWRHcm91cEJ5Q29sdW1uIHwgYXN5bmNcIj5cbiAgICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICAgIDxvLWNvbnRleHQtbWVudS1pdGVtICpuZ0lmPVwiIShpc0RhdGVDb2x1bW4gfCBhc3luYylcIiBpY29uPVwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiIFtsYWJlbF09XCJsYWJlbEdyb3VwQnlDb2x1bW5cIiAoZXhlY3V0ZSk9XCJncm91cEJ5Q29sdW1uKClcIlxuICAgICAgICBbZW5hYmxlZF09XCJpc0VuYWJsZWRHcm91cEJ5Q29sdW1uIHwgYXN5bmNcIj48L28tY29udGV4dC1tZW51LWl0ZW0+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSAqbmdJZj1cImlzRW5hYmxlZFVuR3JvdXBCeUNvbHVtbiB8IGFzeW5jXCIgaWNvbj1cImZvcm1hdF9pbmRlbnRfZGVjcmVhc2VcIiBbbGFiZWxdPVwibGFiZWxVbkdyb3VwQnlDb2x1bW5cIlxuICAgICAgICAoZXhlY3V0ZSk9XCJ1bkdyb3VwQnlDb2x1bW4oKVwiIFtlbmFibGVkXT1cImlzRW5hYmxlZFVuR3JvdXBCeUNvbHVtbiB8IGFzeW5jXCI+PC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgICAgPG8tY29udGV4dC1tZW51LWl0ZW0gaWNvbj1cImZvcm1hdF9saW5lX3NwYWNpbmdcIiBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5VTkdST1VQX0FMTENPTFVNTlNcIiAoZXhlY3V0ZSk9XCJ1bkdyb3VwQWxsKClcIlxuICAgICAgICBbZW5hYmxlZF09XCJpc0VuYWJsZWRVbkdyb3VwQWxsQ29sdW1uIHwgYXN5bmNcIj5cbiAgICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8L28tY29udGV4dC1tZW51LWdyb3VwPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIEdST1VQIEJZIEhFQURFUiBDRUxMIEFHR1JFR0FURSBGVU5DVElPTiAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzR3JvdXBhYmxlQ2VsbCB8IGFzeW5jXCI+XG4gICAgPG8tY29udGV4dC1tZW51LWdyb3VwIGxhYmVsPVwiVEFCTEVfQ09OVEVYVF9NRU5VLkdST1VQX0JZLkFHR1JFR0FURV9GVU5DVElPTlwiIGljb249XCJmb3JtYXRfaW5kZW50X2luY3JlYXNlXCIgdHlwZT1cImdyb3VwXCI+XG4gICAgICA8by1jb250ZXh0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgYWdncmVnYXRlRm4gb2YgYXZhaWxhYmxlQ29sdW1uQWdncmVnYXRlc1wiIGxhYmVsPVwie3sgJ0FHR1JFR0FURV9OQU1FLicgKyBhZ2dyZWdhdGVGbiB9fVwiXG4gICAgICAgIChleGVjdXRlKT1cImNoYW5nZUFnZ3JlZ2F0ZUZ1bmN0aW9uKCRldmVudCwgYWdncmVnYXRlRm4pXCI+PC9vLWNvbnRleHQtbWVudS1pdGVtPlxuICAgIDwvby1jb250ZXh0LW1lbnUtZ3JvdXA+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RhYmxlR3JvdXBlZFJvdyB8IGFzeW5jXCI+XG4gICAgPG8tY29udGV4dC1tZW51LWl0ZW0gaWNvbj1cInVuZm9sZF9tb3JlXCIgbGFiZWw9XCJUQUJMRV9DT05URVhUX01FTlUuRVhQQU5EX0FMTF9HUk9VUFNcIiAoZXhlY3V0ZSk9XCJleHBhbmRSb3dHcm91cHNTYW1lTGV2ZWwoKVwiPjwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBpY29uPVwidW5mb2xkX2xlc3NcIiBsYWJlbD1cIlRBQkxFX0NPTlRFWFRfTUVOVS5DT0xMQVBTRV9BTExfR1JPVVBTXCIgKGV4ZWN1dGUpPVwiY29sbGFwc2VSb3dHcm91cHNTYW1lTGV2ZWwoKVwiPlxuICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvby1jb250ZXh0LW1lbnU+XG4iXX0=
|