@eqproject/eqp-dynamic-module 2.4.42 → 2.4.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.mjs +9 -3
- package/esm2020/lib/components/private/dbgetter/dbgetter.component.mjs +3 -3
- package/esm2020/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +3 -3
- package/esm2020/lib/components/private/form-records/list-view-form-record/single-record/single-record.component.mjs +11 -3
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +22 -8
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +22 -8
- package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +4 -1
- package/lib/components/private/form-records/list-view-form-record/single-record/single-record.component.d.ts +5 -1
- package/package.json +1 -1
|
@@ -83,6 +83,7 @@ export class EqpDynamicModuleComponent {
|
|
|
83
83
|
this.afterDeleteRecord = new EventEmitter();
|
|
84
84
|
this.dragStarted = new EventEmitter();
|
|
85
85
|
this.dragReleased = new EventEmitter();
|
|
86
|
+
this.out = new EventEmitter();
|
|
86
87
|
this.form = new Form();
|
|
87
88
|
this.lastform = new Form();
|
|
88
89
|
this.FormTypeEnum = FormTypeEnum;
|
|
@@ -378,12 +379,15 @@ export class EqpDynamicModuleComponent {
|
|
|
378
379
|
onDragReleased() {
|
|
379
380
|
this.dragReleased.emit();
|
|
380
381
|
}
|
|
382
|
+
onExternalComponentOut(ev) {
|
|
383
|
+
this.out.emit(ev);
|
|
384
|
+
}
|
|
381
385
|
}
|
|
382
386
|
EqpDynamicModuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EqpDynamicModuleComponent, deps: [{ token: i1.UtilityHelperService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
383
|
-
EqpDynamicModuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EqpDynamicModuleComponent, selector: "eqp-dynamic-module", inputs: { debugMode: "debugMode", configurations: "configurations", formID: "formID", starterViewMode: "starterViewMode", userID: "userID", showTitle: "showTitle", showBackButton: "showBackButton", showSaveButton: "showSaveButton", values: "values", FormJSON: "FormJSON", externalButtons: "externalButtons", listViewRecordTitle: "listViewRecordTitle", defaultListViewFunction: "defaultListViewFunction", defaultListActions: "defaultListActions", onSaveBackToList: "onSaveBackToList", onBackTo: "onBackTo", filterResultViewMode: "filterResultViewMode", additionalParams: "additionalParams", additionalInfo: "additionalInfo", updateInfo: "updateInfo", prefilterParams: "prefilterParams", showNewSearchButton: "showNewSearchButton", answerToDuplicateId: "answerToDuplicateId", highlightFilter: "highlightFilter", QueryEditorComponent: "QueryEditorComponent" }, outputs: { saveRecord: "saveRecord", deleteRecord: "deleteRecord", SaveJSON: "SaveJSON", afterFilter: "afterFilter", afterSaveRecord: "afterSaveRecord", afterDeleteRecord: "afterDeleteRecord", dragStarted: "dragStarted", dragReleased: "dragReleased" }, ngImport: i0, template: "<eqp-dynamic-module-spinner></eqp-dynamic-module-spinner>\r\n\r\n<!-- [record]=\"'b3d943c0-9c01-4973-948b-7aa418634f72'\" -->\r\n<view-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.VIEW\"\r\n class=\"dynamic-module-view\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [record]=\"selectedRecord.ID\"\r\n (goBackEvent)=\"onGoBack()\"\r\n>\r\n</view-form-record>\r\n\r\n<graphs\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.GRAPHS\"\r\nclass=\"dynamic-module-view\"\r\n[endPointConfiguration]=\"endPointConfiguration\"\r\n[form]=\"form\"\r\n[formID]=\"formID\"\r\n[userID]=\"userID\"\r\n[configurations]=\"dynamicModuleCompileConfig\"\r\n>\r\n</graphs>\r\n\r\n<filter-form-statistic\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.FILTER\"\r\n class=\"dynamic-module-compile\"\r\n [form]=\"form\"\r\n [formID]=\"formID\"\r\n [record]=\"selectedRecord\"\r\n [onlyView]=\"onlyView\"\r\n [defaultListActions]=\"defaultListActions\"\r\n [filterResultViewMode]=\"filterResultViewMode\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [userID]=\"userID\"\r\n\r\n [configurations]=\"dynamicModuleCompileConfig\"\r\n (afterFilter)=\"onAfterFilter($event)\"\r\n>\r\n</filter-form-statistic>\r\n\r\n<add-form-record\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.COMPILE\"\r\n class=\"dynamic-module-compile\"\r\n [form]=\"form\"\r\n [record]=\"selectedRecord\"\r\n [onlyView]=\"onlyView\"\r\n [isDuplicate]=\"isDuplicate\"\r\n\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [userID]=\"userID\"\r\n\r\n [configurations]=\"dynamicModuleCompileConfig\"\r\n\r\n (saveRecordEvent)=\"onSaveRecord($event)\"\r\n (afterSaveRecordEvent)=\"onAfterSaveRecord($event)\"\r\n>\r\n</add-form-record>\r\n\r\n<list-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.LIST\"\r\n class=\"dynamic-module-list\"\r\n [formID]=\"formID\"\r\n\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n\r\n [configurations]=\"dynamicModuleListConfig\"\r\n [externalButtons]=\"externalButtons\"\r\n\r\n (onViewRecord)=\"onViewRecord($event)\"\r\n (onAddViewEditRecord)=\"onAddViewEditRecord($event)\"\r\n (onDeleteRecord)=\"onDeleteRecord($event)\"\r\n (onAfterDeleteRecord)=\"onAfterDeleteRecord($event)\"\r\n>\r\n</list-form-record>\r\n\r\n<repair-form-fields\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.REPAIR\"\r\n class=\"dynamic-module-repair\"\r\n [formID]=\"formID\"\r\n\r\n [configurations]=\"dynamicModuleRepairConfig\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n\r\n (onSaveJson)=\"onSaveJson($event)\"\r\n>\r\n</repair-form-fields>\r\n\r\n<list-view-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.LISTWIEW\"\r\n class=\"dynamic-module-list-view\"\r\n [configurations]=\"dynamicModuleListConfig\"\r\n [compileConfigurations]=\"dynamicModuleCompileConfig\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [formID]=\"formID\"\r\n [userID]=\"userID\"\r\n [highlightFilter]=\"highlightFilter\"\r\n [defaultListViewFunction]=\"defaultListViewFunction\"\r\n [externalButtons]=\"externalButtons\"\r\n [onlyView]=\"!defaultListActions.edit\"\r\n\r\n (onAddViewEditRecord)=\"onAddViewEditRecord($event)\"\r\n (onDeleteRecord)=\"onDeleteRecord($event)\"\r\n (saveRecordEvent)=\"onSaveRecord($event)\"\r\n (afterSaveRecordEvent)=\"onAfterSaveRecord($event)\"\r\n (dragStarted)=\"onDragStarted($event)\"\r\n (dragReleased)=\"onDragReleased()\"\r\n >\r\n</list-view-form-record>\r\n", styles: ["::ng-deep mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ListFormRecordComponent, selector: "list-form-record", inputs: ["configurations", "endPointConfiguration", "formID", "form", "externalButtons"], outputs: ["onViewRecord", "onAddViewEditRecord", "onDeleteRecord", "onAfterDeleteRecord"] }, { kind: "component", type: i4.ListViewFormRecordComponent, selector: "list-view-form-record", inputs: ["configurations", "compileConfigurations", "endPointConfiguration", "userID", "formID", "form", "defaultListViewFunction", "externalButtons", "onlyView", "records", "highlightFilter", "QueryEditorComponent"], outputs: ["onAddViewEditRecord", "onDeleteRecord", "saveRecordEvent", "afterSaveRecordEvent", "dragStarted", "dragReleased", "out"] }, { kind: "component", type: i5.AddFormRecordComponent, selector: "add-form-record", inputs: ["configurations", "endPointConfiguration", "userID", "formID", "form", "record", "onlyView", "isDuplicate", "inConfig", "QueryEditorComponent"], outputs: ["saveRecordEvent", "afterSaveRecordEvent", "out"] }, { kind: "component", type: i6.ViewFormRecordComponent, selector: "view-form-record", inputs: ["endPointConfiguration", "record", "showBackButton"], outputs: ["goBackEvent"] }, { kind: "component", type: i7.SpinnerComponent, selector: "eqp-dynamic-module-spinner" }, { kind: "component", type: i8.RepairFormFieldsComponent, selector: "repair-form-fields", inputs: ["configurations", "formID", "endPointConfiguration"], outputs: ["onSaveJson"] }, { kind: "component", type: i9.FilterFormStatisticComponent, selector: "filter-form-statistic", inputs: ["configurations", "endPointConfiguration", "userID", "externalButtons", "formID", "form", "record", "onlyView", "defaultListActions", "filterResultViewMode"], outputs: ["saveRecordEvent", "afterSaveRecordEvent", "afterFilter"] }, { kind: "component", type: i10.GraphsComponent, selector: "graphs", inputs: ["configurations", "endPointConfiguration", "userID", "formID", "form"] }] });
|
|
387
|
+
EqpDynamicModuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EqpDynamicModuleComponent, selector: "eqp-dynamic-module", inputs: { debugMode: "debugMode", configurations: "configurations", formID: "formID", starterViewMode: "starterViewMode", userID: "userID", showTitle: "showTitle", showBackButton: "showBackButton", showSaveButton: "showSaveButton", values: "values", FormJSON: "FormJSON", externalButtons: "externalButtons", listViewRecordTitle: "listViewRecordTitle", defaultListViewFunction: "defaultListViewFunction", defaultListActions: "defaultListActions", onSaveBackToList: "onSaveBackToList", onBackTo: "onBackTo", filterResultViewMode: "filterResultViewMode", additionalParams: "additionalParams", additionalInfo: "additionalInfo", updateInfo: "updateInfo", prefilterParams: "prefilterParams", showNewSearchButton: "showNewSearchButton", answerToDuplicateId: "answerToDuplicateId", highlightFilter: "highlightFilter", QueryEditorComponent: "QueryEditorComponent" }, outputs: { saveRecord: "saveRecord", deleteRecord: "deleteRecord", SaveJSON: "SaveJSON", afterFilter: "afterFilter", afterSaveRecord: "afterSaveRecord", afterDeleteRecord: "afterDeleteRecord", dragStarted: "dragStarted", dragReleased: "dragReleased", out: "out" }, ngImport: i0, template: "<eqp-dynamic-module-spinner></eqp-dynamic-module-spinner>\r\n\r\n<!-- [record]=\"'b3d943c0-9c01-4973-948b-7aa418634f72'\" -->\r\n<view-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.VIEW\"\r\n class=\"dynamic-module-view\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [record]=\"selectedRecord.ID\"\r\n (goBackEvent)=\"onGoBack()\"\r\n>\r\n</view-form-record>\r\n\r\n<graphs\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.GRAPHS\"\r\nclass=\"dynamic-module-view\"\r\n[endPointConfiguration]=\"endPointConfiguration\"\r\n[form]=\"form\"\r\n[formID]=\"formID\"\r\n[userID]=\"userID\"\r\n[configurations]=\"dynamicModuleCompileConfig\"\r\n>\r\n</graphs>\r\n\r\n<filter-form-statistic\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.FILTER\"\r\n class=\"dynamic-module-compile\"\r\n [form]=\"form\"\r\n [formID]=\"formID\"\r\n [record]=\"selectedRecord\"\r\n [onlyView]=\"onlyView\"\r\n [defaultListActions]=\"defaultListActions\"\r\n [filterResultViewMode]=\"filterResultViewMode\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [userID]=\"userID\"\r\n\r\n [configurations]=\"dynamicModuleCompileConfig\"\r\n (afterFilter)=\"onAfterFilter($event)\"\r\n>\r\n</filter-form-statistic>\r\n\r\n<add-form-record\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.COMPILE\"\r\n class=\"dynamic-module-compile\"\r\n [form]=\"form\"\r\n [record]=\"selectedRecord\"\r\n [onlyView]=\"onlyView\"\r\n [isDuplicate]=\"isDuplicate\"\r\n\r\n [QueryEditorComponent]=\"QueryEditorComponent\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [userID]=\"userID\"\r\n\r\n [configurations]=\"dynamicModuleCompileConfig\"\r\n\r\n (out)=\"onExternalComponentOut($event)\"\r\n (saveRecordEvent)=\"onSaveRecord($event)\"\r\n (afterSaveRecordEvent)=\"onAfterSaveRecord($event)\"\r\n>\r\n</add-form-record>\r\n\r\n<list-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.LIST\"\r\n class=\"dynamic-module-list\"\r\n [formID]=\"formID\"\r\n\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n\r\n [configurations]=\"dynamicModuleListConfig\"\r\n [externalButtons]=\"externalButtons\"\r\n\r\n (onViewRecord)=\"onViewRecord($event)\"\r\n (onAddViewEditRecord)=\"onAddViewEditRecord($event)\"\r\n (onDeleteRecord)=\"onDeleteRecord($event)\"\r\n (onAfterDeleteRecord)=\"onAfterDeleteRecord($event)\"\r\n>\r\n</list-form-record>\r\n\r\n<repair-form-fields\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.REPAIR\"\r\n class=\"dynamic-module-repair\"\r\n [formID]=\"formID\"\r\n\r\n [configurations]=\"dynamicModuleRepairConfig\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n\r\n (onSaveJson)=\"onSaveJson($event)\"\r\n>\r\n</repair-form-fields>\r\n\r\n<list-view-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.LISTWIEW\"\r\n class=\"dynamic-module-list-view\"\r\n [configurations]=\"dynamicModuleListConfig\"\r\n [compileConfigurations]=\"dynamicModuleCompileConfig\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [formID]=\"formID\"\r\n [userID]=\"userID\"\r\n [highlightFilter]=\"highlightFilter\"\r\n [defaultListViewFunction]=\"defaultListViewFunction\"\r\n [externalButtons]=\"externalButtons\"\r\n [onlyView]=\"!defaultListActions.edit\"\r\n [QueryEditorComponent]=\"QueryEditorComponent\"\r\n\r\n (onAddViewEditRecord)=\"onAddViewEditRecord($event)\"\r\n (onDeleteRecord)=\"onDeleteRecord($event)\"\r\n (saveRecordEvent)=\"onSaveRecord($event)\"\r\n (afterSaveRecordEvent)=\"onAfterSaveRecord($event)\"\r\n (dragStarted)=\"onDragStarted($event)\"\r\n (dragReleased)=\"onDragReleased()\"\r\n >\r\n</list-view-form-record>\r\n", styles: ["::ng-deep mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ListFormRecordComponent, selector: "list-form-record", inputs: ["configurations", "endPointConfiguration", "formID", "form", "externalButtons"], outputs: ["onViewRecord", "onAddViewEditRecord", "onDeleteRecord", "onAfterDeleteRecord"] }, { kind: "component", type: i4.ListViewFormRecordComponent, selector: "list-view-form-record", inputs: ["configurations", "compileConfigurations", "endPointConfiguration", "userID", "formID", "form", "defaultListViewFunction", "externalButtons", "onlyView", "records", "highlightFilter", "QueryEditorComponent"], outputs: ["onAddViewEditRecord", "onDeleteRecord", "saveRecordEvent", "afterSaveRecordEvent", "dragStarted", "dragReleased", "out"] }, { kind: "component", type: i5.AddFormRecordComponent, selector: "add-form-record", inputs: ["configurations", "endPointConfiguration", "userID", "formID", "form", "record", "onlyView", "isDuplicate", "inConfig", "QueryEditorComponent"], outputs: ["saveRecordEvent", "afterSaveRecordEvent", "out"] }, { kind: "component", type: i6.ViewFormRecordComponent, selector: "view-form-record", inputs: ["endPointConfiguration", "record", "showBackButton"], outputs: ["goBackEvent"] }, { kind: "component", type: i7.SpinnerComponent, selector: "eqp-dynamic-module-spinner" }, { kind: "component", type: i8.RepairFormFieldsComponent, selector: "repair-form-fields", inputs: ["configurations", "formID", "endPointConfiguration"], outputs: ["onSaveJson"] }, { kind: "component", type: i9.FilterFormStatisticComponent, selector: "filter-form-statistic", inputs: ["configurations", "endPointConfiguration", "userID", "externalButtons", "formID", "form", "record", "onlyView", "defaultListActions", "filterResultViewMode"], outputs: ["saveRecordEvent", "afterSaveRecordEvent", "afterFilter"] }, { kind: "component", type: i10.GraphsComponent, selector: "graphs", inputs: ["configurations", "endPointConfiguration", "userID", "formID", "form"] }] });
|
|
384
388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EqpDynamicModuleComponent, decorators: [{
|
|
385
389
|
type: Component,
|
|
386
|
-
args: [{ selector: "eqp-dynamic-module", template: "<eqp-dynamic-module-spinner></eqp-dynamic-module-spinner>\r\n\r\n<!-- [record]=\"'b3d943c0-9c01-4973-948b-7aa418634f72'\" -->\r\n<view-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.VIEW\"\r\n class=\"dynamic-module-view\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [record]=\"selectedRecord.ID\"\r\n (goBackEvent)=\"onGoBack()\"\r\n>\r\n</view-form-record>\r\n\r\n<graphs\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.GRAPHS\"\r\nclass=\"dynamic-module-view\"\r\n[endPointConfiguration]=\"endPointConfiguration\"\r\n[form]=\"form\"\r\n[formID]=\"formID\"\r\n[userID]=\"userID\"\r\n[configurations]=\"dynamicModuleCompileConfig\"\r\n>\r\n</graphs>\r\n\r\n<filter-form-statistic\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.FILTER\"\r\n class=\"dynamic-module-compile\"\r\n [form]=\"form\"\r\n [formID]=\"formID\"\r\n [record]=\"selectedRecord\"\r\n [onlyView]=\"onlyView\"\r\n [defaultListActions]=\"defaultListActions\"\r\n [filterResultViewMode]=\"filterResultViewMode\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [userID]=\"userID\"\r\n\r\n [configurations]=\"dynamicModuleCompileConfig\"\r\n (afterFilter)=\"onAfterFilter($event)\"\r\n>\r\n</filter-form-statistic>\r\n\r\n<add-form-record\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.COMPILE\"\r\n class=\"dynamic-module-compile\"\r\n [form]=\"form\"\r\n [record]=\"selectedRecord\"\r\n [onlyView]=\"onlyView\"\r\n [isDuplicate]=\"isDuplicate\"\r\n\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [userID]=\"userID\"\r\n\r\n [configurations]=\"dynamicModuleCompileConfig\"\r\n\r\n (saveRecordEvent)=\"onSaveRecord($event)\"\r\n (afterSaveRecordEvent)=\"onAfterSaveRecord($event)\"\r\n>\r\n</add-form-record>\r\n\r\n<list-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.LIST\"\r\n class=\"dynamic-module-list\"\r\n [formID]=\"formID\"\r\n\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n\r\n [configurations]=\"dynamicModuleListConfig\"\r\n [externalButtons]=\"externalButtons\"\r\n\r\n (onViewRecord)=\"onViewRecord($event)\"\r\n (onAddViewEditRecord)=\"onAddViewEditRecord($event)\"\r\n (onDeleteRecord)=\"onDeleteRecord($event)\"\r\n (onAfterDeleteRecord)=\"onAfterDeleteRecord($event)\"\r\n>\r\n</list-form-record>\r\n\r\n<repair-form-fields\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.REPAIR\"\r\n class=\"dynamic-module-repair\"\r\n [formID]=\"formID\"\r\n\r\n [configurations]=\"dynamicModuleRepairConfig\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n\r\n (onSaveJson)=\"onSaveJson($event)\"\r\n>\r\n</repair-form-fields>\r\n\r\n<list-view-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.LISTWIEW\"\r\n class=\"dynamic-module-list-view\"\r\n [configurations]=\"dynamicModuleListConfig\"\r\n [compileConfigurations]=\"dynamicModuleCompileConfig\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [formID]=\"formID\"\r\n [userID]=\"userID\"\r\n [highlightFilter]=\"highlightFilter\"\r\n [defaultListViewFunction]=\"defaultListViewFunction\"\r\n [externalButtons]=\"externalButtons\"\r\n [onlyView]=\"!defaultListActions.edit\"\r\n\r\n (onAddViewEditRecord)=\"onAddViewEditRecord($event)\"\r\n (onDeleteRecord)=\"onDeleteRecord($event)\"\r\n (saveRecordEvent)=\"onSaveRecord($event)\"\r\n (afterSaveRecordEvent)=\"onAfterSaveRecord($event)\"\r\n (dragStarted)=\"onDragStarted($event)\"\r\n (dragReleased)=\"onDragReleased()\"\r\n >\r\n</list-view-form-record>\r\n", styles: ["::ng-deep mat-form-field{width:100%}\n"] }]
|
|
390
|
+
args: [{ selector: "eqp-dynamic-module", template: "<eqp-dynamic-module-spinner></eqp-dynamic-module-spinner>\r\n\r\n<!-- [record]=\"'b3d943c0-9c01-4973-948b-7aa418634f72'\" -->\r\n<view-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.VIEW\"\r\n class=\"dynamic-module-view\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [record]=\"selectedRecord.ID\"\r\n (goBackEvent)=\"onGoBack()\"\r\n>\r\n</view-form-record>\r\n\r\n<graphs\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.GRAPHS\"\r\nclass=\"dynamic-module-view\"\r\n[endPointConfiguration]=\"endPointConfiguration\"\r\n[form]=\"form\"\r\n[formID]=\"formID\"\r\n[userID]=\"userID\"\r\n[configurations]=\"dynamicModuleCompileConfig\"\r\n>\r\n</graphs>\r\n\r\n<filter-form-statistic\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.FILTER\"\r\n class=\"dynamic-module-compile\"\r\n [form]=\"form\"\r\n [formID]=\"formID\"\r\n [record]=\"selectedRecord\"\r\n [onlyView]=\"onlyView\"\r\n [defaultListActions]=\"defaultListActions\"\r\n [filterResultViewMode]=\"filterResultViewMode\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [userID]=\"userID\"\r\n\r\n [configurations]=\"dynamicModuleCompileConfig\"\r\n (afterFilter)=\"onAfterFilter($event)\"\r\n>\r\n</filter-form-statistic>\r\n\r\n<add-form-record\r\n*ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.COMPILE\"\r\n class=\"dynamic-module-compile\"\r\n [form]=\"form\"\r\n [record]=\"selectedRecord\"\r\n [onlyView]=\"onlyView\"\r\n [isDuplicate]=\"isDuplicate\"\r\n\r\n [QueryEditorComponent]=\"QueryEditorComponent\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [userID]=\"userID\"\r\n\r\n [configurations]=\"dynamicModuleCompileConfig\"\r\n\r\n (out)=\"onExternalComponentOut($event)\"\r\n (saveRecordEvent)=\"onSaveRecord($event)\"\r\n (afterSaveRecordEvent)=\"onAfterSaveRecord($event)\"\r\n>\r\n</add-form-record>\r\n\r\n<list-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.LIST\"\r\n class=\"dynamic-module-list\"\r\n [formID]=\"formID\"\r\n\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n\r\n [configurations]=\"dynamicModuleListConfig\"\r\n [externalButtons]=\"externalButtons\"\r\n\r\n (onViewRecord)=\"onViewRecord($event)\"\r\n (onAddViewEditRecord)=\"onAddViewEditRecord($event)\"\r\n (onDeleteRecord)=\"onDeleteRecord($event)\"\r\n (onAfterDeleteRecord)=\"onAfterDeleteRecord($event)\"\r\n>\r\n</list-form-record>\r\n\r\n<repair-form-fields\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.REPAIR\"\r\n class=\"dynamic-module-repair\"\r\n [formID]=\"formID\"\r\n\r\n [configurations]=\"dynamicModuleRepairConfig\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n\r\n (onSaveJson)=\"onSaveJson($event)\"\r\n>\r\n</repair-form-fields>\r\n\r\n<list-view-form-record\r\n *ngIf=\"loader && viewMode == dynamicModuleViewModeEnum.LISTWIEW\"\r\n class=\"dynamic-module-list-view\"\r\n [configurations]=\"dynamicModuleListConfig\"\r\n [compileConfigurations]=\"dynamicModuleCompileConfig\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [formID]=\"formID\"\r\n [userID]=\"userID\"\r\n [highlightFilter]=\"highlightFilter\"\r\n [defaultListViewFunction]=\"defaultListViewFunction\"\r\n [externalButtons]=\"externalButtons\"\r\n [onlyView]=\"!defaultListActions.edit\"\r\n [QueryEditorComponent]=\"QueryEditorComponent\"\r\n\r\n (onAddViewEditRecord)=\"onAddViewEditRecord($event)\"\r\n (onDeleteRecord)=\"onDeleteRecord($event)\"\r\n (saveRecordEvent)=\"onSaveRecord($event)\"\r\n (afterSaveRecordEvent)=\"onAfterSaveRecord($event)\"\r\n (dragStarted)=\"onDragStarted($event)\"\r\n (dragReleased)=\"onDragReleased()\"\r\n >\r\n</list-view-form-record>\r\n", styles: ["::ng-deep mat-form-field{width:100%}\n"] }]
|
|
387
391
|
}], ctorParameters: function () { return [{ type: i1.UtilityHelperService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { debugMode: [{
|
|
388
392
|
type: Input
|
|
389
393
|
}], configurations: [{
|
|
@@ -450,5 +454,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
450
454
|
type: Output
|
|
451
455
|
}], dragReleased: [{
|
|
452
456
|
type: Output
|
|
457
|
+
}], out: [{
|
|
458
|
+
type: Output
|
|
453
459
|
}] } });
|
|
454
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXFwLWR5bmFtaWMtbW9kdWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0ZWQvZXFwLWR5bmFtaWMtbW9kdWxlL2VxcC1keW5hbWljLW1vZHVsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydGVkL2VxcC1keW5hbWljLW1vZHVsZS9lcXAtZHluYW1pYy1tb2R1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFHOUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUdMLGFBQWEsR0FDZCxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFFdEgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFaEYsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDcEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLHlCQUF5QjtJQTBGcEMsWUFBb0Isb0JBQTBDLEVBQ3BELGNBQWlDO1FBRHZCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDcEQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBekZsQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBSzNCLG9CQUFlLEdBQThCLHlCQUF5QixDQUFDLElBQUksQ0FBQztRQUU1RSxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBQ3JCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0IsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsV0FBTSxHQUFrQixJQUFJLENBQUM7UUFDN0IsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG9CQUFlLEdBQXdCLElBQUksS0FBSyxFQUFnQixDQUFDO1FBQ2pFLHdCQUFtQixHQUFrQixJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ3pELDRCQUF1QixHQUFhLElBQUksQ0FBQztRQUN6Qyx1QkFBa0IsR0FBOEMsSUFBSSx5Q0FBeUMsRUFBRSxDQUFDO1FBQ2hILHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixhQUFRLEdBQThCLElBQUksQ0FBQztRQUMzQyx5QkFBb0IsR0FBMEMscUNBQXFDLENBQUMsaUJBQWlCLENBQUM7UUFDdEgscUJBQWdCLEdBQVEsSUFBSSxDQUFDO1FBQzdCLG1CQUFjLEdBQVEsSUFBSSxDQUFDO1FBQzNCLGVBQVUsR0FBUSxJQUFJLENBQUM7UUFDdkIsb0JBQWUsR0FBUSxJQUFJLENBQUM7UUFDNUIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBTTdDLFlBQU8sR0FBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2pDOzs7V0FHRztRQUNILGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBRTdCOzs7V0FHRztRQUNILGNBQVMsR0FBVyxJQUFJLENBQUM7UUFFekI7Ozs7O1dBS0c7UUFDSCwwQkFBcUIsR0FBMEIsSUFBSSxDQUFDO1FBRXBELG1DQUFtQztRQUNuQyxtSEFBbUg7UUFDbkgseUJBQXlCO1FBRXpCOzs7V0FHRztRQUNPLGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5RCxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2hFLGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM1RCxnQkFBVyxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUM3Rjs7O1dBR0c7UUFDTyxvQkFBZSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25FLHNCQUFpQixHQUN6QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25CLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUQsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV0RSxTQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM1QixpQkFBWSxHQUFHLFlBQVksQ0FBQztRQUM1Qiw4QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztRQVN0RCxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBR2lCLENBQUM7SUFFL0MsS0FBSyxDQUFDLFFBQVE7UUFDWixhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFL0UsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksMEJBQTBCLENBQzlELElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsQ0FBQztRQUNGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLHVCQUF1QixDQUN4RCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksS0FBSyxFQUFnQixFQUN6QixJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsQ0FBQztRQUNGLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLHlCQUF5QixDQUM1RCxJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQztRQUN2RSxxRUFBcUU7UUFFckUsdUNBQXVDO1FBQ3ZDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFakMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTtZQUN2QixnREFBZ0Q7WUFDaEQsNEJBQTRCO1NBQzdCO1FBRUQsd0NBQXdDO1FBQ3hDLGFBQWEsQ0FBQyxRQUFRLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDckYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7SUFDcEIsQ0FBQztJQUVELGVBQWU7UUFFYixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUkseUJBQXlCLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUkseUJBQXlCLENBQUMsTUFBTSxFQUFFO1lBQ3pILDJCQUEyQjtZQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDNUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN4RDthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhO1NBRTNFO0lBQ0gsQ0FBQztJQUVELDBDQUEwQztJQUMxQywyREFBMkQ7SUFDM0QsdUNBQXVDO0lBQ3ZDLCtCQUErQjtJQUMvQix1QkFBdUI7SUFDdkIsc0JBQXNCO0lBQ3RCLCtDQUErQztJQUMvQyxRQUFRO0lBQ1IsK0NBQStDO0lBQy9DLHdEQUF3RDtJQUN4RCwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLDZCQUE2QjtJQUM3Qix5QkFBeUI7SUFDekIsc0NBQXNDO0lBRXRDLDRFQUE0RTtJQUM1RSw2Q0FBNkM7SUFDN0MsYUFBYTtJQUNiLGlEQUFpRDtJQUNqRCxTQUFTO0lBQ1Qsa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxJQUFJO0lBRUo7Ozs7O09BS0c7SUFDSCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3JELElBQUksQ0FBQyxxQkFBcUI7Z0JBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FDakQsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FDZixDQUFDO1NBQ0g7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCwrQkFBK0I7SUFDN0IsT0FBTztJQUNQLGtDQUFrQztJQUNsQywwQ0FBMEM7SUFDMUMsMkRBQTJEO0lBQzNELE1BQU07SUFDTixnQ0FBZ0M7SUFDaEMsUUFBUTtJQUNSLDRCQUE0QjtJQUM1QixrQ0FBa0M7SUFDbEMsaURBQWlEO0lBQ2pELFNBQVM7SUFDVCxPQUFPO0lBQ1AscURBQXFEO0lBQ3JELDhEQUE4RDtJQUM5RCwyQkFBMkI7SUFDM0IsbUNBQW1DO0lBQ25DLG1FQUFtRTtJQUNuRSw2QkFBNkI7SUFDN0IsNkNBQTZDO0lBQzdDLG1EQUFtRDtJQUNuRCw0QkFBNEI7SUFDNUIsa0NBQWtDO0lBQ2xDLHNDQUFzQztJQUN0QyxvQ0FBb0M7SUFDcEMsNENBQTRDO0lBQzVDLDREQUE0RDtJQUM1RCxZQUFZO0lBQ1osUUFBUTtJQUNSLE9BQU87SUFDUCxJQUFJO0lBQ04sSUFBSTtJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUU7SUFDakMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsbUJBQW1CLENBQUMsS0FBNEM7UUFFOUQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUMvQixhQUFhLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDOUQsSUFDRSxJQUFJLENBQUMscUJBQXFCO2dCQUMxQixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTztnQkFDbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQ2xEO2dCQUNBLHdDQUF3QztnQkFDeEMsSUFBSSxtQkFBbUIsR0FBRztvQkFDeEI7d0JBQ0UsU0FBUyxFQUFFLE9BQU87d0JBQ2xCLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUs7d0JBQzlCLFNBQVMsRUFBRSxhQUFhLENBQUMsYUFBYSxDQUFDO3FCQUN4QztvQkFDRDt3QkFDRSxTQUFTLEVBQUUsU0FBUzt3QkFDcEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDaEMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxhQUFhLENBQUM7cUJBQ3hDO2lCQUNGLENBQUM7Z0JBQ0YsYUFBYSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtnQkFDM0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FDdkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFDMUQsbUJBQW1CLEVBQ25CLENBQUMsR0FBUyxFQUFFLEVBQUU7b0JBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7b0JBQ2hCLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO29CQUNsQyw0QkFBNEI7b0JBQzVCLElBQUksbUJBQW1CLEdBQUc7d0JBQ3hCOzRCQUNFLFNBQVMsRUFBRSxJQUFJOzRCQUNmLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQzNCLFNBQVMsRUFBRSxhQUFhLENBQUMsYUFBYSxDQUFDO3lCQUN4QztxQkFDRixDQUFDO29CQUNGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUNsRCxtQkFBbUIsRUFDbkIsQ0FBQyxHQUFjLEVBQUUsRUFBRTt3QkFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3dCQUN2RCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO3dCQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO3dCQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO3dCQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7d0JBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUNyQixDQUFDLENBQ0YsQ0FBQztnQkFDSixDQUFDLENBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1NBQ0Y7YUFBTTtZQUNMLE1BQU0sbUJBQW1CLEdBQ3ZCLElBQUksS0FBSyxFQUFzQixDQUFDO1lBQ2xDLG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDdkIsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUN2QixTQUFTLEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FBQzthQUN4QyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFDaEQsbUJBQW1CLEVBQ25CLENBQUMsR0FBUyxFQUFFLEVBQUU7Z0JBQ1osbUVBQW1FO2dCQUNuRSxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBRTNCLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksRUFBQztvQkFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7b0JBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2lCQUN6QjtnQkFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNyQixDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDTixPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FDRixDQUFDO1lBRUYsOEJBQThCO1lBQzlCLHlCQUF5QjtZQUN6QixxREFBcUQ7U0FDdEQ7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQTtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQTtRQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUV0QixDQUFDO0lBRUQsZUFBZTtJQUNmOzs7T0FHRztJQUNILFlBQVksQ0FBQyxLQUFhO1FBQ3hCLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QiwrQkFBK0I7UUFDL0Isb0RBQW9EO1FBQ3BELFdBQVc7UUFDWCxvREFBb0Q7UUFDcEQsSUFBSTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQywrQkFBK0I7UUFDL0Isb0RBQW9EO1FBQ3BELFdBQVc7UUFDWCxvREFBb0Q7UUFDcEQsSUFBSTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUMvQixDQUFDO0lBR0QsVUFBVSxDQUFDLE1BQWM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELGtCQUFrQjtJQU9sQixNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsVUFBVSxDQUNSLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUN4QixFQUFFLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxpQkFBaUI7SUFDakI7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLE1BQWM7UUFDM0IsSUFDRSxJQUFJLENBQUMscUJBQXFCO1lBQzFCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUNqRDtZQUNBLDZCQUE2QixDQUFDLE9BQU8sQ0FDbkMsa0NBQWtDLEVBQ2xDLEdBQUcsRUFBRTtnQkFDSCxJQUFJLG1CQUFtQixHQUFHO29CQUN4Qjt3QkFDRSxTQUFTLEVBQUUsSUFBSTt3QkFDZixVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUU7d0JBQ3JCLFNBQVMsRUFBRSxhQUFhLENBQUMsYUFBYSxDQUFDO3FCQUN4QztpQkFDRixDQUFDO2dCQUNGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUNqRCxtQkFBbUIsRUFDbkIsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDTiw2QkFBNkI7b0JBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3BDLHNCQUFzQjtvQkFDdEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNoQixDQUFDLENBQ0YsQ0FBQztZQUNKLENBQUMsRUFDRCxLQUFLLEVBQ0wsb0JBQW9CLENBQ3JCLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsTUFBYztRQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBRSxDQUFBO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELG9CQUFvQjtJQUVwQixhQUFhLENBQUMsRUFBRTtRQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBTztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7dUhBaGRVLHlCQUF5QjsyR0FBekIseUJBQXlCLGlwQ0NuQ3RDLCsvR0E0R0E7NEZEekVhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxvQkFBb0I7MklBTXJCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBK0JJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9jb250ZXh0Lm1vZGVsXCI7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVDb21waWxlQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZy5tb2RlbFwiO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlQ29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVHZW5lcmFsQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlR2VuZXJhbENvbmZpZy5tb2RlbFwiO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlTGlzdENvbmZpZyB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZHluYW1pY01vZHVsZUxpc3RDb25maWcubW9kZWxcIjtcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZVJlcGFpckNvbmZpZyB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZHluYW1pY01vZHVsZVJlcGFpckNvbmZpZy5tb2RlbFwiO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlVmlld01vZGVFbnVtXCI7XHJcbmltcG9ydCB7XHJcbiAgRW5kUG9pbnRDb25maWd1cmF0aW9uLFxyXG4gIEVuZFBvaW50RGF0YVBhcmFtcyxcclxuICBQYXJhbVR5cGVFbnVtLFxyXG59IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZW5kUG9pbnRDb25maWd1cmF0aW9uLm1vZGVsXCI7XHJcbmltcG9ydCB7IEZvcm0sIEZvcm1UeXBlRW51bSB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZm9ybS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlTGlzdEZvcm1SZWNvcmRBY3Rpb25zRGVmYXVsdCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHRcIjtcclxuaW1wb3J0IHsgRHluUmVjb3JkLCBSZWNvcmQsIFJlY29yZEJ1dHRvbiB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsXCI7XHJcbmltcG9ydCB7IEVxcER5bmFtaWNNb2R1bGVEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2VxcC1keW5hbWljLW1vZHVsZS1kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy91dGlsaXR5SGVscGVyLnNlcnZpY2VzXCI7XHJcbmltcG9ydCB7IEZpbHRlclJlc3VsdFR5cGUgfSBmcm9tIFwiQGVxcHJvamVjdC9lcXAtZmlsdGVyc1wiO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlRmlsdGVyUmVzdWx0Vmlld01vZGVFbnVtIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlRmlsdGVyUmVzdWx0Vmlld01vZGVFbnVtLm1vZGVsXCI7XHJcbmltcG9ydCB7IEdsb2JhbFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImVxcC1keW5hbWljLW1vZHVsZVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZXFwLWR5bmFtaWMtbW9kdWxlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2VxcC1keW5hbWljLW1vZHVsZS5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVxcER5bmFtaWNNb2R1bGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKSBkZWJ1Z01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gQElucHV0KCkgY29uZmlndXJhdGlvbnM6IER5bmFtaWNNb2R1bGVDb25maWc7XHJcbiAgQElucHV0KCkgY29uZmlndXJhdGlvbnM6IER5bmFtaWNNb2R1bGVHZW5lcmFsQ29uZmlnO1xyXG4gIEBJbnB1dCgpIGZvcm1JRDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0YXJ0ZXJWaWV3TW9kZTogRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bSA9IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uTElTVDtcclxuXHJcbiAgQElucHV0KCkgdXNlcklEOiBzdHJpbmcgPSBcIjBcIjtcclxuICBASW5wdXQoKSBzaG93VGl0bGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dCYWNrQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93U2F2ZUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdmFsdWVzOiBBcnJheTxSZWNvcmQ+ID0gbnVsbDtcclxuICBASW5wdXQoKSBGb3JtSlNPTiA9IFwiXCI7XHJcbiAgQElucHV0KCkgZXh0ZXJuYWxCdXR0b25zOiBBcnJheTxSZWNvcmRCdXR0b24+ID0gbmV3IEFycmF5PFJlY29yZEJ1dHRvbj4oKTtcclxuICBASW5wdXQoKSBsaXN0Vmlld1JlY29yZFRpdGxlOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuICBASW5wdXQoKSBkZWZhdWx0TGlzdFZpZXdGdW5jdGlvbjogRnVuY3Rpb24gPSBudWxsO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRMaXN0QWN0aW9uczogRHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQgPSBuZXcgRHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQoKTtcclxuICBASW5wdXQoKSBvblNhdmVCYWNrVG9MaXN0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgb25CYWNrVG86IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0gPSBudWxsO1xyXG4gIEBJbnB1dCgpIGZpbHRlclJlc3VsdFZpZXdNb2RlOiBEeW5hbWljTW9kdWxlRmlsdGVyUmVzdWx0Vmlld01vZGVFbnVtID0gRHluYW1pY01vZHVsZUZpbHRlclJlc3VsdFZpZXdNb2RlRW51bS5JTlRFUk5BTF9FUVBUQUJMRTtcclxuICBASW5wdXQoKSBhZGRpdGlvbmFsUGFyYW1zOiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGFkZGl0aW9uYWxJbmZvOiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHVwZGF0ZUluZm86IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgcHJlZmlsdGVyUGFyYW1zOiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNob3dOZXdTZWFyY2hCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGFuc3dlclRvRHVwbGljYXRlSWQ6IGFueTtcclxuICBASW5wdXQoKSBoaWdobGlnaHRGaWx0ZXI6IGFueTtcclxuICBcclxuICBASW5wdXQoKSBRdWVyeUVkaXRvckNvbXBvbmVudDogYW55OyAvLyBMJ2ludGVybyBjb21wb25lbnRlIHF1ZXJ5IEVkaXRvclxyXG5cclxuICBjb250ZXh0OiBDb250ZXh0ID0gbmV3IENvbnRleHQoKTtcclxuICAvKipcclxuICAgKiBVcmwgZGVsIHNlcnZlciBkYSBjaGlhbWFyZSBwZXIgcmVjdXBlcmFyZSwgc2FsdmFyZSBvIGVsaW1pbmFyZSBpIHJlY29yZC5cclxuICAgKiBVc2F0byBwZXIgY3JlYXJlIGxhIGNvbmZpZ3VyYXppb25lIGRpIGRlZmF1bHQgZGVnbGkgZW5kcG9pbnQgZGEgY2hpYW1hcmUuXHJcbiAgICovXHJcbiAgYmFzZVNlcnZlclVybDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogVG9rZW4gZGEgdXNhcmUgbmVnbGkgZW5kcG9pbnQgZGEgY2hpYW1hcmUgcGVyIHJlY3VwZXJhcmUgbyBzYWx2YXJlIGkgcmVjb3JkLlxyXG4gICAqIFVzYXRvIHNvbG8gc2UgdmllbmUgcG9wb2xhdGEgbGEgcHJvcHJpZXTDoCBcImJhc2VTZXJ2ZXJVcmxcIi5cclxuICAgKi9cclxuICB1c2VyVG9rZW46IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmZpZ3VyYXppb25lIGRlZ2xpIGVuZHBvaW50IGRhIGNoaWFtYXJlIHBlciByZWN1cGVyYXJlIG8gc2FsdmFyZSBpIGRhdGkuXHJcbiAgICogUHXDsiBlc3NlcmUgZGVmaW5pdGEgZGFsbCd1dGVudGUgb3BwdXJlIGxhc2NpYXRhIG51bGwsIHZpZW5lIHBvcG9sYXRhIGNvbiBkZWlcclxuICAgKiB2YWxvcmkgZGkgZGVmYXVsdCBzZSB2aWVuZSB2YWxvcml6emF0YSBsYSBwcm9wcmlldMOgIFwiYmFzZVNlcnZlclVybFwiIGFsdHJpbWVudGlcclxuICAgKiB2aWVuZSBsYXNjaWF0YSBudWxsIGUgbm9uIHZpZW5lIGVzZWd1aXRhIG5lc3N1bmEgY2hpYW1hdGEgYWwgc2VydmVyLlxyXG4gICAqL1xyXG4gIGVuZFBvaW50Q29uZmlndXJhdGlvbjogRW5kUG9pbnRDb25maWd1cmF0aW9uID0gbnVsbDtcclxuXHJcbiAgLy9ASW5wdXQoKSBmb3JtOiBGb3JtID0gbmV3IEZvcm0oKTtcclxuICAvLyBkZWZhdWx0TGlzdEFjdGlvbnM6IGR5bmFtaWNNb2R1bGVMaXN0Rm9ybVJlY29yZEFjdGlvbnNEZWZhdWx0ID0gbmV3IGR5bmFtaWNNb2R1bGVMaXN0Rm9ybVJlY29yZEFjdGlvbnNEZWZhdWx0KCk7XHJcbiAgLy8gRm9ybUpTT046IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50aSBlbWVzc2kgcXVhbmRvIHNpIHNhbHZhLCBlbGltaW5hIG8gZHVwbGljYSB1biByZWNvcmRcclxuICAgKiBzZSBub24gw6ggc3RhdG8gc3BlY2lmaWNhdG8gdW4gZW5kcG9pbnQgZGEgY2hpYW1hcmUuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHNhdmVSZWNvcmQ6IEV2ZW50RW1pdHRlcjxSZWNvcmQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ+KCk7XHJcbiAgQE91dHB1dCgpIGRlbGV0ZVJlY29yZDogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuICBAT3V0cHV0KCkgU2F2ZUpTT046IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGFmdGVyRmlsdGVyOiBFdmVudEVtaXR0ZXI8QXJyYXk8RHluUmVjb3JkPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PER5blJlY29yZD4+KCk7XHJcbiAgLyoqXHJcbiAgICogRXZlbnRpIGVtZXNzaSBET1BPIGF2ZXIgZXNlZ3VpdG8gdW5hIGNoaWFtYXRhIGFsIHNlcnZlciBwZXIgaWwgc2FsdmF0YWdnaW8sXHJcbiAgICogbCdlbGltaW5hemlvbmUgbyBsYSBkdXBsaWNhemlvbmUgZGkgdW4gcmVjb3JkIGFsbCdlbmRwb2ludCBzcGVjaWZpY2F0by5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgYWZ0ZXJTYXZlUmVjb3JkOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPigpO1xyXG4gIEBPdXRwdXQoKSBhZnRlckRlbGV0ZVJlY29yZDogRXZlbnRFbWl0dGVyPFJlY29yZD4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ+KCk7XHJcbiAgQE91dHB1dCgpIGRyYWdTdGFydGVkOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBkcmFnUmVsZWFzZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgZm9ybTogRm9ybSA9IG5ldyBGb3JtKCk7XHJcbiAgbGFzdGZvcm06IEZvcm0gPSBuZXcgRm9ybSgpO1xyXG4gIEZvcm1UeXBlRW51bSA9IEZvcm1UeXBlRW51bTtcclxuICBkeW5hbWljTW9kdWxlVmlld01vZGVFbnVtID0gRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bTtcclxuICBzZWxlY3RlZFJlY29yZDogUmVjb3JkO1xyXG4gIG9ubHlWaWV3OiBib29sZWFuO1xyXG4gIHZpZXdNb2RlOiBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtO1xyXG4gIGRlZmF1bHRWaWV3TW9kZTogRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bTtcclxuXHJcbiAgZHluYW1pY01vZHVsZUNvbXBpbGVDb25maWc6IER5bmFtaWNNb2R1bGVDb21waWxlQ29uZmlnO1xyXG4gIGR5bmFtaWNNb2R1bGVMaXN0Q29uZmlnOiBEeW5hbWljTW9kdWxlTGlzdENvbmZpZztcclxuICBkeW5hbWljTW9kdWxlUmVwYWlyQ29uZmlnOiBEeW5hbWljTW9kdWxlUmVwYWlyQ29uZmlnO1xyXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRHVwbGljYXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXRpbGl0eUhlbHBlclNlcnZpY2U6IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgR2xvYmFsU2VydmljZS5kZWJ1Z01vZGUgPSB0aGlzLmRlYnVnTW9kZTtcclxuXHJcbiAgICB0aGlzLm9uQmFja1RvID0gKHRoaXMub25CYWNrVG8gPT0gbnVsbCkgPyB0aGlzLnN0YXJ0ZXJWaWV3TW9kZSA6IHRoaXMub25CYWNrVG87XHJcblxyXG4gICAgdGhpcy5keW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZyA9IG5ldyBEeW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZyhcclxuICAgICAgdGhpcy5zaG93VGl0bGUsXHJcbiAgICAgIHRoaXMuc2hvd1NhdmVCdXR0b24sXHJcbiAgICAgIHRoaXMuc2hvd0JhY2tCdXR0b24sXHJcbiAgICAgIHRoaXMudXNlcklELFxyXG4gICAgICB0aGlzLmFkZGl0aW9uYWxQYXJhbXMsXHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbEluZm8sXHJcbiAgICAgIHRoaXMucHJlZmlsdGVyUGFyYW1zLFxyXG4gICAgICB0aGlzLnNob3dOZXdTZWFyY2hCdXR0b25cclxuICAgICk7XHJcbiAgICB0aGlzLmR5bmFtaWNNb2R1bGVMaXN0Q29uZmlnID0gbmV3IER5bmFtaWNNb2R1bGVMaXN0Q29uZmlnKFxyXG4gICAgICB0aGlzLnNob3dUaXRsZSxcclxuICAgICAgdGhpcy52YWx1ZXMsXHJcbiAgICAgIHRoaXMuZGVmYXVsdExpc3RBY3Rpb25zLFxyXG4gICAgICB0aGlzLnVzZXJJRCxcclxuICAgICAgbmV3IEFycmF5PFJlY29yZEJ1dHRvbj4oKSxcclxuICAgICAgdGhpcy51cGRhdGVJbmZvLFxyXG4gICAgICB0aGlzLmxpc3RWaWV3UmVjb3JkVGl0bGVcclxuICAgICk7XHJcbiAgICB0aGlzLmR5bmFtaWNNb2R1bGVSZXBhaXJDb25maWcgPSBuZXcgRHluYW1pY01vZHVsZVJlcGFpckNvbmZpZyhcclxuICAgICAgdGhpcy5Gb3JtSlNPTlxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNvbnRleHQgPSB0aGlzLmNvbmZpZ3VyYXRpb25zLmNvbnRleHQ7XHJcbiAgICB0aGlzLmJhc2VTZXJ2ZXJVcmwgPSB0aGlzLmNvbmZpZ3VyYXRpb25zLmJhc2VTZXJ2ZXJVcmw7XHJcbiAgICB0aGlzLnVzZXJUb2tlbiA9IHRoaXMuY29uZmlndXJhdGlvbnMudXNlclRva2VuO1xyXG4gICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24gPSB0aGlzLmNvbmZpZ3VyYXRpb25zLmVuZFBvaW50Q29uZmlndXJhdGlvbjtcclxuICAgIC8vdGhpcy5mb3JtSUQgPSB0aGlzLmNvbmZpZ3VyYXRpb25zLmR5bmFtaWNNb2R1bGVHZW5lcmFsQ29uZmlnLmZvcm1JRFxyXG5cclxuICAgIC8vIHRoaXMudmlld01vZGUgPSB0aGlzLnN0YXJ0ZXJWaWV3TW9kZVxyXG4gICAgVXRpbGl0eUhlbHBlclNlcnZpY2UuU2V0Q29udGV4dCh0aGlzLmNvbnRleHQpO1xyXG4gICAgXHJcbiAgICB0aGlzLmNvbmZpZ3VyZURlZmF1bHRFbmRQb2ludHMoKTtcclxuXHJcbiAgICBpZiAodGhpcy5Gb3JtSlNPTiA9PSBcIlwiKSB7XHJcbiAgICAgIC8vIHByZW5kZSBpbCBmb3JtIGUgaW1wb3N0YSBsYSB2aWV3bW9kZSBjb3JyZXR0YVxyXG4gICAgICAvLyBhd2FpdCB0aGlzLmdldEZvcm1CeUlEKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy52aWV3TW9kZSA9IHRoaXMuc3RhcnRlclZpZXdNb2RlO1xyXG4gICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcImR5bmFtaWNNb2R1bGVDb21waWxlQ29uZmlnXCIsIHRoaXMuZHluYW1pY01vZHVsZUNvbXBpbGVDb25maWcpXHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWVcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5zdGFydGVyVmlld01vZGUgPT0gRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5DT01QSUxFIHx8IHRoaXMuc3RhcnRlclZpZXdNb2RlID09IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uRklMVEVSKSB7XHJcbiAgICAgIC8vIGRhIHZlZGVyZSBpbiBnZXRGb3JtQnlJRFxyXG4gICAgICB0aGlzLmRlZmF1bHRWaWV3TW9kZSA9IHRoaXMuc3RhcnRlclZpZXdNb2RlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25BZGRWaWV3RWRpdFJlY29yZChudWxsKSwgMTAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpZXdNb2RlID0gdGhpcy5zdGFydGVyVmlld01vZGU7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgICAgc2V0VGltZW91dChfID0+IHsgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCkgfSwgMCk7IC8vIHJlZnJlc2ggdWlcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBnZXRGb3JtQnlJRChpZDogc3RyaW5nID0gdGhpcy5mb3JtSUQpIHtcclxuICAvLyAgIGNvbnN0IGR5bmFtaWNNb2R1bGVQYXJhbXM6IEFycmF5PEVuZFBvaW50RGF0YVBhcmFtcz4gPVxyXG4gIC8vICAgICBuZXcgQXJyYXk8RW5kUG9pbnREYXRhUGFyYW1zPigpO1xyXG4gIC8vICAgZHluYW1pY01vZHVsZVBhcmFtcy5wdXNoKHtcclxuICAvLyAgICAgUGFyYW1OYW1lOiBcImlkXCIsXHJcbiAgLy8gICAgIFBhcmFtVmFsdWU6IGlkLFxyXG4gIC8vICAgICBQYXJhbVR5cGU6IFBhcmFtVHlwZUVudW1bXCJRdWVyeSBwYXJhbVwiXSxcclxuICAvLyAgIH0pO1xyXG4gIC8vICAgdGhpcy51dGlsaXR5SGVscGVyU2VydmljZS5SdW5FbmRQb2ludENhbGwoXHJcbiAgLy8gICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLkZvcm1zLkdldEJ5SURFbmRQb2ludCxcclxuICAvLyAgICAgZHluYW1pY01vZHVsZVBhcmFtcyxcclxuICAvLyAgICAgKHJlczogRm9ybSkgPT4ge1xyXG4gIC8vICAgICAgIHRoaXMubGFzdGZvcm0gPSByZXM7XHJcbiAgLy8gICAgICAgdGhpcy5mb3JtID0gcmVzO1xyXG4gIC8vICAgICAgIC8vIHRoaXMuZ2V0UmVjb3Jkc0J5Rm9ybUlEKCk7XHJcblxyXG4gIC8vICAgICAgIC8vIGlmICh0aGlzLnN0YXJ0ZXJWaWV3TW9kZSA9PSBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLkNPTVBJTEUpIHtcclxuICAvLyAgICAgICAvLyAgIHRoaXMub25BZGRWaWV3RWRpdFJlY29yZChudWxsKTtcclxuICAvLyAgICAgICAvLyB9XHJcbiAgLy8gICAgICAgLy8gdGhpcy52aWV3TW9kZSA9IHRoaXMuc3RhcnRlclZpZXdNb2RlO1xyXG4gIC8vICAgICB9LFxyXG4gIC8vICAgICAoZXJyKSA9PiB7fVxyXG4gIC8vICAgKTtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY29uZmlndXJhcmUgZ2xpIGVuZHBvaW50IGRhIHVzYXJlIGRpIGRlZmF1bHQgYSBwYXJ0aXJlIGRhbGwndXJsIGJhc2UgZGVsIHNlcnZlclxyXG4gICAqIGEgY3VpIHNpIGRldmUgY29ubmV0dGVyZSBlIGFsIHRva2VuIGRhIHBhc3NhcmUgcGVyIGF1dGVudGljYXJzaS5cclxuICAgKiBTZSBsYSBwcm9wcmlldMOgIFwiYmFzZVNlcnZlclVybFwiIMOoIG51bGwgZSBub24gc29ubyBzdGF0aSBjb25maWd1cmF0aSBpIHZhcmkgZW5kcG9pbnQgYWxsb3JhXHJcbiAgICogbm9uIHZpZW5lIGVzZWd1aXRhIG5lc3N1bmEgY2hpYW1hdGEgaHR0cCBwZXIgcmVjdXBlcmFyZS9zYWx2YXJlIGkgZGF0aS5cclxuICAgKi9cclxuICBjb25maWd1cmVEZWZhdWx0RW5kUG9pbnRzKCkge1xyXG4gICAgaWYgKCF0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbiAmJiB0aGlzLmJhc2VTZXJ2ZXJVcmwpIHtcclxuICAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24gPVxyXG4gICAgICAgIHRoaXMudXRpbGl0eUhlbHBlclNlcnZpY2UuQ29uZmlndXJlRGVmYXVsdEVuZFBvaW50cyhcclxuICAgICAgICAgIHRoaXMuYmFzZVNlcnZlclVybCxcclxuICAgICAgICAgIHRoaXMudXNlclRva2VuXHJcbiAgICAgICAgKTsgICAgXHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgcmVjdXBlcmFyZSB0dXR0aSBpIHJlY29yZCBzYWx2YXRpIHBlciB1bmEgcGFydGljb2xhcmUgRm9ybS5cclxuICAgKiBMYSBjaGlhbWF0YSB2aWVuZSBlZmZldHR1YXRhIHNvbG8gc2Ugw6ggc3RhdG8gY29uZmlndXJhdG8gbCdlbmRQb2ludCBkYSB1c2FyZS5cclxuICAgKiBMYSByaXNwb3N0YSBkZWxsYSBjaGlhbWF0YSBkZXZlIGVzc2VyZSB1biBhcnJheSBkaSBvZ2dldHRpIGRpIHRpcG8gXCJEeW5SZWNvcmRcIlxyXG4gICAqIGEgcGFydGlyZSBkYWkgcXVhbGkgdmVuZ29ubyByaWNyZWF0aSBpIFJlY29yZCB1c2F0aSBuZWwgY2xpZW50LlxyXG4gICAqL1xyXG4gIC8vIGFzeW5jIGdldFJlY29yZHNCeUZvcm1JRCgpIHtcclxuICAgIC8vIGlmIChcclxuICAgIC8vICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24gJiZcclxuICAgIC8vICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uUmVjb3JkcyAmJlxyXG4gICAgLy8gICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbi5SZWNvcmRzLkdldEJ5Rm9ybUlERW5kUG9pbnRcclxuICAgIC8vICkge1xyXG4gICAgLy8gICB2YXIgZHluYW1pY01vZHVsZVBhcmFtcyA9IFtcclxuICAgIC8vICAgICB7XHJcbiAgICAvLyAgICAgICBQYXJhbU5hbWU6IFwiRW50SURcIixcclxuICAgIC8vICAgICAgIFBhcmFtVmFsdWU6IHRoaXMuZm9ybS5JRCxcclxuICAgIC8vICAgICAgIFBhcmFtVHlwZTogUGFyYW1UeXBlRW51bVtcIlF1ZXJ5IHBhcmFtXCJdLFxyXG4gICAgLy8gICAgIH0sXHJcbiAgICAvLyAgIF07XHJcbiAgICAvLyAgIGF3YWl0IHRoaXMudXRpbGl0eUhlbHBlclNlcnZpY2UuUnVuRW5kUG9pbnRDYWxsKFxyXG4gICAgLy8gICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuR2V0QnlGb3JtSURFbmRQb2ludCxcclxuICAgIC8vICAgICBkeW5hbWljTW9kdWxlUGFyYW1zLFxyXG4gICAgLy8gICAgIChyZXM6IEFycmF5PER5blJlY29yZD4pID0+IHtcclxuICAgIC8vICAgICAgIHRoaXMuZHluYW1pY01vZHVsZUxpc3RDb25maWcudmFsdWVzID0gbmV3IEFycmF5PFJlY29yZD4oKTtcclxuICAgIC8vICAgICAgIHJlcy5mb3JFYWNoKChyKSA9PiB7XHJcbiAgICAvLyAgICAgICAgIHZhciB0bXBSZWM6IFJlY29yZCA9IG5ldyBSZWNvcmQoKTtcclxuICAgIC8vICAgICAgICAgdG1wUmVjID0gSlNPTi5wYXJzZShyLlNlcmlhbGl6ZWRWYWx1ZXMpO1xyXG4gICAgLy8gICAgICAgICB0bXBSZWMuSUQgPSByLklEO1xyXG4gICAgLy8gICAgICAgICB0bXBSZWMuRW50SUQgPSByLkVudElEO1xyXG4gICAgLy8gICAgICAgICB0bXBSZWMuVmVyc2lvbiA9IHIuVmVyc2lvbjtcclxuICAgIC8vICAgICAgICAgdG1wUmVjLnVzZXJJRCA9IHIudXNlcklEO1xyXG4gICAgLy8gICAgICAgICB0bXBSZWMuQW5zd2VyRGF0ZSA9IHIuQW5zd2VyRGF0ZTtcclxuICAgIC8vICAgICAgICAgdGhpcy5keW5hbWljTW9kdWxlTGlzdENvbmZpZy52YWx1ZXMucHVzaCh0bXBSZWMpO1xyXG4gICAgLy8gICAgICAgfSk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICApO1xyXG4gICAgLy8gfVxyXG4gIC8vIH1cclxuXHJcbiAgb25Hb0JhY2soKXtcclxuICAgIHRoaXMudmlld01vZGUgPSB0aGlzLm9uQmFja1RvIDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBpbnZvY2F0byBxdWFuZG8gc2kgdnVvbGUgYWdnaXVuZ2VyZSwgdmlzdWFsaXp6YXJlIG8gbW9kaWZpY2FyZSB1biByZWNvcmQuXHJcbiAgICogU2UgbCdldmVudG8gw6ggbnVsbCB2dW9sIGRpcmUgY2hlIHN0aWFtbyBhZ2dpdW5nZW5kbyB1biBudW92byByZWNvcmQgYWx0cmltZW50aSBzaWFtbyBpbiBtb2RpZmljYVxyXG4gICAqIG8gdmlzdWFsaXp6YXppb25lLiBJbiBxdWVzdGkgdWx0aW1pIGR1ZSBjYXNpLCBzZSDDqCBzdGF0byBjb25maWd1cmF0byB1biBlbmRwb2ludCBwZXIgaWwgcmVjdXBlcm9cclxuICAgKiBkZWwgcmVjb3JkIGNvbXBsZXRvIGFsbG9yYSB2aWVuZSBlZmZldHR1YXRhIHVuYSBjaGlhbWF0YSBhbCBzZXJ2ZXIsIGFsdHJpbWVudGkgdmllbmUgdXNhdG8gbCdvZ2dldHRvIHNlbGV6aW9uYXRvLlxyXG4gICAqIEBwYXJhbSBldmVudCBPZ2dldHRvIGNvbiBkdWUgcHJvcHJpZXTDoDpcclxuICAgKiBcInJlY29yZFwiID0gb2dnZXR0byBkYSBtb2RpZmljYXJlL3Zpc3VhbGl6emFyZSxcclxuICAgKiBcIm9ubHlWaWV3XCIgPSBib29sZWFubyAoc2UgVFJVRSBzaWFtbyBpbiB2aXN1YWxpenphemlvbmUgYWx0cmltZW50aSBpbiBtb2RpZmljYSlcclxuICAgKi9cclxuICBvbkFkZFZpZXdFZGl0UmVjb3JkKGV2ZW50OiB7IHJlY29yZDogUmVjb3JkOyBvbmx5VmlldzogYm9vbGVhbiB9KSB7XHJcblxyXG4gICAgaWYgKGV2ZW50ICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5vbmx5VmlldyA9IGV2ZW50Lm9ubHlWaWV3O1xyXG4gICAgICBHbG9iYWxTZXJ2aWNlLmRlYnVnTG9nKFwiVmVyc2lvbiBtb2R1bG9cIiwgZXZlbnQucmVjb3JkLlZlcnNpb24pXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbiAmJlxyXG4gICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMgJiZcclxuICAgICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbi5SZWNvcmRzLkdldEJ5SURFbmRQb2ludFxyXG4gICAgICApIHtcclxuICAgICAgICAvLyBwcmVwYXJvIGxhIHZlcnNpb25lIGNvcnJldHRhIGRlbCBmb3JtXHJcbiAgICAgICAgdmFyIGR5bmFtaWNNb2R1bGVQYXJhbXMgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFBhcmFtTmFtZTogXCJFbnRJRFwiLFxyXG4gICAgICAgICAgICBQYXJhbVZhbHVlOiBldmVudC5yZWNvcmQuRW50SUQsXHJcbiAgICAgICAgICAgIFBhcmFtVHlwZTogUGFyYW1UeXBlRW51bVtcIlF1ZXJ5IHBhcmFtXCJdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgUGFyYW1OYW1lOiBcIlZlcnNpb25cIixcclxuICAgICAgICAgICAgUGFyYW1WYWx1ZTogZXZlbnQucmVjb3JkLlZlcnNpb24sXHJcbiAgICAgICAgICAgIFBhcmFtVHlwZTogUGFyYW1UeXBlRW51bVtcIlF1ZXJ5IHBhcmFtXCJdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJxdWVyeSBwYXJhbXNcIiwgZHluYW1pY01vZHVsZVBhcmFtcylcclxuICAgICAgICB0aGlzLnV0aWxpdHlIZWxwZXJTZXJ2aWNlLlJ1bkVuZFBvaW50Q2FsbChcclxuICAgICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLkZvcm1zLkdldEJ5SURBbmRWZXJzaW9uRW5kUG9pbnQsXHJcbiAgICAgICAgICBkeW5hbWljTW9kdWxlUGFyYW1zLFxyXG4gICAgICAgICAgKHJlczogRm9ybSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSByZXM7XHJcbiAgICAgICAgICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJSRVNcIiwgcmVzKVxyXG4gICAgICAgICAgICAvLyBwcmVwYXJvIGkgZGF0aSBkZWwgcmVjb3JkXHJcbiAgICAgICAgICAgIHZhciBkeW5hbWljUmVjb3JkUGFyYW1zID0gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFBhcmFtTmFtZTogXCJpZFwiLFxyXG4gICAgICAgICAgICAgICAgUGFyYW1WYWx1ZTogZXZlbnQucmVjb3JkLklELFxyXG4gICAgICAgICAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5SGVscGVyU2VydmljZS5SdW5FbmRQb2ludENhbGwoXHJcbiAgICAgICAgICAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uUmVjb3Jkcy5HZXRCeUlERW5kUG9pbnQsXHJcbiAgICAgICAgICAgICAgZHluYW1pY1JlY29yZFBhcmFtcyxcclxuICAgICAgICAgICAgICAocmVzOiBEeW5SZWNvcmQpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmQgPSBKU09OLnBhcnNlKHJlcy5TZXJpYWxpemVkVmFsdWVzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmQuSUQgPSByZXMuSUQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkLkVudElEID0gcmVzLkVudElEO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZC51c2VySUQgPSByZXMudXNlcklEO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZC5WZXJzaW9uID0gcmVzLlZlcnNpb247XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdNb2RlID0gdGhpcy5kZWZhdWx0Vmlld01vZGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXZlbnQucmVjb3JkKSk7XHJcbiAgICAgICAgdGhpcy52aWV3TW9kZSA9IHRoaXMuZGVmYXVsdFZpZXdNb2RlO1xyXG4gICAgICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZHluYW1pY01vZHVsZVBhcmFtczogQXJyYXk8RW5kUG9pbnREYXRhUGFyYW1zPiA9XHJcbiAgICAgICAgbmV3IEFycmF5PEVuZFBvaW50RGF0YVBhcmFtcz4oKTtcclxuICAgICAgZHluYW1pY01vZHVsZVBhcmFtcy5wdXNoKHtcclxuICAgICAgICBQYXJhbU5hbWU6IFwiaWRcIixcclxuICAgICAgICBQYXJhbVZhbHVlOiB0aGlzLmZvcm1JRCxcclxuICAgICAgICBQYXJhbVR5cGU6IFBhcmFtVHlwZUVudW1bXCJRdWVyeSBwYXJhbVwiXSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXRpbGl0eUhlbHBlclNlcnZpY2UuUnVuRW5kUG9pbnRDYWxsKFxyXG4gICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLkZvcm1zLkdldEJ5SURFbmRQb2ludCxcclxuICAgICAgICBkeW5hbWljTW9kdWxlUGFyYW1zLFxyXG4gICAgICAgIChyZXM6IEZvcm0pID0+IHtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwic3VjY2VzcyBSdW5FbmRQb2ludENhbGxcIixyZXMsdGhpcy5kZWZhdWx0Vmlld01vZGUpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZCA9IG51bGw7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuYW5zd2VyVG9EdXBsaWNhdGVJZCAhPSBudWxsKXtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZCA9IHRoaXMuYW5zd2VyVG9EdXBsaWNhdGVJZDtcclxuICAgICAgICAgICAgdGhpcy5pc0R1cGxpY2F0ZSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMub25seVZpZXcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld01vZGUgPSB0aGlzLmRlZmF1bHRWaWV3TW9kZTtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvciBSdW5FbmRQb2ludENhbGxcIixlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIHRoaXMuc2VsZWN0ZWRSZWNvcmQgPSBudWxsO1xyXG4gICAgICAvLyB0aGlzLm9ubHlWaWV3ID0gZmFsc2U7XHJcbiAgICAgIC8vIHRoaXMudmlld01vZGUgPSBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLkNPTVBJTEU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gaW52b2NhdG8gcXVhbmRvIHNpIHZ1b2xlIGFnZ2l1bmdlcmUsIHZpc3VhbGl6emFyZSBvIG1vZGlmaWNhcmUgdW4gcmVjb3JkLlxyXG4gICAqIFNlIGwnZXZlbnRvIMOoIG51bGwgdnVvbCBkaXJlIGNoZSBzdGlhbW8gYWdnaXVuZ2VuZG8gdW4gbnVvdm8gcmVjb3JkIGFsdHJpbWVudGkgc2lhbW8gaW4gbW9kaWZpY2FcclxuICAgKiBvIHZpc3VhbGl6emF6aW9uZS4gSW4gcXVlc3RpIHVsdGltaSBkdWUgY2FzaSwgc2Ugw6ggc3RhdG8gY29uZmlndXJhdG8gdW4gZW5kcG9pbnQgcGVyIGlsIHJlY3VwZXJvXHJcbiAgICogZGVsIHJlY29yZCBjb21wbGV0byBhbGxvcmEgdmllbmUgZWZmZXR0dWF0YSB1bmEgY2hpYW1hdGEgYWwgc2VydmVyLCBhbHRyaW1lbnRpIHZpZW5lIHVzYXRvIGwnb2dnZXR0byBzZWxlemlvbmF0by5cclxuICAgKiBAcGFyYW0gZXZlbnQgT2dnZXR0byBjb24gZHVlIHByb3ByaWV0w6A6XHJcbiAgICogXCJyZWNvcmRcIiA9IG9nZ2V0dG8gZGEgbW9kaWZpY2FyZS92aXN1YWxpenphcmUsXHJcbiAgICogXCJvbmx5Vmlld1wiID0gYm9vbGVhbm8gKHNlIFRSVUUgc2lhbW8gaW4gdmlzdWFsaXp6YXppb25lIGFsdHJpbWVudGkgaW4gbW9kaWZpY2EpXHJcbiAgICovXHJcbiAgb25WaWV3UmVjb3JkKHJlY29yZDogUmVjb3JkKSB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2VcclxuICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZCA9IHJlY29yZFxyXG4gICAgICB0aGlzLnZpZXdNb2RlID0gRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5WSUVXXHJcbiAgICAgIHRoaXMubG9hZGVyID0gdHJ1ZVxyXG5cclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gU0FWRVxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgZ2VzdGlyZSBpbCBjb21wb25lbnRlIGRvcG8gY2hlIGlsIHJlY29yZCDDqCBzdGF0byBhZ2dpdW50byBvIG1vZGlmaWNhdG8uXHJcbiAgICogQHBhcmFtIGV2ZW50IE9nZ2V0dG8gZGkgdGlwbyBSZWNvcmQgZGEgc2FsdmFyZS5cclxuICAgKi9cclxuICBvblNhdmVSZWNvcmQoZXZlbnQ6IFJlY29yZCkge1xyXG4gICAgLy8gdGhpcy5nZXRSZWNvcmRzQnlGb3JtSUQoKTtcclxuICAgIHRoaXMuc2F2ZVJlY29yZC5lbWl0KGV2ZW50KTtcclxuICAgIC8vIGlmICh0aGlzLm9uU2F2ZUJhY2tUb0xpc3QpIHtcclxuICAgIC8vICAgdGhpcy52aWV3TW9kZSA9IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uTElTVDtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMudmlld01vZGUgPSBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLk5PTkU7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLnZpZXdNb2RlID0gdGhpcy5vbkJhY2tUb1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBnZXN0aXJlIGlsIGNvbXBvbmVudGUgZG9wbyBjaGUgZSBzdGF0YSByaWNoaWVzdGEgdW5hIGFnZ2l1bnRvIG8gdW5hIG1vZGlmaWNhIGRlbCByZWNvcmQgbmVsbCcgYWRkLWZvcm0tcmVjb3JkLlxyXG4gICAqIEBwYXJhbSBldmVudCBPZ2dldHRvIGRpIHRpcG8gUmVjb3JkIGRhIHNhbHZhcmUuXHJcbiAgICovXHJcbiAgb25BZnRlclNhdmVSZWNvcmQoZXZlbnQ6IFJlY29yZCkge1xyXG4gICAgdGhpcy5hZnRlclNhdmVSZWNvcmQuZW1pdChldmVudCk7XHJcbiAgICAvLyBpZiAodGhpcy5vblNhdmVCYWNrVG9MaXN0KSB7XHJcbiAgICAvLyAgIHRoaXMudmlld01vZGUgPSBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLkxJU1Q7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLnZpZXdNb2RlID0gRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5OT05FO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy52aWV3TW9kZSA9IHRoaXMub25CYWNrVG9cclxuICB9XHJcblxyXG5cclxuICBvblNhdmVKc29uKHJlY29yZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLlNhdmVKU09OLmVtaXQocmVjb3JkKTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBTQVZFXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgcmVsb2FkKCl7XHJcbiAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4gdGhpcy5sb2FkZXIgPSB0cnVlLFxyXG4gICAgICA1MFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIERFTEVURSBcclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGVsaW1pbmFyZSB1biByZWNvcmQgZGFsbGEgbGlzdGEuXHJcbiAgICogQHBhcmFtIHJlY29yZCBSZWNvcmQgZGEgZWxpbWluYXJlIHNlbGV6aW9uYXRvIHN1bGxhIGVxcC10YWJsZS5cclxuICAgKi9cclxuICBvbkRlbGV0ZVJlY29yZChyZWNvcmQ6IFJlY29yZCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbiAmJlxyXG4gICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbi5SZWNvcmRzLkRlbGV0ZUVuZFBvaW50XHJcbiAgICApIHtcclxuICAgICAgRXFwRHluYW1pY01vZHVsZURpYWxvZ1NlcnZpY2UuQ29uZmlybShcclxuICAgICAgICBcIkVsaW1pbmFyZSBpbCByZWNvcmQgc2VsZXppb25hdG8/XCIsXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdmFyIGR5bmFtaWNNb2R1bGVQYXJhbXMgPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBQYXJhbU5hbWU6IFwiaWRcIixcclxuICAgICAgICAgICAgICBQYXJhbVZhbHVlOiByZWNvcmQuSUQsXHJcbiAgICAgICAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdO1xyXG4gICAgICAgICAgdGhpcy51dGlsaXR5SGVscGVyU2VydmljZS5SdW5FbmRQb2ludENhbGwoXHJcbiAgICAgICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuRGVsZXRlRW5kUG9pbnQsXHJcbiAgICAgICAgICAgIGR5bmFtaWNNb2R1bGVQYXJhbXMsXHJcbiAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAvLyB0aGlzLmdldFJlY29yZHNCeUZvcm1JRCgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWZ0ZXJEZWxldGVSZWNvcmQuZW1pdChyZWNvcmQpO1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMucmVsb2FkVGFibGVzKClcclxuICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmFsc2UsXHJcbiAgICAgICAgXCJSaWNoaWVzdGEgY29uZmVybWFcIlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZWxldGVSZWNvcmQuZW1pdChyZWNvcmQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkFmdGVyRGVsZXRlUmVjb3JkKHJlY29yZDogUmVjb3JkKSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IGZhbHNlXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubmdPbkluaXQoKSwgNTAgKVxyXG4gICAgdGhpcy5hZnRlckRlbGV0ZVJlY29yZC5lbWl0KHJlY29yZCk7XHJcbiAgfVxyXG4gIC8vI2VkbnJlZ2lvbiBERUxFVEUgXHJcblxyXG4gIG9uQWZ0ZXJGaWx0ZXIoZXYpe1xyXG4gICAgdGhpcy5hZnRlckZpbHRlci5lbWl0KGV2KTtcclxuICB9XHJcblxyXG4gIG9uRHJhZ1N0YXJ0ZWQoZWw6IGFueSl7XHJcbiAgICB0aGlzLmRyYWdTdGFydGVkLmVtaXQoZWwpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnUmVsZWFzZWQoKXtcclxuICAgIHRoaXMuZHJhZ1JlbGVhc2VkLmVtaXQoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxlcXAtZHluYW1pYy1tb2R1bGUtc3Bpbm5lcj48L2VxcC1keW5hbWljLW1vZHVsZS1zcGlubmVyPlxyXG5cclxuPCEtLSBbcmVjb3JkXT1cIidiM2Q5NDNjMC05YzAxLTQ5NzMtOTQ4Yi03YWE0MTg2MzRmNzInXCIgLS0+XHJcbjx2aWV3LWZvcm0tcmVjb3JkXHJcbiAgKm5nSWY9XCJsb2FkZXIgJiYgdmlld01vZGUgPT0gZHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5WSUVXXCJcclxuICBjbGFzcz1cImR5bmFtaWMtbW9kdWxlLXZpZXdcIlxyXG4gIFtlbmRQb2ludENvbmZpZ3VyYXRpb25dPVwiZW5kUG9pbnRDb25maWd1cmF0aW9uXCJcclxuICBbcmVjb3JkXT1cInNlbGVjdGVkUmVjb3JkLklEXCJcclxuICAoZ29CYWNrRXZlbnQpPVwib25Hb0JhY2soKVwiXHJcbj5cclxuPC92aWV3LWZvcm0tcmVjb3JkPlxyXG5cclxuPGdyYXBoc1xyXG4qbmdJZj1cImxvYWRlciAmJiB2aWV3TW9kZSA9PSBkeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLkdSQVBIU1wiXHJcbmNsYXNzPVwiZHluYW1pYy1tb2R1bGUtdmlld1wiXHJcbltlbmRQb2ludENvbmZpZ3VyYXRpb25dPVwiZW5kUG9pbnRDb25maWd1cmF0aW9uXCJcclxuW2Zvcm1dPVwiZm9ybVwiXHJcbltmb3JtSURdPVwiZm9ybUlEXCJcclxuW3VzZXJJRF09XCJ1c2VySURcIlxyXG5bY29uZmlndXJhdGlvbnNdPVwiZHluYW1pY01vZHVsZUNvbXBpbGVDb25maWdcIlxyXG4+XHJcbjwvZ3JhcGhzPlxyXG5cclxuPGZpbHRlci1mb3JtLXN0YXRpc3RpY1xyXG4qbmdJZj1cImxvYWRlciAmJiB2aWV3TW9kZSA9PSBkeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLkZJTFRFUlwiXHJcbiAgY2xhc3M9XCJkeW5hbWljLW1vZHVsZS1jb21waWxlXCJcclxuICBbZm9ybV09XCJmb3JtXCJcclxuICBbZm9ybUlEXT1cImZvcm1JRFwiXHJcbiAgW3JlY29yZF09XCJzZWxlY3RlZFJlY29yZFwiXHJcbiAgW29ubHlWaWV3XT1cIm9ubHlWaWV3XCJcclxuICBbZGVmYXVsdExpc3RBY3Rpb25zXT1cImRlZmF1bHRMaXN0QWN0aW9uc1wiXHJcbiAgW2ZpbHRlclJlc3VsdFZpZXdNb2RlXT1cImZpbHRlclJlc3VsdFZpZXdNb2RlXCJcclxuICBbZW5kUG9pbnRDb25maWd1cmF0aW9uXT1cImVuZFBvaW50Q29uZmlndXJhdGlvblwiXHJcbiAgW3VzZXJJRF09XCJ1c2VySURcIlxyXG5cclxuICBbY29uZmlndXJhdGlvbnNdPVwiZHluYW1pY01vZHVsZUNvbXBpbGVDb25maWdcIlxyXG4gIChhZnRlckZpbHRlcik9XCJvbkFmdGVyRmlsdGVyKCRldmVudClcIlxyXG4+XHJcbjwvZmlsdGVyLWZvcm0tc3RhdGlzdGljPlxyXG5cclxuPGFkZC1mb3JtLXJlY29yZFxyXG4qbmdJZj1cImxvYWRlciAmJiB2aWV3TW9kZSA9PSBkeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLkNPTVBJTEVcIlxyXG4gIGNsYXNzPVwiZHluYW1pYy1tb2R1bGUtY29tcGlsZVwiXHJcbiAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgW3JlY29yZF09XCJzZWxlY3RlZFJlY29yZFwiXHJcbiAgW29ubHlWaWV3XT1cIm9ubHlWaWV3XCJcclxuICBbaXNEdXBsaWNhdGVdPVwiaXNEdXBsaWNhdGVcIlxyXG5cclxuICBbZW5kUG9pbnRDb25maWd1cmF0aW9uXT1cImVuZFBvaW50Q29uZmlndXJhdGlvblwiXHJcbiAgW3VzZXJJRF09XCJ1c2VySURcIlxyXG5cclxuICBbY29uZmlndXJhdGlvbnNdPVwiZHluYW1pY01vZHVsZUNvbXBpbGVDb25maWdcIlxyXG5cclxuICAoc2F2ZVJlY29yZEV2ZW50KT1cIm9uU2F2ZVJlY29yZCgkZXZlbnQpXCJcclxuICAoYWZ0ZXJTYXZlUmVjb3JkRXZlbnQpPVwib25BZnRlclNhdmVSZWNvcmQoJGV2ZW50KVwiXHJcbj5cclxuPC9hZGQtZm9ybS1yZWNvcmQ+XHJcblxyXG48bGlzdC1mb3JtLXJlY29yZFxyXG4gICpuZ0lmPVwibG9hZGVyICYmIHZpZXdNb2RlID09IGR5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uTElTVFwiXHJcbiAgY2xhc3M9XCJkeW5hbWljLW1vZHVsZS1saXN0XCJcclxuICBbZm9ybUlEXT1cImZvcm1JRFwiXHJcblxyXG4gIFtlbmRQb2ludENvbmZpZ3VyYXRpb25dPVwiZW5kUG9pbnRDb25maWd1cmF0aW9uXCJcclxuXHJcbiAgW2NvbmZpZ3VyYXRpb25zXT1cImR5bmFtaWNNb2R1bGVMaXN0Q29uZmlnXCJcclxuICBbZXh0ZXJuYWxCdXR0b25zXT1cImV4dGVybmFsQnV0dG9uc1wiXHJcblxyXG4gIChvblZpZXdSZWNvcmQpPVwib25WaWV3UmVjb3JkKCRldmVudClcIlxyXG4gIChvbkFkZFZpZXdFZGl0UmVjb3JkKT1cIm9uQWRkVmlld0VkaXRSZWNvcmQoJGV2ZW50KVwiXHJcbiAgKG9uRGVsZXRlUmVjb3JkKT1cIm9uRGVsZXRlUmVjb3JkKCRldmVudClcIlxyXG4gIChvbkFmdGVyRGVsZXRlUmVjb3JkKT1cIm9uQWZ0ZXJEZWxldGVSZWNvcmQoJGV2ZW50KVwiXHJcbj5cclxuPC9saXN0LWZvcm0tcmVjb3JkPlxyXG5cclxuPHJlcGFpci1mb3JtLWZpZWxkc1xyXG4gICpuZ0lmPVwibG9hZGVyICYmIHZpZXdNb2RlID09IGR5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uUkVQQUlSXCJcclxuICBjbGFzcz1cImR5bmFtaWMtbW9kdWxlLXJlcGFpclwiXHJcbiAgW2Zvcm1JRF09XCJmb3JtSURcIlxyXG5cclxuICBbY29uZmlndXJhdGlvbnNdPVwiZHluYW1pY01vZHVsZVJlcGFpckNvbmZpZ1wiXHJcbiAgW2VuZFBvaW50Q29uZmlndXJhdGlvbl09XCJlbmRQb2ludENvbmZpZ3VyYXRpb25cIlxyXG5cclxuICAob25TYXZlSnNvbik9XCJvblNhdmVKc29uKCRldmVudClcIlxyXG4+XHJcbjwvcmVwYWlyLWZvcm0tZmllbGRzPlxyXG5cclxuPGxpc3Qtdmlldy1mb3JtLXJlY29yZFxyXG4gICpuZ0lmPVwibG9hZGVyICYmIHZpZXdNb2RlID09IGR5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uTElTVFdJRVdcIlxyXG4gIGNsYXNzPVwiZHluYW1pYy1tb2R1bGUtbGlzdC12aWV3XCJcclxuICBbY29uZmlndXJhdGlvbnNdPVwiZHluYW1pY01vZHVsZUxpc3RDb25maWdcIlxyXG4gIFtjb21waWxlQ29uZmlndXJhdGlvbnNdPVwiZHluYW1pY01vZHVsZUNvbXBpbGVDb25maWdcIlxyXG4gIFtlbmRQb2ludENvbmZpZ3VyYXRpb25dPVwiZW5kUG9pbnRDb25maWd1cmF0aW9uXCJcclxuICBbZm9ybUlEXT1cImZvcm1JRFwiXHJcbiAgW3VzZXJJRF09XCJ1c2VySURcIlxyXG4gIFtoaWdobGlnaHRGaWx0ZXJdPVwiaGlnaGxpZ2h0RmlsdGVyXCJcclxuICBbZGVmYXVsdExpc3RWaWV3RnVuY3Rpb25dPVwiZGVmYXVsdExpc3RWaWV3RnVuY3Rpb25cIlxyXG4gIFtleHRlcm5hbEJ1dHRvbnNdPVwiZXh0ZXJuYWxCdXR0b25zXCJcclxuICBbb25seVZpZXddPVwiIWRlZmF1bHRMaXN0QWN0aW9ucy5lZGl0XCJcclxuXHJcbiAgKG9uQWRkVmlld0VkaXRSZWNvcmQpPVwib25BZGRWaWV3RWRpdFJlY29yZCgkZXZlbnQpXCJcclxuICAob25EZWxldGVSZWNvcmQpPVwib25EZWxldGVSZWNvcmQoJGV2ZW50KVwiXHJcbiAgKHNhdmVSZWNvcmRFdmVudCk9XCJvblNhdmVSZWNvcmQoJGV2ZW50KVwiXHJcbiAgKGFmdGVyU2F2ZVJlY29yZEV2ZW50KT1cIm9uQWZ0ZXJTYXZlUmVjb3JkKCRldmVudClcIlxyXG4gIChkcmFnU3RhcnRlZCk9XCJvbkRyYWdTdGFydGVkKCRldmVudClcIlxyXG4gIChkcmFnUmVsZWFzZWQpPVwib25EcmFnUmVsZWFzZWQoKVwiXHJcbiAgPlxyXG48L2xpc3Qtdmlldy1mb3JtLXJlY29yZD5cclxuIl19
|
|
460
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXFwLWR5bmFtaWMtbW9kdWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0ZWQvZXFwLWR5bmFtaWMtbW9kdWxlL2VxcC1keW5hbWljLW1vZHVsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydGVkL2VxcC1keW5hbWljLW1vZHVsZS9lcXAtZHluYW1pYy1tb2R1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFHOUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUdMLGFBQWEsR0FDZCxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFFdEgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFaEYsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDcEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFRakUsTUFBTSxPQUFPLHlCQUF5QjtJQTJGcEMsWUFBb0Isb0JBQTBDLEVBQ3BELGNBQWlDO1FBRHZCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDcEQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBMUZsQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBSzNCLG9CQUFlLEdBQThCLHlCQUF5QixDQUFDLElBQUksQ0FBQztRQUU1RSxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBQ3JCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0IsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsV0FBTSxHQUFrQixJQUFJLENBQUM7UUFDN0IsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG9CQUFlLEdBQXdCLElBQUksS0FBSyxFQUFnQixDQUFDO1FBQ2pFLHdCQUFtQixHQUFrQixJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ3pELDRCQUF1QixHQUFhLElBQUksQ0FBQztRQUN6Qyx1QkFBa0IsR0FBOEMsSUFBSSx5Q0FBeUMsRUFBRSxDQUFDO1FBQ2hILHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixhQUFRLEdBQThCLElBQUksQ0FBQztRQUMzQyx5QkFBb0IsR0FBMEMscUNBQXFDLENBQUMsaUJBQWlCLENBQUM7UUFDdEgscUJBQWdCLEdBQVEsSUFBSSxDQUFDO1FBQzdCLG1CQUFjLEdBQVEsSUFBSSxDQUFDO1FBQzNCLGVBQVUsR0FBUSxJQUFJLENBQUM7UUFDdkIsb0JBQWUsR0FBUSxJQUFJLENBQUM7UUFDNUIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBTTdDLFlBQU8sR0FBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2pDOzs7V0FHRztRQUNILGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBRTdCOzs7V0FHRztRQUNILGNBQVMsR0FBVyxJQUFJLENBQUM7UUFFekI7Ozs7O1dBS0c7UUFDSCwwQkFBcUIsR0FBMEIsSUFBSSxDQUFDO1FBRXBELG1DQUFtQztRQUNuQyxtSEFBbUg7UUFDbkgseUJBQXlCO1FBRXpCOzs7V0FHRztRQUNPLGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5RCxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2hFLGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM1RCxnQkFBVyxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUM3Rjs7O1dBR0c7UUFDTyxvQkFBZSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25FLHNCQUFpQixHQUN6QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25CLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUQsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1RCxRQUFHLEdBQTJCLElBQUksWUFBWSxFQUFZLENBQUM7UUFFckUsU0FBSSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDNUIsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIsOEJBQXlCLEdBQUcseUJBQXlCLENBQUM7UUFTdEQsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFZLEtBQUssQ0FBQztJQUdpQixDQUFDO0lBRS9DLEtBQUssQ0FBQyxRQUFRO1FBQ1osYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXpDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRS9FLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLDBCQUEwQixDQUM5RCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQ3pCLENBQUM7UUFDRixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSx1QkFBdUIsQ0FDeEQsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLEtBQUssRUFBZ0IsRUFDekIsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsbUJBQW1CLENBQ3pCLENBQUM7UUFDRixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSx5QkFBeUIsQ0FDNUQsSUFBSSxDQUFDLFFBQVEsQ0FDZCxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDL0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUM7UUFDdkUscUVBQXFFO1FBRXJFLHVDQUF1QztRQUN2QyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7WUFDdkIsZ0RBQWdEO1lBQ2hELDRCQUE0QjtTQUM3QjtRQUVELHdDQUF3QztRQUN4QyxhQUFhLENBQUMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBQ3JGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFBO0lBQ3BCLENBQUM7SUFFRCxlQUFlO1FBRWIsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLHlCQUF5QixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLHlCQUF5QixDQUFDLE1BQU0sRUFBRTtZQUN6SCwyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQzVDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDeEQ7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYTtTQUUzRTtJQUNILENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsMkRBQTJEO0lBQzNELHVDQUF1QztJQUN2QywrQkFBK0I7SUFDL0IsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtJQUN0QiwrQ0FBK0M7SUFDL0MsUUFBUTtJQUNSLCtDQUErQztJQUMvQyx3REFBd0Q7SUFDeEQsMkJBQTJCO0lBQzNCLHVCQUF1QjtJQUN2Qiw2QkFBNkI7SUFDN0IseUJBQXlCO0lBQ3pCLHNDQUFzQztJQUV0Qyw0RUFBNEU7SUFDNUUsNkNBQTZDO0lBQzdDLGFBQWE7SUFDYixpREFBaUQ7SUFDakQsU0FBUztJQUNULGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsSUFBSTtJQUVKOzs7OztPQUtHO0lBQ0gseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyRCxJQUFJLENBQUMscUJBQXFCO2dCQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQUMseUJBQXlCLENBQ2pELElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztTQUNIO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsK0JBQStCO0lBQzdCLE9BQU87SUFDUCxrQ0FBa0M7SUFDbEMsMENBQTBDO0lBQzFDLDJEQUEyRDtJQUMzRCxNQUFNO0lBQ04sZ0NBQWdDO0lBQ2hDLFFBQVE7SUFDUiw0QkFBNEI7SUFDNUIsa0NBQWtDO0lBQ2xDLGlEQUFpRDtJQUNqRCxTQUFTO0lBQ1QsT0FBTztJQUNQLHFEQUFxRDtJQUNyRCw4REFBOEQ7SUFDOUQsMkJBQTJCO0lBQzNCLG1DQUFtQztJQUNuQyxtRUFBbUU7SUFDbkUsNkJBQTZCO0lBQzdCLDZDQUE2QztJQUM3QyxtREFBbUQ7SUFDbkQsNEJBQTRCO0lBQzVCLGtDQUFrQztJQUNsQyxzQ0FBc0M7SUFDdEMsb0NBQW9DO0lBQ3BDLDRDQUE0QztJQUM1Qyw0REFBNEQ7SUFDNUQsWUFBWTtJQUNaLFFBQVE7SUFDUixPQUFPO0lBQ1AsSUFBSTtJQUNOLElBQUk7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFFO0lBQ2pDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILG1CQUFtQixDQUFDLEtBQTRDO1FBRTlELElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDL0IsYUFBYSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQzlELElBQ0UsSUFBSSxDQUFDLHFCQUFxQjtnQkFDMUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU87Z0JBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUNsRDtnQkFDQSx3Q0FBd0M7Z0JBQ3hDLElBQUksbUJBQW1CLEdBQUc7b0JBQ3hCO3dCQUNFLFNBQVMsRUFBRSxPQUFPO3dCQUNsQixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLO3dCQUM5QixTQUFTLEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FBQztxQkFDeEM7b0JBQ0Q7d0JBQ0UsU0FBUyxFQUFFLFNBQVM7d0JBQ3BCLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87d0JBQ2hDLFNBQVMsRUFBRSxhQUFhLENBQUMsYUFBYSxDQUFDO3FCQUN4QztpQkFDRixDQUFDO2dCQUNGLGFBQWEsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUE7Z0JBQzNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQzFELG1CQUFtQixFQUNuQixDQUFDLEdBQVMsRUFBRSxFQUFFO29CQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO29CQUNoQixhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtvQkFDbEMsNEJBQTRCO29CQUM1QixJQUFJLG1CQUFtQixHQUFHO3dCQUN4Qjs0QkFDRSxTQUFTLEVBQUUsSUFBSTs0QkFDZixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUMzQixTQUFTLEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FBQzt5QkFDeEM7cUJBQ0YsQ0FBQztvQkFDRixJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFDbEQsbUJBQW1CLEVBQ25CLENBQUMsR0FBYyxFQUFFLEVBQUU7d0JBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzt3QkFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQzt3QkFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQzt3QkFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO3dCQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDckIsQ0FBQyxDQUNGLENBQUM7Z0JBQ0osQ0FBQyxDQUNGLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzthQUNwQjtTQUNGO2FBQU07WUFDTCxNQUFNLG1CQUFtQixHQUN2QixJQUFJLEtBQUssRUFBc0IsQ0FBQztZQUNsQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDdkIsU0FBUyxFQUFFLGFBQWEsQ0FBQyxhQUFhLENBQUM7YUFDeEMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FDdkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQ2hELG1CQUFtQixFQUNuQixDQUFDLEdBQVMsRUFBRSxFQUFFO2dCQUNaLG1FQUFtRTtnQkFDbkUsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUUzQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUM7b0JBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO29CQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztpQkFDekI7Z0JBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckIsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQ0YsQ0FBQztZQUVGLDhCQUE4QjtZQUM5Qix5QkFBeUI7WUFDekIscURBQXFEO1NBQ3REO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsWUFBWSxDQUFDLE1BQWM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUE7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUE7UUFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7SUFFdEIsQ0FBQztJQUVELGVBQWU7SUFDZjs7O09BR0c7SUFDSCxZQUFZLENBQUMsS0FBYTtRQUN4Qiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsK0JBQStCO1FBQy9CLG9EQUFvRDtRQUNwRCxXQUFXO1FBQ1gsb0RBQW9EO1FBQ3BELElBQUk7UUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsK0JBQStCO1FBQy9CLG9EQUFvRDtRQUNwRCxXQUFXO1FBQ1gsb0RBQW9EO1FBQ3BELElBQUk7UUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDL0IsQ0FBQztJQUdELFVBQVUsQ0FBQyxNQUFjO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxrQkFBa0I7SUFPbEIsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLFVBQVUsQ0FDUixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFDeEIsRUFBRSxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxNQUFjO1FBQzNCLElBQ0UsSUFBSSxDQUFDLHFCQUFxQjtZQUMxQixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFDakQ7WUFDQSw2QkFBNkIsQ0FBQyxPQUFPLENBQ25DLGtDQUFrQyxFQUNsQyxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxtQkFBbUIsR0FBRztvQkFDeEI7d0JBQ0UsU0FBUyxFQUFFLElBQUk7d0JBQ2YsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFO3dCQUNyQixTQUFTLEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FBQztxQkFDeEM7aUJBQ0YsQ0FBQztnQkFDRixJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFDakQsbUJBQW1CLEVBQ25CLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ04sNkJBQTZCO29CQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNwQyxzQkFBc0I7b0JBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsQ0FBQyxDQUNGLENBQUM7WUFDSixDQUFDLEVBQ0QsS0FBSyxFQUNMLG9CQUFvQixDQUNyQixDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUNELG1CQUFtQixDQUFDLE1BQWM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDbkIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUUsQ0FBQTtRQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxvQkFBb0I7SUFFcEIsYUFBYSxDQUFDLEVBQUU7UUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQU87UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxFQUFZO1FBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7O3VIQXJkVSx5QkFBeUI7MkdBQXpCLHlCQUF5Qiw2cENDcEN0Qyx1cEhBK0dBOzRGRDNFYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usb0JBQW9COzJJQU1yQixTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQStCSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUVHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxHQUFHO3NCQUFaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2NvbnRleHQubW9kZWxcIjtcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUNvbXBpbGVDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2R5bmFtaWNNb2R1bGVDb21waWxlQ29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2R5bmFtaWNNb2R1bGVDb25maWcubW9kZWxcIjtcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUdlbmVyYWxDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2R5bmFtaWNNb2R1bGVHZW5lcmFsQ29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVMaXN0Q29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlTGlzdENvbmZpZy5tb2RlbFwiO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlUmVwYWlyQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlUmVwYWlyQ29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0gfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2R5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW1cIjtcclxuaW1wb3J0IHtcclxuICBFbmRQb2ludENvbmZpZ3VyYXRpb24sXHJcbiAgRW5kUG9pbnREYXRhUGFyYW1zLFxyXG4gIFBhcmFtVHlwZUVudW0sXHJcbn0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9lbmRQb2ludENvbmZpZ3VyYXRpb24ubW9kZWxcIjtcclxuaW1wb3J0IHsgRm9ybSwgRm9ybVR5cGVFbnVtIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9mb3JtLm1vZGVsXCI7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVMaXN0Rm9ybVJlY29yZEFjdGlvbnNEZWZhdWx0IH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlTGlzdEZvcm1SZWNvcmRBY3Rpb25zRGVmYXVsdFwiO1xyXG5pbXBvcnQgeyBEeW5SZWNvcmQsIFJlY29yZCwgUmVjb3JkQnV0dG9uIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWxcIjtcclxuaW1wb3J0IHsgRXFwRHluYW1pY01vZHVsZURpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvZXFwLWR5bmFtaWMtbW9kdWxlLWRpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlIZWxwZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXNcIjtcclxuaW1wb3J0IHsgRmlsdGVyUmVzdWx0VHlwZSB9IGZyb20gXCJAZXFwcm9qZWN0L2VxcC1maWx0ZXJzXCI7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVGaWx0ZXJSZXN1bHRWaWV3TW9kZUVudW0gfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2R5bmFtaWNNb2R1bGVGaWx0ZXJSZXN1bHRWaWV3TW9kZUVudW0ubW9kZWxcIjtcclxuaW1wb3J0IHsgR2xvYmFsU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9nbG9iYWwuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBldmVudE91dCB9IGZyb20gXCIuLi8uLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtbG9hZGVyL2R5bmFtaWMtbG9hZGVyLmRpcmVjdGl2ZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiZXFwLWR5bmFtaWMtbW9kdWxlXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9lcXAtZHluYW1pYy1tb2R1bGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZXFwLWR5bmFtaWMtbW9kdWxlLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXFwRHluYW1pY01vZHVsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGRlYnVnTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBASW5wdXQoKSBjb25maWd1cmF0aW9uczogRHluYW1pY01vZHVsZUNvbmZpZztcclxuICBASW5wdXQoKSBjb25maWd1cmF0aW9uczogRHluYW1pY01vZHVsZUdlbmVyYWxDb25maWc7XHJcbiAgQElucHV0KCkgZm9ybUlEOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3RhcnRlclZpZXdNb2RlOiBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtID0gRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5MSVNUO1xyXG5cclxuICBASW5wdXQoKSB1c2VySUQ6IHN0cmluZyA9IFwiMFwiO1xyXG4gIEBJbnB1dCgpIHNob3dUaXRsZSA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dTYXZlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSB2YWx1ZXM6IEFycmF5PFJlY29yZD4gPSBudWxsO1xyXG4gIEBJbnB1dCgpIEZvcm1KU09OID0gXCJcIjtcclxuICBASW5wdXQoKSBleHRlcm5hbEJ1dHRvbnM6IEFycmF5PFJlY29yZEJ1dHRvbj4gPSBuZXcgQXJyYXk8UmVjb3JkQnV0dG9uPigpO1xyXG4gIEBJbnB1dCgpIGxpc3RWaWV3UmVjb3JkVGl0bGU6IEFycmF5PHN0cmluZz4gPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRMaXN0Vmlld0Z1bmN0aW9uOiBGdW5jdGlvbiA9IG51bGw7XHJcbiAgQElucHV0KCkgZGVmYXVsdExpc3RBY3Rpb25zOiBEeW5hbWljTW9kdWxlTGlzdEZvcm1SZWNvcmRBY3Rpb25zRGVmYXVsdCA9IG5ldyBEeW5hbWljTW9kdWxlTGlzdEZvcm1SZWNvcmRBY3Rpb25zRGVmYXVsdCgpO1xyXG4gIEBJbnB1dCgpIG9uU2F2ZUJhY2tUb0xpc3QgPSBmYWxzZTtcclxuICBASW5wdXQoKSBvbkJhY2tUbzogRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bSA9IG51bGw7XHJcbiAgQElucHV0KCkgZmlsdGVyUmVzdWx0Vmlld01vZGU6IER5bmFtaWNNb2R1bGVGaWx0ZXJSZXN1bHRWaWV3TW9kZUVudW0gPSBEeW5hbWljTW9kdWxlRmlsdGVyUmVzdWx0Vmlld01vZGVFbnVtLklOVEVSTkFMX0VRUFRBQkxFO1xyXG4gIEBJbnB1dCgpIGFkZGl0aW9uYWxQYXJhbXM6IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgYWRkaXRpb25hbEluZm86IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgdXBkYXRlSW5mbzogYW55ID0gbnVsbDtcclxuICBASW5wdXQoKSBwcmVmaWx0ZXJQYXJhbXM6IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgc2hvd05ld1NlYXJjaEJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgYW5zd2VyVG9EdXBsaWNhdGVJZDogYW55O1xyXG4gIEBJbnB1dCgpIGhpZ2hsaWdodEZpbHRlcjogYW55O1xyXG4gIFxyXG4gIEBJbnB1dCgpIFF1ZXJ5RWRpdG9yQ29tcG9uZW50OiBhbnk7IC8vIEwnaW50ZXJvIGNvbXBvbmVudGUgcXVlcnkgRWRpdG9yXHJcblxyXG4gIGNvbnRleHQ6IENvbnRleHQgPSBuZXcgQ29udGV4dCgpO1xyXG4gIC8qKlxyXG4gICAqIFVybCBkZWwgc2VydmVyIGRhIGNoaWFtYXJlIHBlciByZWN1cGVyYXJlLCBzYWx2YXJlIG8gZWxpbWluYXJlIGkgcmVjb3JkLlxyXG4gICAqIFVzYXRvIHBlciBjcmVhcmUgbGEgY29uZmlndXJhemlvbmUgZGkgZGVmYXVsdCBkZWdsaSBlbmRwb2ludCBkYSBjaGlhbWFyZS5cclxuICAgKi9cclxuICBiYXNlU2VydmVyVXJsOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBUb2tlbiBkYSB1c2FyZSBuZWdsaSBlbmRwb2ludCBkYSBjaGlhbWFyZSBwZXIgcmVjdXBlcmFyZSBvIHNhbHZhcmUgaSByZWNvcmQuXHJcbiAgICogVXNhdG8gc29sbyBzZSB2aWVuZSBwb3BvbGF0YSBsYSBwcm9wcmlldMOgIFwiYmFzZVNlcnZlclVybFwiLlxyXG4gICAqL1xyXG4gIHVzZXJUb2tlbjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uZmlndXJhemlvbmUgZGVnbGkgZW5kcG9pbnQgZGEgY2hpYW1hcmUgcGVyIHJlY3VwZXJhcmUgbyBzYWx2YXJlIGkgZGF0aS5cclxuICAgKiBQdcOyIGVzc2VyZSBkZWZpbml0YSBkYWxsJ3V0ZW50ZSBvcHB1cmUgbGFzY2lhdGEgbnVsbCwgdmllbmUgcG9wb2xhdGEgY29uIGRlaVxyXG4gICAqIHZhbG9yaSBkaSBkZWZhdWx0IHNlIHZpZW5lIHZhbG9yaXp6YXRhIGxhIHByb3ByaWV0w6AgXCJiYXNlU2VydmVyVXJsXCIgYWx0cmltZW50aVxyXG4gICAqIHZpZW5lIGxhc2NpYXRhIG51bGwgZSBub24gdmllbmUgZXNlZ3VpdGEgbmVzc3VuYSBjaGlhbWF0YSBhbCBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZW5kUG9pbnRDb25maWd1cmF0aW9uOiBFbmRQb2ludENvbmZpZ3VyYXRpb24gPSBudWxsO1xyXG5cclxuICAvL0BJbnB1dCgpIGZvcm06IEZvcm0gPSBuZXcgRm9ybSgpO1xyXG4gIC8vIGRlZmF1bHRMaXN0QWN0aW9uczogZHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQgPSBuZXcgZHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQoKTtcclxuICAvLyBGb3JtSlNPTjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnRpIGVtZXNzaSBxdWFuZG8gc2kgc2FsdmEsIGVsaW1pbmEgbyBkdXBsaWNhIHVuIHJlY29yZFxyXG4gICAqIHNlIG5vbiDDqCBzdGF0byBzcGVjaWZpY2F0byB1biBlbmRwb2ludCBkYSBjaGlhbWFyZS5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgc2F2ZVJlY29yZDogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuICBAT3V0cHV0KCkgZGVsZXRlUmVjb3JkOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPigpO1xyXG4gIEBPdXRwdXQoKSBTYXZlSlNPTjogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgYWZ0ZXJGaWx0ZXI6IEV2ZW50RW1pdHRlcjxBcnJheTxEeW5SZWNvcmQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8RHluUmVjb3JkPj4oKTtcclxuICAvKipcclxuICAgKiBFdmVudGkgZW1lc3NpIERPUE8gYXZlciBlc2VndWl0byB1bmEgY2hpYW1hdGEgYWwgc2VydmVyIHBlciBpbCBzYWx2YXRhZ2dpbyxcclxuICAgKiBsJ2VsaW1pbmF6aW9uZSBvIGxhIGR1cGxpY2F6aW9uZSBkaSB1biByZWNvcmQgYWxsJ2VuZHBvaW50IHNwZWNpZmljYXRvLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhZnRlclNhdmVSZWNvcmQ6IEV2ZW50RW1pdHRlcjxSZWNvcmQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ+KCk7XHJcbiAgQE91dHB1dCgpIGFmdGVyRGVsZXRlUmVjb3JkOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuICBAT3V0cHV0KCkgZHJhZ1N0YXJ0ZWQ6IEV2ZW50RW1pdHRlcjxSZWNvcmQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGRyYWdSZWxlYXNlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBvdXQ6IEV2ZW50RW1pdHRlcjxldmVudE91dD4gPSBuZXcgRXZlbnRFbWl0dGVyPGV2ZW50T3V0PigpO1xyXG5cclxuICBmb3JtOiBGb3JtID0gbmV3IEZvcm0oKTtcclxuICBsYXN0Zm9ybTogRm9ybSA9IG5ldyBGb3JtKCk7XHJcbiAgRm9ybVR5cGVFbnVtID0gRm9ybVR5cGVFbnVtO1xyXG4gIGR5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0gPSBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtO1xyXG4gIHNlbGVjdGVkUmVjb3JkOiBSZWNvcmQ7XHJcbiAgb25seVZpZXc6IGJvb2xlYW47XHJcbiAgdmlld01vZGU6IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW07XHJcbiAgZGVmYXVsdFZpZXdNb2RlOiBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtO1xyXG5cclxuICBkeW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZzogRHluYW1pY01vZHVsZUNvbXBpbGVDb25maWc7XHJcbiAgZHluYW1pY01vZHVsZUxpc3RDb25maWc6IER5bmFtaWNNb2R1bGVMaXN0Q29uZmlnO1xyXG4gIGR5bmFtaWNNb2R1bGVSZXBhaXJDb25maWc6IER5bmFtaWNNb2R1bGVSZXBhaXJDb25maWc7XHJcbiAgbG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNEdXBsaWNhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1dGlsaXR5SGVscGVyU2VydmljZTogVXRpbGl0eUhlbHBlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBHbG9iYWxTZXJ2aWNlLmRlYnVnTW9kZSA9IHRoaXMuZGVidWdNb2RlO1xyXG5cclxuICAgIHRoaXMub25CYWNrVG8gPSAodGhpcy5vbkJhY2tUbyA9PSBudWxsKSA/IHRoaXMuc3RhcnRlclZpZXdNb2RlIDogdGhpcy5vbkJhY2tUbztcclxuXHJcbiAgICB0aGlzLmR5bmFtaWNNb2R1bGVDb21waWxlQ29uZmlnID0gbmV3IER5bmFtaWNNb2R1bGVDb21waWxlQ29uZmlnKFxyXG4gICAgICB0aGlzLnNob3dUaXRsZSxcclxuICAgICAgdGhpcy5zaG93U2F2ZUJ1dHRvbixcclxuICAgICAgdGhpcy5zaG93QmFja0J1dHRvbixcclxuICAgICAgdGhpcy51c2VySUQsXHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbFBhcmFtcyxcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsSW5mbyxcclxuICAgICAgdGhpcy5wcmVmaWx0ZXJQYXJhbXMsXHJcbiAgICAgIHRoaXMuc2hvd05ld1NlYXJjaEJ1dHRvblxyXG4gICAgKTtcclxuICAgIHRoaXMuZHluYW1pY01vZHVsZUxpc3RDb25maWcgPSBuZXcgRHluYW1pY01vZHVsZUxpc3RDb25maWcoXHJcbiAgICAgIHRoaXMuc2hvd1RpdGxlLFxyXG4gICAgICB0aGlzLnZhbHVlcyxcclxuICAgICAgdGhpcy5kZWZhdWx0TGlzdEFjdGlvbnMsXHJcbiAgICAgIHRoaXMudXNlcklELFxyXG4gICAgICBuZXcgQXJyYXk8UmVjb3JkQnV0dG9uPigpLFxyXG4gICAgICB0aGlzLnVwZGF0ZUluZm8sXHJcbiAgICAgIHRoaXMubGlzdFZpZXdSZWNvcmRUaXRsZVxyXG4gICAgKTtcclxuICAgIHRoaXMuZHluYW1pY01vZHVsZVJlcGFpckNvbmZpZyA9IG5ldyBEeW5hbWljTW9kdWxlUmVwYWlyQ29uZmlnKFxyXG4gICAgICB0aGlzLkZvcm1KU09OXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY29udGV4dCA9IHRoaXMuY29uZmlndXJhdGlvbnMuY29udGV4dDtcclxuICAgIHRoaXMuYmFzZVNlcnZlclVybCA9IHRoaXMuY29uZmlndXJhdGlvbnMuYmFzZVNlcnZlclVybDtcclxuICAgIHRoaXMudXNlclRva2VuID0gdGhpcy5jb25maWd1cmF0aW9ucy51c2VyVG9rZW47XHJcbiAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbiA9IHRoaXMuY29uZmlndXJhdGlvbnMuZW5kUG9pbnRDb25maWd1cmF0aW9uO1xyXG4gICAgLy90aGlzLmZvcm1JRCA9IHRoaXMuY29uZmlndXJhdGlvbnMuZHluYW1pY01vZHVsZUdlbmVyYWxDb25maWcuZm9ybUlEXHJcblxyXG4gICAgLy8gdGhpcy52aWV3TW9kZSA9IHRoaXMuc3RhcnRlclZpZXdNb2RlXHJcbiAgICBVdGlsaXR5SGVscGVyU2VydmljZS5TZXRDb250ZXh0KHRoaXMuY29udGV4dCk7XHJcbiAgICBcclxuICAgIHRoaXMuY29uZmlndXJlRGVmYXVsdEVuZFBvaW50cygpO1xyXG5cclxuICAgIGlmICh0aGlzLkZvcm1KU09OID09IFwiXCIpIHtcclxuICAgICAgLy8gcHJlbmRlIGlsIGZvcm0gZSBpbXBvc3RhIGxhIHZpZXdtb2RlIGNvcnJldHRhXHJcbiAgICAgIC8vIGF3YWl0IHRoaXMuZ2V0Rm9ybUJ5SUQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLnZpZXdNb2RlID0gdGhpcy5zdGFydGVyVmlld01vZGU7XHJcbiAgICBHbG9iYWxTZXJ2aWNlLmRlYnVnTG9nKFwiZHluYW1pY01vZHVsZUNvbXBpbGVDb25maWdcIiwgdGhpcy5keW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZylcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICAgIGlmICh0aGlzLnN0YXJ0ZXJWaWV3TW9kZSA9PSBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLkNPTVBJTEUgfHwgdGhpcy5zdGFydGVyVmlld01vZGUgPT0gRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5GSUxURVIpIHtcclxuICAgICAgLy8gZGEgdmVkZXJlIGluIGdldEZvcm1CeUlEXHJcbiAgICAgIHRoaXMuZGVmYXVsdFZpZXdNb2RlID0gdGhpcy5zdGFydGVyVmlld01vZGU7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vbkFkZFZpZXdFZGl0UmVjb3JkKG51bGwpLCAxMDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlld01vZGUgPSB0aGlzLnN0YXJ0ZXJWaWV3TW9kZTtcclxuICAgICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgICBzZXRUaW1lb3V0KF8gPT4geyB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKSB9LCAwKTsgLy8gcmVmcmVzaCB1aVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGdldEZvcm1CeUlEKGlkOiBzdHJpbmcgPSB0aGlzLmZvcm1JRCkge1xyXG4gIC8vICAgY29uc3QgZHluYW1pY01vZHVsZVBhcmFtczogQXJyYXk8RW5kUG9pbnREYXRhUGFyYW1zPiA9XHJcbiAgLy8gICAgIG5ldyBBcnJheTxFbmRQb2ludERhdGFQYXJhbXM+KCk7XHJcbiAgLy8gICBkeW5hbWljTW9kdWxlUGFyYW1zLnB1c2goe1xyXG4gIC8vICAgICBQYXJhbU5hbWU6IFwiaWRcIixcclxuICAvLyAgICAgUGFyYW1WYWx1ZTogaWQsXHJcbiAgLy8gICAgIFBhcmFtVHlwZTogUGFyYW1UeXBlRW51bVtcIlF1ZXJ5IHBhcmFtXCJdLFxyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLnV0aWxpdHlIZWxwZXJTZXJ2aWNlLlJ1bkVuZFBvaW50Q2FsbChcclxuICAvLyAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uRm9ybXMuR2V0QnlJREVuZFBvaW50LFxyXG4gIC8vICAgICBkeW5hbWljTW9kdWxlUGFyYW1zLFxyXG4gIC8vICAgICAocmVzOiBGb3JtKSA9PiB7XHJcbiAgLy8gICAgICAgdGhpcy5sYXN0Zm9ybSA9IHJlcztcclxuICAvLyAgICAgICB0aGlzLmZvcm0gPSByZXM7XHJcbiAgLy8gICAgICAgLy8gdGhpcy5nZXRSZWNvcmRzQnlGb3JtSUQoKTtcclxuXHJcbiAgLy8gICAgICAgLy8gaWYgKHRoaXMuc3RhcnRlclZpZXdNb2RlID09IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uQ09NUElMRSkge1xyXG4gIC8vICAgICAgIC8vICAgdGhpcy5vbkFkZFZpZXdFZGl0UmVjb3JkKG51bGwpO1xyXG4gIC8vICAgICAgIC8vIH1cclxuICAvLyAgICAgICAvLyB0aGlzLnZpZXdNb2RlID0gdGhpcy5zdGFydGVyVmlld01vZGU7XHJcbiAgLy8gICAgIH0sXHJcbiAgLy8gICAgIChlcnIpID0+IHt9XHJcbiAgLy8gICApO1xyXG4gIC8vIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBjb25maWd1cmFyZSBnbGkgZW5kcG9pbnQgZGEgdXNhcmUgZGkgZGVmYXVsdCBhIHBhcnRpcmUgZGFsbCd1cmwgYmFzZSBkZWwgc2VydmVyXHJcbiAgICogYSBjdWkgc2kgZGV2ZSBjb25uZXR0ZXJlIGUgYWwgdG9rZW4gZGEgcGFzc2FyZSBwZXIgYXV0ZW50aWNhcnNpLlxyXG4gICAqIFNlIGxhIHByb3ByaWV0w6AgXCJiYXNlU2VydmVyVXJsXCIgw6ggbnVsbCBlIG5vbiBzb25vIHN0YXRpIGNvbmZpZ3VyYXRpIGkgdmFyaSBlbmRwb2ludCBhbGxvcmFcclxuICAgKiBub24gdmllbmUgZXNlZ3VpdGEgbmVzc3VuYSBjaGlhbWF0YSBodHRwIHBlciByZWN1cGVyYXJlL3NhbHZhcmUgaSBkYXRpLlxyXG4gICAqL1xyXG4gIGNvbmZpZ3VyZURlZmF1bHRFbmRQb2ludHMoKSB7XHJcbiAgICBpZiAoIXRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uICYmIHRoaXMuYmFzZVNlcnZlclVybCkge1xyXG4gICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbiA9XHJcbiAgICAgICAgdGhpcy51dGlsaXR5SGVscGVyU2VydmljZS5Db25maWd1cmVEZWZhdWx0RW5kUG9pbnRzKFxyXG4gICAgICAgICAgdGhpcy5iYXNlU2VydmVyVXJsLFxyXG4gICAgICAgICAgdGhpcy51c2VyVG9rZW5cclxuICAgICAgICApOyAgICBcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciByZWN1cGVyYXJlIHR1dHRpIGkgcmVjb3JkIHNhbHZhdGkgcGVyIHVuYSBwYXJ0aWNvbGFyZSBGb3JtLlxyXG4gICAqIExhIGNoaWFtYXRhIHZpZW5lIGVmZmV0dHVhdGEgc29sbyBzZSDDqCBzdGF0byBjb25maWd1cmF0byBsJ2VuZFBvaW50IGRhIHVzYXJlLlxyXG4gICAqIExhIHJpc3Bvc3RhIGRlbGxhIGNoaWFtYXRhIGRldmUgZXNzZXJlIHVuIGFycmF5IGRpIG9nZ2V0dGkgZGkgdGlwbyBcIkR5blJlY29yZFwiXHJcbiAgICogYSBwYXJ0aXJlIGRhaSBxdWFsaSB2ZW5nb25vIHJpY3JlYXRpIGkgUmVjb3JkIHVzYXRpIG5lbCBjbGllbnQuXHJcbiAgICovXHJcbiAgLy8gYXN5bmMgZ2V0UmVjb3Jkc0J5Rm9ybUlEKCkge1xyXG4gICAgLy8gaWYgKFxyXG4gICAgLy8gICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbiAmJlxyXG4gICAgLy8gICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbi5SZWNvcmRzICYmXHJcbiAgICAvLyAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuR2V0QnlGb3JtSURFbmRQb2ludFxyXG4gICAgLy8gKSB7XHJcbiAgICAvLyAgIHZhciBkeW5hbWljTW9kdWxlUGFyYW1zID0gW1xyXG4gICAgLy8gICAgIHtcclxuICAgIC8vICAgICAgIFBhcmFtTmFtZTogXCJFbnRJRFwiLFxyXG4gICAgLy8gICAgICAgUGFyYW1WYWx1ZTogdGhpcy5mb3JtLklELFxyXG4gICAgLy8gICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAvLyAgICAgfSxcclxuICAgIC8vICAgXTtcclxuICAgIC8vICAgYXdhaXQgdGhpcy51dGlsaXR5SGVscGVyU2VydmljZS5SdW5FbmRQb2ludENhbGwoXHJcbiAgICAvLyAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uUmVjb3Jkcy5HZXRCeUZvcm1JREVuZFBvaW50LFxyXG4gICAgLy8gICAgIGR5bmFtaWNNb2R1bGVQYXJhbXMsXHJcbiAgICAvLyAgICAgKHJlczogQXJyYXk8RHluUmVjb3JkPikgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5keW5hbWljTW9kdWxlTGlzdENvbmZpZy52YWx1ZXMgPSBuZXcgQXJyYXk8UmVjb3JkPigpO1xyXG4gICAgLy8gICAgICAgcmVzLmZvckVhY2goKHIpID0+IHtcclxuICAgIC8vICAgICAgICAgdmFyIHRtcFJlYzogUmVjb3JkID0gbmV3IFJlY29yZCgpO1xyXG4gICAgLy8gICAgICAgICB0bXBSZWMgPSBKU09OLnBhcnNlKHIuU2VyaWFsaXplZFZhbHVlcyk7XHJcbiAgICAvLyAgICAgICAgIHRtcFJlYy5JRCA9IHIuSUQ7XHJcbiAgICAvLyAgICAgICAgIHRtcFJlYy5FbnRJRCA9IHIuRW50SUQ7XHJcbiAgICAvLyAgICAgICAgIHRtcFJlYy5WZXJzaW9uID0gci5WZXJzaW9uO1xyXG4gICAgLy8gICAgICAgICB0bXBSZWMudXNlcklEID0gci51c2VySUQ7XHJcbiAgICAvLyAgICAgICAgIHRtcFJlYy5BbnN3ZXJEYXRlID0gci5BbnN3ZXJEYXRlO1xyXG4gICAgLy8gICAgICAgICB0aGlzLmR5bmFtaWNNb2R1bGVMaXN0Q29uZmlnLnZhbHVlcy5wdXNoKHRtcFJlYyk7XHJcbiAgICAvLyAgICAgICB9KTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICk7XHJcbiAgICAvLyB9XHJcbiAgLy8gfVxyXG5cclxuICBvbkdvQmFjaygpe1xyXG4gICAgdGhpcy52aWV3TW9kZSA9IHRoaXMub25CYWNrVG8gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGludm9jYXRvIHF1YW5kbyBzaSB2dW9sZSBhZ2dpdW5nZXJlLCB2aXN1YWxpenphcmUgbyBtb2RpZmljYXJlIHVuIHJlY29yZC5cclxuICAgKiBTZSBsJ2V2ZW50byDDqCBudWxsIHZ1b2wgZGlyZSBjaGUgc3RpYW1vIGFnZ2l1bmdlbmRvIHVuIG51b3ZvIHJlY29yZCBhbHRyaW1lbnRpIHNpYW1vIGluIG1vZGlmaWNhXHJcbiAgICogbyB2aXN1YWxpenphemlvbmUuIEluIHF1ZXN0aSB1bHRpbWkgZHVlIGNhc2ksIHNlIMOoIHN0YXRvIGNvbmZpZ3VyYXRvIHVuIGVuZHBvaW50IHBlciBpbCByZWN1cGVyb1xyXG4gICAqIGRlbCByZWNvcmQgY29tcGxldG8gYWxsb3JhIHZpZW5lIGVmZmV0dHVhdGEgdW5hIGNoaWFtYXRhIGFsIHNlcnZlciwgYWx0cmltZW50aSB2aWVuZSB1c2F0byBsJ29nZ2V0dG8gc2VsZXppb25hdG8uXHJcbiAgICogQHBhcmFtIGV2ZW50IE9nZ2V0dG8gY29uIGR1ZSBwcm9wcmlldMOgOlxyXG4gICAqIFwicmVjb3JkXCIgPSBvZ2dldHRvIGRhIG1vZGlmaWNhcmUvdmlzdWFsaXp6YXJlLFxyXG4gICAqIFwib25seVZpZXdcIiA9IGJvb2xlYW5vIChzZSBUUlVFIHNpYW1vIGluIHZpc3VhbGl6emF6aW9uZSBhbHRyaW1lbnRpIGluIG1vZGlmaWNhKVxyXG4gICAqL1xyXG4gIG9uQWRkVmlld0VkaXRSZWNvcmQoZXZlbnQ6IHsgcmVjb3JkOiBSZWNvcmQ7IG9ubHlWaWV3OiBib29sZWFuIH0pIHtcclxuXHJcbiAgICBpZiAoZXZlbnQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm9ubHlWaWV3ID0gZXZlbnQub25seVZpZXc7XHJcbiAgICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJWZXJzaW9uIG1vZHVsb1wiLCBldmVudC5yZWNvcmQuVmVyc2lvbilcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uICYmXHJcbiAgICAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uUmVjb3JkcyAmJlxyXG4gICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuR2V0QnlJREVuZFBvaW50XHJcbiAgICAgICkge1xyXG4gICAgICAgIC8vIHByZXBhcm8gbGEgdmVyc2lvbmUgY29ycmV0dGEgZGVsIGZvcm1cclxuICAgICAgICB2YXIgZHluYW1pY01vZHVsZVBhcmFtcyA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgUGFyYW1OYW1lOiBcIkVudElEXCIsXHJcbiAgICAgICAgICAgIFBhcmFtVmFsdWU6IGV2ZW50LnJlY29yZC5FbnRJRCxcclxuICAgICAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBQYXJhbU5hbWU6IFwiVmVyc2lvblwiLFxyXG4gICAgICAgICAgICBQYXJhbVZhbHVlOiBldmVudC5yZWNvcmQuVmVyc2lvbixcclxuICAgICAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcInF1ZXJ5IHBhcmFtc1wiLCBkeW5hbWljTW9kdWxlUGFyYW1zKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eUhlbHBlclNlcnZpY2UuUnVuRW5kUG9pbnRDYWxsKFxyXG4gICAgICAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uRm9ybXMuR2V0QnlJREFuZFZlcnNpb25FbmRQb2ludCxcclxuICAgICAgICAgIGR5bmFtaWNNb2R1bGVQYXJhbXMsXHJcbiAgICAgICAgICAocmVzOiBGb3JtKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IHJlcztcclxuICAgICAgICAgICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcIlJFU1wiLCByZXMpXHJcbiAgICAgICAgICAgIC8vIHByZXBhcm8gaSBkYXRpIGRlbCByZWNvcmRcclxuICAgICAgICAgICAgdmFyIGR5bmFtaWNSZWNvcmRQYXJhbXMgPSBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgUGFyYW1OYW1lOiBcImlkXCIsXHJcbiAgICAgICAgICAgICAgICBQYXJhbVZhbHVlOiBldmVudC5yZWNvcmQuSUQsXHJcbiAgICAgICAgICAgICAgICBQYXJhbVR5cGU6IFBhcmFtVHlwZUVudW1bXCJRdWVyeSBwYXJhbVwiXSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdHlIZWxwZXJTZXJ2aWNlLlJ1bkVuZFBvaW50Q2FsbChcclxuICAgICAgICAgICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbi5SZWNvcmRzLkdldEJ5SURFbmRQb2ludCxcclxuICAgICAgICAgICAgICBkeW5hbWljUmVjb3JkUGFyYW1zLFxyXG4gICAgICAgICAgICAgIChyZXM6IER5blJlY29yZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZCA9IEpTT04ucGFyc2UocmVzLlNlcmlhbGl6ZWRWYWx1ZXMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZC5JRCA9IHJlcy5JRDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmQuRW50SUQgPSByZXMuRW50SUQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkLnVzZXJJRCA9IHJlcy51c2VySUQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkLlZlcnNpb24gPSByZXMuVmVyc2lvbjtcclxuICAgICAgICAgICAgICAgIHRoaXMudmlld01vZGUgPSB0aGlzLmRlZmF1bHRWaWV3TW9kZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShldmVudC5yZWNvcmQpKTtcclxuICAgICAgICB0aGlzLnZpZXdNb2RlID0gdGhpcy5kZWZhdWx0Vmlld01vZGU7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkeW5hbWljTW9kdWxlUGFyYW1zOiBBcnJheTxFbmRQb2ludERhdGFQYXJhbXM+ID1cclxuICAgICAgICBuZXcgQXJyYXk8RW5kUG9pbnREYXRhUGFyYW1zPigpO1xyXG4gICAgICBkeW5hbWljTW9kdWxlUGFyYW1zLnB1c2goe1xyXG4gICAgICAgIFBhcmFtTmFtZTogXCJpZFwiLFxyXG4gICAgICAgIFBhcmFtVmFsdWU6IHRoaXMuZm9ybUlELFxyXG4gICAgICAgIFBhcmFtVHlwZTogUGFyYW1UeXBlRW51bVtcIlF1ZXJ5IHBhcmFtXCJdLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51dGlsaXR5SGVscGVyU2VydmljZS5SdW5FbmRQb2ludENhbGwoXHJcbiAgICAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uRm9ybXMuR2V0QnlJREVuZFBvaW50LFxyXG4gICAgICAgIGR5bmFtaWNNb2R1bGVQYXJhbXMsXHJcbiAgICAgICAgKHJlczogRm9ybSkgPT4ge1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coXCJzdWNjZXNzIFJ1bkVuZFBvaW50Q2FsbFwiLHJlcyx0aGlzLmRlZmF1bHRWaWV3TW9kZSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSByZXM7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkID0gbnVsbDtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5hbnN3ZXJUb0R1cGxpY2F0ZUlkICE9IG51bGwpe1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkID0gdGhpcy5hbnN3ZXJUb0R1cGxpY2F0ZUlkO1xyXG4gICAgICAgICAgICB0aGlzLmlzRHVwbGljYXRlID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5vbmx5VmlldyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3TW9kZSA9IHRoaXMuZGVmYXVsdFZpZXdNb2RlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcImVycm9yIFJ1bkVuZFBvaW50Q2FsbFwiLGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgICAgLy8gdGhpcy5zZWxlY3RlZFJlY29yZCA9IG51bGw7XHJcbiAgICAgIC8vIHRoaXMub25seVZpZXcgPSBmYWxzZTtcclxuICAgICAgLy8gdGhpcy52aWV3TW9kZSA9IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uQ09NUElMRTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBpbnZvY2F0byBxdWFuZG8gc2kgdnVvbGUgYWdnaXVuZ2VyZSwgdmlzdWFsaXp6YXJlIG8gbW9kaWZpY2FyZSB1biByZWNvcmQuXHJcbiAgICogU2UgbCdldmVudG8gw6ggbnVsbCB2dW9sIGRpcmUgY2hlIHN0aWFtbyBhZ2dpdW5nZW5kbyB1biBudW92byByZWNvcmQgYWx0cmltZW50aSBzaWFtbyBpbiBtb2RpZmljYVxyXG4gICAqIG8gdmlzdWFsaXp6YXppb25lLiBJbiBxdWVzdGkgdWx0aW1pIGR1ZSBjYXNpLCBzZSDDqCBzdGF0byBjb25maWd1cmF0byB1biBlbmRwb2ludCBwZXIgaWwgcmVjdXBlcm9cclxuICAgKiBkZWwgcmVjb3JkIGNvbXBsZXRvIGFsbG9yYSB2aWVuZSBlZmZldHR1YXRhIHVuYSBjaGlhbWF0YSBhbCBzZXJ2ZXIsIGFsdHJpbWVudGkgdmllbmUgdXNhdG8gbCdvZ2dldHRvIHNlbGV6aW9uYXRvLlxyXG4gICAqIEBwYXJhbSBldmVudCBPZ2dldHRvIGNvbiBkdWUgcHJvcHJpZXTDoDpcclxuICAgKiBcInJlY29yZFwiID0gb2dnZXR0byBkYSBtb2RpZmljYXJlL3Zpc3VhbGl6emFyZSxcclxuICAgKiBcIm9ubHlWaWV3XCIgPSBib29sZWFubyAoc2UgVFJVRSBzaWFtbyBpbiB2aXN1YWxpenphemlvbmUgYWx0cmltZW50aSBpbiBtb2RpZmljYSlcclxuICAgKi9cclxuICBvblZpZXdSZWNvcmQocmVjb3JkOiBSZWNvcmQpIHtcclxuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZVxyXG4gICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkID0gcmVjb3JkXHJcbiAgICAgIHRoaXMudmlld01vZGUgPSBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLlZJRVdcclxuICAgICAgdGhpcy5sb2FkZXIgPSB0cnVlXHJcblxyXG4gIH1cclxuXHJcbiAgLy8gI3JlZ2lvbiBTQVZFXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBnZXN0aXJlIGlsIGNvbXBvbmVudGUgZG9wbyBjaGUgaWwgcmVjb3JkIMOoIHN0YXRvIGFnZ2l1bnRvIG8gbW9kaWZpY2F0by5cclxuICAgKiBAcGFyYW0gZXZlbnQgT2dnZXR0byBkaSB0aXBvIFJlY29yZCBkYSBzYWx2YXJlLlxyXG4gICAqL1xyXG4gIG9uU2F2ZVJlY29yZChldmVudDogUmVjb3JkKSB7XHJcbiAgICAvLyB0aGlzLmdldFJlY29yZHNCeUZvcm1JRCgpO1xyXG4gICAgdGhpcy5zYXZlUmVjb3JkLmVtaXQoZXZlbnQpO1xyXG4gICAgLy8gaWYgKHRoaXMub25TYXZlQmFja1RvTGlzdCkge1xyXG4gICAgLy8gICB0aGlzLnZpZXdNb2RlID0gRHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5MSVNUO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgdGhpcy52aWV3TW9kZSA9IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uTk9ORTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMudmlld01vZGUgPSB0aGlzLm9uQmFja1RvXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGdlc3RpcmUgaWwgY29tcG9uZW50ZSBkb3BvIGNoZSBlIHN0YXRhIHJpY2hpZXN0YSB1bmEgYWdnaXVudG8gbyB1bmEgbW9kaWZpY2EgZGVsIHJlY29yZCBuZWxsJyBhZGQtZm9ybS1yZWNvcmQuXHJcbiAgICogQHBhcmFtIGV2ZW50IE9nZ2V0dG8gZGkgdGlwbyBSZWNvcmQgZGEgc2FsdmFyZS5cclxuICAgKi9cclxuICBvbkFmdGVyU2F2ZVJlY29yZChldmVudDogUmVjb3JkKSB7XHJcbiAgICB0aGlzLmFmdGVyU2F2ZVJlY29yZC5lbWl0KGV2ZW50KTtcclxuICAgIC8vIGlmICh0aGlzLm9uU2F2ZUJhY2tUb0xpc3QpIHtcclxuICAgIC8vICAgdGhpcy52aWV3TW9kZSA9IER5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uTElTVDtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMudmlld01vZGUgPSBEeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLk5PTkU7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLnZpZXdNb2RlID0gdGhpcy5vbkJhY2tUb1xyXG4gIH1cclxuXHJcblxyXG4gIG9uU2F2ZUpzb24ocmVjb3JkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuU2F2ZUpTT04uZW1pdChyZWNvcmQpO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIFNBVkVcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICByZWxvYWQoKXtcclxuICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICBzZXRUaW1lb3V0KFxyXG4gICAgICAoKSA9PiB0aGlzLmxvYWRlciA9IHRydWUsXHJcbiAgICAgIDUwXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gREVMRVRFIFxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgZWxpbWluYXJlIHVuIHJlY29yZCBkYWxsYSBsaXN0YS5cclxuICAgKiBAcGFyYW0gcmVjb3JkIFJlY29yZCBkYSBlbGltaW5hcmUgc2VsZXppb25hdG8gc3VsbGEgZXFwLXRhYmxlLlxyXG4gICAqL1xyXG4gIG9uRGVsZXRlUmVjb3JkKHJlY29yZDogUmVjb3JkKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuRGVsZXRlRW5kUG9pbnRcclxuICAgICkge1xyXG4gICAgICBFcXBEeW5hbWljTW9kdWxlRGlhbG9nU2VydmljZS5Db25maXJtKFxyXG4gICAgICAgIFwiRWxpbWluYXJlIGlsIHJlY29yZCBzZWxlemlvbmF0bz9cIixcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICB2YXIgZHluYW1pY01vZHVsZVBhcmFtcyA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFBhcmFtTmFtZTogXCJpZFwiLFxyXG4gICAgICAgICAgICAgIFBhcmFtVmFsdWU6IHJlY29yZC5JRCxcclxuICAgICAgICAgICAgICBQYXJhbVR5cGU6IFBhcmFtVHlwZUVudW1bXCJRdWVyeSBwYXJhbVwiXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlIZWxwZXJTZXJ2aWNlLlJ1bkVuZFBvaW50Q2FsbChcclxuICAgICAgICAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uUmVjb3Jkcy5EZWxldGVFbmRQb2ludCxcclxuICAgICAgICAgICAgZHluYW1pY01vZHVsZVBhcmFtcyxcclxuICAgICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuZ2V0UmVjb3Jkc0J5Rm9ybUlEKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5hZnRlckRlbGV0ZVJlY29yZC5lbWl0KHJlY29yZCk7XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy5yZWxvYWRUYWJsZXMoKVxyXG4gICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBmYWxzZSxcclxuICAgICAgICBcIlJpY2hpZXN0YSBjb25mZXJtYVwiXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRlbGV0ZVJlY29yZC5lbWl0KHJlY29yZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uQWZ0ZXJEZWxldGVSZWNvcmQocmVjb3JkOiBSZWNvcmQpIHtcclxuICAgIHRoaXMubG9hZGVyID0gZmFsc2VcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uZ09uSW5pdCgpLCA1MCApXHJcbiAgICB0aGlzLmFmdGVyRGVsZXRlUmVjb3JkLmVtaXQocmVjb3JkKTtcclxuICB9XHJcbiAgLy8jZWRucmVnaW9uIERFTEVURSBcclxuXHJcbiAgb25BZnRlckZpbHRlcihldil7XHJcbiAgICB0aGlzLmFmdGVyRmlsdGVyLmVtaXQoZXYpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnU3RhcnRlZChlbDogYW55KXtcclxuICAgIHRoaXMuZHJhZ1N0YXJ0ZWQuZW1pdChlbCk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdSZWxlYXNlZCgpe1xyXG4gICAgdGhpcy5kcmFnUmVsZWFzZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25FeHRlcm5hbENvbXBvbmVudE91dChldjogZXZlbnRPdXQpe1xyXG4gICAgdGhpcy5vdXQuZW1pdChldik7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZXFwLWR5bmFtaWMtbW9kdWxlLXNwaW5uZXI+PC9lcXAtZHluYW1pYy1tb2R1bGUtc3Bpbm5lcj5cclxuXHJcbjwhLS0gW3JlY29yZF09XCInYjNkOTQzYzAtOWMwMS00OTczLTk0OGItN2FhNDE4NjM0ZjcyJ1wiIC0tPlxyXG48dmlldy1mb3JtLXJlY29yZFxyXG4gICpuZ0lmPVwibG9hZGVyICYmIHZpZXdNb2RlID09IGR5bmFtaWNNb2R1bGVWaWV3TW9kZUVudW0uVklFV1wiXHJcbiAgY2xhc3M9XCJkeW5hbWljLW1vZHVsZS12aWV3XCJcclxuICBbZW5kUG9pbnRDb25maWd1cmF0aW9uXT1cImVuZFBvaW50Q29uZmlndXJhdGlvblwiXHJcbiAgW3JlY29yZF09XCJzZWxlY3RlZFJlY29yZC5JRFwiXHJcbiAgKGdvQmFja0V2ZW50KT1cIm9uR29CYWNrKClcIlxyXG4+XHJcbjwvdmlldy1mb3JtLXJlY29yZD5cclxuXHJcbjxncmFwaHNcclxuKm5nSWY9XCJsb2FkZXIgJiYgdmlld01vZGUgPT0gZHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5HUkFQSFNcIlxyXG5jbGFzcz1cImR5bmFtaWMtbW9kdWxlLXZpZXdcIlxyXG5bZW5kUG9pbnRDb25maWd1cmF0aW9uXT1cImVuZFBvaW50Q29uZmlndXJhdGlvblwiXHJcbltmb3JtXT1cImZvcm1cIlxyXG5bZm9ybUlEXT1cImZvcm1JRFwiXHJcblt1c2VySURdPVwidXNlcklEXCJcclxuW2NvbmZpZ3VyYXRpb25zXT1cImR5bmFtaWNNb2R1bGVDb21waWxlQ29uZmlnXCJcclxuPlxyXG48L2dyYXBocz5cclxuXHJcbjxmaWx0ZXItZm9ybS1zdGF0aXN0aWNcclxuKm5nSWY9XCJsb2FkZXIgJiYgdmlld01vZGUgPT0gZHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5GSUxURVJcIlxyXG4gIGNsYXNzPVwiZHluYW1pYy1tb2R1bGUtY29tcGlsZVwiXHJcbiAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgW2Zvcm1JRF09XCJmb3JtSURcIlxyXG4gIFtyZWNvcmRdPVwic2VsZWN0ZWRSZWNvcmRcIlxyXG4gIFtvbmx5Vmlld109XCJvbmx5Vmlld1wiXHJcbiAgW2RlZmF1bHRMaXN0QWN0aW9uc109XCJkZWZhdWx0TGlzdEFjdGlvbnNcIlxyXG4gIFtmaWx0ZXJSZXN1bHRWaWV3TW9kZV09XCJmaWx0ZXJSZXN1bHRWaWV3TW9kZVwiXHJcbiAgW2VuZFBvaW50Q29uZmlndXJhdGlvbl09XCJlbmRQb2ludENvbmZpZ3VyYXRpb25cIlxyXG4gIFt1c2VySURdPVwidXNlcklEXCJcclxuXHJcbiAgW2NvbmZpZ3VyYXRpb25zXT1cImR5bmFtaWNNb2R1bGVDb21waWxlQ29uZmlnXCJcclxuICAoYWZ0ZXJGaWx0ZXIpPVwib25BZnRlckZpbHRlcigkZXZlbnQpXCJcclxuPlxyXG48L2ZpbHRlci1mb3JtLXN0YXRpc3RpYz5cclxuXHJcbjxhZGQtZm9ybS1yZWNvcmRcclxuKm5nSWY9XCJsb2FkZXIgJiYgdmlld01vZGUgPT0gZHluYW1pY01vZHVsZVZpZXdNb2RlRW51bS5DT01QSUxFXCJcclxuICBjbGFzcz1cImR5bmFtaWMtbW9kdWxlLWNvbXBpbGVcIlxyXG4gIFtmb3JtXT1cImZvcm1cIlxyXG4gIFtyZWNvcmRdPVwic2VsZWN0ZWRSZWNvcmRcIlxyXG4gIFtvbmx5Vmlld109XCJvbmx5Vmlld1wiXHJcbiAgW2lzRHVwbGljYXRlXT1cImlzRHVwbGljYXRlXCJcclxuXHJcbiAgW1F1ZXJ5RWRpdG9yQ29tcG9uZW50XT1cIlF1ZXJ5RWRpdG9yQ29tcG9uZW50XCJcclxuICBbZW5kUG9pbnRDb25maWd1cmF0aW9uXT1cImVuZFBvaW50Q29uZmlndXJhdGlvblwiXHJcbiAgW3VzZXJJRF09XCJ1c2VySURcIlxyXG5cclxuICBbY29uZmlndXJhdGlvbnNdPVwiZHluYW1pY01vZHVsZUNvbXBpbGVDb25maWdcIlxyXG5cclxuICAob3V0KT1cIm9uRXh0ZXJuYWxDb21wb25lbnRPdXQoJGV2ZW50KVwiXHJcbiAgKHNhdmVSZWNvcmRFdmVudCk9XCJvblNhdmVSZWNvcmQoJGV2ZW50KVwiXHJcbiAgKGFmdGVyU2F2ZVJlY29yZEV2ZW50KT1cIm9uQWZ0ZXJTYXZlUmVjb3JkKCRldmVudClcIlxyXG4+XHJcbjwvYWRkLWZvcm0tcmVjb3JkPlxyXG5cclxuPGxpc3QtZm9ybS1yZWNvcmRcclxuICAqbmdJZj1cImxvYWRlciAmJiB2aWV3TW9kZSA9PSBkeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLkxJU1RcIlxyXG4gIGNsYXNzPVwiZHluYW1pYy1tb2R1bGUtbGlzdFwiXHJcbiAgW2Zvcm1JRF09XCJmb3JtSURcIlxyXG5cclxuICBbZW5kUG9pbnRDb25maWd1cmF0aW9uXT1cImVuZFBvaW50Q29uZmlndXJhdGlvblwiXHJcblxyXG4gIFtjb25maWd1cmF0aW9uc109XCJkeW5hbWljTW9kdWxlTGlzdENvbmZpZ1wiXHJcbiAgW2V4dGVybmFsQnV0dG9uc109XCJleHRlcm5hbEJ1dHRvbnNcIlxyXG5cclxuICAob25WaWV3UmVjb3JkKT1cIm9uVmlld1JlY29yZCgkZXZlbnQpXCJcclxuICAob25BZGRWaWV3RWRpdFJlY29yZCk9XCJvbkFkZFZpZXdFZGl0UmVjb3JkKCRldmVudClcIlxyXG4gIChvbkRlbGV0ZVJlY29yZCk9XCJvbkRlbGV0ZVJlY29yZCgkZXZlbnQpXCJcclxuICAob25BZnRlckRlbGV0ZVJlY29yZCk9XCJvbkFmdGVyRGVsZXRlUmVjb3JkKCRldmVudClcIlxyXG4+XHJcbjwvbGlzdC1mb3JtLXJlY29yZD5cclxuXHJcbjxyZXBhaXItZm9ybS1maWVsZHNcclxuICAqbmdJZj1cImxvYWRlciAmJiB2aWV3TW9kZSA9PSBkeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLlJFUEFJUlwiXHJcbiAgY2xhc3M9XCJkeW5hbWljLW1vZHVsZS1yZXBhaXJcIlxyXG4gIFtmb3JtSURdPVwiZm9ybUlEXCJcclxuXHJcbiAgW2NvbmZpZ3VyYXRpb25zXT1cImR5bmFtaWNNb2R1bGVSZXBhaXJDb25maWdcIlxyXG4gIFtlbmRQb2ludENvbmZpZ3VyYXRpb25dPVwiZW5kUG9pbnRDb25maWd1cmF0aW9uXCJcclxuXHJcbiAgKG9uU2F2ZUpzb24pPVwib25TYXZlSnNvbigkZXZlbnQpXCJcclxuPlxyXG48L3JlcGFpci1mb3JtLWZpZWxkcz5cclxuXHJcbjxsaXN0LXZpZXctZm9ybS1yZWNvcmRcclxuICAqbmdJZj1cImxvYWRlciAmJiB2aWV3TW9kZSA9PSBkeW5hbWljTW9kdWxlVmlld01vZGVFbnVtLkxJU1RXSUVXXCJcclxuICBjbGFzcz1cImR5bmFtaWMtbW9kdWxlLWxpc3Qtdmlld1wiXHJcbiAgW2NvbmZpZ3VyYXRpb25zXT1cImR5bmFtaWNNb2R1bGVMaXN0Q29uZmlnXCJcclxuICBbY29tcGlsZUNvbmZpZ3VyYXRpb25zXT1cImR5bmFtaWNNb2R1bGVDb21waWxlQ29uZmlnXCJcclxuICBbZW5kUG9pbnRDb25maWd1cmF0aW9uXT1cImVuZFBvaW50Q29uZmlndXJhdGlvblwiXHJcbiAgW2Zvcm1JRF09XCJmb3JtSURcIlxyXG4gIFt1c2VySURdPVwidXNlcklEXCJcclxuICBbaGlnaGxpZ2h0RmlsdGVyXT1cImhpZ2hsaWdodEZpbHRlclwiXHJcbiAgW2RlZmF1bHRMaXN0Vmlld0Z1bmN0aW9uXT1cImRlZmF1bHRMaXN0Vmlld0Z1bmN0aW9uXCJcclxuICBbZXh0ZXJuYWxCdXR0b25zXT1cImV4dGVybmFsQnV0dG9uc1wiXHJcbiAgW29ubHlWaWV3XT1cIiFkZWZhdWx0TGlzdEFjdGlvbnMuZWRpdFwiXHJcbiAgW1F1ZXJ5RWRpdG9yQ29tcG9uZW50XT1cIlF1ZXJ5RWRpdG9yQ29tcG9uZW50XCJcclxuXHJcbiAgKG9uQWRkVmlld0VkaXRSZWNvcmQpPVwib25BZGRWaWV3RWRpdFJlY29yZCgkZXZlbnQpXCJcclxuICAob25EZWxldGVSZWNvcmQpPVwib25EZWxldGVSZWNvcmQoJGV2ZW50KVwiXHJcbiAgKHNhdmVSZWNvcmRFdmVudCk9XCJvblNhdmVSZWNvcmQoJGV2ZW50KVwiXHJcbiAgKGFmdGVyU2F2ZVJlY29yZEV2ZW50KT1cIm9uQWZ0ZXJTYXZlUmVjb3JkKCRldmVudClcIlxyXG4gIChkcmFnU3RhcnRlZCk9XCJvbkRyYWdTdGFydGVkKCRldmVudClcIlxyXG4gIChkcmFnUmVsZWFzZWQpPVwib25EcmFnUmVsZWFzZWQoKVwiXHJcbiAgPlxyXG48L2xpc3Qtdmlldy1mb3JtLXJlY29yZD5cclxuIl19
|
|
@@ -84,10 +84,10 @@ export class DbgetterComponent {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
DbgetterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DbgetterComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
87
|
-
DbgetterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DbgetterComponent, selector: "dbgetter", inputs: { field: "field", record: "record", inConfig: "inConfig", QueryEditorComponent: "QueryEditorComponent", data: "data" }, outputs: { out: "out", selectedValue: "selectedValue" }, ngImport: i0, template: "<ng-template [appDynamicLoader] [data]=\"QueryEditorComponent\" (out)=\"onExternalSQLResultOut($event);\" *ngIf=\"QueryEditorComponent != null\"></ng-template>\r\n\r\n<div class=\"floatingtable draggable\" cdkDrag *ngIf=\"data != null && loaded\">\r\n <div class=\"header\">\r\n <div class=\"left\"><button class=\"btn btn-small btn-danger\" (click)=\"close()\">Chiudi finestra <mat-icon>close</mat-icon></button></div>\r\n <div class=\"left\"><button class=\"btn btn-small btn-danger\" (click)=\"delete()\">Cancella valore <mat-icon>delete</mat-icon></button></div>\r\n <div class=\"right\"><mat-icon>drag_indicator</mat-icon> Seleziona il valore da registrare. Clicca su questa barra per trascinare.</div>\r\n </div>\r\n <table class=\"table table-notforced\" *ngIf=\"field.DataGetter.DataGetterColumnForce == null\">\r\n <tr><th *ngFor=\"let key of keys; let first = first\">\r\n <span *ngIf=\"first\">{{key}}</span>\r\n <span *ngIf=\"!first\">{{key.split(\"__\")[1]}}</span>\r\n </th></tr>\r\n <tr *ngFor=\"let row of data\" class=\"rows\">\r\n <td *ngFor=\"let key of keys\" (click)=\"selectValueNotForced(row[key])\"
|
|
87
|
+
DbgetterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DbgetterComponent, selector: "dbgetter", inputs: { field: "field", record: "record", inConfig: "inConfig", QueryEditorComponent: "QueryEditorComponent", data: "data" }, outputs: { out: "out", selectedValue: "selectedValue" }, ngImport: i0, template: "<ng-template [appDynamicLoader] [data]=\"QueryEditorComponent\" (out)=\"onExternalSQLResultOut($event);\" *ngIf=\"QueryEditorComponent != null\"></ng-template>\r\n\r\n<div class=\"floatingtable draggable\" cdkDrag *ngIf=\"data != null && loaded\">\r\n <div class=\"header\">\r\n <div class=\"left\"><button class=\"btn btn-small btn-danger\" (click)=\"close()\">Chiudi finestra <mat-icon>close</mat-icon></button></div>\r\n <div class=\"left\"><button class=\"btn btn-small btn-danger\" (click)=\"delete()\">Cancella valore <mat-icon>delete</mat-icon></button></div>\r\n <div class=\"right\"><mat-icon>drag_indicator</mat-icon> Seleziona il valore da registrare. Clicca su questa barra per trascinare.</div>\r\n </div>\r\n <table class=\"table table-notforced\" *ngIf=\"field.DataGetter.DataGetterColumnForce == null\">\r\n <tr><th *ngFor=\"let key of keys; let first = first\">\r\n <span *ngIf=\"first\">{{key}}</span>\r\n <span *ngIf=\"!first\">{{key.split(\"__\")[1]}}</span>\r\n </th></tr>\r\n <tr *ngFor=\"let row of data\" class=\"rows\">\r\n <td *ngFor=\"let key of keys\" (click)=\"selectValueNotForced(row[key])\">\r\n {{row[key].toString().substring(0,100)}}<span *ngIf=\"row[key].length > 100\">...</span>\r\n </td>\r\n </tr>\r\n </table>\r\n <table class=\"table table-forced\" *ngIf=\"field.DataGetter.DataGetterColumnForce != null\">\r\n <tr><th *ngFor=\"let key of keys; let first = first\">\r\n <span *ngIf=\"first\">{{key}}</span>\r\n <span *ngIf=\"!first\">{{key.split(\"__\")[1]}}</span>\r\n </th></tr>\r\n <tr *ngFor=\"let row of data\" class=\"rows\" (click)=\"selectValueForced(row)\">\r\n <td *ngFor=\"let key of keys\">{{row[key].toString().substring(0,100)}}<span *ngIf=\"row[key].length > 100\">...</span></td>\r\n </tr>\r\n </table> \r\n</div>\r\n\r\n<span *ngIf=\"value != null\">{{value}}</span>", styles: [".floatingtable{position:fixed;bottom:10%;left:30%;width:50%;background-color:#fff;border:1px solid black;border-radius:10px;margin:0;z-index:9000000000;padding:2px}.floatingtable .header{cursor:move;display:flex;justify-content:flex-start;height:40px;background-color:#4fa2c0;color:#fff;align-items:center;font-size:19px;padding-right:15px;margin-bottom:10px}.floatingtable .header>*{margin-right:10px}.floatingtable .header .left mat-icon{position:relative;top:5px;left:10px;cursor:pointer!important;background-color:red!important;color:#fff}.floatingtable .header .right mat-icon{position:relative;top:5px}.floatingtable .table.table-notforced{width:99%;margin:0 5px}.floatingtable .table.table-notforced td,.floatingtable .table.table-notforced th{padding:2px 2px 2px 0}.floatingtable .table.table-notforced td span,.floatingtable .table.table-notforced th span{padding:0!important}.floatingtable .table.table-notforced td:hover{cursor:pointer;background-color:#d3d3d3;color:#000}.floatingtable .table.table-forced{width:99%;margin:0 5px}.floatingtable .table.table-forced td,.floatingtable .table.table-forced th{padding:2px 2px 2px 0}.floatingtable .table.table-forced td span,.floatingtable .table.table-forced th span{padding:0!important}.floatingtable .table.table-forced tr.rows:hover{cursor:pointer;background-color:#d3d3d3;color:#000}.btn-small{margin:0;padding:0 16px}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.DynamicLoaderDirective, selector: "[appDynamicLoader]", inputs: ["data"], outputs: ["out"] }] });
|
|
88
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DbgetterComponent, decorators: [{
|
|
89
89
|
type: Component,
|
|
90
|
-
args: [{ selector: 'dbgetter', template: "<ng-template [appDynamicLoader] [data]=\"QueryEditorComponent\" (out)=\"onExternalSQLResultOut($event);\" *ngIf=\"QueryEditorComponent != null\"></ng-template>\r\n\r\n<div class=\"floatingtable draggable\" cdkDrag *ngIf=\"data != null && loaded\">\r\n <div class=\"header\">\r\n <div class=\"left\"><button class=\"btn btn-small btn-danger\" (click)=\"close()\">Chiudi finestra <mat-icon>close</mat-icon></button></div>\r\n <div class=\"left\"><button class=\"btn btn-small btn-danger\" (click)=\"delete()\">Cancella valore <mat-icon>delete</mat-icon></button></div>\r\n <div class=\"right\"><mat-icon>drag_indicator</mat-icon> Seleziona il valore da registrare. Clicca su questa barra per trascinare.</div>\r\n </div>\r\n <table class=\"table table-notforced\" *ngIf=\"field.DataGetter.DataGetterColumnForce == null\">\r\n <tr><th *ngFor=\"let key of keys; let first = first\">\r\n <span *ngIf=\"first\">{{key}}</span>\r\n <span *ngIf=\"!first\">{{key.split(\"__\")[1]}}</span>\r\n </th></tr>\r\n <tr *ngFor=\"let row of data\" class=\"rows\">\r\n <td *ngFor=\"let key of keys\" (click)=\"selectValueNotForced(row[key])\"
|
|
90
|
+
args: [{ selector: 'dbgetter', template: "<ng-template [appDynamicLoader] [data]=\"QueryEditorComponent\" (out)=\"onExternalSQLResultOut($event);\" *ngIf=\"QueryEditorComponent != null\"></ng-template>\r\n\r\n<div class=\"floatingtable draggable\" cdkDrag *ngIf=\"data != null && loaded\">\r\n <div class=\"header\">\r\n <div class=\"left\"><button class=\"btn btn-small btn-danger\" (click)=\"close()\">Chiudi finestra <mat-icon>close</mat-icon></button></div>\r\n <div class=\"left\"><button class=\"btn btn-small btn-danger\" (click)=\"delete()\">Cancella valore <mat-icon>delete</mat-icon></button></div>\r\n <div class=\"right\"><mat-icon>drag_indicator</mat-icon> Seleziona il valore da registrare. Clicca su questa barra per trascinare.</div>\r\n </div>\r\n <table class=\"table table-notforced\" *ngIf=\"field.DataGetter.DataGetterColumnForce == null\">\r\n <tr><th *ngFor=\"let key of keys; let first = first\">\r\n <span *ngIf=\"first\">{{key}}</span>\r\n <span *ngIf=\"!first\">{{key.split(\"__\")[1]}}</span>\r\n </th></tr>\r\n <tr *ngFor=\"let row of data\" class=\"rows\">\r\n <td *ngFor=\"let key of keys\" (click)=\"selectValueNotForced(row[key])\">\r\n {{row[key].toString().substring(0,100)}}<span *ngIf=\"row[key].length > 100\">...</span>\r\n </td>\r\n </tr>\r\n </table>\r\n <table class=\"table table-forced\" *ngIf=\"field.DataGetter.DataGetterColumnForce != null\">\r\n <tr><th *ngFor=\"let key of keys; let first = first\">\r\n <span *ngIf=\"first\">{{key}}</span>\r\n <span *ngIf=\"!first\">{{key.split(\"__\")[1]}}</span>\r\n </th></tr>\r\n <tr *ngFor=\"let row of data\" class=\"rows\" (click)=\"selectValueForced(row)\">\r\n <td *ngFor=\"let key of keys\">{{row[key].toString().substring(0,100)}}<span *ngIf=\"row[key].length > 100\">...</span></td>\r\n </tr>\r\n </table> \r\n</div>\r\n\r\n<span *ngIf=\"value != null\">{{value}}</span>", styles: [".floatingtable{position:fixed;bottom:10%;left:30%;width:50%;background-color:#fff;border:1px solid black;border-radius:10px;margin:0;z-index:9000000000;padding:2px}.floatingtable .header{cursor:move;display:flex;justify-content:flex-start;height:40px;background-color:#4fa2c0;color:#fff;align-items:center;font-size:19px;padding-right:15px;margin-bottom:10px}.floatingtable .header>*{margin-right:10px}.floatingtable .header .left mat-icon{position:relative;top:5px;left:10px;cursor:pointer!important;background-color:red!important;color:#fff}.floatingtable .header .right mat-icon{position:relative;top:5px}.floatingtable .table.table-notforced{width:99%;margin:0 5px}.floatingtable .table.table-notforced td,.floatingtable .table.table-notforced th{padding:2px 2px 2px 0}.floatingtable .table.table-notforced td span,.floatingtable .table.table-notforced th span{padding:0!important}.floatingtable .table.table-notforced td:hover{cursor:pointer;background-color:#d3d3d3;color:#000}.floatingtable .table.table-forced{width:99%;margin:0 5px}.floatingtable .table.table-forced td,.floatingtable .table.table-forced th{padding:2px 2px 2px 0}.floatingtable .table.table-forced td span,.floatingtable .table.table-forced th span{padding:0!important}.floatingtable .table.table-forced tr.rows:hover{cursor:pointer;background-color:#d3d3d3;color:#000}.btn-small{margin:0;padding:0 16px}\n"] }]
|
|
91
91
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; }, propDecorators: { field: [{
|
|
92
92
|
type: Input
|
|
93
93
|
}], record: [{
|
|
@@ -110,4 +110,4 @@ export var QueryEditorModeEnum;
|
|
|
110
110
|
QueryEditorModeEnum[QueryEditorModeEnum["COMPOSER"] = 2] = "COMPOSER";
|
|
111
111
|
QueryEditorModeEnum[QueryEditorModeEnum["RESULT"] = 3] = "RESULT";
|
|
112
112
|
})(QueryEditorModeEnum || (QueryEditorModeEnum = {}));
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJnZXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2RiZ2V0dGVyL2RiZ2V0dGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS9kYmdldHRlci9kYmdldHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBYXZFLE1BQU0sT0FBTyxpQkFBaUI7SUFlNUIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVhqQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHlCQUFvQixHQUErQixJQUFJLENBQUMsQ0FBQyxtQ0FBbUM7UUFDNUYsU0FBSSxHQUFRLElBQUksQ0FBQyxDQUFDLHdDQUF3QztRQUV6RCxRQUFHLEdBQTJCLElBQUksWUFBWSxFQUFZLENBQUM7UUFDM0Qsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRSxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixXQUFNLEdBQVksS0FBSyxDQUFDO0lBR3FCLENBQUM7SUFFOUMsUUFBUTtRQUVOLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxHQUFHLENB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QUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzsrR0EvRlUsaUJBQWlCO21HQUFqQixpQkFBaUIseU9DYjlCLG95REE0QjRDOzRGRGYvQixpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsVUFBVTtpR0FNWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxHQUFHO3NCQUFaLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTs7QUF5RlQsNkJBQTZCO0FBQzdCLE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0IsNkVBQWtCLENBQUE7SUFDbEIscUVBQWMsQ0FBQTtJQUNkLGlFQUFZLENBQUE7QUFDZCxDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IER5bmFtaWNMb2FkZXJEaXJlY3RpdmVEYXRhLCBldmVudE91dCB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy1sb2FkZXIvZHluYW1pYy1sb2FkZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Jhc2VGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IFJlY29yZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWwnO1xyXG5pbXBvcnQgeyBFbmRQb2ludENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZW5kUG9pbnRDb25maWd1cmF0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGJnZXR0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYmdldHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGJnZXR0ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGJnZXR0ZXJDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBmaWVsZDogQmFzZUZpZWxkO1xyXG4gIEBJbnB1dCgpIHJlY29yZDogUmVjb3JkO1xyXG4gIEBJbnB1dCgpIGluQ29uZmlnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgUXVlcnlFZGl0b3JDb21wb25lbnQ6IER5bmFtaWNMb2FkZXJEaXJlY3RpdmVEYXRhID0gbnVsbDsgLy8gTCdpbnRlcm8gY29tcG9uZW50ZSBxdWVyeSBFZGl0b3JcclxuICBASW5wdXQoKSBkYXRhOiBhbnkgPSBudWxsOyAvLyBMbyBmYWNjaWFtbyBmdW56aW9uYXJlIHRpcG8gRVFQLVRBQkxFXHJcblxyXG4gIEBPdXRwdXQoKSBvdXQ6IEV2ZW50RW1pdHRlcjxldmVudE91dD4gPSBuZXcgRXZlbnRFbWl0dGVyPGV2ZW50T3V0PigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZFZhbHVlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBrZXlzOiBBcnJheTxzdHJpbmc+ID0gbnVsbDtcclxuICBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2YWx1ZTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiV2VsY29tZSB0byBEQkdFVFRFUiBDb3VudHJ5XCIpO1xyXG4gICAgY29uc29sZS5sb2coXCJmaWVsZFwiLCB0aGlzLmZpZWxkKTtcclxuICAgIGNvbnNvbGUubG9nKFwicmVjb3JkXCIsIHRoaXMucmVjb3JkKTtcclxuICAgIGNvbnNvbGUubG9nKFwiaW5Db25maWdcIiwgdGhpcy5pbkNvbmZpZyk7XHJcbiAgICBjb25zb2xlLmxvZyhcIlF1ZXJ5RWRpdG9yQ29tcG9uZW50XCIsIHRoaXMuUXVlcnlFZGl0b3JDb21wb25lbnQpO1xyXG5cclxuXHJcbiAgICBpZiAodGhpcy5RdWVyeUVkaXRvckNvbXBvbmVudCAhPSBudWxsKXtcclxuICAgICAgdGhpcy5RdWVyeUVkaXRvckNvbXBvbmVudC5pbnB1dFBhcmFtcy5jb25maWcubW9kZSA9IFF1ZXJ5RWRpdG9yTW9kZUVudW0uUkVTVUxUO1xyXG4gICAgICB0aGlzLlF1ZXJ5RWRpdG9yQ29tcG9uZW50LmlucHV0UGFyYW1zLmNvbmZpZy5maWVsZCA9IHRoaXMuZmllbGQ7XHJcbiAgICAgIHRoaXMuUXVlcnlFZGl0b3JDb21wb25lbnQuaW5wdXRQYXJhbXMuY29uZmlnLnJlY29yZCA9IHRoaXMucmVjb3JkO1xyXG4gICAgICB0aGlzLlF1ZXJ5RWRpdG9yQ29tcG9uZW50LmlucHV0UGFyYW1zLmNvbmZpZy5pbkNvbmZpZyA9IHRoaXMuaW5Db25maWc7XHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YSA9PSBudWxsKXtcclxuXHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoJy4vYXNzZXRzL21vY2t1cHMvbW9ja2VkRnJvbVF1ZXJ5RWRpdG9yX1JFU1VMVF9NQU5ZLnR4dCcsIHtyZXNwb25zZVR5cGU6ICd0ZXh0J30pXHJcbiAgICAgIC5zdWJzY3JpYmUobW9ja2VkRnJvbVF1ZXJ5RWRpdG9yID0+IHtcclxuICAgICAgICB0aGlzLmRhdGEgPSBKU09OLnBhcnNlKG1vY2tlZEZyb21RdWVyeUVkaXRvcik7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gSlNPTi5wYXJzZSh0aGlzLmRhdGEucmVzdWx0KTtcclxuICAgICAgICB0aGlzLnByb2Nlc3NSZXN1bHQodGhpcy5kYXRhKTtcclxuICAgICAgIH0pOyAgICAgIFxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBvbkV4dGVybmFsU1FMUmVzdWx0T3V0KGV2OiBldmVudE91dCl7XHJcbiAgICBjb25zb2xlLmxvZyhcIkxhIHF1ZXJ5IGRlbCBRdWVyeSBFZGl0b3Igw6ggc3RhdGEgZXNlZ3VpdGEsIGVkIGhhIHJlc3RpdHVpdG8gaWwgc2VndWVudGUgcmlzdWx0YXRvOiBcIixldik7XHJcbiAgICBpZiAoZXYuQmVoYXZpb3Vycy5pbmRleE9mKFwic2VuZC1vdXRcIikgIT0gLTEpeyB0aGlzLm91dC5lbWl0KGV2KTsgfVxyXG5cclxuICAgIHRoaXMuZGF0YSA9IEpTT04ucGFyc2UoZXYuUGFyYW1zLnJlc3VsdCk7XHJcbiAgICB0aGlzLnByb2Nlc3NSZXN1bHQodGhpcy5kYXRhKTtcclxuXHJcbiAgfVxyXG5cclxuICBwcm9jZXNzUmVzdWx0KGRhdGEpe1xyXG4gICAgXHJcbiAgICBpZiAoZGF0YS5sZW5ndGggPiAwKXtcclxuICAgICAgdGhpcy5rZXlzID0gT2JqZWN0LmtleXMoZGF0YVswXSk7XHJcbiAgICAgIGlmICh0aGlzLmtleXMubGVuZ3RoID09IDIgJiYgZGF0YS5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgLy8gU2UgaG8gdW4gc29sbyBvY2NoaWV0dG8gc2VsZXppb25hdG8gZSBsYSBxdWVyeSByZXN0aXR1aXNjZSB1biBzb2xvIHZhbG9yZSwgbG8gYnV0dG8gZnVvcmkgYXV0b21hdGljYW1lbnRlXHJcbiAgICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IGRhdGFbMF1bdGhpcy5rZXlzWzFdXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUuZW1pdChbZGF0YVswXVt0aGlzLmtleXNbMV1dLHRydWVdKTtcclxuICAgICAgfSBlbHNlIGlmIChkYXRhLmxlbmd0aCA9PSAxICYmIHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyQ29sdW1uRm9yY2UgIT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IGRhdGFbMF1bdGhpcy5maWVsZC5EYXRhR2V0dGVyLkRhdGFHZXR0ZXJDb2x1bW5Gb3JjZS5rZXldO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5lbWl0KFtkYXRhWzBdW3RoaXMua2V5c1sxXV0sdHJ1ZV0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTsgIFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHNlbGVjdFZhbHVlTm90Rm9yY2VkKHZhbHVlKXtcclxuICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSB2YWx1ZTtcclxuICAgIHRoaXMubG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUuZW1pdChbdmFsdWUsZmFsc2VdKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFZhbHVlRm9yY2VkKHJvdyl7XHJcbiAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gcm93W3RoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyQ29sdW1uRm9yY2Uua2V5XTtcclxuICAgIHRoaXMubG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUuZW1pdChbcm93W3RoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyQ29sdW1uRm9yY2Uua2V5XSxmYWxzZV0pO1xyXG4gIH0gIFxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlLmVtaXQoW1wiKioqKkNMT1NFKioqKlwiLHRydWVdKTtcclxuICAgIHRoaXMubG9hZGVkID0gZmFsc2U7XHJcbiAgfVxyXG4gIFxyXG4gIGRlbGV0ZSgpe1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlLmVtaXQoW251bGwsdHJ1ZV0pO1xyXG4gICAgdGhpcy5sb2FkZWQgPSBmYWxzZTtcclxuICB9ICBcclxufVxyXG5cclxuLy8gTyBjb3PDrCBvIHNjaGlhbnRhdG8gYSBtYW5vXHJcbmV4cG9ydCBlbnVtIFF1ZXJ5RWRpdG9yTW9kZUVudW0ge1xyXG4gIFwiQ09ORklHVVJBVE9SXCIgPSAxLFxyXG4gIFwiQ09NUE9TRVJcIiA9IDIsXHJcbiAgXCJSRVNVTFRcIiA9IDNcclxufSIsIjxuZy10ZW1wbGF0ZSBbYXBwRHluYW1pY0xvYWRlcl0gW2RhdGFdPVwiUXVlcnlFZGl0b3JDb21wb25lbnRcIiAob3V0KT1cIm9uRXh0ZXJuYWxTUUxSZXN1bHRPdXQoJGV2ZW50KTtcIiAqbmdJZj1cIlF1ZXJ5RWRpdG9yQ29tcG9uZW50ICE9IG51bGxcIj48L25nLXRlbXBsYXRlPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsb2F0aW5ndGFibGUgZHJhZ2dhYmxlXCIgY2RrRHJhZyAqbmdJZj1cImRhdGEgIT0gbnVsbCAmJiBsb2FkZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPjxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtYWxsIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNoaXVkaSBmaW5lc3RyYSA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPjwvYnV0dG9uPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc21hbGwgYnRuLWRhbmdlclwiIChjbGljayk9XCJkZWxldGUoKVwiPkNhbmNlbGxhIHZhbG9yZSA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj48bWF0LWljb24+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPiBTZWxlemlvbmEgaWwgdmFsb3JlIGRhIHJlZ2lzdHJhcmUuIENsaWNjYSBzdSBxdWVzdGEgYmFycmEgcGVyIHRyYXNjaW5hcmUuPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLW5vdGZvcmNlZFwiICpuZ0lmPVwiZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyQ29sdW1uRm9yY2UgPT0gbnVsbFwiPlxyXG4gICAgICAgIDx0cj48dGggKm5nRm9yPVwibGV0IGtleSBvZiBrZXlzOyBsZXQgZmlyc3QgPSBmaXJzdFwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZpcnN0XCI+e3trZXl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZmlyc3RcIj57e2tleS5zcGxpdChcIl9fXCIpWzFdfX08L3NwYW4+XHJcbiAgICAgICAgPC90aD48L3RyPlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGFcIiBjbGFzcz1cInJvd3NcIj5cclxuICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBrZXkgb2Yga2V5c1wiIChjbGljayk9XCJzZWxlY3RWYWx1ZU5vdEZvcmNlZChyb3dba2V5XSlcIj57e3Jvd1trZXldfX08L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtZm9yY2VkXCIgKm5nSWY9XCJmaWVsZC5EYXRhR2V0dGVyLkRhdGFHZXR0ZXJDb2x1bW5Gb3JjZSAhPSBudWxsXCI+XHJcbiAgICAgICAgPHRyPjx0aCAqbmdGb3I9XCJsZXQga2V5IG9mIGtleXM7IGxldCBmaXJzdCA9IGZpcnN0XCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmlyc3RcIj57e2tleX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFmaXJzdFwiPnt7a2V5LnNwbGl0KFwiX19cIilbMV19fTwvc3Bhbj5cclxuICAgICAgICA8L3RoPjwvdHI+XHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgZGF0YVwiIGNsYXNzPVwicm93c1wiIChjbGljayk9XCJzZWxlY3RWYWx1ZUZvcmNlZChyb3cpXCI+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQga2V5IG9mIGtleXNcIj57e3Jvd1trZXldfX08L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPiAgICBcclxuPC9kaXY+XHJcblxyXG48c3BhbiAqbmdJZj1cInZhbHVlICE9IG51bGxcIj57e3ZhbHVlfX08L3NwYW4+Il19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJnZXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2RiZ2V0dGVyL2RiZ2V0dGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS9kYmdldHRlci9kYmdldHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBYXZFLE1BQU0sT0FBTyxpQkFBaUI7SUFlNUIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVhqQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHlCQUFvQixHQUErQixJQUFJLENBQUMsQ0FBQyxtQ0FBbUM7UUFDNUYsU0FBSSxHQUFRLElBQUksQ0FBQyxDQUFDLHdDQUF3QztRQUV6RCxRQUFHLEdBQTJCLElBQUksWUFBWSxFQUFZLENBQUM7UUFDM0Qsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRSxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixXQUFNLEdBQVksS0FBSyxDQUFDO0lBR3FCLENBQUM7SUFFOUMsUUFBUTtRQUVOLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxHQUFHLENB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QUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzsrR0EvRlUsaUJBQWlCO21HQUFqQixpQkFBaUIseU9DYjlCLGcrREE4QjRDOzRGRGpCL0IsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFVBQVU7aUdBTVgsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksR0FBRztzQkFBWixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07O0FBeUZULDZCQUE2QjtBQUM3QixNQUFNLENBQU4sSUFBWSxtQkFJWDtBQUpELFdBQVksbUJBQW1CO0lBQzdCLDZFQUFrQixDQUFBO0lBQ2xCLHFFQUFjLENBQUE7SUFDZCxpRUFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEeW5hbWljTG9hZGVyRGlyZWN0aXZlRGF0YSwgZXZlbnRPdXQgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtbG9hZGVyL2R5bmFtaWMtbG9hZGVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9iYXNlRmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgRW5kUG9pbnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VuZFBvaW50Q29uZmlndXJhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RiZ2V0dGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGJnZXR0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RiZ2V0dGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERiZ2V0dGVyQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgZmllbGQ6IEJhc2VGaWVsZDtcclxuICBASW5wdXQoKSByZWNvcmQ6IFJlY29yZDtcclxuICBASW5wdXQoKSBpbkNvbmZpZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIFF1ZXJ5RWRpdG9yQ29tcG9uZW50OiBEeW5hbWljTG9hZGVyRGlyZWN0aXZlRGF0YSA9IG51bGw7IC8vIEwnaW50ZXJvIGNvbXBvbmVudGUgcXVlcnkgRWRpdG9yXHJcbiAgQElucHV0KCkgZGF0YTogYW55ID0gbnVsbDsgLy8gTG8gZmFjY2lhbW8gZnVuemlvbmFyZSB0aXBvIEVRUC1UQUJMRVxyXG5cclxuICBAT3V0cHV0KCkgb3V0OiBFdmVudEVtaXR0ZXI8ZXZlbnRPdXQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxldmVudE91dD4oKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRWYWx1ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAga2V5czogQXJyYXk8c3RyaW5nPiA9IG51bGw7XHJcbiAgbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmFsdWU6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIldlbGNvbWUgdG8gREJHRVRURVIgQ291bnRyeVwiKTtcclxuICAgIGNvbnNvbGUubG9nKFwiZmllbGRcIiwgdGhpcy5maWVsZCk7XHJcbiAgICBjb25zb2xlLmxvZyhcInJlY29yZFwiLCB0aGlzLnJlY29yZCk7XHJcbiAgICBjb25zb2xlLmxvZyhcImluQ29uZmlnXCIsIHRoaXMuaW5Db25maWcpO1xyXG4gICAgY29uc29sZS5sb2coXCJRdWVyeUVkaXRvckNvbXBvbmVudFwiLCB0aGlzLlF1ZXJ5RWRpdG9yQ29tcG9uZW50KTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMuUXVlcnlFZGl0b3JDb21wb25lbnQgIT0gbnVsbCl7XHJcbiAgICAgIHRoaXMuUXVlcnlFZGl0b3JDb21wb25lbnQuaW5wdXRQYXJhbXMuY29uZmlnLm1vZGUgPSBRdWVyeUVkaXRvck1vZGVFbnVtLlJFU1VMVDtcclxuICAgICAgdGhpcy5RdWVyeUVkaXRvckNvbXBvbmVudC5pbnB1dFBhcmFtcy5jb25maWcuZmllbGQgPSB0aGlzLmZpZWxkO1xyXG4gICAgICB0aGlzLlF1ZXJ5RWRpdG9yQ29tcG9uZW50LmlucHV0UGFyYW1zLmNvbmZpZy5yZWNvcmQgPSB0aGlzLnJlY29yZDtcclxuICAgICAgdGhpcy5RdWVyeUVkaXRvckNvbXBvbmVudC5pbnB1dFBhcmFtcy5jb25maWcuaW5Db25maWcgPSB0aGlzLmluQ29uZmlnO1xyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGEgPT0gbnVsbCl7XHJcblxyXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KCcuL2Fzc2V0cy9tb2NrdXBzL21vY2tlZEZyb21RdWVyeUVkaXRvcl9SRVNVTFRfTUFOWS50eHQnLCB7cmVzcG9uc2VUeXBlOiAndGV4dCd9KVxyXG4gICAgICAuc3Vic2NyaWJlKG1vY2tlZEZyb21RdWVyeUVkaXRvciA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gSlNPTi5wYXJzZShtb2NrZWRGcm9tUXVlcnlFZGl0b3IpO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IEpTT04ucGFyc2UodGhpcy5kYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgdGhpcy5wcm9jZXNzUmVzdWx0KHRoaXMuZGF0YSk7XHJcbiAgICAgICB9KTsgICAgICBcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgb25FeHRlcm5hbFNRTFJlc3VsdE91dChldjogZXZlbnRPdXQpe1xyXG4gICAgY29uc29sZS5sb2coXCJMYSBxdWVyeSBkZWwgUXVlcnkgRWRpdG9yIMOoIHN0YXRhIGVzZWd1aXRhLCBlZCBoYSByZXN0aXR1aXRvIGlsIHNlZ3VlbnRlIHJpc3VsdGF0bzogXCIsZXYpO1xyXG4gICAgaWYgKGV2LkJlaGF2aW91cnMuaW5kZXhPZihcInNlbmQtb3V0XCIpICE9IC0xKXsgdGhpcy5vdXQuZW1pdChldik7IH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSBKU09OLnBhcnNlKGV2LlBhcmFtcy5yZXN1bHQpO1xyXG4gICAgdGhpcy5wcm9jZXNzUmVzdWx0KHRoaXMuZGF0YSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc1Jlc3VsdChkYXRhKXtcclxuICAgIFxyXG4gICAgaWYgKGRhdGEubGVuZ3RoID4gMCl7XHJcbiAgICAgIHRoaXMua2V5cyA9IE9iamVjdC5rZXlzKGRhdGFbMF0pO1xyXG4gICAgICBpZiAodGhpcy5rZXlzLmxlbmd0aCA9PSAyICYmIGRhdGEubGVuZ3RoID09IDEpe1xyXG4gICAgICAgIC8vIFNlIGhvIHVuIHNvbG8gb2NjaGlldHRvIHNlbGV6aW9uYXRvIGUgbGEgcXVlcnkgcmVzdGl0dWlzY2UgdW4gc29sbyB2YWxvcmUsIGxvIGJ1dHRvIGZ1b3JpIGF1dG9tYXRpY2FtZW50ZVxyXG4gICAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBkYXRhWzBdW3RoaXMua2V5c1sxXV07XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlLmVtaXQoW2RhdGFbMF1bdGhpcy5rZXlzWzFdXSx0cnVlXSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS5sZW5ndGggPT0gMSAmJiB0aGlzLmZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlckNvbHVtbkZvcmNlICE9IG51bGwpe1xyXG4gICAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBkYXRhWzBdW3RoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyQ29sdW1uRm9yY2Uua2V5XTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUuZW1pdChbZGF0YVswXVt0aGlzLmtleXNbMV1dLHRydWVdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7ICBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBzZWxlY3RWYWx1ZU5vdEZvcmNlZCh2YWx1ZSl7XHJcbiAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlLmVtaXQoW3ZhbHVlLGZhbHNlXSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RWYWx1ZUZvcmNlZChyb3cpe1xyXG4gICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IHJvd1t0aGlzLmZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlckNvbHVtbkZvcmNlLmtleV07XHJcbiAgICB0aGlzLmxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlLmVtaXQoW3Jvd1t0aGlzLmZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlckNvbHVtbkZvcmNlLmtleV0sZmFsc2VdKTtcclxuICB9ICBcclxuXHJcbiAgY2xvc2UoKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5lbWl0KFtcIioqKipDTE9TRSoqKipcIix0cnVlXSk7XHJcbiAgICB0aGlzLmxvYWRlZCA9IGZhbHNlO1xyXG4gIH1cclxuICBcclxuICBkZWxldGUoKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5lbWl0KFtudWxsLHRydWVdKTtcclxuICAgIHRoaXMubG9hZGVkID0gZmFsc2U7XHJcbiAgfSAgXHJcbn1cclxuXHJcbi8vIE8gY29zw6wgbyBzY2hpYW50YXRvIGEgbWFub1xyXG5leHBvcnQgZW51bSBRdWVyeUVkaXRvck1vZGVFbnVtIHtcclxuICBcIkNPTkZJR1VSQVRPUlwiID0gMSxcclxuICBcIkNPTVBPU0VSXCIgPSAyLFxyXG4gIFwiUkVTVUxUXCIgPSAzXHJcbn0iLCI8bmctdGVtcGxhdGUgW2FwcER5bmFtaWNMb2FkZXJdIFtkYXRhXT1cIlF1ZXJ5RWRpdG9yQ29tcG9uZW50XCIgKG91dCk9XCJvbkV4dGVybmFsU1FMUmVzdWx0T3V0KCRldmVudCk7XCIgKm5nSWY9XCJRdWVyeUVkaXRvckNvbXBvbmVudCAhPSBudWxsXCI+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbG9hdGluZ3RhYmxlIGRyYWdnYWJsZVwiIGNka0RyYWcgKm5nSWY9XCJkYXRhICE9IG51bGwgJiYgbG9hZGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj48YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbWFsbCBidG4tZGFuZ2VyXCIgKGNsaWNrKT1cImNsb3NlKClcIj5DaGl1ZGkgZmluZXN0cmEgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPjxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtYWxsIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwiZGVsZXRlKClcIj5DYW5jZWxsYSB2YWxvcmUgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+PG1hdC1pY29uPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj4gU2VsZXppb25hIGlsIHZhbG9yZSBkYSByZWdpc3RyYXJlLiBDbGljY2Egc3UgcXVlc3RhIGJhcnJhIHBlciB0cmFzY2luYXJlLjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ub3Rmb3JjZWRcIiAqbmdJZj1cImZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlckNvbHVtbkZvcmNlID09IG51bGxcIj5cclxuICAgICAgICA8dHI+PHRoICpuZ0Zvcj1cImxldCBrZXkgb2Yga2V5czsgbGV0IGZpcnN0ID0gZmlyc3RcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmaXJzdFwiPnt7a2V5fX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWZpcnN0XCI+e3trZXkuc3BsaXQoXCJfX1wiKVsxXX19PC9zcGFuPlxyXG4gICAgICAgIDwvdGg+PC90cj5cclxuICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhXCIgY2xhc3M9XCJyb3dzXCI+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQga2V5IG9mIGtleXNcIiAoY2xpY2spPVwic2VsZWN0VmFsdWVOb3RGb3JjZWQocm93W2tleV0pXCI+XHJcbiAgICAgICAgICAgICAgICB7e3Jvd1trZXldLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsMTAwKX19PHNwYW4gKm5nSWY9XCJyb3dba2V5XS5sZW5ndGggPiAxMDBcIj4uLi48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1mb3JjZWRcIiAqbmdJZj1cImZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlckNvbHVtbkZvcmNlICE9IG51bGxcIj5cclxuICAgICAgICA8dHI+PHRoICpuZ0Zvcj1cImxldCBrZXkgb2Yga2V5czsgbGV0IGZpcnN0ID0gZmlyc3RcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmaXJzdFwiPnt7a2V5fX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWZpcnN0XCI+e3trZXkuc3BsaXQoXCJfX1wiKVsxXX19PC9zcGFuPlxyXG4gICAgICAgIDwvdGg+PC90cj5cclxuICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhXCIgY2xhc3M9XCJyb3dzXCIgKGNsaWNrKT1cInNlbGVjdFZhbHVlRm9yY2VkKHJvdylcIj5cclxuICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBrZXkgb2Yga2V5c1wiPnt7cm93W2tleV0udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwxMDApfX08c3BhbiAqbmdJZj1cInJvd1trZXldLmxlbmd0aCA+IDEwMFwiPi4uLjwvc3Bhbj48L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPiAgICBcclxuPC9kaXY+XHJcblxyXG48c3BhbiAqbmdJZj1cInZhbHVlICE9IG51bGxcIj57e3ZhbHVlfX08L3NwYW4+Il19
|