UNPKG

ontimize-web-ngx

Version:
53 lines 14.6 kB
import { ChangeDetectionStrategy, Component, Inject, ViewChild, ViewEncapsulation } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Util } from '../../../../../util/util'; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/dialog"; import * as i2 from "@angular/flex-layout/flex"; import * as i3 from "@angular/material/button"; import * as i4 from "../../../../dual-list-selector/o-dual-list-selector.component"; import * as i5 from "../../../../../pipes/o-translate.pipe"; export class OTableGroupByColumnsDialogComponent { constructor(dialogRef, data) { this.dialogRef = dialogRef; this.columns = []; this.groupedColumns = []; this.groupedColumnTypes = []; if (Util.isArray(data.groupedColumns) && !Util.isArrayEmpty(data.groupedColumns)) { this.groupedColumns = data.groupedColumns.map((attr) => { const indexCol = data.columnsData.findIndex((col) => col.attr === attr); if (indexCol > -1) { return data.columnsData[indexCol]; } }); } const self = this; if (Util.isArray(data.columnsData)) { this.columns = data.columnsData.filter((oCol) => oCol.visible && oCol.groupable && self.groupedColumns.findIndex(x => x.attr === oCol.attr) === -1); } if (Util.isDefined(data.groupedColumnTypes)) { this.groupedColumnTypes = data.groupedColumnTypes; } } getGroupedColumns() { return this.dualListSelector.getSelectedItems().map((oCol) => oCol.attr); } getGroupedColumnTypes() { return this.dualListSelector.getGroupedColumnTypes(); } } OTableGroupByColumnsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableGroupByColumnsDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); OTableGroupByColumnsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableGroupByColumnsDialogComponent, selector: "o-table-group-by-columns-dialog", host: { properties: { "class.o-table-group-by-column-dialog": "true" } }, viewQueries: [{ propertyName: "dualListSelector", first: true, predicate: ["dualListSelector"], descendants: true }], ngImport: i0, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.GROUPBY' | oTranslate }}</span>\n\n<mat-dialog-content>\n <o-dual-list-selector #dualListSelector [data-source]=\"columns\" [data-destination]=\"groupedColumns\" [grouped-column-types]=\"groupedColumnTypes\"\n key=\"attr\" display=\"title\" title-list-data-source=\"TABLE_GROUP_BY_COLUMNS_DIALOG.ALL_COLUMNS\"\n title-list-data-destination=\"TABLE_GROUP_BY_COLUMNS_DIALOG.GROUPED_COLUMNS\" description=\"TABLE_GROUP_BY_COLUMNS_DIALOG.DESCRIPTION\" fxFlexFill>\n </o-dual-list-selector>\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayoutAlign=\"end center\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"false\" class=\"o-button-default cancel\">{{ 'CANCEL' | oTranslate }}</button>\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"true\" class=\"o-button-primary\">{{ 'ACCEPT' | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".o-table-group-by-column-dialog{display:flex;flex-direction:column;height:100%}.o-table-group-by-column-dialog .mat-mdc-dialog-content{flex:1}\n"], dependencies: [{ kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i4.ODualListSelectorComponent, selector: "o-dual-list-selector", inputs: ["key", "display", "data-source", "data-destination", "title-list-data-source", "title-list-data-destination", "grouped-column-types", "description"] }, { kind: "pipe", type: i5.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableGroupByColumnsDialogComponent, decorators: [{ type: Component, args: [{ selector: 'o-table-group-by-columns-dialog', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class.o-table-group-by-column-dialog]': 'true' }, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.GROUPBY' | oTranslate }}</span>\n\n<mat-dialog-content>\n <o-dual-list-selector #dualListSelector [data-source]=\"columns\" [data-destination]=\"groupedColumns\" [grouped-column-types]=\"groupedColumnTypes\"\n key=\"attr\" display=\"title\" title-list-data-source=\"TABLE_GROUP_BY_COLUMNS_DIALOG.ALL_COLUMNS\"\n title-list-data-destination=\"TABLE_GROUP_BY_COLUMNS_DIALOG.GROUPED_COLUMNS\" description=\"TABLE_GROUP_BY_COLUMNS_DIALOG.DESCRIPTION\" fxFlexFill>\n </o-dual-list-selector>\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayoutAlign=\"end center\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"false\" class=\"o-button-default cancel\">{{ 'CANCEL' | oTranslate }}</button>\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"true\" class=\"o-button-primary\">{{ 'ACCEPT' | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".o-table-group-by-column-dialog{display:flex;flex-direction:column;height:100%}.o-table-group-by-column-dialog .mat-mdc-dialog-content{flex:1}\n"] }] }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA] }] }]; }, propDecorators: { dualListSelector: [{ type: ViewChild, args: ['dualListSelector'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1ncm91cC1ieS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2RpYWxvZy9ncm91cC1ieS1jb2x1bW5zL28tdGFibGUtZ3JvdXAtYnktY29sdW1ucy1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvZXh0ZW5zaW9ucy9kaWFsb2cvZ3JvdXAtYnktY29sdW1ucy9vLXRhYmxlLWdyb3VwLWJ5LWNvbHVtbnMtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQWNoRCxNQUFNLE9BQU8sbUNBQW1DO0lBUTlDLFlBQ1MsU0FBNEQsRUFDMUMsSUFBUztRQUQzQixjQUFTLEdBQVQsU0FBUyxDQUFtRDtRQVA5RCxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUM3QixtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFDcEMsdUJBQWtCLEdBQTBCLEVBQUUsQ0FBQztRQVNwRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUM3RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDakYsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUU5SjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3ZELENBQUM7O2lJQXRDVSxtQ0FBbUMsOENBVXBDLGVBQWU7cUhBVmQsbUNBQW1DLHVRQ2pCaEQseTVCQWFBOzRGRElhLG1DQUFtQztrQkFWL0MsU0FBUzsrQkFDRSxpQ0FBaUMsaUJBRzVCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osd0NBQXdDLEVBQUUsTUFBTTtxQkFDakQ7OzBCQVlFLE1BQU07MkJBQUMsZUFBZTs0Q0FKTSxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPR3JvdXBlZENvbHVtblR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMvby1ncm91cGVkLWNvbHVtbi10eXBlcy50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vY29sdW1uL28tY29sdW1uLmNsYXNzJztcbmltcG9ydCB0eXBlIHsgT0R1YWxMaXN0U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9kdWFsLWxpc3Qtc2VsZWN0b3Ivby1kdWFsLWxpc3Qtc2VsZWN0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby10YWJsZS1ncm91cC1ieS1jb2x1bW5zLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnby10YWJsZS1ncm91cC1ieS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydvLXRhYmxlLWdyb3VwLWJ5LWNvbHVtbnMtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXRhYmxlLWdyb3VwLWJ5LWNvbHVtbi1kaWFsb2ddJzogJ3RydWUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT1RhYmxlR3JvdXBCeUNvbHVtbnNEaWFsb2dDb21wb25lbnQge1xuXG4gIHB1YmxpYyBjb2x1bW5zOiBBcnJheTxPQ29sdW1uPiA9IFtdO1xuICBwdWJsaWMgZ3JvdXBlZENvbHVtbnM6IEFycmF5PE9Db2x1bW4+ID0gW107XG4gIHB1YmxpYyBncm91cGVkQ29sdW1uVHlwZXM6IE9Hcm91cGVkQ29sdW1uVHlwZXNbXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoJ2R1YWxMaXN0U2VsZWN0b3InKSBkdWFsTGlzdFNlbGVjdG9yOiBPRHVhbExpc3RTZWxlY3RvckNvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8T1RhYmxlR3JvdXBCeUNvbHVtbnNEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkYXRhOiBhbnlcbiAgKSB7XG5cbiAgICBpZiAoVXRpbC5pc0FycmF5KGRhdGEuZ3JvdXBlZENvbHVtbnMpICYmICFVdGlsLmlzQXJyYXlFbXB0eShkYXRhLmdyb3VwZWRDb2x1bW5zKSkge1xuICAgICAgdGhpcy5ncm91cGVkQ29sdW1ucyA9IGRhdGEuZ3JvdXBlZENvbHVtbnMubWFwKChhdHRyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXhDb2wgPSBkYXRhLmNvbHVtbnNEYXRhLmZpbmRJbmRleCgoY29sOiBPQ29sdW1uKSA9PiBjb2wuYXR0ciA9PT0gYXR0cik7XG4gICAgICAgIGlmIChpbmRleENvbCA+IC0xKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGEuY29sdW1uc0RhdGFbaW5kZXhDb2xdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBpZiAoVXRpbC5pc0FycmF5KGRhdGEuY29sdW1uc0RhdGEpKSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSBkYXRhLmNvbHVtbnNEYXRhLmZpbHRlcigob0NvbDogT0NvbHVtbikgPT4gb0NvbC52aXNpYmxlICYmIG9Db2wuZ3JvdXBhYmxlICYmIHNlbGYuZ3JvdXBlZENvbHVtbnMuZmluZEluZGV4KHggPT4geC5hdHRyID09PSBvQ29sLmF0dHIpID09PSAtMSk7XG5cbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGRhdGEuZ3JvdXBlZENvbHVtblR5cGVzKSkge1xuICAgICAgdGhpcy5ncm91cGVkQ29sdW1uVHlwZXMgPSBkYXRhLmdyb3VwZWRDb2x1bW5UeXBlcztcbiAgICB9XG4gIH1cblxuICBnZXRHcm91cGVkQ29sdW1ucygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5kdWFsTGlzdFNlbGVjdG9yLmdldFNlbGVjdGVkSXRlbXMoKS5tYXAoKG9Db2w6IE9Db2x1bW4pID0+IG9Db2wuYXR0cik7XG4gIH1cblxuICBnZXRHcm91cGVkQ29sdW1uVHlwZXMoKTogT0dyb3VwZWRDb2x1bW5UeXBlc1tdIHtcbiAgICByZXR1cm4gdGhpcy5kdWFsTGlzdFNlbGVjdG9yLmdldEdyb3VwZWRDb2x1bW5UeXBlcygpO1xuICB9XG59XG4iLCI8c3BhbiBtYXQtZGlhbG9nLXRpdGxlPnt7ICdUQUJMRS5CVVRUT05TLkdST1VQQlknIHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cblxuPG1hdC1kaWFsb2ctY29udGVudD5cbiAgPG8tZHVhbC1saXN0LXNlbGVjdG9yICNkdWFsTGlzdFNlbGVjdG9yIFtkYXRhLXNvdXJjZV09XCJjb2x1bW5zXCIgW2RhdGEtZGVzdGluYXRpb25dPVwiZ3JvdXBlZENvbHVtbnNcIiBbZ3JvdXBlZC1jb2x1bW4tdHlwZXNdPVwiZ3JvdXBlZENvbHVtblR5cGVzXCJcbiAgICBrZXk9XCJhdHRyXCIgZGlzcGxheT1cInRpdGxlXCIgdGl0bGUtbGlzdC1kYXRhLXNvdXJjZT1cIlRBQkxFX0dST1VQX0JZX0NPTFVNTlNfRElBTE9HLkFMTF9DT0xVTU5TXCJcbiAgICB0aXRsZS1saXN0LWRhdGEtZGVzdGluYXRpb249XCJUQUJMRV9HUk9VUF9CWV9DT0xVTU5TX0RJQUxPRy5HUk9VUEVEX0NPTFVNTlNcIiBkZXNjcmlwdGlvbj1cIlRBQkxFX0dST1VQX0JZX0NPTFVNTlNfRElBTE9HLkRFU0NSSVBUSU9OXCIgZnhGbGV4RmlsbD5cbiAgPC9vLWR1YWwtbGlzdC1zZWxlY3Rvcj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiIGNsYXNzPVwiby1idXR0b24tZGVmYXVsdCBjYW5jZWxcIj57eyAnQ0FOQ0VMJyB8IG9UcmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIiBjbGFzcz1cIm8tYnV0dG9uLXByaW1hcnlcIj57eyAnQUNDRVBUJyB8IG9UcmFuc2xhdGUgfX08L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19