@hitsoft/e-donusum 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/providers/hit-providers/inbound-despatch-route.provider.d.ts +9 -0
- package/esm2020/config/e-donusum-config.module.mjs +5 -3
- package/esm2020/config/providers/hit-providers/inbound-despatch-route.provider.mjs +20 -0
- package/esm2020/lib/components/hit-branches/hit-branch.component.mjs +28 -0
- package/esm2020/lib/components/hit-branches/hit-branch.module.mjs +55 -0
- package/esm2020/lib/components/hit-business-partner-groups/hit-business-partner-group.component.mjs +28 -0
- package/esm2020/lib/components/hit-business-partner-groups/hit-business-partner-group.module.mjs +52 -0
- package/esm2020/lib/components/hit-business-partners/hit-business-partner.component.mjs +31 -0
- package/esm2020/lib/components/hit-business-partners/hit-business-partner.module.mjs +52 -0
- package/esm2020/lib/components/hit-despatches/hit-despatch.component.mjs +133 -0
- package/esm2020/lib/components/hit-despatches/hit-despatch.module.mjs +71 -0
- package/esm2020/lib/components/hit-despatches/sanitize-html.pipe.mjs +19 -0
- package/esm2020/lib/components/hit-gib-partner-pk-alls/hit-gib-partner-pk-all.component.mjs +28 -0
- package/esm2020/lib/components/hit-gib-partner-pk-alls/hit-gib-partner-pk-all.module.mjs +52 -0
- package/esm2020/lib/components/hit-gib-partner-pks/hit-gib-partner-pk.component.mjs +32 -0
- package/esm2020/lib/components/hit-gib-partner-pks/hit-gib-partner-pk.module.mjs +55 -0
- package/esm2020/lib/components/hit-inbound-despatches/hit-inbound-despatch-routing.module.mjs +38 -0
- package/esm2020/lib/components/hit-inbound-despatches/hit-inbound-despatch.component.mjs +135 -0
- package/esm2020/lib/components/hit-inbound-despatches/hit-inbound-despatch.module.mjs +77 -0
- package/esm2020/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.mjs +3 -3
- package/esm2020/lib/components/hit-invoices/hit-invoice.component.mjs +38 -13
- package/esm2020/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.component.mjs +2 -1
- package/esm2020/lib/components/hit-params-integrators/hit-params-integrator.component.mjs +2 -1
- package/esm2020/lib/components/hit-setup-wizard/hit-setup-wizard.component.mjs +3 -3
- package/esm2020/lib/despatches/despatch/components/despatch.component.mjs +14 -4
- package/esm2020/lib/despatches/despatch/despatch-routing.module.mjs +2 -2
- package/esm2020/lib/despatches/despatch/despatch.module.mjs +1 -1
- package/esm2020/lib/e-donusum-routing.module.mjs +16 -2
- package/esm2020/lib/e-donusum.module.mjs +31 -1
- package/esm2020/lib/hit-proxy/hit-branches/hit-branch.service.mjs +10 -4
- package/esm2020/lib/hit-proxy/hit-business-partner-groups/hit-business-partner-group.service.mjs +24 -0
- package/esm2020/lib/hit-proxy/hit-business-partners/hit-business-partner.service.mjs +24 -0
- package/esm2020/lib/hit-proxy/hit-despatch-lines/hit-despatch-line.service.mjs +25 -0
- package/esm2020/lib/hit-proxy/hit-despatches/hit-despatch.service.mjs +70 -0
- package/esm2020/lib/hit-proxy/hit-file-document-type/hit-file-document-type.service.mjs +24 -0
- package/esm2020/lib/hit-proxy/hit-gib-partner-pk-alls/hit-gib-partner-pk-alls.service.mjs +24 -0
- package/esm2020/lib/hit-proxy/hit-gib-partner-pks/hit-gib-partner-pk.service.mjs +24 -0
- package/esm2020/lib/hit-proxy/hit-inbound-despatches/hit-inbound-despatch.service.mjs +39 -0
- package/esm2020/lib/hit-proxy/hit-inbound-despatches/models.mjs +2 -0
- package/esm2020/lib/hit-proxy/hit-invoices/hit-invoice.service.mjs +27 -5
- package/esm2020/lib/invoices/invoice/components/invoice.component.mjs +5 -4
- package/esm2020/lib/invoices/invoice/invoice-routing.module.mjs +1 -1
- package/esm2020/lib/proxy/despatches/despatch.service.mjs +2 -2
- package/esm2020/lib/proxy/despatches/models.mjs +1 -1
- package/esm2020/lib/proxy/invoices/invoice.service.mjs +2 -2
- package/esm2020/lib/proxy/invoices/models.mjs +1 -1
- package/fesm2015/hitsoft-e-donusum-config.mjs +108 -89
- package/fesm2015/hitsoft-e-donusum-config.mjs.map +1 -1
- package/fesm2015/hitsoft-e-donusum.mjs +1237 -200
- package/fesm2015/hitsoft-e-donusum.mjs.map +1 -1
- package/fesm2020/hitsoft-e-donusum-config.mjs +108 -89
- package/fesm2020/hitsoft-e-donusum-config.mjs.map +1 -1
- package/fesm2020/hitsoft-e-donusum.mjs +1237 -200
- package/fesm2020/hitsoft-e-donusum.mjs.map +1 -1
- package/lib/components/hit-branches/hit-branch.component.d.ts +13 -0
- package/lib/components/hit-branches/hit-branch.module.d.ts +15 -0
- package/lib/components/hit-business-partner-groups/hit-business-partner-group.component.d.ts +13 -0
- package/lib/components/hit-business-partner-groups/hit-business-partner-group.module.d.ts +15 -0
- package/lib/components/hit-business-partners/hit-business-partner.component.d.ts +16 -0
- package/lib/components/hit-business-partners/hit-business-partner.module.d.ts +15 -0
- package/lib/components/hit-despatches/hit-despatch.component.d.ts +35 -0
- package/lib/components/hit-despatches/hit-despatch.module.d.ts +16 -0
- package/lib/components/hit-despatches/sanitize-html.pipe.d.ts +10 -0
- package/lib/components/hit-gib-partner-pk-alls/hit-gib-partner-pk-all.component.d.ts +13 -0
- package/lib/components/hit-gib-partner-pk-alls/hit-gib-partner-pk-all.module.d.ts +15 -0
- package/lib/components/hit-gib-partner-pks/hit-gib-partner-pk.component.d.ts +17 -0
- package/lib/components/hit-gib-partner-pks/hit-gib-partner-pk.module.d.ts +15 -0
- package/lib/components/hit-inbound-despatches/hit-inbound-despatch-routing.module.d.ts +7 -0
- package/lib/components/hit-inbound-despatches/hit-inbound-despatch.component.d.ts +38 -0
- package/lib/components/hit-inbound-despatches/hit-inbound-despatch.module.d.ts +16 -0
- package/lib/components/hit-invoices/hit-invoice.component.d.ts +10 -1
- package/lib/hit-proxy/hit-branches/hit-branch.service.d.ts +4 -1
- package/lib/hit-proxy/hit-business-partner-groups/hit-business-partner-group.service.d.ts +12 -0
- package/lib/hit-proxy/hit-business-partners/hit-business-partner.service.d.ts +12 -0
- package/lib/hit-proxy/hit-despatch-lines/hit-despatch-line.service.d.ts +12 -0
- package/lib/hit-proxy/hit-despatches/hit-despatch.service.d.ts +22 -0
- package/lib/hit-proxy/hit-file-document-type/hit-file-document-type.service.d.ts +12 -0
- package/lib/hit-proxy/hit-gib-partner-pk-alls/hit-gib-partner-pk-alls.service.d.ts +12 -0
- package/lib/hit-proxy/hit-gib-partner-pks/hit-gib-partner-pk.service.d.ts +12 -0
- package/lib/hit-proxy/hit-inbound-despatches/hit-inbound-despatch.service.d.ts +16 -0
- package/lib/hit-proxy/hit-inbound-despatches/models.d.ts +11 -0
- package/lib/hit-proxy/hit-invoices/hit-invoice.service.d.ts +4 -1
- package/lib/proxy/despatches/models.d.ts +45 -0
- package/lib/proxy/invoices/models.d.ts +4 -0
- package/package.json +1 -5
|
@@ -5,18 +5,23 @@ import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@abp/ng.core";
|
|
7
7
|
import * as i2 from "../../hit-proxy/hit-invoices/hit-invoice.service";
|
|
8
|
-
import * as i3 from "
|
|
9
|
-
import * as i4 from "@
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "devextreme-angular
|
|
13
|
-
import * as i8 from "
|
|
8
|
+
import * as i3 from "../../hit-proxy/hit-file-document-type/hit-file-document-type.service";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "@abp/ng.theme.shared";
|
|
11
|
+
import * as i6 from "@ng-bootstrap/ng-bootstrap";
|
|
12
|
+
import * as i7 from "devextreme-angular";
|
|
13
|
+
import * as i8 from "devextreme-angular/ui/nested";
|
|
14
|
+
import * as i9 from "devextreme-angular/core";
|
|
15
|
+
import * as i10 from "@abp/ng.components/page";
|
|
14
16
|
export class HitInvoiceComponent {
|
|
15
|
-
constructor(list, invoiceService) {
|
|
17
|
+
constructor(list, invoiceService, fileDocumentTypeService) {
|
|
16
18
|
this.list = list;
|
|
17
19
|
this.invoiceService = invoiceService;
|
|
20
|
+
this.fileDocumentTypeService = fileDocumentTypeService;
|
|
18
21
|
this.isPreviewModalOpen = false;
|
|
19
22
|
this.isPreviewModalBusy = false;
|
|
23
|
+
this.isFileModalOpen = false;
|
|
24
|
+
this.isFileModalBusy = false;
|
|
20
25
|
}
|
|
21
26
|
ngOnInit() {
|
|
22
27
|
this.invoicesDataSource = this.invoiceService.LoadInvoices;
|
|
@@ -29,6 +34,10 @@ export class HitInvoiceComponent {
|
|
|
29
34
|
this.invoiceService.getSapObjects().subscribe(list => {
|
|
30
35
|
this.invoiceObjectsEnumLookup = list;
|
|
31
36
|
});
|
|
37
|
+
this.fileDocumentTypeService.getFileDocumentTypes().subscribe(list => {
|
|
38
|
+
debugger;
|
|
39
|
+
this.invoiceFileNameLookup = list;
|
|
40
|
+
});
|
|
32
41
|
}
|
|
33
42
|
sendInvoiceSingle(record) {
|
|
34
43
|
let ids = [record.id];
|
|
@@ -48,7 +57,7 @@ export class HitInvoiceComponent {
|
|
|
48
57
|
this.invoiceService.getInvoicesFromConnector().subscribe(() => this.dxInvoiceInstance.instance.refresh());
|
|
49
58
|
}
|
|
50
59
|
getInvoiceResponses() {
|
|
51
|
-
this.invoiceService.
|
|
60
|
+
this.invoiceService.getInvoiceResponses(new Date().toISOString(), new Date().toISOString()).subscribe(() => this.dxInvoiceInstance.instance.refresh());
|
|
52
61
|
}
|
|
53
62
|
getInvoiceView(record) {
|
|
54
63
|
this.invoiceService.getInvoiceView(record.uuId).subscribe(item => {
|
|
@@ -59,6 +68,10 @@ export class HitInvoiceComponent {
|
|
|
59
68
|
link.click();
|
|
60
69
|
});
|
|
61
70
|
}
|
|
71
|
+
showAllFiles(record) {
|
|
72
|
+
this.invoiceFilesDataSource = this.invoiceService.LoadInvoiceFiles(record.uuId);
|
|
73
|
+
this.isFileModalOpen = true;
|
|
74
|
+
}
|
|
62
75
|
getInvoicePreview(record) {
|
|
63
76
|
this.invoiceService.getInvoicePreview(record.id, "OINV").subscribe(fatura => {
|
|
64
77
|
const source = `data:text/html;base64,${fatura.previewHTML}`;
|
|
@@ -86,14 +99,26 @@ export class HitInvoiceComponent {
|
|
|
86
99
|
}
|
|
87
100
|
return "";
|
|
88
101
|
}
|
|
102
|
+
DownloadFile(record) {
|
|
103
|
+
this.invoiceService.downloadFileById(record.contentMasterId).subscribe(item => {
|
|
104
|
+
const source = `data:${item.mimeType};base64,${item.content}`;
|
|
105
|
+
const link = document.createElement('a');
|
|
106
|
+
link.href = source;
|
|
107
|
+
link.download = `${item.filename}`;
|
|
108
|
+
link.click();
|
|
109
|
+
});
|
|
110
|
+
}
|
|
89
111
|
}
|
|
90
|
-
HitInvoiceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitInvoiceComponent, deps: [{ token: i1.ListService }, { token: i2.HitInvoiceService }], target: i0.ɵɵFactoryTarget.Component });
|
|
91
|
-
HitInvoiceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitInvoiceComponent, selector: "lib-invoice", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "dxInvoiceInstance", first: true, predicate: ["dxInvoiceInstance"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::Invoices' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <!-- <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n -->\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"sendInvoiceMultiple()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::AddToQueue' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-success\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"getInvoiceResponses()\">\r\n <i class=\"fa fa-question me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::CheckResponses' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-success\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"sendInvoiceToEntegrator()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::SendToEntegratorManual' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-warning\" type=\"button\"\r\n (click)=\"getInvoicesFromConnector()\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::GetFromConnectorManual' | abpLocalization }}\r\n </button>\r\n\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInvoiceInstance [dataSource]=\"invoicesDataSource\" [showRowLines]=\"true\" [showBorders]=\"true\"\r\n [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\" [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\" [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\" [showNavigationButtons]=\"true\"\r\n [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\" showCheckBoxesMode=\"always\">\r\n </dxo-selection>\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\" aria-haspopup=\"true\"\r\n 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 </button> -->\r\n <button ngbDropdownItem (click)=\"sendInvoiceSingle(row.data)\" *ngIf=\"row.data.status == 100\">\r\n <i class=\"fa fa-envelope\" aria-hidden=\"true\"></i> {{ 'eDonusum::AddToQueue' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"getInvoiceView(row.data)\" *ngIf=\"row.data.status == 300\">\r\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i> {{ 'eDonusum::GetView' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"getInvoicePreview(row.data)\" *ngIf=\"row.data.status == 100\">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i> {{ 'eDonusum::Preview' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"resourceDocEntry\"\r\n caption=\"{{'eDonusum::ResourceDocEntry'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"resourceDocType\" caption=\"{{'eDonusum::ResourceDocType'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceObjectsEnumLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"status\" caption=\"{{'eDonusum::Status'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceStatusLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"profileId\" caption=\"{{'eDonusum::ProfileId'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"invoiceTypeCode\" caption=\"{{'eDonusum::InvoiceTypeCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"receiverResponse\" caption=\"{{'eDonusum::ReceiverResponse'|abpLocalization}}\"\r\n cellTemplate=\"iconTemplate\">\r\n <dxo-lookup [dataSource]=\"invoiceReceiverResponseLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <div *dxTemplate=\"let data of 'iconTemplate'\">\r\n <i [ngClass]=\"getIconClass(data.data.receiverResponse)\"\r\n [ngStyle]=\"{'color':data.data.receiverResponse == '1' ? 'green' : data.data.receiverResponse == '2' ? 'red' : 'gray'}\"></i>\r\n {{getReceiverResponseName(data.data.receiverResponse)}}\r\n </div>\r\n <dxi-column dataField=\"receiverResponseDesc\"\r\n caption=\"{{'eDonusum::ReceiverResponseDesc'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"documentCurrencyCode\" caption=\"{{'eDonusum::DocCurrency'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"issueDate\" dataType=\"date\"\r\n caption=\"{{'eDonusum::IssueDate'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"uuId\" caption=\"{{'eDonusum::UuId'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n\r\n\r\n<!-- <abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewInvoice') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n \r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"invoice\" (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=\"invoice-ubl-version-id\">\r\n {{ 'eDonusum::UblVersionId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-ubl-version-id\"\r\n formControlName=\"ublVersionId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-customization-id\">\r\n {{ 'eDonusum::CustomizationId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-customization-id\"\r\n formControlName=\"customizationId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-profile-id\">\r\n {{ 'eDonusum::ProfileId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-profile-id\"\r\n formControlName=\"profileId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-id\">\r\n {{ 'eDonusum::InvoiceId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-id\"\r\n formControlName=\"invoiceId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-copy-indicator\"\r\n formControlName=\"copyIndicator\"\r\n class=\"form-check-input\"\r\n />\r\n \r\n <label for=\"invoice-copy-indicator\" class=\"form-check-label\">\r\n {{ 'eDonusum::CopyIndicator' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-uu-id\">\r\n {{ 'eDonusum::UuId' | abpLocalization }} *\r\n </label>\r\n \r\n <input id=\"invoice-uu-id\" formControlName=\"uuId\" class=\"form-control\" maxlength=\"64\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-date\">\r\n {{ 'eDonusum::IssueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-date\"\r\n formControlName=\"issueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueDateInput\r\n #issueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueDateDatepicker.open()\"\r\n (keyup.space)=\"issueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueDateDatepicker.writeValue(null);\r\n issueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-time\">\r\n {{ 'eDonusum::IssueTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-time\"\r\n formControlName=\"issueTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueTimeInput\r\n #issueTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueTimeDatepicker.open()\"\r\n (keyup.space)=\"issueTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueTimeDatepicker.writeValue(null);\r\n issueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-type-code\">\r\n {{ 'eDonusum::InvoiceTypeCode' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-type-code\"\r\n formControlName=\"invoiceTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-document-currency-code\">\r\n {{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-document-currency-code\"\r\n formControlName=\"documentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-currency-code\">\r\n {{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-currency-code\"\r\n formControlName=\"taxCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-currency-code\">\r\n {{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-currency-code\"\r\n formControlName=\"pricingCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-currency-code\">\r\n {{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-currency-code\"\r\n formControlName=\"paymentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-currency-code\">\r\n {{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-currency-code\"\r\n formControlName=\"paymentAlternativeCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-cost\">\r\n {{ 'eDonusum::AccountingCost' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-cost\"\r\n formControlName=\"accountingCost\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-line-count-numeric\">\r\n {{ 'eDonusum::LineCountNumeric' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-line-count-numeric\"\r\n formControlName=\"lineCountNumeric\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-date\">\r\n {{ 'eDonusum::InvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-date\"\r\n formControlName=\"invoicePeriodStartDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartDateInput\r\n #invoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartDateDatepicker.writeValue(null);\r\n invoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-time\">\r\n {{ 'eDonusum::InvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-time\"\r\n formControlName=\"invoicePeriodStartTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartTimeInput\r\n #invoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartTimeDatepicker.writeValue(null);\r\n invoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-date\">\r\n {{ 'eDonusum::InvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-date\"\r\n formControlName=\"invoicePeriodEndDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndDateInput\r\n #invoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndDateDatepicker.writeValue(null);\r\n invoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-time\">\r\n {{ 'eDonusum::InvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-time\"\r\n formControlName=\"invoicePeriodEndTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndTimeInput\r\n #invoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndTimeDatepicker.writeValue(null);\r\n invoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-duration-measure\">\r\n {{ 'eDonusum::InvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-duration-measure\"\r\n formControlName=\"invoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodDurationMeasureInput\r\n #invoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n invoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-description\">\r\n {{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-period-description\"\r\n formControlName=\"invoicePeriodDescription\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-id\">\r\n {{ 'eDonusum::OrderReferenceId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-id\"\r\n formControlName=\"orderReferenceId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-sales-order-id\">\r\n {{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-sales-order-id\"\r\n formControlName=\"orderReferenceSalesOrderId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-issue-date\">\r\n {{ 'eDonusum::OrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-order-reference-issue-date\"\r\n formControlName=\"orderReferenceIssueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #orderReferenceIssueDateInput\r\n #orderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"orderReferenceIssueDateDatepicker.open()\"\r\n (keyup.space)=\"orderReferenceIssueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"orderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n orderReferenceIssueDateDatepicker.writeValue(null);\r\n orderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-order-type-code\">\r\n {{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-order-type-code\"\r\n formControlName=\"orderReferenceOrderTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-name\">\r\n {{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-name\"\r\n formControlName=\"accountingSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-scheme-id\">\r\n {{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-scheme-id\"\r\n formControlName=\"accountingSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-vkn-tckn\"\r\n formControlName=\"accountingSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-name\">\r\n {{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-name\"\r\n formControlName=\"accountingCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-scheme-id\">\r\n {{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-scheme-id\"\r\n formControlName=\"accountingCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-vkn-tckn\"\r\n formControlName=\"accountingCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-name\">\r\n {{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-name\"\r\n formControlName=\"buyerCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-scheme-id\">\r\n {{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-scheme-id\"\r\n formControlName=\"buyerCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-vkn-tckn\"\r\n formControlName=\"buyerCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-name\">\r\n {{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-name\"\r\n formControlName=\"sellerSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-scheme-id\">\r\n {{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-scheme-id\"\r\n formControlName=\"sellerSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-vkn-tckn\"\r\n formControlName=\"sellerSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-name\">\r\n {{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-name\"\r\n formControlName=\"taxRepresentativePartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-scheme-id\">\r\n {{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-scheme-id\"\r\n formControlName=\"taxRepresentativePartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-vkn-tckn\">\r\n {{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-vkn-tckn\"\r\n formControlName=\"taxRepresentativePartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-exchange-rate-source-currency-code\"\r\n formControlName=\"taxExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-exchange-rate-target-currency-code\"\r\n formControlName=\"taxExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::TaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-tax-exchange-rate-calculation-rate\"\r\n formControlName=\"taxExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-date\">\r\n {{ 'eDonusum::TaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-tax-exchange-rate-date\"\r\n formControlName=\"taxExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #taxExchangeRateDateInput\r\n #taxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"taxExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"taxExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"taxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n taxExchangeRateDateDatepicker.writeValue(null);\r\n taxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-exchange-rate-source-currency-code\"\r\n formControlName=\"pricingExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-exchange-rate-target-currency-code\"\r\n formControlName=\"pricingExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-pricing-exchange-rate-calculation-rate\"\r\n formControlName=\"pricingExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-date\">\r\n {{ 'eDonusum::PricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-pricing-exchange-rate-date\"\r\n formControlName=\"pricingExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #pricingExchangeRateDateInput\r\n #pricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"pricingExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"pricingExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"pricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n pricingExchangeRateDateDatepicker.writeValue(null);\r\n pricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-exchange-rate-date\"\r\n formControlName=\"paymentExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentExchangeRateDateInput\r\n #paymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentExchangeRateDateDatepicker.writeValue(null);\r\n paymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentAlternativeExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-alternative-exchange-rate-date\"\r\n formControlName=\"paymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentAlternativeExchangeRateDateInput\r\n #paymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentAlternativeExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n paymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-line-extension-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-line-extension-amount\"\r\n formControlName=\"legalMonetaryTotalLineExtensionAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-exclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-exclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxExclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-inclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-inclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxInclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-allowance-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-allowance-total-amount\"\r\n formControlName=\"legalMonetaryTotalAllowanceTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-charge-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-charge-total-amount\"\r\n formControlName=\"legalMonetaryTotalChargeTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-rounding-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-rounding-amount\"\r\n formControlName=\"legalMonetaryTotalPayableRoundingAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-amount\"\r\n formControlName=\"legalMonetaryTotalPayableAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-note\">\r\n {{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-terms-note\"\r\n formControlName=\"paymentTermsNote\"\r\n class=\"form-control\"\r\n maxlength=\"512\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-payment-due-date\">\r\n {{ 'eDonusum::PaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-terms-payment-due-date\"\r\n formControlName=\"paymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentTermsPaymentDueDateInput\r\n #paymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n (keyup.space)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n paymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cust-inv-id\">\r\n {{ 'eDonusum::CustInvId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cust-inv-id\"\r\n formControlName=\"custInvId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-is-canceled\"\r\n formControlName=\"isCanceled\"\r\n class=\"form-check-input\"\r\n />\r\n \r\n <label for=\"invoice-is-canceled\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsCanceled' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-code\">\r\n {{ 'eDonusum::CancelCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cancel-code\"\r\n formControlName=\"cancelCode\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-description\">\r\n {{ 'eDonusum::CancelDescription' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cancel-description\"\r\n formControlName=\"cancelDescription\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-type\">\r\n {{ 'eDonusum::ResourceDocType' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-resource-doc-type\"\r\n formControlName=\"resourceDocType\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-entry\">\r\n {{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-resource-doc-entry\"\r\n formControlName=\"resourceDocEntry\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-status\">\r\n {{ 'eDonusum::Status' | abpLocalization }}\r\n </label>\r\n \r\n <input type=\"number\" id=\"invoice-status\" formControlName=\"status\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response\">\r\n {{ 'eDonusum::ReceiverResponse' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-receiver-response\"\r\n formControlName=\"receiverResponse\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response-desc\">\r\n {{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-receiver-response-desc\"\r\n formControlName=\"receiverResponseDesc\"\r\n class=\"form-control\"\r\n maxlength=\"1024\"\r\n />\r\n </div>\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=\"invoice\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal> -->", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i4.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i5.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: i6.DxoColumnChooserComponent, selector: "dxo-column-chooser", inputs: ["allowSearch", "emptyPanelText", "enabled", "height", "mode", "searchTimeout", "sortOrder", "title", "width"] }, { kind: "component", type: i6.DxoColumnFixingComponent, selector: "dxo-column-fixing", inputs: ["enabled", "texts"] }, { kind: "component", type: i6.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: i6.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i6.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i6.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: i6.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i6.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6.DxoGroupingComponent, selector: "dxo-grouping", inputs: ["allowCollapsing", "autoExpandAll", "contextMenuEnabled", "expandMode", "texts"] }, { kind: "component", type: i6.DxoGroupPanelComponent, selector: "dxo-group-panel", inputs: ["allowColumnDragging", "emptyPanelText", "visible"], outputs: ["visibleChange"] }, { kind: "component", type: i6.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i6.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i7.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i8.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i8.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
112
|
+
HitInvoiceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitInvoiceComponent, deps: [{ token: i1.ListService }, { token: i2.HitInvoiceService }, { token: i3.HitFileDocumentTypeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
+
HitInvoiceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitInvoiceComponent, selector: "lib-invoice", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "dxInvoiceInstance", first: true, predicate: ["dxInvoiceInstance"], descendants: true }, { propertyName: "dxInvoiceFileInstance", first: true, predicate: ["dxInvoiceFileInstance"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::Invoices' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <!-- <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n -->\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"sendInvoiceMultiple()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::AddToQueue' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-success\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"getInvoiceResponses()\">\r\n <i class=\"fa fa-question me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::CheckResponses' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-success\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"sendInvoiceToEntegrator()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::SendToEntegratorManual' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-warning\" type=\"button\"\r\n (click)=\"getInvoicesFromConnector()\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::GetFromConnectorManual' | abpLocalization }}\r\n </button>\r\n\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInvoiceInstance [dataSource]=\"invoicesDataSource\" [showRowLines]=\"true\" [showBorders]=\"true\"\r\n [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\" [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\" [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\" [showNavigationButtons]=\"true\"\r\n [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\" showCheckBoxesMode=\"always\">\r\n </dxo-selection>\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\" aria-haspopup=\"true\"\r\n 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 </button> -->\r\n <button ngbDropdownItem (click)=\"sendInvoiceSingle(row.data)\" *ngIf=\"row.data.status == 100\">\r\n <i class=\"fa fa-envelope\" aria-hidden=\"true\"></i> {{ 'eDonusum::AddToQueue' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"getInvoiceView(row.data)\" *ngIf=\"row.data.status == 300 || row.data.status == 700\">\r\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i> {{ 'eDonusum::GetPDFView' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"getInvoicePreview(row.data)\" *ngIf=\"row.data.status == 100\">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i> {{ 'eDonusum::Preview' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"showAllFiles(row.data)\" *ngIf=\"row.data.status == 300 || row.data.status == 700\">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i> {{ 'eDonusum::ShowAllFiles' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"resourceDocEntry\"\r\n caption=\"{{'eDonusum::ResourceDocEntry'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"resourceDocType\" caption=\"{{'eDonusum::ResourceDocType'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceObjectsEnumLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"status\" caption=\"{{'eDonusum::Status'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceStatusLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"profileId\" caption=\"{{'eDonusum::ProfileId'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"invoiceTypeCode\" caption=\"{{'eDonusum::InvoiceTypeCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"receiverResponse\" caption=\"{{'eDonusum::ReceiverResponse'|abpLocalization}}\"\r\n cellTemplate=\"iconTemplate\">\r\n <dxo-lookup [dataSource]=\"invoiceReceiverResponseLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <div *dxTemplate=\"let data of 'iconTemplate'\">\r\n <i [ngClass]=\"getIconClass(data.data.receiverResponse)\"\r\n [ngStyle]=\"{'color':data.data.receiverResponse == '1' ? 'green' : data.data.receiverResponse == '2' ? 'red' : 'gray'}\"></i>\r\n {{getReceiverResponseName(data.data.receiverResponse)}}\r\n </div>\r\n <dxi-column dataField=\"receiverResponseDesc\"\r\n caption=\"{{'eDonusum::ReceiverResponseDesc'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"documentCurrencyCode\" caption=\"{{'eDonusum::DocCurrency'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"issueDate\" dataType=\"date\"\r\n caption=\"{{'eDonusum::IssueDate'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"uuId\" caption=\"{{'eDonusum::UuId'|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]=\"isFileModalBusy\" [(visible)]=\"isFileModalOpen\" [options]=\"{ size: 'lg' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::InvoiceFiles' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInvoiceFileInstance [dataSource]=\"invoiceFilesDataSource\" [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]=\"false\" [rowAlternationEnabled]=\"true\"\r\n style=\"height: 50vh;\">\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\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\" aria-haspopup=\"true\"\r\n 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)=\"DownloadFile(row.data)\">\r\n <i class=\"fa fa-download\" aria-hidden=\"true\"></i> {{ 'eDonusum::Download' | abpLocalization\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"extraItem\"\r\n caption=\"{{'eDonusum::Name'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceFileNameLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\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 </ng-template>\r\n</abp-modal>\r\n\r\n<!-- <abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewInvoice') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n \r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"invoice\" (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=\"invoice-ubl-version-id\">\r\n {{ 'eDonusum::UblVersionId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-ubl-version-id\"\r\n formControlName=\"ublVersionId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-customization-id\">\r\n {{ 'eDonusum::CustomizationId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-customization-id\"\r\n formControlName=\"customizationId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-profile-id\">\r\n {{ 'eDonusum::ProfileId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-profile-id\"\r\n formControlName=\"profileId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-id\">\r\n {{ 'eDonusum::InvoiceId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-id\"\r\n formControlName=\"invoiceId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-copy-indicator\"\r\n formControlName=\"copyIndicator\"\r\n class=\"form-check-input\"\r\n />\r\n \r\n <label for=\"invoice-copy-indicator\" class=\"form-check-label\">\r\n {{ 'eDonusum::CopyIndicator' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-uu-id\">\r\n {{ 'eDonusum::UuId' | abpLocalization }} *\r\n </label>\r\n \r\n <input id=\"invoice-uu-id\" formControlName=\"uuId\" class=\"form-control\" maxlength=\"64\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-date\">\r\n {{ 'eDonusum::IssueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-date\"\r\n formControlName=\"issueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueDateInput\r\n #issueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueDateDatepicker.open()\"\r\n (keyup.space)=\"issueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueDateDatepicker.writeValue(null);\r\n issueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-time\">\r\n {{ 'eDonusum::IssueTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-time\"\r\n formControlName=\"issueTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueTimeInput\r\n #issueTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueTimeDatepicker.open()\"\r\n (keyup.space)=\"issueTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueTimeDatepicker.writeValue(null);\r\n issueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-type-code\">\r\n {{ 'eDonusum::InvoiceTypeCode' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-type-code\"\r\n formControlName=\"invoiceTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-document-currency-code\">\r\n {{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-document-currency-code\"\r\n formControlName=\"documentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-currency-code\">\r\n {{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-currency-code\"\r\n formControlName=\"taxCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-currency-code\">\r\n {{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-currency-code\"\r\n formControlName=\"pricingCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-currency-code\">\r\n {{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-currency-code\"\r\n formControlName=\"paymentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-currency-code\">\r\n {{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-currency-code\"\r\n formControlName=\"paymentAlternativeCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-cost\">\r\n {{ 'eDonusum::AccountingCost' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-cost\"\r\n formControlName=\"accountingCost\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-line-count-numeric\">\r\n {{ 'eDonusum::LineCountNumeric' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-line-count-numeric\"\r\n formControlName=\"lineCountNumeric\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-date\">\r\n {{ 'eDonusum::InvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-date\"\r\n formControlName=\"invoicePeriodStartDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartDateInput\r\n #invoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartDateDatepicker.writeValue(null);\r\n invoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-time\">\r\n {{ 'eDonusum::InvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-time\"\r\n formControlName=\"invoicePeriodStartTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartTimeInput\r\n #invoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartTimeDatepicker.writeValue(null);\r\n invoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-date\">\r\n {{ 'eDonusum::InvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-date\"\r\n formControlName=\"invoicePeriodEndDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndDateInput\r\n #invoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndDateDatepicker.writeValue(null);\r\n invoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-time\">\r\n {{ 'eDonusum::InvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-time\"\r\n formControlName=\"invoicePeriodEndTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndTimeInput\r\n #invoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndTimeDatepicker.writeValue(null);\r\n invoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-duration-measure\">\r\n {{ 'eDonusum::InvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-duration-measure\"\r\n formControlName=\"invoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodDurationMeasureInput\r\n #invoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n invoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-description\">\r\n {{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-period-description\"\r\n formControlName=\"invoicePeriodDescription\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-id\">\r\n {{ 'eDonusum::OrderReferenceId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-id\"\r\n formControlName=\"orderReferenceId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-sales-order-id\">\r\n {{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-sales-order-id\"\r\n formControlName=\"orderReferenceSalesOrderId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-issue-date\">\r\n {{ 'eDonusum::OrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-order-reference-issue-date\"\r\n formControlName=\"orderReferenceIssueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #orderReferenceIssueDateInput\r\n #orderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"orderReferenceIssueDateDatepicker.open()\"\r\n (keyup.space)=\"orderReferenceIssueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"orderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n orderReferenceIssueDateDatepicker.writeValue(null);\r\n orderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-order-type-code\">\r\n {{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-order-type-code\"\r\n formControlName=\"orderReferenceOrderTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-name\">\r\n {{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-name\"\r\n formControlName=\"accountingSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-scheme-id\">\r\n {{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-scheme-id\"\r\n formControlName=\"accountingSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-vkn-tckn\"\r\n formControlName=\"accountingSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-name\">\r\n {{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-name\"\r\n formControlName=\"accountingCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-scheme-id\">\r\n {{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-scheme-id\"\r\n formControlName=\"accountingCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-vkn-tckn\"\r\n formControlName=\"accountingCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-name\">\r\n {{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-name\"\r\n formControlName=\"buyerCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-scheme-id\">\r\n {{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-scheme-id\"\r\n formControlName=\"buyerCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-vkn-tckn\"\r\n formControlName=\"buyerCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-name\">\r\n {{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-name\"\r\n formControlName=\"sellerSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-scheme-id\">\r\n {{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-scheme-id\"\r\n formControlName=\"sellerSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-vkn-tckn\"\r\n formControlName=\"sellerSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-name\">\r\n {{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-name\"\r\n formControlName=\"taxRepresentativePartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-scheme-id\">\r\n {{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-scheme-id\"\r\n formControlName=\"taxRepresentativePartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-vkn-tckn\">\r\n {{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-vkn-tckn\"\r\n formControlName=\"taxRepresentativePartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-exchange-rate-source-currency-code\"\r\n formControlName=\"taxExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-exchange-rate-target-currency-code\"\r\n formControlName=\"taxExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::TaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-tax-exchange-rate-calculation-rate\"\r\n formControlName=\"taxExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-date\">\r\n {{ 'eDonusum::TaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-tax-exchange-rate-date\"\r\n formControlName=\"taxExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #taxExchangeRateDateInput\r\n #taxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"taxExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"taxExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"taxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n taxExchangeRateDateDatepicker.writeValue(null);\r\n taxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-exchange-rate-source-currency-code\"\r\n formControlName=\"pricingExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-exchange-rate-target-currency-code\"\r\n formControlName=\"pricingExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-pricing-exchange-rate-calculation-rate\"\r\n formControlName=\"pricingExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-date\">\r\n {{ 'eDonusum::PricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-pricing-exchange-rate-date\"\r\n formControlName=\"pricingExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #pricingExchangeRateDateInput\r\n #pricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"pricingExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"pricingExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"pricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n pricingExchangeRateDateDatepicker.writeValue(null);\r\n pricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-exchange-rate-date\"\r\n formControlName=\"paymentExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentExchangeRateDateInput\r\n #paymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentExchangeRateDateDatepicker.writeValue(null);\r\n paymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentAlternativeExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-alternative-exchange-rate-date\"\r\n formControlName=\"paymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentAlternativeExchangeRateDateInput\r\n #paymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentAlternativeExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n paymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-line-extension-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-line-extension-amount\"\r\n formControlName=\"legalMonetaryTotalLineExtensionAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-exclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-exclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxExclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-inclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-inclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxInclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-allowance-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-allowance-total-amount\"\r\n formControlName=\"legalMonetaryTotalAllowanceTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-charge-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-charge-total-amount\"\r\n formControlName=\"legalMonetaryTotalChargeTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-rounding-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-rounding-amount\"\r\n formControlName=\"legalMonetaryTotalPayableRoundingAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-amount\"\r\n formControlName=\"legalMonetaryTotalPayableAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-note\">\r\n {{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-terms-note\"\r\n formControlName=\"paymentTermsNote\"\r\n class=\"form-control\"\r\n maxlength=\"512\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-payment-due-date\">\r\n {{ 'eDonusum::PaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-terms-payment-due-date\"\r\n formControlName=\"paymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentTermsPaymentDueDateInput\r\n #paymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n (keyup.space)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n paymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cust-inv-id\">\r\n {{ 'eDonusum::CustInvId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cust-inv-id\"\r\n formControlName=\"custInvId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-is-canceled\"\r\n formControlName=\"isCanceled\"\r\n class=\"form-check-input\"\r\n />\r\n \r\n <label for=\"invoice-is-canceled\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsCanceled' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-code\">\r\n {{ 'eDonusum::CancelCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cancel-code\"\r\n formControlName=\"cancelCode\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-description\">\r\n {{ 'eDonusum::CancelDescription' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cancel-description\"\r\n formControlName=\"cancelDescription\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-type\">\r\n {{ 'eDonusum::ResourceDocType' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-resource-doc-type\"\r\n formControlName=\"resourceDocType\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-entry\">\r\n {{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-resource-doc-entry\"\r\n formControlName=\"resourceDocEntry\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-status\">\r\n {{ 'eDonusum::Status' | abpLocalization }}\r\n </label>\r\n \r\n <input type=\"number\" id=\"invoice-status\" formControlName=\"status\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response\">\r\n {{ 'eDonusum::ReceiverResponse' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-receiver-response\"\r\n formControlName=\"receiverResponse\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response-desc\">\r\n {{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-receiver-response-desc\"\r\n formControlName=\"receiverResponseDesc\"\r\n class=\"form-control\"\r\n maxlength=\"1024\"\r\n />\r\n </div>\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=\"invoice\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal> -->", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i5.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxoColumnChooserComponent, selector: "dxo-column-chooser", inputs: ["allowSearch", "emptyPanelText", "enabled", "height", "mode", "searchTimeout", "sortOrder", "title", "width"] }, { kind: "component", type: i8.DxoColumnFixingComponent, selector: "dxo-column-fixing", inputs: ["enabled", "texts"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i8.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i8.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: i8.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoGroupingComponent, selector: "dxo-grouping", inputs: ["allowCollapsing", "autoExpandAll", "contextMenuEnabled", "expandMode", "texts"] }, { kind: "component", type: i8.DxoGroupPanelComponent, selector: "dxo-group-panel", inputs: ["allowColumnDragging", "emptyPanelText", "visible"], outputs: ["visibleChange"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i8.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i8.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
92
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitInvoiceComponent, decorators: [{
|
|
93
115
|
type: Component,
|
|
94
|
-
args: [{ selector: 'lib-invoice', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::Invoices' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <!-- <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n -->\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"sendInvoiceMultiple()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::AddToQueue' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-success\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"getInvoiceResponses()\">\r\n <i class=\"fa fa-question me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::CheckResponses' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-success\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"sendInvoiceToEntegrator()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::SendToEntegratorManual' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-warning\" type=\"button\"\r\n (click)=\"getInvoicesFromConnector()\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::GetFromConnectorManual' | abpLocalization }}\r\n </button>\r\n\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInvoiceInstance [dataSource]=\"invoicesDataSource\" [showRowLines]=\"true\" [showBorders]=\"true\"\r\n [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\" [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\" [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\" [showNavigationButtons]=\"true\"\r\n [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\" showCheckBoxesMode=\"always\">\r\n </dxo-selection>\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\" aria-haspopup=\"true\"\r\n 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 </button> -->\r\n <button ngbDropdownItem (click)=\"sendInvoiceSingle(row.data)\" *ngIf=\"row.data.status == 100\">\r\n <i class=\"fa fa-envelope\" aria-hidden=\"true\"></i> {{ 'eDonusum::AddToQueue' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"getInvoiceView(row.data)\" *ngIf=\"row.data.status == 300\">\r\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i> {{ 'eDonusum::GetView' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"getInvoicePreview(row.data)\" *ngIf=\"row.data.status == 100\">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i> {{ 'eDonusum::Preview' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"resourceDocEntry\"\r\n caption=\"{{'eDonusum::ResourceDocEntry'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"resourceDocType\" caption=\"{{'eDonusum::ResourceDocType'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceObjectsEnumLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"status\" caption=\"{{'eDonusum::Status'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceStatusLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"profileId\" caption=\"{{'eDonusum::ProfileId'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"invoiceTypeCode\" caption=\"{{'eDonusum::InvoiceTypeCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"receiverResponse\" caption=\"{{'eDonusum::ReceiverResponse'|abpLocalization}}\"\r\n cellTemplate=\"iconTemplate\">\r\n <dxo-lookup [dataSource]=\"invoiceReceiverResponseLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <div *dxTemplate=\"let data of 'iconTemplate'\">\r\n <i [ngClass]=\"getIconClass(data.data.receiverResponse)\"\r\n [ngStyle]=\"{'color':data.data.receiverResponse == '1' ? 'green' : data.data.receiverResponse == '2' ? 'red' : 'gray'}\"></i>\r\n {{getReceiverResponseName(data.data.receiverResponse)}}\r\n </div>\r\n <dxi-column dataField=\"receiverResponseDesc\"\r\n caption=\"{{'eDonusum::ReceiverResponseDesc'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"documentCurrencyCode\" caption=\"{{'eDonusum::DocCurrency'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"issueDate\" dataType=\"date\"\r\n caption=\"{{'eDonusum::IssueDate'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"uuId\" caption=\"{{'eDonusum::UuId'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n\r\n\r\n<!-- <abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewInvoice') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n \r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"invoice\" (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=\"invoice-ubl-version-id\">\r\n {{ 'eDonusum::UblVersionId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-ubl-version-id\"\r\n formControlName=\"ublVersionId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-customization-id\">\r\n {{ 'eDonusum::CustomizationId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-customization-id\"\r\n formControlName=\"customizationId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-profile-id\">\r\n {{ 'eDonusum::ProfileId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-profile-id\"\r\n formControlName=\"profileId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-id\">\r\n {{ 'eDonusum::InvoiceId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-id\"\r\n formControlName=\"invoiceId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-copy-indicator\"\r\n formControlName=\"copyIndicator\"\r\n class=\"form-check-input\"\r\n />\r\n \r\n <label for=\"invoice-copy-indicator\" class=\"form-check-label\">\r\n {{ 'eDonusum::CopyIndicator' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-uu-id\">\r\n {{ 'eDonusum::UuId' | abpLocalization }} *\r\n </label>\r\n \r\n <input id=\"invoice-uu-id\" formControlName=\"uuId\" class=\"form-control\" maxlength=\"64\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-date\">\r\n {{ 'eDonusum::IssueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-date\"\r\n formControlName=\"issueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueDateInput\r\n #issueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueDateDatepicker.open()\"\r\n (keyup.space)=\"issueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueDateDatepicker.writeValue(null);\r\n issueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-time\">\r\n {{ 'eDonusum::IssueTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-time\"\r\n formControlName=\"issueTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueTimeInput\r\n #issueTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueTimeDatepicker.open()\"\r\n (keyup.space)=\"issueTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueTimeDatepicker.writeValue(null);\r\n issueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-type-code\">\r\n {{ 'eDonusum::InvoiceTypeCode' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-type-code\"\r\n formControlName=\"invoiceTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-document-currency-code\">\r\n {{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-document-currency-code\"\r\n formControlName=\"documentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-currency-code\">\r\n {{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-currency-code\"\r\n formControlName=\"taxCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-currency-code\">\r\n {{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-currency-code\"\r\n formControlName=\"pricingCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-currency-code\">\r\n {{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-currency-code\"\r\n formControlName=\"paymentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-currency-code\">\r\n {{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-currency-code\"\r\n formControlName=\"paymentAlternativeCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-cost\">\r\n {{ 'eDonusum::AccountingCost' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-cost\"\r\n formControlName=\"accountingCost\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-line-count-numeric\">\r\n {{ 'eDonusum::LineCountNumeric' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-line-count-numeric\"\r\n formControlName=\"lineCountNumeric\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-date\">\r\n {{ 'eDonusum::InvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-date\"\r\n formControlName=\"invoicePeriodStartDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartDateInput\r\n #invoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartDateDatepicker.writeValue(null);\r\n invoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-time\">\r\n {{ 'eDonusum::InvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-time\"\r\n formControlName=\"invoicePeriodStartTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartTimeInput\r\n #invoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartTimeDatepicker.writeValue(null);\r\n invoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-date\">\r\n {{ 'eDonusum::InvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-date\"\r\n formControlName=\"invoicePeriodEndDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndDateInput\r\n #invoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndDateDatepicker.writeValue(null);\r\n invoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-time\">\r\n {{ 'eDonusum::InvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-time\"\r\n formControlName=\"invoicePeriodEndTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndTimeInput\r\n #invoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndTimeDatepicker.writeValue(null);\r\n invoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-duration-measure\">\r\n {{ 'eDonusum::InvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-duration-measure\"\r\n formControlName=\"invoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodDurationMeasureInput\r\n #invoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n invoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-description\">\r\n {{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-period-description\"\r\n formControlName=\"invoicePeriodDescription\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-id\">\r\n {{ 'eDonusum::OrderReferenceId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-id\"\r\n formControlName=\"orderReferenceId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-sales-order-id\">\r\n {{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-sales-order-id\"\r\n formControlName=\"orderReferenceSalesOrderId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-issue-date\">\r\n {{ 'eDonusum::OrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-order-reference-issue-date\"\r\n formControlName=\"orderReferenceIssueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #orderReferenceIssueDateInput\r\n #orderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"orderReferenceIssueDateDatepicker.open()\"\r\n (keyup.space)=\"orderReferenceIssueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"orderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n orderReferenceIssueDateDatepicker.writeValue(null);\r\n orderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-order-type-code\">\r\n {{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-order-type-code\"\r\n formControlName=\"orderReferenceOrderTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-name\">\r\n {{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-name\"\r\n formControlName=\"accountingSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-scheme-id\">\r\n {{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-scheme-id\"\r\n formControlName=\"accountingSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-vkn-tckn\"\r\n formControlName=\"accountingSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-name\">\r\n {{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-name\"\r\n formControlName=\"accountingCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-scheme-id\">\r\n {{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-scheme-id\"\r\n formControlName=\"accountingCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-vkn-tckn\"\r\n formControlName=\"accountingCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-name\">\r\n {{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-name\"\r\n formControlName=\"buyerCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-scheme-id\">\r\n {{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-scheme-id\"\r\n formControlName=\"buyerCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-vkn-tckn\"\r\n formControlName=\"buyerCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-name\">\r\n {{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-name\"\r\n formControlName=\"sellerSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-scheme-id\">\r\n {{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-scheme-id\"\r\n formControlName=\"sellerSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-vkn-tckn\"\r\n formControlName=\"sellerSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-name\">\r\n {{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-name\"\r\n formControlName=\"taxRepresentativePartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-scheme-id\">\r\n {{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-scheme-id\"\r\n formControlName=\"taxRepresentativePartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-vkn-tckn\">\r\n {{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-vkn-tckn\"\r\n formControlName=\"taxRepresentativePartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-exchange-rate-source-currency-code\"\r\n formControlName=\"taxExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-exchange-rate-target-currency-code\"\r\n formControlName=\"taxExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::TaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-tax-exchange-rate-calculation-rate\"\r\n formControlName=\"taxExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-date\">\r\n {{ 'eDonusum::TaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-tax-exchange-rate-date\"\r\n formControlName=\"taxExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #taxExchangeRateDateInput\r\n #taxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"taxExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"taxExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"taxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n taxExchangeRateDateDatepicker.writeValue(null);\r\n taxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-exchange-rate-source-currency-code\"\r\n formControlName=\"pricingExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-exchange-rate-target-currency-code\"\r\n formControlName=\"pricingExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-pricing-exchange-rate-calculation-rate\"\r\n formControlName=\"pricingExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-date\">\r\n {{ 'eDonusum::PricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-pricing-exchange-rate-date\"\r\n formControlName=\"pricingExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #pricingExchangeRateDateInput\r\n #pricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"pricingExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"pricingExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"pricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n pricingExchangeRateDateDatepicker.writeValue(null);\r\n pricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-exchange-rate-date\"\r\n formControlName=\"paymentExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentExchangeRateDateInput\r\n #paymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentExchangeRateDateDatepicker.writeValue(null);\r\n paymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentAlternativeExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-alternative-exchange-rate-date\"\r\n formControlName=\"paymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentAlternativeExchangeRateDateInput\r\n #paymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentAlternativeExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n paymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-line-extension-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-line-extension-amount\"\r\n formControlName=\"legalMonetaryTotalLineExtensionAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-exclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-exclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxExclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-inclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-inclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxInclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-allowance-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-allowance-total-amount\"\r\n formControlName=\"legalMonetaryTotalAllowanceTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-charge-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-charge-total-amount\"\r\n formControlName=\"legalMonetaryTotalChargeTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-rounding-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-rounding-amount\"\r\n formControlName=\"legalMonetaryTotalPayableRoundingAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-amount\"\r\n formControlName=\"legalMonetaryTotalPayableAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-note\">\r\n {{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-terms-note\"\r\n formControlName=\"paymentTermsNote\"\r\n class=\"form-control\"\r\n maxlength=\"512\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-payment-due-date\">\r\n {{ 'eDonusum::PaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-terms-payment-due-date\"\r\n formControlName=\"paymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentTermsPaymentDueDateInput\r\n #paymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n (keyup.space)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n paymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cust-inv-id\">\r\n {{ 'eDonusum::CustInvId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cust-inv-id\"\r\n formControlName=\"custInvId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-is-canceled\"\r\n formControlName=\"isCanceled\"\r\n class=\"form-check-input\"\r\n />\r\n \r\n <label for=\"invoice-is-canceled\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsCanceled' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-code\">\r\n {{ 'eDonusum::CancelCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cancel-code\"\r\n formControlName=\"cancelCode\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-description\">\r\n {{ 'eDonusum::CancelDescription' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cancel-description\"\r\n formControlName=\"cancelDescription\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-type\">\r\n {{ 'eDonusum::ResourceDocType' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-resource-doc-type\"\r\n formControlName=\"resourceDocType\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-entry\">\r\n {{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-resource-doc-entry\"\r\n formControlName=\"resourceDocEntry\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-status\">\r\n {{ 'eDonusum::Status' | abpLocalization }}\r\n </label>\r\n \r\n <input type=\"number\" id=\"invoice-status\" formControlName=\"status\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response\">\r\n {{ 'eDonusum::ReceiverResponse' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-receiver-response\"\r\n formControlName=\"receiverResponse\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response-desc\">\r\n {{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-receiver-response-desc\"\r\n formControlName=\"receiverResponseDesc\"\r\n class=\"form-control\"\r\n maxlength=\"1024\"\r\n />\r\n </div>\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=\"invoice\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal> -->" }]
|
|
95
|
-
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.HitInvoiceService }]; }, propDecorators: { dxInvoiceInstance: [{
|
|
116
|
+
args: [{ selector: 'lib-invoice', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::Invoices' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <!-- <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n -->\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"sendInvoiceMultiple()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::AddToQueue' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-success\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"getInvoiceResponses()\">\r\n <i class=\"fa fa-question me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::CheckResponses' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-success\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"sendInvoiceToEntegrator()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::SendToEntegratorManual' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Invoices.Create'\" class=\"btn btn-xs btn-warning\" type=\"button\"\r\n (click)=\"getInvoicesFromConnector()\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::GetFromConnectorManual' | abpLocalization }}\r\n </button>\r\n\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInvoiceInstance [dataSource]=\"invoicesDataSource\" [showRowLines]=\"true\" [showBorders]=\"true\"\r\n [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\" [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\" [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\" [showNavigationButtons]=\"true\"\r\n [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\" showCheckBoxesMode=\"always\">\r\n </dxo-selection>\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\" aria-haspopup=\"true\"\r\n 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 </button> -->\r\n <button ngbDropdownItem (click)=\"sendInvoiceSingle(row.data)\" *ngIf=\"row.data.status == 100\">\r\n <i class=\"fa fa-envelope\" aria-hidden=\"true\"></i> {{ 'eDonusum::AddToQueue' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"getInvoiceView(row.data)\" *ngIf=\"row.data.status == 300 || row.data.status == 700\">\r\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i> {{ 'eDonusum::GetPDFView' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"getInvoicePreview(row.data)\" *ngIf=\"row.data.status == 100\">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i> {{ 'eDonusum::Preview' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"showAllFiles(row.data)\" *ngIf=\"row.data.status == 300 || row.data.status == 700\">\r\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i> {{ 'eDonusum::ShowAllFiles' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"resourceDocEntry\"\r\n caption=\"{{'eDonusum::ResourceDocEntry'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"resourceDocType\" caption=\"{{'eDonusum::ResourceDocType'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceObjectsEnumLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"status\" caption=\"{{'eDonusum::Status'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceStatusLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"profileId\" caption=\"{{'eDonusum::ProfileId'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"invoiceTypeCode\" caption=\"{{'eDonusum::InvoiceTypeCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"receiverResponse\" caption=\"{{'eDonusum::ReceiverResponse'|abpLocalization}}\"\r\n cellTemplate=\"iconTemplate\">\r\n <dxo-lookup [dataSource]=\"invoiceReceiverResponseLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <div *dxTemplate=\"let data of 'iconTemplate'\">\r\n <i [ngClass]=\"getIconClass(data.data.receiverResponse)\"\r\n [ngStyle]=\"{'color':data.data.receiverResponse == '1' ? 'green' : data.data.receiverResponse == '2' ? 'red' : 'gray'}\"></i>\r\n {{getReceiverResponseName(data.data.receiverResponse)}}\r\n </div>\r\n <dxi-column dataField=\"receiverResponseDesc\"\r\n caption=\"{{'eDonusum::ReceiverResponseDesc'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"documentCurrencyCode\" caption=\"{{'eDonusum::DocCurrency'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"issueDate\" dataType=\"date\"\r\n caption=\"{{'eDonusum::IssueDate'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"uuId\" caption=\"{{'eDonusum::UuId'|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]=\"isFileModalBusy\" [(visible)]=\"isFileModalOpen\" [options]=\"{ size: 'lg' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::InvoiceFiles' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInvoiceFileInstance [dataSource]=\"invoiceFilesDataSource\" [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]=\"false\" [rowAlternationEnabled]=\"true\"\r\n style=\"height: 50vh;\">\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\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\" aria-haspopup=\"true\"\r\n 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)=\"DownloadFile(row.data)\">\r\n <i class=\"fa fa-download\" aria-hidden=\"true\"></i> {{ 'eDonusum::Download' | abpLocalization\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"extraItem\"\r\n caption=\"{{'eDonusum::Name'|abpLocalization}}\">\r\n <dxo-lookup [dataSource]=\"invoiceFileNameLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\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 </ng-template>\r\n</abp-modal>\r\n\r\n<!-- <abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewInvoice') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n \r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"invoice\" (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=\"invoice-ubl-version-id\">\r\n {{ 'eDonusum::UblVersionId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-ubl-version-id\"\r\n formControlName=\"ublVersionId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-customization-id\">\r\n {{ 'eDonusum::CustomizationId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-customization-id\"\r\n formControlName=\"customizationId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-profile-id\">\r\n {{ 'eDonusum::ProfileId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-profile-id\"\r\n formControlName=\"profileId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-id\">\r\n {{ 'eDonusum::InvoiceId' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-id\"\r\n formControlName=\"invoiceId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-copy-indicator\"\r\n formControlName=\"copyIndicator\"\r\n class=\"form-check-input\"\r\n />\r\n \r\n <label for=\"invoice-copy-indicator\" class=\"form-check-label\">\r\n {{ 'eDonusum::CopyIndicator' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-uu-id\">\r\n {{ 'eDonusum::UuId' | abpLocalization }} *\r\n </label>\r\n \r\n <input id=\"invoice-uu-id\" formControlName=\"uuId\" class=\"form-control\" maxlength=\"64\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-date\">\r\n {{ 'eDonusum::IssueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-date\"\r\n formControlName=\"issueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueDateInput\r\n #issueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueDateDatepicker.open()\"\r\n (keyup.space)=\"issueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueDateDatepicker.writeValue(null);\r\n issueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-time\">\r\n {{ 'eDonusum::IssueTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-time\"\r\n formControlName=\"issueTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueTimeInput\r\n #issueTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueTimeDatepicker.open()\"\r\n (keyup.space)=\"issueTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueTimeDatepicker.writeValue(null);\r\n issueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-type-code\">\r\n {{ 'eDonusum::InvoiceTypeCode' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-type-code\"\r\n formControlName=\"invoiceTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-document-currency-code\">\r\n {{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }} *\r\n </label>\r\n \r\n <input\r\n id=\"invoice-document-currency-code\"\r\n formControlName=\"documentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-currency-code\">\r\n {{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-currency-code\"\r\n formControlName=\"taxCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-currency-code\">\r\n {{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-currency-code\"\r\n formControlName=\"pricingCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-currency-code\">\r\n {{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-currency-code\"\r\n formControlName=\"paymentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-currency-code\">\r\n {{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-currency-code\"\r\n formControlName=\"paymentAlternativeCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-cost\">\r\n {{ 'eDonusum::AccountingCost' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-cost\"\r\n formControlName=\"accountingCost\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-line-count-numeric\">\r\n {{ 'eDonusum::LineCountNumeric' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-line-count-numeric\"\r\n formControlName=\"lineCountNumeric\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-date\">\r\n {{ 'eDonusum::InvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-date\"\r\n formControlName=\"invoicePeriodStartDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartDateInput\r\n #invoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartDateDatepicker.writeValue(null);\r\n invoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-time\">\r\n {{ 'eDonusum::InvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-time\"\r\n formControlName=\"invoicePeriodStartTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartTimeInput\r\n #invoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartTimeDatepicker.writeValue(null);\r\n invoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-date\">\r\n {{ 'eDonusum::InvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-date\"\r\n formControlName=\"invoicePeriodEndDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndDateInput\r\n #invoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndDateDatepicker.writeValue(null);\r\n invoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-time\">\r\n {{ 'eDonusum::InvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-time\"\r\n formControlName=\"invoicePeriodEndTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndTimeInput\r\n #invoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndTimeDatepicker.writeValue(null);\r\n invoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-duration-measure\">\r\n {{ 'eDonusum::InvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-duration-measure\"\r\n formControlName=\"invoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodDurationMeasureInput\r\n #invoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n invoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-description\">\r\n {{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-invoice-period-description\"\r\n formControlName=\"invoicePeriodDescription\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-id\">\r\n {{ 'eDonusum::OrderReferenceId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-id\"\r\n formControlName=\"orderReferenceId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-sales-order-id\">\r\n {{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-sales-order-id\"\r\n formControlName=\"orderReferenceSalesOrderId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-issue-date\">\r\n {{ 'eDonusum::OrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-order-reference-issue-date\"\r\n formControlName=\"orderReferenceIssueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #orderReferenceIssueDateInput\r\n #orderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"orderReferenceIssueDateDatepicker.open()\"\r\n (keyup.space)=\"orderReferenceIssueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"orderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n orderReferenceIssueDateDatepicker.writeValue(null);\r\n orderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-order-type-code\">\r\n {{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-order-reference-order-type-code\"\r\n formControlName=\"orderReferenceOrderTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-name\">\r\n {{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-name\"\r\n formControlName=\"accountingSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-scheme-id\">\r\n {{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-scheme-id\"\r\n formControlName=\"accountingSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-supplier-party-vkn-tckn\"\r\n formControlName=\"accountingSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-name\">\r\n {{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-name\"\r\n formControlName=\"accountingCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-scheme-id\">\r\n {{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-scheme-id\"\r\n formControlName=\"accountingCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-accounting-customer-party-vkn-tckn\"\r\n formControlName=\"accountingCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-name\">\r\n {{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-name\"\r\n formControlName=\"buyerCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-scheme-id\">\r\n {{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-scheme-id\"\r\n formControlName=\"buyerCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-buyer-customer-party-vkn-tckn\"\r\n formControlName=\"buyerCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-name\">\r\n {{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-name\"\r\n formControlName=\"sellerSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-scheme-id\">\r\n {{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-scheme-id\"\r\n formControlName=\"sellerSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-seller-supplier-party-vkn-tckn\"\r\n formControlName=\"sellerSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-name\">\r\n {{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-name\"\r\n formControlName=\"taxRepresentativePartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-scheme-id\">\r\n {{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-scheme-id\"\r\n formControlName=\"taxRepresentativePartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-vkn-tckn\">\r\n {{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-representative-party-vkn-tckn\"\r\n formControlName=\"taxRepresentativePartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-exchange-rate-source-currency-code\"\r\n formControlName=\"taxExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-tax-exchange-rate-target-currency-code\"\r\n formControlName=\"taxExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::TaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-tax-exchange-rate-calculation-rate\"\r\n formControlName=\"taxExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-date\">\r\n {{ 'eDonusum::TaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-tax-exchange-rate-date\"\r\n formControlName=\"taxExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #taxExchangeRateDateInput\r\n #taxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"taxExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"taxExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"taxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n taxExchangeRateDateDatepicker.writeValue(null);\r\n taxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-exchange-rate-source-currency-code\"\r\n formControlName=\"pricingExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-pricing-exchange-rate-target-currency-code\"\r\n formControlName=\"pricingExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-pricing-exchange-rate-calculation-rate\"\r\n formControlName=\"pricingExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-date\">\r\n {{ 'eDonusum::PricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-pricing-exchange-rate-date\"\r\n formControlName=\"pricingExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #pricingExchangeRateDateInput\r\n #pricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"pricingExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"pricingExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"pricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n pricingExchangeRateDateDatepicker.writeValue(null);\r\n pricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-exchange-rate-date\"\r\n formControlName=\"paymentExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentExchangeRateDateInput\r\n #paymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentExchangeRateDateDatepicker.writeValue(null);\r\n paymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentAlternativeExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-alternative-exchange-rate-date\"\r\n formControlName=\"paymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentAlternativeExchangeRateDateInput\r\n #paymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentAlternativeExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n paymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-line-extension-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-line-extension-amount\"\r\n formControlName=\"legalMonetaryTotalLineExtensionAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-exclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-exclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxExclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-inclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-inclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxInclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-allowance-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-allowance-total-amount\"\r\n formControlName=\"legalMonetaryTotalAllowanceTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-charge-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-charge-total-amount\"\r\n formControlName=\"legalMonetaryTotalChargeTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-rounding-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-rounding-amount\"\r\n formControlName=\"legalMonetaryTotalPayableRoundingAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-amount\"\r\n formControlName=\"legalMonetaryTotalPayableAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-note\">\r\n {{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-payment-terms-note\"\r\n formControlName=\"paymentTermsNote\"\r\n class=\"form-control\"\r\n maxlength=\"512\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-payment-due-date\">\r\n {{ 'eDonusum::PaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n \r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-terms-payment-due-date\"\r\n formControlName=\"paymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentTermsPaymentDueDateInput\r\n #paymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n (keyup.space)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n paymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cust-inv-id\">\r\n {{ 'eDonusum::CustInvId' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cust-inv-id\"\r\n formControlName=\"custInvId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-is-canceled\"\r\n formControlName=\"isCanceled\"\r\n class=\"form-check-input\"\r\n />\r\n \r\n <label for=\"invoice-is-canceled\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsCanceled' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-code\">\r\n {{ 'eDonusum::CancelCode' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cancel-code\"\r\n formControlName=\"cancelCode\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-description\">\r\n {{ 'eDonusum::CancelDescription' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-cancel-description\"\r\n formControlName=\"cancelDescription\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-type\">\r\n {{ 'eDonusum::ResourceDocType' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-resource-doc-type\"\r\n formControlName=\"resourceDocType\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-entry\">\r\n {{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-resource-doc-entry\"\r\n formControlName=\"resourceDocEntry\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-status\">\r\n {{ 'eDonusum::Status' | abpLocalization }}\r\n </label>\r\n \r\n <input type=\"number\" id=\"invoice-status\" formControlName=\"status\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response\">\r\n {{ 'eDonusum::ReceiverResponse' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n type=\"number\"\r\n id=\"invoice-receiver-response\"\r\n formControlName=\"receiverResponse\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response-desc\">\r\n {{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\r\n </label>\r\n \r\n <input\r\n id=\"invoice-receiver-response-desc\"\r\n formControlName=\"receiverResponseDesc\"\r\n class=\"form-control\"\r\n maxlength=\"1024\"\r\n />\r\n </div>\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=\"invoice\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n </abp-modal> -->" }]
|
|
117
|
+
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.HitInvoiceService }, { type: i3.HitFileDocumentTypeService }]; }, propDecorators: { dxInvoiceInstance: [{
|
|
96
118
|
type: ViewChild,
|
|
97
119
|
args: ['dxInvoiceInstance', { static: false }]
|
|
120
|
+
}], dxInvoiceFileInstance: [{
|
|
121
|
+
type: ViewChild,
|
|
122
|
+
args: ['dxInvoiceFileInstance', { static: false }]
|
|
98
123
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWludm9pY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaW52b2ljZXMvaGl0LWludm9pY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaW52b2ljZXMvaGl0LWludm9pY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QyxXQUFXLEVBQWtCLE1BQU0sY0FBYyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUE2QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7O0FBVzVELE1BQU0sT0FBTyxtQkFBbUI7SUFhNUIsWUFDb0IsSUFBaUIsRUFDaEIsY0FBaUM7UUFEbEMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFQdEQsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztJQU92QixDQUFDO0lBRUwsUUFBUTtRQUNKLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4RCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFNO1FBQ3BCLElBQUksR0FBRyxHQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksR0FBRyxHQUFhLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM3QixDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3RCxNQUFNLE1BQU0sR0FBRyxRQUFRLElBQUksQ0FBQyxRQUFRLFdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsaUJBQWlCLENBQUMsTUFBTTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hFLE1BQU0sTUFBTSxHQUFHLHlCQUF5QixNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUE7WUFDakMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixNQUFNLDZEQUE2RCxDQUFDO1FBQ3pILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHVCQUF1QixDQUFDLFVBQVU7UUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUNyRixJQUFJLFFBQVEsRUFBRTtZQUNWLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQztTQUMvQjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUFVO1FBQ25CLElBQUksVUFBVSxJQUFJLENBQUMsRUFBRTtZQUNqQixPQUFPLGNBQWMsQ0FBQztTQUN6QjthQUNJLElBQUksVUFBVSxJQUFJLENBQUMsRUFBRTtZQUN0QixPQUFPLHFCQUFxQixDQUFDO1NBQ2hDO2FBQ0ksSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFO1lBQ3RCLE9BQU8scUJBQXFCLENBQUM7U0FDaEM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7O2dIQWxHUSxtQkFBbUI7b0dBQW5CLG1CQUFtQixzQ0FKakIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxrSkNWaEYsay95REE0eENrQjsyRkQ5d0NMLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDSSxhQUFhLG1CQUNOLHVCQUF1QixDQUFDLE9BQU8sYUFDckMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztrSUFLekIsaUJBQWlCO3NCQUFuRSxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgaXNOdWxsT3JFbXB0eSwgaXNOdWxsT3JVbmRlZmluZWQsIExpc3RTZXJ2aWNlLCBQYWdlZFJlc3VsdER0byB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBIaXRJbnZvaWNlU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtaW52b2ljZXMvaGl0LWludm9pY2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLWludm9pY2UnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gICAgcHJvdmlkZXJzOiBbTGlzdFNlcnZpY2UsIHsgcHJvdmlkZTogTmdiRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXRlQWRhcHRlciB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9oaXQtaW52b2ljZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0SW52b2ljZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdkeEludm9pY2VJbnN0YW5jZScsIHsgc3RhdGljOiBmYWxzZSB9KSBkeEludm9pY2VJbnN0YW5jZTogRHhEYXRhR3JpZENvbXBvbmVudFxyXG5cclxuICAgIGludm9pY2VzRGF0YVNvdXJjZTogYW55XHJcbiAgICBpbnZvaWNlU3RhdHVzTG9va3VwOiBhbnlcclxuICAgIGludm9pY2VSZWNlaXZlclJlc3BvbnNlTG9va3VwOiBhbnlcclxuICAgIGludm9pY2VPYmplY3RzRW51bUxvb2t1cDogYW55XHJcblxyXG4gICAgaXNQcmV2aWV3TW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICBpc1ByZXZpZXdNb2RhbEJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgICBmYXR1cmFPbml6bGVtZTogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBsaXN0OiBMaXN0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGludm9pY2VTZXJ2aWNlOiBIaXRJbnZvaWNlU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlc0RhdGFTb3VyY2UgPSB0aGlzLmludm9pY2VTZXJ2aWNlLkxvYWRJbnZvaWNlcztcclxuICAgICAgICB0aGlzLmludm9pY2VTZXJ2aWNlLmdldFN0YXR1c2VzKCkuc3Vic2NyaWJlKGxpc3QgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmludm9pY2VTdGF0dXNMb29rdXAgPSBsaXN0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0UmVjZWl2ZXJSZXNwb25zZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW52b2ljZVJlY2VpdmVyUmVzcG9uc2VMb29rdXAgPSBsaXN0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRTYXBPYmplY3RzKCkuc3Vic2NyaWJlKGxpc3QgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmludm9pY2VPYmplY3RzRW51bUxvb2t1cCA9IGxpc3Q7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBzZW5kSW52b2ljZVNpbmdsZShyZWNvcmQpIHtcclxuICAgICAgICBsZXQgaWRzOiBzdHJpbmdbXSA9IFtyZWNvcmQuaWRdO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2Uuc2VuZEludm9pY2VCeUlkKGlkcykuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHhJbnZvaWNlSW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kSW52b2ljZU11bHRpcGxlKCkge1xyXG4gICAgICAgIGxldCBpZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuZHhJbnZvaWNlSW5zdGFuY2UuaW5zdGFuY2UuZ2V0VmlzaWJsZVJvd3MoKS5maWx0ZXIoaSA9PiBpLmlzU2VsZWN0ZWQgPT0gdHJ1ZSkuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgaWRzLnB1c2goZWxlbWVudC5kYXRhLmlkKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2Uuc2VuZEludm9pY2VCeUlkKGlkcykuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHhJbnZvaWNlSW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kSW52b2ljZVRvRW50ZWdyYXRvcigpIHtcclxuICAgICAgICB0aGlzLmludm9pY2VTZXJ2aWNlLnNlbmRJbnZvaWNlVG9FbnRlZ3JhdG9yKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHhJbnZvaWNlSW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbnZvaWNlc0Zyb21Db25uZWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRJbnZvaWNlc0Zyb21Db25uZWN0b3IoKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5keEludm9pY2VJbnN0YW5jZS5pbnN0YW5jZS5yZWZyZXNoKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEludm9pY2VSZXNwb25zZXMoKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRJbnZvaWNlc1Jlc3BvbnNlcygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmR4SW52b2ljZUluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW52b2ljZVZpZXcocmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRJbnZvaWNlVmlldyhyZWNvcmQudXVJZCkuc3Vic2NyaWJlKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBgZGF0YToke2l0ZW0ubWltZVR5cGV9O2Jhc2U2NCwke2l0ZW0uY29udGVudH1gO1xyXG4gICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBzb3VyY2U7XHJcbiAgICAgICAgICAgIGxpbmsuZG93bmxvYWQgPSBgJHtpdGVtLmZpbGVuYW1lfWA7XHJcbiAgICAgICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0SW52b2ljZVByZXZpZXcocmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRJbnZvaWNlUHJldmlldyhyZWNvcmQuaWQsIFwiT0lOVlwiKS5zdWJzY3JpYmUoZmF0dXJhID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gYGRhdGE6dGV4dC9odG1sO2Jhc2U2NCwke2ZhdHVyYS5wcmV2aWV3SFRNTH1gO1xyXG4gICAgICAgICAgICBjb25zdCBuZXdUYWIgPSB3aW5kb3cub3BlbigpO1xyXG4gICAgICAgICAgICBuZXdUYWIuZG9jdW1lbnQudGl0bGUgPSByZWNvcmQuaWRcclxuICAgICAgICAgICAgbmV3VGFiLmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gYDxpZnJhbWUgc3JjPVwiJHtzb3VyY2V9XCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHN0eWxlPVwiYm9yZGVyOm5vbmU7XCI+PC9pZnJhbWU+YDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ2V0UmVjZWl2ZXJSZXNwb25zZU5hbWUocmVzcG9uc2VJZCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5pbnZvaWNlUmVjZWl2ZXJSZXNwb25zZUxvb2t1cC5maW5kKCh4KSA9PiB4LmlkID09PSByZXNwb25zZUlkKTtcclxuICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRpc3BsYXlOYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJY29uQ2xhc3MocmVzcG9uc2VJZCkge1xyXG4gICAgICAgIGlmIChyZXNwb25zZUlkID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiZmFzIGZhLWNsb2NrXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlSWQgPT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJmYXMgZmEtY2hlY2stY2lyY2xlXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlSWQgPT0gMikge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJmYXMgZmEtdGltZXMtY2lyY2xlXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ2VEb251c3VtOjpJbnZvaWNlcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDwhLS0gPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG14LTJcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNFeHBvcnRUb0V4Y2VsQnVzeVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZXhwb3J0VG9FeGNlbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyAnZURvbnVzdW06OkV4cG9ydFRvRXhjZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgIC0tPlxyXG4gICAgICA8YnV0dG9uICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkludm9pY2VzLkNyZWF0ZSdcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiIChjbGljayk9XCJzZW5kSW52b2ljZU11bHRpcGxlKClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAge3sgJ2VEb251c3VtOjpBZGRUb1F1ZXVlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5JbnZvaWNlcy5DcmVhdGUnXCIgY2xhc3M9XCJidG4gYnRuLXhzIGJ0bi1zdWNjZXNzXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIiAoY2xpY2spPVwiZ2V0SW52b2ljZVJlc3BvbnNlcygpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1xdWVzdGlvbiBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6Q2hlY2tSZXNwb25zZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkludm9pY2VzLkNyZWF0ZSdcIiBjbGFzcz1cImJ0biBidG4teHMgYnRuLXN1Y2Nlc3NcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiIChjbGljayk9XCJzZW5kSW52b2ljZVRvRW50ZWdyYXRvcigpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZSBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6U2VuZFRvRW50ZWdyYXRvck1hbnVhbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gKmFicFBlcm1pc3Npb249XCInZURvbnVzdW0uSW52b2ljZXMuQ3JlYXRlJ1wiIGNsYXNzPVwiYnRuIGJ0bi14cyBidG4td2FybmluZ1wiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJnZXRJbnZvaWNlc0Zyb21Db25uZWN0b3IoKVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6R2V0RnJvbUNvbm5lY3Rvck1hbnVhbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhJbnZvaWNlSW5zdGFuY2UgW2RhdGFTb3VyY2VdPVwiaW52b2ljZXNEYXRhU291cmNlXCIgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCIgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIlxyXG4gICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiIFthbGxvd0NvbHVtblJlb3JkZXJpbmddPVwidHJ1ZVwiIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiIHN0eWxlPVwiaGVpZ2h0OiA3NXZoO1wiPlxyXG4gICAgICAgIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzaG93SW5mb109XCJ0cnVlXCIgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLDEwMCwyMDBdXCIgW3Nob3dOYXZpZ2F0aW9uQnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgICAgPGR4by1wYWdpbmcgW3BhZ2VTaXplXT1cIjUwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJtdWx0aXBsZVwiIHNlbGVjdEFsbE1vZGU9XCJwYWdlXCIgc2hvd0NoZWNrQm94ZXNNb2RlPVwiYWx3YXlzXCI+XHJcbiAgICAgICAgPC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWNob29zZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbZW5hYmxlZF09XCJ0cnVlXCIgbW9kZT1cInNlbGVjdFwiPjwvZHhvLWNvbHVtbi1jaG9vc2VyPlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICA8ZHhvLWdyb3VwLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIiBbYWxsb3dDb2x1bW5EcmFnZ2luZ109XCJ0cnVlXCI+PC9keG8tZ3JvdXAtcGFuZWw+XHJcbiAgICAgICAgPGR4by1ncm91cGluZyAjZXhwYW5kIFthdXRvRXhwYW5kQWxsXT1cImZhbHNlXCIgW2FsbG93Q29sbGFwc2luZ109XCJ0cnVlXCJcclxuICAgICAgICAgIFtjb250ZXh0TWVudUVuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWdyb3VwaW5nPlxyXG4gICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICA8ZHhvLWV4cG9ydCBbZW5hYmxlZF09XCJ0cnVlXCIgW2FsbG93RXhwb3J0U2VsZWN0ZWREYXRhXT1cImZhbHNlXCI+PC9keG8tZXhwb3J0PlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICA8ZHhvLWZpbHRlci1idWlsZGVyIFthbGxvd0hpZXJhcmNoaWNhbEZpZWxkc109XCJ0cnVlXCI+PC9keG8tZmlsdGVyLWJ1aWxkZXI+XHJcbiAgICAgICAgPGR4by1maWx0ZXItcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1wYW5lbD5cclxuICAgICAgICA8ZHhvLXNvcnRpbmcgbW9kZT1cInNpbmdsZVwiPjwvZHhvLXNvcnRpbmc+XHJcbiAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgIDxkeGktY29sdW1uIFtmaXhlZF09XCJ0cnVlXCIgZGF0YUZpZWxkPVwiaWRcIiB3aWR0aD1cIjEyMFwiIFthbGxvd0dyb3VwaW5nXT1cImZhbHNlXCIgW2FsbG93RmlsdGVyaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgIFthbGxvd0hlYWRlckZpbHRlcmluZ109XCJmYWxzZVwiIFthbGxvd0hpZGluZ109XCJmYWxzZVwiIFthbGxvd1Jlb3JkZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2VsbFRlbXBsYXRlPVwib3BlcmF0aW9uVGVtcGxhdGVcIiBjYXB0aW9uPVwie3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPlxyXG4gICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ29wZXJhdGlvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZHJvcGRvd24tdG9nZ2xlXCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlIFtkaXNhYmxlZF09XCJkaXNhYmxlZElkQ29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtci0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAge3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwidXBkYXRlKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVkaXRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRlbGV0ZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwic2VuZEludm9pY2VTaW5nbGUocm93LmRhdGEpXCIgKm5nSWY9XCJyb3cuZGF0YS5zdGF0dXMgPT0gMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZW52ZWxvcGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6QWRkVG9RdWV1ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImdldEludm9pY2VWaWV3KHJvdy5kYXRhKVwiICpuZ0lmPVwicm93LmRhdGEuc3RhdHVzID09IDMwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV5ZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ2VEb251c3VtOjpHZXRWaWV3JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiZ2V0SW52b2ljZVByZXZpZXcocm93LmRhdGEpXCIgKm5nSWY9XCJyb3cuZGF0YS5zdGF0dXMgPT0gMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnZURvbnVzdW06OlByZXZpZXcnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicmVzb3VyY2VEb2NFbnRyeVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OlJlc291cmNlRG9jRW50cnknfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInJlc291cmNlRG9jVHlwZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6UmVzb3VyY2VEb2NUeXBlJ3xhYnBMb2NhbGl6YXRpb259fVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiaW52b2ljZU9iamVjdHNFbnVtTG9va3VwXCIgdmFsdWVFeHByPVwiaWRcIiBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICA8L2R4by1sb29rdXA+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInN0YXR1c1wiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6U3RhdHVzJ3xhYnBMb2NhbGl6YXRpb259fVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiaW52b2ljZVN0YXR1c0xvb2t1cFwiIHZhbHVlRXhwcj1cImlkXCIgZGlzcGxheUV4cHI9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAgPC9keG8tbG9va3VwPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJwcm9maWxlSWRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlByb2ZpbGVJZCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaW52b2ljZVR5cGVDb2RlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpJbnZvaWNlVHlwZUNvZGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInJlY2VpdmVyUmVzcG9uc2VcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlJlY2VpdmVyUmVzcG9uc2UnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cImljb25UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiaW52b2ljZVJlY2VpdmVyUmVzcG9uc2VMb29rdXBcIiB2YWx1ZUV4cHI9XCJpZFwiIGRpc3BsYXlFeHByPVwiZGlzcGxheU5hbWVcIj5cclxuICAgICAgICAgIDwvZHhvLWxvb2t1cD5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdpY29uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRJY29uQ2xhc3MoZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UpXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwieydjb2xvcic6ZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UgPT0gJzEnID8gJ2dyZWVuJyA6IGRhdGEuZGF0YS5yZWNlaXZlclJlc3BvbnNlID09ICcyJyA/ICdyZWQnIDogJ2dyYXknfVwiPjwvaT5cclxuICAgICAgICAgIHt7Z2V0UmVjZWl2ZXJSZXNwb25zZU5hbWUoZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UpfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJyZWNlaXZlclJlc3BvbnNlRGVzY1wiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OlJlY2VpdmVyUmVzcG9uc2VEZXNjJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2N1bWVudEN1cnJlbmN5Q29kZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jQ3VycmVuY3knfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzc3VlRGF0ZVwiIGRhdGFUeXBlPVwiZGF0ZVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06Oklzc3VlRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidXVJZFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6VXVJZCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcblxyXG5cclxuXHJcbjwhLS0gPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeVwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5cIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgICA8aDM+XHJcbiAgICAgICAge3sgKHNlbGVjdGVkID8gJ0FicFVpOjpFZGl0JyA6ICdlRG9udXN1bTo6TmV3SW52b2ljZScpIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvaDM+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIFxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBpZD1cImludm9pY2VcIiAobmdTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCIgdmFsaWRhdGVPblN1Ym1pdD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmYWRlLWluLXRvcFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdWJsLXZlcnNpb24taWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlVibFZlcnNpb25JZCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtdWJsLXZlcnNpb24taWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVibFZlcnNpb25JZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAgIGF1dG9mb2N1c1xyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1jdXN0b21pemF0aW9uLWlkXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDdXN0b21pemF0aW9uSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWN1c3RvbWl6YXRpb24taWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImN1c3RvbWl6YXRpb25JZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcm9maWxlLWlkXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQcm9maWxlSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXByb2ZpbGUtaWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2ZpbGVJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjMyXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pbnZvaWNlLWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlSWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzMlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtY29weS1pbmRpY2F0b3JcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvcHlJbmRpY2F0b3JcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgXHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlLWNvcHktaW5kaWNhdG9yXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDb3B5SW5kaWNhdG9yJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS11dS1pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VXVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJpbnZvaWNlLXV1LWlkXCIgZm9ybUNvbnRyb2xOYW1lPVwidXVJZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNjRcIiAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pc3N1ZS1kYXRlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc3N1ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWlzc3VlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNzdWVEYXRlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpc3N1ZURhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICAgI2lzc3VlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpc3N1ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaXNzdWVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzc3VlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaXNzdWVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlzc3VlRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pc3N1ZS10aW1lXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc3N1ZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWlzc3VlLXRpbWVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNzdWVUaW1lXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpc3N1ZVRpbWVJbnB1dFxyXG4gICAgICAgICAgICAgICAgI2lzc3VlVGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpc3N1ZVRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaXNzdWVUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzc3VlVGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaXNzdWVUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlzc3VlVGltZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pbnZvaWNlLXR5cGUtY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVR5cGVDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pbnZvaWNlLXR5cGUtY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVR5cGVDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzJcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1kb2N1bWVudC1jdXJyZW5jeS1jb2RlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpEb2N1bWVudEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtZG9jdW1lbnQtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZG9jdW1lbnRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdGF4LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcHJpY2luZy1jdXJyZW5jeS1jb2RlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQcmljaW5nQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtcHJpY2luZy1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcmljaW5nQ3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXBheW1lbnQtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRBbHRlcm5hdGl2ZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtYWx0ZXJuYXRpdmUtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEFsdGVybmF0aXZlQ3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWFjY291bnRpbmctY29zdFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0Nvc3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1hY2NvdW50aW5nLWNvc3RcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjY291bnRpbmdDb3N0XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzJcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1saW5lLWNvdW50LW51bWVyaWNcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkxpbmVDb3VudE51bWVyaWMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1saW5lLWNvdW50LW51bWVyaWNcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxpbmVDb3VudE51bWVyaWNcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1wZXJpb2Qtc3RhcnQtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZFN0YXJ0RGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2UtaW52b2ljZS1wZXJpb2Qtc3RhcnQtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlUGVyaW9kU3RhcnREYXRlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kU3RhcnREYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kU3RhcnREYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaW52b2ljZVBlcmlvZFN0YXJ0RGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNlUGVyaW9kU3RhcnREYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kU3RhcnREYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1wZXJpb2Qtc3RhcnQtdGltZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZFN0YXJ0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2UtaW52b2ljZS1wZXJpb2Qtc3RhcnQtdGltZVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlUGVyaW9kU3RhcnRUaW1lXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kU3RhcnRUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kU3RhcnRUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VQZXJpb2RTdGFydFRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNlUGVyaW9kU3RhcnRUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kU3RhcnRUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RTdGFydFRpbWVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1wZXJpb2QtZW5kLWRhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Okludm9pY2VQZXJpb2RFbmREYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pbnZvaWNlLXBlcmlvZC1lbmQtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlUGVyaW9kRW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZEVuZERhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICAgI2ludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cImludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImludm9pY2VQZXJpb2RFbmREYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kRW5kRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kRW5kRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pbnZvaWNlLXBlcmlvZC1lbmQtdGltZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZEVuZFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWVuZC10aW1lXCJcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImludm9pY2VQZXJpb2RFbmRUaW1lXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kRW5kVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZEVuZFRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2ljZVBlcmlvZEVuZFRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaW52b2ljZVBlcmlvZEVuZFRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW52b2ljZVBlcmlvZEVuZFRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWR1cmF0aW9uLW1lYXN1cmVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Okludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWR1cmF0aW9uLW1lYXN1cmVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cImludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJbnZvaWNlUGVyaW9kRGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pbnZvaWNlLXBlcmlvZC1kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVBlcmlvZERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLW9yZGVyLXJlZmVyZW5jZS1pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6T3JkZXJSZWZlcmVuY2VJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLW9yZGVyLXJlZmVyZW5jZS1pZFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JkZXJSZWZlcmVuY2VJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjY0XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLXNhbGVzLW9yZGVyLWlkXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZVNhbGVzT3JkZXJJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLW9yZGVyLXJlZmVyZW5jZS1zYWxlcy1vcmRlci1pZFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JkZXJSZWZlcmVuY2VTYWxlc09yZGVySWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI2NFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLW9yZGVyLXJlZmVyZW5jZS1pc3N1ZS1kYXRlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZUlzc3VlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLWlzc3VlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgI29yZGVyUmVmZXJlbmNlSXNzdWVEYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICNvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLW9yZGVyLXR5cGUtY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6T3JkZXJSZWZlcmVuY2VPcmRlclR5cGVDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLW9yZGVyLXR5cGUtY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JkZXJSZWZlcmVuY2VPcmRlclR5cGVDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNjRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LW5hbWVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWFjY291bnRpbmctc3VwcGxpZXItcGFydHktbmFtZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjb3VudGluZ1N1cHBsaWVyUGFydHlOYW1lXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU2XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYWNjb3VudGluZy1zdXBwbGllci1wYXJ0eS1zY2hlbWUtaWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5U2NoZW1lSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LXNjaGVtZS1pZFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjb3VudGluZ1N1cHBsaWVyUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LXZrbi10Y2tuXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpBY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LXZrbi10Y2tuXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktbmFtZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0N1c3RvbWVyUGFydHlOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtYWNjb3VudGluZy1jdXN0b21lci1wYXJ0eS1uYW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1hY2NvdW50aW5nLWN1c3RvbWVyLXBhcnR5LXNjaGVtZS1pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0N1c3RvbWVyUGFydHlTY2hlbWVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktc2NoZW1lLWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiOFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktdmtuLXRja25cIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdDdXN0b21lclBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktdmtuLXRja25cIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjY291bnRpbmdDdXN0b21lclBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE2XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYnV5ZXItY3VzdG9tZXItcGFydHktbmFtZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QnV5ZXJDdXN0b21lclBhcnR5TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWJ1eWVyLWN1c3RvbWVyLXBhcnR5LW5hbWVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ1eWVyQ3VzdG9tZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1idXllci1jdXN0b21lci1wYXJ0eS1zY2hlbWUtaWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkJ1eWVyQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtYnV5ZXItY3VzdG9tZXItcGFydHktc2NoZW1lLWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJidXllckN1c3RvbWVyUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1idXllci1jdXN0b21lci1wYXJ0eS12a24tdGNrblwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QnV5ZXJDdXN0b21lclBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWJ1eWVyLWN1c3RvbWVyLXBhcnR5LXZrbi10Y2tuXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJidXllckN1c3RvbWVyUGFydHlWa25UY2tuXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktbmFtZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U2VsbGVyU3VwcGxpZXJQYXJ0eU5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktbmFtZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsbGVyU3VwcGxpZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktc2NoZW1lLWlkXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpTZWxsZXJTdXBwbGllclBhcnR5U2NoZW1lSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktc2NoZW1lLWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxsZXJTdXBwbGllclBhcnR5U2NoZW1lSWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI4XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utc2VsbGVyLXN1cHBsaWVyLXBhcnR5LXZrbi10Y2tuXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpTZWxsZXJTdXBwbGllclBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXNlbGxlci1zdXBwbGllci1wYXJ0eS12a24tdGNrblwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsbGVyU3VwcGxpZXJQYXJ0eVZrblRja25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1uYW1lXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpUYXhSZXByZXNlbnRhdGl2ZVBhcnR5TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1uYW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5TmFtZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1zY2hlbWUtaWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheFJlcHJlc2VudGF0aXZlUGFydHlTY2hlbWVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1zY2hlbWUtaWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRheFJlcHJlc2VudGF0aXZlUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS10YXgtcmVwcmVzZW50YXRpdmUtcGFydHktdmtuLXRja25cIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheFJlcHJlc2VudGF0aXZlUGFydHlWa25UY2tuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtdGF4LXJlcHJlc2VudGF0aXZlLXBhcnR5LXZrbi10Y2tuXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE2XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdGF4LWV4Y2hhbmdlLXJhdGUtc291cmNlLWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLXNvdXJjZS1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdGF4LWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdGF4LWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VGF4RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtdGF4LWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGF4RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLWRhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEV4Y2hhbmdlUmF0ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGF4RXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAjdGF4RXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjdGF4RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0YXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cInRheEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGF4RXhjaGFuZ2VSYXRlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdGF4RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0YXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXByaWNpbmctZXhjaGFuZ2UtcmF0ZS1zb3VyY2UtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UHJpY2luZ0V4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXByaWNpbmctZXhjaGFuZ2UtcmF0ZS1zb3VyY2UtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlByaWNpbmdFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNpbmdFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcHJpY2luZy1leGNoYW5nZS1yYXRlLWNhbGN1bGF0aW9uLXJhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXByaWNpbmctZXhjaGFuZ2UtcmF0ZS1kYXRlXCJcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNpbmdFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNwcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjcHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIHByaWNpbmdFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHByaWNpbmdFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS1zb3VyY2UtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS1zb3VyY2UtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcGF5bWVudC1leGNoYW5nZS1yYXRlLWNhbGN1bGF0aW9uLXJhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEV4Y2hhbmdlUmF0ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS1kYXRlXCJcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNwYXltZW50RXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjcGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwicGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgZm9yPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWV4Y2hhbmdlLXJhdGUtc291cmNlLWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWV4Y2hhbmdlLXJhdGUtc291cmNlLWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgICAgICAgICAgIGZvcj1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWxhYmVsXCJcclxuICAgICAgICAgICAgICBmb3I9XCJpbnZvaWNlLXBheW1lbnQtYWx0ZXJuYXRpdmUtZXhjaGFuZ2UtcmF0ZS1jYWxjdWxhdGlvbi1yYXRlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLWNhbGN1bGF0aW9uLXJhdGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWV4Y2hhbmdlLXJhdGUtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAjcGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjcGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICBwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWxpbmUtZXh0ZW5zaW9uLWFtb3VudFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TGVnYWxNb25ldGFyeVRvdGFsTGluZUV4dGVuc2lvbkFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWxpbmUtZXh0ZW5zaW9uLWFtb3VudFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnYWxNb25ldGFyeVRvdGFsTGluZUV4dGVuc2lvbkFtb3VudFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC10YXgtZXhjbHVzaXZlLWFtb3VudFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TGVnYWxNb25ldGFyeVRvdGFsVGF4RXhjbHVzaXZlQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtdGF4LWV4Y2x1c2l2ZS1hbW91bnRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2FsTW9uZXRhcnlUb3RhbFRheEV4Y2x1c2l2ZUFtb3VudFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC10YXgtaW5jbHVzaXZlLWFtb3VudFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TGVnYWxNb25ldGFyeVRvdGFsVGF4SW5jbHVzaXZlQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtdGF4LWluY2x1c2l2ZS1hbW91bnRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2FsTW9uZXRhcnlUb3RhbFRheEluY2x1c2l2ZUFtb3VudFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC1hbGxvd2FuY2UtdG90YWwtYW1vdW50XCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpMZWdhbE1vbmV0YXJ5VG90YWxBbGxvd2FuY2VUb3RhbEFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWFsbG93YW5jZS10b3RhbC1hbW91bnRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2FsTW9uZXRhcnlUb3RhbEFsbG93YW5jZVRvdGFsQW1vdW50XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWNoYXJnZS10b3RhbC1hbW91bnRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbENoYXJnZVRvdGFsQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtY2hhcmdlLXRvdGFsLWFtb3VudFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnYWxNb25ldGFyeVRvdGFsQ2hhcmdlVG90YWxBbW91bnRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtcGF5YWJsZS1yb3VuZGluZy1hbW91bnRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVSb3VuZGluZ0Ftb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLXBheWFibGUtcm91bmRpbmctYW1vdW50XCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlUm91bmRpbmdBbW91bnRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtcGF5YWJsZS1hbW91bnRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC1wYXlhYmxlLWFtb3VudFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZUFtb3VudFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLW5vdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRUZXJtc05vdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLW5vdGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRUZXJtc05vdGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI1MTJcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLXBheW1lbnQtZHVlLWRhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLXBheW1lbnQtZHVlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgI3BheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICNwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtY3VzdC1pbnYtaWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkN1c3RJbnZJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWN1c3QtaW52LWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjdXN0SW52SWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI2NFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtaXMtY2FuY2VsZWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlzQ2FuY2VsZWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgXHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlLWlzLWNhbmNlbGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc0NhbmNlbGVkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1jYW5jZWwtY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Q2FuY2VsQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWNhbmNlbC1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjYW5jZWxDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1jYW5jZWwtZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkNhbmNlbERlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtY2FuY2VsLWRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjYW5jZWxEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXJlc291cmNlLWRvYy10eXBlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpSZXNvdXJjZURvY1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1yZXNvdXJjZS1kb2MtdHlwZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVzb3VyY2VEb2NUeXBlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzJcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1yZXNvdXJjZS1kb2MtZW50cnlcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlJlc291cmNlRG9jRW50cnknIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1yZXNvdXJjZS1kb2MtZW50cnlcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlc291cmNlRG9jRW50cnlcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI2NFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U3RhdHVzJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGlkPVwiaW52b2ljZS1zdGF0dXNcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGF0dXNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXJlY2VpdmVyLXJlc3BvbnNlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpSZWNlaXZlclJlc3BvbnNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtcmVjZWl2ZXItcmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlY2VpdmVyUmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcmVjZWl2ZXItcmVzcG9uc2UtZGVzY1wiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UmVjZWl2ZXJSZXNwb25zZURlc2MnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1yZWNlaXZlci1yZXNwb25zZS1kZXNjXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWNlaXZlclJlc3BvbnNlRGVzY1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjEwMjRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICBcclxuICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBidXR0b25UeXBlPVwic3VibWl0XCIgZm9ybU5hbWU9XCJpbnZvaWNlXCI+XHJcbiAgICAgICAge3sgJ0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2FicC1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvYWJwLW1vZGFsPiAtLT4iXX0=
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWludm9pY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaW52b2ljZXMvaGl0LWludm9pY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaW52b2ljZXMvaGl0LWludm9pY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QyxXQUFXLEVBQWtCLE1BQU0sY0FBYyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUE2QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7QUFZNUQsTUFBTSxPQUFPLG1CQUFtQjtJQW1CNUIsWUFDb0IsSUFBaUIsRUFDaEIsY0FBaUMsRUFDakMsdUJBQW1EO1FBRnBELFNBQUksR0FBSixJQUFJLENBQWE7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBNEI7UUFYeEUsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixvQkFBZSxHQUFHLEtBQUssQ0FBQztJQVFwQixDQUFDO0lBRUwsUUFBUTtRQUNKLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4RCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqRSxRQUFRLENBQUM7WUFDVCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQU07UUFDcEIsSUFBSSxHQUFHLEdBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxHQUFHLEdBQWEsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDakcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzdCLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCx3QkFBd0I7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMzSixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3RCxNQUFNLE1BQU0sR0FBRyxRQUFRLElBQUksQ0FBQyxRQUFRLFdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQU07UUFDZixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDL0UsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQU07UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4RSxNQUFNLE1BQU0sR0FBRyx5QkFBeUIsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFBO1lBQ2pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsTUFBTSw2REFBNkQsQ0FBQztRQUN6SCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxVQUFVO1FBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLENBQUM7UUFDckYsSUFBSSxRQUFRLEVBQUU7WUFDVixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUM7U0FDL0I7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUFZLENBQUMsVUFBVTtRQUNuQixJQUFJLFVBQVUsSUFBSSxDQUFDLEVBQUU7WUFDakIsT0FBTyxjQUFjLENBQUM7U0FDekI7YUFDSSxJQUFJLFVBQVUsSUFBSSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxxQkFBcUIsQ0FBQztTQUNoQzthQUNJLElBQUksVUFBVSxJQUFJLENBQUMsRUFBRTtZQUN0QixPQUFPLHFCQUFxQixDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQU07UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUUsTUFBTSxNQUFNLEdBQUcsUUFBUSxJQUFJLENBQUMsUUFBUSxXQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5RCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0hBM0hRLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHNDQUpqQixDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLG1RQ1hoRiw0ODVEQXkxQ2tCOzJGRDEwQ0wsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGFBQWEsbUJBQ04sdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDOzJLQUt6QixpQkFBaUI7c0JBQW5FLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNNLHFCQUFxQjtzQkFBM0UsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGlzTnVsbE9yRW1wdHksIGlzTnVsbE9yVW5kZWZpbmVkLCBMaXN0U2VydmljZSwgUGFnZWRSZXN1bHREdG8gfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgSGl0SW52b2ljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWludm9pY2VzL2hpdC1pbnZvaWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRGaWxlRG9jdW1lbnRUeXBlU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZmlsZS1kb2N1bWVudC10eXBlL2hpdC1maWxlLWRvY3VtZW50LXR5cGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLWludm9pY2UnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gICAgcHJvdmlkZXJzOiBbTGlzdFNlcnZpY2UsIHsgcHJvdmlkZTogTmdiRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXRlQWRhcHRlciB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9oaXQtaW52b2ljZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0SW52b2ljZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdkeEludm9pY2VJbnN0YW5jZScsIHsgc3RhdGljOiBmYWxzZSB9KSBkeEludm9pY2VJbnN0YW5jZTogRHhEYXRhR3JpZENvbXBvbmVudFxyXG4gICAgQFZpZXdDaGlsZCgnZHhJbnZvaWNlRmlsZUluc3RhbmNlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4SW52b2ljZUZpbGVJbnN0YW5jZTogRHhEYXRhR3JpZENvbXBvbmVudFxyXG5cclxuICAgIGludm9pY2VzRGF0YVNvdXJjZTogYW55XHJcbiAgICBpbnZvaWNlU3RhdHVzTG9va3VwOiBhbnlcclxuICAgIGludm9pY2VGaWxlTmFtZUxvb2t1cDogYW55XHJcbiAgICBpbnZvaWNlUmVjZWl2ZXJSZXNwb25zZUxvb2t1cDogYW55XHJcbiAgICBpbnZvaWNlT2JqZWN0c0VudW1Mb29rdXA6IGFueVxyXG4gICAgaW52b2ljZUZpbGVzRGF0YVNvdXJjZTogYW55XHJcblxyXG4gICAgaXNQcmV2aWV3TW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICBpc1ByZXZpZXdNb2RhbEJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgICBpc0ZpbGVNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgIGlzRmlsZU1vZGFsQnVzeSA9IGZhbHNlO1xyXG5cclxuICAgIGZhdHVyYU9uaXpsZW1lOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW52b2ljZVNlcnZpY2U6IEhpdEludm9pY2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZURvY3VtZW50VHlwZVNlcnZpY2U6IEhpdEZpbGVEb2N1bWVudFR5cGVTZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmludm9pY2VzRGF0YVNvdXJjZSA9IHRoaXMuaW52b2ljZVNlcnZpY2UuTG9hZEludm9pY2VzO1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0U3RhdHVzZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW52b2ljZVN0YXR1c0xvb2t1cCA9IGxpc3Q7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRSZWNlaXZlclJlc3BvbnNlcygpLnN1YnNjcmliZShsaXN0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbnZvaWNlUmVjZWl2ZXJSZXNwb25zZUxvb2t1cCA9IGxpc3Q7XHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLmludm9pY2VTZXJ2aWNlLmdldFNhcE9iamVjdHMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW52b2ljZU9iamVjdHNFbnVtTG9va3VwID0gbGlzdDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMuZmlsZURvY3VtZW50VHlwZVNlcnZpY2UuZ2V0RmlsZURvY3VtZW50VHlwZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICB0aGlzLmludm9pY2VGaWxlTmFtZUxvb2t1cCA9IGxpc3Q7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBzZW5kSW52b2ljZVNpbmdsZShyZWNvcmQpIHtcclxuICAgICAgICBsZXQgaWRzOiBzdHJpbmdbXSA9IFtyZWNvcmQuaWRdO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2Uuc2VuZEludm9pY2VCeUlkKGlkcykuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHhJbnZvaWNlSW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kSW52b2ljZU11bHRpcGxlKCkge1xyXG4gICAgICAgIGxldCBpZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuZHhJbnZvaWNlSW5zdGFuY2UuaW5zdGFuY2UuZ2V0VmlzaWJsZVJvd3MoKS5maWx0ZXIoaSA9PiBpLmlzU2VsZWN0ZWQgPT0gdHJ1ZSkuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgaWRzLnB1c2goZWxlbWVudC5kYXRhLmlkKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2Uuc2VuZEludm9pY2VCeUlkKGlkcykuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHhJbnZvaWNlSW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kSW52b2ljZVRvRW50ZWdyYXRvcigpIHtcclxuICAgICAgICB0aGlzLmludm9pY2VTZXJ2aWNlLnNlbmRJbnZvaWNlVG9FbnRlZ3JhdG9yKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHhJbnZvaWNlSW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbnZvaWNlc0Zyb21Db25uZWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRJbnZvaWNlc0Zyb21Db25uZWN0b3IoKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5keEludm9pY2VJbnN0YW5jZS5pbnN0YW5jZS5yZWZyZXNoKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEludm9pY2VSZXNwb25zZXMoKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRJbnZvaWNlUmVzcG9uc2VzKG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSwgbmV3IERhdGUoKS50b0lTT1N0cmluZygpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5keEludm9pY2VJbnN0YW5jZS5pbnN0YW5jZS5yZWZyZXNoKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEludm9pY2VWaWV3KHJlY29yZCkge1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0SW52b2ljZVZpZXcocmVjb3JkLnV1SWQpLnN1YnNjcmliZShpdGVtID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gYGRhdGE6JHtpdGVtLm1pbWVUeXBlfTtiYXNlNjQsJHtpdGVtLmNvbnRlbnR9YDtcclxuICAgICAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgICAgbGluay5ocmVmID0gc291cmNlO1xyXG4gICAgICAgICAgICBsaW5rLmRvd25sb2FkID0gYCR7aXRlbS5maWxlbmFtZX1gO1xyXG4gICAgICAgICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0FsbEZpbGVzKHJlY29yZCkge1xyXG4gICAgICAgIHRoaXMuaW52b2ljZUZpbGVzRGF0YVNvdXJjZSA9IHRoaXMuaW52b2ljZVNlcnZpY2UuTG9hZEludm9pY2VGaWxlcyhyZWNvcmQudXVJZClcclxuICAgICAgICB0aGlzLmlzRmlsZU1vZGFsT3BlbiA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW52b2ljZVByZXZpZXcocmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRJbnZvaWNlUHJldmlldyhyZWNvcmQuaWQsIFwiT0lOVlwiKS5zdWJzY3JpYmUoZmF0dXJhID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gYGRhdGE6dGV4dC9odG1sO2Jhc2U2NCwke2ZhdHVyYS5wcmV2aWV3SFRNTH1gO1xyXG4gICAgICAgICAgICBjb25zdCBuZXdUYWIgPSB3aW5kb3cub3BlbigpO1xyXG4gICAgICAgICAgICBuZXdUYWIuZG9jdW1lbnQudGl0bGUgPSByZWNvcmQuaWRcclxuICAgICAgICAgICAgbmV3VGFiLmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gYDxpZnJhbWUgc3JjPVwiJHtzb3VyY2V9XCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHN0eWxlPVwiYm9yZGVyOm5vbmU7XCI+PC9pZnJhbWU+YDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ2V0UmVjZWl2ZXJSZXNwb25zZU5hbWUocmVzcG9uc2VJZCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5pbnZvaWNlUmVjZWl2ZXJSZXNwb25zZUxvb2t1cC5maW5kKCh4KSA9PiB4LmlkID09PSByZXNwb25zZUlkKTtcclxuICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRpc3BsYXlOYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJY29uQ2xhc3MocmVzcG9uc2VJZCkge1xyXG4gICAgICAgIGlmIChyZXNwb25zZUlkID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiZmFzIGZhLWNsb2NrXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlSWQgPT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJmYXMgZmEtY2hlY2stY2lyY2xlXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlSWQgPT0gMikge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJmYXMgZmEtdGltZXMtY2lyY2xlXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIERvd25sb2FkRmlsZShyZWNvcmQpe1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZG93bmxvYWRGaWxlQnlJZChyZWNvcmQuY29udGVudE1hc3RlcklkKS5zdWJzY3JpYmUoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGBkYXRhOiR7aXRlbS5taW1lVHlwZX07YmFzZTY0LCR7aXRlbS5jb250ZW50fWA7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IHNvdXJjZTtcclxuICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IGAke2l0ZW0uZmlsZW5hbWV9YDtcclxuICAgICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ2VEb251c3VtOjpJbnZvaWNlcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDwhLS0gPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG14LTJcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNFeHBvcnRUb0V4Y2VsQnVzeVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZXhwb3J0VG9FeGNlbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyAnZURvbnVzdW06OkV4cG9ydFRvRXhjZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgIC0tPlxyXG4gICAgICA8YnV0dG9uICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkludm9pY2VzLkNyZWF0ZSdcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiIChjbGljayk9XCJzZW5kSW52b2ljZU11bHRpcGxlKClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAge3sgJ2VEb251c3VtOjpBZGRUb1F1ZXVlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5JbnZvaWNlcy5DcmVhdGUnXCIgY2xhc3M9XCJidG4gYnRuLXhzIGJ0bi1zdWNjZXNzXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIiAoY2xpY2spPVwiZ2V0SW52b2ljZVJlc3BvbnNlcygpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1xdWVzdGlvbiBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6Q2hlY2tSZXNwb25zZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkludm9pY2VzLkNyZWF0ZSdcIiBjbGFzcz1cImJ0biBidG4teHMgYnRuLXN1Y2Nlc3NcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiIChjbGljayk9XCJzZW5kSW52b2ljZVRvRW50ZWdyYXRvcigpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZSBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6U2VuZFRvRW50ZWdyYXRvck1hbnVhbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gKmFicFBlcm1pc3Npb249XCInZURvbnVzdW0uSW52b2ljZXMuQ3JlYXRlJ1wiIGNsYXNzPVwiYnRuIGJ0bi14cyBidG4td2FybmluZ1wiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJnZXRJbnZvaWNlc0Zyb21Db25uZWN0b3IoKVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6R2V0RnJvbUNvbm5lY3Rvck1hbnVhbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhJbnZvaWNlSW5zdGFuY2UgW2RhdGFTb3VyY2VdPVwiaW52b2ljZXNEYXRhU291cmNlXCIgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCIgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIlxyXG4gICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiIFthbGxvd0NvbHVtblJlb3JkZXJpbmddPVwidHJ1ZVwiIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiIHN0eWxlPVwiaGVpZ2h0OiA3NXZoO1wiPlxyXG4gICAgICAgIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzaG93SW5mb109XCJ0cnVlXCIgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLDEwMCwyMDBdXCIgW3Nob3dOYXZpZ2F0aW9uQnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgICAgPGR4by1wYWdpbmcgW3BhZ2VTaXplXT1cIjUwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJtdWx0aXBsZVwiIHNlbGVjdEFsbE1vZGU9XCJwYWdlXCIgc2hvd0NoZWNrQm94ZXNNb2RlPVwiYWx3YXlzXCI+XHJcbiAgICAgICAgPC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWNob29zZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbZW5hYmxlZF09XCJ0cnVlXCIgbW9kZT1cInNlbGVjdFwiPjwvZHhvLWNvbHVtbi1jaG9vc2VyPlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICA8ZHhvLWdyb3VwLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIiBbYWxsb3dDb2x1bW5EcmFnZ2luZ109XCJ0cnVlXCI+PC9keG8tZ3JvdXAtcGFuZWw+XHJcbiAgICAgICAgPGR4by1ncm91cGluZyAjZXhwYW5kIFthdXRvRXhwYW5kQWxsXT1cImZhbHNlXCIgW2FsbG93Q29sbGFwc2luZ109XCJ0cnVlXCJcclxuICAgICAgICAgIFtjb250ZXh0TWVudUVuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWdyb3VwaW5nPlxyXG4gICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICA8ZHhvLWV4cG9ydCBbZW5hYmxlZF09XCJ0cnVlXCIgW2FsbG93RXhwb3J0U2VsZWN0ZWREYXRhXT1cImZhbHNlXCI+PC9keG8tZXhwb3J0PlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICA8ZHhvLWZpbHRlci1idWlsZGVyIFthbGxvd0hpZXJhcmNoaWNhbEZpZWxkc109XCJ0cnVlXCI+PC9keG8tZmlsdGVyLWJ1aWxkZXI+XHJcbiAgICAgICAgPGR4by1maWx0ZXItcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1wYW5lbD5cclxuICAgICAgICA8ZHhvLXNvcnRpbmcgbW9kZT1cInNpbmdsZVwiPjwvZHhvLXNvcnRpbmc+XHJcbiAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgIDxkeGktY29sdW1uIFtmaXhlZF09XCJ0cnVlXCIgZGF0YUZpZWxkPVwiaWRcIiB3aWR0aD1cIjEyMFwiIFthbGxvd0dyb3VwaW5nXT1cImZhbHNlXCIgW2FsbG93RmlsdGVyaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgIFthbGxvd0hlYWRlckZpbHRlcmluZ109XCJmYWxzZVwiIFthbGxvd0hpZGluZ109XCJmYWxzZVwiIFthbGxvd1Jlb3JkZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2VsbFRlbXBsYXRlPVwib3BlcmF0aW9uVGVtcGxhdGVcIiBjYXB0aW9uPVwie3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPlxyXG4gICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ29wZXJhdGlvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZHJvcGRvd24tdG9nZ2xlXCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlIFtkaXNhYmxlZF09XCJkaXNhYmxlZElkQ29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtci0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAge3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwidXBkYXRlKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVkaXRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRlbGV0ZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwic2VuZEludm9pY2VTaW5nbGUocm93LmRhdGEpXCIgKm5nSWY9XCJyb3cuZGF0YS5zdGF0dXMgPT0gMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZW52ZWxvcGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6QWRkVG9RdWV1ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImdldEludm9pY2VWaWV3KHJvdy5kYXRhKVwiICpuZ0lmPVwicm93LmRhdGEuc3RhdHVzID09IDMwMCB8fCByb3cuZGF0YS5zdGF0dXMgPT0gNzAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXllXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnZURvbnVzdW06OkdldFBERlZpZXcnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJnZXRJbnZvaWNlUHJldmlldyhyb3cuZGF0YSlcIiAqbmdJZj1cInJvdy5kYXRhLnN0YXR1cyA9PSAxMDBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6UHJldmlldycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cInNob3dBbGxGaWxlcyhyb3cuZGF0YSlcIiAqbmdJZj1cInJvdy5kYXRhLnN0YXR1cyA9PSAzMDAgfHwgcm93LmRhdGEuc3RhdHVzID09IDcwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ2VEb251c3VtOjpTaG93QWxsRmlsZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicmVzb3VyY2VEb2NFbnRyeVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OlJlc291cmNlRG9jRW50cnknfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInJlc291cmNlRG9jVHlwZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6UmVzb3VyY2VEb2NUeXBlJ3xhYnBMb2NhbGl6YXRpb259fVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiaW52b2ljZU9iamVjdHNFbnVtTG9va3VwXCIgdmFsdWVFeHByPVwiaWRcIiBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICA8L2R4by1sb29rdXA+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInN0YXR1c1wiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6U3RhdHVzJ3xhYnBMb2NhbGl6YXRpb259fVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiaW52b2ljZVN0YXR1c0xvb2t1cFwiIHZhbHVlRXhwcj1cImlkXCIgZGlzcGxheUV4cHI9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAgPC9keG8tbG9va3VwPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJwcm9maWxlSWRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlByb2ZpbGVJZCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaW52b2ljZVR5cGVDb2RlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpJbnZvaWNlVHlwZUNvZGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInJlY2VpdmVyUmVzcG9uc2VcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlJlY2VpdmVyUmVzcG9uc2UnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cImljb25UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiaW52b2ljZVJlY2VpdmVyUmVzcG9uc2VMb29rdXBcIiB2YWx1ZUV4cHI9XCJpZFwiIGRpc3BsYXlFeHByPVwiZGlzcGxheU5hbWVcIj5cclxuICAgICAgICAgIDwvZHhvLWxvb2t1cD5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdpY29uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRJY29uQ2xhc3MoZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UpXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwieydjb2xvcic6ZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UgPT0gJzEnID8gJ2dyZWVuJyA6IGRhdGEuZGF0YS5yZWNlaXZlclJlc3BvbnNlID09ICcyJyA/ICdyZWQnIDogJ2dyYXknfVwiPjwvaT5cclxuICAgICAgICAgIHt7Z2V0UmVjZWl2ZXJSZXNwb25zZU5hbWUoZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UpfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJyZWNlaXZlclJlc3BvbnNlRGVzY1wiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OlJlY2VpdmVyUmVzcG9uc2VEZXNjJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2N1bWVudEN1cnJlbmN5Q29kZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jQ3VycmVuY3knfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzc3VlRGF0ZVwiIGRhdGFUeXBlPVwiZGF0ZVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06Oklzc3VlRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidXVJZFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6VXVJZCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcblxyXG48YWJwLW1vZGFsIFtidXN5XT1cImlzRmlsZU1vZGFsQnVzeVwiIFsodmlzaWJsZSldPVwiaXNGaWxlTW9kYWxPcGVuXCIgW29wdGlvbnNdPVwieyBzaXplOiAnbGcnIH1cIj5cclxuICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgIDxoMz5cclxuICAgICAge3sgJ2VEb251c3VtOjpJbnZvaWNlRmlsZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgICA8ZHgtZGF0YS1ncmlkICNkeEludm9pY2VGaWxlSW5zdGFuY2UgW2RhdGFTb3VyY2VdPVwiaW52b2ljZUZpbGVzRGF0YVNvdXJjZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCIgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCIgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cImZhbHNlXCIgW3Jvd0FsdGVybmF0aW9uRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA1MHZoO1wiPlxyXG4gICAgICAgICAgICAgICAgPGR4by1jb2x1bW4tZml4aW5nIFtlbmFibGVkXT1cInRydWVcIj48L2R4by1jb2x1bW4tZml4aW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gW2ZpeGVkXT1cInRydWVcIiBkYXRhRmllbGQ9XCJpZFwiIHdpZHRoPVwiMTIwXCIgW2FsbG93R3JvdXBpbmddPVwiZmFsc2VcIiBbYWxsb3dGaWx0ZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICBbYWxsb3dIZWFkZXJGaWx0ZXJpbmddPVwiZmFsc2VcIiBbYWxsb3dIaWRpbmddPVwiZmFsc2VcIiBbYWxsb3dSZW9yZGVyaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgY2VsbFRlbXBsYXRlPVwib3BlcmF0aW9uVGVtcGxhdGVcIiBjYXB0aW9uPVwie3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IHJvdyBvZiAnb3BlcmF0aW9uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZHJvcGRvd24tdG9nZ2xlXCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25Ub2dnbGUgW2Rpc2FibGVkXT1cImRpc2FibGVkSWRDb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jb2cgbXItMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cIkRvd25sb2FkRmlsZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWRvd25sb2FkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnZURvbnVzdW06OkRvd25sb2FkJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gW2FsbG93RWRpdGluZ109XCJmYWxzZVwiIGRhdGFGaWVsZD1cImV4dHJhSXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6TmFtZSd8YWJwTG9jYWxpemF0aW9ufX1cIj5cclxuICAgICAgICAgICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiaW52b2ljZUZpbGVOYW1lTG9va3VwXCIgdmFsdWVFeHByPVwiaWRcIiBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZHhvLWxvb2t1cD5cclxuICAgICAgICAgICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT5cclxuICAgICAge3sgJ0FicFVpOjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuXHJcbjwhLS0gPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeVwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5cIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgICA8aDM+XHJcbiAgICAgICAge3sgKHNlbGVjdGVkID8gJ0FicFVpOjpFZGl0JyA6ICdlRG9udXN1bTo6TmV3SW52b2ljZScpIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvaDM+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIFxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBpZD1cImludm9pY2VcIiAobmdTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCIgdmFsaWRhdGVPblN1Ym1pdD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmYWRlLWluLXRvcFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdWJsLXZlcnNpb24taWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlVibFZlcnNpb25JZCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtdWJsLXZlcnNpb24taWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVibFZlcnNpb25JZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAgIGF1dG9mb2N1c1xyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1jdXN0b21pemF0aW9uLWlkXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDdXN0b21pemF0aW9uSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWN1c3RvbWl6YXRpb24taWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImN1c3RvbWl6YXRpb25JZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcm9maWxlLWlkXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQcm9maWxlSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXByb2ZpbGUtaWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2ZpbGVJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjMyXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pbnZvaWNlLWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlSWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzMlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtY29weS1pbmRpY2F0b3JcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvcHlJbmRpY2F0b3JcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgXHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlLWNvcHktaW5kaWNhdG9yXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDb3B5SW5kaWNhdG9yJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS11dS1pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VXVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJpbnZvaWNlLXV1LWlkXCIgZm9ybUNvbnRyb2xOYW1lPVwidXVJZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNjRcIiAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pc3N1ZS1kYXRlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc3N1ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWlzc3VlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNzdWVEYXRlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpc3N1ZURhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICAgI2lzc3VlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpc3N1ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaXNzdWVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzc3VlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaXNzdWVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlzc3VlRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pc3N1ZS10aW1lXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc3N1ZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWlzc3VlLXRpbWVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNzdWVUaW1lXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpc3N1ZVRpbWVJbnB1dFxyXG4gICAgICAgICAgICAgICAgI2lzc3VlVGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpc3N1ZVRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaXNzdWVUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzc3VlVGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaXNzdWVUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlzc3VlVGltZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pbnZvaWNlLXR5cGUtY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVR5cGVDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pbnZvaWNlLXR5cGUtY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVR5cGVDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzJcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1kb2N1bWVudC1jdXJyZW5jeS1jb2RlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpEb2N1bWVudEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtZG9jdW1lbnQtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZG9jdW1lbnRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdGF4LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcHJpY2luZy1jdXJyZW5jeS1jb2RlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQcmljaW5nQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtcHJpY2luZy1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcmljaW5nQ3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXBheW1lbnQtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRBbHRlcm5hdGl2ZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtYWx0ZXJuYXRpdmUtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEFsdGVybmF0aXZlQ3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWFjY291bnRpbmctY29zdFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0Nvc3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1hY2NvdW50aW5nLWNvc3RcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjY291bnRpbmdDb3N0XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzJcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1saW5lLWNvdW50LW51bWVyaWNcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkxpbmVDb3VudE51bWVyaWMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1saW5lLWNvdW50LW51bWVyaWNcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxpbmVDb3VudE51bWVyaWNcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1wZXJpb2Qtc3RhcnQtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZFN0YXJ0RGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2UtaW52b2ljZS1wZXJpb2Qtc3RhcnQtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlUGVyaW9kU3RhcnREYXRlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kU3RhcnREYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kU3RhcnREYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaW52b2ljZVBlcmlvZFN0YXJ0RGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNlUGVyaW9kU3RhcnREYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kU3RhcnREYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1wZXJpb2Qtc3RhcnQtdGltZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZFN0YXJ0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2UtaW52b2ljZS1wZXJpb2Qtc3RhcnQtdGltZVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlUGVyaW9kU3RhcnRUaW1lXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kU3RhcnRUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kU3RhcnRUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VQZXJpb2RTdGFydFRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNlUGVyaW9kU3RhcnRUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kU3RhcnRUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RTdGFydFRpbWVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1wZXJpb2QtZW5kLWRhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Okludm9pY2VQZXJpb2RFbmREYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pbnZvaWNlLXBlcmlvZC1lbmQtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlUGVyaW9kRW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZEVuZERhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICAgI2ludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cImludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImludm9pY2VQZXJpb2RFbmREYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kRW5kRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kRW5kRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pbnZvaWNlLXBlcmlvZC1lbmQtdGltZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZEVuZFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWVuZC10aW1lXCJcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImludm9pY2VQZXJpb2RFbmRUaW1lXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kRW5kVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZEVuZFRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2ljZVBlcmlvZEVuZFRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaW52b2ljZVBlcmlvZEVuZFRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW52b2ljZVBlcmlvZEVuZFRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWR1cmF0aW9uLW1lYXN1cmVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Okludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWR1cmF0aW9uLW1lYXN1cmVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cImludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJbnZvaWNlUGVyaW9kRGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pbnZvaWNlLXBlcmlvZC1kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVBlcmlvZERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLW9yZGVyLXJlZmVyZW5jZS1pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6T3JkZXJSZWZlcmVuY2VJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLW9yZGVyLXJlZmVyZW5jZS1pZFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JkZXJSZWZlcmVuY2VJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjY0XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLXNhbGVzLW9yZGVyLWlkXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZVNhbGVzT3JkZXJJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLW9yZGVyLXJlZmVyZW5jZS1zYWxlcy1vcmRlci1pZFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JkZXJSZWZlcmVuY2VTYWxlc09yZGVySWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI2NFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLW9yZGVyLXJlZmVyZW5jZS1pc3N1ZS1kYXRlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZUlzc3VlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLWlzc3VlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgI29yZGVyUmVmZXJlbmNlSXNzdWVEYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICNvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLW9yZGVyLXR5cGUtY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6T3JkZXJSZWZlcmVuY2VPcmRlclR5cGVDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLW9yZGVyLXR5cGUtY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JkZXJSZWZlcmVuY2VPcmRlclR5cGVDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNjRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LW5hbWVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWFjY291bnRpbmctc3VwcGxpZXItcGFydHktbmFtZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjb3VudGluZ1N1cHBsaWVyUGFydHlOYW1lXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU2XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYWNjb3VudGluZy1zdXBwbGllci1wYXJ0eS1zY2hlbWUtaWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5U2NoZW1lSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LXNjaGVtZS1pZFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjb3VudGluZ1N1cHBsaWVyUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LXZrbi10Y2tuXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpBY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LXZrbi10Y2tuXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktbmFtZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0N1c3RvbWVyUGFydHlOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtYWNjb3VudGluZy1jdXN0b21lci1wYXJ0eS1uYW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1hY2NvdW50aW5nLWN1c3RvbWVyLXBhcnR5LXNjaGVtZS1pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0N1c3RvbWVyUGFydHlTY2hlbWVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktc2NoZW1lLWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiOFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktdmtuLXRja25cIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdDdXN0b21lclBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktdmtuLXRja25cIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjY291bnRpbmdDdXN0b21lclBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE2XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYnV5ZXItY3VzdG9tZXItcGFydHktbmFtZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QnV5ZXJDdXN0b21lclBhcnR5TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWJ1eWVyLWN1c3RvbWVyLXBhcnR5LW5hbWVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ1eWVyQ3VzdG9tZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1idXllci1jdXN0b21lci1wYXJ0eS1zY2hlbWUtaWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkJ1eWVyQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtYnV5ZXItY3VzdG9tZXItcGFydHktc2NoZW1lLWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJidXllckN1c3RvbWVyUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1idXllci1jdXN0b21lci1wYXJ0eS12a24tdGNrblwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QnV5ZXJDdXN0b21lclBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWJ1eWVyLWN1c3RvbWVyLXBhcnR5LXZrbi10Y2tuXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJidXllckN1c3RvbWVyUGFydHlWa25UY2tuXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktbmFtZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U2VsbGVyU3VwcGxpZXJQYXJ0eU5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktbmFtZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsbGVyU3VwcGxpZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktc2NoZW1lLWlkXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpTZWxsZXJTdXBwbGllclBhcnR5U2NoZW1lSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktc2NoZW1lLWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxsZXJTdXBwbGllclBhcnR5U2NoZW1lSWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI4XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utc2VsbGVyLXN1cHBsaWVyLXBhcnR5LXZrbi10Y2tuXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpTZWxsZXJTdXBwbGllclBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXNlbGxlci1zdXBwbGllci1wYXJ0eS12a24tdGNrblwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsbGVyU3VwcGxpZXJQYXJ0eVZrblRja25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1uYW1lXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpUYXhSZXByZXNlbnRhdGl2ZVBhcnR5TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1uYW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5TmFtZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1zY2hlbWUtaWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheFJlcHJlc2VudGF0aXZlUGFydHlTY2hlbWVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1zY2hlbWUtaWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRheFJlcHJlc2VudGF0aXZlUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS10YXgtcmVwcmVzZW50YXRpdmUtcGFydHktdmtuLXRja25cIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheFJlcHJlc2VudGF0aXZlUGFydHlWa25UY2tuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtdGF4LXJlcHJlc2VudGF0aXZlLXBhcnR5LXZrbi10Y2tuXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE2XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdGF4LWV4Y2hhbmdlLXJhdGUtc291cmNlLWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLXNvdXJjZS1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdGF4LWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdGF4LWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VGF4RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtdGF4LWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGF4RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLWRhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEV4Y2hhbmdlUmF0ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGF4RXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAjdGF4RXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjdGF4RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0YXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cInRheEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGF4RXhjaGFuZ2VSYXRlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdGF4RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0YXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXByaWNpbmctZXhjaGFuZ2UtcmF0ZS1zb3VyY2UtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UHJpY2luZ0V4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXByaWNpbmctZXhjaGFuZ2UtcmF0ZS1zb3VyY2UtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlByaWNpbmdFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNpbmdFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcHJpY2luZy1leGNoYW5nZS1yYXRlLWNhbGN1bGF0aW9uLXJhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXByaWNpbmctZXhjaGFuZ2UtcmF0ZS1kYXRlXCJcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNpbmdFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNwcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjcHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIHByaWNpbmdFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHByaWNpbmdFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS1zb3VyY2UtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS1zb3VyY2UtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcGF5bWVudC1leGNoYW5nZS1yYXRlLWNhbGN1bGF0aW9uLXJhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEV4Y2hhbmdlUmF0ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS1kYXRlXCJcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNwYXltZW50RXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjcGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwicGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgZm9yPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWV4Y2hhbmdlLXJhdGUtc291cmNlLWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWV4Y2hhbmdlLXJhdGUtc291cmNlLWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgICAgICAgICAgIGZvcj1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWxhYmVsXCJcclxuICAgICAgICAgICAgICBmb3I9XCJpbnZvaWNlLXBheW1lbnQtYWx0ZXJuYXRpdmUtZXhjaGFuZ2UtcmF0ZS1jYWxjdWxhdGlvbi1yYXRlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLWNhbGN1bGF0aW9uLXJhdGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWV4Y2hhbmdlLXJhdGUtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAjcGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAjcGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICBwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWxpbmUtZXh0ZW5zaW9uLWFtb3VudFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TGVnYWxNb25ldGFyeVRvdGFsTGluZUV4dGVuc2lvbkFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWxpbmUtZXh0ZW5zaW9uLWFtb3VudFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnYWxNb25ldGFyeVRvdGFsTGluZUV4dGVuc2lvbkFtb3VudFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC10YXgtZXhjbHVzaXZlLWFtb3VudFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TGVnYWxNb25ldGFyeVRvdGFsVGF4RXhjbHVzaXZlQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtdGF4LWV4Y2x1c2l2ZS1hbW91bnRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2FsTW9uZXRhcnlUb3RhbFRheEV4Y2x1c2l2ZUFtb3VudFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC10YXgtaW5jbHVzaXZlLWFtb3VudFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TGVnYWxNb25ldGFyeVRvdGFsVGF4SW5jbHVzaXZlQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtdGF4LWluY2x1c2l2ZS1hbW91bnRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2FsTW9uZXRhcnlUb3RhbFRheEluY2x1c2l2ZUFtb3VudFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC1hbGxvd2FuY2UtdG90YWwtYW1vdW50XCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpMZWdhbE1vbmV0YXJ5VG90YWxBbGxvd2FuY2VUb3RhbEFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWFsbG93YW5jZS10b3RhbC1hbW91bnRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2FsTW9uZXRhcnlUb3RhbEFsbG93YW5jZVRvdGFsQW1vdW50XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWNoYXJnZS10b3RhbC1hbW91bnRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbENoYXJnZVRvdGFsQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtY2hhcmdlLXRvdGFsLWFtb3VudFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnYWxNb25ldGFyeVRvdGFsQ2hhcmdlVG90YWxBbW91bnRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtcGF5YWJsZS1yb3VuZGluZy1hbW91bnRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVSb3VuZGluZ0Ftb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLXBheWFibGUtcm91bmRpbmctYW1vdW50XCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlUm91bmRpbmdBbW91bnRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtcGF5YWJsZS1hbW91bnRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC1wYXlhYmxlLWFtb3VudFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZUFtb3VudFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLW5vdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRUZXJtc05vdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLW5vdGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRUZXJtc05vdGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI1MTJcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLXBheW1lbnQtZHVlLWRhdGVcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLXBheW1lbnQtZHVlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgI3BheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICNwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtY3VzdC1pbnYtaWRcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkN1c3RJbnZJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWN1c3QtaW52LWlkXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjdXN0SW52SWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI2NFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtaXMtY2FuY2VsZWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlzQ2FuY2VsZWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgXHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlLWlzLWNhbmNlbGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc0NhbmNlbGVkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1jYW5jZWwtY29kZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Q2FuY2VsQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICBcclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWNhbmNlbC1jb2RlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjYW5jZWxDb2RlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTZcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1jYW5jZWwtZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkNhbmNlbERlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtY2FuY2VsLWRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjYW5jZWxEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXJlc291cmNlLWRvYy10eXBlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpSZXNvdXJjZURvY1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1yZXNvdXJjZS1kb2MtdHlwZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVzb3VyY2VEb2NUeXBlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzJcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1yZXNvdXJjZS1kb2MtZW50cnlcIj5cclxuICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlJlc291cmNlRG9jRW50cnknIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1yZXNvdXJjZS1kb2MtZW50cnlcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlc291cmNlRG9jRW50cnlcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI2NFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U3RhdHVzJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGlkPVwiaW52b2ljZS1zdGF0dXNcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGF0dXNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXJlY2VpdmVyLXJlc3BvbnNlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpSZWNlaXZlclJlc3BvbnNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtcmVjZWl2ZXItcmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlY2VpdmVyUmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcmVjZWl2ZXItcmVzcG9uc2UtZGVzY1wiPlxyXG4gICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UmVjZWl2ZXJSZXNwb25zZURlc2MnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1yZWNlaXZlci1yZXNwb25zZS1kZXNjXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWNlaXZlclJlc3BvbnNlRGVzY1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjEwMjRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICBcclxuICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBidXR0b25UeXBlPVwic3VibWl0XCIgZm9ybU5hbWU9XCJpbnZvaWNlXCI+XHJcbiAgICAgICAge3sgJ0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2FicC1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvYWJwLW1vZGFsPiAtLT4iXX0=
|