@hitsoft/kadooglu-keops 0.0.3 → 0.0.4
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/config/enums/route-names.d.ts +2 -1
- package/esm2020/config/enums/route-names.mjs +1 -1
- package/esm2020/config/providers/route.provider.mjs +10 -1
- package/esm2020/lib/features/cost-calculation/components/cost-calculation-inputs.component.mjs +12 -10
- package/esm2020/lib/features/cost-calculation/components/cost-calculation-results.component.mjs +3 -3
- package/esm2020/lib/features/cost-calculation/components/cost-calculation.component.mjs +86 -31
- package/esm2020/lib/features/cost-calculation/engine/currency.utils.mjs +10 -10
- package/esm2020/lib/features/cost-calculation/engine/formulas.mjs +10 -10
- package/esm2020/lib/features/cost-calculation/engine/item-resolver.mjs +16 -16
- package/esm2020/lib/features/cost-calculation/engine/stage-builder.mjs +8 -8
- package/esm2020/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.mjs +3 -7
- package/esm2020/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.mjs +4 -14
- package/esm2020/lib/features/cost-parameters/components/cost-parameter-form.component.mjs +5 -6
- package/esm2020/lib/features/cost-parameters/components/cost-parameters.component.mjs +7 -10
- package/esm2020/lib/features/item-classifications/components/item-classifications.component.mjs +199 -0
- package/esm2020/lib/features/item-classifications/hit-item-classifications-routing.module.mjs +29 -0
- package/esm2020/lib/features/item-classifications/hit-item-classifications.module.mjs +60 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-items.component.mjs +6 -6
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-price-lists.component.mjs +6 -6
- package/esm2020/lib/features/price-parameters/components/price-parameter-form.component.mjs +114 -46
- package/esm2020/lib/features/price-parameters/components/price-parameter-price-update-preview-modal.component.mjs +26 -0
- package/esm2020/lib/features/price-parameters/components/price-parameters.component.mjs +24 -17
- package/esm2020/lib/features/price-parameters/hit-price-parameters.module.mjs +5 -2
- package/esm2020/lib/features/price-parameters/price-parameter-cost-match.service.mjs +3 -3
- package/esm2020/lib/features/price-parameters/price-parameter-form-data.service.mjs +1 -2
- package/esm2020/lib/features/price-parameters/price-parameter-lookups.service.mjs +5 -10
- package/esm2020/lib/features/price-parameters/price-parameter-price-update.service.mjs +119 -0
- package/esm2020/lib/features/settings/components/cost-settings.component.mjs +8 -4
- package/esm2020/lib/kadooglu-keops-routing.module.mjs +3 -1
- package/esm2020/lib/shared/amount-currency-input/amount-currency-input.component.mjs +5 -3
- package/esm2020/lib/shared/cost-item-classification.utils.mjs +5 -2
- package/esm2020/lib/utils/business-region.utils.mjs +12 -0
- package/esm2020/lib/utils/currency.utils.mjs +3 -1
- package/esm2020/proxy/business-region.enum.mjs +9 -0
- package/esm2020/proxy/controllers/index.mjs +2 -1
- package/esm2020/proxy/controllers/item-classification.service.mjs +42 -0
- package/esm2020/proxy/controllers/item.service.mjs +7 -3
- package/esm2020/proxy/controllers/price-list.service.mjs +5 -5
- package/esm2020/proxy/controllers/price-parameter.service.mjs +6 -1
- package/esm2020/proxy/cost-parameter-categories/dtos/models.mjs +1 -1
- package/esm2020/proxy/cost-parameters/dtos/models.mjs +1 -1
- package/esm2020/proxy/item-classifications/dtos/index.mjs +2 -0
- package/esm2020/proxy/item-classifications/dtos/models.mjs +2 -0
- package/esm2020/proxy/price-parameters/dtos/models.mjs +1 -1
- package/esm2020/proxy/public-api.mjs +3 -2
- package/esm2020/proxy/settings/models.mjs +1 -1
- package/fesm2015/hitsoft-kadooglu-keops-config.mjs +9 -0
- package/fesm2015/hitsoft-kadooglu-keops-config.mjs.map +1 -1
- package/fesm2015/hitsoft-kadooglu-keops-proxy.mjs +63 -14
- package/fesm2015/hitsoft-kadooglu-keops-proxy.mjs.map +1 -1
- package/fesm2015/hitsoft-kadooglu-keops.mjs +795 -287
- package/fesm2015/hitsoft-kadooglu-keops.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu-keops-config.mjs +9 -0
- package/fesm2020/hitsoft-kadooglu-keops-config.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu-keops-proxy.mjs +63 -14
- package/fesm2020/hitsoft-kadooglu-keops-proxy.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu-keops.mjs +776 -272
- package/fesm2020/hitsoft-kadooglu-keops.mjs.map +1 -1
- package/lib/features/cost-calculation/components/cost-calculation-inputs.component.d.ts +9 -7
- package/lib/features/cost-calculation/components/cost-calculation.component.d.ts +16 -8
- package/lib/features/cost-calculation/engine/currency.utils.d.ts +2 -2
- package/lib/features/cost-calculation/engine/formulas.d.ts +2 -2
- package/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.d.ts +0 -1
- package/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.d.ts +1 -5
- package/lib/features/cost-parameters/components/cost-parameter-form.component.d.ts +2 -2
- package/lib/features/cost-parameters/components/cost-parameters.component.d.ts +1 -2
- package/lib/features/item-classifications/components/item-classifications.component.d.ts +66 -0
- package/lib/features/item-classifications/hit-item-classifications-routing.module.d.ts +7 -0
- package/lib/features/item-classifications/hit-item-classifications.module.d.ts +17 -0
- package/lib/features/price-parameters/components/price-parameter-form-items.component.d.ts +3 -3
- package/lib/features/price-parameters/components/price-parameter-form-price-lists.component.d.ts +3 -3
- package/lib/features/price-parameters/components/price-parameter-form.component.d.ts +16 -9
- package/lib/features/price-parameters/components/price-parameter-price-update-preview-modal.component.d.ts +11 -0
- package/lib/features/price-parameters/components/price-parameters.component.d.ts +5 -2
- package/lib/features/price-parameters/hit-price-parameters.module.d.ts +12 -11
- package/lib/features/price-parameters/price-parameter-cost-match.service.d.ts +2 -2
- package/lib/features/price-parameters/price-parameter-form-data.service.d.ts +0 -1
- package/lib/features/price-parameters/price-parameter-lookups.service.d.ts +0 -1
- package/lib/features/price-parameters/price-parameter-price-update.service.d.ts +30 -0
- package/lib/shared/amount-currency-input/amount-currency-input.component.d.ts +2 -2
- package/lib/shared/cost-item-classification.utils.d.ts +5 -1
- package/lib/utils/business-region.utils.d.ts +7 -0
- package/lib/utils/currency.utils.d.ts +1 -0
- package/package.json +1 -1
- package/proxy/business-region.enum.d.ts +6 -0
- package/proxy/controllers/index.d.ts +1 -0
- package/proxy/controllers/item-classification.service.d.ts +17 -0
- package/proxy/controllers/item.service.d.ts +3 -1
- package/proxy/controllers/price-list.service.d.ts +3 -2
- package/proxy/controllers/price-parameter.service.d.ts +2 -1
- package/proxy/cost-parameter-categories/dtos/models.d.ts +0 -4
- package/proxy/cost-parameters/dtos/models.d.ts +4 -3
- package/proxy/item-classifications/dtos/index.d.ts +1 -0
- package/proxy/item-classifications/dtos/models.d.ts +34 -0
- package/proxy/price-parameters/dtos/models.d.ts +38 -12
- package/proxy/public-api.d.ts +2 -1
- package/proxy/settings/models.d.ts +1 -0
- package/esm2020/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.mjs +0 -6
- package/esm2020/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.mjs +0 -8
- package/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.d.ts +0 -2
- package/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.d.ts +0 -5
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { forkJoin } from 'rxjs';
|
|
3
3
|
import { Confirmation } from '@abp/ng.theme.shared';
|
|
4
|
-
import { CostParameterCategoryParentCode, } from '@hitsoft/kadooglu-keops/proxy';
|
|
5
4
|
import { statusLabels } from '../cost-parameter-l10n-helper';
|
|
5
|
+
import { businessRegionLabels } from '../../../utils/business-region.utils';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@hitsoft/kadooglu-keops/proxy";
|
|
8
8
|
import * as i2 from "@abp/ng.theme.shared";
|
|
@@ -22,7 +22,6 @@ export class CostParametersComponent {
|
|
|
22
22
|
this.confirmation = confirmation;
|
|
23
23
|
this.items = [];
|
|
24
24
|
this.productGroupOptions = [];
|
|
25
|
-
this.regionOptions = [];
|
|
26
25
|
this.selected = null;
|
|
27
26
|
this.formVisible = false;
|
|
28
27
|
this.formMode = 'create';
|
|
@@ -36,8 +35,8 @@ export class CostParametersComponent {
|
|
|
36
35
|
getProductGroupName(code) {
|
|
37
36
|
return this.resolveName(this.productGroupOptions, code);
|
|
38
37
|
}
|
|
39
|
-
|
|
40
|
-
return
|
|
38
|
+
getRegionLabel(value) {
|
|
39
|
+
return businessRegionLabels[value] ?? '';
|
|
41
40
|
}
|
|
42
41
|
resolveName(options, code) {
|
|
43
42
|
if (!code)
|
|
@@ -49,9 +48,7 @@ export class CostParametersComponent {
|
|
|
49
48
|
categories: this.categoryService.getList(),
|
|
50
49
|
items: this.service.getList(),
|
|
51
50
|
}).subscribe(({ categories, items }) => {
|
|
52
|
-
|
|
53
|
-
this.productGroupOptions = categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code1);
|
|
54
|
-
this.regionOptions = categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code4);
|
|
51
|
+
this.productGroupOptions = categories ?? [];
|
|
55
52
|
this.items = items;
|
|
56
53
|
});
|
|
57
54
|
}
|
|
@@ -92,9 +89,9 @@ export class CostParametersComponent {
|
|
|
92
89
|
}
|
|
93
90
|
}
|
|
94
91
|
CostParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParametersComponent, deps: [{ token: i1.CostParameterService }, { token: i1.CostParameterCategoryService }, { token: i2.ToasterService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
-
CostParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParametersComponent, selector: "lib-cost-parameters", ngImport: i0, template: "<abp-page [title]=\"'Keops::CostParameters:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParametersToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameters:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParametersWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"region\"\n cellTemplate=\"regionTpl\"\n caption=\"{{ 'Keops::CostParameters:Region' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'regionTpl'\">\n <span>{{ getRegionName(row.data.region) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"productGroup\"\n cellTemplate=\"productGroupTpl\"\n caption=\"{{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'productGroupTpl'\">\n <span>{{ getProductGroupName(row.data.productGroup) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"status\"\n width=\"160\"\n cellTemplate=\"statusTpl\"\n caption=\"{{ 'Keops::CostParameters:Status' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'statusTpl'\">\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"description\"\n caption=\"{{ 'Keops::CostParameters:Description' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"updateDate\"\n cellTemplate=\"updateTpl\"\n caption=\"{{ 'Keops::CostParameters:LastUpdate' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'updateTpl'\">\n <span>{{ row.data.updateDate | shortDate }} {{ row.data.updateTime?.substring(0, 5) }}</span>\n </div>\n </dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n [productGroupOptions]=\"productGroupOptions\"\n [regionOptions]=\"regionOptions\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i10.CostParameterFormComponent, selector: "lib-cost-parameter-form", inputs: ["visible", "mode", "current", "productGroupOptions", "regionOptions"], outputs: ["visibleChange", "saved"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i4.ShortDatePipe, name: "shortDate" }] });
|
|
92
|
+
CostParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParametersComponent, selector: "lib-cost-parameters", ngImport: i0, template: "<abp-page [title]=\"'Keops::CostParameters:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParametersToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameters:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParametersWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"region\"\n cellTemplate=\"regionTpl\"\n caption=\"{{ 'Keops::CostParameters:Region' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'regionTpl'\">\n <span>{{ getRegionLabel(row.data.region) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"productGroup\"\n cellTemplate=\"productGroupTpl\"\n caption=\"{{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'productGroupTpl'\">\n <span>{{ getProductGroupName(row.data.productGroup) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"status\"\n width=\"160\"\n cellTemplate=\"statusTpl\"\n caption=\"{{ 'Keops::CostParameters:Status' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'statusTpl'\">\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"description\"\n caption=\"{{ 'Keops::CostParameters:Description' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"updateDate\"\n cellTemplate=\"updateTpl\"\n caption=\"{{ 'Keops::CostParameters:LastUpdate' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'updateTpl'\">\n <span>{{ row.data.updateDate | shortDate }} {{ row.data.updateTime?.substring(0, 5) }}</span>\n </div>\n </dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n [productGroupOptions]=\"productGroupOptions\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i10.CostParameterFormComponent, selector: "lib-cost-parameter-form", inputs: ["visible", "mode", "current", "productGroupOptions"], outputs: ["visibleChange", "saved"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i4.ShortDatePipe, name: "shortDate" }] });
|
|
96
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParametersComponent, decorators: [{
|
|
97
94
|
type: Component,
|
|
98
|
-
args: [{ selector: 'lib-cost-parameters', template: "<abp-page [title]=\"'Keops::CostParameters:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParametersToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameters:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParametersWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"region\"\n cellTemplate=\"regionTpl\"\n caption=\"{{ 'Keops::CostParameters:Region' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'regionTpl'\">\n <span>{{
|
|
95
|
+
args: [{ selector: 'lib-cost-parameters', template: "<abp-page [title]=\"'Keops::CostParameters:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParametersToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameters:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParametersWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"region\"\n cellTemplate=\"regionTpl\"\n caption=\"{{ 'Keops::CostParameters:Region' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'regionTpl'\">\n <span>{{ getRegionLabel(row.data.region) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"productGroup\"\n cellTemplate=\"productGroupTpl\"\n caption=\"{{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'productGroupTpl'\">\n <span>{{ getProductGroupName(row.data.productGroup) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"status\"\n width=\"160\"\n cellTemplate=\"statusTpl\"\n caption=\"{{ 'Keops::CostParameters:Status' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'statusTpl'\">\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"description\"\n caption=\"{{ 'Keops::CostParameters:Description' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"updateDate\"\n cellTemplate=\"updateTpl\"\n caption=\"{{ 'Keops::CostParameters:LastUpdate' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'updateTpl'\">\n <span>{{ row.data.updateDate | shortDate }} {{ row.data.updateTime?.substring(0, 5) }}</span>\n </div>\n </dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n [productGroupOptions]=\"productGroupOptions\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-form>\n" }]
|
|
99
96
|
}], ctorParameters: function () { return [{ type: i1.CostParameterService }, { type: i1.CostParameterCategoryService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdC1wYXJhbWV0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1LWtlb3BzL3NyYy9saWIvZmVhdHVyZXMvY29zdC1wYXJhbWV0ZXJzL2NvbXBvbmVudHMvY29zdC1wYXJhbWV0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1LWtlb3BzL3NyYy9saWIvZmVhdHVyZXMvY29zdC1wYXJhbWV0ZXJzL2NvbXBvbmVudHMvY29zdC1wYXJhbWV0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUF1QyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFHTCwrQkFBK0IsR0FHaEMsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7OztBQU03RCxNQUFNLE9BQU8sdUJBQXVCO0lBVWxDLFlBQ21CLE9BQTZCLEVBQzdCLGVBQTZDLEVBQzdDLE9BQXVCLEVBQ3ZCLFlBQWlDO1FBSGpDLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtRQUM3QyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFicEQsVUFBSyxHQUF1QixFQUFFLENBQUM7UUFFL0Isd0JBQW1CLEdBQStCLEVBQUUsQ0FBQztRQUNyRCxrQkFBYSxHQUErQixFQUFFLENBQUM7UUFFL0MsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIs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LE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQ3ZDLElBQUksRUFBRSxHQUFHLEVBQUU7d0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQzt3QkFDbkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQixDQUFDO2lCQUNGLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztvSEFoR1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRDaEJwQyxzdktBNElBOzJGRDVIYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHtcclxuICBDb3N0UGFyYW1ldGVyU2VydmljZSxcclxuICBDb3N0UGFyYW1ldGVyRHRvLFxyXG4gIENvc3RQYXJhbWV0ZXJDYXRlZ29yeVBhcmVudENvZGUsXHJcbiAgQ29zdFBhcmFtZXRlckNhdGVnb3J5RHRvLFxyXG4gIENvc3RQYXJhbWV0ZXJDYXRlZ29yeVNlcnZpY2UsXHJcbn0gZnJvbSAnQGhpdHNvZnQva2Fkb29nbHUta2VvcHMvcHJveHknO1xyXG5pbXBvcnQgeyBzdGF0dXNMYWJlbHMgfSBmcm9tICcuLi9jb3N0LXBhcmFtZXRlci1sMTBuLWhlbHBlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jb3N0LXBhcmFtZXRlcnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3N0LXBhcmFtZXRlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29zdFBhcmFtZXRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGl0ZW1zOiBDb3N0UGFyYW1ldGVyRHRvW10gPSBbXTtcclxuXHJcbiAgcHJvZHVjdEdyb3VwT3B0aW9uczogQ29zdFBhcmFtZXRlckNhdGVnb3J5RHRvW10gPSBbXTtcclxuICByZWdpb25PcHRpb25zOiBDb3N0UGFyYW1ldGVyQ2F0ZWdvcnlEdG9bXSA9IFtdO1xyXG5cclxuICBzZWxlY3RlZDogQ29zdFBhcmFtZXRlckR0byB8IG51bGwgPSBudWxsO1xyXG4gIGZvcm1WaXNpYmxlID0gZmFsc2U7XHJcbiAgZm9ybU1vZGU6ICdjcmVhdGUnIHwgJ2VkaXQnID0gJ2NyZWF0ZSc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBDb3N0UGFyYW1ldGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlTZXJ2aWNlOiBDb3N0UGFyYW1ldGVyQ2F0ZWdvcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWQoKTtcclxuICB9XHJcblxyXG4gIGdldFN0YXR1c0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHN0YXR1c0xhYmVsc1t2YWx1ZSBhcyBrZXlvZiB0eXBlb2Ygc3RhdHVzTGFiZWxzXSA/PyAnJztcclxuICB9XHJcblxyXG4gIGdldFByb2R1Y3RHcm91cE5hbWUoY29kZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlTmFtZSh0aGlzLnByb2R1Y3RHcm91cE9wdGlvbnMsIGNvZGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVnaW9uTmFtZShjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlc29sdmVOYW1lKHRoaXMucmVnaW9uT3B0aW9ucywgY29kZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc29sdmVOYW1lKFxyXG4gICAgb3B0aW9uczogQ29zdFBhcmFtZXRlckNhdGVnb3J5RHRvW10sXHJcbiAgICBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLFxyXG4gICk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWNvZGUpIHJldHVybiAnJztcclxuICAgIHJldHVybiBvcHRpb25zLmZpbmQoeCA9PiB4LmNvZGUgPT09IGNvZGUpPy5uYW1lID8/IGNvZGU7XHJcbiAgfVxyXG5cclxuICBsb2FkKCk6IHZvaWQge1xyXG4gICAgZm9ya0pvaW4oe1xyXG4gICAgICBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRMaXN0KCksXHJcbiAgICAgIGl0ZW1zOiB0aGlzLnNlcnZpY2UuZ2V0TGlzdCgpLFxyXG4gICAgfSkuc3Vic2NyaWJlKCh7IGNhdGVnb3JpZXMsIGl0ZW1zIH0pID0+IHtcclxuICAgICAgY29uc3QgY2F0ZWdvcnlMaXN0ID0gY2F0ZWdvcmllcyA/PyBbXTtcclxuICAgICAgdGhpcy5wcm9kdWN0R3JvdXBPcHRpb25zID0gY2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICB4ID0+IHgucGFyZW50Q29kZSA9PT0gQ29zdFBhcmFtZXRlckNhdGVnb3J5UGFyZW50Q29kZS5Db2RlMSxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5yZWdpb25PcHRpb25zID0gY2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICB4ID0+IHgucGFyZW50Q29kZSA9PT0gQ29zdFBhcmFtZXRlckNhdGVnb3J5UGFyZW50Q29kZS5Db2RlNCxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZExpc3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdCgpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5pdGVtcyA9IGRhdGE7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5DcmVhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcclxuICAgIHRoaXMuZm9ybU1vZGUgPSAnY3JlYXRlJztcclxuICAgIHRoaXMuZm9ybVZpc2libGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb3BlbkVkaXQocm93OiBDb3N0UGFyYW1ldGVyRHRvKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gcm93O1xyXG4gICAgdGhpcy5mb3JtTW9kZSA9ICdlZGl0JztcclxuICAgIHRoaXMuZm9ybVZpc2libGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25TYXZlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVZpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3MoJ0FicFVpOjpTdWNjZXNzZnVsbHlTYXZlZCcpO1xyXG4gICAgdGhpcy5sb2FkTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKHJvdzogQ29zdFBhcmFtZXRlckR0byk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgLndhcm4oJ0FicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2UnLCAnQWJwVWk6OkFyZVlvdVN1cmUnKVxyXG4gICAgICAuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XHJcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKHJvdy5jb2RlISkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKCdBYnBVaTo6U3VjY2Vzc2Z1bGx5RGVsZXRlZCcpO1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZExpc3QoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0tlb3BzOjpDb3N0UGFyYW1ldGVyczpUaXRsZScgfCBhYnBMb2NhbGl6YXRpb25cIj5cbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIG14LTBcIiBpZD1cIkNvc3RQYXJhbWV0ZXJzVG9vbGJhclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHB4LTEgcHQtMCBwdC1tZC0yIHBlLTBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ0tlb3BzQ29zdC5Db3N0UGFyYW1ldGVycy5DcmVhdGUnXCJcbiAgICAgICAgICBpZD1cImNyZWF0ZVwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuQ3JlYXRlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzIG1lLTFcIj48L2k+XG4gICAgICAgICAgPHNwYW4+e3sgJ0tlb3BzOjpDb3N0UGFyYW1ldGVyczpOZXcnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxuXG4gIDxkaXYgaWQ9XCJDb3N0UGFyYW1ldGVyc1dyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICA8ZHgtZGF0YS1ncmlkXG4gICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCJcbiAgICAgICAgICBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiXG4gICAgICAgICAgW3Jvd0FsdGVybmF0aW9uRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbZGF0YVNvdXJjZV09XCJpdGVtc1wiXG4gICAgICAgICAga2V5RXhwcj1cImNvZGVcIlxuICAgICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XG4gICAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxuICAgICAgICAgIDxkeG8tc2VhcmNoLXBhbmVsXG4gICAgICAgICAgICBbd2lkdGhdPVwiMjAwXCJcbiAgICAgICAgICAgIFt2aXNpYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvblwiXG4gICAgICAgICAgPjwvZHhvLXNlYXJjaC1wYW5lbD5cbiAgICAgICAgICA8ZHhvLXBhZ2VyXG4gICAgICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzaG93SW5mb109XCJ0cnVlXCJcbiAgICAgICAgICAgIFthbGxvd2VkUGFnZVNpemVzXT1cIlsxMCwgMjAsIDUwXVwiXG4gICAgICAgICAgICBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2hvd05hdmlnYXRpb25CdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgID48L2R4by1wYWdlcj5cbiAgICAgICAgICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiMTBcIj48L2R4by1wYWdpbmc+XG4gICAgICAgICAgPGR4aS1jb2x1bW5cbiAgICAgICAgICAgIFtmaXhlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFthbGxvd0ZpbHRlcmluZ109XCJmYWxzZVwiXG4gICAgICAgICAgICBbYWxsb3dIZWFkZXJGaWx0ZXJpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2FsbG93UmVvcmRlcmluZ109XCJmYWxzZVwiXG4gICAgICAgICAgICBbYWxsb3dIaWRpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2FsbG93R3JvdXBpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2FsbG93U29ydGluZ109XCJmYWxzZVwiXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJvcHRUcGxcIlxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxuICAgICAgICAgICAgd2lkdGg9XCIxMjBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgcm93IG9mICdvcHRUcGwnXCI+XG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jb2cgbWUtMVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKmFicFBlcm1pc3Npb249XCInS2VvcHNDb3N0LkNvc3RQYXJhbWV0ZXJzLlVwZGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5FZGl0KHJvdy5kYXRhKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidLZW9wc0Nvc3QuQ29zdFBhcmFtZXRlcnMuRGVsZXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKHJvdy5kYXRhKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9keGktY29sdW1uPlxuICAgICAgICAgIDxkeGktY29sdW1uXG4gICAgICAgICAgICBkYXRhRmllbGQ9XCJyZWdpb25cIlxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlPVwicmVnaW9uVHBsXCJcbiAgICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2VvcHM6OkNvc3RQYXJhbWV0ZXJzOlJlZ2lvbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgcm93IG9mICdyZWdpb25UcGwnXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGdldFJlZ2lvbk5hbWUocm93LmRhdGEucmVnaW9uKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZHhpLWNvbHVtbj5cbiAgICAgICAgICA8ZHhpLWNvbHVtblxuICAgICAgICAgICAgZGF0YUZpZWxkPVwicHJvZHVjdEdyb3VwXCJcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cInByb2R1Y3RHcm91cFRwbFwiXG4gICAgICAgICAgICBjYXB0aW9uPVwie3sgJ0tlb3BzOjpDb3N0UGFyYW1ldGVyczpQcm9kdWN0R3JvdXAnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IHJvdyBvZiAncHJvZHVjdEdyb3VwVHBsJ1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRQcm9kdWN0R3JvdXBOYW1lKHJvdy5kYXRhLnByb2R1Y3RHcm91cCkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2R4aS1jb2x1bW4+XG4gICAgICAgICAgPGR4aS1jb2x1bW5cbiAgICAgICAgICAgIGRhdGFGaWVsZD1cInN0YXR1c1wiXG4gICAgICAgICAgICB3aWR0aD1cIjE2MFwiXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJzdGF0dXNUcGxcIlxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdLZW9wczo6Q29zdFBhcmFtZXRlcnM6U3RhdHVzJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ3N0YXR1c1RwbCdcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0U3RhdHVzTGFiZWwocm93LmRhdGEuc3RhdHVzKSB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZHhpLWNvbHVtbj5cbiAgICAgICAgICA8ZHhpLWNvbHVtblxuICAgICAgICAgICAgZGF0YUZpZWxkPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdLZW9wczo6Q29zdFBhcmFtZXRlcnM6RGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcbiAgICAgICAgICA+PC9keGktY29sdW1uPlxuICAgICAgICAgIDxkeGktY29sdW1uXG4gICAgICAgICAgICBkYXRhRmllbGQ9XCJ1cGRhdGVEYXRlXCJcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cInVwZGF0ZVRwbFwiXG4gICAgICAgICAgICBjYXB0aW9uPVwie3sgJ0tlb3BzOjpDb3N0UGFyYW1ldGVyczpMYXN0VXBkYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ3VwZGF0ZVRwbCdcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgcm93LmRhdGEudXBkYXRlRGF0ZSB8IHNob3J0RGF0ZSB9fSB7eyByb3cuZGF0YS51cGRhdGVUaW1lPy5zdWJzdHJpbmcoMCwgNSkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2R4aS1jb2x1bW4+XG4gICAgICAgIDwvZHgtZGF0YS1ncmlkPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hYnAtcGFnZT5cblxuPGxpYi1jb3N0LXBhcmFtZXRlci1mb3JtXG4gICpuZ0lmPVwiZm9ybVZpc2libGVcIlxuICBbKHZpc2libGUpXT1cImZvcm1WaXNpYmxlXCJcbiAgW21vZGVdPVwiZm9ybU1vZGVcIlxuICBbY3VycmVudF09XCJzZWxlY3RlZFwiXG4gIFtwcm9kdWN0R3JvdXBPcHRpb25zXT1cInByb2R1Y3RHcm91cE9wdGlvbnNcIlxuICBbcmVnaW9uT3B0aW9uc109XCJyZWdpb25PcHRpb25zXCJcbiAgKHNhdmVkKT1cIm9uU2F2ZWQoKVwiXG4+PC9saWItY29zdC1wYXJhbWV0ZXItZm9ybT5cbiJdfQ==
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdC1wYXJhbWV0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1LWtlb3BzL3NyYy9saWIvZmVhdHVyZXMvY29zdC1wYXJhbWV0ZXJzL2NvbXBvbmVudHMvY29zdC1wYXJhbWV0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1LWtlb3BzL3NyYy9saWIvZmVhdHVyZXMvY29zdC1wYXJhbWV0ZXJzL2NvbXBvbmVudHMvY29zdC1wYXJhbWV0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUF1QyxNQUFNLHNCQUFzQixDQUFDO0FBT3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTTVFLE1BQU0sT0FBTyx1QkFBdUI7SUFTbEMsWUFDbUIsT0FBNkIsRUFDN0IsZUFBNkMsRUFDN0MsT0FBdUIsRUFDdkIsWUFBaUM7UUFIakMsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0Isb0JBQWUsR0FBZixlQUFlLENBQThCO1FBQzdDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQVpwRCxVQUFLLEdBQXVCLEVBQUUsQ0FBQztRQUUvQix3QkFBbUIsR0FBK0IsRUFBRSxDQUFDO1FBRXJELGFBQVEsR0FBNEIsSUFBSSxDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGFBQVEsR0FBc0IsUUFBUSxDQUFDO0lBT3BDLENB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SEF4RlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRDaEJwQyxvdUtBMklBOzJGRDNIYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHtcclxuICBDb3N0UGFyYW1ldGVyU2VydmljZSxcclxuICBDb3N0UGFyYW1ldGVyRHRvLFxyXG4gIENvc3RQYXJhbWV0ZXJDYXRlZ29yeUR0byxcclxuICBDb3N0UGFyYW1ldGVyQ2F0ZWdvcnlTZXJ2aWNlLFxyXG59IGZyb20gJ0BoaXRzb2Z0L2thZG9vZ2x1LWtlb3BzL3Byb3h5JztcclxuaW1wb3J0IHsgc3RhdHVzTGFiZWxzIH0gZnJvbSAnLi4vY29zdC1wYXJhbWV0ZXItbDEwbi1oZWxwZXInO1xyXG5pbXBvcnQgeyBidXNpbmVzc1JlZ2lvbkxhYmVscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2J1c2luZXNzLXJlZ2lvbi51dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jb3N0LXBhcmFtZXRlcnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3N0LXBhcmFtZXRlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29zdFBhcmFtZXRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGl0ZW1zOiBDb3N0UGFyYW1ldGVyRHRvW10gPSBbXTtcclxuXHJcbiAgcHJvZHVjdEdyb3VwT3B0aW9uczogQ29zdFBhcmFtZXRlckNhdGVnb3J5RHRvW10gPSBbXTtcclxuXHJcbiAgc2VsZWN0ZWQ6IENvc3RQYXJhbWV0ZXJEdG8gfCBudWxsID0gbnVsbDtcclxuICBmb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG4gIGZvcm1Nb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogQ29zdFBhcmFtZXRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5U2VydmljZTogQ29zdFBhcmFtZXRlckNhdGVnb3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0dXNMYWJlbCh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBzdGF0dXNMYWJlbHNbdmFsdWUgYXMga2V5b2YgdHlwZW9mIHN0YXR1c0xhYmVsc10gPz8gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdWN0R3JvdXBOYW1lKGNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZU5hbWUodGhpcy5wcm9kdWN0R3JvdXBPcHRpb25zLCBjb2RlKTtcclxuICB9XHJcblxyXG4gIGdldFJlZ2lvbkxhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGJ1c2luZXNzUmVnaW9uTGFiZWxzW3ZhbHVlIGFzIGtleW9mIHR5cGVvZiBidXNpbmVzc1JlZ2lvbkxhYmVsc10gPz8gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc29sdmVOYW1lKFxyXG4gICAgb3B0aW9uczogQ29zdFBhcmFtZXRlckNhdGVnb3J5RHRvW10sXHJcbiAgICBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLFxyXG4gICk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWNvZGUpIHJldHVybiAnJztcclxuICAgIHJldHVybiBvcHRpb25zLmZpbmQoeCA9PiB4LmNvZGUgPT09IGNvZGUpPy5uYW1lID8/IGNvZGU7XHJcbiAgfVxyXG5cclxuICBsb2FkKCk6IHZvaWQge1xyXG4gICAgZm9ya0pvaW4oe1xyXG4gICAgICBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRMaXN0KCksXHJcbiAgICAgIGl0ZW1zOiB0aGlzLnNlcnZpY2UuZ2V0TGlzdCgpLFxyXG4gICAgfSkuc3Vic2NyaWJlKCh7IGNhdGVnb3JpZXMsIGl0ZW1zIH0pID0+IHtcclxuICAgICAgdGhpcy5wcm9kdWN0R3JvdXBPcHRpb25zID0gY2F0ZWdvcmllcyA/PyBbXTtcclxuICAgICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkTGlzdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5nZXRMaXN0KCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICB0aGlzLml0ZW1zID0gZGF0YTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNyZWF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgdGhpcy5mb3JtTW9kZSA9ICdjcmVhdGUnO1xyXG4gICAgdGhpcy5mb3JtVmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvcGVuRWRpdChyb3c6IENvc3RQYXJhbWV0ZXJEdG8pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSByb3c7XHJcbiAgICB0aGlzLmZvcm1Nb2RlID0gJ2VkaXQnO1xyXG4gICAgdGhpcy5mb3JtVmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvblNhdmVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICB0aGlzLnRvYXN0ZXIuc3VjY2VzcygnQWJwVWk6OlN1Y2Nlc3NmdWxseVNhdmVkJyk7XHJcbiAgICB0aGlzLmxvYWRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUocm93OiBDb3N0UGFyYW1ldGVyRHRvKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvblxyXG4gICAgICAud2FybignQWJwVWk6Okl0ZW1XaWxsQmVEZWxldGVkTWVzc2FnZScsICdBYnBVaTo6QXJlWW91U3VyZScpXHJcbiAgICAgIC5zdWJzY3JpYmUoc3RhdHVzID0+IHtcclxuICAgICAgICBpZiAoc3RhdHVzID09PSBDb25maXJtYXRpb24uU3RhdHVzLmNvbmZpcm0pIHtcclxuICAgICAgICAgIHRoaXMuc2VydmljZS5kZWxldGUocm93LmNvZGUhKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3MoJ0FicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkTGlzdCgpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInS2VvcHM6OkNvc3RQYXJhbWV0ZXJzOlRpdGxlJyB8IGFicExvY2FsaXphdGlvblwiPlxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1lbmQgbXgtMFwiIGlkPVwiQ29zdFBhcmFtZXRlcnNUb29sYmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gcHgtMSBwdC0wIHB0LW1kLTIgcGUtMFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKmFicFBlcm1pc3Npb249XCInS2VvcHNDb3N0LkNvc3RQYXJhbWV0ZXJzLkNyZWF0ZSdcIlxuICAgICAgICAgIGlkPVwiY3JlYXRlXCJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5DcmVhdGUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMgbWUtMVwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj57eyAnS2VvcHM6OkNvc3RQYXJhbWV0ZXJzOk5ldycgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XG5cbiAgPGRpdiBpZD1cIkNvc3RQYXJhbWV0ZXJzV3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgIDxkeC1kYXRhLWdyaWRcbiAgICAgICAgICBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIlxuICAgICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcbiAgICAgICAgICBbcm93QWx0ZXJuYXRpb25FbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgIFtkYXRhU291cmNlXT1cIml0ZW1zXCJcbiAgICAgICAgICBrZXlFeHByPVwiY29kZVwiXG4gICAgICAgICAgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cbiAgICAgICAgICA8ZHhvLWhlYWRlci1maWx0ZXIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XG4gICAgICAgICAgPGR4by1zZWFyY2gtcGFuZWxcbiAgICAgICAgICAgIFt3aWR0aF09XCIyMDBcIlxuICAgICAgICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9uXCJcbiAgICAgICAgICA+PC9keG8tc2VhcmNoLXBhbmVsPlxuICAgICAgICAgIDxkeG8tcGFnZXJcbiAgICAgICAgICAgIFt2aXNpYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dJbmZvXT1cInRydWVcIlxuICAgICAgICAgICAgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzEwLCAyMCwgNTBdXCJcbiAgICAgICAgICAgIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgPjwvZHhvLXBhZ2VyPlxuICAgICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCIxMFwiPjwvZHhvLXBhZ2luZz5cbiAgICAgICAgICA8ZHhpLWNvbHVtblxuICAgICAgICAgICAgW2ZpeGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2FsbG93RmlsdGVyaW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFthbGxvd0hlYWRlckZpbHRlcmluZ109XCJmYWxzZVwiXG4gICAgICAgICAgICBbYWxsb3dSZW9yZGVyaW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFthbGxvd0hpZGluZ109XCJmYWxzZVwiXG4gICAgICAgICAgICBbYWxsb3dHcm91cGluZ109XCJmYWxzZVwiXG4gICAgICAgICAgICBbYWxsb3dTb3J0aW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cIm9wdFRwbFwiXG4gICAgICAgICAgICBjYXB0aW9uPVwie3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXG4gICAgICAgICAgICB3aWR0aD1cIjEyMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ29wdFRwbCdcIj5cbiAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgbmdiRHJvcGRvd25Ub2dnbGU+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtZS0xXCI+PC9pPlxuICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidLZW9wc0Nvc3QuQ29zdFBhcmFtZXRlcnMuVXBkYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkVkaXQocm93LmRhdGEpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ0tlb3BzQ29zdC5Db3N0UGFyYW1ldGVycy5EZWxldGUnXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUocm93LmRhdGEpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2R4aS1jb2x1bW4+XG4gICAgICAgICAgPGR4aS1jb2x1bW5cbiAgICAgICAgICAgIGRhdGFGaWVsZD1cInJlZ2lvblwiXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJyZWdpb25UcGxcIlxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdLZW9wczo6Q29zdFBhcmFtZXRlcnM6UmVnaW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ3JlZ2lvblRwbCdcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0UmVnaW9uTGFiZWwocm93LmRhdGEucmVnaW9uKSB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZHhpLWNvbHVtbj5cbiAgICAgICAgICA8ZHhpLWNvbHVtblxuICAgICAgICAgICAgZGF0YUZpZWxkPVwicHJvZHVjdEdyb3VwXCJcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cInByb2R1Y3RHcm91cFRwbFwiXG4gICAgICAgICAgICBjYXB0aW9uPVwie3sgJ0tlb3BzOjpDb3N0UGFyYW1ldGVyczpQcm9kdWN0R3JvdXAnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IHJvdyBvZiAncHJvZHVjdEdyb3VwVHBsJ1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRQcm9kdWN0R3JvdXBOYW1lKHJvdy5kYXRhLnByb2R1Y3RHcm91cCkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2R4aS1jb2x1bW4+XG4gICAgICAgICAgPGR4aS1jb2x1bW5cbiAgICAgICAgICAgIGRhdGFGaWVsZD1cInN0YXR1c1wiXG4gICAgICAgICAgICB3aWR0aD1cIjE2MFwiXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJzdGF0dXNUcGxcIlxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdLZW9wczo6Q29zdFBhcmFtZXRlcnM6U3RhdHVzJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ3N0YXR1c1RwbCdcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0U3RhdHVzTGFiZWwocm93LmRhdGEuc3RhdHVzKSB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZHhpLWNvbHVtbj5cbiAgICAgICAgICA8ZHhpLWNvbHVtblxuICAgICAgICAgICAgZGF0YUZpZWxkPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgY2FwdGlvbj1cInt7ICdLZW9wczo6Q29zdFBhcmFtZXRlcnM6RGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcbiAgICAgICAgICA+PC9keGktY29sdW1uPlxuICAgICAgICAgIDxkeGktY29sdW1uXG4gICAgICAgICAgICBkYXRhRmllbGQ9XCJ1cGRhdGVEYXRlXCJcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cInVwZGF0ZVRwbFwiXG4gICAgICAgICAgICBjYXB0aW9uPVwie3sgJ0tlb3BzOjpDb3N0UGFyYW1ldGVyczpMYXN0VXBkYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ3VwZGF0ZVRwbCdcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgcm93LmRhdGEudXBkYXRlRGF0ZSB8IHNob3J0RGF0ZSB9fSB7eyByb3cuZGF0YS51cGRhdGVUaW1lPy5zdWJzdHJpbmcoMCwgNSkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2R4aS1jb2x1bW4+XG4gICAgICAgIDwvZHgtZGF0YS1ncmlkPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hYnAtcGFnZT5cblxuPGxpYi1jb3N0LXBhcmFtZXRlci1mb3JtXG4gICpuZ0lmPVwiZm9ybVZpc2libGVcIlxuICBbKHZpc2libGUpXT1cImZvcm1WaXNpYmxlXCJcbiAgW21vZGVdPVwiZm9ybU1vZGVcIlxuICBbY3VycmVudF09XCJzZWxlY3RlZFwiXG4gIFtwcm9kdWN0R3JvdXBPcHRpb25zXT1cInByb2R1Y3RHcm91cE9wdGlvbnNcIlxuICAoc2F2ZWQpPVwib25TYXZlZCgpXCJcbj48L2xpYi1jb3N0LXBhcmFtZXRlci1mb3JtPlxuIl19
|