@hitsoft/e-donusum 100.1.26-Edo-Test → 100.1.28-Edo-Test

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.
Files changed (59) hide show
  1. package/esm2020/lib/components/hit-auto-send-rules/hit-auto-send-rule.component.mjs +16 -13
  2. package/esm2020/lib/components/hit-branches/hit-branch.component.mjs +13 -10
  3. package/esm2020/lib/components/hit-business-partner-groups/hit-business-partner-group.component.mjs +13 -10
  4. package/esm2020/lib/components/hit-business-partners/hit-business-partner.component.mjs +14 -11
  5. package/esm2020/lib/components/hit-despatches/hit-despatch.component.mjs +15 -12
  6. package/esm2020/lib/components/hit-document-serial/hit-document-serial.component.mjs +17 -14
  7. package/esm2020/lib/components/hit-failed-connector-despatches/hit-failed-connector-despatch.component.mjs +13 -10
  8. package/esm2020/lib/components/hit-failed-connector-invoices/hit-failed-connector-invoice.component.mjs +13 -10
  9. package/esm2020/lib/components/hit-failed-connector-producer-receipts/hit-failed-connector-producer-receipt.component.mjs +13 -10
  10. package/esm2020/lib/components/hit-failed-despatches/hit-failed-despatch.component.mjs +15 -12
  11. package/esm2020/lib/components/hit-failed-invoices/hit-failed-invoice.component.mjs +15 -12
  12. package/esm2020/lib/components/hit-failed-producer-receipts/hit-failed-producer-receipt.component.mjs +15 -12
  13. package/esm2020/lib/components/hit-gib-partner-pk-alls/hit-gib-partner-pk-all.component.mjs +13 -10
  14. package/esm2020/lib/components/hit-gib-partner-pks/hit-gib-partner-pk.component.mjs +18 -15
  15. package/esm2020/lib/components/hit-inbound-despatches/hit-inbound-despatch.component.mjs +16 -13
  16. package/esm2020/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.mjs +71 -26
  17. package/esm2020/lib/components/hit-invoices/hit-invoice.component.mjs +24 -13
  18. package/esm2020/lib/components/hit-invoices-sent/hit-invoice-sent.component.mjs +15 -12
  19. package/esm2020/lib/components/hit-note-rules/hit-note-rule.component.mjs +16 -13
  20. package/esm2020/lib/components/hit-producer-receipts/hit-producer-receipt.component.mjs +16 -13
  21. package/esm2020/lib/components/hit-xslt-formats/hit-xslt-format.component.mjs +16 -13
  22. package/esm2020/lib/components/hit-xslt-rules/hit-xslt-rule.component.mjs +16 -13
  23. package/esm2020/lib/hit-proxy/grid-states/grid-state.service.mjs +86 -0
  24. package/esm2020/lib/hit-proxy/hit-inbound-invoices/hit-inbound-invoice.service.mjs +6 -1
  25. package/esm2020/lib/hit-proxy/hit-inbound-invoices/models.mjs +1 -1
  26. package/esm2020/lib/proxy/despatches/models.mjs +1 -1
  27. package/esm2020/lib/proxy/invoices/models.mjs +1 -1
  28. package/fesm2015/hitsoft-e-donusum.mjs +342 -153
  29. package/fesm2015/hitsoft-e-donusum.mjs.map +1 -1
  30. package/fesm2020/hitsoft-e-donusum.mjs +315 -134
  31. package/fesm2020/hitsoft-e-donusum.mjs.map +1 -1
  32. package/lib/components/hit-auto-send-rules/hit-auto-send-rule.component.d.ts +4 -1
  33. package/lib/components/hit-branches/hit-branch.component.d.ts +4 -1
  34. package/lib/components/hit-business-partner-groups/hit-business-partner-group.component.d.ts +4 -1
  35. package/lib/components/hit-business-partners/hit-business-partner.component.d.ts +4 -1
  36. package/lib/components/hit-despatches/hit-despatch.component.d.ts +4 -1
  37. package/lib/components/hit-document-serial/hit-document-serial.component.d.ts +4 -1
  38. package/lib/components/hit-failed-connector-despatches/hit-failed-connector-despatch.component.d.ts +4 -1
  39. package/lib/components/hit-failed-connector-invoices/hit-failed-connector-invoice.component.d.ts +4 -1
  40. package/lib/components/hit-failed-connector-producer-receipts/hit-failed-connector-producer-receipt.component.d.ts +4 -1
  41. package/lib/components/hit-failed-despatches/hit-failed-despatch.component.d.ts +4 -1
  42. package/lib/components/hit-failed-invoices/hit-failed-invoice.component.d.ts +4 -1
  43. package/lib/components/hit-failed-producer-receipts/hit-failed-producer-receipt.component.d.ts +4 -1
  44. package/lib/components/hit-gib-partner-pk-alls/hit-gib-partner-pk-all.component.d.ts +4 -1
  45. package/lib/components/hit-gib-partner-pks/hit-gib-partner-pk.component.d.ts +4 -1
  46. package/lib/components/hit-inbound-despatches/hit-inbound-despatch.component.d.ts +4 -1
  47. package/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.d.ts +6 -1
  48. package/lib/components/hit-invoices/hit-invoice.component.d.ts +6 -1
  49. package/lib/components/hit-invoices-sent/hit-invoice-sent.component.d.ts +4 -1
  50. package/lib/components/hit-note-rules/hit-note-rule.component.d.ts +4 -1
  51. package/lib/components/hit-producer-receipts/hit-producer-receipt.component.d.ts +4 -1
  52. package/lib/components/hit-xslt-formats/hit-xslt-format.component.d.ts +4 -1
  53. package/lib/components/hit-xslt-rules/hit-xslt-rule.component.d.ts +4 -1
  54. package/lib/hit-proxy/grid-states/grid-state.service.d.ts +39 -0
  55. package/lib/hit-proxy/hit-inbound-invoices/hit-inbound-invoice.service.d.ts +1 -0
  56. package/lib/hit-proxy/hit-inbound-invoices/models.d.ts +2 -0
  57. package/lib/proxy/despatches/models.d.ts +1 -0
  58. package/lib/proxy/invoices/models.d.ts +2 -0
  59. package/package.json +1 -1
@@ -10,25 +10,28 @@ import * as i1 from "@abp/ng.theme.shared";
10
10
  import * as i2 from "../../proxy/xslt-formats";
11
11
  import * as i3 from "../../hit-proxy/hit-xslt-formats/hit-xslt-format.service";
12
12
  import * as i4 from "@angular/forms";
