barsa-sap-ui 1.0.356 → 1.0.358
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +12 -12
- package/esm2020/lib/barsa-sap-ui.module.mjs +118 -129
- package/esm2020/lib/barsa-table-column/barsa-table-column.component.mjs +3 -3
- package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +51 -18
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
- package/esm2020/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +11 -8
- package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +6 -7
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +12 -8
- package/esm2020/lib/card-item/card-item.component.mjs +3 -3
- package/esm2020/lib/column-renderer/column-renderer.component.mjs +9 -8
- package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +3 -3
- package/esm2020/lib/global-search/global-search.component.mjs +7 -6
- package/esm2020/lib/index.mjs +1 -3
- package/esm2020/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +4 -4
- package/esm2020/lib/layout-actions/layout-actions.component.mjs +3 -4
- package/esm2020/lib/list-item/list-item.component.mjs +3 -3
- package/esm2020/lib/models/grid-data-provider.mjs +3 -142
- package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +5 -6
- package/esm2020/lib/report-view-renderer.directive.mjs +8 -2
- package/esm2020/lib/sap-ui-report-base.component.mjs +2 -3
- package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +3 -3
- package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +3 -3
- package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +3 -3
- package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +3 -3
- package/esm2020/lib/ui-form-panel-toolbar/ui-form-panel-toolbar.component.mjs +5 -7
- package/esm2020/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +3 -3
- package/esm2020/lib/ui-grid/ui-grid.component.mjs +3 -3
- package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +3 -3
- package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +4 -5
- package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +4 -4
- package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +1 -1
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +57 -8
- package/esm2020/lib/ui-tree/ui-tree.component.mjs +8 -8
- package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +5 -3
- package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +15 -13
- package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +13 -14
- package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +5 -6
- package/esm2020/public-api.mjs +1 -2
- package/fesm2015/barsa-sap-ui.mjs +360 -479
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +360 -478
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-sap-ui.module.d.ts +124 -126
- package/lib/barsa-table-header/barsa-table-header.component.d.ts +13 -4
- package/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.d.ts +2 -2
- package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +4 -1
- package/lib/global-search/global-search.component.d.ts +1 -2
- package/lib/index.d.ts +1 -2
- package/lib/models/grid-data-provider.d.ts +2 -6
- package/lib/report-view-renderer.directive.d.ts +3 -1
- package/lib/sap-ui-report-base.component.d.ts +1 -3
- package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +1 -1
- package/lib/ui-table-view/ui-table-view.component.d.ts +12 -3
- package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +2 -0
- package/lib/ulv-column-settings/ulv-column-settings.component.d.ts +2 -1
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +2 -4
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/esm2020/lib/page-with-header/page-with-header.component.mjs +0 -75
- package/lib/page-with-header/page-with-header.component.d.ts +0 -29
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
|
|
2
|
-
import { ReportViewBaseComponent } from 'barsa-novin-ray-core';
|
|
2
|
+
import { ReportViewBaseComponent, TableHeaderWidthMode, calculateWidthOfListColumn, setColumnWidthByMaxMoContentWidth } from 'barsa-novin-ray-core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "barsa-novin-ray-core";
|
|
6
6
|
import * as i3 from "@fundamental-ngx/core/table";
|
|
7
|
-
import * as i4 from "../
|
|
8
|
-
import * as i5 from "../barsa-table-
|
|
7
|
+
import * as i4 from "../no-data/no-data.component";
|
|
8
|
+
import * as i5 from "../barsa-table-header/barsa-table-header.component";
|
|
9
|
+
import * as i6 from "../barsa-table-row/barsa-table-row.component";
|
|
9
10
|
export class UiTableViewComponent extends ReportViewBaseComponent {
|
|
10
11
|
constructor() {
|
|
11
12
|
super(...arguments);
|
|
@@ -14,10 +15,14 @@ export class UiTableViewComponent extends ReportViewBaseComponent {
|
|
|
14
15
|
this._width = '100%';
|
|
15
16
|
this.detailsColumns = [];
|
|
16
17
|
this.columnComponents = [];
|
|
18
|
+
this.tableHeaderMode = TableHeaderWidthMode.FitToContainer;
|
|
17
19
|
}
|
|
18
20
|
ngOnInit() {
|
|
19
21
|
super.ngOnInit();
|
|
20
22
|
const detailsSetting = this.viewSetting?.DetailsSetting;
|
|
23
|
+
this.tableHeaderMode = this.gridFreeColumnSizing
|
|
24
|
+
? TableHeaderWidthMode.FitToColumn
|
|
25
|
+
: TableHeaderWidthMode.FitToContainer;
|
|
21
26
|
this.hasRowOlgo = this.viewSetting?.RowOlgo?.Selector;
|
|
22
27
|
this.maxHeight = this.viewSetting?.BodyHeight;
|
|
23
28
|
if (detailsSetting) {
|
|
@@ -33,10 +38,14 @@ export class UiTableViewComponent extends ReportViewBaseComponent {
|
|
|
33
38
|
this._setHeight(this.parentHeight);
|
|
34
39
|
this._setRowIndicator(this.columns);
|
|
35
40
|
}
|
|
41
|
+
ngAfterViewInit() {
|
|
42
|
+
super.ngAfterViewInit();
|
|
43
|
+
this._calculateColumnsWidth(this.moDataList);
|
|
44
|
+
}
|
|
36
45
|
ngOnChanges(changes) {
|
|
37
|
-
|
|
38
|
-
const { columns, cartableTemplates, parentHeight } = changes;
|
|
46
|
+
const { columns, cartableTemplates, parentHeight, moDataList } = changes;
|
|
39
47
|
if (columns && !columns.firstChange) {
|
|
48
|
+
this._calculateColumnsWidth(this.moDataList, columns.currentValue);
|
|
40
49
|
this._setRowIndicator(this.columns);
|
|
41
50
|
}
|
|
42
51
|
if (cartableTemplates && !cartableTemplates.firstChange && !this.hasSummary) {
|
|
@@ -46,6 +55,46 @@ export class UiTableViewComponent extends ReportViewBaseComponent {
|
|
|
46
55
|
if (parentHeight && !parentHeight.firstChange) {
|
|
47
56
|
this._setHeight(parentHeight.currentValue);
|
|
48
57
|
}
|
|
58
|
+
if (moDataList && moDataList.currentValue.length > 0 && !moDataList.firstChange) {
|
|
59
|
+
// this._calculateColumnsWidth(moDataList.currentValue);
|
|
60
|
+
}
|
|
61
|
+
super.ngOnChanges(changes);
|
|
62
|
+
}
|
|
63
|
+
onColumnResized(e) {
|
|
64
|
+
if (this.secondaryColumns.length) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
this.resizedByUser = true;
|
|
68
|
+
this.tableHeaderMode = TableHeaderWidthMode.FreeColumnSize;
|
|
69
|
+
this.columnResized.emit({ columns: this.columns, resized: e });
|
|
70
|
+
}
|
|
71
|
+
onFitToContainer() {
|
|
72
|
+
this.tableHeaderMode = TableHeaderWidthMode.FitToContainer;
|
|
73
|
+
this._calculateColumnsWidth(this.moDataList);
|
|
74
|
+
this._fireResizeChanged();
|
|
75
|
+
}
|
|
76
|
+
onFitToColumn() {
|
|
77
|
+
this.tableHeaderMode = TableHeaderWidthMode.FitToColumn;
|
|
78
|
+
this._calculateColumnsWidth(this.moDataList);
|
|
79
|
+
this._fireResizeChanged();
|
|
80
|
+
}
|
|
81
|
+
onFitToContent(column) {
|
|
82
|
+
setColumnWidthByMaxMoContentWidth(this.moDataList, column);
|
|
83
|
+
this._fireResizeChanged();
|
|
84
|
+
}
|
|
85
|
+
get showViewButton() {
|
|
86
|
+
return this.canView && !this.inlineEditMode && !this.hideOpenIcon;
|
|
87
|
+
}
|
|
88
|
+
_fireResizeChanged() {
|
|
89
|
+
this.columnResized.emit({
|
|
90
|
+
columns: this.columns,
|
|
91
|
+
resized: this.columns.map((c) => ({ name: c.Name, width: c.Width }))
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
_calculateColumnsWidth(moDataList, columns) {
|
|
95
|
+
const elDom = this._el.nativeElement;
|
|
96
|
+
const calcResult = calculateWidthOfListColumn(elDom, this.showViewButton, this.contextMenuItems, this.disableOverflowContextMenu, this.tableHeaderMode, moDataList, columns || this.columns);
|
|
97
|
+
this.contextMenuWidth = calcResult.contextMenuWidth;
|
|
49
98
|
}
|
|
50
99
|
_setRowIndicator(columns) {
|
|
51
100
|
if (!columns?.length) {
|
|
@@ -80,10 +129,10 @@ export class UiTableViewComponent extends ReportViewBaseComponent {
|
|
|
80
129
|
}
|
|
81
130
|
}
|
|
82
131
|
UiTableViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiTableViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
UiTableViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiTableViewComponent, selector: "bsu-ui-table-view", inputs: { columnWidth: "columnWidth", minWidth: "minWidth", minHeight: "minHeight", rowResizer: "rowResizer", enableResizing: "enableResizing" }, host: { properties: { "style.height.px": "this.height", "style.max-height": "this.maxHeight" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n tableResizer\n [fitWidth]=\"fitWidth\"\n (columnResized)=\"onColumnResized($event)\"\n [containerWidth]=\"containerWidth\"\n [minWidth]=\"30\"\n [minHeight]=\"22\"\n [rowResizer]=\"rowResizer\"\n [enableResizing]=\"enableResizing\"\n>\n <ng-container\n *ngIf=\"columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList as mergeFieldsToColumns\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n </ng-container>\n</table>\n<ng-template #headerTemplate let-columns>\n <bsu-barsa-table-header\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [allChecked]=\"allChecked\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [noBorderX]=\"popin && secondaryColumns.length > 0\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container *ngIf=\"moDataList && moDataList.length > 0; else noData\">\n <ng-container\n *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; trackBy: _trackByRow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate:\n cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n <tfoot fd-table-footer *ngIf=\"hasSummary\">\n <tr fd-table-row class=\"row-summary\">\n <td fd-table-cell *ngIf=\"isCheckList\" columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td fd-table-cell *ngIf=\"!isCheckList\" class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td *ngFor=\"let column of columns; let i = index\">\n <ng-container *ngIf=\"column.HasSummary\">\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n </ng-container>\n </td>\n <ng-container *ngIf=\"contextMenuItems && contextMenuItems.length > 0\">\n <td fd-table-cell style=\"width: 100px\"></td>\n </ng-container>\n <td fd-table-cell *ngIf=\"canView\"></td>\n </tr>\n </tfoot>\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n<!--renderColumn-->\n<ng-template #noData>\n <tr *ngIf=\"!inlineEditMode || !newInlineEditMo\">\n <td colspan=\"100%\" style=\"padding: 10px\">{{ 'NoData' | bbbTranslate }}</td>\n </tr>\n</ng-template>\n", styles: [":host{display:block;width:100%;overflow-x:auto;max-width:100vw}table.fixed{table-layout:fixed}table.fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"], dependencies: [{ 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.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor"] }, { kind: "directive", type: i2.TableResizerDirective, selector: "[tableResizer]", inputs: ["fitWidth", "minWidth", "minHeight", "containerWidth", "rowResizer", "enableResizing"], outputs: ["columnResized"] }, { kind: "directive", type: i2.ColumnResizerDirective, selector: "[columnResizer]", inputs: ["disableResizer"] }, { kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableFooterDirective, selector: "[fdTableFooter], [fd-table-footer]" }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "component", type: i4.BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: ["allChecked", "isCheckList", "columns", "fitWidth", "contextMenuItems", "canView", "hasSelected", "hideOpenIcon", "disableOverflowContextMenu", "inlineEditMode", "hideHeader", "showDetailsInRow", "viewSetting", "tableWidth", "resizedByUser", "disableResponsive", "rowIndicator", "deviceSize"], outputs: ["allCheckbox", "sortAscending", "sortDescending", "filter"] }, { kind: "component", type: i5.BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: ["showDetailsInRow", "detailsComponent", "detailsColumns", "detailsText", "columnComponents"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.TotalSummaryPipe, name: "totalSummary" }, { kind: "pipe", type: i2.MergeFieldsToColumnsPipe, name: "mergeFieldsToColumns" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }, { kind: "pipe", type: i2.ColumnCustomComponentPipe, name: "columnCustomComponent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
132
|
+
UiTableViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiTableViewComponent, selector: "bsu-ui-table-view", inputs: { columnWidth: "columnWidth", minWidth: "minWidth", minHeight: "minHeight", rowResizer: "rowResizer", enableResizing: "enableResizing" }, host: { properties: { "style.height.px": "this.height", "style.max-height": "this.maxHeight" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n fd-table\n [popIn]=\"popin\"\n [class.fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n>\n <ng-container\n *ngIf=\"columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList as mergeFieldsToColumns\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n </ng-container>\n</table>\n<ng-template #headerTemplate let-columns>\n <bsu-barsa-table-header\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [allChecked]=\"allChecked\"\n [rtl]=\"rtl\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [contextMenuWidth]=\"contextMenuWidth\"\n [showViewButton]=\"showViewButton\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (columnResize)=\"onColumnResized($event)\"\n (fitToContent)=\"onFitToContent($event)\"\n (fitToContainer)=\"onFitToContainer()\"\n (fitToColumn)=\"onFitToColumn()\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [noBorderX]=\"(popin && secondaryColumns.length > 0) || viewSetting?.NoVerticalBorders !== false\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container>\n <ng-container\n *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; trackBy: _trackByRow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate:\n cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n <tfoot fd-table-footer *ngIf=\"hasSummary\">\n <tr fd-table-row class=\"row-summary\">\n <td fd-table-cell *ngIf=\"isCheckList\" columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td fd-table-cell *ngIf=\"!isCheckList\" class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td *ngFor=\"let column of columns; let i = index\">\n <ng-container *ngIf=\"column.HasSummary\">\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n </ng-container>\n </td>\n <ng-container *ngIf=\"contextMenuItems && contextMenuItems.length > 0\">\n <td fd-table-cell style=\"width: 100px\"></td>\n </ng-container>\n <td fd-table-cell *ngIf=\"canView\"></td>\n </tr>\n </tfoot>\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n<!--renderColumn-->\n<ng-template #noData>\n <bsu-no-data> </bsu-no-data>\n</ng-template>\n", styles: [":host{display:block;width:100%;position:relative;overflow-x:auto;max-width:100vw}table.fixed{table-layout:fixed}table.fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"], dependencies: [{ 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.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor"] }, { kind: "directive", type: i2.ColumnResizerDirective, selector: "[columnResizer]", inputs: ["disableResizer"] }, { kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableFooterDirective, selector: "[fdTableFooter], [fd-table-footer]" }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "component", type: i4.NoDataComponent, selector: "bsu-no-data" }, { kind: "component", type: i5.BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: ["allChecked", "isCheckList", "columns", "fitWidth", "contextMenuItems", "contextMenuWidth", "showViewButton", "hasSelected", "hideOpenIcon", "disableOverflowContextMenu", "inlineEditMode", "hideHeader", "showDetailsInRow", "viewSetting", "tableWidth", "resizedByUser", "disableResponsive", "rowIndicator", "rtl", "deviceSize"], outputs: ["allCheckbox", "columnResize", "fitToContent", "fitToContainer", "fitToColumn", "sortAscending", "sortDescending", "filter"] }, { kind: "component", type: i6.BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: ["showDetailsInRow", "detailsComponent", "detailsColumns", "detailsText", "columnComponents"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.TotalSummaryPipe, name: "totalSummary" }, { kind: "pipe", type: i2.MergeFieldsToColumnsPipe, name: "mergeFieldsToColumns" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }, { kind: "pipe", type: i2.ColumnCustomComponentPipe, name: "columnCustomComponent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
84
133
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiTableViewComponent, decorators: [{
|
|
85
134
|
type: Component,
|
|
86
|
-
args: [{ selector: 'bsu-ui-table-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n tableResizer\n [fitWidth]=\"fitWidth\"\n (columnResized)=\"onColumnResized($event)\"\n [containerWidth]=\"containerWidth\"\n [minWidth]=\"30\"\n [minHeight]=\"22\"\n [rowResizer]=\"rowResizer\"\n [enableResizing]=\"enableResizing\"\n>\n <ng-container\n *ngIf=\"columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList as mergeFieldsToColumns\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n </ng-container>\n</table>\n<ng-template #headerTemplate let-columns>\n <bsu-barsa-table-header\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [allChecked]=\"allChecked\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [noBorderX]=\"popin && secondaryColumns.length > 0\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container *ngIf=\"moDataList && moDataList.length > 0; else noData\">\n <ng-container\n *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; trackBy: _trackByRow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate:\n cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n <tfoot fd-table-footer *ngIf=\"hasSummary\">\n <tr fd-table-row class=\"row-summary\">\n <td fd-table-cell *ngIf=\"isCheckList\" columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td fd-table-cell *ngIf=\"!isCheckList\" class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td *ngFor=\"let column of columns; let i = index\">\n <ng-container *ngIf=\"column.HasSummary\">\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n </ng-container>\n </td>\n <ng-container *ngIf=\"contextMenuItems && contextMenuItems.length > 0\">\n <td fd-table-cell style=\"width: 100px\"></td>\n </ng-container>\n <td fd-table-cell *ngIf=\"canView\"></td>\n </tr>\n </tfoot>\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n<!--renderColumn-->\n<ng-template #noData>\n <tr *ngIf=\"!inlineEditMode || !newInlineEditMo\">\n <td colspan=\"100%\" style=\"padding: 10px\">{{ 'NoData' | bbbTranslate }}</td>\n </tr>\n</ng-template>\n", styles: [":host{display:block;width:100%;overflow-x:auto;max-width:100vw}table.fixed{table-layout:fixed}table.fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"] }]
|
|
135
|
+
args: [{ selector: 'bsu-ui-table-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n fd-table\n [popIn]=\"popin\"\n [class.fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n>\n <ng-container\n *ngIf=\"columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList as mergeFieldsToColumns\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n </ng-container>\n</table>\n<ng-template #headerTemplate let-columns>\n <bsu-barsa-table-header\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [allChecked]=\"allChecked\"\n [rtl]=\"rtl\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [contextMenuWidth]=\"contextMenuWidth\"\n [showViewButton]=\"showViewButton\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (columnResize)=\"onColumnResized($event)\"\n (fitToContent)=\"onFitToContent($event)\"\n (fitToContainer)=\"onFitToContainer()\"\n (fitToColumn)=\"onFitToColumn()\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [noBorderX]=\"(popin && secondaryColumns.length > 0) || viewSetting?.NoVerticalBorders !== false\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container>\n <ng-container\n *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; trackBy: _trackByRow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate:\n cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n <tfoot fd-table-footer *ngIf=\"hasSummary\">\n <tr fd-table-row class=\"row-summary\">\n <td fd-table-cell *ngIf=\"isCheckList\" columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td fd-table-cell *ngIf=\"!isCheckList\" class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td *ngFor=\"let column of columns; let i = index\">\n <ng-container *ngIf=\"column.HasSummary\">\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n </ng-container>\n </td>\n <ng-container *ngIf=\"contextMenuItems && contextMenuItems.length > 0\">\n <td fd-table-cell style=\"width: 100px\"></td>\n </ng-container>\n <td fd-table-cell *ngIf=\"canView\"></td>\n </tr>\n </tfoot>\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n<!--renderColumn-->\n<ng-template #noData>\n <bsu-no-data> </bsu-no-data>\n</ng-template>\n", styles: [":host{display:block;width:100%;position:relative;overflow-x:auto;max-width:100vw}table.fixed{table-layout:fixed}table.fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"] }]
|
|
87
136
|
}], propDecorators: { columnWidth: [{
|
|
88
137
|
type: Input
|
|
89
138
|
}], minWidth: [{
|
|
@@ -101,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
101
150
|
type: HostBinding,
|
|
102
151
|
args: ['style.max-height']
|
|
103
152
|
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGFibGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10YWJsZS12aWV3L3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdGFibGUtdmlldy91aS10YWJsZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQyx1QkFBdUIsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVNqSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQTJDO0lBTnJGOztRQWFvQyxXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUVqRSxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUl4QyxxQkFBZ0IsR0FBbUUsRUFBRSxDQUFDO0tBbUV6RjtJQWpFRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7UUFDOUMsSUFBSSxjQUFjLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7WUFDakQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxL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Q0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7O2lIQWpGUSxvQkFBb0I7cUdBQXBCLG9CQUFvQix5VkNsQmpDLDBqVkFrUEE7MkZEaE9hLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUUwQixNQUFNO3NCQUFyQyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFDRyxTQUFTO3NCQUF6QyxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkluaXQsXHJcbiAgICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVqcmF5T2xnbywgTWV0YW9iamVjdERhdGFNb2RlbCwgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQsIFJlcG9ydFZpZXdDb2x1bW4gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IFVpVGFibGVWaWV3U2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9ncmlkLXZpZXcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS10YWJsZS12aWV3JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS10YWJsZS12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVRhYmxlVmlld0NvbXBvbmVudCBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFVpVGFibGVWaWV3U2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKSBjb2x1bW5XaWR0aDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgbWluV2lkdGg7XHJcbiAgICBASW5wdXQoKSBtaW5IZWlnaHQ7XHJcbiAgICBASW5wdXQoKSByb3dSZXNpemVyO1xyXG4gICAgQElucHV0KCkgZW5hYmxlUmVzaXppbmc7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBoZWlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JykgbWF4SGVpZ2h0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBfd2lkdGggPSAnMTAwJSc7XHJcbiAgICBkZXRhaWxzQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdID0gW107XHJcbiAgICBkZXRhaWxzQ29tcG9uZW50OiBFanJheU9sZ287XHJcbiAgICBzaG93RGV0YWlsc0luUm93OiBib29sZWFuO1xyXG4gICAgaGFzUm93T2xnbzogYm9vbGVhbjtcclxuICAgIGNvbHVtbkNvbXBvbmVudHM6IHsgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uOyBjb21wb25lbnQ6IE1ldGFvYmplY3REYXRhTW9kZWwgfVtdID0gW107XHJcbiAgICByb3dJbmRpY2F0b3I6IGJvb2xlYW47XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGNvbnN0IGRldGFpbHNTZXR0aW5nID0gdGhpcy52aWV3U2V0dGluZz8uRGV0YWlsc1NldHRpbmc7XHJcbiAgICAgICAgdGhpcy5oYXNSb3dPbGdvID0gdGhpcy52aWV3U2V0dGluZz8uUm93T2xnbz8uU2VsZWN0b3I7XHJcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLnZpZXdTZXR0aW5nPy5Cb2R5SGVpZ2h0O1xyXG4gICAgICAgIGlmIChkZXRhaWxzU2V0dGluZykge1xyXG4gICAgICAgICAgICB0aGlzLmRldGFpbHNDb21wb25lbnQgPSBkZXRhaWxzU2V0dGluZy5Db21wb25lbnQ7XHJcbiAgICAgICAgICAgIGRldGFpbHNTZXR0aW5nLkNvbHVtbnMuc3BsaXQoJywnKS5mb3JFYWNoKChjb2x1bW5OYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuX2ZpbmRDb2x1bW5CeURiTmFtZS50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCBjb2x1bW5OYW1lLCB0aGlzLnNlY29uZGFyeUNvbHVtbnMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbHVtbnMucHVzaChjb2x1bW4pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fc2V0SGFzU3VtbWVyeSh0aGlzLmNhcnRhYmxlQ2hpbGRzTW8pO1xyXG4gICAgICAgIHRoaXMuX3NldEhlaWdodCh0aGlzLnBhcmVudEhlaWdodCk7XHJcbiAgICAgICAgdGhpcy5fc2V0Um93SW5kaWNhdG9yKHRoaXMuY29sdW1ucyk7XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgICAgY29uc3QgeyBjb2x1bW5zLCBjYXJ0YWJsZVRlbXBsYXRlcywgcGFyZW50SGVpZ2h0IH0gPSBjaGFuZ2VzO1xyXG4gICAgICAgIGlmIChjb2x1bW5zICYmICFjb2x1bW5zLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldFJvd0luZGljYXRvcih0aGlzLmNvbHVtbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY2FydGFibGVUZW1wbGF0ZXMgJiYgIWNhcnRhYmxlVGVtcGxhdGVzLmZpcnN0Q2hhbmdlICYmICF0aGlzLmhhc1N1bW1hcnkpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2V0SGFzU3VtbWVyeShjYXJ0YWJsZVRlbXBsYXRlcy5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocGFyZW50SGVpZ2h0ICYmICFwYXJlbnRIZWlnaHQuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2V0SGVpZ2h0KHBhcmVudEhlaWdodC5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX3NldFJvd0luZGljYXRvcihjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWNvbHVtbnM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucm93SW5kaWNhdG9yID0gTnVtYmVyKGNvbHVtbnNbMF0uTWV0YUZpZWxkVHlwZUlkKSA9PT0gNDE7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zZXRIZWlnaHQocGFyZW50SGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pbkRpYWxvZykge1xyXG4gICAgICAgICAgICB0aGlzLmhlaWdodCA9IHBhcmVudEhlaWdodDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldEhhc1N1bW1lcnkoY2FydGFibGVUZW1wbGF0ZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbHVtbnM/Lmxlbmd0aCA+IDAgfHxcclxuICAgICAgICAgICAgdGhpcy5kZXRhaWxzQ29tcG9uZW50Py5TZWxlY3RvciB8fFxyXG4gICAgICAgICAgICAoY2FydGFibGVUZW1wbGF0ZXMgJiYgT2JqZWN0LmtleXMoY2FydGFibGVUZW1wbGF0ZXMpLmxlbmd0aCA+IDApXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0RldGFpbHNJblJvdyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzRGV0YWlsc0luUm93LmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5oYXNEZXRhaWxzSW5Sb3cuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9jb250YWluZXJXaWR0aENoYW5nZWQodmFsOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAodmFsID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3dpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3dpZHRoID0gdmFsID8gdmFsICsgJ3B4JyA6ICcxMDAlJztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIHRoaXMuX3dpZHRoKTtcclxuICAgIH1cclxufVxyXG4iLCI8dGFibGVcbiAgICBmZC10YWJsZVxuICAgIFtwb3BJbl09XCJwb3BpblwiXG4gICAgW2NsYXNzLmZpeGVkXT1cIiFjb250ZXh0Vmlldz8uR3JpZF9IaWRlSGVhZGVyICYmICghcG9waW4gfHwgc2Vjb25kYXJ5Q29sdW1ucy5sZW5ndGggPT09IDApXCJcbiAgICBbbm9Cb3JkZXJYXT1cInZpZXdTZXR0aW5nPy5Ob1ZlcnRpY2FsQm9yZGVycyA9PT0gdHJ1ZSB8fCAocG9waW4gJiYgc2Vjb25kYXJ5Q29sdW1ucy5sZW5ndGggPiAwKVwiXG4gICAgW25vQm9yZGVyWV09XCJ2aWV3U2V0dGluZz8uTm9Ib3JpenRvbmFsQm9yZGVycyA9PT0gdHJ1ZSB8fCAocG9waW4gJiYgc2Vjb25kYXJ5Q29sdW1ucy5sZW5ndGggPiAwKVwiXG4gICAgdGFibGVSZXNpemVyXG4gICAgW2ZpdFdpZHRoXT1cImZpdFdpZHRoXCJcbiAgICAoY29sdW1uUmVzaXplZCk9XCJvbkNvbHVtblJlc2l6ZWQoJGV2ZW50KVwiXG4gICAgW2NvbnRhaW5lcldpZHRoXT1cImNvbnRhaW5lcldpZHRoXCJcbiAgICBbbWluV2lkdGhdPVwiMzBcIlxuICAgIFttaW5IZWlnaHRdPVwiMjJcIlxuICAgIFtyb3dSZXNpemVyXT1cInJvd1Jlc2l6ZXJcIlxuICAgIFtlbmFibGVSZXNpemluZ109XCJlbmFibGVSZXNpemluZ1wiXG4+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImNvbHVtbnMgfCBtZXJnZUZpZWxkc1RvQ29sdW1uczogdmlld1NldHRpbmc/Lk1lcmdlRmllbGRzVG9Db2x1bW5zPy5Nb0RhdGFMaXN0IGFzIG1lcmdlRmllbGRzVG9Db2x1bW5zXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG1lcmdlRmllbGRzVG9Db2x1bW5zIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG1lcmdlRmllbGRzVG9Db2x1bW5zIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVyZ2VGaWVsZHNUb0NvbHVtbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC90YWJsZT5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGUgbGV0LWNvbHVtbnM+XG4gICAgPGJzdS1iYXJzYS10YWJsZS1oZWFkZXJcbiAgICAgICAgW3RhYmxlV2lkdGhdPVwiZWxXaWR0aFwiXG4gICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtyZXNpemVkQnlVc2VyXT1cInJlc2l6ZWRCeVVzZXJcIlxuICAgICAgICBbYWxsQ2hlY2tlZF09XCJhbGxDaGVja2VkXCJcbiAgICAgICAgW2Rpc2FibGVSZXNwb25zaXZlXT1cImRpc2FibGVSZXNwb25zaXZlXCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1ucyB8IGZpbHRlckNvbHVtbnNCeURldGFpbHM6IGRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgW2ZpdFdpZHRoXT1cImZpdFdpZHRoXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgIFtjYW5WaWV3XT1cImNhblZpZXdcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW3ZpZXdTZXR0aW5nXT1cInZpZXdTZXR0aW5nXCJcbiAgICAgICAgW2hpZGVIZWFkZXJdPVwiY29udGV4dFZpZXcuR3JpZF9IaWRlSGVhZGVyXCJcbiAgICAgICAgW3Jvd0luZGljYXRvcl09XCJyb3dJbmRpY2F0b3JcIlxuICAgICAgICAoYWxsQ2hlY2tib3gpPVwib25BbGxDaGVja2JveCgkZXZlbnQpXCJcbiAgICAgICAgKHNvcnRBc2NlbmRpbmcpPVwib25Tb3J0QXNjZW5kaW5nKCRldmVudClcIlxuICAgICAgICAoc29ydERlc2NlbmRpbmcpPVwib25Tb3J0RGVzY2VuZGluZygkZXZlbnQpXCJcbiAgICAgICAgKGZpbHRlcik9XCJvbkZpbHRlcigkZXZlbnQpXCJcbiAgICA+PC9ic3UtYmFyc2EtdGFibGUtaGVhZGVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYm9keVRlbXBsYXRlIGxldC1jb2x1bW5zPlxuICAgIDx0Ym9keVxuICAgICAgICBmZC10YWJsZS1ib2R5XG4gICAgICAgIFtub0JvcmRlclhdPVwicG9waW4gJiYgc2Vjb25kYXJ5Q29sdW1ucy5sZW5ndGggPiAwXCJcbiAgICAgICAgW25vQm9yZGVyWV09XCJwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vRGF0YUxpc3QgJiYgbW9EYXRhTGlzdC5sZW5ndGggPiAwOyBlbHNlIG5vRGF0YVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtbyBvZiBtb0RhdGFMaXN0IHwgbXVsdGlwbGVHcm91cEJ5OiBncm91cGJ5OyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogX3RyYWNrQnlSb3dcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc1Jvd09sZ28gPyByb3dPbGdvVGVtcGxhdGUgOiByb3dUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dJbmRpY2F0b3JDb2xvcjogIWNvbHVtbnMubGVuZ3RoID8gJycgOiAoY29sdW1uc1swXS5DYXB0aW9uIHwgcnZhbDogbW86Y29sdW1ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogY29sdW1ucyB8IGNvbHVtbkN1c3RvbUNvbXBvbmVudDogdmlld1NldHRpbmc/LkNvbHVtbkNvbXBvbmVudHM/Lk1vRGF0YUxpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sdW1uczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sdW1ucyB8IGNvbHVtbkN1c3RvbUNvbXBvbmVudDogdmlld1NldHRpbmc/LkNvbHVtbkNvbXBvbmVudHM/Lk1vRGF0YUxpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdDogbW9EYXRhTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0Q291bnQ6IG1vRGF0YUxpc3QubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcnRhYmxlVGVtcGxhdGU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcnRhYmxlVGVtcGxhdGVzW21vLlJlbGF0ZWRNbz8uJFR5cGVEZWZJZCArICdAJyArIG1vLkNhcnRhYmxlU2V0dGluZ3M/LklkXVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGUgbGV0LWNvbHVtbnM+XG4gICAgPHRmb290IGZkLXRhYmxlLWZvb3RlciAqbmdJZj1cImhhc1N1bW1hcnlcIj5cbiAgICAgICAgPHRyIGZkLXRhYmxlLXJvdyBjbGFzcz1cInJvdy1zdW1tYXJ5XCI+XG4gICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCAqbmdJZj1cImlzQ2hlY2tMaXN0XCIgY29sdW1uUmVzaXplcj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiY29sLXRvdGFsLXRleHRcIj57eyAnVG90YWwnIHwgYmJiVHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgKm5nSWY9XCIhaXNDaGVja0xpc3RcIiBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiY29sLXRvdGFsLXRleHRcIj57eyAnVG90YWwnIHwgYmJiVHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uSGFzU3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIHN0eWxlPVwiZGlyZWN0aW9uOiBsdHI7IGRpc3BsYXk6IGJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBtb0RhdGFMaXN0IHwgdG90YWxTdW1tYXJ5OiBjb2x1bW4uTmFtZSB8IG51bWJlciB9fTwvc3Ryb25nXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcyAmJiBjb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCBzdHlsZT1cIndpZHRoOiAxMDBweFwiPjwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiY2FuVmlld1wiPjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgPC90Zm9vdD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjcm93T2xnb1RlbXBsYXRlXG4gICAgbGV0LW1vXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXG4gICAgbGV0LW1vRGF0YUxpc3RDb3VudD1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICBsZXQtY2FydGFibGVUZW1wbGF0ZT1cImNhcnRhYmxlVGVtcGxhdGVcIlxuICAgIGxldC1zZWNvbmRhcnlDb2x1bW5zPVwic2Vjb25kYXJ5Q29sdW1uc1wiXG4gICAgbGV0LXJvd0luZGljYXRvckNvbG9yPVwicm93SW5kaWNhdG9yQ29sb3JcIlxuPlxuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJ2aWV3U2V0dGluZy5Sb3dPbGdvXCJcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtkZXRhaWxzQ29sdW1uc109XCJkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtjb2x1bW5Db21wb25lbnRzXT1cInZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzIHx8IG51bGxcIlxuICAgICAgICBbY2FydGFibGVUZW1wbGF0ZV09XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICAgICAgW2NhcnRhYmxlTW9dPVwibW8uUmVsYXRlZE1vXCJcbiAgICAgICAgW2NhcnRhYmxlV29ya2Zsb3dEYXRhXT1cIm1vLlNlcmlhbGl6ZWRXb3JrZmxvd0RhdGFcIlxuICAgICAgICBbc2VyaWFsaXplZFJlbGF0ZWRNb109XCJtby5TZXJpYWxpemVkUmVsYXRlZE1vXCJcbiAgICAgICAgW2RldGFpbHNUZXh0XT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dFwiXG4gICAgICAgIFtkZXRhaWxzQ29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFt3b3JrZmxvd1N0YXRlXT1cIm1vLiRXb3JrZmxvd1N0YXRlXCJcbiAgICAgICAgW2xldmVsXT1cIm1vLiRMZXZlbFwiXG4gICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJtby4kUGFyZW50Py4kRXhwYW5kZWRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50IC0gZGV0YWlsc0NvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICBbZXh0cmFSZWxhdGlvbl09XCJleHRyYVJlbGF0aW9uXCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW3NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbc2Vjb25kYXJ5Q29sdW1uc109XCJzZWNvbmRhcnlDb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtyb3dJbmRpY2F0b3JDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgICAgIChldmVudHMpPVwib25PbGdvRXZlbnRzKCRldmVudClcIlxuICAgID5cbiAgICA8L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjcm93VGVtcGxhdGVcbiAgICBsZXQtbW9cbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICBsZXQtbW9EYXRhTGlzdENvdW50PVwibW9EYXRhTGlzdENvdW50XCJcbiAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxuICAgIGxldC1jYXJ0YWJsZVRlbXBsYXRlPVwiY2FydGFibGVUZW1wbGF0ZVwiXG4gICAgbGV0LXNlY29uZGFyeUNvbHVtbnM9XCJzZWNvbmRhcnlDb2x1bW5zXCJcbiAgICBsZXQtcm93SW5kaWNhdG9yQ29sb3I9XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4+XG4gICAgPGJzdS1iYXJzYS10YWJsZS1yb3dcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtkZXRhaWxzQ29sdW1uc109XCJkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtjb2x1bW5Db21wb25lbnRzXT1cInZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzIHx8IG51bGxcIlxuICAgICAgICBbY2FydGFibGVUZW1wbGF0ZV09XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICAgICAgW2NhcnRhYmxlTW9dPVwibW8uUmVsYXRlZE1vXCJcbiAgICAgICAgW2NhcnRhYmxlV29ya2Zsb3dEYXRhXT1cIm1vLlNlcmlhbGl6ZWRXb3JrZmxvd0RhdGFcIlxuICAgICAgICBbc2VyaWFsaXplZFJlbGF0ZWRNb109XCJtby5TZXJpYWxpemVkUmVsYXRlZE1vXCJcbiAgICAgICAgW2RldGFpbHNUZXh0XT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dFwiXG4gICAgICAgIFtkZXRhaWxzQ29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFt3b3JrZmxvd1N0YXRlXT1cIm1vLiRXb3JrZmxvd1N0YXRlXCJcbiAgICAgICAgW2xldmVsXT1cIm1vLiRMZXZlbFwiXG4gICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJtby4kUGFyZW50Py4kRXhwYW5kZWRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50IC0gZGV0YWlsc0NvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICBbZXh0cmFSZWxhdGlvbl09XCJleHRyYVJlbGF0aW9uXCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW3NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbc2Vjb25kYXJ5Q29sdW1uc109XCJzZWNvbmRhcnlDb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtyb3dJbmRpY2F0b3JDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgICAgIChyZXNldFdvcmtmbG93U3RhdGUpPVwicmVzZXRXb3JrZmxvd1N0YXRlLmVtaXQobW8pXCJcbiAgICAgICAgKGV4cGFuZENsaWNrKT1cIm9uRXhwYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChyb3dDaGVjayk9XCJvblJvd0NoZWNrKCRldmVudClcIlxuICAgICAgICAod29ya2Zsb3dTaGFyZUJ1dHRvbnMpPVwib25Xb3JrZmxvd1NoYXJlQnV0dG9ucygkZXZlbnQpXCJcbiAgICAgICAgKGRlc2VsZWN0QWxsKT1cIm9uRGVzZWxlY3RBbGwoKVwiXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAodWx2Q29tbWFuZCk9XCJvblVsdkNvbW1hbmQoJGV2ZW50KVwiXG4gICAgICAgIChzZWxlY3ROZXh0SW5saW5lUmVjb3JkKT1cIm9uU2VsZWN0TmV4dElubGluZVJlY29yZCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxTYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSk9XCJvbkVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNhcnRhYmxlRm9ybUNsb3NlZCk9XCJvbkNhcnRhYmxlRm9ybUNsb3NlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9ic3UtYmFyc2EtdGFibGUtcm93PlxuPC9uZy10ZW1wbGF0ZT5cbjwhLS1yZW5kZXJDb2x1bW4tLT5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhPlxuICAgIDx0ciAqbmdJZj1cIiFpbmxpbmVFZGl0TW9kZSB8fCAhbmV3SW5saW5lRWRpdE1vXCI+XG4gICAgICAgIDx0ZCBjb2xzcGFuPVwiMTAwJVwiIHN0eWxlPVwicGFkZGluZzogMTBweFwiPnt7ICdOb0RhdGEnIHwgYmJiVHJhbnNsYXRlIH19PC90ZD5cbiAgICA8L3RyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGFibGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10YWJsZS12aWV3L3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdGFibGUtdmlldy91aS10YWJsZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdILHVCQUF1QixFQUV2QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLGlDQUFpQyxFQUVwQyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVM5QixNQUFNLE9BQU8sb0JBQ1QsU0FBUSx1QkFBMkM7SUFQdkQ7O1FBZ0JvQyxXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUVqRSxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUl4QyxxQkFBZ0IsR0FBbUUsRUFBRSxDQUFDO1FBRXRGLG9CQUFlLEdBQUcsb0JBQW9CLENBQUMsY0FBYyxDQUFDO0tBMkh6RDtJQTFIRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDO1FBQ3hELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQjtZQUM1QyxDQUFDLENBQUMsb0JBQW9CLENBQUMsV0FBVztZQUNsQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcs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LEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7O2lIQTlJUSxvQkFBb0I7cUdBQXBCLG9CQUFvQix5VkM1QmpDLDBnVkErT0E7MkZEbk5hLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs4QkFNdEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUUwQixNQUFNO3NCQUFyQyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFDRyxTQUFTO3NCQUF6QyxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBFanJheU9sZ28sXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudCxcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxuICAgIFRhYmxlSGVhZGVyV2lkdGhNb2RlLFxuICAgIGNhbGN1bGF0ZVdpZHRoT2ZMaXN0Q29sdW1uLFxuICAgIHNldENvbHVtbldpZHRoQnlNYXhNb0NvbnRlbnRXaWR0aCxcbiAgICBDb2x1bW5SZXNpemVkQXJnc1xufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBVaVRhYmxlVmlld1NldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC12aWV3JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktdGFibGUtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXRhYmxlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaVRhYmxlVmlld0NvbXBvbmVudFxuICAgIGV4dGVuZHMgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQ8VWlUYWJsZVZpZXdTZXR0aW5nPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXNcbntcbiAgICBASW5wdXQoKSBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1pbldpZHRoO1xuICAgIEBJbnB1dCgpIG1pbkhlaWdodDtcbiAgICBASW5wdXQoKSByb3dSZXNpemVyO1xuICAgIEBJbnB1dCgpIGVuYWJsZVJlc2l6aW5nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBoZWlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWF4LWhlaWdodCcpIG1heEhlaWdodDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBfd2lkdGggPSAnMTAwJSc7XG4gICAgZGV0YWlsc0NvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXSA9IFtdO1xuICAgIGRldGFpbHNDb21wb25lbnQ6IEVqcmF5T2xnbztcbiAgICBzaG93RGV0YWlsc0luUm93OiBib29sZWFuO1xuICAgIGhhc1Jvd09sZ286IGJvb2xlYW47XG4gICAgY29sdW1uQ29tcG9uZW50czogeyBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47IGNvbXBvbmVudDogTWV0YW9iamVjdERhdGFNb2RlbCB9W10gPSBbXTtcbiAgICByb3dJbmRpY2F0b3I6IGJvb2xlYW47XG4gICAgdGFibGVIZWFkZXJNb2RlID0gVGFibGVIZWFkZXJXaWR0aE1vZGUuRml0VG9Db250YWluZXI7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IGRldGFpbHNTZXR0aW5nID0gdGhpcy52aWV3U2V0dGluZz8uRGV0YWlsc1NldHRpbmc7XG4gICAgICAgIHRoaXMudGFibGVIZWFkZXJNb2RlID0gdGhpcy5ncmlkRnJlZUNvbHVtblNpemluZ1xuICAgICAgICAgICAgPyBUYWJsZUhlYWRlcldpZHRoTW9kZS5GaXRUb0NvbHVtblxuICAgICAgICAgICAgOiBUYWJsZUhlYWRlcldpZHRoTW9kZS5GaXRUb0NvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5oYXNSb3dPbGdvID0gdGhpcy52aWV3U2V0dGluZz8uUm93T2xnbz8uU2VsZWN0b3I7XG4gICAgICAgIHRoaXMubWF4SGVpZ2h0ID0gdGhpcy52aWV3U2V0dGluZz8uQm9keUhlaWdodDtcbiAgICAgICAgaWYgKGRldGFpbHNTZXR0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLmRldGFpbHNDb21wb25lbnQgPSBkZXRhaWxzU2V0dGluZy5Db21wb25lbnQ7XG4gICAgICAgICAgICBkZXRhaWxzU2V0dGluZy5Db2x1bW5zLnNwbGl0KCcsJykuZm9yRWFjaCgoY29sdW1uTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5fZmluZENvbHVtbkJ5RGJOYW1lLnRyYW5zZm9ybSh0aGlzLmFsbENvbHVtbnMsIGNvbHVtbk5hbWUsIHRoaXMuc2Vjb25kYXJ5Q29sdW1ucyk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRldGFpbHNDb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXRIYXNTdW1tZXJ5KHRoaXMuY2FydGFibGVDaGlsZHNNbyk7XG4gICAgICAgIHRoaXMuX3NldEhlaWdodCh0aGlzLnBhcmVudEhlaWdodCk7XG4gICAgICAgIHRoaXMuX3NldFJvd0luZGljYXRvcih0aGlzLmNvbHVtbnMpO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICB0aGlzLl9jYWxjdWxhdGVDb2x1bW5zV2lkdGgodGhpcy5tb0RhdGFMaXN0KTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGNvbHVtbnMsIGNhcnRhYmxlVGVtcGxhdGVzLCBwYXJlbnRIZWlnaHQsIG1vRGF0YUxpc3QgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChjb2x1bW5zICYmICFjb2x1bW5zLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGVDb2x1bW5zV2lkdGgodGhpcy5tb0RhdGFMaXN0LCBjb2x1bW5zLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9zZXRSb3dJbmRpY2F0b3IodGhpcy5jb2x1bW5zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FydGFibGVUZW1wbGF0ZXMgJiYgIWNhcnRhYmxlVGVtcGxhdGVzLmZpcnN0Q2hhbmdlICYmICF0aGlzLmhhc1N1bW1hcnkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEhhc1N1bW1lcnkoY2FydGFibGVUZW1wbGF0ZXMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmVudEhlaWdodCAmJiAhcGFyZW50SGVpZ2h0LmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRIZWlnaHQocGFyZW50SGVpZ2h0LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vRGF0YUxpc3QgJiYgbW9EYXRhTGlzdC5jdXJyZW50VmFsdWUubGVuZ3RoID4gMCAmJiAhbW9EYXRhTGlzdC5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgLy8gdGhpcy5fY2FsY3VsYXRlQ29sdW1uc1dpZHRoKG1vRGF0YUxpc3QuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICB9XG4gICAgb25Db2x1bW5SZXNpemVkKGU6IEFycmF5PENvbHVtblJlc2l6ZWRBcmdzPik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzaXplZEJ5VXNlciA9IHRydWU7XG4gICAgICAgIHRoaXMudGFibGVIZWFkZXJNb2RlID0gVGFibGVIZWFkZXJXaWR0aE1vZGUuRnJlZUNvbHVtblNpemU7XG4gICAgICAgIHRoaXMuY29sdW1uUmVzaXplZC5lbWl0KHsgY29sdW1uczogdGhpcy5jb2x1bW5zLCByZXNpemVkOiBlIH0pO1xuICAgIH1cbiAgICBvbkZpdFRvQ29udGFpbmVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhYmxlSGVhZGVyTW9kZSA9IFRhYmxlSGVhZGVyV2lkdGhNb2RlLkZpdFRvQ29udGFpbmVyO1xuICAgICAgICB0aGlzLl9jYWxjdWxhdGVDb2x1bW5zV2lkdGgodGhpcy5tb0RhdGFMaXN0KTtcbiAgICAgICAgdGhpcy5fZmlyZVJlc2l6ZUNoYW5nZWQoKTtcbiAgICB9XG4gICAgb25GaXRUb0NvbHVtbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZUhlYWRlck1vZGUgPSBUYWJsZUhlYWRlcldpZHRoTW9kZS5GaXRUb0NvbHVtbjtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHRoaXMubW9EYXRhTGlzdCk7XG4gICAgICAgIHRoaXMuX2ZpcmVSZXNpemVDaGFuZ2VkKCk7XG4gICAgfVxuICAgIG9uRml0VG9Db250ZW50KGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbik6IHZvaWQge1xuICAgICAgICBzZXRDb2x1bW5XaWR0aEJ5TWF4TW9Db250ZW50V2lkdGgodGhpcy5tb0RhdGFMaXN0LCBjb2x1bW4pO1xuICAgICAgICB0aGlzLl9maXJlUmVzaXplQ2hhbmdlZCgpO1xuICAgIH1cbiAgICBnZXQgc2hvd1ZpZXdCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhblZpZXcgJiYgIXRoaXMuaW5saW5lRWRpdE1vZGUgJiYgIXRoaXMuaGlkZU9wZW5JY29uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZmlyZVJlc2l6ZUNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sdW1uUmVzaXplZC5lbWl0KHtcbiAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucyxcbiAgICAgICAgICAgIHJlc2l6ZWQ6IHRoaXMuY29sdW1ucy5tYXAoKGMpID0+ICh7IG5hbWU6IGMuTmFtZSwgd2lkdGg6IGMuV2lkdGggfSkpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NhbGN1bGF0ZUNvbHVtbnNXaWR0aChtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10sIGNvbHVtbnM/OiBSZXBvcnRWaWV3Q29sdW1uW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxEb20gPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IGNhbGNSZXN1bHQgPSBjYWxjdWxhdGVXaWR0aE9mTGlzdENvbHVtbihcbiAgICAgICAgICAgIGVsRG9tLFxuICAgICAgICAgICAgdGhpcy5zaG93Vmlld0J1dHRvbixcbiAgICAgICAgICAgIHRoaXMuY29udGV4dE1lbnVJdGVtcyxcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnUsXG4gICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyTW9kZSxcbiAgICAgICAgICAgIG1vRGF0YUxpc3QsXG4gICAgICAgICAgICBjb2x1bW5zIHx8IHRoaXMuY29sdW1uc1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbnRleHRNZW51V2lkdGggPSBjYWxjUmVzdWx0LmNvbnRleHRNZW51V2lkdGg7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zZXRSb3dJbmRpY2F0b3IoY29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdKTogdm9pZCB7XG4gICAgICAgIGlmICghY29sdW1ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yb3dJbmRpY2F0b3IgPSBOdW1iZXIoY29sdW1uc1swXS5NZXRhRmllbGRUeXBlSWQpID09PSA0MTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3NldEhlaWdodChwYXJlbnRIZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbkRpYWxvZykge1xuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSBwYXJlbnRIZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRIYXNTdW1tZXJ5KGNhcnRhYmxlVGVtcGxhdGVzKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbHVtbnM/Lmxlbmd0aCA+IDAgfHxcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbXBvbmVudD8uU2VsZWN0b3IgfHxcbiAgICAgICAgICAgIChjYXJ0YWJsZVRlbXBsYXRlcyAmJiBPYmplY3Qua2V5cyhjYXJ0YWJsZVRlbXBsYXRlcykubGVuZ3RoID4gMClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dEZXRhaWxzSW5Sb3cgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5oYXNEZXRhaWxzSW5Sb3cuZW1pdCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGFzRGV0YWlsc0luUm93LmVtaXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY29udGFpbmVyV2lkdGhDaGFuZ2VkKHZhbDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWwgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX3dpZHRoID0gJzEwMCUnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fd2lkdGggPSB2YWwgPyB2YWwgKyAncHgnIDogJzEwMCUnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB0aGlzLl93aWR0aCk7XG4gICAgfVxufVxuIiwiPHRhYmxlXG4gICAgKm5nSWY9XCJtb0RhdGFMaXN0ICYmIG1vRGF0YUxpc3QubGVuZ3RoID4gMDsgZWxzZSBub0RhdGFcIlxuICAgIGZkLXRhYmxlXG4gICAgW3BvcEluXT1cInBvcGluXCJcbiAgICBbY2xhc3MuZml4ZWRdPVwiIWNvbnRleHRWaWV3Py5HcmlkX0hpZGVIZWFkZXIgJiYgKCFwb3BpbiB8fCBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA9PT0gMClcIlxuICAgIFtub0JvcmRlclhdPVwidmlld1NldHRpbmc/Lk5vVmVydGljYWxCb3JkZXJzID09PSB0cnVlIHx8IChwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDApXCJcbiAgICBbbm9Cb3JkZXJZXT1cInZpZXdTZXR0aW5nPy5Ob0hvcml6dG9uYWxCb3JkZXJzID09PSB0cnVlIHx8IChwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDApXCJcbj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiY29sdW1ucyB8IG1lcmdlRmllbGRzVG9Db2x1bW5zOiB2aWV3U2V0dGluZz8uTWVyZ2VGaWVsZHNUb0NvbHVtbnM/Lk1vRGF0YUxpc3QgYXMgbWVyZ2VGaWVsZHNUb0NvbHVtbnNcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVyZ2VGaWVsZHNUb0NvbHVtbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm9keVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVyZ2VGaWVsZHNUb0NvbHVtbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtZXJnZUZpZWxkc1RvQ29sdW1ucyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3RhYmxlPlxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZSBsZXQtY29sdW1ucz5cbiAgICA8YnN1LWJhcnNhLXRhYmxlLWhlYWRlclxuICAgICAgICBbdGFibGVXaWR0aF09XCJlbFdpZHRoXCJcbiAgICAgICAgW3Nob3dEZXRhaWxzSW5Sb3ddPVwic2hvd0RldGFpbHNJblJvd1wiXG4gICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcbiAgICAgICAgW3Jlc2l6ZWRCeVVzZXJdPVwicmVzaXplZEJ5VXNlclwiXG4gICAgICAgIFthbGxDaGVja2VkXT1cImFsbENoZWNrZWRcIlxuICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgIFtkaXNhYmxlUmVzcG9uc2l2ZV09XCJkaXNhYmxlUmVzcG9uc2l2ZVwiXG4gICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBmaWx0ZXJDb2x1bW5zQnlEZXRhaWxzOiBkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtmaXRXaWR0aF09XCJmaXRXaWR0aFwiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFtjb250ZXh0TWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICBbY29udGV4dE1lbnVXaWR0aF09XCJjb250ZXh0TWVudVdpZHRoXCJcbiAgICAgICAgW3Nob3dWaWV3QnV0dG9uXT1cInNob3dWaWV3QnV0dG9uXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFt2aWV3U2V0dGluZ109XCJ2aWV3U2V0dGluZ1wiXG4gICAgICAgIFtoaWRlSGVhZGVyXT1cImNvbnRleHRWaWV3LkdyaWRfSGlkZUhlYWRlclwiXG4gICAgICAgIFtyb3dJbmRpY2F0b3JdPVwicm93SW5kaWNhdG9yXCJcbiAgICAgICAgKGNvbHVtblJlc2l6ZSk9XCJvbkNvbHVtblJlc2l6ZWQoJGV2ZW50KVwiXG4gICAgICAgIChmaXRUb0NvbnRlbnQpPVwib25GaXRUb0NvbnRlbnQoJGV2ZW50KVwiXG4gICAgICAgIChmaXRUb0NvbnRhaW5lcik9XCJvbkZpdFRvQ29udGFpbmVyKClcIlxuICAgICAgICAoZml0VG9Db2x1bW4pPVwib25GaXRUb0NvbHVtbigpXCJcbiAgICAgICAgKGFsbENoZWNrYm94KT1cIm9uQWxsQ2hlY2tib3goJGV2ZW50KVwiXG4gICAgICAgIChzb3J0QXNjZW5kaW5nKT1cIm9uU29ydEFzY2VuZGluZygkZXZlbnQpXCJcbiAgICAgICAgKHNvcnREZXNjZW5kaW5nKT1cIm9uU29ydERlc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAgIChmaWx0ZXIpPVwib25GaWx0ZXIoJGV2ZW50KVwiXG4gICAgPjwvYnN1LWJhcnNhLXRhYmxlLWhlYWRlcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZSBsZXQtY29sdW1ucz5cbiAgICA8dGJvZHlcbiAgICAgICAgZmQtdGFibGUtYm9keVxuICAgICAgICBbbm9Cb3JkZXJYXT1cIihwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDApIHx8IHZpZXdTZXR0aW5nPy5Ob1ZlcnRpY2FsQm9yZGVycyAhPT0gZmFsc2VcIlxuICAgICAgICBbbm9Cb3JkZXJZXT1cInBvcGluICYmIHNlY29uZGFyeUNvbHVtbnMubGVuZ3RoID4gMFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtbyBvZiBtb0RhdGFMaXN0IHwgbXVsdGlwbGVHcm91cEJ5OiBncm91cGJ5OyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogX3RyYWNrQnlSb3dcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc1Jvd09sZ28gPyByb3dPbGdvVGVtcGxhdGUgOiByb3dUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dJbmRpY2F0b3JDb2xvcjogIWNvbHVtbnMubGVuZ3RoID8gJycgOiAoY29sdW1uc1swXS5DYXB0aW9uIHwgcnZhbDogbW86Y29sdW1ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogY29sdW1ucyB8IGNvbHVtbkN1c3RvbUNvbXBvbmVudDogdmlld1NldHRpbmc/LkNvbHVtbkNvbXBvbmVudHM/Lk1vRGF0YUxpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sdW1uczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sdW1ucyB8IGNvbHVtbkN1c3RvbUNvbXBvbmVudDogdmlld1NldHRpbmc/LkNvbHVtbkNvbXBvbmVudHM/Lk1vRGF0YUxpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdDogbW9EYXRhTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0Q291bnQ6IG1vRGF0YUxpc3QubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcnRhYmxlVGVtcGxhdGU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcnRhYmxlVGVtcGxhdGVzW21vLlJlbGF0ZWRNbz8uJFR5cGVEZWZJZCArICdAJyArIG1vLkNhcnRhYmxlU2V0dGluZ3M/LklkXVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGUgbGV0LWNvbHVtbnM+XG4gICAgPHRmb290IGZkLXRhYmxlLWZvb3RlciAqbmdJZj1cImhhc1N1bW1hcnlcIj5cbiAgICAgICAgPHRyIGZkLXRhYmxlLXJvdyBjbGFzcz1cInJvdy1zdW1tYXJ5XCI+XG4gICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCAqbmdJZj1cImlzQ2hlY2tMaXN0XCIgY29sdW1uUmVzaXplcj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiY29sLXRvdGFsLXRleHRcIj57eyAnVG90YWwnIHwgYmJiVHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgKm5nSWY9XCIhaXNDaGVja0xpc3RcIiBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiY29sLXRvdGFsLXRleHRcIj57eyAnVG90YWwnIHwgYmJiVHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uSGFzU3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIHN0eWxlPVwiZGlyZWN0aW9uOiBsdHI7IGRpc3BsYXk6IGJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBtb0RhdGFMaXN0IHwgdG90YWxTdW1tYXJ5OiBjb2x1bW4uTmFtZSB8IG51bWJlciB9fTwvc3Ryb25nXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcyAmJiBjb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCBzdHlsZT1cIndpZHRoOiAxMDBweFwiPjwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiY2FuVmlld1wiPjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgPC90Zm9vdD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjcm93T2xnb1RlbXBsYXRlXG4gICAgbGV0LW1vXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXG4gICAgbGV0LW1vRGF0YUxpc3RDb3VudD1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICBsZXQtY2FydGFibGVUZW1wbGF0ZT1cImNhcnRhYmxlVGVtcGxhdGVcIlxuICAgIGxldC1zZWNvbmRhcnlDb2x1bW5zPVwic2Vjb25kYXJ5Q29sdW1uc1wiXG4gICAgbGV0LXJvd0luZGljYXRvckNvbG9yPVwicm93SW5kaWNhdG9yQ29sb3JcIlxuPlxuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJ2aWV3U2V0dGluZy5Sb3dPbGdvXCJcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtkZXRhaWxzQ29sdW1uc109XCJkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtjb2x1bW5Db21wb25lbnRzXT1cInZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzIHx8IG51bGxcIlxuICAgICAgICBbY2FydGFibGVUZW1wbGF0ZV09XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICAgICAgW2NhcnRhYmxlTW9dPVwibW8uUmVsYXRlZE1vXCJcbiAgICAgICAgW2NhcnRhYmxlV29ya2Zsb3dEYXRhXT1cIm1vLlNlcmlhbGl6ZWRXb3JrZmxvd0RhdGFcIlxuICAgICAgICBbc2VyaWFsaXplZFJlbGF0ZWRNb109XCJtby5TZXJpYWxpemVkUmVsYXRlZE1vXCJcbiAgICAgICAgW2RldGFpbHNUZXh0XT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dFwiXG4gICAgICAgIFtkZXRhaWxzQ29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFt3b3JrZmxvd1N0YXRlXT1cIm1vLiRXb3JrZmxvd1N0YXRlXCJcbiAgICAgICAgW2xldmVsXT1cIm1vLiRMZXZlbFwiXG4gICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJtby4kUGFyZW50Py4kRXhwYW5kZWRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50IC0gZGV0YWlsc0NvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICBbZXh0cmFSZWxhdGlvbl09XCJleHRyYVJlbGF0aW9uXCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW3NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbc2Vjb25kYXJ5Q29sdW1uc109XCJzZWNvbmRhcnlDb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtyb3dJbmRpY2F0b3JDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgICAgIChldmVudHMpPVwib25PbGdvRXZlbnRzKCRldmVudClcIlxuICAgID5cbiAgICA8L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjcm93VGVtcGxhdGVcbiAgICBsZXQtbW9cbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICBsZXQtbW9EYXRhTGlzdENvdW50PVwibW9EYXRhTGlzdENvdW50XCJcbiAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxuICAgIGxldC1jYXJ0YWJsZVRlbXBsYXRlPVwiY2FydGFibGVUZW1wbGF0ZVwiXG4gICAgbGV0LXNlY29uZGFyeUNvbHVtbnM9XCJzZWNvbmRhcnlDb2x1bW5zXCJcbiAgICBsZXQtcm93SW5kaWNhdG9yQ29sb3I9XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4+XG4gICAgPGJzdS1iYXJzYS10YWJsZS1yb3dcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtkZXRhaWxzQ29sdW1uc109XCJkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtjb2x1bW5Db21wb25lbnRzXT1cInZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzIHx8IG51bGxcIlxuICAgICAgICBbY2FydGFibGVUZW1wbGF0ZV09XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICAgICAgW2NhcnRhYmxlTW9dPVwibW8uUmVsYXRlZE1vXCJcbiAgICAgICAgW2NhcnRhYmxlV29ya2Zsb3dEYXRhXT1cIm1vLlNlcmlhbGl6ZWRXb3JrZmxvd0RhdGFcIlxuICAgICAgICBbc2VyaWFsaXplZFJlbGF0ZWRNb109XCJtby5TZXJpYWxpemVkUmVsYXRlZE1vXCJcbiAgICAgICAgW2RldGFpbHNUZXh0XT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dFwiXG4gICAgICAgIFtkZXRhaWxzQ29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFt3b3JrZmxvd1N0YXRlXT1cIm1vLiRXb3JrZmxvd1N0YXRlXCJcbiAgICAgICAgW2xldmVsXT1cIm1vLiRMZXZlbFwiXG4gICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJtby4kUGFyZW50Py4kRXhwYW5kZWRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50IC0gZGV0YWlsc0NvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICBbZXh0cmFSZWxhdGlvbl09XCJleHRyYVJlbGF0aW9uXCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW3NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbc2Vjb25kYXJ5Q29sdW1uc109XCJzZWNvbmRhcnlDb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtyb3dJbmRpY2F0b3JDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgICAgIChyZXNldFdvcmtmbG93U3RhdGUpPVwicmVzZXRXb3JrZmxvd1N0YXRlLmVtaXQobW8pXCJcbiAgICAgICAgKGV4cGFuZENsaWNrKT1cIm9uRXhwYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChyb3dDaGVjayk9XCJvblJvd0NoZWNrKCRldmVudClcIlxuICAgICAgICAod29ya2Zsb3dTaGFyZUJ1dHRvbnMpPVwib25Xb3JrZmxvd1NoYXJlQnV0dG9ucygkZXZlbnQpXCJcbiAgICAgICAgKGRlc2VsZWN0QWxsKT1cIm9uRGVzZWxlY3RBbGwoKVwiXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAodWx2Q29tbWFuZCk9XCJvblVsdkNvbW1hbmQoJGV2ZW50KVwiXG4gICAgICAgIChzZWxlY3ROZXh0SW5saW5lUmVjb3JkKT1cIm9uU2VsZWN0TmV4dElubGluZVJlY29yZCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxTYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSk9XCJvbkVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNhcnRhYmxlRm9ybUNsb3NlZCk9XCJvbkNhcnRhYmxlRm9ybUNsb3NlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9ic3UtYmFyc2EtdGFibGUtcm93PlxuPC9uZy10ZW1wbGF0ZT5cbjwhLS1yZW5kZXJDb2x1bW4tLT5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhPlxuICAgIDxic3Utbm8tZGF0YT4gPC9ic3Utbm8tZGF0YT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -4,11 +4,11 @@ import { ReportTreeBaseComponent } from '../report-tree-base';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
import * as i2 from "@fundamental-ngx/core/bar";
|
|
7
|
-
import * as i3 from "@fundamental-ngx/core/
|
|
8
|
-
import * as i4 from "@fundamental-ngx/core/
|
|
9
|
-
import * as i5 from "@fundamental-ngx/core/
|
|
10
|
-
import * as i6 from "@fundamental-ngx/core/
|
|
11
|
-
import * as i7 from "@fundamental-ngx/
|
|
7
|
+
import * as i3 from "@fundamental-ngx/core/button";
|
|
8
|
+
import * as i4 from "@fundamental-ngx/core/dialog";
|
|
9
|
+
import * as i5 from "@fundamental-ngx/core/title";
|
|
10
|
+
import * as i6 from "@fundamental-ngx/core/utils";
|
|
11
|
+
import * as i7 from "@fundamental-ngx/core/toolbar";
|
|
12
12
|
import * as i8 from "../ulv-toolbar/ulv-toolbar.component";
|
|
13
13
|
import * as i9 from "../ui-tree-view/ui-tree-view.component";
|
|
14
14
|
import * as i10 from "barsa-novin-ray-core";
|
|
@@ -82,11 +82,11 @@ export class UiTreeComponent extends ReportTreeBaseComponent {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
UiTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiTreeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
-
UiTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiTreeComponent, selector: "bsu-ui-tree", inputs: { showOkCancelButtons: "showOkCancelButtons" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n renderTree;\n context: {\n $implicit: root$ | async,\n moDataList: flatMoDataList,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: visibleColumns$ | async,\n groupby: groupby$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: context.Setting.View?.ConditionalFormats,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n gridSetting: gridSetting$ | async,\n contentDensity: contentDensity$ | async,\n hasSelected: hasSelected$ | async,\n showOkCancelButtons: showOkCancelButtons,\n selectedNode: selectedNode$ | async,\n navigationArrow: navigationArrow$ | async,\n collapseIcon: collapseIcon$ | async,\n relationList: context.Setting.View.RelationList,\n rtl: rtl$ | async,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\n isHetro: context.Setting.ClassNames.DataClass === 'Ul.HetroTreeUlvDataCtrlr',\n selectedMo: selectedMo$ | async\n }\n \"\n></ng-container>\n\n<ng-template\n #renderTree\n let-root\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-toolbarButtons=\"toolbarButtons\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-access=\"access\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-hasSelected=\"hasSelected\"\n let-showOkCancelButtons=\"showOkCancelButtons\"\n let-selectedNode=\"selectedNode\"\n let-navigationArrow=\"navigationArrow\"\n let-collapseIcon=\"collapseIcon\"\n let-rtl=\"rtl\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-relationList=\"relationList\"\n let-isHetro=\"isHetro\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-selectedMo=\"selectedMo\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\n (columnClick)=\"onColumnSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <fdp-button fd-toolbar-item [buttonType]=\"'transparent'\" [glyph]=\"'collapse-all'\" (click)=\"onCollapseAll()\">\n </fdp-button>\n <fdp-button\n *ngIf=\"!showOkCancelButtons\"\n fd-toolbar-item\n [buttonType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n >\n </fdp-button>\n </bsu-ulv-toolbar>\n <bsu-tree-view\n [rtl]=\"rtl\"\n [relationList]=\"relationList\"\n [root]=\"root\"\n [selectedMo]=\"selectedMo\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [selectedNode]=\"selectedNode\"\n [access]=\"access\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contextMenuItems]=\"contextMenuItems\"\n [moDataList]=\"moDataList\"\n [groupby]=\"groupby\"\n [isHetro]=\"isHetro\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n (checkChange)=\"onCheckChange($event)\"\n (itemDrop)=\"onDrop($event)\"\n (itemDragMoved)=\"onDragMoved($event)\"\n (nodeUlvCommand)=\"onNodeUlvCommand($event)\"\n (nodeViewClick)=\"onNodeViewClick($event)\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onNodeSelect($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (createNew)=\"onCreateNew($event)\"\n >\n </bsu-tree-view>\n <ng-template let-dialog let-dialogConfig=\"dialogConfig\" #moveDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>{{ 'Move' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"move-to\" (keydown.enter)=\"onConfirmDialog(dialogSelectedNode)\">\n <bsu-tree-view\n [rtl]=\"rtl\"\n [root]=\"root\"\n [access]=\"access\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [hasDragDrop]=\"false\"\n [selectedNode]=\"dialogSelectedNode\"\n [moDataList]=\"flatMoDataList\"\n [groupby]=\"groupby\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onSelectNodeInMoveDialog($event)\"\n ></bsu-tree-view>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <ng-template fdTemplate=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'OK' | bbbTranslate\"\n (click)=\"onConfirmDialog(dialogSelectedNode)\"\n >\n </fd-button-bar>\n <fd-button-bar fd-initial-focus [label]=\"'Cancel' | bbbTranslate\" (click)=\"onDismissDialog()\">\n </fd-button-bar>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;box-sizing:border-box;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i3.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i3.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i3.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i3.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i3.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i5.TemplateDirective, selector: "[fdTemplate]", inputs: ["fdTemplate"] }, { kind: "directive", type: i5.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "directive", type: i6.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i7.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i8.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "hasSelected", "config", "hidden", "buttons"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i9.UiTreeViewComponent, selector: "bsu-tree-view", inputs: ["root", "selectedNode", "hasDragDrop", "isHetro", "relationList", "showOkCancelButtons", "collapseIcon"], outputs: ["checkChange", "nodeSelect", "createNew", "loadChildren", "nodeViewClick", "nodeUlvCommand", "itemDrop", "itemDragMoved"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.SeperatorFixPipe, name: "seperatorFix" }, { kind: "pipe", type: i10.ContextMenuPipe, name: "contextMenu" }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
85
|
+
UiTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiTreeComponent, selector: "bsu-ui-tree", inputs: { showOkCancelButtons: "showOkCancelButtons" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n renderTree;\n context: {\n $implicit: root$ | async,\n moDataList: flatMoDataList,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: visibleColumns$ | async,\n groupby: groupby$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: context.Setting.View?.ConditionalFormats,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n gridSetting: gridSetting$ | async,\n contentDensity: contentDensity$ | async,\n hasSelected: hasSelected$ | async,\n showOkCancelButtons: showOkCancelButtons,\n selectedNode: selectedNode$ | async,\n navigationArrow: navigationArrow$ | async,\n collapseIcon: collapseIcon$ | async,\n relationList: context.Setting.View.RelationList,\n rtl: rtl$ | async,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\n isHetro: context.Setting.ClassNames.DataClass === 'Ul.HetroTreeUlvDataCtrlr',\n selectedMo: selectedMo$ | async\n }\n \"\n></ng-container>\n\n<ng-template\n #renderTree\n let-root\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-toolbarButtons=\"toolbarButtons\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-access=\"access\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-hasSelected=\"hasSelected\"\n let-showOkCancelButtons=\"showOkCancelButtons\"\n let-selectedNode=\"selectedNode\"\n let-navigationArrow=\"navigationArrow\"\n let-collapseIcon=\"collapseIcon\"\n let-rtl=\"rtl\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-relationList=\"relationList\"\n let-isHetro=\"isHetro\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-selectedMo=\"selectedMo\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\n (columnClick)=\"onColumnSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'collapse-all'\"\n (click)=\"onCollapseAll()\"\n ></button>\n <button\n fd-button\n *ngIf=\"!showOkCancelButtons\"\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n ></button>\n </bsu-ulv-toolbar>\n <bsu-tree-view\n [rtl]=\"rtl\"\n [relationList]=\"relationList\"\n [root]=\"root\"\n [selectedMo]=\"selectedMo\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [selectedNode]=\"selectedNode\"\n [access]=\"access\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contextMenuItems]=\"contextMenuItems\"\n [moDataList]=\"moDataList\"\n [groupby]=\"groupby\"\n [isHetro]=\"isHetro\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n (checkChange)=\"onCheckChange($event)\"\n (itemDrop)=\"onDrop($event)\"\n (itemDragMoved)=\"onDragMoved($event)\"\n (nodeUlvCommand)=\"onNodeUlvCommand($event)\"\n (nodeViewClick)=\"onNodeViewClick($event)\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onNodeSelect($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (createNew)=\"onCreateNew($event)\"\n >\n </bsu-tree-view>\n <ng-template let-dialog let-dialogConfig=\"dialogConfig\" #moveDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>{{ 'Move' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"move-to\" (keydown.enter)=\"onConfirmDialog(dialogSelectedNode)\">\n <bsu-tree-view\n [rtl]=\"rtl\"\n [root]=\"root\"\n [access]=\"access\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [hasDragDrop]=\"false\"\n [selectedNode]=\"dialogSelectedNode\"\n [moDataList]=\"flatMoDataList\"\n [groupby]=\"groupby\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onSelectNodeInMoveDialog($event)\"\n ></bsu-tree-view>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <ng-template fdTemplate=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'OK' | bbbTranslate\"\n (click)=\"onConfirmDialog(dialogSelectedNode)\"\n >\n </fd-button-bar>\n <fd-button-bar fd-initial-focus [label]=\"'Cancel' | bbbTranslate\" (click)=\"onDismissDialog()\">\n </fd-button-bar>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;box-sizing:border-box;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i4.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i4.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdTemplate]", inputs: ["fdTemplate"] }, { kind: "directive", type: i6.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i8.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "hasSelected", "config", "hidden", "buttons", "moDataListCount"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i9.UiTreeViewComponent, selector: "bsu-tree-view", inputs: ["root", "selectedNode", "hasDragDrop", "isHetro", "relationList", "showOkCancelButtons", "collapseIcon"], outputs: ["checkChange", "nodeSelect", "createNew", "loadChildren", "nodeViewClick", "nodeUlvCommand", "itemDrop", "itemDragMoved"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.SeperatorFixPipe, name: "seperatorFix" }, { kind: "pipe", type: i10.ContextMenuPipe, name: "contextMenu" }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
86
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiTreeComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
88
|
-
args: [{ selector: 'bsu-ui-tree', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"\n renderTree;\n context: {\n $implicit: root$ | async,\n moDataList: flatMoDataList,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: visibleColumns$ | async,\n groupby: groupby$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: context.Setting.View?.ConditionalFormats,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n gridSetting: gridSetting$ | async,\n contentDensity: contentDensity$ | async,\n hasSelected: hasSelected$ | async,\n showOkCancelButtons: showOkCancelButtons,\n selectedNode: selectedNode$ | async,\n navigationArrow: navigationArrow$ | async,\n collapseIcon: collapseIcon$ | async,\n relationList: context.Setting.View.RelationList,\n rtl: rtl$ | async,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\n isHetro: context.Setting.ClassNames.DataClass === 'Ul.HetroTreeUlvDataCtrlr',\n selectedMo: selectedMo$ | async\n }\n \"\n></ng-container>\n\n<ng-template\n #renderTree\n let-root\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-toolbarButtons=\"toolbarButtons\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-access=\"access\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-hasSelected=\"hasSelected\"\n let-showOkCancelButtons=\"showOkCancelButtons\"\n let-selectedNode=\"selectedNode\"\n let-navigationArrow=\"navigationArrow\"\n let-collapseIcon=\"collapseIcon\"\n let-rtl=\"rtl\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-relationList=\"relationList\"\n let-isHetro=\"isHetro\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-selectedMo=\"selectedMo\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\n (columnClick)=\"onColumnSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <
|
|
88
|
+
args: [{ selector: 'bsu-ui-tree', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"\n renderTree;\n context: {\n $implicit: root$ | async,\n moDataList: flatMoDataList,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: visibleColumns$ | async,\n groupby: groupby$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: context.Setting.View?.ConditionalFormats,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n gridSetting: gridSetting$ | async,\n contentDensity: contentDensity$ | async,\n hasSelected: hasSelected$ | async,\n showOkCancelButtons: showOkCancelButtons,\n selectedNode: selectedNode$ | async,\n navigationArrow: navigationArrow$ | async,\n collapseIcon: collapseIcon$ | async,\n relationList: context.Setting.View.RelationList,\n rtl: rtl$ | async,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\n isHetro: context.Setting.ClassNames.DataClass === 'Ul.HetroTreeUlvDataCtrlr',\n selectedMo: selectedMo$ | async\n }\n \"\n></ng-container>\n\n<ng-template\n #renderTree\n let-root\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-toolbarButtons=\"toolbarButtons\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-access=\"access\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-hasSelected=\"hasSelected\"\n let-showOkCancelButtons=\"showOkCancelButtons\"\n let-selectedNode=\"selectedNode\"\n let-navigationArrow=\"navigationArrow\"\n let-collapseIcon=\"collapseIcon\"\n let-rtl=\"rtl\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-relationList=\"relationList\"\n let-isHetro=\"isHetro\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-selectedMo=\"selectedMo\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\n (columnClick)=\"onColumnSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'collapse-all'\"\n (click)=\"onCollapseAll()\"\n ></button>\n <button\n fd-button\n *ngIf=\"!showOkCancelButtons\"\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n ></button>\n </bsu-ulv-toolbar>\n <bsu-tree-view\n [rtl]=\"rtl\"\n [relationList]=\"relationList\"\n [root]=\"root\"\n [selectedMo]=\"selectedMo\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [selectedNode]=\"selectedNode\"\n [access]=\"access\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contextMenuItems]=\"contextMenuItems\"\n [moDataList]=\"moDataList\"\n [groupby]=\"groupby\"\n [isHetro]=\"isHetro\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n (checkChange)=\"onCheckChange($event)\"\n (itemDrop)=\"onDrop($event)\"\n (itemDragMoved)=\"onDragMoved($event)\"\n (nodeUlvCommand)=\"onNodeUlvCommand($event)\"\n (nodeViewClick)=\"onNodeViewClick($event)\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onNodeSelect($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (createNew)=\"onCreateNew($event)\"\n >\n </bsu-tree-view>\n <ng-template let-dialog let-dialogConfig=\"dialogConfig\" #moveDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>{{ 'Move' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"move-to\" (keydown.enter)=\"onConfirmDialog(dialogSelectedNode)\">\n <bsu-tree-view\n [rtl]=\"rtl\"\n [root]=\"root\"\n [access]=\"access\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [hasDragDrop]=\"false\"\n [selectedNode]=\"dialogSelectedNode\"\n [moDataList]=\"flatMoDataList\"\n [groupby]=\"groupby\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onSelectNodeInMoveDialog($event)\"\n ></bsu-tree-view>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <ng-template fdTemplate=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'OK' | bbbTranslate\"\n (click)=\"onConfirmDialog(dialogSelectedNode)\"\n >\n </fd-button-bar>\n <fd-button-bar fd-initial-focus [label]=\"'Cancel' | bbbTranslate\" (click)=\"onDismissDialog()\">\n </fd-button-bar>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;box-sizing:border-box;display:inline-block}\n"] }]
|
|
89
89
|
}], propDecorators: { showOkCancelButtons: [{
|
|
90
90
|
type: Input
|
|
91
91
|
}] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10cmVlL3VpLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdHJlZS91aS10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTyxlQUFnQixTQUFRLHVCQUF1QjtJQUl4RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSTtRQUM5QywrRUFBK0U7UUFDL0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDcEIsQ0FBQztJQUNOLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVB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ZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVHJlZU5vZGVPYmogfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXBvcnRUcmVlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC10cmVlLWJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS10cmVlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktdHJlZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktdHJlZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpVHJlZUNvbXBvbmVudCBleHRlbmRzIFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBzaG93T2tDYW5jZWxCdXR0b25zO1xuICAgIGNvbGxhcHNlSWNvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlSWNvbiQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnJ0bCQucGlwZShcbiAgICAgICAgICAgIC8vIG1hcCgoaXNSdGwpID0+IChpc1J0bCA/ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnIDogJ25hdmlnYXRpb24tcmlnaHQtYXJyb3cnKSlcbiAgICAgICAgICAgIG1hcCgoXykgPT4gJ2FkZCcpXG4gICAgICAgICk7XG4gICAgfVxuICAgIG9uRHJvcCgkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcm9wKCRldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnTW92ZWQoJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJhZ01vdmVkKCRldmVudCk7XG4gICAgfVxuXG4gICAgb25Db2xsYXBzZUFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZUFsbCgpO1xuICAgIH1cblxuICAgIG9uT3Blbk1vdmVUb0RpYWxvZyhzZWxlY3RlZE5vZGUsIGRldmljZSwgbW92ZURpYWxvZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5Nb3ZlVG9EaWFsb2coc2VsZWN0ZWROb2RlLCBkZXZpY2UsIG1vdmVEaWFsb2cpO1xuICAgIH1cblxuICAgIG9uQ29uZmlybURpYWxvZyhkaWFsb2dTZWxlY3RlZE5vZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb25maXJtRGlhbG9nKGRpYWxvZ1NlbGVjdGVkTm9kZSk7XG4gICAgfVxuXG4gICAgb25EaXNtaXNzRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc21pc3NEaWFsb2coKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdE5vZGVJbk1vdmVEaWFsb2coJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0Tm9kZUluTW92ZURpYWxvZygkZXZlbnQpO1xuICAgIH1cbiAgICBvbkNoZWNrQ2hhbmdlKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyOyBjaGVja2VkOiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkTm9kZTogVHJlZU5vZGVPYmogfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKGV2LmNoZWNrZWQpIHtcbiAgICAgICAgICAgIGV2Lm5vZGUuRGF0YS4kSXNDaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNlbGVjdGVkTm9kZSA9IGV2Lm5vZGU7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdyb3dzZWxlY3QnLCB0aGlzLmNvbnRleHQsIGV2LmluZGV4LCBldi5ub2RlLkRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXYubm9kZS5EYXRhLiRJc0NoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5tb0RhdGFMaXN0LmZpbmQoKGMpID0+IGMuJElzQ2hlY2tlZCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuc2VsTm9kZSA9IGV2Lm5vZGU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWROb2RlU291cmNlLm5leHQoZXYubm9kZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93ZGVzZWxlY3QnLCB0aGlzLmNvbnRleHQsIGV2LmluZGV4LCBldi5ub2RlLkRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGV4dC5zZWxOb2RlID0gc2VsZWN0ZWROb2RlO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChzZWxlY3RlZE5vZGUpO1xuICAgICAgICB0aGlzLl9yZWJpbmRSb290KCk7XG4gICAgfVxuICAgIG9uTm9kZVNlbGVjdChldjogeyBub2RlOiBUcmVlTm9kZU9iajsgaW5kZXg6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQuc2VsTm9kZSA9PT0gZXYubm9kZSkge1xuICAgICAgICAgICAgdGhpcy5fZGVzZWxlY3ROb2RlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3ROb2RlKGV2Lm5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlYmluZFJvb3QoKTtcbiAgICB9XG5cbiAgICBvbk5vZGVVbHZDb21tYW5kKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2Q29tbWFuZENsaWNrZWQoZXYubm9kZS5EYXRhLCBldi5pbmRleCk7XG4gICAgfVxuXG4gICAgb25Ob2RlVmlld0NsaWNrKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmFpc2VSb3dDbGljayhldi5pbmRleCwgZXYubm9kZSk7XG4gICAgfVxuXG4gICAgb25Mb2FkQ2hpbGRyZW4obm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkQ2hpbGRyZW4obm9kZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHJlbmRlclRyZWU7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogcm9vdCQgfCBhc3luYyxcbiAgICAgICAgICAgIG1vRGF0YUxpc3Q6IGZsYXRNb0RhdGFMaXN0LFxuICAgICAgICAgICAgaXNDaGVja0xpc3Q6IGNvbnRleHQuU2V0dGluZy5WaWV3Py5Jc0NoZWNrTGlzdCxcbiAgICAgICAgICAgIGNvbHVtbnM6IHZpc2libGVDb2x1bW5zJCB8IGFzeW5jLFxuICAgICAgICAgICAgZ3JvdXBieTogZ3JvdXBieSQgfCBhc3luYyxcbiAgICAgICAgICAgIHRvb2xiYXJCdXR0b25zOiAodG9vbGJhckJ1dHRvbnMkIHwgYXN5bmMpISEgfCBzZXBlcmF0b3JGaXgsXG4gICAgICAgICAgICBjb250ZXh0TWVudUl0ZW1zOiBtZW51SXRlbXMkIHwgYXN5bmMgfCBjb250ZXh0TWVudTogY29udGV4dC5TZXR0aW5nLlZpZXc/LklzQ2hlY2tMaXN0LFxuICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXRzOiBjb250ZXh0LlNldHRpbmcuVmlldz8uQ29uZGl0aW9uYWxGb3JtYXRzLFxuICAgICAgICAgICAgZGV2aWNlTmFtZTogZGV2aWNlTmFtZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUkIHwgYXN5bmMsXG4gICAgICAgICAgICBhY2Nlc3M6IGNvbnRleHQuU2V0dGluZy5FeHRyYT8uRGVmYXVsdENvbW1hbmRzQWNjZXNzLFxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlJCB8IGFzeW5jLFxuICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlJCB8IGFzeW5jLFxuICAgICAgICAgICAgYWxsb3dJbmxpbmVFZGl0OiBhbGxvd0lubGluZUVkaXQkIHwgYXN5bmMsXG4gICAgICAgICAgICBoaWRlVG9vbGJhcjogaGlkZVRvb2xiYXIkIHwgYXN5bmMsXG4gICAgICAgICAgICBncmlkU2V0dGluZzogZ3JpZFNldHRpbmckIHwgYXN5bmMsXG4gICAgICAgICAgICBjb250ZW50RGVuc2l0eTogY29udGVudERlbnNpdHkkIHwgYXN5bmMsXG4gICAgICAgICAgICBoYXNTZWxlY3RlZDogaGFzU2VsZWN0ZWQkIHwgYXN5bmMsXG4gICAgICAgICAgICBzaG93T2tDYW5jZWxCdXR0b25zOiBzaG93T2tDYW5jZWxCdXR0b25zLFxuICAgICAgICAgICAgc2VsZWN0ZWROb2RlOiBzZWxlY3RlZE5vZGUkIHwgYXN5bmMsXG4gICAgICAgICAgICBuYXZpZ2F0aW9uQXJyb3c6IG5hdmlnYXRpb25BcnJvdyQgfCBhc3luYyxcbiAgICAgICAgICAgIGNvbGxhcHNlSWNvbjogY29sbGFwc2VJY29uJCB8IGFzeW5jLFxuICAgICAgICAgICAgcmVsYXRpb25MaXN0OiBjb250ZXh0LlNldHRpbmcuVmlldy5SZWxhdGlvbkxpc3QsXG4gICAgICAgICAgICBydGw6IHJ0bCQgfCBhc3luYyxcbiAgICAgICAgICAgIGluRGlhbG9nOiBpbkRpYWxvZyQgfCBhc3luYyxcbiAgICAgICAgICAgIGlzTXVsdGlTZWxlY3Q6IGlzTXVsdGlTZWxlY3QkIHwgYXN5bmMsXG4gICAgICAgICAgICBkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTogdmlld1NldHRpbmc/LkRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51LFxuICAgICAgICAgICAgaXNIZXRybzogY29udGV4dC5TZXR0aW5nLkNsYXNzTmFtZXMuRGF0YUNsYXNzID09PSAnVWwuSGV0cm9UcmVlVWx2RGF0YUN0cmxyJyxcbiAgICAgICAgICAgIHNlbGVjdGVkTW86IHNlbGVjdGVkTW8kIHwgYXN5bmNcbiAgICAgICAgfVxuICAgIFwiXG4+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNyZW5kZXJUcmVlXG4gICAgbGV0LXJvb3RcbiAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxuICAgIGxldC1kZXZpY2VOYW1lPVwiZGV2aWNlTmFtZVwiXG4gICAgbGV0LWRldmljZVNpemU9XCJkZXZpY2VTaXplXCJcbiAgICBsZXQtdG9vbGJhckJ1dHRvbnM9XCJ0b29sYmFyQnV0dG9uc1wiXG4gICAgbGV0LXRpdGxlPVwidGl0bGVcIlxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBsZXQtYWxsb3dJbmxpbmVFZGl0PVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBsZXQtaGlkZVRvb2xiYXI9XCJoaWRlVG9vbGJhclwiXG4gICAgbGV0LWdyaWRTZXR0aW5nPVwiZ3JpZFNldHRpbmdcIlxuICAgIGxldC1jb250ZW50RGVuc2l0eT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICBsZXQtYWNjZXNzPVwiYWNjZXNzXCJcbiAgICBsZXQtY29udGV4dE1lbnVJdGVtcz1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgIGxldC1jb25kaXRpb25hbEZvcm1hdHM9XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgIGxldC1pc0NoZWNrTGlzdD1cImlzQ2hlY2tMaXN0XCJcbiAgICBsZXQtZ3JvdXBieT1cImdyb3VwYnlcIlxuICAgIGxldC1oYXNTZWxlY3RlZD1cImhhc1NlbGVjdGVkXCJcbiAgICBsZXQtc2hvd09rQ2FuY2VsQnV0dG9ucz1cInNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgIGxldC1zZWxlY3RlZE5vZGU9XCJzZWxlY3RlZE5vZGVcIlxuICAgIGxldC1uYXZpZ2F0aW9uQXJyb3c9XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgIGxldC1jb2xsYXBzZUljb249XCJjb2xsYXBzZUljb25cIlxuICAgIGxldC1ydGw9XCJydGxcIlxuICAgIGxldC1kaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICBsZXQtcmVsYXRpb25MaXN0PVwicmVsYXRpb25MaXN0XCJcbiAgICBsZXQtaXNIZXRybz1cImlzSGV0cm9cIlxuICAgIGxldC1pbkRpYWxvZz1cImluRGlhbG9nXCJcbiAgICBsZXQtaXNNdWx0aVNlbGVjdD1cImlzTXVsdGlTZWxlY3RcIlxuICAgIGxldC1zZWxlY3RlZE1vPVwic2VsZWN0ZWRNb1wiXG4+XG4gICAgPGJzdS11bHYtdG9vbGJhclxuICAgICAgICBbaGlkZVRvb2xiYXJdPVwiaGlkZVRvb2xiYXJcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFt0b29sYmFyQnV0dG9uc109XCJ0b29sYmFyQnV0dG9uc1wiXG4gICAgICAgIFtncmlkU2V0dGluZ109XCJncmlkU2V0dGluZ1wiXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICAgIFtoYXNTZWxlY3RlZF09XCJoYXNTZWxlY3RlZFwiXG4gICAgICAgIFtpbkRpYWxvZ109XCJpbkRpYWxvZ1wiXG4gICAgICAgIFtpc011bHRpU2VsZWN0XT1cImlzTXVsdGlTZWxlY3RcIlxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIChzb3J0Q2xpY2spPVwib25Tb3J0U2V0dGluZ3MoZGV2aWNlTmFtZSlcIlxuICAgICAgICAoZ3JvdXBieUNsaWNrKT1cIm9uR3JvdXBieVNldHRpbmdzKGRldmljZU5hbWUpXCJcbiAgICAgICAgKGNvbHVtbkNsaWNrKT1cIm9uQ29sdW1uU2V0dGluZ3MoZGV2aWNlTmFtZSlcIlxuICAgICAgICAoZWRpdE1vZGVDbGljayk9XCJvbkVkaXRNb2RlKClcIlxuICAgID5cbiAgICAgICAgPGZkcC1idXR0b24gZmQtdG9vbGJhci1pdGVtIFtidXR0b25UeXBlXT1cIid0cmFuc3BhcmVudCdcIiBbZ2x5cGhdPVwiJ2NvbGxhcHNlLWFsbCdcIiAoY2xpY2spPVwib25Db2xsYXBzZUFsbCgpXCI+XG4gICAgICAgIDwvZmRwLWJ1dHRvbj5cbiAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiIXNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbYnV0dG9uVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCInbW92ZSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uT3Blbk1vdmVUb0RpYWxvZyhzZWxlY3RlZE5vZGUsIGRldmljZU5hbWUsIG1vdmVEaWFsb2cpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkcC1idXR0b24+XG4gICAgPC9ic3UtdWx2LXRvb2xiYXI+XG4gICAgPGJzdS10cmVlLXZpZXdcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbcmVsYXRpb25MaXN0XT1cInJlbGF0aW9uTGlzdFwiXG4gICAgICAgIFtyb290XT1cInJvb3RcIlxuICAgICAgICBbc2VsZWN0ZWRNb109XCJzZWxlY3RlZE1vXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbY29sbGFwc2VJY29uXT1cImNvbGxhcHNlSWNvblwiXG4gICAgICAgIFtzZWxlY3RlZE5vZGVdPVwic2VsZWN0ZWROb2RlXCJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbkRpYWxvZ109XCJpbkRpYWxvZ1wiXG4gICAgICAgIFtpc011bHRpU2VsZWN0XT1cImlzTXVsdGlTZWxlY3RcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFtncm91cGJ5XT1cImdyb3VwYnlcIlxuICAgICAgICBbaXNIZXRyb109XCJpc0hldHJvXCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICBbc2hvd09rQ2FuY2VsQnV0dG9uc109XCJzaG93T2tDYW5jZWxCdXR0b25zXCJcbiAgICAgICAgKGNoZWNrQ2hhbmdlKT1cIm9uQ2hlY2tDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChpdGVtRHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAgIChpdGVtRHJhZ01vdmVkKT1cIm9uRHJhZ01vdmVkKCRldmVudClcIlxuICAgICAgICAobm9kZVVsdkNvbW1hbmQpPVwib25Ob2RlVWx2Q29tbWFuZCgkZXZlbnQpXCJcbiAgICAgICAgKG5vZGVWaWV3Q2xpY2spPVwib25Ob2RlVmlld0NsaWNrKCRldmVudClcIlxuICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uTG9hZENoaWxkcmVuKCRldmVudClcIlxuICAgICAgICAobm9kZVNlbGVjdCk9XCJvbk5vZGVTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgIChyb3dDaGVjayk9XCJvblJvd0NoZWNrKCRldmVudClcIlxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGFsbENoZWNrYm94KT1cIm9uQWxsQ2hlY2tib3goJGV2ZW50KVwiXG4gICAgICAgIChleHBhbmRDbGljayk9XCJvbkV4cGFuZENsaWNrKCRldmVudClcIlxuICAgICAgICAoZWRpdEZvcm1QYW5lbENhbmNlbCk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsU2F2ZSk9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKCRldmVudClcIlxuICAgICAgICAoY3JlYXRlTmV3KT1cIm9uQ3JlYXRlTmV3KCRldmVudClcIlxuICAgID5cbiAgICA8L2JzdS10cmVlLXZpZXc+XG4gICAgPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNtb3ZlRGlhbG9nPlxuICAgICAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cbiAgICAgICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxoMSBmZC10aXRsZT57eyAnTW92ZScgfCBiYmJUcmFuc2xhdGUgfX08L2gxPlxuICAgICAgICAgICAgICAgIDxidXR0b24gZmQtZGlhbG9nLWNsb3NlLWJ1dHRvbiAoY2xpY2spPVwiZGlhbG9nLmRpc21pc3MoJ0Nsb3NlIGJ1dHRvbicpXCI+PC9idXR0b24+XG4gICAgICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICAgICAgICAgIDxmZC1kaWFsb2ctYm9keT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW92ZS10b1wiIChrZXlkb3duLmVudGVyKT1cIm9uQ29uZmlybURpYWxvZyhkaWFsb2dTZWxlY3RlZE5vZGUpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxic3UtdHJlZS12aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm9vdF09XCJyb290XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NdPVwiYWNjZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsYXBzZUljb25dPVwiY29sbGFwc2VJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGFzRHJhZ0Ryb3BdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkTm9kZV09XCJkaWFsb2dTZWxlY3RlZE5vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21vRGF0YUxpc3RdPVwiZmxhdE1vRGF0YUxpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwYnldPVwiZ3JvdXBieVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGxvYWRDaGlsZHJlbik9XCJvbkxvYWRDaGlsZHJlbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChub2RlU2VsZWN0KT1cIm9uU2VsZWN0Tm9kZUluTW92ZURpYWxvZygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnN1LXRyZWUtdmlldz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XG5cbiAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ09LJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ29uZmlybURpYWxvZyhkaWFsb2dTZWxlY3RlZE5vZGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGZkLWluaXRpYWwtZm9jdXMgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCIgKGNsaWNrKT1cIm9uRGlzbWlzc0RpYWxvZygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10cmVlL3VpLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdHJlZS91aS10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTyxlQUFnQixTQUFRLHVCQUF1QjtJQUl4RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSTtRQUM5QywrRUFBK0U7UUFDL0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDcEIsQ0FBQztJQUNOLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVB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ZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVHJlZU5vZGVPYmogfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXBvcnRUcmVlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC10cmVlLWJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS10cmVlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktdHJlZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktdHJlZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpVHJlZUNvbXBvbmVudCBleHRlbmRzIFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBzaG93T2tDYW5jZWxCdXR0b25zO1xuICAgIGNvbGxhcHNlSWNvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlSWNvbiQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnJ0bCQucGlwZShcbiAgICAgICAgICAgIC8vIG1hcCgoaXNSdGwpID0+IChpc1J0bCA/ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnIDogJ25hdmlnYXRpb24tcmlnaHQtYXJyb3cnKSlcbiAgICAgICAgICAgIG1hcCgoXykgPT4gJ2FkZCcpXG4gICAgICAgICk7XG4gICAgfVxuICAgIG9uRHJvcCgkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcm9wKCRldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnTW92ZWQoJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJhZ01vdmVkKCRldmVudCk7XG4gICAgfVxuXG4gICAgb25Db2xsYXBzZUFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZUFsbCgpO1xuICAgIH1cblxuICAgIG9uT3Blbk1vdmVUb0RpYWxvZyhzZWxlY3RlZE5vZGUsIGRldmljZSwgbW92ZURpYWxvZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5Nb3ZlVG9EaWFsb2coc2VsZWN0ZWROb2RlLCBkZXZpY2UsIG1vdmVEaWFsb2cpO1xuICAgIH1cblxuICAgIG9uQ29uZmlybURpYWxvZyhkaWFsb2dTZWxlY3RlZE5vZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb25maXJtRGlhbG9nKGRpYWxvZ1NlbGVjdGVkTm9kZSk7XG4gICAgfVxuXG4gICAgb25EaXNtaXNzRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc21pc3NEaWFsb2coKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdE5vZGVJbk1vdmVEaWFsb2coJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0Tm9kZUluTW92ZURpYWxvZygkZXZlbnQpO1xuICAgIH1cbiAgICBvbkNoZWNrQ2hhbmdlKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyOyBjaGVja2VkOiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkTm9kZTogVHJlZU5vZGVPYmogfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKGV2LmNoZWNrZWQpIHtcbiAgICAgICAgICAgIGV2Lm5vZGUuRGF0YS4kSXNDaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNlbGVjdGVkTm9kZSA9IGV2Lm5vZGU7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdyb3dzZWxlY3QnLCB0aGlzLmNvbnRleHQsIGV2LmluZGV4LCBldi5ub2RlLkRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXYubm9kZS5EYXRhLiRJc0NoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5tb0RhdGFMaXN0LmZpbmQoKGMpID0+IGMuJElzQ2hlY2tlZCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuc2VsTm9kZSA9IGV2Lm5vZGU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWROb2RlU291cmNlLm5leHQoZXYubm9kZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93ZGVzZWxlY3QnLCB0aGlzLmNvbnRleHQsIGV2LmluZGV4LCBldi5ub2RlLkRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGV4dC5zZWxOb2RlID0gc2VsZWN0ZWROb2RlO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChzZWxlY3RlZE5vZGUpO1xuICAgICAgICB0aGlzLl9yZWJpbmRSb290KCk7XG4gICAgfVxuICAgIG9uTm9kZVNlbGVjdChldjogeyBub2RlOiBUcmVlTm9kZU9iajsgaW5kZXg6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQuc2VsTm9kZSA9PT0gZXYubm9kZSkge1xuICAgICAgICAgICAgdGhpcy5fZGVzZWxlY3ROb2RlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3ROb2RlKGV2Lm5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlYmluZFJvb3QoKTtcbiAgICB9XG5cbiAgICBvbk5vZGVVbHZDb21tYW5kKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2Q29tbWFuZENsaWNrZWQoZXYubm9kZS5EYXRhLCBldi5pbmRleCk7XG4gICAgfVxuXG4gICAgb25Ob2RlVmlld0NsaWNrKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmFpc2VSb3dDbGljayhldi5pbmRleCwgZXYubm9kZSk7XG4gICAgfVxuXG4gICAgb25Mb2FkQ2hpbGRyZW4obm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkQ2hpbGRyZW4obm9kZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHJlbmRlclRyZWU7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogcm9vdCQgfCBhc3luYyxcbiAgICAgICAgICAgIG1vRGF0YUxpc3Q6IGZsYXRNb0RhdGFMaXN0LFxuICAgICAgICAgICAgaXNDaGVja0xpc3Q6IGNvbnRleHQuU2V0dGluZy5WaWV3Py5Jc0NoZWNrTGlzdCxcbiAgICAgICAgICAgIGNvbHVtbnM6IHZpc2libGVDb2x1bW5zJCB8IGFzeW5jLFxuICAgICAgICAgICAgZ3JvdXBieTogZ3JvdXBieSQgfCBhc3luYyxcbiAgICAgICAgICAgIHRvb2xiYXJCdXR0b25zOiAodG9vbGJhckJ1dHRvbnMkIHwgYXN5bmMpISEgfCBzZXBlcmF0b3JGaXgsXG4gICAgICAgICAgICBjb250ZXh0TWVudUl0ZW1zOiBtZW51SXRlbXMkIHwgYXN5bmMgfCBjb250ZXh0TWVudTogY29udGV4dC5TZXR0aW5nLlZpZXc/LklzQ2hlY2tMaXN0LFxuICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXRzOiBjb250ZXh0LlNldHRpbmcuVmlldz8uQ29uZGl0aW9uYWxGb3JtYXRzLFxuICAgICAgICAgICAgZGV2aWNlTmFtZTogZGV2aWNlTmFtZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUkIHwgYXN5bmMsXG4gICAgICAgICAgICBhY2Nlc3M6IGNvbnRleHQuU2V0dGluZy5FeHRyYT8uRGVmYXVsdENvbW1hbmRzQWNjZXNzLFxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlJCB8IGFzeW5jLFxuICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlJCB8IGFzeW5jLFxuICAgICAgICAgICAgYWxsb3dJbmxpbmVFZGl0OiBhbGxvd0lubGluZUVkaXQkIHwgYXN5bmMsXG4gICAgICAgICAgICBoaWRlVG9vbGJhcjogaGlkZVRvb2xiYXIkIHwgYXN5bmMsXG4gICAgICAgICAgICBncmlkU2V0dGluZzogZ3JpZFNldHRpbmckIHwgYXN5bmMsXG4gICAgICAgICAgICBjb250ZW50RGVuc2l0eTogY29udGVudERlbnNpdHkkIHwgYXN5bmMsXG4gICAgICAgICAgICBoYXNTZWxlY3RlZDogaGFzU2VsZWN0ZWQkIHwgYXN5bmMsXG4gICAgICAgICAgICBzaG93T2tDYW5jZWxCdXR0b25zOiBzaG93T2tDYW5jZWxCdXR0b25zLFxuICAgICAgICAgICAgc2VsZWN0ZWROb2RlOiBzZWxlY3RlZE5vZGUkIHwgYXN5bmMsXG4gICAgICAgICAgICBuYXZpZ2F0aW9uQXJyb3c6IG5hdmlnYXRpb25BcnJvdyQgfCBhc3luYyxcbiAgICAgICAgICAgIGNvbGxhcHNlSWNvbjogY29sbGFwc2VJY29uJCB8IGFzeW5jLFxuICAgICAgICAgICAgcmVsYXRpb25MaXN0OiBjb250ZXh0LlNldHRpbmcuVmlldy5SZWxhdGlvbkxpc3QsXG4gICAgICAgICAgICBydGw6IHJ0bCQgfCBhc3luYyxcbiAgICAgICAgICAgIGluRGlhbG9nOiBpbkRpYWxvZyQgfCBhc3luYyxcbiAgICAgICAgICAgIGlzTXVsdGlTZWxlY3Q6IGlzTXVsdGlTZWxlY3QkIHwgYXN5bmMsXG4gICAgICAgICAgICBkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTogdmlld1NldHRpbmc/LkRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51LFxuICAgICAgICAgICAgaXNIZXRybzogY29udGV4dC5TZXR0aW5nLkNsYXNzTmFtZXMuRGF0YUNsYXNzID09PSAnVWwuSGV0cm9UcmVlVWx2RGF0YUN0cmxyJyxcbiAgICAgICAgICAgIHNlbGVjdGVkTW86IHNlbGVjdGVkTW8kIHwgYXN5bmNcbiAgICAgICAgfVxuICAgIFwiXG4+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNyZW5kZXJUcmVlXG4gICAgbGV0LXJvb3RcbiAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxuICAgIGxldC1kZXZpY2VOYW1lPVwiZGV2aWNlTmFtZVwiXG4gICAgbGV0LWRldmljZVNpemU9XCJkZXZpY2VTaXplXCJcbiAgICBsZXQtdG9vbGJhckJ1dHRvbnM9XCJ0b29sYmFyQnV0dG9uc1wiXG4gICAgbGV0LXRpdGxlPVwidGl0bGVcIlxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBsZXQtYWxsb3dJbmxpbmVFZGl0PVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBsZXQtaGlkZVRvb2xiYXI9XCJoaWRlVG9vbGJhclwiXG4gICAgbGV0LWdyaWRTZXR0aW5nPVwiZ3JpZFNldHRpbmdcIlxuICAgIGxldC1jb250ZW50RGVuc2l0eT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICBsZXQtYWNjZXNzPVwiYWNjZXNzXCJcbiAgICBsZXQtY29udGV4dE1lbnVJdGVtcz1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgIGxldC1jb25kaXRpb25hbEZvcm1hdHM9XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgIGxldC1pc0NoZWNrTGlzdD1cImlzQ2hlY2tMaXN0XCJcbiAgICBsZXQtZ3JvdXBieT1cImdyb3VwYnlcIlxuICAgIGxldC1oYXNTZWxlY3RlZD1cImhhc1NlbGVjdGVkXCJcbiAgICBsZXQtc2hvd09rQ2FuY2VsQnV0dG9ucz1cInNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgIGxldC1zZWxlY3RlZE5vZGU9XCJzZWxlY3RlZE5vZGVcIlxuICAgIGxldC1uYXZpZ2F0aW9uQXJyb3c9XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgIGxldC1jb2xsYXBzZUljb249XCJjb2xsYXBzZUljb25cIlxuICAgIGxldC1ydGw9XCJydGxcIlxuICAgIGxldC1kaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICBsZXQtcmVsYXRpb25MaXN0PVwicmVsYXRpb25MaXN0XCJcbiAgICBsZXQtaXNIZXRybz1cImlzSGV0cm9cIlxuICAgIGxldC1pbkRpYWxvZz1cImluRGlhbG9nXCJcbiAgICBsZXQtaXNNdWx0aVNlbGVjdD1cImlzTXVsdGlTZWxlY3RcIlxuICAgIGxldC1zZWxlY3RlZE1vPVwic2VsZWN0ZWRNb1wiXG4+XG4gICAgPGJzdS11bHYtdG9vbGJhclxuICAgICAgICBbaGlkZVRvb2xiYXJdPVwiaGlkZVRvb2xiYXJcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFt0b29sYmFyQnV0dG9uc109XCJ0b29sYmFyQnV0dG9uc1wiXG4gICAgICAgIFtncmlkU2V0dGluZ109XCJncmlkU2V0dGluZ1wiXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICAgIFtoYXNTZWxlY3RlZF09XCJoYXNTZWxlY3RlZFwiXG4gICAgICAgIFtpbkRpYWxvZ109XCJpbkRpYWxvZ1wiXG4gICAgICAgIFtpc011bHRpU2VsZWN0XT1cImlzTXVsdGlTZWxlY3RcIlxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFttb0RhdGFMaXN0Q291bnRdPVwibW9EYXRhTGlzdC5sZW5ndGhcIlxuICAgICAgICAoc29ydENsaWNrKT1cIm9uU29ydFNldHRpbmdzKGRldmljZU5hbWUpXCJcbiAgICAgICAgKGdyb3VwYnlDbGljayk9XCJvbkdyb3VwYnlTZXR0aW5ncyhkZXZpY2VOYW1lKVwiXG4gICAgICAgIChjb2x1bW5DbGljayk9XCJvbkNvbHVtblNldHRpbmdzKGRldmljZU5hbWUpXCJcbiAgICAgICAgKGVkaXRNb2RlQ2xpY2spPVwib25FZGl0TW9kZSgpXCJcbiAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgW2dseXBoXT1cIidjb2xsYXBzZS1hbGwnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlQWxsKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCIhc2hvd09rQ2FuY2VsQnV0dG9uc1wiXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiJ21vdmUnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk9wZW5Nb3ZlVG9EaWFsb2coc2VsZWN0ZWROb2RlLCBkZXZpY2VOYW1lLCBtb3ZlRGlhbG9nKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L2JzdS11bHYtdG9vbGJhcj5cbiAgICA8YnN1LXRyZWUtdmlld1xuICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgIFtyZWxhdGlvbkxpc3RdPVwicmVsYXRpb25MaXN0XCJcbiAgICAgICAgW3Jvb3RdPVwicm9vdFwiXG4gICAgICAgIFtzZWxlY3RlZE1vXT1cInNlbGVjdGVkTW9cIlxuICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgIFtjb2xsYXBzZUljb25dPVwiY29sbGFwc2VJY29uXCJcbiAgICAgICAgW3NlbGVjdGVkTm9kZV09XCJzZWxlY3RlZE5vZGVcIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW2luRGlhbG9nXT1cImluRGlhbG9nXCJcbiAgICAgICAgW2lzTXVsdGlTZWxlY3RdPVwiaXNNdWx0aVNlbGVjdFwiXG4gICAgICAgIFtjb250ZXh0TWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICBbbW9EYXRhTGlzdF09XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgW2dyb3VwYnldPVwiZ3JvdXBieVwiXG4gICAgICAgIFtpc0hldHJvXT1cImlzSGV0cm9cIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtzaG93T2tDYW5jZWxCdXR0b25zXT1cInNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgICAgICAoY2hlY2tDaGFuZ2UpPVwib25DaGVja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGl0ZW1Ecm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICAgKGl0ZW1EcmFnTW92ZWQpPVwib25EcmFnTW92ZWQoJGV2ZW50KVwiXG4gICAgICAgIChub2RlVWx2Q29tbWFuZCk9XCJvbk5vZGVVbHZDb21tYW5kKCRldmVudClcIlxuICAgICAgICAobm9kZVZpZXdDbGljayk9XCJvbk5vZGVWaWV3Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChsb2FkQ2hpbGRyZW4pPVwib25Mb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgIChub2RlU2VsZWN0KT1cIm9uTm9kZVNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgKHJvd0NoZWNrKT1cIm9uUm93Q2hlY2soJGV2ZW50KVwiXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAoYWxsQ2hlY2tib3gpPVwib25BbGxDaGVja2JveCgkZXZlbnQpXCJcbiAgICAgICAgKGV4cGFuZENsaWNrKT1cIm9uRXhwYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxTYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgIChjcmVhdGVOZXcpPVwib25DcmVhdGVOZXcoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYnN1LXRyZWUtdmlldz5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI21vdmVEaWFsb2c+XG4gICAgICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGgxIGZkLXRpdGxlPnt7ICdNb3ZlJyB8IGJiYlRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygnQ2xvc2UgYnV0dG9uJylcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXRvXCIgKGtleWRvd24uZW50ZXIpPVwib25Db25maXJtRGlhbG9nKGRpYWxvZ1NlbGVjdGVkTm9kZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJzdS10cmVlLXZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb290XT1cInJvb3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxhcHNlSWNvbl09XCJjb2xsYXBzZUljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoYXNEcmFnRHJvcF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWROb2RlXT1cImRpYWxvZ1NlbGVjdGVkTm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbW9EYXRhTGlzdF09XCJmbGF0TW9EYXRhTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBieV09XCJncm91cGJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uTG9hZENoaWxkcmVuKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGVTZWxlY3QpPVwib25TZWxlY3ROb2RlSW5Nb3ZlRGlhbG9nKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtdHJlZS12aWV3PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICAgICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZkVGVtcGxhdGU9XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInT0snIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db25maXJtRGlhbG9nKGRpYWxvZ1NlbGVjdGVkTm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgZmQtaW5pdGlhbC1mb2N1cyBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIiAoY2xpY2spPVwib25EaXNtaXNzRGlhbG9nKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgPC9mZC1kaWFsb2c+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|