ontimize-web-ngx 15.7.1 → 15.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +1 -1
- package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +1 -1
- package/esm2020/lib/components/o-service-base-component.class.mjs +1 -1
- package/esm2020/lib/components/o-service-component.class.mjs +1 -1
- package/esm2020/lib/components/table/column/cell-renderer/cell-renderer.mjs +11 -4
- package/esm2020/lib/components/table/column/cell-renderer/chip/o-table-cell-renderer-chip.component.mjs +65 -0
- package/esm2020/lib/components/table/column/cell-renderer/index.mjs +3 -1
- package/esm2020/lib/components/table/column/cell-renderer/list/o-table-cell-renderer-list.component.mjs +41 -0
- package/esm2020/lib/components/table/column/o-table-column.component.mjs +8 -2
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +3 -3
- package/esm2020/lib/components/table/extensions/header/table-header-select-all/o-table-header-select-all.component.mjs +3 -1
- package/esm2020/lib/components/table/o-table.component.mjs +262 -71
- package/esm2020/lib/components/table/o-table.module.mjs +35 -33
- package/esm2020/lib/interfaces/column-filter-change-event.interface.mjs +2 -0
- package/esm2020/lib/interfaces/index.mjs +2 -1
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +1 -1
- package/esm2020/lib/types/table/o-table-global-config.type.mjs +1 -1
- package/fesm2015/ontimize-web-ngx.mjs +376 -78
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +374 -78
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +1 -1
- package/lib/components/filter-builder/o-filter-builder.component.d.ts +1 -1
- package/lib/components/o-service-base-component.class.d.ts +1 -1
- package/lib/components/o-service-component.class.d.ts +1 -1
- package/lib/components/table/column/cell-renderer/cell-renderer.d.ts +5 -1
- package/lib/components/table/column/cell-renderer/chip/o-table-cell-renderer-chip.component.d.ts +23 -0
- package/lib/components/table/column/cell-renderer/index.d.ts +2 -0
- package/lib/components/table/column/cell-renderer/list/o-table-cell-renderer-list.component.d.ts +14 -0
- package/lib/components/table/column/o-table-column.component.d.ts +2 -1
- package/lib/components/table/extensions/header/table-header-select-all/o-table-header-select-all.component.d.ts +2 -1
- package/lib/components/table/o-table.component.d.ts +22 -3
- package/lib/components/table/o-table.module.d.ts +48 -46
- package/lib/interfaces/column-filter-change-event.interface.d.ts +6 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/types/table/o-table-global-config.type.d.ts +2 -0
- package/package.json +1 -1
- package/theme.scss +0 -2
|
@@ -43,36 +43,38 @@ import * as i8 from "./column/cell-renderer/percentage/o-table-cell-renderer-per
|
|
|
43
43
|
import * as i9 from "./column/cell-renderer/service/o-table-cell-renderer-service.component";
|
|
44
44
|
import * as i10 from "./column/cell-renderer/translate/o-table-cell-renderer-translate.component";
|
|
45
45
|
import * as i11 from "./column/cell-renderer/time/o-table-cell-renderer-time.component";
|
|
46
|
-
import * as i12 from "./column/cell-
|
|
47
|
-
import * as i13 from "./column/cell-
|
|
48
|
-
import * as i14 from "./column/cell-editor/
|
|
49
|
-
import * as i15 from "./column/cell-editor/
|
|
50
|
-
import * as i16 from "./column/cell-editor/
|
|
51
|
-
import * as i17 from "./column/cell-editor/
|
|
52
|
-
import * as i18 from "./column/cell-editor/
|
|
53
|
-
import * as i19 from "./
|
|
54
|
-
import * as i20 from "./
|
|
55
|
-
import * as i21 from "./extensions/dialog/
|
|
56
|
-
import * as i22 from "./extensions/dialog/
|
|
57
|
-
import * as i23 from "./extensions/dialog/
|
|
58
|
-
import * as i24 from "./extensions/dialog/
|
|
59
|
-
import * as i25 from "./extensions/
|
|
60
|
-
import * as i26 from "./extensions/
|
|
61
|
-
import * as i27 from "./extensions/header/table-
|
|
62
|
-
import * as i28 from "./extensions/header/table-
|
|
63
|
-
import * as i29 from "./extensions/header/table-
|
|
64
|
-
import * as i30 from "./extensions/header/table-
|
|
65
|
-
import * as i31 from "./extensions/header/table-
|
|
66
|
-
import * as i32 from "./extensions/header/table-
|
|
67
|
-
import * as i33 from "./extensions/header/table-
|
|
68
|
-
import * as i34 from "./extensions/header/table-
|
|
69
|
-
import * as i35 from "./extensions/header/table-
|
|
70
|
-
import * as i36 from "./extensions/header/table-
|
|
71
|
-
import * as i37 from "./extensions/header/table-
|
|
72
|
-
import * as i38 from "./extensions/header/table-
|
|
73
|
-
import * as i39 from "./extensions/header/table-
|
|
74
|
-
import * as i40 from "./extensions/
|
|
75
|
-
import * as i41 from "./extensions/
|
|
46
|
+
import * as i12 from "./column/cell-renderer/chip/o-table-cell-renderer-chip.component";
|
|
47
|
+
import * as i13 from "./column/cell-renderer/list/o-table-cell-renderer-list.component";
|
|
48
|
+
import * as i14 from "./column/cell-editor/boolean/o-table-cell-editor-boolean.component";
|
|
49
|
+
import * as i15 from "./column/cell-editor/date/o-table-cell-editor-date.component";
|
|
50
|
+
import * as i16 from "./column/cell-editor/integer/o-table-cell-editor-integer.component";
|
|
51
|
+
import * as i17 from "./column/cell-editor/real/o-table-cell-editor-real.component";
|
|
52
|
+
import * as i18 from "./column/cell-editor/text/o-table-cell-editor-text.component";
|
|
53
|
+
import * as i19 from "./column/cell-editor/email/o-table-cell-editor-email.component";
|
|
54
|
+
import * as i20 from "./column/cell-editor/time/o-table-cell-editor-time.component";
|
|
55
|
+
import * as i21 from "./extensions/dialog/apply-configuration/o-table-apply-configuration-dialog.component";
|
|
56
|
+
import * as i22 from "./extensions/dialog/export/o-table-export-dialog.component";
|
|
57
|
+
import * as i23 from "./extensions/dialog/store-configuration/o-table-store-configuration-dialog.component";
|
|
58
|
+
import * as i24 from "./extensions/dialog/visible-columns/o-table-visible-columns-dialog.component";
|
|
59
|
+
import * as i25 from "./extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component";
|
|
60
|
+
import * as i26 from "./extensions/dialog/group-by-columns/o-table-group-by-columns-dialog.component";
|
|
61
|
+
import * as i27 from "./extensions/header/table-button/o-table-button.component";
|
|
62
|
+
import * as i28 from "./extensions/header/table-buttons/o-table-buttons.component";
|
|
63
|
+
import * as i29 from "./extensions/header/table-column-resizer/o-table-column-resizer.component";
|
|
64
|
+
import * as i30 from "./extensions/header/table-columns-filter/o-table-columns-filter.component";
|
|
65
|
+
import * as i31 from "./extensions/header/table-menu/o-table-menu.component";
|
|
66
|
+
import * as i32 from "./extensions/header/table-option/o-table-option.component";
|
|
67
|
+
import * as i33 from "./extensions/header/table-insertable-row/o-table-insertable-row.component";
|
|
68
|
+
import * as i34 from "./extensions/header/table-quickfilter/o-table-quickfilter.component";
|
|
69
|
+
import * as i35 from "./extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component";
|
|
70
|
+
import * as i36 from "./extensions/header/table-header-column-filter-icon/o-table-header-column-filter-icon.component";
|
|
71
|
+
import * as i37 from "./extensions/header/table-header/o-table-header.component";
|
|
72
|
+
import * as i38 from "./extensions/header/table-columns-grouping/o-table-columns-grouping.component";
|
|
73
|
+
import * as i39 from "./extensions/header/table-columns-grouping/columns/o-table-columns-grouping-column.component";
|
|
74
|
+
import * as i40 from "./extensions/header/table-column-select-all/o-table-column-select-all.directive";
|
|
75
|
+
import * as i41 from "./extensions/header/table-header-select-all/o-table-header-select-all.component";
|
|
76
|
+
import * as i42 from "./extensions/footer/paginator/o-table-paginator.component";
|
|
77
|
+
import * as i43 from "./extensions/footer/aggregate/o-table-column-aggregate.component";
|
|
76
78
|
export class OTableModule {
|
|
77
79
|
}
|
|
78
80
|
OTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -83,7 +85,7 @@ OTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
|
83
85
|
OTableRowDirective,
|
|
84
86
|
OTableExpandedFooterDirective,
|
|
85
87
|
OTableExportButtonComponent,
|
|
86
|
-
OTableRowClassPipe, i1.OTableCellRendererActionComponent, i2.OTableCellRendererDateComponent, i3.OTableCellRendererBooleanComponent, i4.OTableCellRendererImageComponent, i5.OTableCellRendererIntegerComponent, i6.OTableCellRendererRealComponent, i7.OTableCellRendererCurrencyComponent, i8.OTableCellRendererPercentageComponent, i9.OTableCellRendererServiceComponent, i10.OTableCellRendererTranslateComponent, i11.OTableCellRendererTimeComponent, i12.
|
|
88
|
+
OTableRowClassPipe, i1.OTableCellRendererActionComponent, i2.OTableCellRendererDateComponent, i3.OTableCellRendererBooleanComponent, i4.OTableCellRendererImageComponent, i5.OTableCellRendererIntegerComponent, i6.OTableCellRendererRealComponent, i7.OTableCellRendererCurrencyComponent, i8.OTableCellRendererPercentageComponent, i9.OTableCellRendererServiceComponent, i10.OTableCellRendererTranslateComponent, i11.OTableCellRendererTimeComponent, i12.OTableCellRendererChipComponent, i13.OTableCellRendererListComponent, i14.OTableCellEditorBooleanComponent, i15.OTableCellEditorDateComponent, i16.OTableCellEditorIntegerComponent, i17.OTableCellEditorRealComponent, i18.OTableCellEditorTextComponent, i19.OTableCellEditorEmailComponent, i20.OTableCellEditorTimeComponent, i21.OTableApplyConfigurationDialogComponent, i22.OTableExportDialogComponent, i23.OTableStoreConfigurationDialogComponent, i24.OTableVisibleColumnsDialogComponent, i25.OTableFilterByColumnDataDialogComponent, i26.OTableGroupByColumnsDialogComponent, i27.OTableButtonComponent, i28.OTableButtonsComponent, i29.OTableColumnResizerComponent, i30.OTableColumnsFilterComponent, i31.OTableMenuComponent, i32.OTableOptionComponent, i33.OTableInsertableRowComponent, i34.OTableQuickfilterComponent, i35.OTableColumnsFilterColumnComponent, i36.OTableHeaderColumnFilterIconComponent, i37.OTableHeaderComponent, i38.OTableColumnsGroupingComponent, i39.OTableColumnsGroupingColumnComponent, i40.OTableColumnSelectAllDirective, i41.OTableHeaderSelectAllComponent, i42.OTablePaginatorComponent, i43.OTableColumnAggregateComponent, OTableRowExpandableComponent,
|
|
87
89
|
OTableSkeletonComponent], imports: [CommonModule,
|
|
88
90
|
OSharedModule,
|
|
89
91
|
CdkTableModule,
|
|
@@ -105,7 +107,7 @@ OTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
|
105
107
|
OTableExpandedFooterDirective,
|
|
106
108
|
OMatSortModule,
|
|
107
109
|
OTableExportButtonComponent,
|
|
108
|
-
OTableRowClassPipe,
|
|
110
|
+
OTableRowClassPipe, i27.OTableButtonComponent, i28.OTableButtonsComponent, i29.OTableColumnResizerComponent, i38.OTableColumnsGroupingComponent, i39.OTableColumnsGroupingColumnComponent, i30.OTableColumnsFilterComponent, i31.OTableMenuComponent, i32.OTableOptionComponent, i33.OTableInsertableRowComponent, i34.OTableQuickfilterComponent, i35.OTableColumnsFilterColumnComponent, i37.OTableHeaderComponent, i40.OTableColumnSelectAllDirective, i41.OTableHeaderSelectAllComponent, i1.OTableCellRendererActionComponent, i2.OTableCellRendererDateComponent, i3.OTableCellRendererBooleanComponent, i4.OTableCellRendererImageComponent, i5.OTableCellRendererIntegerComponent, i6.OTableCellRendererRealComponent, i7.OTableCellRendererCurrencyComponent, i8.OTableCellRendererPercentageComponent, i9.OTableCellRendererServiceComponent, i10.OTableCellRendererTranslateComponent, i11.OTableCellRendererTimeComponent, i12.OTableCellRendererChipComponent, i13.OTableCellRendererListComponent, i14.OTableCellEditorBooleanComponent, i15.OTableCellEditorDateComponent, i16.OTableCellEditorIntegerComponent, i17.OTableCellEditorRealComponent, i18.OTableCellEditorTextComponent, i19.OTableCellEditorEmailComponent, i20.OTableCellEditorTimeComponent, i42.OTablePaginatorComponent, i43.OTableColumnAggregateComponent, OTableRowExpandableComponent,
|
|
109
111
|
OTableSkeletonComponent] });
|
|
110
112
|
OTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableModule, providers: [
|
|
111
113
|
OTableExportButtonService,
|
|
@@ -185,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
185
187
|
]
|
|
186
188
|
}]
|
|
187
189
|
}] });
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9vLXRhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUMvRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUN0SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkQzRSxNQUFNLE9BQU8sWUFBWTs7MEdBQVosWUFBWTsyR0FBWixZQUFZLGlCQXZEckIsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQiwrQkFBK0I7UUFDL0IsMEJBQTBCO1FBQzFCLGtCQUFrQjtRQUNsQiw2QkFBNkI7UUFDN0IsMkJBQTJCO1FBQzNCLGtCQUFrQix3OUNBTWxCLDRCQUE0QjtRQUM1Qix1QkFBdUIsYUFHdkIsWUFBWTtRQUNaLGFBQWE7UUFDYixjQUFjO1FBQ2QsY0FBYztRQUNkLFlBQVk7UUFDWix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixjQUFjO1FBQ2QsMkJBQTJCO1FBQzNCLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIsZ0JBQWdCLGFBR2hCLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsY0FBYztRQUNkLCtCQUErQjtRQUMvQiwwQkFBMEI7UUFDMUIsa0JBQWtCO1FBQ2xCLDZCQUE2QjtRQUM3QixjQUFjO1FBQ2QsMkJBQTJCO1FBQzNCLGtCQUFrQixtckNBS2xCLDRCQUE0QjtRQUM1Qix1QkFBdUI7MkdBUWQsWUFBWSxhQU5aO1FBQ1QseUJBQXlCO1FBQ3pCLDJCQUEyQjtRQUMzQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUU7S0FDaEUsWUFwQ0MsWUFBWTtRQUNaLGFBQWE7UUFDYixjQUFjO1FBQ2QsY0FBYztRQUNkLFlBQVk7UUFDWix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixjQUFjO1FBQ2QsMkJBQTJCO1FBQzNCLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIsZ0JBQWdCLEVBS2hCLGNBQWM7UUFLZCxjQUFjOzRGQWdCTCxZQUFZO2tCQXpEeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLCtCQUErQjt3QkFDL0IsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLDZCQUE2Qjt3QkFDN0IsMkJBQTJCO3dCQUMzQixrQkFBa0I7d0JBQ2xCLEdBQUcsc0JBQXNCO3dCQUN6QixHQUFHLG9CQUFvQjt3QkFDdkIsR0FBRyxlQUFlO3dCQUNsQixHQUFHLHlCQUF5Qjt3QkFDNUIsR0FBRyx5QkFBeUI7d0JBQzVCLDRCQUE0Qjt3QkFDNUIsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsMkJBQTJCO3dCQUMzQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsK0JBQStCO3dCQUMvQiwwQkFBMEI7d0JBQzFCLGtCQUFrQjt3QkFDbEIsNkJBQTZCO3dCQUM3QixjQUFjO3dCQUNkLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3dCQUNsQixHQUFHLGtDQUFrQzt3QkFDckMsR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcsb0JBQW9CO3dCQUN2QixHQUFHLHlCQUF5Qjt3QkFDNUIsNEJBQTRCO3dCQUM1Qix1QkFBdUI7cUJBQ3hCO29CQUNELFNBQVMsRUFBRTt3QkFDVCx5QkFBeUI7d0JBQ3pCLDJCQUEyQjt3QkFDM0IsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFO3FCQUNoRTtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBPYnNlcnZlcnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcbmltcG9ydCB7IENka1RhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9ySW50bCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBOZ3hNYXRlcmlhbFRpbWVwaWNrZXJNb2R1bGUgfSBmcm9tICduZ3gtbWF0ZXJpYWwtdGltZXBpY2tlcic7XG5cbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgT1NoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IE9Db250ZXh0TWVudU1vZHVsZSB9IGZyb20gJy4uL2NvbnRleHRtZW51L28tY29udGV4dC1tZW51Lm1vZHVsZSc7XG5pbXBvcnQgeyBPRHVhbExpc3RTZWxlY3Rvck1vZHVsZSB9IGZyb20gJy4uL2R1YWwtbGlzdC1zZWxlY3Rvci9vLWR1YWwtbGlzdC1zZWxlY3Rvci5tb2R1bGUnO1xuaW1wb3J0IHsgT0RhdGFUb29sYmFyTW9kdWxlIH0gZnJvbSAnLi4vby1kYXRhLXRvb2xiYXIvby1kYXRhLXRvb2xiYXIubW9kdWxlJztcbmltcG9ydCB7IE9UYWJsZUNvbHVtbkNhbGN1bGF0ZWRDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi9jYWxjdWxhdGVkL28tdGFibGUtY29sdW1uLWNhbGN1bGF0ZWQuY29tcG9uZW50JztcbmltcG9ydCB7IE9fVEFCTEVfQ0VMTF9FRElUT1JTIH0gZnJvbSAnLi9jb2x1bW4vY2VsbC1lZGl0b3IvY2VsbC1lZGl0b3InO1xuaW1wb3J0IHsgT19UQUJMRV9DRUxMX1JFTkRFUkVSUyB9IGZyb20gJy4vY29sdW1uL2NlbGwtcmVuZGVyZXIvY2VsbC1yZW5kZXJlcic7XG5pbXBvcnQgeyBPVGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi9vLXRhYmxlLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgT1RhYmxlQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2V4dGVuc2lvbnMvY29udGV4dG1lbnUvby10YWJsZS1jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IE9fVEFCTEVfRElBTE9HUyB9IGZyb20gJy4vZXh0ZW5zaW9ucy9kaWFsb2cvby10YWJsZS1kaWFsb2ctY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPVGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2V4dGVuc2lvbnMvZXhwb3J0LWJ1dHRvbi9vLXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE9UYWJsZUV4cG9ydEJ1dHRvblNlcnZpY2UgfSBmcm9tICcuL2V4dGVuc2lvbnMvZXhwb3J0LWJ1dHRvbi9vLXRhYmxlLWV4cG9ydC1idXR0b24uc2VydmljZSc7XG5pbXBvcnQgeyBPVGFibGVFeHBhbmRlZEZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vZXh0ZW5zaW9ucy9mb290ZXIvZXhwYW5kZWQvby10YWJsZS1leHBhbmRlZC1mb290ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9fVEFCTEVfRk9PVEVSX0NPTVBPTkVOVFMgfSBmcm9tICcuL2V4dGVuc2lvbnMvZm9vdGVyL28tdGFibGUtZm9vdGVyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgT1RhYmxlTWF0UGFnaW5hdG9ySW50bCB9IGZyb20gJy4vZXh0ZW5zaW9ucy9mb290ZXIvcGFnaW5hdG9yL28tdGFibGUtbWF0LXBhZ2luYXRvci1pbnRsJztcbmltcG9ydCB7IE9fVEFCTEVfSEVBREVSX0NPTVBPTkVOVFMsIE9fVEFCTEVfSEVBREVSX0NPTVBPTkVOVFNfRVhQT1JURUQgfSBmcm9tICcuL2V4dGVuc2lvbnMvaGVhZGVyL28tdGFibGUtaGVhZGVyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgT1RhYmxlUm93Q2xhc3NQaXBlIH0gZnJvbSAnLi9leHRlbnNpb25zL3BpcGVzL28tdGFibGUtcm93LWNsYXNzLnBpcGUnO1xuaW1wb3J0IHsgT1RhYmxlUm93RGlyZWN0aXZlIH0gZnJvbSAnLi9leHRlbnNpb25zL3Jvdy9vLXRhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT1RhYmxlUm93RXhwYW5kYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZXh0ZW5zaW9ucy9yb3cvdGFibGUtcm93LWV4cGFuZGFibGUvby10YWJsZS1yb3ctZXhwYW5kYWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT01hdFNvcnRNb2R1bGUgfSBmcm9tICcuL2V4dGVuc2lvbnMvc29ydC9vLW1hdC1zb3J0LW1vZHVsZSc7XG5pbXBvcnQgeyBPVGFibGVDb21wb25lbnQgfSBmcm9tICcuL28tdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE5neFNrZWxldG9uTG9hZGVyTW9kdWxlIH0gZnJvbSAnbmd4LXNrZWxldG9uLWxvYWRlcic7XG5pbXBvcnQgeyBPVGFibGVTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJy4vZXh0ZW5zaW9ucy9za2VsZXRvbi9vLXRhYmxlLXNrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPVGFibGVGaWx0ZXJCeUNvbHVtblNlcnZpY2UgfSBmcm9tICcuL2V4dGVuc2lvbnMvZGlhbG9nL2ZpbHRlci1ieS1jb2x1bW4vby10YWJsZS1maWx0ZXItYnktY29sdW1uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0hvdXJJbnB1dE1vZHVsZSB9IGZyb20gJy4uL2lucHV0L2hvdXItaW5wdXQvby1ob3VyLWlucHV0Lm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE9UYWJsZUNvbXBvbmVudCxcbiAgICBPVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgT1RhYmxlQ29sdW1uQ2FsY3VsYXRlZENvbXBvbmVudCxcbiAgICBPVGFibGVDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgICBPVGFibGVSb3dEaXJlY3RpdmUsXG4gICAgT1RhYmxlRXhwYW5kZWRGb290ZXJEaXJlY3RpdmUsXG4gICAgT1RhYmxlRXhwb3J0QnV0dG9uQ29tcG9uZW50LFxuICAgIE9UYWJsZVJvd0NsYXNzUGlwZSxcbiAgICAuLi5PX1RBQkxFX0NFTExfUkVOREVSRVJTLFxuICAgIC4uLk9fVEFCTEVfQ0VMTF9FRElUT1JTLFxuICAgIC4uLk9fVEFCTEVfRElBTE9HUyxcbiAgICAuLi5PX1RBQkxFX0hFQURFUl9DT01QT05FTlRTLFxuICAgIC4uLk9fVEFCTEVfRk9PVEVSX0NPTVBPTkVOVFMsXG4gICAgT1RhYmxlUm93RXhwYW5kYWJsZUNvbXBvbmVudCxcbiAgICBPVGFibGVTa2VsZXRvbkNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE9TaGFyZWRNb2R1bGUsXG4gICAgQ2RrVGFibGVNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlLFxuICAgIE5neFNrZWxldG9uTG9hZGVyTW9kdWxlLFxuICAgIE9Db250ZXh0TWVudU1vZHVsZSxcbiAgICBPYnNlcnZlcnNNb2R1bGUsXG4gICAgT01hdFNvcnRNb2R1bGUsXG4gICAgTmd4TWF0ZXJpYWxUaW1lcGlja2VyTW9kdWxlLFxuICAgIE9EdWFsTGlzdFNlbGVjdG9yTW9kdWxlLFxuICAgIE9EYXRhVG9vbGJhck1vZHVsZSxcbiAgICBPSG91cklucHV0TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBPVGFibGVDb21wb25lbnQsXG4gICAgT1RhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgIENka1RhYmxlTW9kdWxlLFxuICAgIE9UYWJsZUNvbHVtbkNhbGN1bGF0ZWRDb21wb25lbnQsXG4gICAgT1RhYmxlQ29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgT1RhYmxlUm93RGlyZWN0aXZlLFxuICAgIE9UYWJsZUV4cGFuZGVkRm9vdGVyRGlyZWN0aXZlLFxuICAgIE9NYXRTb3J0TW9kdWxlLFxuICAgIE9UYWJsZUV4cG9ydEJ1dHRvbkNvbXBvbmVudCxcbiAgICBPVGFibGVSb3dDbGFzc1BpcGUsXG4gICAgLi4uT19UQUJMRV9IRUFERVJfQ09NUE9ORU5UU19FWFBPUlRFRCxcbiAgICAuLi5PX1RBQkxFX0NFTExfUkVOREVSRVJTLFxuICAgIC4uLk9fVEFCTEVfQ0VMTF9FRElUT1JTLFxuICAgIC4uLk9fVEFCTEVfRk9PVEVSX0NPTVBPTkVOVFMsXG4gICAgT1RhYmxlUm93RXhwYW5kYWJsZUNvbXBvbmVudCxcbiAgICBPVGFibGVTa2VsZXRvbkNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBPVGFibGVFeHBvcnRCdXR0b25TZXJ2aWNlLFxuICAgIE9UYWJsZUZpbHRlckJ5Q29sdW1uU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IE1hdFBhZ2luYXRvckludGwsIHVzZUNsYXNzOiBPVGFibGVNYXRQYWdpbmF0b3JJbnRsIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPVGFibGVNb2R1bGUgeyB9XG4iXX0=
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9vLXRhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSwwQkFB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O3dCQUM1Qix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCwyQkFBMkI7d0JBQzNCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCwrQkFBK0I7d0JBQy9CLDBCQUEwQjt3QkFDMUIsa0JBQWtCO3dCQUNsQiw2QkFBNkI7d0JBQzdCLGNBQWM7d0JBQ2QsMkJBQTJCO3dCQUMzQixrQkFBa0I7d0JBQ2xCLEdBQUcsa0NBQWtDO3dCQUNyQyxHQUFHLHNCQUFzQjt3QkFDekIsR0FBRyxvQkFBb0I7d0JBQ3ZCLEdBQUcseUJBQXlCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULHlCQUF5Qjt3QkFDekIsMkJBQTJCO3dCQUMzQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUU7cUJBQ2hFO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE9ic2VydmVyc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vYnNlcnZlcnMnO1xuaW1wb3J0IHsgQ2RrVGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JJbnRsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE5neE1hdGVyaWFsVGltZXBpY2tlck1vZHVsZSB9IGZyb20gJ25neC1tYXRlcmlhbC10aW1lcGlja2VyJztcblxuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBPU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgT0NvbnRleHRNZW51TW9kdWxlIH0gZnJvbSAnLi4vY29udGV4dG1lbnUvby1jb250ZXh0LW1lbnUubW9kdWxlJztcbmltcG9ydCB7IE9EdWFsTGlzdFNlbGVjdG9yTW9kdWxlIH0gZnJvbSAnLi4vZHVhbC1saXN0LXNlbGVjdG9yL28tZHVhbC1saXN0LXNlbGVjdG9yLm1vZHVsZSc7XG5pbXBvcnQgeyBPRGF0YVRvb2xiYXJNb2R1bGUgfSBmcm9tICcuLi9vLWRhdGEtdG9vbGJhci9vLWRhdGEtdG9vbGJhci5tb2R1bGUnO1xuaW1wb3J0IHsgT1RhYmxlQ29sdW1uQ2FsY3VsYXRlZENvbXBvbmVudCB9IGZyb20gJy4vY29sdW1uL2NhbGN1bGF0ZWQvby10YWJsZS1jb2x1bW4tY2FsY3VsYXRlZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT19UQUJMRV9DRUxMX0VESVRPUlMgfSBmcm9tICcuL2NvbHVtbi9jZWxsLWVkaXRvci9jZWxsLWVkaXRvcic7XG5pbXBvcnQgeyBPX1RBQkxFX0NFTExfUkVOREVSRVJTIH0gZnJvbSAnLi9jb2x1bW4vY2VsbC1yZW5kZXJlci9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IE9UYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1uL28tdGFibGUtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPVGFibGVDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vZXh0ZW5zaW9ucy9jb250ZXh0bWVudS9vLXRhYmxlLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT19UQUJMRV9ESUFMT0dTIH0gZnJvbSAnLi9leHRlbnNpb25zL2RpYWxvZy9vLXRhYmxlLWRpYWxvZy1jb21wb25lbnRzJztcbmltcG9ydCB7IE9UYWJsZUV4cG9ydEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZXh0ZW5zaW9ucy9leHBvcnQtYnV0dG9uL28tdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgT1RhYmxlRXhwb3J0QnV0dG9uU2VydmljZSB9IGZyb20gJy4vZXh0ZW5zaW9ucy9leHBvcnQtYnV0dG9uL28tdGFibGUtZXhwb3J0LWJ1dHRvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9UYWJsZUV4cGFuZGVkRm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9leHRlbnNpb25zL2Zvb3Rlci9leHBhbmRlZC9vLXRhYmxlLWV4cGFuZGVkLWZvb3Rlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT19UQUJMRV9GT09URVJfQ09NUE9ORU5UUyB9IGZyb20gJy4vZXh0ZW5zaW9ucy9mb290ZXIvby10YWJsZS1mb290ZXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPVGFibGVNYXRQYWdpbmF0b3JJbnRsIH0gZnJvbSAnLi9leHRlbnNpb25zL2Zvb3Rlci9wYWdpbmF0b3Ivby10YWJsZS1tYXQtcGFnaW5hdG9yLWludGwnO1xuaW1wb3J0IHsgT19UQUJMRV9IRUFERVJfQ09NUE9ORU5UUywgT19UQUJMRV9IRUFERVJfQ09NUE9ORU5UU19FWFBPUlRFRCB9IGZyb20gJy4vZXh0ZW5zaW9ucy9oZWFkZXIvby10YWJsZS1oZWFkZXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPVGFibGVSb3dDbGFzc1BpcGUgfSBmcm9tICcuL2V4dGVuc2lvbnMvcGlwZXMvby10YWJsZS1yb3ctY2xhc3MucGlwZSc7XG5pbXBvcnQgeyBPVGFibGVSb3dEaXJlY3RpdmUgfSBmcm9tICcuL2V4dGVuc2lvbnMvcm93L28tdGFibGUtcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPVGFibGVSb3dFeHBhbmRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlbnNpb25zL3Jvdy90YWJsZS1yb3ctZXhwYW5kYWJsZS9vLXRhYmxlLXJvdy1leHBhbmRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPTWF0U29ydE1vZHVsZSB9IGZyb20gJy4vZXh0ZW5zaW9ucy9zb3J0L28tbWF0LXNvcnQtbW9kdWxlJztcbmltcG9ydCB7IE9UYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vby10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcbmltcG9ydCB7IE9UYWJsZVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlbnNpb25zL3NrZWxldG9uL28tdGFibGUtc2tlbGV0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE9UYWJsZUZpbHRlckJ5Q29sdW1uU2VydmljZSB9IGZyb20gJy4vZXh0ZW5zaW9ucy9kaWFsb2cvZmlsdGVyLWJ5LWNvbHVtbi9vLXRhYmxlLWZpbHRlci1ieS1jb2x1bW4uc2VydmljZSc7XG5pbXBvcnQgeyBPSG91cklucHV0TW9kdWxlIH0gZnJvbSAnLi4vaW5wdXQvaG91ci1pbnB1dC9vLWhvdXItaW5wdXQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgT1RhYmxlQ29tcG9uZW50LFxuICAgIE9UYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBPVGFibGVDb2x1bW5DYWxjdWxhdGVkQ29tcG9uZW50LFxuICAgIE9UYWJsZUNvbnRleHRNZW51Q29tcG9uZW50LFxuICAgIE9UYWJsZVJvd0RpcmVjdGl2ZSxcbiAgICBPVGFibGVFeHBhbmRlZEZvb3RlckRpcmVjdGl2ZSxcbiAgICBPVGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQsXG4gICAgT1RhYmxlUm93Q2xhc3NQaXBlLFxuICAgIC4uLk9fVEFCTEVfQ0VMTF9SRU5ERVJFUlMsXG4gICAgLi4uT19UQUJMRV9DRUxMX0VESVRPUlMsXG4gICAgLi4uT19UQUJMRV9ESUFMT0dTLFxuICAgIC4uLk9fVEFCTEVfSEVBREVSX0NPTVBPTkVOVFMsXG4gICAgLi4uT19UQUJMRV9GT09URVJfQ09NUE9ORU5UUyxcbiAgICBPVGFibGVSb3dFeHBhbmRhYmxlQ29tcG9uZW50LFxuICAgIE9UYWJsZVNrZWxldG9uQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgT1NoYXJlZE1vZHVsZSxcbiAgICBDZGtUYWJsZU1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBQb3J0YWxNb2R1bGUsXG4gICAgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUsXG4gICAgT0NvbnRleHRNZW51TW9kdWxlLFxuICAgIE9ic2VydmVyc01vZHVsZSxcbiAgICBPTWF0U29ydE1vZHVsZSxcbiAgICBOZ3hNYXRlcmlhbFRpbWVwaWNrZXJNb2R1bGUsXG4gICAgT0R1YWxMaXN0U2VsZWN0b3JNb2R1bGUsXG4gICAgT0RhdGFUb29sYmFyTW9kdWxlLFxuICAgIE9Ib3VySW5wdXRNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE9UYWJsZUNvbXBvbmVudCxcbiAgICBPVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgQ2RrVGFibGVNb2R1bGUsXG4gICAgT1RhYmxlQ29sdW1uQ2FsY3VsYXRlZENvbXBvbmVudCxcbiAgICBPVGFibGVDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgICBPVGFibGVSb3dEaXJlY3RpdmUsXG4gICAgT1RhYmxlRXhwYW5kZWRGb290ZXJEaXJlY3RpdmUsXG4gICAgT01hdFNvcnRNb2R1bGUsXG4gICAgT1RhYmxlRXhwb3J0QnV0dG9uQ29tcG9uZW50LFxuICAgIE9UYWJsZVJvd0NsYXNzUGlwZSxcbiAgICAuLi5PX1RBQkxFX0hFQURFUl9DT01QT05FTlRTX0VYUE9SVEVELFxuICAgIC4uLk9fVEFCTEVfQ0VMTF9SRU5ERVJFUlMsXG4gICAgLi4uT19UQUJMRV9DRUxMX0VESVRPUlMsXG4gICAgLi4uT19UQUJMRV9GT09URVJfQ09NUE9ORU5UUyxcbiAgICBPVGFibGVSb3dFeHBhbmRhYmxlQ29tcG9uZW50LFxuICAgIE9UYWJsZVNrZWxldG9uQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIE9UYWJsZUV4cG9ydEJ1dHRvblNlcnZpY2UsXG4gICAgT1RhYmxlRmlsdGVyQnlDb2x1bW5TZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogTWF0UGFnaW5hdG9ySW50bCwgdXNlQ2xhc3M6IE9UYWJsZU1hdFBhZ2luYXRvckludGwgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9UYWJsZU1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWZpbHRlci1jaGFuZ2UtZXZlbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2ludGVyZmFjZXMvY29sdW1uLWZpbHRlci1jaGFuZ2UtZXZlbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPQ29sdW1uVmFsdWVGaWx0ZXIgfSBmcm9tIFwiLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5GaWx0ZXJDaGFuZ2VFdmVudCB7XG4gIGFjdGlvbjogJ2FkZCcgfCAndXBkYXRlJyB8ICdyZW1vdmUnO1xuICBjb2x1bW5zPzogQXJyYXk8c3RyaW5nPjtcbiAgZmlsdGVycz86IE9Db2x1bW5WYWx1ZUZpbHRlcltdO1xufSJdfQ==
|
|
@@ -45,4 +45,5 @@ export * from './base-response.interface';
|
|
|
45
45
|
export * from './service-response.interface';
|
|
46
46
|
export * from './jsonapi-config.interface';
|
|
47
47
|
export * from './jsonapi-response.interface';
|
|
48
|
-
|
|
48
|
+
export * from './column-filter-change-event.interface';
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwLW1lbnUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1zZXJ2aWNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LW9uLWRlbWFuZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQtb24tZGVtYW5kLXNlcnZpY2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtc2VydmljZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBvcnQtc2VydmljZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXNlcnZpY2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLWJ1aWxkZXItY29tcG9uZW50LXRhcmdldC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWNvbnRyb2wtY29tcG9uZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZGF0YS1jb21wb25lbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1kYXRhLXR5cGUtY29tcG9uZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xheW91dC1tYW5hZ2VyLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbC1zdG9yYWdlLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tdWx0aXBsZS1zZWxlY3Rpb24uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1jb250ZXh0LW1lbnUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1mb3JtLWxheW91dC1tYW5hZ2VyLW1vZGUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1ncmlkLWl0ZW0uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1saXN0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtYnV0dG9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtYnV0dG9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXRhYmxlLWNvbHVtbi1jYWxjdWxhdGVkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtY29sdW1uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtY29sdW1ucy1ncm91cGluZy1pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXRhYmxlLWNvbnRleHQtb25leGVjdXRlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXRhYmxlLW1lbnUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby10YWJsZS1vbmNsaWNrLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXRhYmxlLXBhZ2luYXRvci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXRhYmxlLXF1aWNrZmlsdGVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb25zLXNlcnZpY2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1kYXRhLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXJlc3BvbnNlLWFkYXB0ZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBvcnQtZGF0YS1wcm92aWRlci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXRhYmxlLWV4cG9ydC1kYXRhLmludGVyZmFjZSdcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktcGFyYW1ldGVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZGF0YS1jb21wb25lbnQtaGFzaC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwtc2VydmljZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLWNvbnRleHQuaW50ZXJmYWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWxheW91dC1tYW5hZ2VyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9qc29uYXBpLWNvbmZpZy5pbnRlcmZhY2UnXG5leHBvcnQgKiBmcm9tICcuL2pzb25hcGktcmVzcG9uc2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1uLWZpbHRlci1jaGFuZ2UtZXZlbnQuaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -555,4 +555,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
555
555
|
type: HostListener,
|
|
556
556
|
args: ['window:beforeunload', []]
|
|
557
557
|
}] } });
|
|
558
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLWxheW91dC1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9sYXlvdXRzL2Zvcm0tbGF5b3V0L28tZm9ybS1sYXlvdXQtbWFuYWdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvbGF5b3V0cy9mb3JtLWxheW91dC9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osUUFBUSxFQUdSLFFBQVEsRUFDUixRQUFRLEVBRVIsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQWlDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBaUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFL0YsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFD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aWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGYsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQm9vbGVhbklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgSUxheW91dE1hbmFnZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2xheW91dC1tYW5hZ2VyLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUxvY2FsU3RvcmFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbG9jYWwtc3RvcmFnZS1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9Gb3JtTGF5b3V0TWFuYWdlck1vZGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL28tZm9ybS1sYXlvdXQtbWFuYWdlci1tb2RlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZVNlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZm9ybS1sYXlvdXQtbWFuYWdlci1jb21wb25lbnQtc3RhdGUuY2xhc3MnO1xuaW1wb3J0IHsgT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1mb3JtLWxheW91dC1tYW5hZ2VyLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUxheW91dENsb3NlRGV0YWlsT3B0aW9ucywgRm9ybUxheW91dERldGFpbENvbXBvbmVudERhdGEgfSBmcm9tICcuLi8uLi90eXBlcy9mb3JtLWxheW91dC1kZXRhaWwtY29tcG9uZW50LWRhdGEudHlwZSc7XG5pbXBvcnQgeyBPX0dMT0JBTF9DT05GSUcgfSBmcm9tICcuLi8uLi90eXBlcy9vLWdsb2JhbC1jb25maWcudHlwZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPRm9ybUxheW91dERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nL28tZm9ybS1sYXlvdXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUZvcm1MYXlvdXRDaGlsZEd1YXJkIH0gZnJvbSAnLi9ndWFyZHMvby1mb3JtLWxheW91dC1jYW4tYWN0aXZhdGUtY2hpbGQuZ3VhcmQnO1xuaW1wb3J0IHsgT0Zvcm1MYXlvdXRNYW5hZ2VyQmFzZSB9IGZyb20gJy4vby1mb3JtLWxheW91dC1tYW5hZ2VyLWJhc2UuY2xhc3MnO1xuaW1wb3J0IHsgT0Zvcm1MYXlvdXRNYW5hZ2VyQ29udGV4dCB9IGZyb20gJy4uLy4uL3R5cGVzL2Zvcm0tbGF5b3V0LW1hbmFnZXItY29udGV4dC50eXBlJztcbmltcG9ydCB7IElPRm9ybUxheW91dE1hbmFnZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2Zvcm0tbGF5b3V0LW1hbmFnZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9fQ09NUE9ORU5UX1NUQVRFX1NFUlZJQ0UgfSBmcm9tICcuLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fRk9STV9MQVlPVVRfTUFOQUdFUiA9IFtcbiAgJ29hdHRyOiBhdHRyJyxcbiAgJ21vZGUnLFxuICAnc3RvcmVTdGF0ZTogc3RvcmUtc3RhdGUnLFxuXG4gIC8vIENvbW1vbiBmb3IgZGlhbG9nIGFuZCB0YWIgbW9kZVxuICAvLyBkZXByZWNhdGVkLCBvbmx5IG1hbnRhaW5lZCBmb3IgbGVnYWN5IHJlYXNvbnNcbiAgJ3RpdGxlJyxcbiAgJ2xhYmVsQ29sdW1uczogbGFiZWwtY29sdW1ucycsXG4gICdzZXBhcmF0b3InLFxuXG4gIC8vIGF0dHIgb2YgdGhlIGNoaWxkIGZvcm0gZnJvbSB3aGljaCB0aGUgZGF0YSBmb3IgYnVpbGRpbmcgdGhlIHRhYiB0aXRsZSB3aWxsIGJlIG9idGFpbmVkIChvbmx5IGluIHRhYiBtb2RlKVxuICAvLyBkZXByZWNhdGVkLCBvbmx5IG1hbnRhaW5lZCBmb3IgbGVnYWN5IHJlYXNvbnNcbiAgJ3RpdGxlRGF0YU9yaWdpbjogdGl0bGUtZGF0YS1vcmlnaW4nLFxuXG4gIC8vIE9ubHkgZGlhbG9nIG9wdGlvbnMgY29uZmlndXJhYmxlIGFzIGFuIGlucHV0IG9mIHRoZSBvLWZvcm0tbGF5b3V0LW1hbmFnZXIgKHVzZSB0aGUgby1mb3JtLWxheW91dC1kaWFsb2ctb3B0aW9ucyBkaXJlY3RpdmUpXG4gIC8vIGRlcHJlY2F0ZWQsIG9ubHkgbWFudGFpbmVkIGZvciBsZWdhY3kgcmVhc29uc1xuICAnZGlhbG9nV2lkdGg6IGRpYWxvZy13aWR0aCcsXG4gICdkaWFsb2dNaW5XaWR0aDogZGlhbG9nLW1pbi13aWR0aCcsXG4gICdkaWFsb2dNYXhXaWR0aDogZGlhbG9nLW1heC13aWR0aCcsXG4gICdkaWFsb2dIZWlnaHQ6IGRpYWxvZy1oZWlnaHQnLFxuICAnZGlhbG9nTWluSGVpZ2h0OiBkaWFsb2ctbWluLWhlaWdodCcsXG4gICdkaWFsb2dNYXhIZWlnaHQgZGlhbG9nLW1heC1oZWlnaHQnLFxuICAnZGlhbG9nQ2xhc3M6IGRpYWxvZy1jbGFzcycsXG4gICdkaWFsb2dUaXRsZVNlcGFyYXRvcjogZGlhbG9nLXRpdGxlLXNlcGFyYXRvcidcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19GT1JNX0xBWU9VVF9NQU5BR0VSID0gW1xuICAnb25NYWluVGFiU2VsZWN0ZWQnLFxuICAnb25TZWxlY3RlZFRhYkNoYW5nZScsXG4gICdvbkNsb3NlVGFiJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1mb3JtLWxheW91dC1tYW5hZ2VyJyxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX0ZPUk1fTEFZT1VUX01BTkFHRVIsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX0ZPUk1fTEFZT1VUX01BTkFHRVIsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ29tcG9uZW50U3RhdGVTZXJ2aWNlUHJvdmlkZXIsXG4gICAgeyBwcm92aWRlOiBPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFLCB1c2VDbGFzczogT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0sXG4gICAgeyBwcm92aWRlOiBPRm9ybUxheW91dE1hbmFnZXJCYXNlLCB1c2VFeGlzdGluZzogT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50IH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1mb3JtLWxheW91dC1tYW5hZ2VyXSc6ICd0cnVlJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95LCBJTG9jYWxTdG9yYWdlQ29tcG9uZW50LCBJT0Zvcm1MYXlvdXRNYW5hZ2VyIHtcblxuICAvLyBkZWNsYXJpbmcgdGhpcyBwcm9wZXJ0eSB0byBoYXZlIGFjY2VzIHRvIHN0YXRpYyBtZW1iZXJzIGluIHRoZSB0ZW1wbGF0ZVxuICBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQgPSBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQ7XG5cblxuICBwdWJsaWMgc3RhdGljIERJQUxPR19NT0RFID0gJ2RpYWxvZyc7XG4gIHB1YmxpYyBzdGF0aWMgVEFCX01PREUgPSAndGFiJztcbiAgcHVibGljIHN0YXRpYyBTUExJVF9QQU5FX01PREUgPSAnc3BsaXQtcGFuZSc7XG5cbiAgcHVibGljIG9hdHRyOiBzdHJpbmc7XG4gIHB1YmxpYyBfbW9kZTogc3RyaW5nID0gT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50LkRJQUxPR19NT0RFO1xuICBwdWJsaWMgc3RyZXRjaFRhYnMgPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IG1vZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbW9kZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYXZhaWxhYmxlTW9kZVZhbHVlcyA9IFtPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQuRElBTE9HX01PREUsIE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudC5UQUJfTU9ERSwgT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50LlNQTElUX1BBTkVfTU9ERV07XG4gICAgdGhpcy5fbW9kZSA9ICh2YWx1ZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoYXZhaWxhYmxlTW9kZVZhbHVlcy5pbmRleE9mKHRoaXMuX21vZGUpID09PSAtMSkge1xuICAgICAgdGhpcy5fbW9kZSA9IE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudC5ESUFMT0dfTU9ERTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NlcGFyYXRvcjogc3RyaW5nID0gJyAnO1xuXG4gIC8qKlxuICAqIEBkZXByZWNhdGVkIHVzZXIgc2hvdWxkIHVzZSB0aGUgb3B0aW9ucyBpbnB1dFxuICAqL1xuICBzZXQgc2VwYXJhdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZXBhcmF0b3IgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzZXBhcmF0b3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc2VwYXJhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZXIgc2hvdWxkIHVzZSB0aGUgb3B0aW9ucyBpbnB1dFxuICAgKi9cbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyBzdG9yZVN0YXRlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgKiBAZGVwcmVjYXRlZCB1c2VyIHNob3VsZCB1c2UgdGhlIG9wdGlvbnMgaW5wdXRcbiAgKi9cbiAgcHVibGljIHRpdGxlRGF0YU9yaWdpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGUgbmV4dCBpbnB1dHMgYXJlIGRlcHJlY2F0ZWQgYW5kIHVzZXIgc2hvdWxkIHVzZSB0aGUgT0Zvcm1MYXlvdXREaWFsb2dPcHRpb25zRGlyZWN0aXZlIGlucHV0c1xuICAgKi9cbiAgcHVibGljIGRpYWxvZ1dpZHRoOiBzdHJpbmc7XG4gIHB1YmxpYyBkaWFsb2dNaW5XaWR0aDogc3RyaW5nO1xuICBwdWJsaWMgZGlhbG9nTWF4V2lkdGg6IHN0cmluZztcbiAgcHVibGljIGRpYWxvZ0hlaWdodDogc3RyaW5nO1xuICBwdWJsaWMgZGlhbG9nTWluSGVpZ2h0OiBzdHJpbmc7XG4gIHB1YmxpYyBkaWFsb2dNYXhIZWlnaHQ6IHN0cmluZztcbiAgcHVibGljIGRpYWxvZ0NsYXNzOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIGRpYWxvZ1RpdGxlU2VwYXJhdG9yID0gJzonO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkdyb3VwJylcbiAgcHVibGljIG9UYWJHcm91cDogT0Zvcm1MYXlvdXRNYW5hZ2VyTW9kZTtcbiAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE9Gb3JtTGF5b3V0RGlhbG9nQ29tcG9uZW50PjtcbiAgQFZpZXdDaGlsZCgnc3BsaXRQYW5lJylcbiAgcHVibGljIG9TcGxpdFBhbmU6IE9Gb3JtTGF5b3V0TWFuYWdlck1vZGU7XG5cbiAgcHVibGljIG9uTWFpblRhYlNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBwdWJsaWMgb25TZWxlY3RlZFRhYkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIG9uQ2xvc2VUYWI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJvdGVjdGVkIF9sYWJlbENvbHVtbnM6IHN0cmluZztcblxuICBnZXQgbGFiZWxDb2x1bW5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsQ29sdW1ucztcbiAgfVxuXG4gIC8qKlxuICAqIEBkZXByZWNhdGVkIHVzZXIgc2hvdWxkIHVzZSB0aGUgb3B0aW9ucyBpbnB1dFxuICAqL1xuICBzZXQgbGFiZWxDb2x1bW5zKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9sYWJlbENvbHVtbnMgPSB2YWx1ZTtcbiAgICB0aGlzLl9sYWJlbENvbHNBcnJheSA9IFV0aWwucGFyc2VBcnJheSh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2xhYmVsQ29sc0FycmF5OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGdldCBsYWJlbENvbHNBcnJheSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsQ29sc0FycmF5O1xuICB9XG5cbiAgc2V0IGxhYmVsQ29sc0FycmF5KHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2xhYmVsQ29sc0FycmF5ID0gdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogT1RyYW5zbGF0ZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBvRm9ybUxheW91dE1hbmFnZXJTZXJ2aWNlOiBPRm9ybUxheW91dE1hbmFnZXJTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZTtcblxuICBwcm90ZWN0ZWQgX3RhYkdyb3VwT3B0aW9uczogYW55ID0ge307XG5cbiAgZ2V0IHRhYkdyb3VwT3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl90YWJHcm91cE9wdGlvbnM7XG4gIH1cblxuICBhZGRUYWJHcm91cE9wdGlvbnModmFsdWU6IGFueSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5fdGFiR3JvdXBPcHRpb25zLCB2YWx1ZSk7XG4gICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KCdsYWJlbENvbHVtbnMnKSkge1xuICAgICAgdGhpcy5sYWJlbENvbHNBcnJheSA9IFV0aWwucGFyc2VBcnJheSh2YWx1ZVsnbGFiZWxDb2x1bW5zJ10pO1xuICAgIH1cbiAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoJ3NlcGFyYXRvcicpKSB7XG4gICAgICB0aGlzLnNlcGFyYXRvciA9IHZhbHVlWydzZXBhcmF0b3InXTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KCdzdHJldGNoVGFicycpKSB7XG4gICAgICB0aGlzLnN0cmV0Y2hUYWJzID0gdmFsdWVbJ3N0cmV0Y2hUYWJzJ107XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9kaWFsb2dPcHRpb25zOiBhbnkgPSB7fTtcblxuICBnZXQgZGlhbG9nT3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9kaWFsb2dPcHRpb25zO1xuICB9XG5cbiAgYWRkRGlhbG9nT3B0aW9ucyh2YWx1ZTogYW55KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLl9kaWFsb2dPcHRpb25zLCB2YWx1ZSk7XG4gICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KCdsYWJlbENvbHVtbnMnKSkge1xuICAgICAgdGhpcy5sYWJlbENvbHNBcnJheSA9IFV0aWwucGFyc2VBcnJheSh2YWx1ZVsnbGFiZWxDb2x1bW5zJ10pO1xuICAgIH1cbiAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoJ3NlcGFyYXRvcicpKSB7XG4gICAgICB0aGlzLnNlcGFyYXRvciA9IHZhbHVlWydzZXBhcmF0b3InXTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KCdkaWFsb2dUaXRsZVNlcGFyYXRvcicpKSB7XG4gICAgICB0aGlzLmRpYWxvZ1RpdGxlU2VwYXJhdG9yID0gdmFsdWVbJ2RpYWxvZ1RpdGxlU2VwYXJhdG9yJ107XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9zcGxpdFBhbmVPcHRpb25zOiBhbnkgPSB7fTtcblxuICBnZXQgc3BsaXRQYW5lT3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9zcGxpdFBhbmVPcHRpb25zO1xuICB9XG5cbiAgYWRkU3BsaXRQYW5lT3B0aW9ucyh2YWx1ZTogYW55KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLl9zcGxpdFBhbmVPcHRpb25zLCB2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkaW5nR3VhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlO1xuXG4gIHB1YmxpYyBfbWFya0ZvclVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgb25UcmlnZ2VyVXBkYXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcm90ZWN0ZWQgY29tcG9uZW50U3RhdGVTZXJ2aWNlOiBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIEBTa2lwU2VsZigpIEBPcHRpb25hbCgpXG4gICAgcHVibGljIHBhcmVudEZvcm1MYXlvdXRNYW5hZ2VyOiBPRm9ybUxheW91dE1hbmFnZXJCYXNlXG4gICkge1xuICAgIHRoaXMub0Zvcm1MYXlvdXRNYW5hZ2VyU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UpO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9UcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTmF2aWdhdGlvblNlcnZpY2UpO1xuICAgIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50U3RhdGVTZXJ2aWNlPihBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZSBhcyBUeXBlPE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudFN0YXRlU2VydmljZT4pO1xuICAgIGlmICh0aGlzLnN0b3JlU3RhdGUpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uub25Sb3V0ZUNoYW5nZS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVTdGF0ZVN0b3JhZ2UoKTtcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgdGhpcy5nZXRJbmplY3Rpb25Ub2tlbkNvbmZpZygpO1xuXG4gIH1cblxuICBwcml2YXRlIGdldEluamVjdGlvblRva2VuQ29uZmlnKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvR2xvYmFsQ29uZmlnID0gdGhpcy5pbmplY3Rvci5nZXQoT19HTE9CQUxfQ09ORklHKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChvR2xvYmFsQ29uZmlnLnN0b3JlU3RhdGUpKSB7XG4gICAgICAgIHRoaXMuc3RvcmVTdGF0ZSA9IG9HbG9iYWxDb25maWcuc3RvcmVTdGF0ZTtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3JlU3RhdGUpIHtcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIERvIG5vdGhpbmcgYmVjYXVzZSBpcyBvcHRpb25hbFxuICAgIH1cbiAgfVxuXG4gIGdldCBzdGF0ZSgpOiBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnRTdGF0ZUNsYXNzIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRBY3RpdmF0ZUNoaWxkR3VhcmQoKTtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMub2F0dHIpKSB7XG4gICAgICB0aGlzLm9hdHRyID0gKHRoaXMudGl0bGUgfHwgJycpICsgdGhpcy5tb2RlO1xuICAgICAgY29uc29sZS53YXJuKCdvLWZvcm0tbGF5b3V0LW1hbmFnZXIgbXVzdCBoYXZlIGFuIHVuaXF1ZSBhdHRyJyk7XG4gICAgfVxuICAgIHRoaXMub0Zvcm1MYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3RlckZvcm1MYXlvdXRNYW5hZ2VyKHRoaXMpO1xuICAgIGlmICh0aGlzLnN0b3JlU3RhdGUpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLmluaXRpYWxpemUodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmVsUmVmKSB7XG4gICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3RpdGxlJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLm9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UucmVtb3ZlRm9ybUxheW91dE1hbmFnZXIodGhpcyk7XG4gICAgdGhpcy5kZXN0cm95QWN0aXZhdGVDaGlsZEd1YXJkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXR0cmlidXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub2F0dHI7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29tcG9uZW50S2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnRfJyArIHRoaXMub2F0dHI7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um91dGVLZXkoKTogc3RyaW5nIHtcbiAgICBsZXQgcm91dGUgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgdGhpcy5hY3RSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgcm91dGUgPSByb3V0ZS5yZXBsYWNlKHBhcmFtc1trZXldLCBrZXkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJvdXRlO1xuICB9XG5cbiAgcHVibGljIGdldERhdGFUb1N0b3JlKCk6IGFueSB7XG4gICAgY29uc3QgY29tcFJlZiA9IHRoaXMuZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpO1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZChjb21wUmVmKSA/IGNvbXBSZWYuZ2V0RGF0YVRvU3RvcmUoKSA6IHt9O1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcsIFtdKVxuICBwdWJsaWMgYmVmb3JldW5sb2FkSGFuZGxlcigpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlU3RvcmFnZSgpO1xuICB9XG5cbiAgcHVibGljIGdldExhYmVsRnJvbVVybFBhcmFtcyh1cmxQYXJhbXM6IG9iamVjdCk6IHN0cmluZyB7XG4gICAgbGV0IGxhYmVsID0gJyc7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHVybFBhcmFtcyk7XG4gICAga2V5cy5mb3JFYWNoKChwYXJhbSwgaSkgPT4ge1xuICAgICAgbGFiZWwgKz0gdXJsUGFyYW1zW3BhcmFtXSArICgoaSA8IGtleXMubGVuZ3RoIC0gMSkgPyB0aGlzLnNlcGFyYXRvciA6ICcnKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybURhdGFGcm9tTGFiZWxDb2x1bW5zKGRhdGE6IGFueSkge1xuICAgIGNvbnN0IGZvcm1EYXRhID0ge307XG4gICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaCh4ID0+IHtcbiAgICAgIGlmICh0aGlzLmxhYmVsQ29sc0FycmF5LmluZGV4T2YoeCkgPiAtMSkge1xuICAgICAgICBmb3JtRGF0YVt4XSA9IGRhdGFbeF07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1EYXRhO1xuICB9XG5cbiAgcHVibGljIGFkZEFjdGl2YXRlQ2hpbGRHdWFyZCgpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZUNvbmZpZyA9IHRoaXMuZ2V0UGFyZW50QWN0Um91dGVSb3V0ZSgpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChyb3V0ZUNvbmZpZykpIHtcbiAgICAgIGNvbnN0IGNhbkFjdGl2YXRlQ2hpbGRBcnJheSA9IChyb3V0ZUNvbmZpZy5jYW5BY3RpdmF0ZUNoaWxkIHx8IFtdKTtcbiAgICAgIGxldCBwcmV2aW91c2x5QWRkZWQgPSBmYWxzZTtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBjYW5BY3RpdmF0ZUNoaWxkQXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgY29uc3QgZ3VhcmRDaGlsZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KENhbkFjdGl2YXRlRm9ybUxheW91dENoaWxkR3VhcmQpO1xuICAgICAgICBwcmV2aW91c2x5QWRkZWQgPSAoY2FuQWN0aXZhdGVDaGlsZEFycmF5W2ldID09PSBndWFyZENoaWxkLmNvbnN0cnVjdG9yKTtcbiAgICAgICAgaWYgKHByZXZpb3VzbHlBZGRlZCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXByZXZpb3VzbHlBZGRlZCkge1xuICAgICAgICB0aGlzLmFkZGluZ0d1YXJkID0gdHJ1ZTtcbiAgICAgICAgY2FuQWN0aXZhdGVDaGlsZEFycmF5LnB1c2goQ2FuQWN0aXZhdGVGb3JtTGF5b3V0Q2hpbGRHdWFyZCk7XG4gICAgICAgIHJvdXRlQ29uZmlnLmNhbkFjdGl2YXRlQ2hpbGQgPSBjYW5BY3RpdmF0ZUNoaWxkQXJyYXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3lBY3RpdmF0ZUNoaWxkR3VhcmQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFkZGluZ0d1YXJkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub0Zvcm1MYXlvdXRNYW5hZ2VyU2VydmljZS5hY3RpdmVGb3JtTGF5b3V0TWFuYWdlciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UuY29udGV4dCA9IHZvaWQgMDtcbiAgICBjb25zdCByb3V0ZUNvbmZpZyA9IHRoaXMuZ2V0UGFyZW50QWN0Um91dGVSb3V0ZSgpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChyb3V0ZUNvbmZpZykpIHtcbiAgICAgIGZvciAobGV0IGkgPSAocm91dGVDb25maWcuY2FuQWN0aXZhdGVDaGlsZCB8fCBbXSkubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgZ3VhcmRDaGlsZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KENhbkFjdGl2YXRlRm9ybUxheW91dENoaWxkR3VhcmQpO1xuICAgICAgICBpZiAocm91dGVDb25maWcuY2FuQWN0aXZhdGVDaGlsZFtpXSA9PT0gZ3VhcmRDaGlsZC5jb25zdHJ1Y3Rvcikge1xuICAgICAgICAgIHJvdXRlQ29uZmlnLmNhbkFjdGl2YXRlQ2hpbGQuc3BsaWNlKGksIDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzRGlhbG9nTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQuRElBTE9HX01PREU7XG4gIH1cblxuICBwdWJsaWMgaXNUYWJNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09IE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudC5UQUJfTU9ERTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NwbGl0UGFuZU1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50LlNQTElUX1BBTkVfTU9ERTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREZXRhaWxDb21wb25lbnQoY2hpbGRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgdXJsOiBzdHJpbmcsIGNvbnRleHQ/OiBPRm9ybUxheW91dE1hbmFnZXJDb250ZXh0KTogdm9pZCB7XG4gICAgY2hpbGRSb3V0ZSA9IFV0aWwuZ2V0TGFzdEFjdGl2YXRlUm91dGUoY2hpbGRSb3V0ZSk7XG4gICAgY29uc3QgbmV3RGV0YWlsQ29tcDogRm9ybUxheW91dERldGFpbENvbXBvbmVudERhdGEgPSB7XG4gICAgICBwYXJhbXM6IGNoaWxkUm91dGUucGFyYW1zLFxuICAgICAgcXVlcnlQYXJhbXM6IGNoaWxkUm91dGUucXVlcnlQYXJhbXMsXG4gICAgICB1cmxTZWdtZW50czogY2hpbGRSb3V0ZS51cmwsXG4gICAgICBjb21wb25lbnQ6IGNoaWxkUm91dGUucm91dGVDb25maWcuY29tcG9uZW50LFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBpZDogVXRpbC5yYW5kb21OdW1iZXIoKS50b1N0cmluZygpLFxuICAgICAgbGFiZWw6IGNvbnRleHQ/LmxhYmVsIHx8ICcnLFxuICAgICAgaW5uZXJGb3Jtc0luZm86IHt9LFxuICAgICAgcmVuZGVyZWQ6ZmFsc2UsXG4gICAgICByZW5kZXJlclN1YmplY3Q6IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpLFxuICAgICAgaW5zZXJ0aW9uTW9kZTogY2hpbGRSb3V0ZS5xdWVyeVBhcmFtc1tDb2Rlcy5JTlNFUlRJT05fTU9ERV0gPT09ICd0cnVlJyxcbiAgICB9O1xuXG4gICAgLyoqIGxpc3RlbmluZyBmb3IgdGhlIGNvbXBvbmVudHMgdG8gYmUgcmVuZGVyZWQgdG8gZGV0ZXJtaW5lIHRoYXQgdGhlIGZvcm0tbGF5b3V0LW1hbmFnZXIgaXMgZmluaXNoZWQgbmF2aWdhdGluZy4gKi9cbiAgICBuZXdEZXRhaWxDb21wLnJlbmRlcmVyU3ViamVjdC5zdWJzY3JpYmUoKHJlbmRlcmVyOiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAocmVuZGVyZXIpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5pc05hdmlnYXRpbmcgPSAhcmVuZGVyZXI7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5pc0RpYWxvZ01vZGUoKSkge1xuICAgICAgdGhpcy5vcGVuRm9ybUxheW91dERpYWxvZyhuZXdEZXRhaWxDb21wKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29tcFJlZiA9IHRoaXMuZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpO1xuICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbXBSZWYpKSB7XG4gICAgICAgIGNvbXBSZWYub3BlbkRldGFpbChuZXdEZXRhaWxDb21wKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VEZXRhaWwob3B0aW9ucz86IEZvcm1MYXlvdXRDbG9zZURldGFpbE9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wUmVmID0gdGhpcy5nZXRMYXlvdXRNb2RlQ29tcG9uZW50KCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbXBSZWYpKSB7XG4gICAgICBjb21wUmVmLmNsb3NlRGV0YWlsKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZURldGFpbHMoZGV0YWlsc0RhdGE6IGFueVtdID0gW10sIG9wdGlvbnM/OiBGb3JtTGF5b3V0Q2xvc2VEZXRhaWxPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNUYWJNb2RlKCkgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5vVGFiR3JvdXApKSB7XG4gICAgICB0aGlzLm9UYWJHcm91cC5jbG9zZURldGFpbHMoZGV0YWlsc0RhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuRm9ybUxheW91dERpYWxvZyhkZXRhaWxDb21wOiBGb3JtTGF5b3V0RGV0YWlsQ29tcG9uZW50RGF0YSk6IHZvaWQge1xuICAgIGNvbnN0IGNzc2NsYXNzID0gWydvLWZvcm0tbGF5b3V0LWRpYWxvZy1vdmVybGF5J107XG4gICAgaWYgKHRoaXMuZGlhbG9nQ2xhc3MpIHtcbiAgICAgIGNzc2NsYXNzLnB1c2godGhpcy5kaWFsb2dDbGFzcyk7XG4gICAgfVxuXG4gICAgY29uc3QgZGlhbG9nT3B0aW9ucyA9ICh0aGlzLmRpYWxvZ09wdGlvbnMgfHwge30pO1xuXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWcgPSB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGRhdGE6IGRldGFpbENvbXAsXG4gICAgICAgIGxheW91dE1hbmFnZXJDb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIHRpdGxlOiAodGhpcy50aXRsZSB8fCBkaWFsb2dPcHRpb25zLnRpdGxlKSxcbiAgICAgICAgZGlhbG9nVGl0bGVTZXBhcmF0b3I6IHRoaXMuZGlhbG9nVGl0bGVTZXBhcmF0b3JcbiAgICAgIH0sXG4gICAgICB3aWR0aDogZGlhbG9nT3B0aW9ucy53aWR0aCB8fCB0aGlzLmRpYWxvZ1dpZHRoLFxuICAgICAgbWluV2lkdGg6IGRpYWxvZ09wdGlvbnMubWluV2lkdGggfHwgdGhpcy5kaWFsb2dNaW5XaWR0aCxcbiAgICAgIG1heFdpZHRoOiBkaWFsb2dPcHRpb25zLm1heFdpZHRoIHx8IHRoaXMuZGlhbG9nTWF4V2lkdGgsXG4gICAgICBoZWlnaHQ6IGRpYWxvZ09wdGlvbnMuaGVpZ2h0IHx8IHRoaXMuZGlhbG9nSGVpZ2h0LFxuICAgICAgbWluSGVpZ2h0OiBkaWFsb2dPcHRpb25zLm1pbkhlaWdodCB8fCB0aGlzLmRpYWxvZ01pbkhlaWdodCxcbiAgICAgIG1heEhlaWdodDogZGlhbG9nT3B0aW9ucy5tYXhIZWlnaHQgfHwgdGhpcy5kaWFsb2dNYXhIZWlnaHQsXG4gICAgICBkaXNhYmxlQ2xvc2U6IGRpYWxvZ09wdGlvbnMuZGlzYWJsZUNsb3NlIHx8IHRydWUsXG4gICAgICBwYW5lbENsYXNzOiBkaWFsb2dPcHRpb25zLmNsYXNzIHx8IGNzc2NsYXNzXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmRpYWxvZ09wdGlvbnMpIHtcbiAgICAgIGRpYWxvZ0NvbmZpZy5jbG9zZU9uTmF2aWdhdGlvbiA9IHRoaXMuZGlhbG9nT3B0aW9ucy5jbG9zZU9uTmF2aWdhdGlvbjtcbiAgICAgIGRpYWxvZ0NvbmZpZy5iYWNrZHJvcENsYXNzID0gdGhpcy5kaWFsb2dPcHRpb25zLmJhY2tkcm9wQ2xhc3M7XG4gICAgICBkaWFsb2dDb25maWcucG9zaXRpb24gPSB0aGlzLmRpYWxvZ09wdGlvbnMucG9zaXRpb247XG4gICAgICBkaWFsb2dDb25maWcuZGlzYWJsZUNsb3NlID0gdGhpcy5kaWFsb2dPcHRpb25zLmRpc2FibGVDbG9zZTtcbiAgICB9XG5cbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oT0Zvcm1MYXlvdXREaWFsb2dDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG4gICAgdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubWFya0ZvclVwZGF0ZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUlmTmVlZGVkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbG9hZE1haW5Db21wb25lbnRzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKiBPbmNlIHRoZSBtb2RhbCBpcyBvcGVuZWQsIHRoZSBjb21wb25lbnQgaXMgcmVuZGVyZWQgYW5kIHRoZSByZW5kZXJlclN1YmplY3QgaXMgZW1pdHRlZCB0byBlbmFibGUgbmF2aWdhdGlvbiovXG4gICAgdGhpcy5kaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgZGV0YWlsQ29tcC5yZW5kZXJlZCA9IHRydWU7XG4gICAgICBkZXRhaWxDb21wLnJlbmRlcmVyU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1DYWNoZURhdGEoKTogRm9ybUxheW91dERldGFpbENvbXBvbmVudERhdGEge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQoY29tcFJlZikgPyBjb21wUmVmLmdldEZvcm1DYWNoZURhdGEoKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNb2RpZmllZFN0YXRlKGZvcm1BdHRyOiBzdHJpbmcsIG1vZGlmaWVkOiBib29sZWFuLCBjb25maXJtRXhpdDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29tcFJlZikpIHtcbiAgICAgIGNvbXBSZWYuc2V0TW9kaWZpZWRTdGF0ZShmb3JtQXR0ciwgbW9kaWZpZWQsIGNvbmZpcm1FeGl0KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFiZWxGcm9tRGF0YShkYXRhOiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBsYWJlbCA9ICcnO1xuICAgIGNvbnN0IGlzRGF0YURlZmluZWQgPSBVdGlsLmlzRGVmaW5lZChkYXRhKTtcbiAgICBpZiAoaXNEYXRhRGVmaW5lZCAmJiBkYXRhLmhhc093blByb3BlcnR5KCduZXdfdGFiX3RpdGxlJykpIHtcbiAgICAgIGxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChkYXRhLm5ld190YWJfdGl0bGUpO1xuICAgIH0gZWxzZSBpZiAoaXNEYXRhRGVmaW5lZCAmJiB0aGlzLmxhYmVsQ29sc0FycmF5Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5sYWJlbENvbHNBcnJheS5mb3JFYWNoKChjb2wsIGlkeCkgPT4ge1xuICAgICAgICBpZiAoZGF0YVtjb2xdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsYWJlbCArPSBkYXRhW2NvbF0gKyAoKGlkeCA8IHRoaXMubGFiZWxDb2xzQXJyYXkubGVuZ3RoIC0gMSkgPyB0aGlzLnNlcGFyYXRvciA6ICcnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVOYXZpZ2F0aW9uKGRhdGE6IGFueSwga2V5c1ZhbHVlczogYW55LCBpbnNlcnRpb25Nb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY29tcFJlZiA9IHRoaXMuZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb21wUmVmKSkge1xuICAgICAgY29tcFJlZi51cGRhdGVOYXZpZ2F0aW9uKGRhdGEsIGtleXNWYWx1ZXMsIGluc2VydGlvbk1vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVEYXRhKGRhdGE6IGFueSkge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29tcFJlZikpIHtcbiAgICAgIGNvbXBSZWYudXBkYXRlQWN0aXZlRGF0YShkYXRhKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Um91dGVPZkFjdGl2ZUl0ZW0oKTogYW55W10ge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQoY29tcFJlZikgPyBjb21wUmVmLmdldFJvdXRlT2ZBY3RpdmVJdGVtKCkgOiBbXTtcbiAgfVxuXG4gIHB1YmxpYyBpc01haW5Db21wb25lbnQoY29tcDogSUxheW91dE1hbmFnZXJDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0RpYWxvZ01vZGUoKSkge1xuICAgICAgcmV0dXJuICFjb21wLm9Gb3JtTGF5b3V0RGlhbG9nO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICByZXR1cm4gKFV0aWwuaXNEZWZpbmVkKGNvbXBSZWYpXG4gICAgICAmJiAoY29tcFJlZi5pc01haW5Db21wb25lbnQoY29tcClcbiAgICAgICAgfHwgKFV0aWwuaXNEZWZpbmVkKGNvbXAucGFyZW50Q29tcG9uZW50KSkgJiYgY29tcFJlZi5pc01haW5Db21wb25lbnQoY29tcC5wYXJlbnRDb21wb25lbnQpKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um91dGVGb3JDb21wb25lbnQoY29tcDogSUxheW91dE1hbmFnZXJDb21wb25lbnQpOiBhbnlbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybUxheW91dE1hbmFnZXIpIHtcbiAgICAgIGNvbnN0IHBhcmVudFJvdXRlID0gdGhpcy5wYXJlbnRGb3JtTGF5b3V0TWFuYWdlci5nZXRSb3V0ZUZvckNvbXBvbmVudChjb21wKTtcbiAgICAgIGlmIChwYXJlbnRSb3V0ZSAmJiBwYXJlbnRSb3V0ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLnBhcmVudFJvdXRlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzTWFpbkNvbXBvbmVudChjb21wKSkge1xuICAgICAgY29uc3QgYWN0aXZlUm91dGUgPSB0aGlzLmdldFJvdXRlT2ZBY3RpdmVJdGVtKCk7XG5cbiAgICAgIGlmIChhY3RpdmVSb3V0ZSAmJiBhY3RpdmVSb3V0ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLmFjdGl2ZVJvdXRlKTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgc2V0QXNBY3RpdmVGb3JtTGF5b3V0TWFuYWdlcigpOiB2b2lkIHtcbiAgICB0aGlzLm9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UuYWN0aXZlRm9ybUxheW91dE1hbmFnZXIgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZE1haW5Db21wb25lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMub25UcmlnZ2VyVXBkYXRlLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxvd1RvVXBkYXRlTmF2aWdhdGlvbihmb3JtQXR0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmlzVGFiTW9kZSgpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMub1RhYkdyb3VwKSAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLnRpdGxlRGF0YU9yaWdpbikpID9cbiAgICAgIHRoaXMudGl0bGVEYXRhT3JpZ2luID09PSBmb3JtQXR0ciA6XG4gICAgICB0cnVlO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlU3RvcmFnZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubG9jYWxTdG9yYWdlU2VydmljZSB8fCAhdGhpcy5zdG9yZVN0YXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGlzVGFiTW9kZSA9IHRoaXMuaXNUYWJNb2RlKCkgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5vVGFiR3JvdXApO1xuICAgIGNvbnN0IGlzU3BsaXRQYW5lTW9kZSA9IHRoaXMuaXNTcGxpdFBhbmVNb2RlKCkgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5vU3BsaXRQYW5lKTtcbiAgICBpZiAoaXNUYWJNb2RlIHx8IGlzU3BsaXRQYW5lTW9kZSkge1xuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUNvbXBvbmVudFN0b3JhZ2UodGhpcywgdGhpcy5nZXRSb3V0ZUtleSgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBhcmVudEFjdFJvdXRlUm91dGUoKTogUm91dGUge1xuICAgIGxldCBhY3RSb3V0ZSA9IHRoaXMuYWN0Um91dGU7XG4gICAgd2hpbGUgKGFjdFJvdXRlLnBhcmVudCAhPT0gdW5kZWZpbmVkICYmIGFjdFJvdXRlLnBhcmVudCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGFjdFJvdXRlLnJvdXRlQ29uZmlnLmNoaWxkcmVuIHx8IGFjdFJvdXRlLnJvdXRlQ29uZmlnLmxvYWRDaGlsZHJlbikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGFjdFJvdXRlID0gYWN0Um91dGUucGFyZW50O1xuICAgIH1cbiAgICByZXR1cm4gYWN0Um91dGUucm91dGVDb25maWc7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSWZOZWVkZWQoKSB7XG4gICAgaWYgKHRoaXMubWFya0ZvclVwZGF0ZSkge1xuICAgICAgdGhpcy5tYXJrRm9yVXBkYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLm9uVHJpZ2dlclVwZGF0ZS5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFBhcmFtcygpOiBhbnkge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQoY29tcFJlZikgPyBjb21wUmVmLmdldFBhcmFtcygpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgc2V0IG1hcmtGb3JVcGRhdGUoYXJnOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbWFya0ZvclVwZGF0ZSA9IGFyZztcbiAgICBpZiAodGhpcy5pc1NwbGl0UGFuZU1vZGUoKSkge1xuICAgICAgdGhpcy51cGRhdGVJZk5lZWRlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtYXJrRm9yVXBkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tYXJrRm9yVXBkYXRlO1xuICB9XG5cbiAgZ2V0IGlnbm9yZUNhbkRlYWN0aXZhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzU3BsaXRQYW5lTW9kZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldExheW91dE1vZGVDb21wb25lbnQoKTogT0Zvcm1MYXlvdXRNYW5hZ2VyTW9kZSB7XG4gICAgbGV0IGNvbXBSZWY7XG4gICAgaWYgKHRoaXMuaXNUYWJNb2RlKCkgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5vVGFiR3JvdXApKSB7XG4gICAgICBjb21wUmVmID0gdGhpcy5vVGFiR3JvdXA7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRGlhbG9nTW9kZSgpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuZGlhbG9nUmVmKSkge1xuICAgICAgY29tcFJlZiA9IHRoaXMuZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1NwbGl0UGFuZU1vZGUoKSAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLm9TcGxpdFBhbmUpKSB7XG4gICAgICBjb21wUmVmID0gdGhpcy5vU3BsaXRQYW5lO1xuICAgIH1cbiAgICByZXR1cm4gY29tcFJlZjtcbiAgfVxuXG4gIGFsbG93TmF2aWdhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNUYWJNb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgY2FuQWRkRGV0YWlsQ29tcG9uZW50KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICByZXR1cm4gVXRpbC53cmFwSW50b09ic2VydmFibGUoVXRpbC5pc0RlZmluZWQoY29tcFJlZikgPyBjb21wUmVmLmNhbkFkZERldGFpbENvbXBvbmVudCgpIDogdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgaGFzVG9Db25maXJtRXhpdChkYXRhOiBGb3JtTGF5b3V0RGV0YWlsQ29tcG9uZW50RGF0YSwgb3B0aW9ucz86IEZvcm1MYXlvdXRDbG9zZURldGFpbE9wdGlvbnMpOiBib29sZWFuIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQob3B0aW9ucykgJiYgb3B0aW9ucy5leGl0V2l0aG91dENvbmZpcm1hdGlvbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBmb3Jtc0F0dHIgPSBPYmplY3Qua2V5cyhkYXRhLmlubmVyRm9ybXNJbmZvKTtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XG4gICAgaWYgKGZvcm1zQXR0ci5sZW5ndGggPiAwKSB7XG4gICAgICBmb3Jtc0F0dHIuZm9yRWFjaChmb3JtQXR0ciA9PiB7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBkYXRhLmlubmVyRm9ybXNJbmZvW2Zvcm1BdHRyXTtcbiAgICAgICAgICByZXN1bHQgPSBmb3JtRGF0YS5jb25maXJtT25FeGl0ICYmIGZvcm1EYXRhLm1vZGlmaWVkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJZE9mQWN0aXZlSXRlbSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQoY29tcFJlZikgPyBgJHt0aGlzLm9hdHRyfS0ke2NvbXBSZWYuZ2V0SWRPZkFjdGl2ZUl0ZW0oKX0tYCA6ICcnO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIk9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudC5UQUJfTU9ERVwiPlxuICAgIDxvLWZvcm0tbGF5b3V0LXRhYmdyb3VwICN0YWJHcm91cCBbdGl0bGVdPVwidGl0bGVcIiAob25NYWluVGFiU2VsZWN0ZWQpPVwib25NYWluVGFiU2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChvblNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uU2VsZWN0ZWRUYWJDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgKG9uQ2xvc2VUYWIpPVwib25DbG9zZVRhYi5lbWl0KCRldmVudClcIlxuICAgICAgW29wdGlvbnNdPVwidGFiR3JvdXBPcHRpb25zXCIgW3N0cmV0Y2gtdGFic109XCJzdHJldGNoVGFic1wiPlxuICAgICAgPG5nLWNvbnRlbnQgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50QmxvY2tcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9vLWZvcm0tbGF5b3V0LXRhYmdyb3VwPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQuU1BMSVRfUEFORV9NT0RFXCI+XG4gICAgPG8tZm9ybS1sYXlvdXQtc3BsaXQtcGFuZSAjc3BsaXRQYW5lIFtvcHRpb25zXT1cInNwbGl0UGFuZU9wdGlvbnNcIj5cbiAgICAgIDxuZy1jb250ZW50ICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudEJsb2NrXCI+PC9uZy1jb250ZW50PlxuICAgIDwvby1mb3JtLWxheW91dC1zcGxpdC1wYW5lPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQuRElBTE9HX01PREVcIj5cbiAgICA8bmctY29udGVudCAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRCbG9ja1wiPjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnRCbG9jaz5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
558
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLWxheW91dC1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9sYXlvdXRzL2Zvcm0tbGF5b3V0L28tZm9ybS1sYXlvdXQtbWFuYWdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvbGF5b3V0cy9mb3JtLWxheW91dC9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osUUFBUSxFQUdSLFFBQVEsRUFDUixRQUFRLEVBRVIsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQWlDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBaUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFL0YsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFD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aWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGYsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQm9vbGVhbklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgSUxheW91dE1hbmFnZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2xheW91dC1tYW5hZ2VyLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUxvY2FsU3RvcmFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbG9jYWwtc3RvcmFnZS1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9Gb3JtTGF5b3V0TWFuYWdlck1vZGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL28tZm9ybS1sYXlvdXQtbWFuYWdlci1tb2RlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZVNlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZm9ybS1sYXlvdXQtbWFuYWdlci1jb21wb25lbnQtc3RhdGUuY2xhc3MnO1xuaW1wb3J0IHsgT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1mb3JtLWxheW91dC1tYW5hZ2VyLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUxheW91dENsb3NlRGV0YWlsT3B0aW9ucywgRm9ybUxheW91dERldGFpbENvbXBvbmVudERhdGEgfSBmcm9tICcuLi8uLi90eXBlcy9mb3JtLWxheW91dC1kZXRhaWwtY29tcG9uZW50LWRhdGEudHlwZSc7XG5pbXBvcnQgeyBPX0dMT0JBTF9DT05GSUcgfSBmcm9tICcuLi8uLi90eXBlcy9vLWdsb2JhbC1jb25maWcudHlwZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPRm9ybUxheW91dERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nL28tZm9ybS1sYXlvdXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUZvcm1MYXlvdXRDaGlsZEd1YXJkIH0gZnJvbSAnLi9ndWFyZHMvby1mb3JtLWxheW91dC1jYW4tYWN0aXZhdGUtY2hpbGQuZ3VhcmQnO1xuaW1wb3J0IHsgT0Zvcm1MYXlvdXRNYW5hZ2VyQmFzZSB9IGZyb20gJy4vby1mb3JtLWxheW91dC1tYW5hZ2VyLWJhc2UuY2xhc3MnO1xuaW1wb3J0IHsgT0Zvcm1MYXlvdXRNYW5hZ2VyQ29udGV4dCB9IGZyb20gJy4uLy4uL3R5cGVzL2Zvcm0tbGF5b3V0LW1hbmFnZXItY29udGV4dC50eXBlJztcbmltcG9ydCB7IElPRm9ybUxheW91dE1hbmFnZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2Zvcm0tbGF5b3V0LW1hbmFnZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9fQ09NUE9ORU5UX1NUQVRFX1NFUlZJQ0UgfSBmcm9tICcuLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fRk9STV9MQVlPVVRfTUFOQUdFUiA9IFtcbiAgJ29hdHRyOiBhdHRyJyxcbiAgJ21vZGUnLFxuICAnc3RvcmVTdGF0ZTogc3RvcmUtc3RhdGUnLFxuXG4gIC8vIENvbW1vbiBmb3IgZGlhbG9nIGFuZCB0YWIgbW9kZVxuICAvLyBkZXByZWNhdGVkLCBvbmx5IG1hbnRhaW5lZCBmb3IgbGVnYWN5IHJlYXNvbnNcbiAgJ3RpdGxlJyxcbiAgJ2xhYmVsQ29sdW1uczogbGFiZWwtY29sdW1ucycsXG4gICdzZXBhcmF0b3InLFxuXG4gIC8vIGF0dHIgb2YgdGhlIGNoaWxkIGZvcm0gZnJvbSB3aGljaCB0aGUgZGF0YSBmb3IgYnVpbGRpbmcgdGhlIHRhYiB0aXRsZSB3aWxsIGJlIG9idGFpbmVkIChvbmx5IGluIHRhYiBtb2RlKVxuICAvLyBkZXByZWNhdGVkLCBvbmx5IG1hbnRhaW5lZCBmb3IgbGVnYWN5IHJlYXNvbnNcbiAgJ3RpdGxlRGF0YU9yaWdpbjogdGl0bGUtZGF0YS1vcmlnaW4nLFxuXG4gIC8vIE9ubHkgZGlhbG9nIG9wdGlvbnMgY29uZmlndXJhYmxlIGFzIGFuIGlucHV0IG9mIHRoZSBvLWZvcm0tbGF5b3V0LW1hbmFnZXIgKHVzZSB0aGUgby1mb3JtLWxheW91dC1kaWFsb2ctb3B0aW9ucyBkaXJlY3RpdmUpXG4gIC8vIGRlcHJlY2F0ZWQsIG9ubHkgbWFudGFpbmVkIGZvciBsZWdhY3kgcmVhc29uc1xuICAnZGlhbG9nV2lkdGg6IGRpYWxvZy13aWR0aCcsXG4gICdkaWFsb2dNaW5XaWR0aDogZGlhbG9nLW1pbi13aWR0aCcsXG4gICdkaWFsb2dNYXhXaWR0aDogZGlhbG9nLW1heC13aWR0aCcsXG4gICdkaWFsb2dIZWlnaHQ6IGRpYWxvZy1oZWlnaHQnLFxuICAnZGlhbG9nTWluSGVpZ2h0OiBkaWFsb2ctbWluLWhlaWdodCcsXG4gICdkaWFsb2dNYXhIZWlnaHQgZGlhbG9nLW1heC1oZWlnaHQnLFxuICAnZGlhbG9nQ2xhc3M6IGRpYWxvZy1jbGFzcycsXG4gICdkaWFsb2dUaXRsZVNlcGFyYXRvcjogZGlhbG9nLXRpdGxlLXNlcGFyYXRvcidcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19GT1JNX0xBWU9VVF9NQU5BR0VSID0gW1xuICAnb25NYWluVGFiU2VsZWN0ZWQnLFxuICAnb25TZWxlY3RlZFRhYkNoYW5nZScsXG4gICdvbkNsb3NlVGFiJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1mb3JtLWxheW91dC1tYW5hZ2VyJyxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX0ZPUk1fTEFZT1VUX01BTkFHRVIsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX0ZPUk1fTEFZT1VUX01BTkFHRVIsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ29tcG9uZW50U3RhdGVTZXJ2aWNlUHJvdmlkZXIsXG4gICAgeyBwcm92aWRlOiBPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFLCB1c2VDbGFzczogT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0sXG4gICAgeyBwcm92aWRlOiBPRm9ybUxheW91dE1hbmFnZXJCYXNlLCB1c2VFeGlzdGluZzogT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50IH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1mb3JtLWxheW91dC1tYW5hZ2VyXSc6ICd0cnVlJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95LCBJTG9jYWxTdG9yYWdlQ29tcG9uZW50LCBJT0Zvcm1MYXlvdXRNYW5hZ2VyIHtcblxuICAvLyBkZWNsYXJpbmcgdGhpcyBwcm9wZXJ0eSB0byBoYXZlIGFjY2VzIHRvIHN0YXRpYyBtZW1iZXJzIGluIHRoZSB0ZW1wbGF0ZVxuICBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQgPSBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQ7XG5cblxuICBwdWJsaWMgc3RhdGljIERJQUxPR19NT0RFID0gJ2RpYWxvZyc7XG4gIHB1YmxpYyBzdGF0aWMgVEFCX01PREUgPSAndGFiJztcbiAgcHVibGljIHN0YXRpYyBTUExJVF9QQU5FX01PREUgPSAnc3BsaXQtcGFuZSc7XG5cbiAgcHVibGljIG9hdHRyOiBzdHJpbmc7XG4gIHB1YmxpYyBfbW9kZTogc3RyaW5nID0gT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50LkRJQUxPR19NT0RFO1xuICBwdWJsaWMgc3RyZXRjaFRhYnMgPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IG1vZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbW9kZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYXZhaWxhYmxlTW9kZVZhbHVlcyA9IFtPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQuRElBTE9HX01PREUsIE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudC5UQUJfTU9ERSwgT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50LlNQTElUX1BBTkVfTU9ERV07XG4gICAgdGhpcy5fbW9kZSA9ICh2YWx1ZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoYXZhaWxhYmxlTW9kZVZhbHVlcy5pbmRleE9mKHRoaXMuX21vZGUpID09PSAtMSkge1xuICAgICAgdGhpcy5fbW9kZSA9IE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudC5ESUFMT0dfTU9ERTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NlcGFyYXRvcjogc3RyaW5nID0gJyAnO1xuXG4gIC8qKlxuICAqIEBkZXByZWNhdGVkIHVzZXIgc2hvdWxkIHVzZSB0aGUgb3B0aW9ucyBpbnB1dFxuICAqL1xuICBzZXQgc2VwYXJhdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZXBhcmF0b3IgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzZXBhcmF0b3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc2VwYXJhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZXIgc2hvdWxkIHVzZSB0aGUgb3B0aW9ucyBpbnB1dFxuICAgKi9cbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyBzdG9yZVN0YXRlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgKiBAZGVwcmVjYXRlZCB1c2VyIHNob3VsZCB1c2UgdGhlIG9wdGlvbnMgaW5wdXRcbiAgKi9cbiAgcHVibGljIHRpdGxlRGF0YU9yaWdpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGUgbmV4dCBpbnB1dHMgYXJlIGRlcHJlY2F0ZWQgYW5kIHVzZXIgc2hvdWxkIHVzZSB0aGUgT0Zvcm1MYXlvdXREaWFsb2dPcHRpb25zRGlyZWN0aXZlIGlucHV0c1xuICAgKi9cbiAgcHVibGljIGRpYWxvZ1dpZHRoOiBzdHJpbmc7XG4gIHB1YmxpYyBkaWFsb2dNaW5XaWR0aDogc3RyaW5nO1xuICBwdWJsaWMgZGlhbG9nTWF4V2lkdGg6IHN0cmluZztcbiAgcHVibGljIGRpYWxvZ0hlaWdodDogc3RyaW5nO1xuICBwdWJsaWMgZGlhbG9nTWluSGVpZ2h0OiBzdHJpbmc7XG4gIHB1YmxpYyBkaWFsb2dNYXhIZWlnaHQ6IHN0cmluZztcbiAgcHVibGljIGRpYWxvZ0NsYXNzOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIGRpYWxvZ1RpdGxlU2VwYXJhdG9yID0gJzonO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkdyb3VwJylcbiAgcHVibGljIG9UYWJHcm91cDogT0Zvcm1MYXlvdXRNYW5hZ2VyTW9kZTtcbiAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE9Gb3JtTGF5b3V0RGlhbG9nQ29tcG9uZW50PjtcbiAgQFZpZXdDaGlsZCgnc3BsaXRQYW5lJylcbiAgcHVibGljIG9TcGxpdFBhbmU6IE9Gb3JtTGF5b3V0TWFuYWdlck1vZGU7XG5cbiAgcHVibGljIG9uTWFpblRhYlNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBwdWJsaWMgb25TZWxlY3RlZFRhYkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIG9uQ2xvc2VUYWI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJvdGVjdGVkIF9sYWJlbENvbHVtbnM6IHN0cmluZztcblxuICBnZXQgbGFiZWxDb2x1bW5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsQ29sdW1ucztcbiAgfVxuXG4gIC8qKlxuICAqIEBkZXByZWNhdGVkIHVzZXIgc2hvdWxkIHVzZSB0aGUgb3B0aW9ucyBpbnB1dFxuICAqL1xuICBzZXQgbGFiZWxDb2x1bW5zKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9sYWJlbENvbHVtbnMgPSB2YWx1ZTtcbiAgICB0aGlzLl9sYWJlbENvbHNBcnJheSA9IFV0aWwucGFyc2VBcnJheSh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2xhYmVsQ29sc0FycmF5OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGdldCBsYWJlbENvbHNBcnJheSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsQ29sc0FycmF5O1xuICB9XG5cbiAgc2V0IGxhYmVsQ29sc0FycmF5KHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2xhYmVsQ29sc0FycmF5ID0gdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogT1RyYW5zbGF0ZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBvRm9ybUxheW91dE1hbmFnZXJTZXJ2aWNlOiBPRm9ybUxheW91dE1hbmFnZXJTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZTtcblxuICBwcm90ZWN0ZWQgX3RhYkdyb3VwT3B0aW9uczogYW55ID0ge307XG5cbiAgZ2V0IHRhYkdyb3VwT3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl90YWJHcm91cE9wdGlvbnM7XG4gIH1cblxuICBhZGRUYWJHcm91cE9wdGlvbnModmFsdWU6IGFueSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5fdGFiR3JvdXBPcHRpb25zLCB2YWx1ZSk7XG4gICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KCdsYWJlbENvbHVtbnMnKSkge1xuICAgICAgdGhpcy5sYWJlbENvbHNBcnJheSA9IFV0aWwucGFyc2VBcnJheSh2YWx1ZVsnbGFiZWxDb2x1bW5zJ10pO1xuICAgIH1cbiAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoJ3NlcGFyYXRvcicpKSB7XG4gICAgICB0aGlzLnNlcGFyYXRvciA9IHZhbHVlWydzZXBhcmF0b3InXTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KCdzdHJldGNoVGFicycpKSB7XG4gICAgICB0aGlzLnN0cmV0Y2hUYWJzID0gdmFsdWVbJ3N0cmV0Y2hUYWJzJ107XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9kaWFsb2dPcHRpb25zOiBhbnkgPSB7fTtcblxuICBnZXQgZGlhbG9nT3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9kaWFsb2dPcHRpb25zO1xuICB9XG5cbiAgYWRkRGlhbG9nT3B0aW9ucyh2YWx1ZTogYW55KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLl9kaWFsb2dPcHRpb25zLCB2YWx1ZSk7XG4gICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KCdsYWJlbENvbHVtbnMnKSkge1xuICAgICAgdGhpcy5sYWJlbENvbHNBcnJheSA9IFV0aWwucGFyc2VBcnJheSh2YWx1ZVsnbGFiZWxDb2x1bW5zJ10pO1xuICAgIH1cbiAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoJ3NlcGFyYXRvcicpKSB7XG4gICAgICB0aGlzLnNlcGFyYXRvciA9IHZhbHVlWydzZXBhcmF0b3InXTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KCdkaWFsb2dUaXRsZVNlcGFyYXRvcicpKSB7XG4gICAgICB0aGlzLmRpYWxvZ1RpdGxlU2VwYXJhdG9yID0gdmFsdWVbJ2RpYWxvZ1RpdGxlU2VwYXJhdG9yJ107XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9zcGxpdFBhbmVPcHRpb25zOiBhbnkgPSB7fTtcblxuICBnZXQgc3BsaXRQYW5lT3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9zcGxpdFBhbmVPcHRpb25zO1xuICB9XG5cbiAgYWRkU3BsaXRQYW5lT3B0aW9ucyh2YWx1ZTogYW55KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLl9zcGxpdFBhbmVPcHRpb25zLCB2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkaW5nR3VhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlO1xuXG4gIHB1YmxpYyBfbWFya0ZvclVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgb25UcmlnZ2VyVXBkYXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcm90ZWN0ZWQgY29tcG9uZW50U3RhdGVTZXJ2aWNlOiBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIEBTa2lwU2VsZigpIEBPcHRpb25hbCgpXG4gICAgcHVibGljIHBhcmVudEZvcm1MYXlvdXRNYW5hZ2VyOiBPRm9ybUxheW91dE1hbmFnZXJCYXNlXG4gICkge1xuICAgIHRoaXMub0Zvcm1MYXlvdXRNYW5hZ2VyU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UpO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9UcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTmF2aWdhdGlvblNlcnZpY2UpO1xuICAgIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50U3RhdGVTZXJ2aWNlPihBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZSBhcyBUeXBlPE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudFN0YXRlU2VydmljZT4pO1xuICAgIGlmICh0aGlzLnN0b3JlU3RhdGUpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uub25Sb3V0ZUNoYW5nZS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVTdGF0ZVN0b3JhZ2UoKTtcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgdGhpcy5nZXRJbmplY3Rpb25Ub2tlbkNvbmZpZygpO1xuXG4gIH1cblxuICBwcml2YXRlIGdldEluamVjdGlvblRva2VuQ29uZmlnKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvR2xvYmFsQ29uZmlnID0gdGhpcy5pbmplY3Rvci5nZXQoT19HTE9CQUxfQ09ORklHKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChvR2xvYmFsQ29uZmlnLnN0b3JlU3RhdGUpKSB7XG4gICAgICAgIHRoaXMuc3RvcmVTdGF0ZSA9IG9HbG9iYWxDb25maWcuc3RvcmVTdGF0ZTtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3JlU3RhdGUpIHtcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIERvIG5vdGhpbmcgYmVjYXVzZSBpcyBvcHRpb25hbFxuICAgIH1cbiAgfVxuXG4gIGdldCBzdGF0ZSgpOiBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnRTdGF0ZUNsYXNzIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRBY3RpdmF0ZUNoaWxkR3VhcmQoKTtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMub2F0dHIpKSB7XG4gICAgICB0aGlzLm9hdHRyID0gKHRoaXMudGl0bGUgfHwgJycpICsgdGhpcy5tb2RlO1xuICAgICAgY29uc29sZS53YXJuKCdvLWZvcm0tbGF5b3V0LW1hbmFnZXIgbXVzdCBoYXZlIGFuIHVuaXF1ZSBhdHRyJyk7XG4gICAgfVxuICAgIHRoaXMub0Zvcm1MYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3RlckZvcm1MYXlvdXRNYW5hZ2VyKHRoaXMpO1xuICAgIGlmICh0aGlzLnN0b3JlU3RhdGUpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLmluaXRpYWxpemUodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmVsUmVmKSB7XG4gICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3RpdGxlJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLm9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UucmVtb3ZlRm9ybUxheW91dE1hbmFnZXIodGhpcyk7XG4gICAgdGhpcy5kZXN0cm95QWN0aXZhdGVDaGlsZEd1YXJkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXR0cmlidXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub2F0dHI7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29tcG9uZW50S2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnRfJyArIHRoaXMub2F0dHI7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um91dGVLZXkoKTogc3RyaW5nIHtcbiAgICBsZXQgcm91dGUgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgdGhpcy5hY3RSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgcm91dGUgPSByb3V0ZS5yZXBsYWNlKHBhcmFtc1trZXldLCBrZXkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJvdXRlO1xuICB9XG5cbiAgcHVibGljIGdldERhdGFUb1N0b3JlKCk6IGFueSB7XG4gICAgY29uc3QgY29tcFJlZiA9IHRoaXMuZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpO1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZChjb21wUmVmKSA/IGNvbXBSZWYuZ2V0RGF0YVRvU3RvcmUoKSA6IHt9O1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcsIFtdKVxuICBwdWJsaWMgYmVmb3JldW5sb2FkSGFuZGxlcigpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlU3RvcmFnZSgpO1xuICB9XG5cbiAgcHVibGljIGdldExhYmVsRnJvbVVybFBhcmFtcyh1cmxQYXJhbXM6IG9iamVjdCk6IHN0cmluZyB7XG4gICAgbGV0IGxhYmVsID0gJyc7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHVybFBhcmFtcyk7XG4gICAga2V5cy5mb3JFYWNoKChwYXJhbSwgaSkgPT4ge1xuICAgICAgbGFiZWwgKz0gdXJsUGFyYW1zW3BhcmFtXSArICgoaSA8IGtleXMubGVuZ3RoIC0gMSkgPyB0aGlzLnNlcGFyYXRvciA6ICcnKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybURhdGFGcm9tTGFiZWxDb2x1bW5zKGRhdGE6IGFueSkge1xuICAgIGNvbnN0IGZvcm1EYXRhID0ge307XG4gICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaCh4ID0+IHtcbiAgICAgIGlmICh0aGlzLmxhYmVsQ29sc0FycmF5LmluZGV4T2YoeCkgPiAtMSkge1xuICAgICAgICBmb3JtRGF0YVt4XSA9IGRhdGFbeF07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1EYXRhO1xuICB9XG5cbiAgcHVibGljIGFkZEFjdGl2YXRlQ2hpbGRHdWFyZCgpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZUNvbmZpZyA9IHRoaXMuZ2V0UGFyZW50QWN0Um91dGVSb3V0ZSgpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChyb3V0ZUNvbmZpZykpIHtcbiAgICAgIGNvbnN0IGNhbkFjdGl2YXRlQ2hpbGRBcnJheSA9IChyb3V0ZUNvbmZpZy5jYW5BY3RpdmF0ZUNoaWxkIHx8IFtdKTtcbiAgICAgIGxldCBwcmV2aW91c2x5QWRkZWQgPSBmYWxzZTtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBjYW5BY3RpdmF0ZUNoaWxkQXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgY29uc3QgZ3VhcmRDaGlsZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KENhbkFjdGl2YXRlRm9ybUxheW91dENoaWxkR3VhcmQpO1xuICAgICAgICBwcmV2aW91c2x5QWRkZWQgPSAoY2FuQWN0aXZhdGVDaGlsZEFycmF5W2ldID09PSBndWFyZENoaWxkLmNvbnN0cnVjdG9yKTtcbiAgICAgICAgaWYgKHByZXZpb3VzbHlBZGRlZCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXByZXZpb3VzbHlBZGRlZCkge1xuICAgICAgICB0aGlzLmFkZGluZ0d1YXJkID0gdHJ1ZTtcbiAgICAgICAgY2FuQWN0aXZhdGVDaGlsZEFycmF5LnB1c2goQ2FuQWN0aXZhdGVGb3JtTGF5b3V0Q2hpbGRHdWFyZCk7XG4gICAgICAgIHJvdXRlQ29uZmlnLmNhbkFjdGl2YXRlQ2hpbGQgPSBjYW5BY3RpdmF0ZUNoaWxkQXJyYXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3lBY3RpdmF0ZUNoaWxkR3VhcmQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFkZGluZ0d1YXJkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub0Zvcm1MYXlvdXRNYW5hZ2VyU2VydmljZS5hY3RpdmVGb3JtTGF5b3V0TWFuYWdlciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UuY29udGV4dCA9IHZvaWQgMDtcbiAgICBjb25zdCByb3V0ZUNvbmZpZyA9IHRoaXMuZ2V0UGFyZW50QWN0Um91dGVSb3V0ZSgpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChyb3V0ZUNvbmZpZykpIHtcbiAgICAgIGZvciAobGV0IGkgPSAocm91dGVDb25maWcuY2FuQWN0aXZhdGVDaGlsZCB8fCBbXSkubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgZ3VhcmRDaGlsZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KENhbkFjdGl2YXRlRm9ybUxheW91dENoaWxkR3VhcmQpO1xuICAgICAgICBpZiAocm91dGVDb25maWcuY2FuQWN0aXZhdGVDaGlsZFtpXSA9PT0gZ3VhcmRDaGlsZC5jb25zdHJ1Y3Rvcikge1xuICAgICAgICAgIHJvdXRlQ29uZmlnLmNhbkFjdGl2YXRlQ2hpbGQuc3BsaWNlKGksIDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzRGlhbG9nTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQuRElBTE9HX01PREU7XG4gIH1cblxuICBwdWJsaWMgaXNUYWJNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09IE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudC5UQUJfTU9ERTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NwbGl0UGFuZU1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50LlNQTElUX1BBTkVfTU9ERTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREZXRhaWxDb21wb25lbnQoY2hpbGRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgdXJsOiBzdHJpbmcsIGNvbnRleHQ/OiBPRm9ybUxheW91dE1hbmFnZXJDb250ZXh0KTogdm9pZCB7XG4gICAgY2hpbGRSb3V0ZSA9IFV0aWwuZ2V0TGFzdEFjdGl2YXRlUm91dGUoY2hpbGRSb3V0ZSk7XG4gICAgY29uc3QgbmV3RGV0YWlsQ29tcDogRm9ybUxheW91dERldGFpbENvbXBvbmVudERhdGEgPSB7XG4gICAgICBwYXJhbXM6IGNoaWxkUm91dGUucGFyYW1zLFxuICAgICAgcXVlcnlQYXJhbXM6IGNoaWxkUm91dGUucXVlcnlQYXJhbXMsXG4gICAgICB1cmxTZWdtZW50czogY2hpbGRSb3V0ZS51cmwsXG4gICAgICBjb21wb25lbnQ6IGNoaWxkUm91dGUucm91dGVDb25maWcuY29tcG9uZW50LFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBpZDogVXRpbC5yYW5kb21OdW1iZXIoKS50b1N0cmluZygpLFxuICAgICAgbGFiZWw6IGNvbnRleHQ/LmxhYmVsIHx8ICcnLFxuICAgICAgaW5uZXJGb3Jtc0luZm86IHt9LFxuICAgICAgcmVuZGVyZWQ6ZmFsc2UsXG4gICAgICByZW5kZXJlclN1YmplY3Q6IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpLFxuICAgICAgaW5zZXJ0aW9uTW9kZTogY2hpbGRSb3V0ZS5xdWVyeVBhcmFtc1tDb2Rlcy5JTlNFUlRJT05fTU9ERV0gPT09ICd0cnVlJyxcbiAgICB9O1xuXG4gICAgLyoqIGxpc3RlbmluZyBmb3IgdGhlIGNvbXBvbmVudHMgdG8gYmUgcmVuZGVyZWQgdG8gZGV0ZXJtaW5lIHRoYXQgdGhlIGZvcm0tbGF5b3V0LW1hbmFnZXIgaXMgZmluaXNoZWQgbmF2aWdhdGluZy4gKi9cbiAgICBuZXdEZXRhaWxDb21wLnJlbmRlcmVyU3ViamVjdC5zdWJzY3JpYmUoKHJlbmRlcmVyOiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAocmVuZGVyZXIpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5pc05hdmlnYXRpbmcgPSAhcmVuZGVyZXI7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5pc0RpYWxvZ01vZGUoKSkge1xuICAgICAgdGhpcy5vcGVuRm9ybUxheW91dERpYWxvZyhuZXdEZXRhaWxDb21wKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29tcFJlZiA9IHRoaXMuZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpO1xuICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbXBSZWYpKSB7XG4gICAgICAgIGNvbXBSZWYub3BlbkRldGFpbChuZXdEZXRhaWxDb21wKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VEZXRhaWwob3B0aW9ucz86IEZvcm1MYXlvdXRDbG9zZURldGFpbE9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wUmVmID0gdGhpcy5nZXRMYXlvdXRNb2RlQ29tcG9uZW50KCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGNvbXBSZWYpKSB7XG4gICAgICBjb21wUmVmLmNsb3NlRGV0YWlsKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZURldGFpbHMoZGV0YWlsc0RhdGE6IGFueVtdID0gW10sIG9wdGlvbnM/OiBGb3JtTGF5b3V0Q2xvc2VEZXRhaWxPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNUYWJNb2RlKCkgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5vVGFiR3JvdXApKSB7XG4gICAgICB0aGlzLm9UYWJHcm91cC5jbG9zZURldGFpbHMoZGV0YWlsc0RhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuRm9ybUxheW91dERpYWxvZyhkZXRhaWxDb21wOiBGb3JtTGF5b3V0RGV0YWlsQ29tcG9uZW50RGF0YSk6IHZvaWQge1xuICAgIGNvbnN0IGNzc2NsYXNzID0gWydvLWZvcm0tbGF5b3V0LWRpYWxvZy1vdmVybGF5J107XG4gICAgaWYgKHRoaXMuZGlhbG9nQ2xhc3MpIHtcbiAgICAgIGNzc2NsYXNzLnB1c2godGhpcy5kaWFsb2dDbGFzcyk7XG4gICAgfVxuXG4gICAgY29uc3QgZGlhbG9nT3B0aW9ucyA9ICh0aGlzLmRpYWxvZ09wdGlvbnMgfHwge30pO1xuXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWcgPSB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGRhdGE6IGRldGFpbENvbXAsXG4gICAgICAgIGxheW91dE1hbmFnZXJDb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIHRpdGxlOiAodGhpcy50aXRsZSB8fCBkaWFsb2dPcHRpb25zLnRpdGxlKSxcbiAgICAgICAgZGlhbG9nVGl0bGVTZXBhcmF0b3I6IHRoaXMuZGlhbG9nVGl0bGVTZXBhcmF0b3JcbiAgICAgIH0sXG4gICAgICB3aWR0aDogZGlhbG9nT3B0aW9ucy53aWR0aCB8fCB0aGlzLmRpYWxvZ1dpZHRoLFxuICAgICAgbWluV2lkdGg6IGRpYWxvZ09wdGlvbnMubWluV2lkdGggfHwgdGhpcy5kaWFsb2dNaW5XaWR0aCxcbiAgICAgIG1heFdpZHRoOiBkaWFsb2dPcHRpb25zLm1heFdpZHRoIHx8IHRoaXMuZGlhbG9nTWF4V2lkdGgsXG4gICAgICBoZWlnaHQ6IGRpYWxvZ09wdGlvbnMuaGVpZ2h0IHx8IHRoaXMuZGlhbG9nSGVpZ2h0LFxuICAgICAgbWluSGVpZ2h0OiBkaWFsb2dPcHRpb25zLm1pbkhlaWdodCB8fCB0aGlzLmRpYWxvZ01pbkhlaWdodCxcbiAgICAgIG1heEhlaWdodDogZGlhbG9nT3B0aW9ucy5tYXhIZWlnaHQgfHwgdGhpcy5kaWFsb2dNYXhIZWlnaHQsXG4gICAgICBkaXNhYmxlQ2xvc2U6IGRpYWxvZ09wdGlvbnMuZGlzYWJsZUNsb3NlIHx8IHRydWUsXG4gICAgICBwYW5lbENsYXNzOiBkaWFsb2dPcHRpb25zLmNsYXNzIHx8IGNzc2NsYXNzXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmRpYWxvZ09wdGlvbnMpIHtcbiAgICAgIGRpYWxvZ0NvbmZpZy5jbG9zZU9uTmF2aWdhdGlvbiA9IHRoaXMuZGlhbG9nT3B0aW9ucy5jbG9zZU9uTmF2aWdhdGlvbjtcbiAgICAgIGRpYWxvZ0NvbmZpZy5iYWNrZHJvcENsYXNzID0gdGhpcy5kaWFsb2dPcHRpb25zLmJhY2tkcm9wQ2xhc3M7XG4gICAgICBkaWFsb2dDb25maWcucG9zaXRpb24gPSB0aGlzLmRpYWxvZ09wdGlvbnMucG9zaXRpb247XG4gICAgICBkaWFsb2dDb25maWcuZGlzYWJsZUNsb3NlID0gdGhpcy5kaWFsb2dPcHRpb25zLmRpc2FibGVDbG9zZTtcbiAgICB9XG5cbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oT0Zvcm1MYXlvdXREaWFsb2dDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG4gICAgdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubWFya0ZvclVwZGF0ZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUlmTmVlZGVkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbG9hZE1haW5Db21wb25lbnRzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKiBPbmNlIHRoZSBtb2RhbCBpcyBvcGVuZWQsIHRoZSBjb21wb25lbnQgaXMgcmVuZGVyZWQgYW5kIHRoZSByZW5kZXJlclN1YmplY3QgaXMgZW1pdHRlZCB0byBlbmFibGUgbmF2aWdhdGlvbiovXG4gICAgdGhpcy5kaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgZGV0YWlsQ29tcC5yZW5kZXJlZCA9IHRydWU7XG4gICAgICBkZXRhaWxDb21wLnJlbmRlcmVyU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1DYWNoZURhdGEoKTogRm9ybUxheW91dERldGFpbENvbXBvbmVudERhdGEge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQoY29tcFJlZikgPyBjb21wUmVmLmdldEZvcm1DYWNoZURhdGEoKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNb2RpZmllZFN0YXRlKGZvcm1BdHRyOiBzdHJpbmcsIG1vZGlmaWVkOiBib29sZWFuLCBjb25maXJtRXhpdDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29tcFJlZikpIHtcbiAgICAgIGNvbXBSZWYuc2V0TW9kaWZpZWRTdGF0ZShmb3JtQXR0ciwgbW9kaWZpZWQsIGNvbmZpcm1FeGl0KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFiZWxGcm9tRGF0YShkYXRhOiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBsYWJlbCA9ICcnO1xuICAgIGNvbnN0IGlzRGF0YURlZmluZWQgPSBVdGlsLmlzRGVmaW5lZChkYXRhKTtcbiAgICBpZiAoaXNEYXRhRGVmaW5lZCAmJiBkYXRhLmhhc093blByb3BlcnR5KCduZXdfdGFiX3RpdGxlJykpIHtcbiAgICAgIGxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChkYXRhLm5ld190YWJfdGl0bGUpO1xuICAgIH0gZWxzZSBpZiAoaXNEYXRhRGVmaW5lZCAmJiB0aGlzLmxhYmVsQ29sc0FycmF5Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5sYWJlbENvbHNBcnJheS5mb3JFYWNoKChjb2wsIGlkeCkgPT4ge1xuICAgICAgICBpZiAoZGF0YVtjb2xdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsYWJlbCArPSBkYXRhW2NvbF0gKyAoKGlkeCA8IHRoaXMubGFiZWxDb2xzQXJyYXkubGVuZ3RoIC0gMSkgPyB0aGlzLnNlcGFyYXRvciA6ICcnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVOYXZpZ2F0aW9uKGRhdGE6IGFueSwga2V5c1ZhbHVlczogYW55LCBpbnNlcnRpb25Nb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY29tcFJlZiA9IHRoaXMuZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChjb21wUmVmKSkge1xuICAgICAgY29tcFJlZi51cGRhdGVOYXZpZ2F0aW9uKGRhdGEsIGtleXNWYWx1ZXMsIGluc2VydGlvbk1vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVEYXRhKGRhdGE6IGFueSkge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY29tcFJlZikpIHtcbiAgICAgIGNvbXBSZWYudXBkYXRlQWN0aXZlRGF0YShkYXRhKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Um91dGVPZkFjdGl2ZUl0ZW0oKTogYW55W10ge1xuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQoY29tcFJlZikgPyBjb21wUmVmLmdldFJvdXRlT2ZBY3RpdmVJdGVtKCkgOiBbXTtcbiAgfVxuXG4gIHB1YmxpYyBpc01haW5Db21wb25lbnQoY29tcDogSUxheW91dE1hbmFnZXJDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0RpYWxvZ01vZGUoKSkge1xuICAgICAgcmV0dXJuICFjb21wLm9Gb3JtTGF5b3V0RGlhbG9nO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmdldExheW91dE1vZGVDb21wb25lbnQoKTtcbiAgICByZXR1cm4gKFV0aWwuaXNEZWZpbmVkKGNvbXBSZWYpXG4gICAgICAmJiAoY29tcFJlZi5pc01haW5Db21wb25lbnQoY29tcClcbiAgICAgICAgfHwgKFV0aWwuaXNEZWZpbmVkKGNvbXAucGFyZW50Q29tcG9uZW50KSkgJiYgY29tcFJlZi5pc01haW5Db21wb25lbnQoY29tcC5wYXJlbnRDb21wb25lbnQpKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um91dGVGb3JDb21wb25lbnQoY29tcDogSUxheW91dE1hbmFnZXJDb21wb25lbnQpOiBhbnlbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybUxheW91dE1hbmFnZXIpIHtcbiAgICAgIGNvbnN0IHBhcmVudFJvdXRlID0gdGhpcy5wYXJlbnRGb3JtTGF5b3V0TWFuYWdlci5nZXRSb3V0ZUZvckNvbXBvbmVudChjb21wKTtcbiAgICAgIGlmIChwYXJlbnRSb3V0ZSAmJiBwYXJlbnRSb3V0ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLnBhcmVudFJvdXRlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzTWFpbkNvbXBvbmVudChjb21wKSkge1xuICAgICAgY29uc3QgYWN0aXZlUm91dGUgPSB0aGlzLmdldFJvdXRlT2ZBY3RpdmVJdGVtKCk7XG5cbiAgICAgIGlmIChhY3RpdmVSb3V0ZSAmJiBhY3RpdmVSb3V0ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLmFjdGl2ZVJvdXRlKTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgc2V0QXNBY3RpdmVGb3JtTGF5b3V0TWFuYWdlcigpOiB2b2lkIHtcbiAgICB0aGlzLm9Gb3JtTGF5b3V0TWFuYWdlclNlcnZpY2UuYWN0aXZlRm9ybUxheW91dE1hbmFnZXIgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZE1haW5Db21wb25lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMub25UcmlnZ2VyVXBkYXRlLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxvd1RvVXBkYXRlTmF2aWdhdGlvbihmb3JtQXR0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmlzVGFiTW9kZSgpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMub1RhYkdyb3VwKSAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLnRpdGxlRGF0YU9yaWdpbikpID9cbiAgICAgIHRoaXMudGl0bGVEYXRhT3JpZ2luID09PSBmb3JtQXR0ciA6XG4gICAgICB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICogUGVyc2lzdHMgdGhlIGN1cnJlbnQgY29tcG9uZW50IHN0YXRlIGluIGxvY2FsIHN0b3JhZ2Ugd2hlbiBlbmFibGVkLlxuICAqXG4gICogU3RvcmVzIGZvcm0gbGF5b3V0IG1hbmFnZXItcmVsYXRlZCBzdGF0ZSBvbmx5IGlmIHRoZSBzdGF0ZSBwZXJzaXN0ZW5jZSBpcyBlbmFibGVkLlxuICAqL1xuICBwdWJsaWMgdXBkYXRlU3RhdGVTdG9yYWdlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlIHx8ICF0aGlzLnN0b3JlU3RhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaXNUYWJNb2RlID0gdGhpcy5pc1RhYk1vZGUoKSAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLm9UYWJHcm91cCk7XG4gICAgY29uc3QgaXNTcGxpdFBhbmVNb2RlID0gdGhpcy5pc1NwbGl0UGFuZU1vZGUoKSAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLm9TcGxpdFBhbmUpO1xuICAgIGlmIChpc1RhYk1vZGUgfHwgaXNTcGxpdFBhbmVNb2RlKSB7XG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UudXBkYXRlQ29tcG9uZW50U3RvcmFnZSh0aGlzLCB0aGlzLmdldFJvdXRlS2V5KCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyZW50QWN0Um91dGVSb3V0ZSgpOiBSb3V0ZSB7XG4gICAgbGV0IGFjdFJvdXRlID0gdGhpcy5hY3RSb3V0ZTtcbiAgICB3aGlsZSAoYWN0Um91dGUucGFyZW50ICE9PSB1bmRlZmluZWQgJiYgYWN0Um91dGUucGFyZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoYWN0Um91dGUucm91dGVDb25maWcuY2hpbGRyZW4gfHwgYWN0Um91dGUucm91dGVDb25maWcubG9hZENoaWxkcmVuKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgYWN0Um91dGUgPSBhY3RSb3V0ZS5wYXJlbnQ7XG4gICAgfVxuICAgIHJldHVybiBhY3RSb3V0ZS5yb3V0ZUNvbmZpZztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVJZk5lZWRlZCgpIHtcbiAgICBpZiAodGhpcy5tYXJrRm9yVXBkYXRlKSB7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGUgPSBmYWxzZTtcbiAgICAgIHRoaXMub25UcmlnZ2VyVXBkYXRlLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0UGFyYW1zKCk6IGFueSB7XG4gICAgY29uc3QgY29tcFJlZiA9IHRoaXMuZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpO1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZChjb21wUmVmKSA/IGNvbXBSZWYuZ2V0UGFyYW1zKCkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBzZXQgbWFya0ZvclVwZGF0ZShhcmc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9tYXJrRm9yVXBkYXRlID0gYXJnO1xuICAgIGlmICh0aGlzLmlzU3BsaXRQYW5lTW9kZSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUlmTmVlZGVkKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1hcmtGb3JVcGRhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtGb3JVcGRhdGU7XG4gIH1cblxuICBnZXQgaWdub3JlQ2FuRGVhY3RpdmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNTcGxpdFBhbmVNb2RlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpOiBPRm9ybUxheW91dE1hbmFnZXJNb2RlIHtcbiAgICBsZXQgY29tcFJlZjtcbiAgICBpZiAodGhpcy5pc1RhYk1vZGUoKSAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLm9UYWJHcm91cCkpIHtcbiAgICAgIGNvbXBSZWYgPSB0aGlzLm9UYWJHcm91cDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNEaWFsb2dNb2RlKCkgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5kaWFsb2dSZWYpKSB7XG4gICAgICBjb21wUmVmID0gdGhpcy5kaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzU3BsaXRQYW5lTW9kZSgpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMub1NwbGl0UGFuZSkpIHtcbiAgICAgIGNvbXBSZWYgPSB0aGlzLm9TcGxpdFBhbmU7XG4gICAgfVxuICAgIHJldHVybiBjb21wUmVmO1xuICB9XG5cbiAgYWxsb3dOYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc1RhYk1vZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5BZGREZXRhaWxDb21wb25lbnQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgY29tcFJlZiA9IHRoaXMuZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpO1xuICAgIHJldHVybiBVdGlsLndyYXBJbnRvT2JzZXJ2YWJsZShVdGlsLmlzRGVmaW5lZChjb21wUmVmKSA/IGNvbXBSZWYuY2FuQWRkRGV0YWlsQ29tcG9uZW50KCkgOiB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNUb0NvbmZpcm1FeGl0KGRhdGE6IEZvcm1MYXlvdXREZXRhaWxDb21wb25lbnREYXRhLCBvcHRpb25zPzogRm9ybUxheW91dENsb3NlRGV0YWlsT3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChvcHRpb25zKSAmJiBvcHRpb25zLmV4aXRXaXRob3V0Q29uZmlybWF0aW9uKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGZvcm1zQXR0ciA9IE9iamVjdC5rZXlzKGRhdGEuaW5uZXJGb3Jtc0luZm8pO1xuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBpZiAoZm9ybXNBdHRyLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvcm1zQXR0ci5mb3JFYWNoKGZvcm1BdHRyID0+IHtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IGRhdGEuaW5uZXJGb3Jtc0luZm9bZm9ybUF0dHJdO1xuICAgICAgICAgIHJlc3VsdCA9IGZvcm1EYXRhLmNvbmZpcm1PbkV4aXQgJiYgZm9ybURhdGEubW9kaWZpZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGdldElkT2ZBY3RpdmVJdGVtKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29tcFJlZiA9IHRoaXMuZ2V0TGF5b3V0TW9kZUNvbXBvbmVudCgpO1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZChjb21wUmVmKSA/IGAke3RoaXMub2F0dHJ9LSR7Y29tcFJlZi5nZXRJZE9mQWN0aXZlSXRlbSgpfS1gIDogJyc7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIm1vZGVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50LlRBQl9NT0RFXCI+XG4gICAgPG8tZm9ybS1sYXlvdXQtdGFiZ3JvdXAgI3RhYkdyb3VwIFt0aXRsZV09XCJ0aXRsZVwiIChvbk1haW5UYWJTZWxlY3RlZCk9XCJvbk1haW5UYWJTZWxlY3RlZC5lbWl0KCRldmVudClcIlxuICAgICAgKG9uU2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25TZWxlY3RlZFRhYkNoYW5nZS5lbWl0KCRldmVudClcIiAob25DbG9zZVRhYik9XCJvbkNsb3NlVGFiLmVtaXQoJGV2ZW50KVwiXG4gICAgICBbb3B0aW9uc109XCJ0YWJHcm91cE9wdGlvbnNcIiBbc3RyZXRjaC10YWJzXT1cInN0cmV0Y2hUYWJzXCI+XG4gICAgICA8bmctY29udGVudCAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRCbG9ja1wiPjwvbmctY29udGVudD5cbiAgICA8L28tZm9ybS1sYXlvdXQtdGFiZ3JvdXA+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIk9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudC5TUExJVF9QQU5FX01PREVcIj5cbiAgICA8by1mb3JtLWxheW91dC1zcGxpdC1wYW5lICNzcGxpdFBhbmUgW29wdGlvbnNdPVwic3BsaXRQYW5lT3B0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRlbnQgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50QmxvY2tcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9vLWZvcm0tbGF5b3V0LXNwbGl0LXBhbmU+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIk9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudC5ESUFMT0dfTU9ERVwiPlxuICAgIDxuZy1jb250ZW50ICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudEJsb2NrXCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudEJsb2NrPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1nbG9iYWwtY29uZmlnLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvdGFibGUvby10YWJsZS1nbG9iYWwtY29uZmlnLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9Sb3dIZWlnaHQsIE9UYWJsZURldGFpbE1vZGUsIE9UYWJsZUVkaXRpb25Nb2RlIH0gZnJvbSAnLi8uLi8uLi91dGlsL2NvZGVzJztcblxuZXhwb3J0IHR5cGUgT1RhYmxlR2xvYmFsQ29uZmlnID0ge1xuICAvKipcbiAgICAqIEF1dG9tYXRpY2FsbHkgYWRqdXN0cyB0aGUgd2lkdGggb2YgdGFibGUgY29sdW1ucyBiYXNlZCBvbiB0aGVpciBjb250ZW50LlxuICAgICogV2hlbiBlbmFibGVkIChgdHJ1ZWApLCBjb2x1bW5zIHJlc2l6ZSBkeW5hbWljYWxseSB3aXRob3V0IG1hbnVhbCBzZXR1cC5cbiAgICAqL1xuICBhdXRvQWRqdXN0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFsaWducyBjb2x1bW4gdGl0bGVzIGRlcGVuZGluZyBvbiB0aGVpciBjb250ZW50IHR5cGUuXG4gICAqIEV4YW1wbGU6IG51bWVyaWMgY29sdW1ucyBtYXkgYmUgcmlnaHQtYWxpZ25lZCwgdGV4dCBjb2x1bW5zIGxlZnQtYWxpZ25lZCwgZXRjLlxuICAgKi9cbiAgYXV0b0FsaWduVGl0bGVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgY29sdW1uIGZpbHRlcnMgc2hvdWxkIGJlIGFjdGl2ZSBieSBkZWZhdWx0LlxuICAgKiBXaGVuIGB0cnVlYCwgdGhlIGZpbHRlciByb3cgYXBwZWFycyBleHBhbmRlZCB3aGVuIHRoZSB0YWJsZSBsb2Fkcy5cbiAgICovXG4gIGZpbHRlckNvbHVtbkFjdGl2ZUJ5RGVmYXVsdDogYm9vbGVhbjtcblxuICAvKipcbiAgICogRWRpdGluZyBtb2RlIG9mIHRoZSB0YWJsZSByb3dzLlxuICAgKiBDb250cm9scyBob3cgY2VsbHMgb3Igcm93cyBiZWhhdmUgZHVyaW5nIGlubGluZSBvciBleHRlcm5hbCBlZGl0aW5nIG9wZXJhdGlvbnMuXG4gICAqL1xuICBlZGl0aW9uTW9kZTogT1RhYmxlRWRpdGlvbk1vZGU7XG5cbiAgLyoqXG4gICAqIERldGFpbCBkaXNwbGF5IG1vZGUuXG4gICAqIENvbnRyb2xzIGhvdyBleHBhbmRlZCByb3cgZGV0YWlscyBhcmUgcHJlc2VudGVkIChlLmcuLCBpbmxpbmUgZXhwYW5zaW9uLCBtb2RhbCwgb3ZlcmxheSkuXG4gICAqL1xuICBkZXRhaWxNb2RlOiBPVGFibGVEZXRhaWxNb2RlO1xuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCByb3cgaGVpZ2h0IHVzZWQgYWNyb3NzIGFsbCBPVGFibGUgaW5zdGFuY2VzXG4gICAqIHRvIG1haW50YWluIGNvbnNpc3RlbnQgdmlzdWFsIHByZXNlbnRhdGlvbi5cbiAgICovXG4gIHJvd0hlaWdodDogT1Jvd0hlaWdodDtcblxuICAvKipcbiAgICogRW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgb3B0aW9uIHRvIGdlbmVyYXRlIGNoYXJ0cyBvbiBkZW1hbmQuXG4gICAqL1xuICBzaG93Q2hhcnRzT25EZW1hbmRPcHRpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIG9wdGlvbiB0byBnZW5lcmF0ZSBhIGRvd25sb2FkYWJsZSByZXBvcnQgb24gZGVtYW5kLlxuICAgKi9cbiAgc2hvd1JlcG9ydE9uRGVtYW5kT3B0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIHJlbGF0ZWQgdG8gdGhlIHRhYmxlJ3MgbG9hZGluZyBza2VsZXRvbiBiZWhhdmlvci5cbiAgICogQ29udHJvbHMgd2hlbiBhbmQgaG93IHRoZSBza2VsZXRvbiBsb2FkZXIgYXBwZWFycy5cbiAgICovXG4gIGxvYWRpbmc6IHtcbiAgICAvKipcbiAgICogTWluaW11bSB0aW1lIChpbiBtaWxsaXNlY29uZHMpIHRoYXQgbXVzdCBwYXNzIGFmdGVyIGEgbG9hZGluZyBldmVudFxuICAgKiBiZWdpbnMgYmVmb3JlIHRoZSBza2VsZXRvbiBsb2FkZXIgaXMgZGlzcGxheWVkLlxuICAgKlxuICAgKiBUaGlzIHByZXZlbnRzIHRoZSBza2VsZXRvbiBmcm9tIGZsYXNoaW5nIGJyaWVmbHkgb24gdmVyeSBmYXN0IG9wZXJhdGlvbnMuXG4gICAqL1xuICAgIHRocmVzaG9sZDogbnVtYmVyLFxuICAgIC8qKlxuICAqIE1pbmltdW0gZHVyYXRpb24gKGluIG1pbGxpc2Vjb25kcykgdGhhdCB0aGUgc2tlbGV0b24gbG9hZGVyIG11c3QgcmVtYWluIHZpc2libGVcbiAgKiBvbmNlIGl0IGhhcyBhcHBlYXJlZCwgZXZlbiBpZiB0aGUgb3BlcmF0aW9uIGZpbmlzaGVzIHF1aWNrbHkuXG4gICpcbiAgKiBFbnN1cmVzIGEgc21vb3RoIHZpc3VhbCBleHBlcmllbmNlIGFuZCBhdm9pZHMgYWJydXB0IGhpZGluZy5cbiAgKi9cbiAgICBtaW5WaXNpYmxlOiBudW1iZXJcblxuICB9XG4gIC8qKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHJvdyBzZWxlY3Rpb24gd2hlbiBjbGlja2luZyBvbiBhIHJvdy5cbiAgICovXG4gIHNlbGVjdGlvbk9uUm93Q2xpY2s/OiBib29sZWFuO1xuIFxuICAvKipcbiAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgaG9yaXpvbnRhbCBzY3JvbGxpbmcgZm9yIHRhYmxlcyB0aGF0IGV4Y2VlZCB0aGUgdmlld3BvcnQgd2lkdGguXG4gICAgKi9cbiAgaG9yaXpvbnRhbFNjcm9sbDogYm9vbGVhbjtcblxufVxuIl19
|