13
- import * as i5 from "@abp/ng.core";
14
- import * as i6 from "@ngx-validate/core";
15
- import * as i7 from "@ng-bootstrap/ng-bootstrap";
16
- import * as i8 from "devextreme-angular";
17
- import * as i9 from "devextreme-angular/ui/nested";
18
- import * as i10 from "devextreme-angular/core";
19
- import * as i11 from "@abp/ng.components/page";
13
+ import * as i5 from "../../hit-proxy/grid-states/grid-state.service";
14
+ import * as i6 from "@abp/ng.core";
15
+ import * as i7 from "@ngx-validate/core";
16
+ import * as i8 from "@ng-bootstrap/ng-bootstrap";
17
+ import * as i9 from "devextreme-angular";
18
+ import * as i10 from "devextreme-angular/ui/nested";
19
+ import * as i11 from "devextreme-angular/core";
20
+ import * as i12 from "@abp/ng.components/page";
20
21
  export class HitXsltFormatComponent {
21
- constructor(toasterService, confirmation, service, hitXsltFormatService, fb) {
22
+ constructor(toasterService, confirmation, service, hitXsltFormatService, fb, gridStateService) {
22
23
  this.toasterService = toasterService;
23
24
  this.confirmation = confirmation;
24
25
  this.service = service;
25
26
  this.hitXsltFormatService = hitXsltFormatService;
26
27
  this.fb = fb;
28
+ this.gridStateService = gridStateService;
27
29
  this.typesDataSource = [];
28
30
  this.isModalBusy = false;
29
31
  this.isModalOpen = false;
30
32
  }
31
33
  ngOnInit() {
34
+ this.gridState = this.gridStateService.build('xslt-formats');
32
35
  this.xsltFormatDataSource = this.hitXsltFormatService.LoadXsltFormats;
33
36
  this.hitXsltFormatService.getTypes().subscribe(list => {
34
37
  this.typesDataSource = list;
@@ -129,13 +132,13 @@ export class HitXsltFormatComponent {
129
132
  });
130
133
  }
131
134
  }
132
- HitXsltFormatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitXsltFormatComponent, deps: [{ token: i1.ToasterService }, { token: i1.ConfirmationService }, { token: i2.XsltFormatService }, { token: i3.HitXsltFormatService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
133
- HitXsltFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitXsltFormatComponent, selector: "lib-xslt-format", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "dxXsltFormatInstance", first: true, predicate: ["dxXsltFormatInstance"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::XsltFormats' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button *abpPermission=\"'eDonusum.XsltFormats.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n (click)=\"create()\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewXsltFormat' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxXsltFormatInstance [dataSource]=\"xsltFormatDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\"\r\n [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [fixed]=\"true\" dataField=\"id\" width=\"120\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem (click)=\"update(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"delete(row.data)\">\r\n <i class=\"fa fa-trash\" aria-hidden=\"true\"></i> {{ 'AbpUi::Delete' | abpLocalization\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"{{'eDonusum::Name'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"type\" caption=\"{{'eDonusum::Type'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"typesDataSource\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"fileName\" caption=\"{{'eDonusum::FileName'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"isDefault\" caption=\"{{'eDonusum::IsDefault'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewXsltFormat') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"xslt-format\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"xslt-format-name\">\r\n {{ 'eDonusum::Name' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"xslt-format-name\" formControlName=\"name\" class=\"form-control\" maxlength=\"64\" autofocus />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"xslt-format-type\">\r\n {{ 'eDonusum::Type' | abpLocalization }}\r\n </label>\r\n\r\n <dx-select-box id=\"xslt-format-type\" formControlName=\"type\" class=\"form-control\"\r\n displayExpr=\"displayName\" valueExpr=\"id\" [dataSource]=\"typesDataSource\"\r\n placeholder=\"{{ 'eDonusum::Pick' | abpLocalization }}..\">\r\n </dx-select-box>\r\n </div>\r\n <div class=\"row\">\r\n <label class=\"form-label\" for=\"xslt-format-file-name\">\r\n {{ 'eDonusum::FileName' | abpLocalization }} *\r\n </label>\r\n </div>\r\n <div class = \"row\">\r\n <div class = \"col-md mb-3\">\r\n <dx-text-box id=\"xslt-format-file-name\" formControlName=\"fileName\" class=\"form-control\" [disabled]=\"true\"\r\n maxlength=\"64\"></dx-text-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"this.openAttachment()\">\r\n {{ 'eDonusum::UploadXslt' | abpLocalization }}\r\n \r\n <input type=\"file\" accept=\".xslt\" class=\"file\" #attachment id=\"attachment\" style=\"display:none\"\r\n (change)=\"changeHitFileUpload($event)\" />\r\n </button>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"this.downloadFile()\">\r\n {{ 'eDonusum::DownloadXslt' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div> \r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"xslt-format-is-default\" formControlName=\"isDefault\"\r\n class=\"form-check-input\" />\r\n\r\n <label for=\"xslt-format-is-default\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsDefault' | abpLocalization }}\r\n </label>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"xslt-format\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>", dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i5.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i6.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i7.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i7.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i7.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i7.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i8.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: i9.DxoColumnChooserComponent, selector: "dxo-column-chooser", inputs: ["allowSearch", "emptyPanelText", "enabled", "height", "mode", "searchTimeout", "sortOrder", "title", "width"] }, { kind: "component", type: i9.DxoColumnFixingComponent, selector: "dxo-column-fixing", inputs: ["enabled", "texts"] }, { kind: "component", type: i9.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: i9.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i9.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i9.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i9.DxoFilterBuilderComponent, selector: "dxo-filter-builder", inputs: ["accessKey", "activeStateEnabled", "allowHierarchicalFields", "customOperations", "disabled", "elementAttr", "fields", "filterOperationDescriptions", "focusStateEnabled", "groupOperationDescriptions", "groupOperations", "height", "hint", "hoverStateEnabled", "maxGroupLevel", "onContentReady", "onDisposing", "onEditorPrepared", "onEditorPreparing", "onInitialized", "onOptionChanged", "onValueChanged", "rtlEnabled", "tabIndex", "value", "visible", "width"], outputs: ["valueChange"] }, { kind: "component", type: i9.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i9.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i9.DxoGroupingComponent, selector: "dxo-grouping", inputs: ["allowCollapsing", "autoExpandAll", "contextMenuEnabled", "expandMode", "texts"] }, { kind: "component", type: i9.DxoGroupPanelComponent, selector: "dxo-group-panel", inputs: ["allowColumnDragging", "emptyPanelText", "visible"], outputs: ["visibleChange"] }, { kind: "component", type: i9.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i9.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i9.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i9.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i10.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i8.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i8.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i11.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i11.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
135
+ HitXsltFormatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitXsltFormatComponent, deps: [{ token: i1.ToasterService }, { token: i1.ConfirmationService }, { token: i2.XsltFormatService }, { token: i3.HitXsltFormatService }, { token: i4.FormBuilder }, { token: i5.GridStateService }], target: i0.ɵɵFactoryTarget.Component });
136
+ HitXsltFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitXsltFormatComponent, selector: "lib-xslt-format", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "dxXsltFormatInstance", first: true, predicate: ["dxXsltFormatInstance"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::XsltFormats' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button *abpPermission=\"'eDonusum.XsltFormats.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n (click)=\"create()\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewXsltFormat' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxXsltFormatInstance [dataSource]=\"xsltFormatDataSource\" [stateStoring]=\"gridState\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\"\r\n [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [fixed]=\"true\" dataField=\"id\" width=\"120\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem (click)=\"update(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"delete(row.data)\">\r\n <i class=\"fa fa-trash\" aria-hidden=\"true\"></i> {{ 'AbpUi::Delete' | abpLocalization\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"{{'eDonusum::Name'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"type\" caption=\"{{'eDonusum::Type'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"typesDataSource\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"fileName\" caption=\"{{'eDonusum::FileName'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"isDefault\" caption=\"{{'eDonusum::IsDefault'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewXsltFormat') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"xslt-format\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"xslt-format-name\">\r\n {{ 'eDonusum::Name' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"xslt-format-name\" formControlName=\"name\" class=\"form-control\" maxlength=\"64\" autofocus />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"xslt-format-type\">\r\n {{ 'eDonusum::Type' | abpLocalization }}\r\n </label>\r\n\r\n <dx-select-box id=\"xslt-format-type\" formControlName=\"type\" class=\"form-control\"\r\n displayExpr=\"displayName\" valueExpr=\"id\" [dataSource]=\"typesDataSource\"\r\n placeholder=\"{{ 'eDonusum::Pick' | abpLocalization }}..\">\r\n </dx-select-box>\r\n </div>\r\n <div class=\"row\">\r\n <label class=\"form-label\" for=\"xslt-format-file-name\">\r\n {{ 'eDonusum::FileName' | abpLocalization }} *\r\n </label>\r\n </div>\r\n <div class = \"row\">\r\n <div class = \"col-md mb-3\">\r\n <dx-text-box id=\"xslt-format-file-name\" formControlName=\"fileName\" class=\"form-control\" [disabled]=\"true\"\r\n maxlength=\"64\"></dx-text-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"this.openAttachment()\">\r\n {{ 'eDonusum::UploadXslt' | abpLocalization }}\r\n \r\n <input type=\"file\" accept=\".xslt\" class=\"file\" #attachment id=\"attachment\" style=\"display:none\"\r\n (change)=\"changeHitFileUpload($event)\" />\r\n </button>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"this.downloadFile()\">\r\n {{ 'eDonusum::DownloadXslt' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div> \r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"xslt-format-is-default\" formControlName=\"isDefault\"\r\n class=\"form-check-input\" />\r\n\r\n <label for=\"xslt-format-is-default\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsDefault' | abpLocalization }}\r\n </label>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"xslt-format\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>", dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i6.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i6.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i8.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i8.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i8.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i8.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i9.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: i10.DxoColumnChooserComponent, selector: "dxo-column-chooser", inputs: ["allowSearch", "emptyPanelText", "enabled", "height", "mode", "searchTimeout", "sortOrder", "title", "width"] }, { kind: "component", type: i10.DxoColumnFixingComponent, selector: "dxo-column-fixing", inputs: ["enabled", "texts"] }, { kind: "component", type: i10.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: i10.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i10.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i10.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i10.DxoFilterBuilderComponent, selector: "dxo-filter-builder", inputs: ["accessKey", "activeStateEnabled", "allowHierarchicalFields", "customOperations", "disabled", "elementAttr", "fields", "filterOperationDescriptions", "focusStateEnabled", "groupOperationDescriptions", "groupOperations", "height", "hint", "hoverStateEnabled", "maxGroupLevel", "onContentReady", "onDisposing", "onEditorPrepared", "onEditorPreparing", "onInitialized", "onOptionChanged", "onValueChanged", "rtlEnabled", "tabIndex", "value", "visible", "width"], outputs: ["valueChange"] }, { kind: "component", type: i10.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i10.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i10.DxoGroupingComponent, selector: "dxo-grouping", inputs: ["allowCollapsing", "autoExpandAll", "contextMenuEnabled", "expandMode", "texts"] }, { kind: "component", type: i10.DxoGroupPanelComponent, selector: "dxo-group-panel", inputs: ["allowColumnDragging", "emptyPanelText", "visible"], outputs: ["visibleChange"] }, { kind: "component", type: i10.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i10.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i10.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i10.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i11.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i9.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i9.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i12.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i12.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i6.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
134
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitXsltFormatComponent, decorators: [{
135
138
  type: Component,
136
- args: [{ selector: 'lib-xslt-format', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::XsltFormats' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button *abpPermission=\"'eDonusum.XsltFormats.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n (click)=\"create()\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewXsltFormat' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxXsltFormatInstance [dataSource]=\"xsltFormatDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\"\r\n [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [fixed]=\"true\" dataField=\"id\" width=\"120\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem (click)=\"update(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"delete(row.data)\">\r\n <i class=\"fa fa-trash\" aria-hidden=\"true\"></i> {{ 'AbpUi::Delete' | abpLocalization\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"{{'eDonusum::Name'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"type\" caption=\"{{'eDonusum::Type'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"typesDataSource\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"fileName\" caption=\"{{'eDonusum::FileName'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"isDefault\" caption=\"{{'eDonusum::IsDefault'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewXsltFormat') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"xslt-format\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"xslt-format-name\">\r\n {{ 'eDonusum::Name' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"xslt-format-name\" formControlName=\"name\" class=\"form-control\" maxlength=\"64\" autofocus />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"xslt-format-type\">\r\n {{ 'eDonusum::Type' | abpLocalization }}\r\n </label>\r\n\r\n <dx-select-box id=\"xslt-format-type\" formControlName=\"type\" class=\"form-control\"\r\n displayExpr=\"displayName\" valueExpr=\"id\" [dataSource]=\"typesDataSource\"\r\n placeholder=\"{{ 'eDonusum::Pick' | abpLocalization }}..\">\r\n </dx-select-box>\r\n </div>\r\n <div class=\"row\">\r\n <label class=\"form-label\" for=\"xslt-format-file-name\">\r\n {{ 'eDonusum::FileName' | abpLocalization }} *\r\n </label>\r\n </div>\r\n <div class = \"row\">\r\n <div class = \"col-md mb-3\">\r\n <dx-text-box id=\"xslt-format-file-name\" formControlName=\"fileName\" class=\"form-control\" [disabled]=\"true\"\r\n maxlength=\"64\"></dx-text-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"this.openAttachment()\">\r\n {{ 'eDonusum::UploadXslt' | abpLocalization }}\r\n \r\n <input type=\"file\" accept=\".xslt\" class=\"file\" #attachment id=\"attachment\" style=\"display:none\"\r\n (change)=\"changeHitFileUpload($event)\" />\r\n </button>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"this.downloadFile()\">\r\n {{ 'eDonusum::DownloadXslt' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div> \r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"xslt-format-is-default\" formControlName=\"isDefault\"\r\n class=\"form-check-input\" />\r\n\r\n <label for=\"xslt-format-is-default\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsDefault' | abpLocalization }}\r\n </label>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"xslt-format\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>" }]
137
- }], ctorParameters: function () { return [{ type: i1.ToasterService }, { type: i1.ConfirmationService }, { type: i2.XsltFormatService }, { type: i3.HitXsltFormatService }, { type: i4.FormBuilder }]; }, propDecorators: { dxXsltFormatInstance: [{
139
+ args: [{ selector: 'lib-xslt-format', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::XsltFormats' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button *abpPermission=\"'eDonusum.XsltFormats.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n (click)=\"create()\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewXsltFormat' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxXsltFormatInstance [dataSource]=\"xsltFormatDataSource\" [stateStoring]=\"gridState\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\"\r\n [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [fixed]=\"true\" dataField=\"id\" width=\"120\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem (click)=\"update(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"delete(row.data)\">\r\n <i class=\"fa fa-trash\" aria-hidden=\"true\"></i> {{ 'AbpUi::Delete' | abpLocalization\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"{{'eDonusum::Name'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"type\" caption=\"{{'eDonusum::Type'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"typesDataSource\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"fileName\" caption=\"{{'eDonusum::FileName'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"isDefault\" caption=\"{{'eDonusum::IsDefault'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewXsltFormat') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"xslt-format\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"xslt-format-name\">\r\n {{ 'eDonusum::Name' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"xslt-format-name\" formControlName=\"name\" class=\"form-control\" maxlength=\"64\" autofocus />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"xslt-format-type\">\r\n {{ 'eDonusum::Type' | abpLocalization }}\r\n </label>\r\n\r\n <dx-select-box id=\"xslt-format-type\" formControlName=\"type\" class=\"form-control\"\r\n displayExpr=\"displayName\" valueExpr=\"id\" [dataSource]=\"typesDataSource\"\r\n placeholder=\"{{ 'eDonusum::Pick' | abpLocalization }}..\">\r\n </dx-select-box>\r\n </div>\r\n <div class=\"row\">\r\n <label class=\"form-label\" for=\"xslt-format-file-name\">\r\n {{ 'eDonusum::FileName' | abpLocalization }} *\r\n </label>\r\n </div>\r\n <div class = \"row\">\r\n <div class = \"col-md mb-3\">\r\n <dx-text-box id=\"xslt-format-file-name\" formControlName=\"fileName\" class=\"form-control\" [disabled]=\"true\"\r\n maxlength=\"64\"></dx-text-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"this.openAttachment()\">\r\n {{ 'eDonusum::UploadXslt' | abpLocalization }}\r\n \r\n <input type=\"file\" accept=\".xslt\" class=\"file\" #attachment id=\"attachment\" style=\"display:none\"\r\n (change)=\"changeHitFileUpload($event)\" />\r\n </button>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"this.downloadFile()\">\r\n {{ 'eDonusum::DownloadXslt' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div> \r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"xslt-format-is-default\" formControlName=\"isDefault\"\r\n class=\"form-check-input\" />\r\n\r\n <label for=\"xslt-format-is-default\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsDefault' | abpLocalization }}\r\n </label>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"xslt-format\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>" }]
140
+ }], ctorParameters: function () { return [{ type: i1.ToasterService }, { type: i1.ConfirmationService }, { type: i2.XsltFormatService }, { type: i3.HitXsltFormatService }, { type: i4.FormBuilder }, { type: i5.GridStateService }]; }, propDecorators: { dxXsltFormatInstance: [{
138
141
  type: ViewChild,
139
142
  args: ['dxXsltFormatInstance', { static: false }]
140
143
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXhzbHQtZm9ybWF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LXhzbHQtZm9ybWF0cy9oaXQteHNsdC1mb3JtYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQteHNsdC1mb3JtYXRzL2hpdC14c2x0LWZvcm1hdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlDLFdBQVcsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBdUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFhbkYsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQixZQUNxQixjQUE4QixFQUN2QyxZQUFpQyxFQUN4QixPQUEwQixFQUMxQixvQkFBMEMsRUFDbkQsRUFBZTtRQUpOLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUNuRCxPQUFFLEdB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SSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzttSEEvSVEsc0JBQXNCO3VHQUF0QixzQkFBc0IsMENBSnBCLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsd0pDakJoRixtOVFBNklZOzJGRHhIQyxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0ksaUJBQWlCLG1CQUNWLHVCQUF1QixDQUFDLE9BQU8sYUFDckMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztvT0FLdEIsb0JBQW9CO3NCQUF6RSxTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgaXNOdWxsT3JFbXB0eSwgaXNOdWxsT3JVbmRlZmluZWQsIExpc3RTZXJ2aWNlLCBQYWdlZFJlc3VsdER0byB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBYc2x0Rm9ybWF0RHRvLCBYc2x0Rm9ybWF0U2VydmljZSwgWHNsdEZvcm1hdFVwZGF0ZUR0byB9IGZyb20gJy4uLy4uL3Byb3h5L3hzbHQtZm9ybWF0cyc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQsIER4SHRtbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IGZpbmFsaXplLCB0YXAsIGZpbHRlciwgc3dpdGNoTWFwLCBSZXBsYXlTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEhpdFhzbHRGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC14c2x0LWZvcm1hdHMvaGl0LXhzbHQtZm9ybWF0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250ZW50TWFzdGVySW5wdXREdG8gfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWNvbnRlbnQtbWFzdGVyL21vZGVscyc7XHJcbmltcG9ydCB7IE5vdGVSdWxlQ3JlYXRlRHRvIH0gZnJvbSAnLi4vLi4vcHJveHkvbm90ZS1ydWxlcyc7XHJcbmltcG9ydCB7IEhpdFhzbHRGb3JtYXRDcmVhdGVEdG8gfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LXhzbHQtZm9ybWF0cy9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi14c2x0LWZvcm1hdCcsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcbiAgICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hpdC14c2x0LWZvcm1hdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0WHNsdEZvcm1hdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdkeFhzbHRGb3JtYXRJbnN0YW5jZScsIHsgc3RhdGljOiBmYWxzZSB9KSBkeFhzbHRGb3JtYXRJbnN0YW5jZTogRHhEYXRhR3JpZENvbXBvbmVudFxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBYc2x0Rm9ybWF0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhpdFhzbHRGb3JtYXRTZXJ2aWNlOiBIaXRYc2x0Rm9ybWF0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlclxyXG4gICAgKSB7IH1cclxuXHJcbiAgICB4c2x0Rm9ybWF0RGF0YVNvdXJjZTogYW55O1xyXG4gICAgdHlwZXNEYXRhU291cmNlID0gW107XHJcblxyXG4gICAgZm9ybTogRm9ybUdyb3VwO1xyXG4gICAgaXNNb2RhbEJ1c3kgPSBmYWxzZTtcclxuICAgIGlzTW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICBzZWxlY3RlZD86IFhzbHRGb3JtYXREdG87XHJcblxyXG4gICAgc2VsZWN0ZWRGaWxlPzogQ29udGVudE1hc3RlcklucHV0RHRvXHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy54c2x0Rm9ybWF0RGF0YVNvdXJjZSA9IHRoaXMuaGl0WHNsdEZvcm1hdFNlcnZpY2UuTG9hZFhzbHRGb3JtYXRzXHJcblxyXG4gICAgICAgIHRoaXMuaGl0WHNsdEZvcm1hdFNlcnZpY2UuZ2V0VHlwZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHlwZXNEYXRhU291cmNlID0gbGlzdDtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkRm9ybSgpIHtcclxuICAgICAgICBjb25zdCB7IG5hbWUsIHR5cGUsIGZpbGVOYW1lLCBpc0RlZmF1bHQgfSA9IHRoaXMuc2VsZWN0ZWQgfHwge307XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBuYW1lOiBbbmFtZSA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXHJcbiAgICAgICAgICAgIHR5cGU6IFt0eXBlID8/IDAsIFtdXSxcclxuICAgICAgICAgICAgZmlsZU5hbWU6IFtmaWxlTmFtZSA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXHJcbiAgICAgICAgICAgIGlzRGVmYXVsdDogW2lzRGVmYXVsdCA/PyBmYWxzZSwgW11dLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaGlkZUZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93Rm9ybSgpIHtcclxuICAgICAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbE9wZW4gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN1Ym1pdEZvcm0oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnNlbGVjdGVkXHJcbiAgICAgICAgICAgID8gdGhpcy5oaXRYc2x0Rm9ybWF0U2VydmljZS51cGRhdGUodGhpcy5zZWxlY3RlZC5pZCwge1xyXG4gICAgICAgICAgICAgICAgeHNsdEZvcm1hdDogdGhpcy5mb3JtLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWxlOiB0aGlzLnNlbGVjdGVkRmlsZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICA6IHRoaXMuaGl0WHNsdEZvcm1hdFNlcnZpY2UuY3JlYXRlKFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHhzbHRGb3JtYXQ6IHRoaXMuZm9ybS52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbGU6IHRoaXMuc2VsZWN0ZWRGaWxlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNNb2RhbEJ1c3kgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXF1ZXN0XHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuaXNNb2RhbEJ1c3kgPSBmYWxzZSkpLFxyXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuaGlkZUZvcm0oKSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHhYc2x0Rm9ybWF0SW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlKHJlY29yZDogWHNsdEZvcm1hdFVwZGF0ZUR0bykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSByZWNvcmQ7XHJcbiAgICAgICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZShyZWNvcmQ6IFhzbHRGb3JtYXREdG8pIHtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblxyXG4gICAgICAgICAgICAud2FybignZURvbnVzdW06OkRlbGV0ZUNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnZURvbnVzdW06OkFyZVlvdVN1cmUnLCB7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbXSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIoc3RhdHVzID0+IHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNlcnZpY2UuZGVsZXRlKHJlY29yZC5pZCkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmR4WHNsdEZvcm1hdEluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlbkF0dGFjaG1lbnQoKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F0dGFjaG1lbnQnKS5jbGljaygpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZUhpdEZpbGVVcGxvYWQoZXZlbnQpIHtcclxuICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICB2YXIgZmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdmFyIGZpbGVUb0xvYWQgPSBmaWxlc1swXTtcclxuICAgICAgICAgICAgdGhpcy5jb252ZXJ0RmlsZShmaWxlVG9Mb2FkKS5zdWJzY3JpYmUoYmFzZTY0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2JJbnB1dER0bzoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBiYXNlNjQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVUb0xvYWQubmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudE1hc3RlckNyZWF0ZUR0bzoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJsZU5hbWU6IFwiWFNMVEZPUk1BVFNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlTmFtZTogXCJFRE9OVVNVTVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5maWxlTmFtZS5zZXRWYWx1ZShmaWxlVG9Mb2FkLm5hbWUpXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb252ZXJ0RmlsZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xyXG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKTtcclxuICAgICAgICByZWFkZXIub25sb2FkID0gZXZlbnQgPT4gcmVzdWx0Lm5leHQoYnRvYShldmVudC50YXJnZXQucmVzdWx0LnRvU3RyaW5nKCkpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZEZpbGUoKXtcclxuICAgICAgICB0aGlzLmhpdFhzbHRGb3JtYXRTZXJ2aWNlLmRvd25sb2FkWHNsdEZpbGUodGhpcy5zZWxlY3RlZD8uaWQpLnN1YnNjcmliZShpdGVtID0+IHtcclxuICAgICAgICAgICAgZGVidWdnZXJcclxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gYGRhdGE6JHtpdGVtLm1pbWVUeXBlfTtiYXNlNjQsJHtpdGVtLmNvbnRlbnR9YDtcclxuICAgICAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgICAgbGluay5ocmVmID0gc291cmNlO1xyXG4gICAgICAgICAgICBsaW5rLmRvd25sb2FkID0gYCR7aXRlbS5maWxlbmFtZX1gO1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ2VEb251c3VtOjpEb25lJylcclxuICAgICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBkZWxldGVFcXVpcG1lbnRGaWxlKHJvdzogYW55KSB7XHJcbiAgICAvLyAgICAgY29uc29sZS5sb2cocm93KVxyXG4gICAgLy8gICAgIGlmIChyb3cuZGF0YS5lcXVpcG1lbnRGaWxlLmJsb2JJZCkge1xyXG4gICAgLy8gICAgICAgICAvL2RiIGRlbiBzaWxcclxuICAgIC8vICAgICAgICAgdGhpcy5lcXVpcG1lbnRGaWxlU2VydmljZS5kZWxldGUocm93LmRhdGEuZXF1aXBtZW50RmlsZS5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgIC8vICAgICAgICAgICAgIHRoaXMuZHhFcXVpcG1lbnRGaWxlRGF0YVNvdXJjZS5zcGxpY2Uocm93LnJvd0luZGV4LCAxKTtcclxuICAgIC8vICAgICAgICAgfSlcclxuICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgICAvL2xpc3RlZGVuIHNpbFxyXG4gICAgLy8gICAgICAgICB0aGlzLmR4RXF1aXBtZW50RmlsZURhdGFTb3VyY2Uuc3BsaWNlKHJvdy5yb3dJbmRleCwgMSk7XHJcblxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxuXHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInZURvbnVzdW06OlhzbHRGb3JtYXRzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5Yc2x0Rm9ybWF0cy5DcmVhdGUnXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlKClcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpOZXdYc2x0Rm9ybWF0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZHgtZGF0YS1ncmlkICNkeFhzbHRGb3JtYXRJbnN0YW5jZSBbZGF0YVNvdXJjZV09XCJ4c2x0Rm9ybWF0RGF0YVNvdXJjZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCIgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCIgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cInRydWVcIiBzdHlsZT1cImhlaWdodDogNzV2aDtcIj5cclxuICAgICAgICAgICAgICAgIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzaG93SW5mb109XCJ0cnVlXCIgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLDEwMCwyMDBdXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd05hdmlnYXRpb25CdXR0b25zXT1cInRydWVcIiBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiNTBcIj48L2R4by1wYWdpbmc+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1jaG9vc2VyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW2VuYWJsZWRdPVwidHJ1ZVwiIG1vZGU9XCJzZWxlY3RcIj48L2R4by1jb2x1bW4tY2hvb3Nlcj5cclxuICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICAgICAgICAgIDxkeG8tZ3JvdXAtcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiIFthbGxvd0NvbHVtbkRyYWdnaW5nXT1cInRydWVcIj48L2R4by1ncm91cC1wYW5lbD5cclxuICAgICAgICAgICAgICAgIDxkeG8tZ3JvdXBpbmcgI2V4cGFuZCBbYXV0b0V4cGFuZEFsbF09XCJmYWxzZVwiIFthbGxvd0NvbGxhcHNpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRNZW51RW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tZ3JvdXBpbmc+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWhlYWRlci1maWx0ZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8taGVhZGVyLWZpbHRlcj5cclxuICAgICAgICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICAgICAgICAgIDxkeG8tZXhwb3J0IFtlbmFibGVkXT1cInRydWVcIiBbYWxsb3dFeHBvcnRTZWxlY3RlZERhdGFdPVwiZmFsc2VcIj48L2R4by1leHBvcnQ+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1idWlsZGVyIFthbGxvd0hpZXJhcmNoaWNhbEZpZWxkc109XCJ0cnVlXCI+PC9keG8tZmlsdGVyLWJ1aWxkZXI+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1wYW5lbCBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXBhbmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gW2ZpeGVkXT1cInRydWVcIiBkYXRhRmllbGQ9XCJpZFwiIHdpZHRoPVwiMTIwXCIgW2FsbG93R3JvdXBpbmddPVwiZmFsc2VcIiBbYWxsb3dGaWx0ZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0hlYWRlckZpbHRlcmluZ109XCJmYWxzZVwiIFthbGxvd0hpZGluZ109XCJmYWxzZVwiIFthbGxvd1Jlb3JkZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cIm9wZXJhdGlvblRlbXBsYXRlXCIgY2FwdGlvbj1cInt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IHJvdyBvZiAnb3BlcmF0aW9uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgbmdiRHJvcGRvd25Ub2dnbGUgW2Rpc2FibGVkXT1cImRpc2FibGVkSWRDb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtci0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cInVwZGF0ZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lZGl0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRlbGV0ZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJuYW1lXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpOYW1lJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInR5cGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlR5cGUnfGFicExvY2FsaXphdGlvbn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwidHlwZXNEYXRhU291cmNlXCIgdmFsdWVFeHByPVwiaWRcIiBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9keG8tbG9va3VwPlxyXG4gICAgICAgICAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZmlsZU5hbWVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkZpbGVOYW1lJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzRGVmYXVsdFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6SXNEZWZhdWx0J3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuXHJcbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgICAgICA8aDM+XHJcbiAgICAgICAgICAgIHt7IChzZWxlY3RlZCA/ICdBYnBVaTo6RWRpdCcgOiAnZURvbnVzdW06Ok5ld1hzbHRGb3JtYXQnKSB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvaDM+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBpZD1cInhzbHQtZm9ybWF0XCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiIHZhbGlkYXRlT25TdWJtaXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ4c2x0LWZvcm1hdC1uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInhzbHQtZm9ybWF0LW5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBtYXhsZW5ndGg9XCI2NFwiIGF1dG9mb2N1cyAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ4c2x0LWZvcm1hdC10eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBpZD1cInhzbHQtZm9ybWF0LXR5cGVcIiBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCIgdmFsdWVFeHByPVwiaWRcIiBbZGF0YVNvdXJjZV09XCJ0eXBlc0RhdGFTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlRG9udXN1bTo6UGljaycgfCBhYnBMb2NhbGl6YXRpb24gfX0uLlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZHgtc2VsZWN0LWJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ4c2x0LWZvcm1hdC1maWxlLW5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpGaWxlTmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3MgPSBcInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3MgPSBcImNvbC1tZCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cInhzbHQtZm9ybWF0LWZpbGUtbmFtZVwiIGZvcm1Db250cm9sTmFtZT1cImZpbGVOYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjY0XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidGhpcy5vcGVuQXR0YWNobWVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlVwbG9hZFhzbHQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cIi54c2x0XCIgY2xhc3M9XCJmaWxlXCIgI2F0dGFjaG1lbnQgaWQ9XCJhdHRhY2htZW50XCIgc3R5bGU9XCJkaXNwbGF5Om5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlSGl0RmlsZVVwbG9hZCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRoaXMuZG93bmxvYWRGaWxlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RG93bmxvYWRYc2x0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwieHNsdC1mb3JtYXQtaXMtZGVmYXVsdFwiIGZvcm1Db250cm9sTmFtZT1cImlzRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgLz5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwieHNsdC1mb3JtYXQtaXMtZGVmYXVsdFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SXNEZWZhdWx0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XHJcbiAgICAgICAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIGJ1dHRvblR5cGU9XCJzdWJtaXRcIiBmb3JtTmFtZT1cInhzbHQtZm9ybWF0XCI+XHJcbiAgICAgICAgICAgIHt7ICdBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2FicC1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXhzbHQtZm9ybWF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LXhzbHQtZm9ybWF0cy9oaXQteHNsdC1mb3JtYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQteHNsdC1mb3JtYXRzL2hpdC14c2x0LWZvcm1hdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlDLFdBQVcsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBdUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBY25GLE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsWUFDcUIsY0FBOEIsRUFDdkMsWUFBaUMsRUFDeEIsT0FBMEIsRUFDMUIsb0JBQTBDLEVBQ25ELEVBQWUsRUFDTixnQkFBa0M7UUFMbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNC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QyxHQUFHLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUE7WUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7bUhBbEpRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDBDQUpwQixDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLHdKQ2xCaEYsZy9RQTZJWTsyRkR2SEMsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLGlCQUFpQixtQkFDVix1QkFBdUIsQ0FBQyxPQUFPLGFBQ3JDLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7bVFBS3RCLG9CQUFvQjtzQkFBekUsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGlzTnVsbE9yRW1wdHksIGlzTnVsbE9yVW5kZWZpbmVkLCBMaXN0U2VydmljZSwgUGFnZWRSZXN1bHREdG8gfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlQWRhcHRlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgWHNsdEZvcm1hdER0bywgWHNsdEZvcm1hdFNlcnZpY2UsIFhzbHRGb3JtYXRVcGRhdGVEdG8gfSBmcm9tICcuLi8uLi9wcm94eS94c2x0LWZvcm1hdHMnO1xyXG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50LCBEeEh0bWxFZGl0b3JDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFwLCBmaWx0ZXIsIHN3aXRjaE1hcCwgUmVwbGF5U3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIaXRYc2x0Rm9ybWF0U2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQteHNsdC1mb3JtYXRzL2hpdC14c2x0LWZvcm1hdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udGVudE1hc3RlcklucHV0RHRvIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1jb250ZW50LW1hc3Rlci9tb2RlbHMnO1xyXG5pbXBvcnQgeyBOb3RlUnVsZUNyZWF0ZUR0byB9IGZyb20gJy4uLy4uL3Byb3h5L25vdGUtcnVsZXMnO1xyXG5pbXBvcnQgeyBIaXRYc2x0Rm9ybWF0Q3JlYXRlRHRvIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC14c2x0LWZvcm1hdHMvbW9kZWxzJztcclxuaW1wb3J0IHsgR3JpZFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9ncmlkLXN0YXRlcy9ncmlkLXN0YXRlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi14c2x0LWZvcm1hdCcsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcbiAgICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hpdC14c2x0LWZvcm1hdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0WHNsdEZvcm1hdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdkeFhzbHRGb3JtYXRJbnN0YW5jZScsIHsgc3RhdGljOiBmYWxzZSB9KSBkeFhzbHRGb3JtYXRJbnN0YW5jZTogRHhEYXRhR3JpZENvbXBvbmVudFxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBYc2x0Rm9ybWF0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhpdFhzbHRGb3JtYXRTZXJ2aWNlOiBIaXRYc2x0Rm9ybWF0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGdyaWRTdGF0ZVNlcnZpY2U6IEdyaWRTdGF0ZVNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gICAgeHNsdEZvcm1hdERhdGFTb3VyY2U6IGFueTtcclxuICAgIGdyaWRTdGF0ZTogYW55O1xyXG4gICAgdHlwZXNEYXRhU291cmNlID0gW107XHJcblxyXG4gICAgZm9ybTogRm9ybUdyb3VwO1xyXG4gICAgaXNNb2RhbEJ1c3kgPSBmYWxzZTtcclxuICAgIGlzTW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICBzZWxlY3RlZD86IFhzbHRGb3JtYXREdG87XHJcblxyXG4gICAgc2VsZWN0ZWRGaWxlPzogQ29udGVudE1hc3RlcklucHV0RHRvXHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkU3RhdGUgPSB0aGlzLmdyaWRTdGF0ZVNlcnZpY2UuYnVpbGQoJ3hzbHQtZm9ybWF0cycpO1xyXG4gICAgICAgIHRoaXMueHNsdEZvcm1hdERhdGFTb3VyY2UgPSB0aGlzLmhpdFhzbHRGb3JtYXRTZXJ2aWNlLkxvYWRYc2x0Rm9ybWF0c1xyXG5cclxuICAgICAgICB0aGlzLmhpdFhzbHRGb3JtYXRTZXJ2aWNlLmdldFR5cGVzKCkuc3Vic2NyaWJlKGxpc3QgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnR5cGVzRGF0YVNvdXJjZSA9IGxpc3Q7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBidWlsZEZvcm0oKSB7XHJcbiAgICAgICAgY29uc3QgeyBuYW1lLCB0eXBlLCBmaWxlTmFtZSwgaXNEZWZhdWx0IH0gPSB0aGlzLnNlbGVjdGVkIHx8IHt9O1xyXG5cclxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgbmFtZTogW25hbWUgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV1dLFxyXG4gICAgICAgICAgICB0eXBlOiBbdHlwZSA/PyAwLCBbXV0sXHJcbiAgICAgICAgICAgIGZpbGVOYW1lOiBbZmlsZU5hbWUgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV1dLFxyXG4gICAgICAgICAgICBpc0RlZmF1bHQ6IFtpc0RlZmF1bHQgPz8gZmFsc2UsIFtdXSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGhpZGVGb3JtKCkge1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0Zvcm0oKSB7XHJcbiAgICAgICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgICAgICB0aGlzLmlzTW9kYWxPcGVuID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJtaXRGb3JtKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5zZWxlY3RlZFxyXG4gICAgICAgICAgICA/IHRoaXMuaGl0WHNsdEZvcm1hdFNlcnZpY2UudXBkYXRlKHRoaXMuc2VsZWN0ZWQuaWQsIHtcclxuICAgICAgICAgICAgICAgIHhzbHRGb3JtYXQ6IHRoaXMuZm9ybS52YWx1ZSxcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRmlsZTogdGhpcy5zZWxlY3RlZEZpbGVcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgOiB0aGlzLmhpdFhzbHRGb3JtYXRTZXJ2aWNlLmNyZWF0ZShcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB4c2x0Rm9ybWF0OiB0aGlzLmZvcm0udmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWxlOiB0aGlzLnNlbGVjdGVkRmlsZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmlzTW9kYWxCdXN5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmVxdWVzdFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTW9kYWxCdXN5ID0gZmFsc2UpKSxcclxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmhpZGVGb3JtKCkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmR4WHNsdEZvcm1hdEluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlKCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShyZWNvcmQ6IFhzbHRGb3JtYXRVcGRhdGVEdG8pIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkID0gcmVjb3JkO1xyXG4gICAgICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGUocmVjb3JkOiBYc2x0Rm9ybWF0RHRvKSB7XHJcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgICAgICAgLndhcm4oJ2VEb251c3VtOjpEZWxldGVDb25maXJtYXRpb25NZXNzYWdlJywgJ2VEb251c3VtOjpBcmVZb3VTdXJlJywge1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW10sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKHN0YXR1cyA9PiBzdGF0dXMgPT09IENvbmZpcm1hdGlvbi5TdGF0dXMuY29uZmlybSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlLmRlbGV0ZShyZWNvcmQuaWQpKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5keFhzbHRGb3JtYXRJbnN0YW5jZS5pbnN0YW5jZS5yZWZyZXNoKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5BdHRhY2htZW50KCkge1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdHRhY2htZW50JykuY2xpY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VIaXRGaWxlVXBsb2FkKGV2ZW50KSB7XHJcbiAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgdmFyIGZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xyXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHZhciBmaWxlVG9Mb2FkID0gZmlsZXNbMF07XHJcbiAgICAgICAgICAgIHRoaXMuY29udmVydEZpbGUoZmlsZVRvTG9hZCkuc3Vic2NyaWJlKGJhc2U2NCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBibG9iSW5wdXREdG86IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogYmFzZTY0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlVG9Mb2FkLm5hbWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRNYXN0ZXJDcmVhdGVEdG86IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVOYW1lOiBcIlhTTFRGT1JNQVRTXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWU6IFwiRURPTlVTVU1cIixcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZmlsZU5hbWUuc2V0VmFsdWUoZmlsZVRvTG9hZC5uYW1lKVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29udmVydEZpbGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcclxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XHJcbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGV2ZW50ID0+IHJlc3VsdC5uZXh0KGJ0b2EoZXZlbnQudGFyZ2V0LnJlc3VsdC50b1N0cmluZygpKSk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgZG93bmxvYWRGaWxlKCl7XHJcbiAgICAgICAgdGhpcy5oaXRYc2x0Rm9ybWF0U2VydmljZS5kb3dubG9hZFhzbHRGaWxlKHRoaXMuc2VsZWN0ZWQ/LmlkKS5zdWJzY3JpYmUoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyXHJcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGBkYXRhOiR7aXRlbS5taW1lVHlwZX07YmFzZTY0LCR7aXRlbS5jb250ZW50fWA7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IHNvdXJjZTtcclxuICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IGAke2l0ZW0uZmlsZW5hbWV9YDtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKCdlRG9udXN1bTo6RG9uZScpXHJcbiAgICAgICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gZGVsZXRlRXF1aXBtZW50RmlsZShyb3c6IGFueSkge1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKHJvdylcclxuICAgIC8vICAgICBpZiAocm93LmRhdGEuZXF1aXBtZW50RmlsZS5ibG9iSWQpIHtcclxuICAgIC8vICAgICAgICAgLy9kYiBkZW4gc2lsXHJcbiAgICAvLyAgICAgICAgIHRoaXMuZXF1aXBtZW50RmlsZVNlcnZpY2UuZGVsZXRlKHJvdy5kYXRhLmVxdWlwbWVudEZpbGUuaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmR4RXF1aXBtZW50RmlsZURhdGFTb3VyY2Uuc3BsaWNlKHJvdy5yb3dJbmRleCwgMSk7XHJcbiAgICAvLyAgICAgICAgIH0pXHJcbiAgICAvLyAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgLy9saXN0ZWRlbiBzaWxcclxuICAgIC8vICAgICAgICAgdGhpcy5keEVxdWlwbWVudEZpbGVEYXRhU291cmNlLnNwbGljZShyb3cucm93SW5kZXgsIDEpO1xyXG5cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyB9XHJcblxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ2VEb251c3VtOjpYc2x0Rm9ybWF0cycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKmFicFBlcm1pc3Npb249XCInZURvbnVzdW0uWHNsdEZvcm1hdHMuQ3JlYXRlJ1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMgbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TmV3WHNsdEZvcm1hdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhYc2x0Rm9ybWF0SW5zdGFuY2UgW2RhdGFTb3VyY2VdPVwieHNsdEZvcm1hdERhdGFTb3VyY2VcIiBbc3RhdGVTdG9yaW5nXT1cImdyaWRTdGF0ZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCIgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCIgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cInRydWVcIiBzdHlsZT1cImhlaWdodDogNzV2aDtcIj5cclxuICAgICAgICAgICAgICAgIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzaG93SW5mb109XCJ0cnVlXCIgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLDEwMCwyMDBdXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd05hdmlnYXRpb25CdXR0b25zXT1cInRydWVcIiBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiNTBcIj48L2R4by1wYWdpbmc+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1jaG9vc2VyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW2VuYWJsZWRdPVwidHJ1ZVwiIG1vZGU9XCJzZWxlY3RcIj48L2R4by1jb2x1bW4tY2hvb3Nlcj5cclxuICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICAgICAgICAgIDxkeG8tZ3JvdXAtcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiIFthbGxvd0NvbHVtbkRyYWdnaW5nXT1cInRydWVcIj48L2R4by1ncm91cC1wYW5lbD5cclxuICAgICAgICAgICAgICAgIDxkeG8tZ3JvdXBpbmcgI2V4cGFuZCBbYXV0b0V4cGFuZEFsbF09XCJmYWxzZVwiIFthbGxvd0NvbGxhcHNpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRNZW51RW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tZ3JvdXBpbmc+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWhlYWRlci1maWx0ZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8taGVhZGVyLWZpbHRlcj5cclxuICAgICAgICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICAgICAgICAgIDxkeG8tZXhwb3J0IFtlbmFibGVkXT1cInRydWVcIiBbYWxsb3dFeHBvcnRTZWxlY3RlZERhdGFdPVwiZmFsc2VcIj48L2R4by1leHBvcnQ+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1idWlsZGVyIFthbGxvd0hpZXJhcmNoaWNhbEZpZWxkc109XCJ0cnVlXCI+PC9keG8tZmlsdGVyLWJ1aWxkZXI+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1wYW5lbCBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXBhbmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gW2ZpeGVkXT1cInRydWVcIiBkYXRhRmllbGQ9XCJpZFwiIHdpZHRoPVwiMTIwXCIgW2FsbG93R3JvdXBpbmddPVwiZmFsc2VcIiBbYWxsb3dGaWx0ZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0hlYWRlckZpbHRlcmluZ109XCJmYWxzZVwiIFthbGxvd0hpZGluZ109XCJmYWxzZVwiIFthbGxvd1Jlb3JkZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cIm9wZXJhdGlvblRlbXBsYXRlXCIgY2FwdGlvbj1cInt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IHJvdyBvZiAnb3BlcmF0aW9uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgbmdiRHJvcGRvd25Ub2dnbGUgW2Rpc2FibGVkXT1cImRpc2FibGVkSWRDb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtci0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cInVwZGF0ZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lZGl0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRlbGV0ZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJuYW1lXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpOYW1lJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInR5cGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlR5cGUnfGFicExvY2FsaXphdGlvbn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwidHlwZXNEYXRhU291cmNlXCIgdmFsdWVFeHByPVwiaWRcIiBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9keG8tbG9va3VwPlxyXG4gICAgICAgICAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZmlsZU5hbWVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkZpbGVOYW1lJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzRGVmYXVsdFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6SXNEZWZhdWx0J3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuXHJcbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgICAgICA8aDM+XHJcbiAgICAgICAgICAgIHt7IChzZWxlY3RlZCA/ICdBYnBVaTo6RWRpdCcgOiAnZURvbnVzdW06Ok5ld1hzbHRGb3JtYXQnKSB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvaDM+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBpZD1cInhzbHQtZm9ybWF0XCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiIHZhbGlkYXRlT25TdWJtaXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ4c2x0LWZvcm1hdC1uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInhzbHQtZm9ybWF0LW5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBtYXhsZW5ndGg9XCI2NFwiIGF1dG9mb2N1cyAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ4c2x0LWZvcm1hdC10eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBpZD1cInhzbHQtZm9ybWF0LXR5cGVcIiBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCIgdmFsdWVFeHByPVwiaWRcIiBbZGF0YVNvdXJjZV09XCJ0eXBlc0RhdGFTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlRG9udXN1bTo6UGljaycgfCBhYnBMb2NhbGl6YXRpb24gfX0uLlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZHgtc2VsZWN0LWJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ4c2x0LWZvcm1hdC1maWxlLW5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpGaWxlTmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3MgPSBcInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3MgPSBcImNvbC1tZCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cInhzbHQtZm9ybWF0LWZpbGUtbmFtZVwiIGZvcm1Db250cm9sTmFtZT1cImZpbGVOYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjY0XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidGhpcy5vcGVuQXR0YWNobWVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlVwbG9hZFhzbHQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cIi54c2x0XCIgY2xhc3M9XCJmaWxlXCIgI2F0dGFjaG1lbnQgaWQ9XCJhdHRhY2htZW50XCIgc3R5bGU9XCJkaXNwbGF5Om5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlSGl0RmlsZVVwbG9hZCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRoaXMuZG93bmxvYWRGaWxlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RG93bmxvYWRYc2x0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwieHNsdC1mb3JtYXQtaXMtZGVmYXVsdFwiIGZvcm1Db250cm9sTmFtZT1cImlzRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgLz5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwieHNsdC1mb3JtYXQtaXMtZGVmYXVsdFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SXNEZWZhdWx0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XHJcbiAgICAgICAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIGJ1dHRvblR5cGU9XCJzdWJtaXRcIiBmb3JtTmFtZT1cInhzbHQtZm9ybWF0XCI+XHJcbiAgICAgICAgICAgIHt7ICdBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2FicC1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD4iXX0=