@eo-sdk/client 10.6.15 → 10.6.16
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/app/eo-framework/actions/actions/signature-action/signature-action.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/string/string.component.d.ts +1 -0
- package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
- package/app/eo-framework/frame/frame.component.d.ts +2 -1
- package/app/eo-framework/frame/frame.component.d.ts.map +1 -1
- package/app/eo-framework/media/media.component.d.ts.map +1 -1
- package/assets/_default/i18n/en.json +3 -3
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
- package/esm2020/app/eo-client/process-state/process-state.component.mjs +3 -3
- package/esm2020/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +6 -6
- package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
- package/esm2020/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +5 -2
- package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +2 -2
- package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +4 -4
- package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +7 -4
- package/esm2020/app/eo-framework/frame/frame.component.mjs +3 -2
- package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/media/media.component.mjs +3 -1
- package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
- package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +3 -3
- package/fesm2015/eo-sdk-client.mjs +40 -29
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +37 -28
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -121,14 +121,14 @@ let IndexdataSummaryComponent = IndexdataSummaryComponent_1 = class IndexdataSum
|
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
123
|
IndexdataSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: IndexdataSummaryComponent, deps: [{ token: i1.TranslateService }, { token: i2.GridService }, { token: i1.DmsService }, { token: i1.UserService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
124
|
-
IndexdataSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: { indexdata: "indexdata", dmsObject: "dmsObject", baseparams: "baseparams", enableVersions: "enableVersions", diff: "diff" }, viewQueries: [{ propertyName: "storageAccordion", first: true, predicate: ["storageAccordion"], descendants: true }], ngImport: i0, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"item && item.contextFolder\"\n [label]=\"'eo.indexdata.summary.folder' | translate\"\n [className]=\"'baseparams-section'\"\n [value]=\"getLink(item.contextFolder.title ? item.contextFolder.title : item.contextFolder.id)\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo\" *ngIf=\"storageInfos?.length\">\n <eo-simple-accordion #storageAccordion\n [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:0;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:-moz-max-content;width:max-content}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: i5.IndexdataSummaryEntryComponent, selector: "eo-indexdata-summary-entry", inputs: ["label", "item", "value", "className"], outputs: ["onValueClicked"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }, { kind: "pipe", type: i8.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
124
|
+
IndexdataSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: { indexdata: "indexdata", dmsObject: "dmsObject", baseparams: "baseparams", enableVersions: "enableVersions", diff: "diff" }, viewQueries: [{ propertyName: "storageAccordion", first: true, predicate: ["storageAccordion"], descendants: true }], ngImport: i0, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"item && item.contextFolder\"\n [label]=\"'eo.indexdata.summary.folder' | translate\"\n [className]=\"'baseparams-section'\"\n [value]=\"getLink(item.contextFolder.title ? item.contextFolder.title : item.contextFolder.id)\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo\" *ngIf=\"storageInfos?.length && isUserAllowedToShowStorageSection\">\n <eo-simple-accordion #storageAccordion\n [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:0;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:-moz-max-content;width:max-content}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: i5.IndexdataSummaryEntryComponent, selector: "eo-indexdata-summary-entry", inputs: ["label", "item", "value", "className"], outputs: ["onValueClicked"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }, { kind: "pipe", type: i8.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
125
125
|
IndexdataSummaryComponent = IndexdataSummaryComponent_1 = __decorate([
|
|
126
126
|
UntilDestroy()
|
|
127
127
|
], IndexdataSummaryComponent);
|
|
128
128
|
export { IndexdataSummaryComponent };
|
|
129
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: IndexdataSummaryComponent, decorators: [{
|
|
130
130
|
type: Component,
|
|
131
|
-
args: [{ selector: 'eo-indexdata-summary', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"item && item.contextFolder\"\n [label]=\"'eo.indexdata.summary.folder' | translate\"\n [className]=\"'baseparams-section'\"\n [value]=\"getLink(item.contextFolder.title ? item.contextFolder.title : item.contextFolder.id)\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo\" *ngIf=\"storageInfos?.length\">\n <eo-simple-accordion #storageAccordion\n [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:0;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:-moz-max-content;width:max-content}\n"] }]
|
|
131
|
+
args: [{ selector: 'eo-indexdata-summary', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"item && item.contextFolder\"\n [label]=\"'eo.indexdata.summary.folder' | translate\"\n [className]=\"'baseparams-section'\"\n [value]=\"getLink(item.contextFolder.title ? item.contextFolder.title : item.contextFolder.id)\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo\" *ngIf=\"storageInfos?.length && isUserAllowedToShowStorageSection\">\n <eo-simple-accordion #storageAccordion\n [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:0;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:-moz-max-content;width:max-content}\n"] }]
|
|
132
132
|
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.GridService }, { type: i1.DmsService }, { type: i1.UserService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { storageAccordion: [{
|
|
133
133
|
type: ViewChild,
|
|
134
134
|
args: ['storageAccordion']
|
|
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
143
143
|
}], diff: [{
|
|
144
144
|
type: Input
|
|
145
145
|
}] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBd0IsS0FBSyxFQUEwQixNQUFNLGNBQWMsQ0FBQztBQUduRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7OztBQVM1RCxJQUFNLHlCQUF5QixpQ0FBL0IsTUFBTSx5QkFBeUI7SUFpQnBDLElBQ0ksU0FBUyxDQUFDLEVBQWE7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENB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QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRU8sSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXRpbGl0aWVzU2VydmljZX0gZnJvbSAnLi8uLi8uLi91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIFZpZXdDaGlsZCwgT25Jbml0LCBDaGFuZ2VEZXRlY3RvclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VQYXJhbXMsIERtc09iamVjdCwgVXRpbHMsIFVzZXJTZXJ2aWNlLCBEbXNTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2ltcGxlQWNjb3JkaW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi9hY2NvcmRpb24vc2ltcGxlLWFjY29yZGlvbi9zaW1wbGUtYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0lTdW1tYXJ5RW50cnlEaWZmVmFsdWV9IGZyb20gJy4vaW5kZXhkYXRhLXN1bW1hcnktZW50cnkuaW50ZXJmYWNlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1pbmRleGRhdGEtc3VtbWFyeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luZGV4ZGF0YS1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvbjogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfaW5kZXhEYXRhOiBJbmRleERhdGE7XG5cbiAgY29yZVZhbHVlczogYW55W107XG4gIGRhdGFWYWx1ZXM6IGFueVtdO1xuICBzdG9yYWdlSW5mb3M6IGFueVtdO1xuICBpdGVtOiBEbXNPYmplY3Q7XG4gIG1vcmVJbmZvQWNjID0gZmFsc2U7XG4gIGRhdGFJbmZvQWNjID0gZmFsc2U7XG4gIGRpZmZBY3RpdmUgPSBmYWxzZTtcbiAgZW1wdHlTdGF0ZSA9IGZhbHNlO1xuXG4gIC8vIEBWaWV3Q2hpbGQoJ2RhdGFBY2NvcmRpb24nKSBkYXRhQWNjb3JkaW9uOiBTaW1wbGVBY2NvcmRpb25Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3N0b3JhZ2VBY2NvcmRpb24nKSBzdG9yYWdlQWNjb3JkaW9uOiBTaW1wbGVBY2NvcmRpb25Db21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgc2V0IGluZGV4ZGF0YShpZDogSW5kZXhEYXRhKSB7XG4gICAgdGhpcy5faW5kZXhEYXRhID0gaWQ7XG4gICAgdGhpcy5jb3JlVmFsdWVzID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGlkLCAwKS5maWx0ZXIodmFsdWUgPT4gIXZhbHVlLm5hbWUuc3RhcnRzV2l0aCgneXV2JykpO1xuICAgIHRoaXMuZGF0YVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpZCwgMSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZG1zT2JqZWN0KGl0ZW06IERtc09iamVjdCkge1xuICAgIHRoaXMuaXRlbSA9IGl0ZW07XG4gICAgdGhpcy5zdG9yYWdlSW5mb3MgPSBudWxsO1xuICAgIGlmKGl0ZW0pXG4gICAgdGhpcy5nZXRTdG9yYWdlSW5mb3MoKTtcbiAgICBpZiAodGhpcy5zdG9yYWdlQWNjb3JkaW9uKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VBY2NvcmRpb24uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBiYXNlcGFyYW1zOiBCYXNlUGFyYW1zO1xuICBASW5wdXQoKSBlbmFibGVWZXJzaW9ucyA9IHRydWU7XG5cbiAgQElucHV0KCkgc2V0IGRpZmYoe2luZGV4ZGF0YSwgaW5kZXhkYXRhMiwgYmFzZXBhcmFtcywgYmFzZXBhcmFtczJ9KSB7XG4gICAgdGhpcy5kaWZmQWN0aXZlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGRpZmZWYWx1ZSA9ICh2YWwxLCB2YWwyKTogSVN1bW1hcnlFbnRyeURpZmZWYWx1ZSA9PiAhKFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwxKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsMikpICYmIHZhbDEgIT09IHZhbDIgPyB7dmFsMSwgdmFsMn0gOiBudWxsO1xuXG4gICAgaWYgKGJhc2VwYXJhbXMgJiYgYmFzZXBhcmFtczIpIHtcbiAgICAgIHRoaXMuYmFzZXBhcmFtcyA9IHt9IGFzIEJhc2VQYXJhbXM7XG4gICAgICBbJ2NvbnRlbnRGaWxlTmFtZScsICdjb250ZW50RmlsZVNpemUnLCAnbWltZUdyb3VwJ11cbiAgICAgICAgLmZvckVhY2goayA9PiBkaWZmVmFsdWUoYmFzZXBhcmFtc1trXSwgYmFzZXBhcmFtczJba10pICYmICh0aGlzLmJhc2VwYXJhbXNba10gPSBkaWZmVmFsdWUoYmFzZXBhcmFtc1trXSwgYmFzZXBhcmFtczJba10pKSk7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ZGF0YSAmJiBpbmRleGRhdGEyKSB7XG4gICAgICBjb25zdCBjb3JlVmFsdWVzMiA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEyLCAwLCB0cnVlKS5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoYWNjW2N1ci5xbmFtZV0gPSBjdXIsIGFjYyksIHt9KTtcbiAgICAgIGNvbnN0IGNvcmVWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaW5kZXhkYXRhLCAwLCB0cnVlKVxuICAgICAgICAubWFwKCh7bGFiZWwsIF92YWx1ZSwgcW5hbWUsIHJlZmVyZW5jZX0pID0+ICh7bGFiZWwsIHJlZmVyZW5jZSwgX3ZhbHVlOiBkaWZmVmFsdWUoX3ZhbHVlLCBjb3JlVmFsdWVzMltxbmFtZV0uX3ZhbHVlKX0pKVxuICAgICAgICAuZmlsdGVyKHYgPT4gdi5fdmFsdWUpO1xuXG4gICAgICBjb25zdCBkYXRhVmFsdWVzMiA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEyLCAxLCB0cnVlKS5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoYWNjW2N1ci5xbmFtZV0gPSBjdXIsIGFjYyksIHt9KTtcbiAgICAgIGNvbnN0IGRhdGFWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaW5kZXhkYXRhLCAxLCB0cnVlKVxuICAgICAgICAubWFwKCh7bGFiZWwsIF92YWx1ZSwgcW5hbWUsIHJlZmVyZW5jZX0pID0+ICh7bGFiZWwsIHJlZmVyZW5jZSwgX3ZhbHVlOiBkaWZmVmFsdWUoX3ZhbHVlLCBkYXRhVmFsdWVzMltxbmFtZV0uX3ZhbHVlKX0pKVxuICAgICAgICAuZmlsdGVyKHYgPT4gdi5fdmFsdWUpO1xuXG4gICAgICB0aGlzLmNvcmVWYWx1ZXMgPSBjb3JlVmFsdWVzO1xuICAgICAgdGhpcy5kYXRhVmFsdWVzID0gZGF0YVZhbHVlcztcbiAgICAgIHRoaXMubW9yZUluZm9BY2MgPSAhIWRhdGFWYWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHRoaXMuZW1wdHlTdGF0ZSA9IFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh0aGlzLmNvcmVWYWx1ZXMpICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh0aGlzLmRhdGFWYWx1ZXMpICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eShPYmplY3Qua2V5cyh0aGlzLmJhc2VwYXJhbXMgfHwge30pKTtcbiAgfVxuXG4gIHN0YXRpYyBjb2xsZWN0KGRhdGE6IHt9LCBlbGVtZW50czogYW55W10gPSBbXSwgY29sbGVjdGlvbjogYW55W10sIGZvcmNlID0gZmFsc2UpIHtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGlmIChlbC50eXBlICE9PSAnVEFCTEUnKSB7XG4gICAgICAgIGlmIChlbC5lbGVtZW50cykge1xuICAgICAgICAgIGNvbGxlY3Rpb24uY29uY2F0KEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQuY29sbGVjdChkYXRhLCBlbC5lbGVtZW50cywgY29sbGVjdGlvbiwgZm9yY2UpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQga2V5ID0gZWwubmFtZTtcbiAgICAgICAgICBpZiAoZm9yY2UgfHwgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAoQXJyYXkuaXNBcnJheShkYXRhW2tleV0pID8gZGF0YVtrZXldLmxlbmd0aCA6IHRydWUpKSkge1xuICAgICAgICAgICAgLy8gb25seSBhZGQgYXJyYXlzIHdoZW4gdGhleSBjb250YWluIGFueSB2YWx1ZXNcbiAgICAgICAgICAgIGNvbGxlY3Rpb24ucHVzaChPYmplY3QuYXNzaWduKHt9LCBlbCwge1xuICAgICAgICAgICAgICB2YWx1ZTogZGF0YVtrZXldLFxuICAgICAgICAgICAgICBtZXRhOiBkYXRhW2tleSArICdfbWV0YSddXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgb25WYWx1ZUNsaWNrKGV2ZW50OiBhbnksIGl0ZW06IGFueSA9IHt9KSB7XG4gICAgaWYgKGl0ZW0ucmVmZXJlbmNlIHx8IGl0ZW0udmVyc2lvbikge1xuICAgICAgdGhpcy5ncmlkQXBpLm9wZW5Sb3V0ZXJMaW5rKGV2ZW50LCAnZW50cnknKTtcbiAgICB9XG4gIH1cblxuICBnZXRWZXJzaW9uTGluayh2ZXJzaW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCBsaW5rID0gYHZlcnNpb25zLyR7dGhpcy5pdGVtLmlkfT90eXBlPSR7dGhpcy5pdGVtLnR5cGVOYW1lfSZ2ZXJzaW9uPSR7dmVyc2lvbn1gO1xuICAgIHJldHVybiBgPGEgY2xhc3M9XCJsaW5rIHJvdXRlci1saW5rXCIgaHJlZj1cIiR7bGlua31cIiB0YXJnZXQ9XCJfYmxhbmtcIiBvbmNsaWNrPVwicmV0dXJuIGZhbHNlO1wiPiR7dmVyc2lvbn08L2E+YDtcbiAgfVxuXG4gIGdldExpbmsobGFiZWw6IHN0cmluZykge1xuICAgIGNvbnN0IGxpbmsgPSBgb2JqZWN0LyR7dGhpcy5pdGVtLmlkfT90eXBlPSR7dGhpcy5pdGVtLnR5cGVOYW1lfWA7XG4gICAgcmV0dXJuIGA8YSBjbGFzcz1cImxpbmsgcm91dGVyLWxpbmtcIiBocmVmPVwiJHtsaW5rfVwiIHRhcmdldD1cIl9ibGFua1wiIG9uY2xpY2s9XCJyZXR1cm4gZmFsc2U7XCI+JHtsYWJlbH08L2E+YDtcbiAgfVxuXG4gIHByb2Nlc3NJbmRleERhdGEoaWQ6IEluZGV4RGF0YSwgaW5kZXggPSAwLCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIGlkICYmIGlkLmZvcm0gJiYgaWQuZGF0YSA/IHRoaXMuZ3JpZEFwaS5nZXRSZXNvbHZlZERlZnMoSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudC5jb2xsZWN0KGlkLmRhdGEsIGlkLmZvcm0uZWxlbWVudHNbaW5kZXhdLmVsZW1lbnRzLCBbXSwgZm9yY2UpKSA6IFtdO1xuICB9XG5cbiAgb25Nb3JlSW5mb1RvZ2dsZShpbmZvOiBib29sZWFuKSB7XG4gICAgdGhpcy5tb3JlSW5mb0FjYyA9IGluZm87XG4gIH1cblxuICBvblN0b3JhZ2VJbmZvVG9nZ2xlKGluZm86IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRhdGFJbmZvQWNjID0gaW5mbztcbiAgfVxuXG4gIHRyYWNrQnlJbmRleChpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGdldFN0b3JhZ2VJbmZvcygpIHtcbiAgICB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0QnlQYXJhbXMoe2lkOiB0aGlzLml0ZW0uaWQsIHR5cGU6IHRoaXMuaXRlbS50eXBlTmFtZSwgdmVyc2lvbjogdGhpcy5pdGVtLnZlcnNpb24sIHJlY3ljbGViaW46IHRydWUsIHdpdGhTdG9yYWdlSW5mbzogdHJ1ZX0pXG4gICAgICAucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcyksXG4gICAgICAgIGNhdGNoRXJyb3IoVXRpbHMuY2F0Y2hTa2lwKGVyciA9PiBlcnIuc3RhdHVzID09PSA0MDQpKVxuICAgICAgKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuc3RvcmFnZUluZm9zID0gcmVzLnN0b3JhZ2VJbmZvO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNVc2VyQWxsb3dlZFRvU2hvd1N0b3JhZ2VTZWN0aW9uID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmhhc1ByaXZpbGVnZSgnTUFOQUdFX1NUT1JBR0VTJyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleERhdGEge1xuICBmb3JtOiBhbnk7XG4gIGRhdGE6IGFueTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJlbXB0eS1jb250YWluZXJcIiAqbmdJZj1cImVtcHR5U3RhdGVcIj57eydlby5pbmRleGRhdGEuc3VtbWFyeS5uby5jaGFuZ2UnIHwgdHJhbnNsYXRlfX08L2Rpdj5cbjxkaXYgY2xhc3M9XCJpbmRleGRhdGEtc3VtbWFyeVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJjb3JlLXNlY3Rpb25cIiAqbmdJZj1cImNvcmVWYWx1ZXM/Lmxlbmd0aFwiPlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvcmVWYWx1ZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLl92YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2xpY2tlZCk9XCJvblZhbHVlQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiaXRlbSAmJiBpdGVtLmNvbnRleHRGb2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmluZGV4ZGF0YS5zdW1tYXJ5LmZvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldExpbmsoaXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlID8gaXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlIDogaXRlbS5jb250ZXh0Rm9sZGVyLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2xpY2tlZCk9XCJvblZhbHVlQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGF0YS1zZWN0aW9uXCIgKm5nSWY9XCJkYXRhVmFsdWVzICYmIGRhdGFWYWx1ZXMubGVuZ3RoXCI+XG4gICAgPGVvLXNpbXBsZS1hY2NvcmRpb24gI2RhdGFBY2NvcmRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyXT1cIignZW8uaW5kZXhkYXRhLnN1bW1hcnkubW9yZScgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwibW9yZUluZm9BY2NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RDaGFuZ2UpPVwib25Nb3JlSW5mb1RvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YVwiPlxuXG4gICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhVmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLl92YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImJhc2VwYXJhbXMtc2VjdGlvblwiICpuZ0lmPVwiYmFzZXBhcmFtc1wiPlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiYmFzZXBhcmFtcy5tb2RpZmllZE9uICYmICFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5tb2RpZmllZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5tb2RpZmllZE9uIHwgbG9jYWxlRGF0ZVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubW9kaWZpZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMubW9kaWZpZWRCeVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCJiYXNlcGFyYW1zLmNyZWF0ZWRPbiAmJiAhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uY3JlYXRlZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5jcmVhdGVkT24gfCBsb2NhbGVEYXRlXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cIiFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5jcmVhdG9yJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmNyZWF0ZWRCeVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdW1tYXJ5LnZlcnNpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldFZlcnNpb25MaW5rKGJhc2VwYXJhbXMudmVyc2lvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwge3ZlcnNpb246IGJhc2VwYXJhbXMudmVyc2lvbn0pXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uZmlsZW5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuY29udGVudEZpbGVOYW1lXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cImJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5maWxlc2l6ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGlmZkFjdGl2ZSA/IHt2YWwxOiBiYXNlcGFyYW1zLmNvbnRlbnRGaWxlU2l6ZVsndmFsMSddIHwgZmlsZVNpemUsIHZhbDI6IGJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplWyd2YWwyJ10gfCBmaWxlU2l6ZX0gOiAoYmFzZXBhcmFtcy5jb250ZW50RmlsZVNpemUgfCBmaWxlU2l6ZSlcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubWltZWdyb3VwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLm1pbWVHcm91cFwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5taW1ldHlwZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5taW1lVHlwZVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uaWQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuaWRcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiYmFzZXBhcmFtcy5jb250ZW50SWQgIT09IGJhc2VwYXJhbXMuaWQgJiYgIWRpZmZBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmNvbnRlbnRJZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5jb250ZW50SWRcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic3RvcmFnZWluZm9cIiAqbmdJZj1cInN0b3JhZ2VJbmZvcz8ubGVuZ3RoXCI+XG4gICAgPGVvLXNpbXBsZS1hY2NvcmRpb24gI3N0b3JhZ2VBY2NvcmRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyXT1cIignZW8uc3RhdGUuc2V0dGluZ3Muc3RvcmFnZWluZm8nIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImRhdGFJbmZvQWNjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0Q2hhbmdlKT1cIm9uU3RvcmFnZUluZm9Ub2dnbGUoJGV2ZW50KVwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic3RvcmFnZWluZm8tZW50cnkgYmFzZXBhcmFtcy1zZWN0aW9uXCI+XG4gICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmRpZ2VzdCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuZGlnZXN0XCI+XG4gICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInN0b3JhZ2VpbmZvLWVudHJ5IGJhc2VwYXJhbXMtc2VjdGlvblwiICpuZ0Zvcj1cImxldCBzdEluZm8gb2Ygc3RvcmFnZUluZm9zOyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5yZXRlbnRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8ucmV0ZW50aW9uIHwgbG9jYWxlRGF0ZSA6ICdlb1Nob3J0RGF0ZSdcIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ub2JqZWN0LnN0b3JhZ2VpbmZvLnBlcm1hbmVuY2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8ucGVybWFuZW5jZVwiPlxuICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8uc2V0bmFtZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5zZXRuYW1lXCI+XG4gICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5zdG9yYWdlbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5zdG9yYWdlbmFtZVwiPlxuICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8ubG9jYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8ubG9jYXRpb25cIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBd0IsS0FBSyxFQUEwQixNQUFNLGNBQWMsQ0FBQztBQUduRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7OztBQVM1RCxJQUFNLHlCQUF5QixpQ0FBL0IsTUFBTSx5QkFBeUI7SUFpQnBDLElBQ0ksU0FBUyxDQUFDLEVBQWE7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENB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QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRU8sSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXRpbGl0aWVzU2VydmljZX0gZnJvbSAnLi8uLi8uLi91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIFZpZXdDaGlsZCwgT25Jbml0LCBDaGFuZ2VEZXRlY3RvclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VQYXJhbXMsIERtc09iamVjdCwgVXRpbHMsIFVzZXJTZXJ2aWNlLCBEbXNTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2ltcGxlQWNjb3JkaW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi9hY2NvcmRpb24vc2ltcGxlLWFjY29yZGlvbi9zaW1wbGUtYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0lTdW1tYXJ5RW50cnlEaWZmVmFsdWV9IGZyb20gJy4vaW5kZXhkYXRhLXN1bW1hcnktZW50cnkuaW50ZXJmYWNlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1pbmRleGRhdGEtc3VtbWFyeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luZGV4ZGF0YS1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvbjogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfaW5kZXhEYXRhOiBJbmRleERhdGE7XG5cbiAgY29yZVZhbHVlczogYW55W107XG4gIGRhdGFWYWx1ZXM6IGFueVtdO1xuICBzdG9yYWdlSW5mb3M6IGFueVtdO1xuICBpdGVtOiBEbXNPYmplY3Q7XG4gIG1vcmVJbmZvQWNjID0gZmFsc2U7XG4gIGRhdGFJbmZvQWNjID0gZmFsc2U7XG4gIGRpZmZBY3RpdmUgPSBmYWxzZTtcbiAgZW1wdHlTdGF0ZSA9IGZhbHNlO1xuXG4gIC8vIEBWaWV3Q2hpbGQoJ2RhdGFBY2NvcmRpb24nKSBkYXRhQWNjb3JkaW9uOiBTaW1wbGVBY2NvcmRpb25Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3N0b3JhZ2VBY2NvcmRpb24nKSBzdG9yYWdlQWNjb3JkaW9uOiBTaW1wbGVBY2NvcmRpb25Db21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgc2V0IGluZGV4ZGF0YShpZDogSW5kZXhEYXRhKSB7XG4gICAgdGhpcy5faW5kZXhEYXRhID0gaWQ7XG4gICAgdGhpcy5jb3JlVmFsdWVzID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGlkLCAwKS5maWx0ZXIodmFsdWUgPT4gIXZhbHVlLm5hbWUuc3RhcnRzV2l0aCgneXV2JykpO1xuICAgIHRoaXMuZGF0YVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpZCwgMSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZG1zT2JqZWN0KGl0ZW06IERtc09iamVjdCkge1xuICAgIHRoaXMuaXRlbSA9IGl0ZW07XG4gICAgdGhpcy5zdG9yYWdlSW5mb3MgPSBudWxsO1xuICAgIGlmKGl0ZW0pXG4gICAgdGhpcy5nZXRTdG9yYWdlSW5mb3MoKTtcbiAgICBpZiAodGhpcy5zdG9yYWdlQWNjb3JkaW9uKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VBY2NvcmRpb24uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBiYXNlcGFyYW1zOiBCYXNlUGFyYW1zO1xuICBASW5wdXQoKSBlbmFibGVWZXJzaW9ucyA9IHRydWU7XG5cbiAgQElucHV0KCkgc2V0IGRpZmYoe2luZGV4ZGF0YSwgaW5kZXhkYXRhMiwgYmFzZXBhcmFtcywgYmFzZXBhcmFtczJ9KSB7XG4gICAgdGhpcy5kaWZmQWN0aXZlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGRpZmZWYWx1ZSA9ICh2YWwxLCB2YWwyKTogSVN1bW1hcnlFbnRyeURpZmZWYWx1ZSA9PiAhKFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwxKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsMikpICYmIHZhbDEgIT09IHZhbDIgPyB7dmFsMSwgdmFsMn0gOiBudWxsO1xuXG4gICAgaWYgKGJhc2VwYXJhbXMgJiYgYmFzZXBhcmFtczIpIHtcbiAgICAgIHRoaXMuYmFzZXBhcmFtcyA9IHt9IGFzIEJhc2VQYXJhbXM7XG4gICAgICBbJ2NvbnRlbnRGaWxlTmFtZScsICdjb250ZW50RmlsZVNpemUnLCAnbWltZUdyb3VwJ11cbiAgICAgICAgLmZvckVhY2goayA9PiBkaWZmVmFsdWUoYmFzZXBhcmFtc1trXSwgYmFzZXBhcmFtczJba10pICYmICh0aGlzLmJhc2VwYXJhbXNba10gPSBkaWZmVmFsdWUoYmFzZXBhcmFtc1trXSwgYmFzZXBhcmFtczJba10pKSk7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ZGF0YSAmJiBpbmRleGRhdGEyKSB7XG4gICAgICBjb25zdCBjb3JlVmFsdWVzMiA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEyLCAwLCB0cnVlKS5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoYWNjW2N1ci5xbmFtZV0gPSBjdXIsIGFjYyksIHt9KTtcbiAgICAgIGNvbnN0IGNvcmVWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaW5kZXhkYXRhLCAwLCB0cnVlKVxuICAgICAgICAubWFwKCh7bGFiZWwsIF92YWx1ZSwgcW5hbWUsIHJlZmVyZW5jZX0pID0+ICh7bGFiZWwsIHJlZmVyZW5jZSwgX3ZhbHVlOiBkaWZmVmFsdWUoX3ZhbHVlLCBjb3JlVmFsdWVzMltxbmFtZV0uX3ZhbHVlKX0pKVxuICAgICAgICAuZmlsdGVyKHYgPT4gdi5fdmFsdWUpO1xuXG4gICAgICBjb25zdCBkYXRhVmFsdWVzMiA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEyLCAxLCB0cnVlKS5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoYWNjW2N1ci5xbmFtZV0gPSBjdXIsIGFjYyksIHt9KTtcbiAgICAgIGNvbnN0IGRhdGFWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaW5kZXhkYXRhLCAxLCB0cnVlKVxuICAgICAgICAubWFwKCh7bGFiZWwsIF92YWx1ZSwgcW5hbWUsIHJlZmVyZW5jZX0pID0+ICh7bGFiZWwsIHJlZmVyZW5jZSwgX3ZhbHVlOiBkaWZmVmFsdWUoX3ZhbHVlLCBkYXRhVmFsdWVzMltxbmFtZV0uX3ZhbHVlKX0pKVxuICAgICAgICAuZmlsdGVyKHYgPT4gdi5fdmFsdWUpO1xuXG4gICAgICB0aGlzLmNvcmVWYWx1ZXMgPSBjb3JlVmFsdWVzO1xuICAgICAgdGhpcy5kYXRhVmFsdWVzID0gZGF0YVZhbHVlcztcbiAgICAgIHRoaXMubW9yZUluZm9BY2MgPSAhIWRhdGFWYWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHRoaXMuZW1wdHlTdGF0ZSA9IFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh0aGlzLmNvcmVWYWx1ZXMpICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh0aGlzLmRhdGFWYWx1ZXMpICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eShPYmplY3Qua2V5cyh0aGlzLmJhc2VwYXJhbXMgfHwge30pKTtcbiAgfVxuXG4gIHN0YXRpYyBjb2xsZWN0KGRhdGE6IHt9LCBlbGVtZW50czogYW55W10gPSBbXSwgY29sbGVjdGlvbjogYW55W10sIGZvcmNlID0gZmFsc2UpIHtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGlmIChlbC50eXBlICE9PSAnVEFCTEUnKSB7XG4gICAgICAgIGlmIChlbC5lbGVtZW50cykge1xuICAgICAgICAgIGNvbGxlY3Rpb24uY29uY2F0KEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQuY29sbGVjdChkYXRhLCBlbC5lbGVtZW50cywgY29sbGVjdGlvbiwgZm9yY2UpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQga2V5ID0gZWwubmFtZTtcbiAgICAgICAgICBpZiAoZm9yY2UgfHwgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAoQXJyYXkuaXNBcnJheShkYXRhW2tleV0pID8gZGF0YVtrZXldLmxlbmd0aCA6IHRydWUpKSkge1xuICAgICAgICAgICAgLy8gb25seSBhZGQgYXJyYXlzIHdoZW4gdGhleSBjb250YWluIGFueSB2YWx1ZXNcbiAgICAgICAgICAgIGNvbGxlY3Rpb24ucHVzaChPYmplY3QuYXNzaWduKHt9LCBlbCwge1xuICAgICAgICAgICAgICB2YWx1ZTogZGF0YVtrZXldLFxuICAgICAgICAgICAgICBtZXRhOiBkYXRhW2tleSArICdfbWV0YSddXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgb25WYWx1ZUNsaWNrKGV2ZW50OiBhbnksIGl0ZW06IGFueSA9IHt9KSB7XG4gICAgaWYgKGl0ZW0ucmVmZXJlbmNlIHx8IGl0ZW0udmVyc2lvbikge1xuICAgICAgdGhpcy5ncmlkQXBpLm9wZW5Sb3V0ZXJMaW5rKGV2ZW50LCAnZW50cnknKTtcbiAgICB9XG4gIH1cblxuICBnZXRWZXJzaW9uTGluayh2ZXJzaW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCBsaW5rID0gYHZlcnNpb25zLyR7dGhpcy5pdGVtLmlkfT90eXBlPSR7dGhpcy5pdGVtLnR5cGVOYW1lfSZ2ZXJzaW9uPSR7dmVyc2lvbn1gO1xuICAgIHJldHVybiBgPGEgY2xhc3M9XCJsaW5rIHJvdXRlci1saW5rXCIgaHJlZj1cIiR7bGlua31cIiB0YXJnZXQ9XCJfYmxhbmtcIiBvbmNsaWNrPVwicmV0dXJuIGZhbHNlO1wiPiR7dmVyc2lvbn08L2E+YDtcbiAgfVxuXG4gIGdldExpbmsobGFiZWw6IHN0cmluZykge1xuICAgIGNvbnN0IGxpbmsgPSBgb2JqZWN0LyR7dGhpcy5pdGVtLmlkfT90eXBlPSR7dGhpcy5pdGVtLnR5cGVOYW1lfWA7XG4gICAgcmV0dXJuIGA8YSBjbGFzcz1cImxpbmsgcm91dGVyLWxpbmtcIiBocmVmPVwiJHtsaW5rfVwiIHRhcmdldD1cIl9ibGFua1wiIG9uY2xpY2s9XCJyZXR1cm4gZmFsc2U7XCI+JHtsYWJlbH08L2E+YDtcbiAgfVxuXG4gIHByb2Nlc3NJbmRleERhdGEoaWQ6IEluZGV4RGF0YSwgaW5kZXggPSAwLCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIGlkICYmIGlkLmZvcm0gJiYgaWQuZGF0YSA/IHRoaXMuZ3JpZEFwaS5nZXRSZXNvbHZlZERlZnMoSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudC5jb2xsZWN0KGlkLmRhdGEsIGlkLmZvcm0uZWxlbWVudHNbaW5kZXhdLmVsZW1lbnRzLCBbXSwgZm9yY2UpKSA6IFtdO1xuICB9XG5cbiAgb25Nb3JlSW5mb1RvZ2dsZShpbmZvOiBib29sZWFuKSB7XG4gICAgdGhpcy5tb3JlSW5mb0FjYyA9IGluZm87XG4gIH1cblxuICBvblN0b3JhZ2VJbmZvVG9nZ2xlKGluZm86IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRhdGFJbmZvQWNjID0gaW5mbztcbiAgfVxuXG4gIHRyYWNrQnlJbmRleChpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGdldFN0b3JhZ2VJbmZvcygpIHtcbiAgICB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0QnlQYXJhbXMoe2lkOiB0aGlzLml0ZW0uaWQsIHR5cGU6IHRoaXMuaXRlbS50eXBlTmFtZSwgdmVyc2lvbjogdGhpcy5pdGVtLnZlcnNpb24sIHJlY3ljbGViaW46IHRydWUsIHdpdGhTdG9yYWdlSW5mbzogdHJ1ZX0pXG4gICAgICAucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcyksXG4gICAgICAgIGNhdGNoRXJyb3IoVXRpbHMuY2F0Y2hTa2lwKGVyciA9PiBlcnIuc3RhdHVzID09PSA0MDQpKVxuICAgICAgKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuc3RvcmFnZUluZm9zID0gcmVzLnN0b3JhZ2VJbmZvO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNVc2VyQWxsb3dlZFRvU2hvd1N0b3JhZ2VTZWN0aW9uID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmhhc1ByaXZpbGVnZSgnTUFOQUdFX1NUT1JBR0VTJyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleERhdGEge1xuICBmb3JtOiBhbnk7XG4gIGRhdGE6IGFueTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJlbXB0eS1jb250YWluZXJcIiAqbmdJZj1cImVtcHR5U3RhdGVcIj57eydlby5pbmRleGRhdGEuc3VtbWFyeS5uby5jaGFuZ2UnIHwgdHJhbnNsYXRlfX08L2Rpdj5cbjxkaXYgY2xhc3M9XCJpbmRleGRhdGEtc3VtbWFyeVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJjb3JlLXNlY3Rpb25cIiAqbmdJZj1cImNvcmVWYWx1ZXM/Lmxlbmd0aFwiPlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvcmVWYWx1ZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLl92YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2xpY2tlZCk9XCJvblZhbHVlQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiaXRlbSAmJiBpdGVtLmNvbnRleHRGb2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmluZGV4ZGF0YS5zdW1tYXJ5LmZvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldExpbmsoaXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlID8gaXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlIDogaXRlbS5jb250ZXh0Rm9sZGVyLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2xpY2tlZCk9XCJvblZhbHVlQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGF0YS1zZWN0aW9uXCIgKm5nSWY9XCJkYXRhVmFsdWVzICYmIGRhdGFWYWx1ZXMubGVuZ3RoXCI+XG4gICAgPGVvLXNpbXBsZS1hY2NvcmRpb24gI2RhdGFBY2NvcmRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyXT1cIignZW8uaW5kZXhkYXRhLnN1bW1hcnkubW9yZScgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwibW9yZUluZm9BY2NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RDaGFuZ2UpPVwib25Nb3JlSW5mb1RvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YVwiPlxuXG4gICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhVmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLl92YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImJhc2VwYXJhbXMtc2VjdGlvblwiICpuZ0lmPVwiYmFzZXBhcmFtc1wiPlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiYmFzZXBhcmFtcy5tb2RpZmllZE9uICYmICFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5tb2RpZmllZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5tb2RpZmllZE9uIHwgbG9jYWxlRGF0ZVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubW9kaWZpZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMubW9kaWZpZWRCeVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCJiYXNlcGFyYW1zLmNyZWF0ZWRPbiAmJiAhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uY3JlYXRlZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5jcmVhdGVkT24gfCBsb2NhbGVEYXRlXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cIiFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5jcmVhdG9yJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmNyZWF0ZWRCeVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdW1tYXJ5LnZlcnNpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldFZlcnNpb25MaW5rKGJhc2VwYXJhbXMudmVyc2lvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwge3ZlcnNpb246IGJhc2VwYXJhbXMudmVyc2lvbn0pXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uZmlsZW5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuY29udGVudEZpbGVOYW1lXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cImJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5maWxlc2l6ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGlmZkFjdGl2ZSA/IHt2YWwxOiBiYXNlcGFyYW1zLmNvbnRlbnRGaWxlU2l6ZVsndmFsMSddIHwgZmlsZVNpemUsIHZhbDI6IGJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplWyd2YWwyJ10gfCBmaWxlU2l6ZX0gOiAoYmFzZXBhcmFtcy5jb250ZW50RmlsZVNpemUgfCBmaWxlU2l6ZSlcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubWltZWdyb3VwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLm1pbWVHcm91cFwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5taW1ldHlwZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5taW1lVHlwZVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uaWQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuaWRcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiYmFzZXBhcmFtcy5jb250ZW50SWQgIT09IGJhc2VwYXJhbXMuaWQgJiYgIWRpZmZBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmNvbnRlbnRJZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5jb250ZW50SWRcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic3RvcmFnZWluZm9cIiAqbmdJZj1cInN0b3JhZ2VJbmZvcz8ubGVuZ3RoICYmIGlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvblwiPlxuICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uICNzdG9yYWdlQWNjb3JkaW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlcl09XCIoJ2VvLnN0YXRlLnNldHRpbmdzLnN0b3JhZ2VpbmZvJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJkYXRhSW5mb0FjY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdENoYW5nZSk9XCJvblN0b3JhZ2VJbmZvVG9nZ2xlKCRldmVudClcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cInN0b3JhZ2VpbmZvLWVudHJ5IGJhc2VwYXJhbXMtc2VjdGlvblwiPlxuICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5kaWdlc3QnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmRpZ2VzdFwiPlxuICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9yYWdlaW5mby1lbnRyeSBiYXNlcGFyYW1zLXNlY3Rpb25cIiAqbmdGb3I9XCJsZXQgc3RJbmZvIG9mIHN0b3JhZ2VJbmZvczsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XG4gICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8ucmV0ZW50aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RJbmZvLnJldGVudGlvbiB8IGxvY2FsZURhdGUgOiAnZW9TaG9ydERhdGUnXCI+XG4gICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5wZXJtYW5lbmNlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RJbmZvLnBlcm1hbmVuY2VcIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ub2JqZWN0LnN0b3JhZ2VpbmZvLnNldG5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8uc2V0bmFtZVwiPlxuICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8uc3RvcmFnZW5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8uc3RvcmFnZW5hbWVcIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ub2JqZWN0LnN0b3JhZ2VpbmZvLmxvY2F0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RJbmZvLmxvY2F0aW9uXCI+XG4gICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG4gICAgICA8L2Rpdj5cbiAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
|