@inspark/inspark-components 14.0.30 → 14.0.32

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.
@@ -128,10 +128,10 @@ export class TreeTableComponent {
128
128
  }
129
129
  }
130
130
  TreeTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
131
- TreeTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeTableComponent, selector: "in-tree-table", inputs: { columns: "columns", values: "values", scrollHeight: "scrollHeight", scrollable: "scrollable", selectionMode: "selectionMode", label: "label", error: "error", class: "class", required: "required", style: "style", toolbar: "toolbar", checkboxSelection: "checkboxSelection", active: "active", sortField: "sortField", isAscending: "isAscending", dataKey: "dataKey", selection: "selection" }, outputs: { activeChange: "activeChange", selectionChange: "selectionChange", addAction: "addAction", csvAction: "csvAction", saveAction: "saveAction", collapseAction: "collapseAction", removeAction: "removeAction", unlinkAction: "unlinkAction", groupEditAction: "groupEditAction", groupAddAction: "groupAddAction" }, queries: [{ propertyName: "templates", predicate: InsparkTemplate }], ngImport: i0, template: "<p-treeTable #dt\n [(selection)]=\"selectionValue\"\n [class]=\"class\"\n [columns]=\"visibleColumns()\"\n [resizableColumns]=\"true\"\n [scrollHeight]=\"scrollHeight\"\n [scrollable]=\"scrollable\"\n [selectionMode]=\"selectionMode\"\n [sortField]=\"sortField || 'id'\"\n [sortOrder]=\"isAscending ? 1 : -1\"\n [style]=\"style\"\n [value]=\"values\"\n columnResizeMode=\"expand\"\n>\n <ng-template let-columns pTemplate=\"colgroup\">\n <colgroup>\n <col *ngIf=\"checkboxSelection\" style=\"width:44px;\">\n <col *ngFor=\"let col of visibleColumns()\" [style.width]=\"col.width ? col.width : '10px'\">\n </colgroup>\n </ng-template>\n <ng-template let-columns pTemplate=\"header\">\n <tr>\n <th *ngIf=\"checkboxSelection\">\n <p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns; let i = index\" [ttSortableColumn]=\"col.field\" class=\"u-position-relative\"\n ttResizableColumn>\n <div class=\"ui-treetable-thead-title\" title=\"{{col.label | translate}}\">\n {{col.label | translate}}\n </div>\n <p-treeTableSortIcon [field]=\"col.field\" class=\"ui-sortable-column-buttons\"></p-treeTableSortIcon>\n </th>\n </tr>\n </ng-template>\n\n <ng-template let-columns=\"columns\" let-rowData=\"rowData\" let-rowNode pTemplate=\"body\">\n <tr [ngClass]=\"{row_active: isRowActive(rowData)}\" [ttSelectableRow]=\"rowNode\" class=\"row\">\n <td *ngIf=\"checkboxSelection\">\n <p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\n </td>\n <td (click)=\"activeChange.emit(rowData)\" *ngFor=\"let col of columns; let i = index\"\n class=\"_u-overflow-visible\">\n <div class=\"\" style=\"display: flex; flex-wrap: nowrap;\">\n <ng-template [ngIf]=\"i == 0\">\n <p-treeTableToggler [rowNode]=\"rowNode\" style=\"align-self: center;\"></p-treeTableToggler>\n </ng-template>\n <div [ngClass]=\"{ 'ui-treetable-tbody-content_has-toggler ': i == 0 }\"\n class=\"ui-treetable-tbody-content cell-content_hover\"\n style=\"flex-grow: 1;\"\n title=\"{{rowData | propertyValue: col.field}}\">\n <ng-container *ngIf=\"!valueTemplate\">\n <i *ngIf=\"rowData.icon && i == 0\" [ngClass]=\"rowData.icon\" class=\"u-margin-right-tiny\"></i>\n {{rowData | propertyValue: col.field}}\n </ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"valueTemplate; context: {$implicit: { data: rowData, col: col}}\"></ng-container>\n </div>\n </div>\n </td>\n </tr>\n </ng-template>\n\n <ng-template *ngIf=\"toolbar\" pTemplate=\"caption\">\n\n <div class=\"o-grid o-grid_no-gutter\">\n <div class=\"c-tree-table__toolbar-content u-display-inline-flex\">\n <div class=\"c-form c-form_inline u-display-inline-block\">\n <form class=\"c-label\">\n <div class=\"input-wrapper u-margin-right-tiny\">\n <input #searchTextInput\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n [(ngModel)]=\"searchText\"\n [ngModelOptions]=\"{standalone: true}\"\n autofocus=\"\"\n class=\"search-box c-input c-input_small ng-pristine ng-valid ng-scope ng-empty ng-touched\"\n pInputText\n placeholder=\"{{('SHARED.SEARCH' | translate) + ':'}}\"\n required\n style=\"padding-right: 28px\"\n tabindex=\"1\"\n type=\"search\"\n >\n <button (click)=\"dt.filterGlobal($event.target.value, 'contains')\" class=\"button-reset\" type=\"reset\"\n [attr.title]=\"'Reset' | translate\">\n <i class=\"fa fa-close\"></i>\n </button>\n </div>\n </form>\n </div>\n <div class=\"c-btn c-btn_border-free c-btn_small\">\n <in-table-columns-multiselect (columnsChange)=\"columnsChange($event)\"\n [columns]=\"columns\"></in-table-columns-multiselect>\n </div>\n\n <button (click)=\"addAction.emit($event)\" *ngIf=\"toolbar.add\" [disabled]=\"toolbar.add.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\"\n >\n <i class=\"fa fa-plus\" [title]=\"toolbar.add.title || '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C'\"></i>\n </button>\n\n <button (click)=\"groupAddAction.emit($event)\" *ngIf=\"toolbar.groupAdd\" [disabled]=\"toolbar.groupAdd.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\"\n >\n <i class=\"fa fa-folder\" [title]=\"toolbar.groupAdd.title || '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443'\"></i>\n </button>\n\n\n <button (click)=\"saveAction.emit($event)\" *ngIf=\"toolbar.save\"\n [disabled]=\"toolbar.save.disabled\"\n class=\"c-btn c-btn_primary c-btn_small\"\n title=\"{{'Save' | translate}}\"\n >\n {{'Save' | translate}}\n </button>\n <button (click)=\"groupEditAction.emit($event)\" *ngIf=\"toolbar.groupEdit && toolbar.groupEdit.active\"\n [disabled]=\"toolbar.groupEdit.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\">\n <i class=\"fa fa-pencil-square-o\" title=\"{{'groupEdit' | translate}}\"></i>\n </button>\n <button (click)=\"removeAction.emit($event)\" *ngIf=\"toolbar.remove && toolbar.remove.active\"\n [disabled]=\"toolbar.remove.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\">\n <i class=\"fa fa-trash\" [title]=\"toolbar.remove?.title || '\u0423\u0434\u0430\u043B\u0438\u0442\u044C'\"></i>\n </button>\n <button (click)=\"unlinkAction.emit($event)\" *ngIf=\"toolbar.unlink\" [disabled]=\"toolbar.unlink.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\">\n <i class=\"fa fa-unlink\" title=\"{{'Detach tag from selected items' | translate}}\"></i>\n </button>\n <button (click)=\"csvAction.emit($event)\" *ngIf=\"toolbar.csv\" [disabled]=\"toolbar.csv.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\"\n >\n <i class=\"fas fa-file-csv\" title=\"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043A\u0430\u043A CSV\"></i>\n </button>\n <button *ngIf=\"toolbar.collapse\"\n class=\"c-btn c-btn_small c-btn_svg-24 c-icon c-icon_svg c-icon_svg-24 c-btn_border-free\"\n (click)=\"collapse($event, dt)\"\n title=\"{{(isCollapse ? 'Expand all' : 'Collapse all') | translate}}\">\n <svg *ngIf=\"isCollapse\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M20 2H4v2h16V2zM4 20v2h16v-2H4zM12 5l5 6H7l5-6zM17 13l-5 6-5-6h10z\"/>\n </svg>\n <svg *ngIf=\"!isCollapse\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M17 3l-5 6-5-6h10zM4 13v-2h16v2H4zm8 2l5 6H7l5-6z\" clip-rule=\"evenodd\"/>\n </svg>\n </button>\n </div>\n </div>\n </ng-template>\n</p-treeTable>\n", styles: ["@charset \"UTF-8\";.ui-sortable-column{cursor:pointer;position:relative}.ui-sortable-column-buttons{position:absolute;top:0;right:0;width:18px;height:100%;display:inline-flex;align-items:center;z-index:10000}.ui-sortable-column-buttons>a{position:absolute;top:50%;right:0;left:0;transform:translateY(-50%)}.u-overflow-visible{overflow:visible!important}.button-reset{display:flex;align-items:center;position:absolute;right:6px;top:5px;padding:6px;font-size:15px;border:none;outline:0;cursor:pointer;color:var(--colorTextMuted);background-color:transparent}.button-reset:hover{color:var(--colorIcon)}.input-wrapper{position:relative;display:flex;align-items:baseline}.c-input:not(:valid)~.button-reset{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "virtualRowHeight", "value", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i2.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i2.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "component", type: i2.TTSortIcon, selector: "p-treeTableSortIcon", inputs: ["field", "ariaLabelDesc", "ariaLabelAsc"] }, { kind: "directive", type: i2.TTResizableColumn, selector: "[ttResizableColumn]", inputs: ["ttResizableColumnDisabled"] }, { kind: "directive", type: i2.TTSelectableRow, selector: "[ttSelectableRow]", inputs: ["ttSelectableRow", "ttSelectableRowDisabled"] }, { kind: "component", type: i2.TTCheckbox, selector: "p-treeTableCheckbox", inputs: ["disabled", "value"] }, { kind: "component", type: i2.TTHeaderCheckbox, selector: "p-treeTableHeaderCheckbox" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.TableColumnsMultiselectComponent, selector: "in-table-columns-multiselect", inputs: ["columns", "disableActiveCheckboxes"], outputs: ["columnsChange"] }, { kind: "pipe", type: i6.PropertyValuePipe, name: "propertyValue" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
131
+ TreeTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeTableComponent, selector: "in-tree-table", inputs: { columns: "columns", values: "values", scrollHeight: "scrollHeight", scrollable: "scrollable", selectionMode: "selectionMode", label: "label", error: "error", class: "class", required: "required", style: "style", toolbar: "toolbar", checkboxSelection: "checkboxSelection", active: "active", sortField: "sortField", isAscending: "isAscending", dataKey: "dataKey", selection: "selection" }, outputs: { activeChange: "activeChange", selectionChange: "selectionChange", addAction: "addAction", csvAction: "csvAction", saveAction: "saveAction", collapseAction: "collapseAction", removeAction: "removeAction", unlinkAction: "unlinkAction", groupEditAction: "groupEditAction", groupAddAction: "groupAddAction" }, queries: [{ propertyName: "templates", predicate: InsparkTemplate }], ngImport: i0, template: "<p-treeTable #dt\r\n [(selection)]=\"selectionValue\"\r\n [class]=\"class\"\r\n [columns]=\"visibleColumns()\"\r\n [resizableColumns]=\"true\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [scrollable]=\"scrollable\"\r\n [selectionMode]=\"selectionMode\"\r\n [sortField]=\"sortField || 'id'\"\r\n [sortOrder]=\"isAscending ? 1 : -1\"\r\n [style]=\"style\"\r\n [value]=\"values\"\r\n columnResizeMode=\"expand\"\r\n>\r\n <ng-template let-columns pTemplate=\"colgroup\">\r\n <colgroup>\r\n <col *ngIf=\"checkboxSelection\" style=\"width:44px;\">\r\n <col *ngFor=\"let col of visibleColumns()\" [style.width]=\"col.width ? col.width : '10px'\">\r\n </colgroup>\r\n </ng-template>\r\n <ng-template let-columns pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"checkboxSelection\">\r\n <p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\r\n </th>\r\n <th *ngFor=\"let col of columns; let i = index\" [ttSortableColumn]=\"col.field\" class=\"u-position-relative\"\r\n ttResizableColumn>\r\n <div class=\"p-treetable-thead-title\" title=\"{{col.label | translate}}\">\r\n {{col.label | translate}}\r\n </div>\r\n <p-treeTableSortIcon [field]=\"col.field\" class=\"p-sortable-column-buttons\"></p-treeTableSortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template let-columns=\"columns\" let-rowData=\"rowData\" let-rowNode pTemplate=\"body\">\r\n <tr [ngClass]=\"{row_active: isRowActive(rowData)}\" [ttSelectableRow]=\"rowNode\" class=\"row\">\r\n <td *ngIf=\"checkboxSelection\">\r\n <p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\r\n </td>\r\n <td (click)=\"activeChange.emit(rowData)\" *ngFor=\"let col of columns; let i = index\"\r\n class=\"_u-overflow-visible\">\r\n <div class=\"\" style=\"display: flex; flex-wrap: nowrap;\">\r\n <ng-template [ngIf]=\"i == 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" style=\"align-self: center;\"></p-treeTableToggler>\r\n </ng-template>\r\n <div [ngClass]=\"{ 'p-treetable-tbody-content_has-toggler ': i == 0 }\"\r\n class=\"p-treetable-tbody-content cell-content_hover\"\r\n style=\"flex-grow: 1;\"\r\n title=\"{{rowData | propertyValue: col.field}}\">\r\n <ng-container *ngIf=\"!valueTemplate\">\r\n <i *ngIf=\"rowData.icon && i == 0\" [ngClass]=\"rowData.icon\" class=\"u-margin-right-tiny\"></i>\r\n {{rowData | propertyValue: col.field}}\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"valueTemplate; context: {$implicit: { data: rowData, col: col}}\"></ng-container>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"toolbar\" pTemplate=\"caption\">\r\n\r\n <div class=\"o-grid o-grid_no-gutter\">\r\n <div class=\"c-tree-table__toolbar-content u-display-inline-flex\">\r\n <div class=\"c-form c-form_inline u-display-inline-block\">\r\n <form class=\"c-label\">\r\n <div class=\"input-wrapper u-margin-right-tiny\">\r\n <input #searchTextInput\r\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\r\n [(ngModel)]=\"searchText\"\r\n [ngModelOptions]=\"{standalone: true}\"\r\n autofocus=\"\"\r\n class=\"search-box c-input c-input_small ng-pristine ng-valid ng-scope ng-empty ng-touched\"\r\n pInputText\r\n placeholder=\"{{('SHARED.SEARCH' | translate) + ':'}}\"\r\n required\r\n style=\"padding-right: 28px\"\r\n tabindex=\"1\"\r\n type=\"search\"\r\n >\r\n <button (click)=\"dt.filterGlobal($event.target.value, 'contains')\" class=\"button-reset\" type=\"reset\"\r\n [attr.title]=\"'Reset' | translate\">\r\n <i class=\"fa fa-close\"></i>\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"c-btn c-btn_border-free c-btn_small\">\r\n <in-table-columns-multiselect (columnsChange)=\"columnsChange($event)\"\r\n [columns]=\"columns\"></in-table-columns-multiselect>\r\n </div>\r\n\r\n <button (click)=\"addAction.emit($event)\" *ngIf=\"toolbar.add\" [disabled]=\"toolbar.add.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\"\r\n >\r\n <i class=\"fa fa-plus\" [title]=\"toolbar.add.title || '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C'\"></i>\r\n </button>\r\n\r\n <button (click)=\"groupAddAction.emit($event)\" *ngIf=\"toolbar.groupAdd\" [disabled]=\"toolbar.groupAdd.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\"\r\n >\r\n <i class=\"fa fa-folder\" [title]=\"toolbar.groupAdd.title || '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443'\"></i>\r\n </button>\r\n\r\n\r\n <button (click)=\"saveAction.emit($event)\" *ngIf=\"toolbar.save\"\r\n [disabled]=\"toolbar.save.disabled\"\r\n class=\"c-btn c-btn_primary c-btn_small\"\r\n title=\"{{'Save' | translate}}\"\r\n >\r\n {{'Save' | translate}}\r\n </button>\r\n <button (click)=\"groupEditAction.emit($event)\" *ngIf=\"toolbar.groupEdit && toolbar.groupEdit.active\"\r\n [disabled]=\"toolbar.groupEdit.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\">\r\n <i class=\"fa fa-pencil-square-o\" title=\"{{'groupEdit' | translate}}\"></i>\r\n </button>\r\n <button (click)=\"removeAction.emit($event)\" *ngIf=\"toolbar.remove && toolbar.remove.active\"\r\n [disabled]=\"toolbar.remove.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\">\r\n <i class=\"fa fa-trash\" [title]=\"toolbar.remove?.title || '\u0423\u0434\u0430\u043B\u0438\u0442\u044C'\"></i>\r\n </button>\r\n <button (click)=\"unlinkAction.emit($event)\" *ngIf=\"toolbar.unlink\" [disabled]=\"toolbar.unlink.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\">\r\n <i class=\"fa fa-unlink\" title=\"{{'Detach tag from selected items' | translate}}\"></i>\r\n </button>\r\n <button (click)=\"csvAction.emit($event)\" *ngIf=\"toolbar.csv\" [disabled]=\"toolbar.csv.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\"\r\n >\r\n <i class=\"fas fa-file-csv\" title=\"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043A\u0430\u043A CSV\"></i>\r\n </button>\r\n <button *ngIf=\"toolbar.collapse\"\r\n class=\"c-btn c-btn_small c-btn_svg-24 c-icon c-icon_svg c-icon_svg-24 c-btn_border-free\"\r\n (click)=\"collapse($event, dt)\"\r\n title=\"{{(isCollapse ? 'Expand all' : 'Collapse all') | translate}}\">\r\n <svg *ngIf=\"isCollapse\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path d=\"M20 2H4v2h16V2zM4 20v2h16v-2H4zM12 5l5 6H7l5-6zM17 13l-5 6-5-6h10z\"/>\r\n </svg>\r\n <svg *ngIf=\"!isCollapse\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fill-rule=\"evenodd\" d=\"M17 3l-5 6-5-6h10zM4 13v-2h16v2H4zm8 2l5 6H7l5-6z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-treeTable>\r\n", styles: ["@charset \"UTF-8\";.p-sortable-column{cursor:pointer;position:relative}.p-sortable-column-buttons{position:absolute;top:0;right:0;width:18px;height:100%;display:inline-flex;align-items:center;z-index:10000}.p-sortable-column-buttons>a{position:absolute;top:50%;right:0;left:0;transform:translateY(-50%)}.u-overflow-visible{overflow:visible!important}.button-reset{display:flex;align-items:center;position:absolute;right:6px;top:5px;padding:6px;font-size:15px;border:none;outline:0;cursor:pointer;color:var(--colorTextMuted);background-color:transparent}.button-reset:hover{color:var(--colorIcon)}.input-wrapper{position:relative;display:flex;align-items:baseline}.c-input:not(:valid)~.button-reset{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "virtualRowHeight", "value", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i2.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i2.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "component", type: i2.TTSortIcon, selector: "p-treeTableSortIcon", inputs: ["field", "ariaLabelDesc", "ariaLabelAsc"] }, { kind: "directive", type: i2.TTResizableColumn, selector: "[ttResizableColumn]", inputs: ["ttResizableColumnDisabled"] }, { kind: "directive", type: i2.TTSelectableRow, selector: "[ttSelectableRow]", inputs: ["ttSelectableRow", "ttSelectableRowDisabled"] }, { kind: "component", type: i2.TTCheckbox, selector: "p-treeTableCheckbox", inputs: ["disabled", "value"] }, { kind: "component", type: i2.TTHeaderCheckbox, selector: "p-treeTableHeaderCheckbox" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.TableColumnsMultiselectComponent, selector: "in-table-columns-multiselect", inputs: ["columns", "disableActiveCheckboxes"], outputs: ["columnsChange"] }, { kind: "pipe", type: i6.PropertyValuePipe, name: "propertyValue" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
132
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeTableComponent, decorators: [{
133
133
  type: Component,
134
- args: [{ selector: 'in-tree-table', entryComponents: [], template: "<p-treeTable #dt\n [(selection)]=\"selectionValue\"\n [class]=\"class\"\n [columns]=\"visibleColumns()\"\n [resizableColumns]=\"true\"\n [scrollHeight]=\"scrollHeight\"\n [scrollable]=\"scrollable\"\n [selectionMode]=\"selectionMode\"\n [sortField]=\"sortField || 'id'\"\n [sortOrder]=\"isAscending ? 1 : -1\"\n [style]=\"style\"\n [value]=\"values\"\n columnResizeMode=\"expand\"\n>\n <ng-template let-columns pTemplate=\"colgroup\">\n <colgroup>\n <col *ngIf=\"checkboxSelection\" style=\"width:44px;\">\n <col *ngFor=\"let col of visibleColumns()\" [style.width]=\"col.width ? col.width : '10px'\">\n </colgroup>\n </ng-template>\n <ng-template let-columns pTemplate=\"header\">\n <tr>\n <th *ngIf=\"checkboxSelection\">\n <p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns; let i = index\" [ttSortableColumn]=\"col.field\" class=\"u-position-relative\"\n ttResizableColumn>\n <div class=\"ui-treetable-thead-title\" title=\"{{col.label | translate}}\">\n {{col.label | translate}}\n </div>\n <p-treeTableSortIcon [field]=\"col.field\" class=\"ui-sortable-column-buttons\"></p-treeTableSortIcon>\n </th>\n </tr>\n </ng-template>\n\n <ng-template let-columns=\"columns\" let-rowData=\"rowData\" let-rowNode pTemplate=\"body\">\n <tr [ngClass]=\"{row_active: isRowActive(rowData)}\" [ttSelectableRow]=\"rowNode\" class=\"row\">\n <td *ngIf=\"checkboxSelection\">\n <p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\n </td>\n <td (click)=\"activeChange.emit(rowData)\" *ngFor=\"let col of columns; let i = index\"\n class=\"_u-overflow-visible\">\n <div class=\"\" style=\"display: flex; flex-wrap: nowrap;\">\n <ng-template [ngIf]=\"i == 0\">\n <p-treeTableToggler [rowNode]=\"rowNode\" style=\"align-self: center;\"></p-treeTableToggler>\n </ng-template>\n <div [ngClass]=\"{ 'ui-treetable-tbody-content_has-toggler ': i == 0 }\"\n class=\"ui-treetable-tbody-content cell-content_hover\"\n style=\"flex-grow: 1;\"\n title=\"{{rowData | propertyValue: col.field}}\">\n <ng-container *ngIf=\"!valueTemplate\">\n <i *ngIf=\"rowData.icon && i == 0\" [ngClass]=\"rowData.icon\" class=\"u-margin-right-tiny\"></i>\n {{rowData | propertyValue: col.field}}\n </ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"valueTemplate; context: {$implicit: { data: rowData, col: col}}\"></ng-container>\n </div>\n </div>\n </td>\n </tr>\n </ng-template>\n\n <ng-template *ngIf=\"toolbar\" pTemplate=\"caption\">\n\n <div class=\"o-grid o-grid_no-gutter\">\n <div class=\"c-tree-table__toolbar-content u-display-inline-flex\">\n <div class=\"c-form c-form_inline u-display-inline-block\">\n <form class=\"c-label\">\n <div class=\"input-wrapper u-margin-right-tiny\">\n <input #searchTextInput\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n [(ngModel)]=\"searchText\"\n [ngModelOptions]=\"{standalone: true}\"\n autofocus=\"\"\n class=\"search-box c-input c-input_small ng-pristine ng-valid ng-scope ng-empty ng-touched\"\n pInputText\n placeholder=\"{{('SHARED.SEARCH' | translate) + ':'}}\"\n required\n style=\"padding-right: 28px\"\n tabindex=\"1\"\n type=\"search\"\n >\n <button (click)=\"dt.filterGlobal($event.target.value, 'contains')\" class=\"button-reset\" type=\"reset\"\n [attr.title]=\"'Reset' | translate\">\n <i class=\"fa fa-close\"></i>\n </button>\n </div>\n </form>\n </div>\n <div class=\"c-btn c-btn_border-free c-btn_small\">\n <in-table-columns-multiselect (columnsChange)=\"columnsChange($event)\"\n [columns]=\"columns\"></in-table-columns-multiselect>\n </div>\n\n <button (click)=\"addAction.emit($event)\" *ngIf=\"toolbar.add\" [disabled]=\"toolbar.add.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\"\n >\n <i class=\"fa fa-plus\" [title]=\"toolbar.add.title || '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C'\"></i>\n </button>\n\n <button (click)=\"groupAddAction.emit($event)\" *ngIf=\"toolbar.groupAdd\" [disabled]=\"toolbar.groupAdd.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\"\n >\n <i class=\"fa fa-folder\" [title]=\"toolbar.groupAdd.title || '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443'\"></i>\n </button>\n\n\n <button (click)=\"saveAction.emit($event)\" *ngIf=\"toolbar.save\"\n [disabled]=\"toolbar.save.disabled\"\n class=\"c-btn c-btn_primary c-btn_small\"\n title=\"{{'Save' | translate}}\"\n >\n {{'Save' | translate}}\n </button>\n <button (click)=\"groupEditAction.emit($event)\" *ngIf=\"toolbar.groupEdit && toolbar.groupEdit.active\"\n [disabled]=\"toolbar.groupEdit.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\">\n <i class=\"fa fa-pencil-square-o\" title=\"{{'groupEdit' | translate}}\"></i>\n </button>\n <button (click)=\"removeAction.emit($event)\" *ngIf=\"toolbar.remove && toolbar.remove.active\"\n [disabled]=\"toolbar.remove.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\">\n <i class=\"fa fa-trash\" [title]=\"toolbar.remove?.title || '\u0423\u0434\u0430\u043B\u0438\u0442\u044C'\"></i>\n </button>\n <button (click)=\"unlinkAction.emit($event)\" *ngIf=\"toolbar.unlink\" [disabled]=\"toolbar.unlink.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\">\n <i class=\"fa fa-unlink\" title=\"{{'Detach tag from selected items' | translate}}\"></i>\n </button>\n <button (click)=\"csvAction.emit($event)\" *ngIf=\"toolbar.csv\" [disabled]=\"toolbar.csv.disabled\"\n class=\"c-btn c-btn_border-free c-btn_small\"\n >\n <i class=\"fas fa-file-csv\" title=\"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043A\u0430\u043A CSV\"></i>\n </button>\n <button *ngIf=\"toolbar.collapse\"\n class=\"c-btn c-btn_small c-btn_svg-24 c-icon c-icon_svg c-icon_svg-24 c-btn_border-free\"\n (click)=\"collapse($event, dt)\"\n title=\"{{(isCollapse ? 'Expand all' : 'Collapse all') | translate}}\">\n <svg *ngIf=\"isCollapse\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M20 2H4v2h16V2zM4 20v2h16v-2H4zM12 5l5 6H7l5-6zM17 13l-5 6-5-6h10z\"/>\n </svg>\n <svg *ngIf=\"!isCollapse\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M17 3l-5 6-5-6h10zM4 13v-2h16v2H4zm8 2l5 6H7l5-6z\" clip-rule=\"evenodd\"/>\n </svg>\n </button>\n </div>\n </div>\n </ng-template>\n</p-treeTable>\n", styles: ["@charset \"UTF-8\";.ui-sortable-column{cursor:pointer;position:relative}.ui-sortable-column-buttons{position:absolute;top:0;right:0;width:18px;height:100%;display:inline-flex;align-items:center;z-index:10000}.ui-sortable-column-buttons>a{position:absolute;top:50%;right:0;left:0;transform:translateY(-50%)}.u-overflow-visible{overflow:visible!important}.button-reset{display:flex;align-items:center;position:absolute;right:6px;top:5px;padding:6px;font-size:15px;border:none;outline:0;cursor:pointer;color:var(--colorTextMuted);background-color:transparent}.button-reset:hover{color:var(--colorIcon)}.input-wrapper{position:relative;display:flex;align-items:baseline}.c-input:not(:valid)~.button-reset{display:none}\n"] }]
134
+ args: [{ selector: 'in-tree-table', entryComponents: [], template: "<p-treeTable #dt\r\n [(selection)]=\"selectionValue\"\r\n [class]=\"class\"\r\n [columns]=\"visibleColumns()\"\r\n [resizableColumns]=\"true\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [scrollable]=\"scrollable\"\r\n [selectionMode]=\"selectionMode\"\r\n [sortField]=\"sortField || 'id'\"\r\n [sortOrder]=\"isAscending ? 1 : -1\"\r\n [style]=\"style\"\r\n [value]=\"values\"\r\n columnResizeMode=\"expand\"\r\n>\r\n <ng-template let-columns pTemplate=\"colgroup\">\r\n <colgroup>\r\n <col *ngIf=\"checkboxSelection\" style=\"width:44px;\">\r\n <col *ngFor=\"let col of visibleColumns()\" [style.width]=\"col.width ? col.width : '10px'\">\r\n </colgroup>\r\n </ng-template>\r\n <ng-template let-columns pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"checkboxSelection\">\r\n <p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\r\n </th>\r\n <th *ngFor=\"let col of columns; let i = index\" [ttSortableColumn]=\"col.field\" class=\"u-position-relative\"\r\n ttResizableColumn>\r\n <div class=\"p-treetable-thead-title\" title=\"{{col.label | translate}}\">\r\n {{col.label | translate}}\r\n </div>\r\n <p-treeTableSortIcon [field]=\"col.field\" class=\"p-sortable-column-buttons\"></p-treeTableSortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template let-columns=\"columns\" let-rowData=\"rowData\" let-rowNode pTemplate=\"body\">\r\n <tr [ngClass]=\"{row_active: isRowActive(rowData)}\" [ttSelectableRow]=\"rowNode\" class=\"row\">\r\n <td *ngIf=\"checkboxSelection\">\r\n <p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\r\n </td>\r\n <td (click)=\"activeChange.emit(rowData)\" *ngFor=\"let col of columns; let i = index\"\r\n class=\"_u-overflow-visible\">\r\n <div class=\"\" style=\"display: flex; flex-wrap: nowrap;\">\r\n <ng-template [ngIf]=\"i == 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" style=\"align-self: center;\"></p-treeTableToggler>\r\n </ng-template>\r\n <div [ngClass]=\"{ 'p-treetable-tbody-content_has-toggler ': i == 0 }\"\r\n class=\"p-treetable-tbody-content cell-content_hover\"\r\n style=\"flex-grow: 1;\"\r\n title=\"{{rowData | propertyValue: col.field}}\">\r\n <ng-container *ngIf=\"!valueTemplate\">\r\n <i *ngIf=\"rowData.icon && i == 0\" [ngClass]=\"rowData.icon\" class=\"u-margin-right-tiny\"></i>\r\n {{rowData | propertyValue: col.field}}\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"valueTemplate; context: {$implicit: { data: rowData, col: col}}\"></ng-container>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"toolbar\" pTemplate=\"caption\">\r\n\r\n <div class=\"o-grid o-grid_no-gutter\">\r\n <div class=\"c-tree-table__toolbar-content u-display-inline-flex\">\r\n <div class=\"c-form c-form_inline u-display-inline-block\">\r\n <form class=\"c-label\">\r\n <div class=\"input-wrapper u-margin-right-tiny\">\r\n <input #searchTextInput\r\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\r\n [(ngModel)]=\"searchText\"\r\n [ngModelOptions]=\"{standalone: true}\"\r\n autofocus=\"\"\r\n class=\"search-box c-input c-input_small ng-pristine ng-valid ng-scope ng-empty ng-touched\"\r\n pInputText\r\n placeholder=\"{{('SHARED.SEARCH' | translate) + ':'}}\"\r\n required\r\n style=\"padding-right: 28px\"\r\n tabindex=\"1\"\r\n type=\"search\"\r\n >\r\n <button (click)=\"dt.filterGlobal($event.target.value, 'contains')\" class=\"button-reset\" type=\"reset\"\r\n [attr.title]=\"'Reset' | translate\">\r\n <i class=\"fa fa-close\"></i>\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"c-btn c-btn_border-free c-btn_small\">\r\n <in-table-columns-multiselect (columnsChange)=\"columnsChange($event)\"\r\n [columns]=\"columns\"></in-table-columns-multiselect>\r\n </div>\r\n\r\n <button (click)=\"addAction.emit($event)\" *ngIf=\"toolbar.add\" [disabled]=\"toolbar.add.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\"\r\n >\r\n <i class=\"fa fa-plus\" [title]=\"toolbar.add.title || '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C'\"></i>\r\n </button>\r\n\r\n <button (click)=\"groupAddAction.emit($event)\" *ngIf=\"toolbar.groupAdd\" [disabled]=\"toolbar.groupAdd.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\"\r\n >\r\n <i class=\"fa fa-folder\" [title]=\"toolbar.groupAdd.title || '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443'\"></i>\r\n </button>\r\n\r\n\r\n <button (click)=\"saveAction.emit($event)\" *ngIf=\"toolbar.save\"\r\n [disabled]=\"toolbar.save.disabled\"\r\n class=\"c-btn c-btn_primary c-btn_small\"\r\n title=\"{{'Save' | translate}}\"\r\n >\r\n {{'Save' | translate}}\r\n </button>\r\n <button (click)=\"groupEditAction.emit($event)\" *ngIf=\"toolbar.groupEdit && toolbar.groupEdit.active\"\r\n [disabled]=\"toolbar.groupEdit.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\">\r\n <i class=\"fa fa-pencil-square-o\" title=\"{{'groupEdit' | translate}}\"></i>\r\n </button>\r\n <button (click)=\"removeAction.emit($event)\" *ngIf=\"toolbar.remove && toolbar.remove.active\"\r\n [disabled]=\"toolbar.remove.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\">\r\n <i class=\"fa fa-trash\" [title]=\"toolbar.remove?.title || '\u0423\u0434\u0430\u043B\u0438\u0442\u044C'\"></i>\r\n </button>\r\n <button (click)=\"unlinkAction.emit($event)\" *ngIf=\"toolbar.unlink\" [disabled]=\"toolbar.unlink.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\">\r\n <i class=\"fa fa-unlink\" title=\"{{'Detach tag from selected items' | translate}}\"></i>\r\n </button>\r\n <button (click)=\"csvAction.emit($event)\" *ngIf=\"toolbar.csv\" [disabled]=\"toolbar.csv.disabled\"\r\n class=\"c-btn c-btn_border-free c-btn_small\"\r\n >\r\n <i class=\"fas fa-file-csv\" title=\"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043A\u0430\u043A CSV\"></i>\r\n </button>\r\n <button *ngIf=\"toolbar.collapse\"\r\n class=\"c-btn c-btn_small c-btn_svg-24 c-icon c-icon_svg c-icon_svg-24 c-btn_border-free\"\r\n (click)=\"collapse($event, dt)\"\r\n title=\"{{(isCollapse ? 'Expand all' : 'Collapse all') | translate}}\">\r\n <svg *ngIf=\"isCollapse\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path d=\"M20 2H4v2h16V2zM4 20v2h16v-2H4zM12 5l5 6H7l5-6zM17 13l-5 6-5-6h10z\"/>\r\n </svg>\r\n <svg *ngIf=\"!isCollapse\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fill-rule=\"evenodd\" d=\"M17 3l-5 6-5-6h10zM4 13v-2h16v2H4zm8 2l5 6H7l5-6z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-treeTable>\r\n", styles: ["@charset \"UTF-8\";.p-sortable-column{cursor:pointer;position:relative}.p-sortable-column-buttons{position:absolute;top:0;right:0;width:18px;height:100%;display:inline-flex;align-items:center;z-index:10000}.p-sortable-column-buttons>a{position:absolute;top:50%;right:0;left:0;transform:translateY(-50%)}.u-overflow-visible{overflow:visible!important}.button-reset{display:flex;align-items:center;position:absolute;right:6px;top:5px;padding:6px;font-size:15px;border:none;outline:0;cursor:pointer;color:var(--colorTextMuted);background-color:transparent}.button-reset:hover{color:var(--colorIcon)}.input-wrapper{position:relative;display:flex;align-items:baseline}.c-input:not(:valid)~.button-reset{display:none}\n"] }]
135
135
  }], propDecorators: { columns: [{
136
136
  type: Input
137
137
  }], values: [{
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
203
203
  declarations: [TreeTableComponent]
204
204
  }]
205
205
  }] });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnNwYXJrLWNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvdHJlZS10YWJsZS90cmVlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy90cmVlLXRhYmxlL3RyZWUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBR3JELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7O0FBVWxELE1BQU0sT0FBTyxrQkFBa0I7SUFOL0I7UUFRVyxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBVVosc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBTXhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV2QyxvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELGNBQVMs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QUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkF3Qk0sU0FBUztzQkFBckIsS0FBSzs7QUE2SFIsTUFBTSxPQUFPLHdCQUF3Qjs7cUhBQXhCLHdCQUF3QjtzSEFBeEIsd0JBQXdCLGlCQWxMeEIsa0JBQWtCLGFBOEtuQixZQUFZLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixhQTlLN0Ysa0JBQWtCO3NIQWtMbEIsd0JBQXdCLFlBSnpCLFlBQVksRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsb0JBQW9COzJGQUk3Rix3QkFBd0I7a0JBTHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQztvQkFDekcsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBOZ01vZHVsZSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0luc3BhcmtUZW1wbGF0ZX0gZnJvbSAnLi4vaW5zcGFyay5zaGFyZWQnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtUYWJsZUNvbXBvbmVudE1vZHVsZX0gZnJvbSAnLi4vdGFibGUvdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHtQaXBlc01vZHVsZX0gZnJvbSAnLi4vLi4vcGlwZXMvcGlwZXMubW9kdWxlJztcclxuaW1wb3J0IHtUYWJsZVJvd0RhdGF9IGZyb20gJy4uLy4uL3V0aWxzL2h5YnJpZC9wcmltZS10YWJsZS90YWJsZS1yb3ctZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7VGFibGVDb2x1bW5zfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1RyZWVUYWJsZU1vZHVsZX0gZnJvbSAncHJpbWVuZy90cmVldGFibGUnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2luLXRyZWUtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW50cnlDb21wb25lbnRzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG5cclxuICBASW5wdXQoKSBjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHZhbHVlcyA9IFtdO1xyXG4gIEBJbnB1dCgpIHNjcm9sbEhlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNjcm9sbGFibGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2VsZWN0aW9uTW9kZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHN0eWxlOiBhbnk7XHJcbiAgQElucHV0KCkgdG9vbGJhcjogYW55O1xyXG4gIEBJbnB1dCgpIGNoZWNrYm94U2VsZWN0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhY3RpdmU7XHJcbiAgQElucHV0KCkgc29ydEZpZWxkO1xyXG4gIEBJbnB1dCgpIGlzQXNjZW5kaW5nO1xyXG4gIEBJbnB1dCgpIGRhdGFLZXk7XHJcblxyXG4gIEBPdXRwdXQoKSBhY3RpdmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAQ29udGVudENoaWxkcmVuKEluc3BhcmtUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8SW5zcGFya1RlbXBsYXRlPjtcclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWRkQWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBjc3ZBY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHNhdmVBY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNvbGxhcHNlQWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSByZW1vdmVBY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHVubGlua0FjdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZ3JvdXBFZGl0QWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBncm91cEFkZEFjdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgYm9keVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGxvYWRpbmdCb2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgY2FwdGlvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGZyb3plblJvd3NUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBzdW1tYXJ5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgY29sR3JvdXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBleHBhbmRlZFJvd1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGZyb3plbkhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGZyb3plbkJvZHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBmcm96ZW5Gb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBmcm96ZW5Db2xHcm91cFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGVtcHR5TWVzc2FnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHBhZ2luYXRvckxlZnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBwYWdpbmF0b3JSaWdodFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHZhbHVlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xyXG4gIHJvd0luZGV4ID0gMDtcclxuICBpc0NvbGxhcHNlID0gdHJ1ZTtcclxuICBfc2VsZWN0aW9uID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgc2V0IHNlbGVjdGlvbih2YWwpIHtcclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IHZhbDtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3Rpb25WYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXQgc2VsZWN0aW9uVmFsdWUodmFsKSB7XHJcbiAgICB0aGlzLl9zZWxlY3Rpb24gPSB2YWw7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHZhbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNSb3dBY3RpdmUocm93OiBUYWJsZVJvd0RhdGEpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZSAmJiB0aGlzLmFjdGl2ZS5pZCA9PT0gcm93LmlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZpc2libGVDb2x1bW5zKCk6IFRhYmxlQ29sdW1uc1tdIHtcclxuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLmlzSGlkZGVuKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb2x1bW5zQ2hhbmdlKGRhdGEpIHtcclxuICAgIGRhdGEuY29sdW1uLmlzSGlkZGVuID0gIWRhdGEuZXZlbnQ7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIHRoaXMudGVtcGxhdGVzLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xyXG4gICAgICAgIGNhc2UgJ2NhcHRpb24nOlxyXG4gICAgICAgICAgdGhpcy5jYXB0aW9uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ2hlYWRlcic6XHJcbiAgICAgICAgICB0aGlzLmhlYWRlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdib2R5JzpcclxuICAgICAgICAgIHRoaXMuYm9keVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3ZhbHVlJzpcclxuICAgICAgICAgIHRoaXMudmFsdWVUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnbG9hZGluZ2JvZHknOlxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQm9keVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdmb290ZXInOlxyXG4gICAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnc3VtbWFyeSc6XHJcbiAgICAgICAgICB0aGlzLnN1bW1hcnlUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnY29sZ3JvdXAnOlxyXG4gICAgICAgICAgdGhpcy5jb2xHcm91cFRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdyb3dleHBhbnNpb24nOlxyXG4gICAgICAgICAgdGhpcy5leHBhbmRlZFJvd1RlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdmcm96ZW5yb3dzJzpcclxuICAgICAgICAgIHRoaXMuZnJvemVuUm93c1RlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdmcm96ZW5oZWFkZXInOlxyXG4gICAgICAgICAgdGhpcy5mcm96ZW5IZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnZnJvemVuYm9keSc6XHJcbiAgICAgICAgICB0aGlzLmZyb3plbkJvZHlUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnZnJvemVuZm9vdGVyJzpcclxuICAgICAgICAgIHRoaXMuZnJvemVuRm9vdGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ2Zyb3plbmNvbGdyb3VwJzpcclxuICAgICAgICAgIHRoaXMuZnJvemVuQ29sR3JvdXBUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnZW1wdHltZXNzYWdlJzpcclxuICAgICAgICAgIHRoaXMuZW1wdHlNZXNzYWdlVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ3BhZ2luYXRvcmxlZnQnOlxyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JMZWZ0VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ3BhZ2luYXRvcnJpZ2h0JzpcclxuICAgICAgICAgIHRoaXMucGFnaW5hdG9yUmlnaHRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb2xsYXBzZShldmVudCwgZHQpIHtcclxuICAgIHRoaXMudmFsdWVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgdGhpcy50b2dnbGVDb2xsYXBzZShub2RlLCB0aGlzLmlzQ29sbGFwc2UpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlzQ29sbGFwc2UgPSAhdGhpcy5pc0NvbGxhcHNlO1xyXG4gICAgZHQuZmlsdGVyR2xvYmFsKHRoaXMuc2VhcmNoVGV4dCwgJ2NvbnRhaW5zJyk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDb2xsYXBzZShub2RlOiBhbnksIGlzQ29sbGFwc2VkOiBib29sZWFuKSB7XHJcblxyXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgbm9kZS5leHBhbmRlZCA9IGlzQ29sbGFwc2VkO1xyXG4gICAgICBmb3IgKGNvbnN0IGNuIG9mIG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgICBpZiAoY24pIHtcclxuICAgICAgICAgIHRoaXMudG9nZ2xlQ29sbGFwc2UoY24sIGlzQ29sbGFwc2VkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmVlVGFibGVNb2R1bGUsIFBpcGVzTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEZvcm1zTW9kdWxlLCBUYWJsZUNvbXBvbmVudE1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1RyZWVUYWJsZUNvbXBvbmVudF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbVHJlZVRhYmxlQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZVRhYmxlQ29tcG9uZW50TW9kdWxlIHtcclxufVxyXG4iLCI8cC10cmVlVGFibGUgI2R0XG4gICAgICAgICAgICAgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGlvblZhbHVlXCJcbiAgICAgICAgICAgICBbY2xhc3NdPVwiY2xhc3NcIlxuICAgICAgICAgICAgIFtjb2x1bW5zXT1cInZpc2libGVDb2x1bW5zKClcIlxuICAgICAgICAgICAgIFtyZXNpemFibGVDb2x1bW5zXT1cInRydWVcIlxuICAgICAgICAgICAgIFtzY3JvbGxIZWlnaHRdPVwic2Nyb2xsSGVpZ2h0XCJcbiAgICAgICAgICAgICBbc2Nyb2xsYWJsZV09XCJzY3JvbGxhYmxlXCJcbiAgICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCJcbiAgICAgICAgICAgICBbc29ydEZpZWxkXT1cInNvcnRGaWVsZCB8fCAnaWQnXCJcbiAgICAgICAgICAgICBbc29ydE9yZGVyXT1cImlzQXNjZW5kaW5nID8gMSA6IC0xXCJcbiAgICAgICAgICAgICBbc3R5bGVdPVwic3R5bGVcIlxuICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZXNcIlxuICAgICAgICAgICAgIGNvbHVtblJlc2l6ZU1vZGU9XCJleHBhbmRcIlxuPlxuICA8bmctdGVtcGxhdGUgbGV0LWNvbHVtbnMgcFRlbXBsYXRlPVwiY29sZ3JvdXBcIj5cbiAgICA8Y29sZ3JvdXA+XG4gICAgICA8Y29sICpuZ0lmPVwiY2hlY2tib3hTZWxlY3Rpb25cIiBzdHlsZT1cIndpZHRoOjQ0cHg7XCI+XG4gICAgICA8Y29sICpuZ0Zvcj1cImxldCBjb2wgb2YgdmlzaWJsZUNvbHVtbnMoKVwiIFtzdHlsZS53aWR0aF09XCJjb2wud2lkdGggPyBjb2wud2lkdGggOiAnMTBweCdcIj5cbiAgICA8L2NvbGdyb3VwPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgbGV0LWNvbHVtbnMgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgPHRyPlxuICAgICAgPHRoICpuZ0lmPVwiY2hlY2tib3hTZWxlY3Rpb25cIj5cbiAgICAgICAgPHAtdHJlZVRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRyZWVUYWJsZUhlYWRlckNoZWNrYm94PlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnM7IGxldCBpID0gaW5kZXhcIiBbdHRTb3J0YWJsZUNvbHVtbl09XCJjb2wuZmllbGRcIiBjbGFzcz1cInUtcG9zaXRpb24tcmVsYXRpdmVcIlxuICAgICAgICAgIHR0UmVzaXphYmxlQ29sdW1uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidWktdHJlZXRhYmxlLXRoZWFkLXRpdGxlXCIgdGl0bGU9XCJ7e2NvbC5sYWJlbCB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAge3tjb2wubGFiZWwgfCB0cmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHAtdHJlZVRhYmxlU29ydEljb24gW2ZpZWxkXT1cImNvbC5maWVsZFwiIGNsYXNzPVwidWktc29ydGFibGUtY29sdW1uLWJ1dHRvbnNcIj48L3AtdHJlZVRhYmxlU29ydEljb24+XG4gICAgICA8L3RoPlxuICAgIDwvdHI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1yb3dEYXRhPVwicm93RGF0YVwiIGxldC1yb3dOb2RlIHBUZW1wbGF0ZT1cImJvZHlcIj5cbiAgICA8dHIgW25nQ2xhc3NdPVwie3Jvd19hY3RpdmU6IGlzUm93QWN0aXZlKHJvd0RhdGEpfVwiIFt0dFNlbGVjdGFibGVSb3ddPVwicm93Tm9kZVwiIGNsYXNzPVwicm93XCI+XG4gICAgICA8dGQgKm5nSWY9XCJjaGVja2JveFNlbGVjdGlvblwiPlxuICAgICAgICA8cC10cmVlVGFibGVDaGVja2JveCBbdmFsdWVdPVwicm93Tm9kZVwiPjwvcC10cmVlVGFibGVDaGVja2JveD5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGQgKGNsaWNrKT1cImFjdGl2ZUNoYW5nZS5lbWl0KHJvd0RhdGEpXCIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cIl91LW92ZXJmbG93LXZpc2libGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIlwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiBub3dyYXA7XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImkgPT0gMFwiPlxuICAgICAgICAgICAgPHAtdHJlZVRhYmxlVG9nZ2xlciAgW3Jvd05vZGVdPVwicm93Tm9kZVwiIHN0eWxlPVwiYWxpZ24tc2VsZjogY2VudGVyO1wiPjwvcC10cmVlVGFibGVUb2dnbGVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICd1aS10cmVldGFibGUtdGJvZHktY29udGVudF9oYXMtdG9nZ2xlciAnOiBpID09IDAgfVwiXG4gICAgICAgICAgICAgICBjbGFzcz1cInVpLXRyZWV0YWJsZS10Ym9keS1jb250ZW50IGNlbGwtY29udGVudF9ob3ZlclwiXG4gICAgICAgICAgICAgICBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIlxuICAgICAgICAgICAgICAgdGl0bGU9XCJ7e3Jvd0RhdGEgfCBwcm9wZXJ0eVZhbHVlOiBjb2wuZmllbGR9fVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF2YWx1ZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwicm93RGF0YS5pY29uICYmIGkgPT0gMFwiIFtuZ0NsYXNzXT1cInJvd0RhdGEuaWNvblwiIGNsYXNzPVwidS1tYXJnaW4tcmlnaHQtdGlueVwiPjwvaT5cbiAgICAgICAgICAgICAge3tyb3dEYXRhIHwgcHJvcGVydHlWYWx1ZTogY29sLmZpZWxkfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidmFsdWVUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogeyBkYXRhOiByb3dEYXRhLCBjb2w6IGNvbH19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRvb2xiYXJcIiBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiby1ncmlkIG8tZ3JpZF9uby1ndXR0ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjLXRyZWUtdGFibGVfX3Rvb2xiYXItY29udGVudCB1LWRpc3BsYXktaW5saW5lLWZsZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImMtZm9ybSBjLWZvcm1faW5saW5lIHUtZGlzcGxheS1pbmxpbmUtYmxvY2tcIj5cbiAgICAgICAgICA8Zm9ybSBjbGFzcz1cImMtbGFiZWxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyIHUtbWFyZ2luLXJpZ2h0LXRpbnlcIj5cbiAgICAgICAgICAgICAgPGlucHV0ICNzZWFyY2hUZXh0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJkdC5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIlxuICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWJveCBjLWlucHV0IGMtaW5wdXRfc21hbGwgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctc2NvcGUgbmctZW1wdHkgbmctdG91Y2hlZFwiXG4gICAgICAgICAgICAgICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7KCdTSEFSRUQuU0VBUkNIJyB8IHRyYW5zbGF0ZSkgKyAnOid9fVwiXG4gICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiAyOHB4XCJcbiAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkdC5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIiBjbGFzcz1cImJ1dHRvbi1yZXNldFwiIHR5cGU9XCJyZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiJ1Jlc2V0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2xvc2VcIj48L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImMtYnRuIGMtYnRuX2JvcmRlci1mcmVlIGMtYnRuX3NtYWxsXCI+XG4gICAgICAgICAgPGluLXRhYmxlLWNvbHVtbnMtbXVsdGlzZWxlY3QgKGNvbHVtbnNDaGFuZ2UpPVwiY29sdW1uc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCI+PC9pbi10YWJsZS1jb2x1bW5zLW11bHRpc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGRBY3Rpb24uZW1pdCgkZXZlbnQpXCIgKm5nSWY9XCJ0b29sYmFyLmFkZFwiIFtkaXNhYmxlZF09XCJ0b29sYmFyLmFkZC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjLWJ0biBjLWJ0bl9ib3JkZXItZnJlZSBjLWJ0bl9zbWFsbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXNcIiBbdGl0bGVdPVwidG9vbGJhci5hZGQudGl0bGUgfHwgJ9CU0L7QsdCw0LLQuNGC0YwnXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJncm91cEFkZEFjdGlvbi5lbWl0KCRldmVudClcIiAqbmdJZj1cInRvb2xiYXIuZ3JvdXBBZGRcIiBbZGlzYWJsZWRdPVwidG9vbGJhci5ncm91cEFkZC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjLWJ0biBjLWJ0bl9ib3JkZXItZnJlZSBjLWJ0bl9zbWFsbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWZvbGRlclwiIFt0aXRsZV09XCJ0b29sYmFyLmdyb3VwQWRkLnRpdGxlIHx8ICfQlNC+0LHQsNCy0LjRgtGMINCz0YDRg9C/0L/RgydcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuXG5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2F2ZUFjdGlvbi5lbWl0KCRldmVudClcIiAqbmdJZj1cInRvb2xiYXIuc2F2ZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRvb2xiYXIuc2F2ZS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjLWJ0biBjLWJ0bl9wcmltYXJ5IGMtYnRuX3NtYWxsXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7J1NhdmUnIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgICA+XG4gICAgICAgICAge3snU2F2ZScgfCB0cmFuc2xhdGV9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ3JvdXBFZGl0QWN0aW9uLmVtaXQoJGV2ZW50KVwiICpuZ0lmPVwidG9vbGJhci5ncm91cEVkaXQgJiYgdG9vbGJhci5ncm91cEVkaXQuYWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidG9vbGJhci5ncm91cEVkaXQuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYy1idG4gYy1idG5fYm9yZGVyLWZyZWUgYy1idG5fc21hbGxcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBlbmNpbC1zcXVhcmUtb1wiIHRpdGxlPVwie3snZ3JvdXBFZGl0JyB8IHRyYW5zbGF0ZX19XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlQWN0aW9uLmVtaXQoJGV2ZW50KVwiICpuZ0lmPVwidG9vbGJhci5yZW1vdmUgJiYgdG9vbGJhci5yZW1vdmUuYWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidG9vbGJhci5yZW1vdmUuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYy1idG4gYy1idG5fYm9yZGVyLWZyZWUgYy1idG5fc21hbGxcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRyYXNoXCIgW3RpdGxlXT1cInRvb2xiYXIucmVtb3ZlPy50aXRsZSB8fCAn0KPQtNCw0LvQuNGC0YwnXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidW5saW5rQWN0aW9uLmVtaXQoJGV2ZW50KVwiICpuZ0lmPVwidG9vbGJhci51bmxpbmtcIiBbZGlzYWJsZWRdPVwidG9vbGJhci51bmxpbmsuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYy1idG4gYy1idG5fYm9yZGVyLWZyZWUgYy1idG5fc21hbGxcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXVubGlua1wiIHRpdGxlPVwie3snRGV0YWNoIHRhZyBmcm9tIHNlbGVjdGVkIGl0ZW1zJyB8IHRyYW5zbGF0ZX19XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY3N2QWN0aW9uLmVtaXQoJGV2ZW50KVwiICpuZ0lmPVwidG9vbGJhci5jc3ZcIiBbZGlzYWJsZWRdPVwidG9vbGJhci5jc3YuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYy1idG4gYy1idG5fYm9yZGVyLWZyZWUgYy1idG5fc21hbGxcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsZS1jc3ZcIiB0aXRsZT1cItCh0L7RhdGA0LDQvdC40YLRjCDQutCw0LogQ1NWXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAgKm5nSWY9XCJ0b29sYmFyLmNvbGxhcHNlXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjLWJ0biBjLWJ0bl9zbWFsbCBjLWJ0bl9zdmctMjQgYy1pY29uIGMtaWNvbl9zdmcgYy1pY29uX3N2Zy0yNCBjLWJ0bl9ib3JkZXItZnJlZVwiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCJjb2xsYXBzZSgkZXZlbnQsIGR0KVwiXG4gICAgICAgICAgICAgICAgIHRpdGxlPVwie3soaXNDb2xsYXBzZSA/ICdFeHBhbmQgYWxsJyA6ICdDb2xsYXBzZSBhbGwnKSB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cImlzQ29sbGFwc2VcIiAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTIwIDJINHYyaDE2VjJ6TTQgMjB2MmgxNnYtMkg0ek0xMiA1bDUgNkg3bDUtNnpNMTcgMTNsLTUgNi01LTZoMTB6XCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNDb2xsYXBzZVwiICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE3IDNsLTUgNi01LTZoMTB6TTQgMTN2LTJoMTZ2Mkg0em04IDJsNSA2SDdsNS02elwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3AtdHJlZVRhYmxlPlxuIl19
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnNwYXJrLWNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvdHJlZS10YWJsZS90cmVlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy90cmVlLXRhYmxlL3RyZWUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBR3JELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7O0FBVWxELE1BQU0sT0FBTyxrQkFBa0I7SUFOL0I7UUFRVyxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBVVosc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBTXhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV2QyxvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELGNBQVMs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QUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkF3Qk0sU0FBUztzQkFBckIsS0FBSzs7QUE2SFIsTUFBTSxPQUFPLHdCQUF3Qjs7cUhBQXhCLHdCQUF3QjtzSEFBeEIsd0JBQXdCLGlCQWxMeEIsa0JBQWtCLGFBOEtuQixZQUFZLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixhQTlLN0Ysa0JBQWtCO3NIQWtMbEIsd0JBQXdCLFlBSnpCLFlBQVksRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsb0JBQW9COzJGQUk3Rix3QkFBd0I7a0JBTHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQztvQkFDekcsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBOZ01vZHVsZSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0luc3BhcmtUZW1wbGF0ZX0gZnJvbSAnLi4vaW5zcGFyay5zaGFyZWQnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtUYWJsZUNvbXBvbmVudE1vZHVsZX0gZnJvbSAnLi4vdGFibGUvdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHtQaXBlc01vZHVsZX0gZnJvbSAnLi4vLi4vcGlwZXMvcGlwZXMubW9kdWxlJztcclxuaW1wb3J0IHtUYWJsZVJvd0RhdGF9IGZyb20gJy4uLy4uL3V0aWxzL2h5YnJpZC9wcmltZS10YWJsZS90YWJsZS1yb3ctZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7VGFibGVDb2x1bW5zfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1RyZWVUYWJsZU1vZHVsZX0gZnJvbSAncHJpbWVuZy90cmVldGFibGUnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2luLXRyZWUtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW50cnlDb21wb25lbnRzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG5cclxuICBASW5wdXQoKSBjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHZhbHVlcyA9IFtdO1xyXG4gIEBJbnB1dCgpIHNjcm9sbEhlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNjcm9sbGFibGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2VsZWN0aW9uTW9kZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHN0eWxlOiBhbnk7XHJcbiAgQElucHV0KCkgdG9vbGJhcjogYW55O1xyXG4gIEBJbnB1dCgpIGNoZWNrYm94U2VsZWN0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhY3RpdmU7XHJcbiAgQElucHV0KCkgc29ydEZpZWxkO1xyXG4gIEBJbnB1dCgpIGlzQXNjZW5kaW5nO1xyXG4gIEBJbnB1dCgpIGRhdGFLZXk7XHJcblxyXG4gIEBPdXRwdXQoKSBhY3RpdmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAQ29udGVudENoaWxkcmVuKEluc3BhcmtUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8SW5zcGFya1RlbXBsYXRlPjtcclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWRkQWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBjc3ZBY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHNhdmVBY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNvbGxhcHNlQWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSByZW1vdmVBY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHVubGlua0FjdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZ3JvdXBFZGl0QWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBncm91cEFkZEFjdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgYm9keVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGxvYWRpbmdCb2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgY2FwdGlvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGZyb3plblJvd3NUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBzdW1tYXJ5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgY29sR3JvdXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBleHBhbmRlZFJvd1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGZyb3plbkhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGZyb3plbkJvZHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBmcm96ZW5Gb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBmcm96ZW5Db2xHcm91cFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGVtcHR5TWVzc2FnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHBhZ2luYXRvckxlZnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBwYWdpbmF0b3JSaWdodFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHZhbHVlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xyXG4gIHJvd0luZGV4ID0gMDtcclxuICBpc0NvbGxhcHNlID0gdHJ1ZTtcclxuICBfc2VsZWN0aW9uID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgc2V0IHNlbGVjdGlvbih2YWwpIHtcclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IHZhbDtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3Rpb25WYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXQgc2VsZWN0aW9uVmFsdWUodmFsKSB7XHJcbiAgICB0aGlzLl9zZWxlY3Rpb24gPSB2YWw7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHZhbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNSb3dBY3RpdmUocm93OiBUYWJsZVJvd0RhdGEpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZSAmJiB0aGlzLmFjdGl2ZS5pZCA9PT0gcm93LmlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZpc2libGVDb2x1bW5zKCk6IFRhYmxlQ29sdW1uc1tdIHtcclxuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLmlzSGlkZGVuKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb2x1bW5zQ2hhbmdlKGRhdGEpIHtcclxuICAgIGRhdGEuY29sdW1uLmlzSGlkZGVuID0gIWRhdGEuZXZlbnQ7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIHRoaXMudGVtcGxhdGVzLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xyXG4gICAgICAgIGNhc2UgJ2NhcHRpb24nOlxyXG4gICAgICAgICAgdGhpcy5jYXB0aW9uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ2hlYWRlcic6XHJcbiAgICAgICAgICB0aGlzLmhlYWRlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdib2R5JzpcclxuICAgICAgICAgIHRoaXMuYm9keVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3ZhbHVlJzpcclxuICAgICAgICAgIHRoaXMudmFsdWVUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnbG9hZGluZ2JvZHknOlxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQm9keVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdmb290ZXInOlxyXG4gICAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnc3VtbWFyeSc6XHJcbiAgICAgICAgICB0aGlzLnN1bW1hcnlUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnY29sZ3JvdXAnOlxyXG4gICAgICAgICAgdGhpcy5jb2xHcm91cFRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdyb3dleHBhbnNpb24nOlxyXG4gICAgICAgICAgdGhpcy5leHBhbmRlZFJvd1RlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdmcm96ZW5yb3dzJzpcclxuICAgICAgICAgIHRoaXMuZnJvemVuUm93c1RlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdmcm96ZW5oZWFkZXInOlxyXG4gICAgICAgICAgdGhpcy5mcm96ZW5IZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnZnJvemVuYm9keSc6XHJcbiAgICAgICAgICB0aGlzLmZyb3plbkJvZHlUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnZnJvemVuZm9vdGVyJzpcclxuICAgICAgICAgIHRoaXMuZnJvemVuRm9vdGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ2Zyb3plbmNvbGdyb3VwJzpcclxuICAgICAgICAgIHRoaXMuZnJvemVuQ29sR3JvdXBUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnZW1wdHltZXNzYWdlJzpcclxuICAgICAgICAgIHRoaXMuZW1wdHlNZXNzYWdlVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ3BhZ2luYXRvcmxlZnQnOlxyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JMZWZ0VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ3BhZ2luYXRvcnJpZ2h0JzpcclxuICAgICAgICAgIHRoaXMucGFnaW5hdG9yUmlnaHRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb2xsYXBzZShldmVudCwgZHQpIHtcclxuICAgIHRoaXMudmFsdWVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgdGhpcy50b2dnbGVDb2xsYXBzZShub2RlLCB0aGlzLmlzQ29sbGFwc2UpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlzQ29sbGFwc2UgPSAhdGhpcy5pc0NvbGxhcHNlO1xyXG4gICAgZHQuZmlsdGVyR2xvYmFsKHRoaXMuc2VhcmNoVGV4dCwgJ2NvbnRhaW5zJyk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDb2xsYXBzZShub2RlOiBhbnksIGlzQ29sbGFwc2VkOiBib29sZWFuKSB7XHJcblxyXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgbm9kZS5leHBhbmRlZCA9IGlzQ29sbGFwc2VkO1xyXG4gICAgICBmb3IgKGNvbnN0IGNuIG9mIG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgICBpZiAoY24pIHtcclxuICAgICAgICAgIHRoaXMudG9nZ2xlQ29sbGFwc2UoY24sIGlzQ29sbGFwc2VkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmVlVGFibGVNb2R1bGUsIFBpcGVzTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEZvcm1zTW9kdWxlLCBUYWJsZUNvbXBvbmVudE1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1RyZWVUYWJsZUNvbXBvbmVudF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbVHJlZVRhYmxlQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZVRhYmxlQ29tcG9uZW50TW9kdWxlIHtcclxufVxyXG4iLCI8cC10cmVlVGFibGUgI2R0XHJcbiAgICAgICAgICAgICBbKHNlbGVjdGlvbildPVwic2VsZWN0aW9uVmFsdWVcIlxyXG4gICAgICAgICAgICAgW2NsYXNzXT1cImNsYXNzXCJcclxuICAgICAgICAgICAgIFtjb2x1bW5zXT1cInZpc2libGVDb2x1bW5zKClcIlxyXG4gICAgICAgICAgICAgW3Jlc2l6YWJsZUNvbHVtbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXHJcbiAgICAgICAgICAgICBbc2Nyb2xsYWJsZV09XCJzY3JvbGxhYmxlXCJcclxuICAgICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxyXG4gICAgICAgICAgICAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGQgfHwgJ2lkJ1wiXHJcbiAgICAgICAgICAgICBbc29ydE9yZGVyXT1cImlzQXNjZW5kaW5nID8gMSA6IC0xXCJcclxuICAgICAgICAgICAgIFtzdHlsZV09XCJzdHlsZVwiXHJcbiAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVzXCJcclxuICAgICAgICAgICAgIGNvbHVtblJlc2l6ZU1vZGU9XCJleHBhbmRcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlIGxldC1jb2x1bW5zIHBUZW1wbGF0ZT1cImNvbGdyb3VwXCI+XHJcbiAgICA8Y29sZ3JvdXA+XHJcbiAgICAgIDxjb2wgKm5nSWY9XCJjaGVja2JveFNlbGVjdGlvblwiIHN0eWxlPVwid2lkdGg6NDRweDtcIj5cclxuICAgICAgPGNvbCAqbmdGb3I9XCJsZXQgY29sIG9mIHZpc2libGVDb2x1bW5zKClcIiBbc3R5bGUud2lkdGhdPVwiY29sLndpZHRoID8gY29sLndpZHRoIDogJzEwcHgnXCI+XHJcbiAgICA8L2NvbGdyb3VwPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIGxldC1jb2x1bW5zIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgPHRyPlxyXG4gICAgICA8dGggKm5nSWY9XCJjaGVja2JveFNlbGVjdGlvblwiPlxyXG4gICAgICAgIDxwLXRyZWVUYWJsZUhlYWRlckNoZWNrYm94PjwvcC10cmVlVGFibGVIZWFkZXJDaGVja2JveD5cclxuICAgICAgPC90aD5cclxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiIFt0dFNvcnRhYmxlQ29sdW1uXT1cImNvbC5maWVsZFwiIGNsYXNzPVwidS1wb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICB0dFJlc2l6YWJsZUNvbHVtbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicC10cmVldGFibGUtdGhlYWQtdGl0bGVcIiB0aXRsZT1cInt7Y29sLmxhYmVsIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgICAgICAgIHt7Y29sLmxhYmVsIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cC10cmVlVGFibGVTb3J0SWNvbiBbZmllbGRdPVwiY29sLmZpZWxkXCIgY2xhc3M9XCJwLXNvcnRhYmxlLWNvbHVtbi1idXR0b25zXCI+PC9wLXRyZWVUYWJsZVNvcnRJY29uPlxyXG4gICAgICA8L3RoPlxyXG4gICAgPC90cj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LXJvd0RhdGE9XCJyb3dEYXRhXCIgbGV0LXJvd05vZGUgcFRlbXBsYXRlPVwiYm9keVwiPlxyXG4gICAgPHRyIFtuZ0NsYXNzXT1cIntyb3dfYWN0aXZlOiBpc1Jvd0FjdGl2ZShyb3dEYXRhKX1cIiBbdHRTZWxlY3RhYmxlUm93XT1cInJvd05vZGVcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8dGQgKm5nSWY9XCJjaGVja2JveFNlbGVjdGlvblwiPlxyXG4gICAgICAgIDxwLXRyZWVUYWJsZUNoZWNrYm94IFt2YWx1ZV09XCJyb3dOb2RlXCI+PC9wLXRyZWVUYWJsZUNoZWNrYm94PlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgKGNsaWNrKT1cImFjdGl2ZUNoYW5nZS5lbWl0KHJvd0RhdGEpXCIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgIGNsYXNzPVwiX3Utb3ZlcmZsb3ctdmlzaWJsZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogbm93cmFwO1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImkgPT0gMFwiPlxyXG4gICAgICAgICAgICA8cC10cmVlVGFibGVUb2dnbGVyICBbcm93Tm9kZV09XCJyb3dOb2RlXCIgc3R5bGU9XCJhbGlnbi1zZWxmOiBjZW50ZXI7XCI+PC9wLXRyZWVUYWJsZVRvZ2dsZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICdwLXRyZWV0YWJsZS10Ym9keS1jb250ZW50X2hhcy10b2dnbGVyICc6IGkgPT0gMCB9XCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJwLXRyZWV0YWJsZS10Ym9keS1jb250ZW50IGNlbGwtY29udGVudF9ob3ZlclwiXHJcbiAgICAgICAgICAgICAgIHN0eWxlPVwiZmxleC1ncm93OiAxO1wiXHJcbiAgICAgICAgICAgICAgIHRpdGxlPVwie3tyb3dEYXRhIHwgcHJvcGVydHlWYWx1ZTogY29sLmZpZWxkfX1cIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF2YWx1ZVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyb3dEYXRhLmljb24gJiYgaSA9PSAwXCIgW25nQ2xhc3NdPVwicm93RGF0YS5pY29uXCIgY2xhc3M9XCJ1LW1hcmdpbi1yaWdodC10aW55XCI+PC9pPlxyXG4gICAgICAgICAgICAgIHt7cm93RGF0YSB8IHByb3BlcnR5VmFsdWU6IGNvbC5maWVsZH19XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidmFsdWVUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogeyBkYXRhOiByb3dEYXRhLCBjb2w6IGNvbH19XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICpuZ0lmPVwidG9vbGJhclwiIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiby1ncmlkIG8tZ3JpZF9uby1ndXR0ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImMtdHJlZS10YWJsZV9fdG9vbGJhci1jb250ZW50IHUtZGlzcGxheS1pbmxpbmUtZmxleFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjLWZvcm0gYy1mb3JtX2lubGluZSB1LWRpc3BsYXktaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICA8Zm9ybSBjbGFzcz1cImMtbGFiZWxcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXIgdS1tYXJnaW4tcmlnaHQtdGlueVwiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCAjc2VhcmNoVGV4dElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJkdC5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtYm94IGMtaW5wdXQgYy1pbnB1dF9zbWFsbCBuZy1wcmlzdGluZSBuZy12YWxpZCBuZy1zY29wZSBuZy1lbXB0eSBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgcElucHV0VGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7KCdTSEFSRUQuU0VBUkNIJyB8IHRyYW5zbGF0ZSkgKyAnOid9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1yaWdodDogMjhweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkdC5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIiBjbGFzcz1cImJ1dHRvbi1yZXNldFwiIHR5cGU9XCJyZXNldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCInUmVzZXQnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNsb3NlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYy1idG4gYy1idG5fYm9yZGVyLWZyZWUgYy1idG5fc21hbGxcIj5cclxuICAgICAgICAgIDxpbi10YWJsZS1jb2x1bW5zLW11bHRpc2VsZWN0IChjb2x1bW5zQ2hhbmdlKT1cImNvbHVtbnNDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCI+PC9pbi10YWJsZS1jb2x1bW5zLW11bHRpc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGRBY3Rpb24uZW1pdCgkZXZlbnQpXCIgKm5nSWY9XCJ0b29sYmFyLmFkZFwiIFtkaXNhYmxlZF09XCJ0b29sYmFyLmFkZC5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImMtYnRuIGMtYnRuX2JvcmRlci1mcmVlIGMtYnRuX3NtYWxsXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXNcIiBbdGl0bGVdPVwidG9vbGJhci5hZGQudGl0bGUgfHwgJ9CU0L7QsdCw0LLQuNGC0YwnXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJncm91cEFkZEFjdGlvbi5lbWl0KCRldmVudClcIiAqbmdJZj1cInRvb2xiYXIuZ3JvdXBBZGRcIiBbZGlzYWJsZWRdPVwidG9vbGJhci5ncm91cEFkZC5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImMtYnRuIGMtYnRuX2JvcmRlci1mcmVlIGMtYnRuX3NtYWxsXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWZvbGRlclwiIFt0aXRsZV09XCJ0b29sYmFyLmdyb3VwQWRkLnRpdGxlIHx8ICfQlNC+0LHQsNCy0LjRgtGMINCz0YDRg9C/0L/RgydcIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzYXZlQWN0aW9uLmVtaXQoJGV2ZW50KVwiICpuZ0lmPVwidG9vbGJhci5zYXZlXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0b29sYmFyLnNhdmUuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjLWJ0biBjLWJ0bl9wcmltYXJ5IGMtYnRuX3NtYWxsXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3snU2F2ZScgfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3snU2F2ZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdyb3VwRWRpdEFjdGlvbi5lbWl0KCRldmVudClcIiAqbmdJZj1cInRvb2xiYXIuZ3JvdXBFZGl0ICYmIHRvb2xiYXIuZ3JvdXBFZGl0LmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidG9vbGJhci5ncm91cEVkaXQuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjLWJ0biBjLWJ0bl9ib3JkZXItZnJlZSBjLWJ0bl9zbWFsbFwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wZW5jaWwtc3F1YXJlLW9cIiB0aXRsZT1cInt7J2dyb3VwRWRpdCcgfCB0cmFuc2xhdGV9fVwiPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJyZW1vdmVBY3Rpb24uZW1pdCgkZXZlbnQpXCIgKm5nSWY9XCJ0b29sYmFyLnJlbW92ZSAmJiB0b29sYmFyLnJlbW92ZS5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRvb2xiYXIucmVtb3ZlLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYy1idG4gYy1idG5fYm9yZGVyLWZyZWUgYy1idG5fc21hbGxcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2hcIiBbdGl0bGVdPVwidG9vbGJhci5yZW1vdmU/LnRpdGxlIHx8ICfQo9C00LDQu9C40YLRjCdcIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidW5saW5rQWN0aW9uLmVtaXQoJGV2ZW50KVwiICpuZ0lmPVwidG9vbGJhci51bmxpbmtcIiBbZGlzYWJsZWRdPVwidG9vbGJhci51bmxpbmsuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjLWJ0biBjLWJ0bl9ib3JkZXItZnJlZSBjLWJ0bl9zbWFsbFwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS11bmxpbmtcIiB0aXRsZT1cInt7J0RldGFjaCB0YWcgZnJvbSBzZWxlY3RlZCBpdGVtcycgfCB0cmFuc2xhdGV9fVwiPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjc3ZBY3Rpb24uZW1pdCgkZXZlbnQpXCIgKm5nSWY9XCJ0b29sYmFyLmNzdlwiIFtkaXNhYmxlZF09XCJ0b29sYmFyLmNzdi5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImMtYnRuIGMtYnRuX2JvcmRlci1mcmVlIGMtYnRuX3NtYWxsXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1maWxlLWNzdlwiIHRpdGxlPVwi0KHQvtGF0YDQsNC90LjRgtGMINC60LDQuiBDU1ZcIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiAgKm5nSWY9XCJ0b29sYmFyLmNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICBjbGFzcz1cImMtYnRuIGMtYnRuX3NtYWxsIGMtYnRuX3N2Zy0yNCBjLWljb24gYy1pY29uX3N2ZyBjLWljb25fc3ZnLTI0IGMtYnRuX2JvcmRlci1mcmVlXCJcclxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29sbGFwc2UoJGV2ZW50LCBkdClcIlxyXG4gICAgICAgICAgICAgICAgIHRpdGxlPVwie3soaXNDb2xsYXBzZSA/ICdFeHBhbmQgYWxsJyA6ICdDb2xsYXBzZSBhbGwnKSB8IHRyYW5zbGF0ZX19XCI+XHJcbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNDb2xsYXBzZVwiICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0yMCAySDR2MmgxNlYyek00IDIwdjJoMTZ2LTJINHpNMTIgNWw1IDZIN2w1LTZ6TTE3IDEzbC01IDYtNS02aDEwelwiLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIiFpc0NvbGxhcHNlXCIgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxyXG4gICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNyAzbC01IDYtNS02aDEwek00IDEzdi0yaDE2djJINHptOCAybDUgNkg3bDUtNnpcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLXRyZWVUYWJsZT5cclxuIl19