ngx-histaff-alpha 3.6.4 → 3.6.6
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/esm2022/lib/app/libraries/core-contract-seeker/core-contract-seeker/core-contract-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-control/core-control/core-control.component.mjs +3 -3
- package/esm2022/lib/app/libraries/core-control-no-grid-buffer/core-control-no-grid-buffer/core-control-no-grid-buffer.component.mjs +2 -2
- package/esm2022/lib/app/libraries/core-control-no-seeker/core-control-no-seeker.component.mjs +2 -2
- package/esm2022/lib/app/libraries/core-date-picker/core-date-picker/core-date-picker.component.mjs +8 -5
- package/esm2022/lib/app/libraries/core-employee-seeker/core-employee-seeker/core-employee-seeker.component.mjs +5 -4
- package/esm2022/lib/app/libraries/core-form/core-form/core-form.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-form/core-form/enum-interfaces.mjs +1 -1
- package/esm2022/lib/app/libraries/core-org-param/core-org-param.component.mjs +40 -12
- package/esm2022/lib/app/libraries/core-org-tree/core-org-tree/core-org-tree.component.mjs +14 -3
- package/esm2022/lib/app/libraries/core-page-edit/core-page-edit.component.mjs +3 -3
- package/esm2022/lib/app/libraries/core-page-edit-tab/core-page-edit-tab.component.mjs +2 -2
- package/esm2022/lib/app/libraries/core-param-control/core-param-control/core-param-control.component.mjs +3 -3
- package/esm2022/lib/app/libraries/core-position-concurrent-seeker/core-position-concurrent-seeker/core-position-concurrent-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-position-seeker/core-position-seeker/core-position-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-sub-form-group/core-sub-form-group/core-sub-form-group.component.mjs +1 -1
- package/esm2022/lib/app/libraries/core-wage-seeker/core-wage-seeker/core-wage-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-working-seeker/core-working-seeker/core-working-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/evaluate-dialog/evaluate-dialog.component.mjs +1 -1
- package/fesm2022/ngx-histaff-alpha.mjs +89 -41
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/libraries/core-contract-seeker/core-contract-seeker/core-contract-seeker.component.d.ts +2 -0
- package/lib/app/libraries/core-date-picker/core-date-picker/core-date-picker.component.d.ts +2 -1
- package/lib/app/libraries/core-employee-seeker/core-employee-seeker/core-employee-seeker.component.d.ts +2 -0
- package/lib/app/libraries/core-form/core-form/core-form.component.d.ts +2 -1
- package/lib/app/libraries/core-form/core-form/enum-interfaces.d.ts +2 -0
- package/lib/app/libraries/core-org-param/core-org-param.component.d.ts +3 -1
- package/lib/app/libraries/core-position-concurrent-seeker/core-position-concurrent-seeker/core-position-concurrent-seeker.component.d.ts +2 -0
- package/lib/app/libraries/core-position-seeker/core-position-seeker/core-position-seeker.component.d.ts +2 -0
- package/lib/app/libraries/core-wage-seeker/core-wage-seeker/core-wage-seeker.component.d.ts +2 -0
- package/lib/app/libraries/core-working-seeker/core-working-seeker/core-working-seeker.component.d.ts +2 -0
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { FormsModule } from '@angular/forms';
|
|
|
7
7
|
import { CoreOrgTreeComponent } from '../../core-org-tree/core-org-tree/core-org-tree.component';
|
|
8
8
|
import { CorePageListComponent } from '../../core-page-list/core-page-list.component';
|
|
9
9
|
import { LayoutService } from '../../../services/layout.service';
|
|
10
|
+
import { EnumCoreOrgTreeaAccessorMode } from '../../core-org-tree/core-org-tree/core-org-tree.component';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "@angular/common";
|
|
12
13
|
import * as i2 from "@angular/forms";
|
|
@@ -21,6 +22,7 @@ export class CoreContractSeekerComponent extends ContractInforComponent {
|
|
|
21
22
|
this.selectedDataChange = new EventEmitter();
|
|
22
23
|
this.columnsInit = new EventEmitter();
|
|
23
24
|
this.listChange = new EventEmitter();
|
|
25
|
+
this.orgTreeMode = EnumCoreOrgTreeaAccessorMode.ACTIVATED_INHERITANCE;
|
|
24
26
|
this.layoutService = inject(LayoutService);
|
|
25
27
|
}
|
|
26
28
|
ngOnChanges(changes) {
|
|
@@ -75,7 +77,7 @@ export class CoreContractSeekerComponent extends ContractInforComponent {
|
|
|
75
77
|
this.listChange.emit(e);
|
|
76
78
|
}
|
|
77
79
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreContractSeekerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
78
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreContractSeekerComponent, isStandalone: true, selector: "core-contract-seeker", inputs: { height: "height", preDefinedOuterFilter$: "preDefinedOuterFilter$", excludedColumns: "excludedColumns", multiMode: "multiMode", preDefinedOuterParam$: "preDefinedOuterParam$", excludedIds$: "excludedIds$" }, outputs: { rowDoubleClick: "rowDoubleClick", rowClick: "rowClick", selectedIdsChange: "selectedIdsChange", selectedDataChange: "selectedDataChange", columnsInit: "columnsInit", listChange: "listChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-contract-seeker-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [hideCheck]=\"true\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\" *ngIf=\"!!avatar\" \r\n [outerParam$]=\"outerParam$\"\r\n [outerFilter$]=\"outerFilter$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [excludedIds$]=\"excludedIds$\"\r\n [outerFilterOperators]=\"outerFilterOperators\" [autoResizeWithWindow]=\"true\" [seekerMode]=\"true\" \r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (rowClick)=\"onRowSingleClick($event)\"\r\n (listChange)=\"onListChange($event)\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" [height]=\"orgTreeHeight\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\" [fullWidthMode]=\"false\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img [src]=\"avatar || defaultAvatar\" appImageErrorResolver>\r\n </ng-template>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }] }); }
|
|
80
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreContractSeekerComponent, isStandalone: true, selector: "core-contract-seeker", inputs: { height: "height", preDefinedOuterFilter$: "preDefinedOuterFilter$", excludedColumns: "excludedColumns", multiMode: "multiMode", preDefinedOuterParam$: "preDefinedOuterParam$", excludedIds$: "excludedIds$" }, outputs: { rowDoubleClick: "rowDoubleClick", rowClick: "rowClick", selectedIdsChange: "selectedIdsChange", selectedDataChange: "selectedDataChange", columnsInit: "columnsInit", listChange: "listChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-contract-seeker-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [hideCheck]=\"true\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\" *ngIf=\"!!avatar\" \r\n [outerParam$]=\"outerParam$\"\r\n [outerFilter$]=\"outerFilter$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [excludedIds$]=\"excludedIds$\"\r\n [outerFilterOperators]=\"outerFilterOperators\" [autoResizeWithWindow]=\"true\" [seekerMode]=\"true\" \r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (rowClick)=\"onRowSingleClick($event)\"\r\n (listChange)=\"onListChange($event)\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" [height]=\"orgTreeHeight\" [accessorMode]=\"orgTreeMode\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\" [fullWidthMode]=\"false\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img [src]=\"avatar || defaultAvatar\" appImageErrorResolver>\r\n </ng-template>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }] }); }
|
|
79
81
|
}
|
|
80
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreContractSeekerComponent, decorators: [{
|
|
81
83
|
type: Component,
|
|
@@ -84,7 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
84
86
|
FormsModule,
|
|
85
87
|
CoreOrgTreeComponent,
|
|
86
88
|
CorePageListComponent,
|
|
87
|
-
], template: "<div class=\"core-contract-seeker-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [hideCheck]=\"true\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\" *ngIf=\"!!avatar\" \r\n [outerParam$]=\"outerParam$\"\r\n [outerFilter$]=\"outerFilter$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [excludedIds$]=\"excludedIds$\"\r\n [outerFilterOperators]=\"outerFilterOperators\" [autoResizeWithWindow]=\"true\" [seekerMode]=\"true\" \r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (rowClick)=\"onRowSingleClick($event)\"\r\n (listChange)=\"onListChange($event)\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" [height]=\"orgTreeHeight\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\" [fullWidthMode]=\"false\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img [src]=\"avatar || defaultAvatar\" appImageErrorResolver>\r\n </ng-template>\r\n</div>" }]
|
|
89
|
+
], template: "<div class=\"core-contract-seeker-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [hideCheck]=\"true\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\" *ngIf=\"!!avatar\" \r\n [outerParam$]=\"outerParam$\"\r\n [outerFilter$]=\"outerFilter$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [excludedIds$]=\"excludedIds$\"\r\n [outerFilterOperators]=\"outerFilterOperators\" [autoResizeWithWindow]=\"true\" [seekerMode]=\"true\" \r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (rowClick)=\"onRowSingleClick($event)\"\r\n (listChange)=\"onListChange($event)\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" [height]=\"orgTreeHeight\" [accessorMode]=\"orgTreeMode\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\" [fullWidthMode]=\"false\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img [src]=\"avatar || defaultAvatar\" appImageErrorResolver>\r\n </ng-template>\r\n</div>" }]
|
|
88
90
|
}], propDecorators: { height: [{
|
|
89
91
|
type: Input
|
|
90
92
|
}], preDefinedOuterFilter$: [{
|
|
@@ -110,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
110
112
|
}], listChange: [{
|
|
111
113
|
type: Output
|
|
112
114
|
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtY29udHJhY3Qtc2Vla2VyL2NvcmUtY29udHJhY3Qtc2Vla2VyL2NvcmUtY29udHJhY3Qtc2Vla2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUd0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFjakUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHNCQUFzQjtJQVp2RTs7UUFnQlcsVUFBSyxH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RCxnQkFBZ0IsQ0FBQyxDQUFNO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBUTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6QixDQUFDOzhHQWxGVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixtaUJDeEJ4Qyw4cENBdUJNLHlERFBGLFlBQVksa0lBQ1osV0FBVywrVkFDWCxvQkFBb0Isb1FBQ3BCLHFCQUFxQjs7MkZBS1osMkJBQTJCO2tCQVp2QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIscUJBQXFCO3FCQUN0Qjs4QkFNUSxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnRyYWN0SW5mb3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cmFjdGluZm9yL2NvbnRyYWN0aW5mb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlT3JnVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVQYWdlTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudW1Db3JlU2Vla2VyQ29sdW1uQ29udHJhY3QgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvRW51bUNvcmVTZWVrZXJDb2x1bW4nO1xyXG5pbXBvcnQgeyBJRmlsdGVyT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lRdWVyeUxpc3RSZXF1ZXN0JztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1jb250cmFjdC1zZWVrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlT3JnVHJlZUNvbXBvbmVudCxcclxuICAgIENvcmVQYWdlTGlzdENvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWNvbnRyYWN0LXNlZWtlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50IGV4dGVuZHMgQ29udHJhY3RJbmZvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGhlaWdodCE6IG51bWJlcjtcclxuXHJcbiAgb3ZlcnJpZGUgdGl0bGUgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9USVRMRV9DT05UUkFDVF9TRUVLRVI7XHJcblxyXG4gIEBJbnB1dCgpIHByZURlZmluZWRPdXRlckZpbHRlciQhOiBCZWhhdmlvclN1YmplY3Q8SUZpbHRlck9wZXJhdG9yW10+OyAvLyBmcm9tIDIwMjQtMDYtMTJcclxuXHJcbiAgQElucHV0KCkgZXhjbHVkZWRDb2x1bW5zITogRW51bUNvcmVTZWVrZXJDb2x1bW5Db250cmFjdFtdO1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcHJlRGVmaW5lZE91dGVyUGFyYW0kITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgQElucHV0KCkgZXhjbHVkZWRJZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXT4oW10pO1xyXG4gIFxyXG4gIEBPdXRwdXQoKSByb3dEb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkSWRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZERhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNvbHVtbnNJbml0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsaXN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuXHJcbiAgbGF5b3V0U2VydmljZSA9IGluamVjdChMYXlvdXRTZXJ2aWNlKVxyXG4gIG9yZ1RyZWVIZWlnaHQhOiBudW1iZXI7XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2hlaWdodCddKSB7XHJcbiAgICAgIHRoaXMub3JnVHJlZUhlaWdodCA9IGNoYW5nZXNbJ2hlaWdodCddLmN1cnJlbnRWYWx1ZSAtIHRoaXMubGF5b3V0U2VydmljZS5jb3JlUGFnZUhlYWRlckhlaWdodCAtIHRoaXMubGF5b3V0U2VydmljZS5iYXNpY1NwYWNpbmdcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpXHJcbiAgICApXHJcbiAgICBpZiAodGhpcy5wcmVEZWZpbmVkT3V0ZXJQYXJhbSQpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5wcmVEZWZpbmVkT3V0ZXJQYXJhbSQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMub3V0ZXJQYXJhbSQudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5vdXRlclBhcmFtJC5uZXh0KHgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vdXRlclBhcmFtJC5uZXh0KHtcclxuICAgICAgICAgICAgICAuLi50aGlzLm91dGVyUGFyYW0kLnZhbHVlLFxyXG4gICAgICAgICAgICAgIC4uLnhcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJlRGVmaW5lZE91dGVyRmlsdGVyJCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnByZURlZmluZWRPdXRlckZpbHRlciQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMub3V0ZXJGaWx0ZXIkLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3V0ZXJGaWx0ZXIkLm5leHQoeCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm91dGVyRmlsdGVyJC5uZXh0KHtcclxuICAgICAgICAgICAgICAuLi50aGlzLm91dGVyRmlsdGVyJC52YWx1ZSxcclxuICAgICAgICAgICAgICAuLi54XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuICAgIHRoaXMuY29sdW1uc0luaXQuZW1pdCh0aGlzLmNvbHVtbnMpO1xyXG4gIH1cclxuXHJcblxyXG4gIG9uUm93RG91YmxlQ2xpY2soZTogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlNb2RlKSB0aGlzLnJvd0RvdWJsZUNsaWNrLmVtaXQoZSlcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ZWRJZHNDaGFuZ2UoZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzQ2hhbmdlLmVtaXQoZSlcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ZWREYXRhQ2hhbmdlKGU6IGFueVtdKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0YUNoYW5nZS5lbWl0KGUpXHJcbiAgfVxyXG5cclxuICBvblJvd1NpbmdsZUNsaWNrKGU6IGFueSkge1xyXG4gICAgdGhpcy5yb3dDbGljay5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25MaXN0Q2hhbmdlKGU6IGFueVtdKSB7XHJcbiAgICB0aGlzLmxpc3RDaGFuZ2UuZW1pdChlKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtY29udHJhY3Qtc2Vla2VyLWNvbnRhaW5lclwiPlxyXG4gICAgPGNvcmUtcGFnZS1saXN0IFxyXG4gICAgICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgICBbaGlkZUNoZWNrXT1cInRydWVcIiBbYXBpRGVmaW5pdGlvbl09XCJhcGlEZWZpbml0aW9uXCIgW2NvbHVtbnNdPVwiY29sdW1uc1wiIFtlZGl0Um91dGVdPVwiZWRpdFJvdXRlXCIgW2NydWRdPVwiY3J1ZFwiXHJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCIgW2xlZnRdPVwib3JnVHJlZVwiICpuZ0lmPVwiISFhdmF0YXJcIiBcclxuICAgICAgICBbb3V0ZXJQYXJhbSRdPVwib3V0ZXJQYXJhbSRcIlxyXG4gICAgICAgIFtvdXRlckZpbHRlciRdPVwib3V0ZXJGaWx0ZXIkXCJcclxuICAgICAgICBbb3V0ZXJJbk9wZXJhdG9yc109XCJvdXRlckluT3BlcmF0b3JzXCJcclxuICAgICAgICBbZXhjbHVkZWRJZHMkXT1cImV4Y2x1ZGVkSWRzJFwiXHJcbiAgICAgICAgW291dGVyRmlsdGVyT3BlcmF0b3JzXT1cIm91dGVyRmlsdGVyT3BlcmF0b3JzXCIgW2F1dG9SZXNpemVXaXRoV2luZG93XT1cInRydWVcIiBbc2Vla2VyTW9kZV09XCJ0cnVlXCIgXHJcbiAgICAgICAgKHJvd0RvdWJsZUNsaWNrKT1cIm9uUm93RG91YmxlQ2xpY2soJGV2ZW50KVwiIChyb3dDbGljayk9XCJvblJvd1NpbmdsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChsaXN0Q2hhbmdlKT1cIm9uTGlzdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9jb3JlLXBhZ2UtbGlzdD5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI29yZ1RyZWU+XHJcbiAgICAgICAgPGNvcmUtb3JnLXRyZWUgWyhuZ01vZGVsKV09XCJvcmdJZHNcIiBbaGVpZ2h0XT1cIm9yZ1RyZWVIZWlnaHRcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk9yZ0lkc0NoYW5nZSgkZXZlbnQpXCIgW2Z1bGxXaWR0aE1vZGVdPVwiZmFsc2VcIj5cclxuICAgICAgICA8L2NvcmUtb3JnLXRyZWU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYXZhdGFyIGxldC1hdmF0YXI9XCJjb250ZXh0LmF2YXRhclwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJhdmF0YXIgfHwgZGVmYXVsdEF2YXRhclwiIGFwcEltYWdlRXJyb3JSZXNvbHZlcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtY29udHJhY3Qtc2Vla2VyL2NvcmUtY29udHJhY3Qtc2Vla2VyL2NvcmUtY29udHJhY3Qtc2Vla2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUd0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7Ozs7QUFjekcsTUFB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RUQsb0JBQW9CLENBQUMsQ0FBUTtRQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFNO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBUTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6QixDQUFDOzhHQXBGVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixtaUJDekJ4Qyw2ckNBdUJNLHlERE5GLFlBQVksa0lBQ1osV0FBVywrVkFDWCxvQkFBb0Isb1FBQ3BCLHFCQUFxQjs7MkZBS1osMkJBQTJCO2tCQVp2QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIscUJBQXFCO3FCQUN0Qjs4QkFNUSxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnRyYWN0SW5mb3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cmFjdGluZm9yL2NvbnRyYWN0aW5mb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlT3JnVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVQYWdlTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudW1Db3JlU2Vla2VyQ29sdW1uQ29udHJhY3QgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvRW51bUNvcmVTZWVrZXJDb2x1bW4nO1xyXG5pbXBvcnQgeyBJRmlsdGVyT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lRdWVyeUxpc3RSZXF1ZXN0JztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZSB9IGZyb20gJy4uLy4uL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtY29udHJhY3Qtc2Vla2VyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29yZU9yZ1RyZWVDb21wb25lbnQsXHJcbiAgICBDb3JlUGFnZUxpc3RDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtY29udHJhY3Qtc2Vla2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVDb250cmFjdFNlZWtlckNvbXBvbmVudCBleHRlbmRzIENvbnRyYWN0SW5mb3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKSBoZWlnaHQhOiBudW1iZXI7XHJcblxyXG4gIG92ZXJyaWRlIHRpdGxlID0gRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfVElUTEVfQ09OVFJBQ1RfU0VFS0VSO1xyXG5cclxuICBASW5wdXQoKSBwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkITogQmVoYXZpb3JTdWJqZWN0PElGaWx0ZXJPcGVyYXRvcltdPjsgLy8gZnJvbSAyMDI0LTA2LTEyXHJcblxyXG4gIEBJbnB1dCgpIGV4Y2x1ZGVkQ29sdW1ucyE6IEVudW1Db3JlU2Vla2VyQ29sdW1uQ29udHJhY3RbXTtcclxuICBASW5wdXQoKSBtdWx0aU1vZGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHByZURlZmluZWRPdXRlclBhcmFtJCE6IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xyXG4gIEBJbnB1dCgpIGV4Y2x1ZGVkSWRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyW10+KFtdKTtcclxuICBcclxuICBAT3V0cHV0KCkgcm93RG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZElkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWREYXRhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjb2x1bW5zSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbGlzdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIG9yZ1RyZWVNb2RlOiBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlID0gRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZS5BQ1RJVkFURURfSU5IRVJJVEFOQ0VcclxuXHJcbiAgbGF5b3V0U2VydmljZSA9IGluamVjdChMYXlvdXRTZXJ2aWNlKVxyXG4gIG9yZ1RyZWVIZWlnaHQhOiBudW1iZXI7XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2hlaWdodCddKSB7XHJcbiAgICAgIHRoaXMub3JnVHJlZUhlaWdodCA9IGNoYW5nZXNbJ2hlaWdodCddLmN1cnJlbnRWYWx1ZSAtIHRoaXMubGF5b3V0U2VydmljZS5jb3JlUGFnZUhlYWRlckhlaWdodCAtIHRoaXMubGF5b3V0U2VydmljZS5iYXNpY1NwYWNpbmdcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpXHJcbiAgICApXHJcbiAgICBpZiAodGhpcy5wcmVEZWZpbmVkT3V0ZXJQYXJhbSQpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5wcmVEZWZpbmVkT3V0ZXJQYXJhbSQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMub3V0ZXJQYXJhbSQudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5vdXRlclBhcmFtJC5uZXh0KHgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vdXRlclBhcmFtJC5uZXh0KHtcclxuICAgICAgICAgICAgICAuLi50aGlzLm91dGVyUGFyYW0kLnZhbHVlLFxyXG4gICAgICAgICAgICAgIC4uLnhcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJlRGVmaW5lZE91dGVyRmlsdGVyJCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnByZURlZmluZWRPdXRlckZpbHRlciQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMub3V0ZXJGaWx0ZXIkLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3V0ZXJGaWx0ZXIkLm5leHQoeCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm91dGVyRmlsdGVyJC5uZXh0KHtcclxuICAgICAgICAgICAgICAuLi50aGlzLm91dGVyRmlsdGVyJC52YWx1ZSxcclxuICAgICAgICAgICAgICAuLi54XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuICAgIHRoaXMuY29sdW1uc0luaXQuZW1pdCh0aGlzLmNvbHVtbnMpO1xyXG4gIH1cclxuXHJcblxyXG4gIG9uUm93RG91YmxlQ2xpY2soZTogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlNb2RlKSB0aGlzLnJvd0RvdWJsZUNsaWNrLmVtaXQoZSlcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ZWRJZHNDaGFuZ2UoZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzQ2hhbmdlLmVtaXQoZSlcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ZWREYXRhQ2hhbmdlKGU6IGFueVtdKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0YUNoYW5nZS5lbWl0KGUpXHJcbiAgfVxyXG5cclxuICBvblJvd1NpbmdsZUNsaWNrKGU6IGFueSkge1xyXG4gICAgdGhpcy5yb3dDbGljay5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25MaXN0Q2hhbmdlKGU6IGFueVtdKSB7XHJcbiAgICB0aGlzLmxpc3RDaGFuZ2UuZW1pdChlKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtY29udHJhY3Qtc2Vla2VyLWNvbnRhaW5lclwiPlxyXG4gICAgPGNvcmUtcGFnZS1saXN0IFxyXG4gICAgICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgICBbaGlkZUNoZWNrXT1cInRydWVcIiBbYXBpRGVmaW5pdGlvbl09XCJhcGlEZWZpbml0aW9uXCIgW2NvbHVtbnNdPVwiY29sdW1uc1wiIFtlZGl0Um91dGVdPVwiZWRpdFJvdXRlXCIgW2NydWRdPVwiY3J1ZFwiXHJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCIgW2xlZnRdPVwib3JnVHJlZVwiICpuZ0lmPVwiISFhdmF0YXJcIiBcclxuICAgICAgICBbb3V0ZXJQYXJhbSRdPVwib3V0ZXJQYXJhbSRcIlxyXG4gICAgICAgIFtvdXRlckZpbHRlciRdPVwib3V0ZXJGaWx0ZXIkXCJcclxuICAgICAgICBbb3V0ZXJJbk9wZXJhdG9yc109XCJvdXRlckluT3BlcmF0b3JzXCJcclxuICAgICAgICBbZXhjbHVkZWRJZHMkXT1cImV4Y2x1ZGVkSWRzJFwiXHJcbiAgICAgICAgW291dGVyRmlsdGVyT3BlcmF0b3JzXT1cIm91dGVyRmlsdGVyT3BlcmF0b3JzXCIgW2F1dG9SZXNpemVXaXRoV2luZG93XT1cInRydWVcIiBbc2Vla2VyTW9kZV09XCJ0cnVlXCIgXHJcbiAgICAgICAgKHJvd0RvdWJsZUNsaWNrKT1cIm9uUm93RG91YmxlQ2xpY2soJGV2ZW50KVwiIChyb3dDbGljayk9XCJvblJvd1NpbmdsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChsaXN0Q2hhbmdlKT1cIm9uTGlzdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9jb3JlLXBhZ2UtbGlzdD5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI29yZ1RyZWU+XHJcbiAgICAgICAgPGNvcmUtb3JnLXRyZWUgWyhuZ01vZGVsKV09XCJvcmdJZHNcIiBbaGVpZ2h0XT1cIm9yZ1RyZWVIZWlnaHRcIiBbYWNjZXNzb3JNb2RlXT1cIm9yZ1RyZWVNb2RlXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25PcmdJZHNDaGFuZ2UoJGV2ZW50KVwiIFtmdWxsV2lkdGhNb2RlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgPC9jb3JlLW9yZy10cmVlPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2F2YXRhciBsZXQtYXZhdGFyPVwiY29udGV4dC5hdmF0YXJcIj5cclxuICAgICAgICA8aW1nIFtzcmNdPVwiYXZhdGFyIHx8IGRlZmF1bHRBdmF0YXJcIiBhcHBJbWFnZUVycm9yUmVzb2x2ZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4iXX0=
|
|
@@ -116,7 +116,7 @@ export class CoreControlComponent extends BaseComponent {
|
|
|
116
116
|
this.control.click$?.next(e);
|
|
117
117
|
}
|
|
118
118
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreControlComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreControlComponent, isStandalone: true, selector: "core-control", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\"></i>\r\n }\r\n\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"TEXTBOX\") {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly!\" useValueAsDate>\r\n \r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n \r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n >\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [rangeLimit]=\"control.rangeLimit!\"></core-date-picker>\r\n }\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-dropdown>\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "paramMode", "multiMode", "objectList$", "shownSeekerColumns", "excludeExistingList", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore"], outputs: ["onDoubleClick"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["assignTo", "readonly", "valueToShow"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "rangeLimit", "readonly", "disabled"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align"], outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign"], outputs: ["onLeftFocus"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "relativeMode"] }] }); }
|
|
119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreControlComponent, isStandalone: true, selector: "core-control", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\"></i>\r\n }\r\n\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"TEXTBOX\") {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly!\" useValueAsDate>\r\n \r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n \r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n >\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\"></core-date-picker>\r\n }\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-dropdown>\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "paramMode", "multiMode", "objectList$", "shownSeekerColumns", "excludeExistingList", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore"], outputs: ["onDoubleClick"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["assignTo", "readonly", "valueToShow"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "readonly", "disabled"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align"], outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign"], outputs: ["onLeftFocus"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "relativeMode"] }] }); }
|
|
120
120
|
}
|
|
121
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreControlComponent, decorators: [{
|
|
122
122
|
type: Component,
|
|
@@ -142,7 +142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
142
142
|
CoreCurrencyInputComponent,
|
|
143
143
|
CoreShiftCellComponent,
|
|
144
144
|
CoreShiftCollectionComponent
|
|
145
|
-
], template: "<div class=\"core-control-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\"></i>\r\n }\r\n\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"TEXTBOX\") {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly!\" useValueAsDate>\r\n \r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n \r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n >\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [rangeLimit]=\"control.rangeLimit!\"></core-date-picker>\r\n }\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-dropdown>\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"] }]
|
|
145
|
+
], template: "<div class=\"core-control-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\"></i>\r\n }\r\n\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"TEXTBOX\") {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly!\" useValueAsDate>\r\n \r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n \r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n >\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\"></core-date-picker>\r\n }\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-dropdown>\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"] }]
|
|
146
146
|
}], ctorParameters: () => [{ type: i1.MultiLanguageService }, { type: i2.AlertService }], propDecorators: { control: [{
|
|
147
147
|
type: Input
|
|
148
148
|
}], form: [{
|
|
@@ -152,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
152
152
|
}], rangeLimit: [{
|
|
153
153
|
type: Input
|
|
154
154
|
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbnRyb2wvY29yZS1jb250cm9sL2NvcmUtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb250cm9sL2NvcmUtY29udHJvbC9jb3JlLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQThCLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBd0IsTUFBTSxvRUFBb0UsQ0FBQztBQUVuSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdEcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDNUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0VB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Q3pCLHVCQUF1Qiw2R0FDdkIsdUJBQXVCLHdJQUN2Qix1QkFBdUIsMExBQ3ZCLG9CQUFvQixvUUFDcEIsdUJBQXVCLCtGQUN2QixnQkFBZ0IsMk1BQ2hCLDBCQUEwQiw2R0FDMUIsZ0JBQWdCLDJHQUNoQiwwQkFBMEIsb0hBQzFCLHNCQUFzQixnSkFDdEIsNEJBQTRCOzsyRkFLbkIsb0JBQW9CO2tCQTdCaEMsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5QixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsMEJBQTBCO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3dCQUN0Qiw0QkFBNEI7cUJBQzdCO29IQU1RLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBJRm9ybUJhc2VDb250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtL2NvcmUtZm9ybS9lbnVtLWludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1jb21wb25lbnQvYmFzZS9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlIH0gZnJvbSAnLi4vLi4vY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZURhdGVQaWNrZXJDb21wb25lbnQsIElDb3JlRGF0ZVBpY2tlclJhbmdlIH0gZnJvbSAnLi4vLi4vY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgSUVycm9yIH0gZnJvbSAnLi9JRXJyb3InO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb3JlQ2hlY2tsaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sU2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1jaGVja2JveC9jb3JlLWNoZWNrYm94L2NvcmUtY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZU9yZ1RyZWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlR3JpZEJ1ZmZlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtZ3JpZC1idWZmZXIvY29yZS1ncmlkLWJ1ZmZlci9jb3JlLWdyaWQtYnVmZmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBDb3JlTWNjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1tY2MvY29yZS1tY2MvY29yZS1tY2MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZU1vbnRoU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLW1vbnRoLXNlbGVjdG9yL2NvcmUtbW9udGgtc2VsZWN0b3IvY29yZS1tb250aC1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWRyb3Bkb3duL2NvcmUtZHJvcGRvd24vY29yZS1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtbGlzdC9jb3JlLWxpc3QvY29yZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVGaWxlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZpbGUtdXBsb2FkZXIvY29yZS1maWxlLXVwbG9hZGVyL2NvcmUtZmlsZS11cGxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlQXR0YWNobWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtYXR0YWNobWVudC9jb3JlLWF0dGFjaG1lbnQvY29yZS1hdHRhY2htZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVSYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1yYWRpby1ncm91cC9jb3JlLXJhZGlvLWdyb3VwL2NvcmUtcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JlQ3VycmVuY3lJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtY3VycmVuY3ktaW5wdXQvY29yZS1jdXJyZW5jeS1pbnB1dC9jb3JlLWN1cnJlbmN5LWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVTaGlmdENvbGxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXNoaWZ0LWNvbGxlY3Rpb24vY29yZS1zaGlmdC1jb2xsZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVTaGlmdENlbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQ2VsbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90YWJsZS1jZWxsLnBpcGUnO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtY29udHJvbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIFRhYmxlQ2VsbFBpcGUsXHJcbiAgICBDb3JlRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBDb3JlTGlzdENvbXBvbmVudCxcclxuICAgIENvcmVDaGVja2xpc3RDb21wb25lbnQsXHJcbiAgICBDb3JlRm9ybUNvbnRyb2xTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBDb3JlRmlsZVVwbG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQ29yZUF0dGFjaG1lbnRDb21wb25lbnQsXHJcbiAgICBDb3JlR3JpZEJ1ZmZlckNvbXBvbmVudCxcclxuICAgIENvcmVEYXRlUGlja2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZU9yZ1RyZWVDb21wb25lbnQsXHJcbiAgICBDb3JlUmFkaW9Hcm91cENvbXBvbmVudCxcclxuICAgIENvcmVNY2NDb21wb25lbnQsXHJcbiAgICBDb3JlTW9udGhTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBDb3JlQ3VycmVuY3lJbnB1dENvbXBvbmVudCxcclxuICAgIENvcmVTaGlmdENlbGxDb21wb25lbnQsXHJcbiAgICBDb3JlU2hpZnRDb2xsZWN0aW9uQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUNvbnRyb2xDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBjb250cm9sITogSUZvcm1CYXNlQ29udHJvbDtcclxuICBASW5wdXQoKSBmb3JtITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGNoZWNrRXJyb3IkITogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xyXG4gIEBJbnB1dCgpIHJhbmdlTGltaXQhOiBJQ29yZURhdGVQaWNrZXJSYW5nZTtcclxuXHJcbiAgLyogU1RBUlQ6IFRISVMgSVMgTkFUSVZFIEZPUk0gQ09OVFJPTCAqL1xyXG4gIHJhd0NvbnRyb2whOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgLyogRU5EOiBUSElTIElTIE5BVElWRSBGT1JNIENPTlRST0wgKi9cclxuXHJcbiAgY29udHJvbFR5cGUhOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlO1xyXG4gIHJlcXVpcmVkITogYm9vbGVhbjtcclxuICBlcnJvcnM6IElFcnJvcltdID0gW107XHJcblxyXG4gIGlzRGV2TW9kZSA9IGlzRGV2TW9kZSgpO1xyXG5cclxuICBjb3JlT3JnVHJlZURlZmF1bHRBY2Nlc3Nvck1vZGUgPSBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlLkNIRUNLRUQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLCBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKG1scyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BsYXlWYWxpZGF0b3JOYW1lTWF0aGNoaW5nRXJyb3IoKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYFxyXG4gICAgICAgICcke3RoaXMuY29udHJvbC5maWVsZH0nIHZhbGlkYXRvciBhcnJheSBkZWZpbml0aW9uIGVycm9yOiB2YWxpZGF0b3IgbmFtZSBtdXN0IGVxdWFsIFZhbGlkYXRvcnMuJmx0O2tleSZndDtcclxuICAgICAgYCwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrRXJyb3IoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCEhdGhpcy5yYXdDb250cm9sPy5lcnJvcnMpIHtcclxuXHJcbiAgICAgIGNvbnN0IG5ld0Vycm9yczogSUVycm9yW10gPSBbXTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMuY29udHJvbC5maWVsZF0uZXJyb3JzISkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIC8qICBcclxuICAgICAgICAgIHRhbmxlaWNhOlxyXG4gICAgICAgICAgICBCeSBjdXN0b20gZGVzaWduLCBjdXN0b20gZXJyb3IgaXMgYW4gYXJyYXlcclxuICAgICAgICAgICAgd2hpbGUgYnVpbHQtaW4gdmFsaWRhdG9yIHNob3VsZCBwcm9kdWNlIGFuIG9iamVjdCBlcnJvciBpZiBhbnlcclxuICAgICAgICAqL1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5jb250cm9sLmZpZWxkXS5lcnJvcnMhW2tleV0gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgbmV3RXJyb3JzLnB1c2goe1xyXG4gICAgICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5jb250cm9sLmZpZWxkXS5lcnJvcnMhW2tleV1bMV1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICghIXRoaXMuY29udHJvbC52YWxpZGF0b3JzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29udHJvbC52YWxpZGF0b3JzPy5maWx0ZXIoeCA9PiB4Lm5hbWUudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgICAgIGlmICghIWZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBuZXdFcnJvcnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogZmlsdGVyIVswXS5lcnJvck1lc3NhZ2UhXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWxpZGF0b3JOYW1lTWF0aGNoaW5nRXJyb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsaWRhdG9yTmFtZU1hdGhjaGluZ0Vycm9yKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmVycm9ycyA9IG5ld0Vycm9ycztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldEVycm9yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geCkpO1xyXG4gICAgdGhpcy5jb250cm9sVHlwZSA9IHRoaXMuY29udHJvbC5jb250cm9sVHlwZTtcclxuICAgIHRoaXMucmVxdWlyZWQgPSAhIXRoaXMuY29udHJvbC52YWxpZGF0b3JzPy5maWx0ZXIoeCA9PiB4LnZhbGlkYXRvci5uYW1lID09PSAncmVxdWlyZWQnKS5sZW5ndGhcclxuXHJcbiAgICB0aGlzLnJhd0NvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuY29udHJvbC5maWVsZCkhO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLnJhd0NvbnRyb2w/LnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tFcnJvcigpO1xyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICAgIGlmICghIXRoaXMuY2hlY2tFcnJvciQpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5jaGVja0Vycm9yJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAoeCkge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrRXJyb3IoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRFcnJvcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBnZXQgaXNWYWxpZCgpIHsgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmNvbnRyb2wuZmllbGRdLnZhbGlkOyB9XHJcblxyXG4gIG9uRm9jdXMoZTogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuZm9jdXMkPy5uZXh0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGU6IGFueSkge1xyXG4gICAgdGhpcy5jb250cm9sLmJsdXIkPy5uZXh0KGUpO1xyXG4gIH1cclxuICBvSGFuZGxlQ2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuY2xpY2skPy5uZXh0KGUpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1jb250cm9sLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBbY2xhc3MuaGlkZGVuXT1cIiEhY29udHJvbC5oaWRkZW5cIj5cclxuXHJcbiAgICAgICAgPCEtLSBTVEFSVDogTEFCRUwgU0VTU0lPTi0tPlxyXG4gICAgICAgIDxsYWJlbCBbY2xhc3NdPVwiJ2NvbnRyb2wtbGFiZWwnICsgIChyZXF1aXJlZCA/ICcgcmVxdWlyZWQnIDogJycpXCIgW2F0dHIuZm9yXT1cImNvbnRyb2wuZmllbGRcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXZhdGFyLWxhYmVsXT1cImNvbnRyb2wudXBsb2FkRmlsZVR5cGU9PT0nSU1BR0VfQVZBVEFSJ1wiIFthcHBUb29sdGlwXT1cImNvbnRyb2wudG9vbHRpcCEgfCB0cmFuc2xhdGU6IGxhbmdcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJ1xyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgIHt7KGNvbnRyb2wuY29udHJvbFR5cGUhPT0nQ0hFQ0tCT1gnICYmIGNvbnRyb2wuY29udHJvbFR5cGUhPT0nQlVUVE9OJykgPyAoY29udHJvbC5sYWJlbCB8IHRyYW5zbGF0ZTogbGFuZykgOiAnJ319XHJcbiAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgQGlmICghIWNvbnRyb2wuaGludCEgJiYgY29udHJvbC5jb250cm9sVHlwZSAhPT0gJ0NIRUNLQk9YJykge1xyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItaGVscC1jaXJjbGVcIiBbYXBwVG9vbHRpcF09XCJjb250cm9sLmhpbnQhXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXHJcbiAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMnB4J1xyXG4gICAgICAgICAgICB9XCI+PC9pPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPCEtLSBTVEFSVDogTEFCRUwgU0VTU0lPTi0tPlxyXG5cclxuICAgICAgICA8IS0tIFNUQVJUOiBGT1JNLUNPTlRST0wgU0VTU0lPTi0tPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgIEBzd2l0Y2ggKGNvbnRyb2wuY29udHJvbFR5cGUpIHtcclxuICAgICAgICAgICAgQGNhc2UgKFwiVEVYVEJPWFwiKSB7XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCJjb250cm9sLnR5cGU9PT0nZGF0ZSdcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIiBbdHlwZV09XCJjb250cm9sLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3JlYWRvbmx5XT1cImNvbnRyb2wucmVhZG9ubHkhXCIgdXNlVmFsdWVBc0RhdGU+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cImNvbnRyb2wudHlwZT09PSdudW1iZXInXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW3R5cGVdPVwiY29udHJvbC50eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtyZWFkb25seV09XCJjb250cm9sLnJlYWRvbmx5XCIgW3N0ZXBdPVwiY29udHJvbC5zdGVwIHx8ICcxJ1wiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCJjb250cm9sLnR5cGUhPT0nZGF0ZScgJiYgY29udHJvbC50eXBlIT09J251bWJlcidcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtLmdldChjb250cm9sLmZpZWxkKT8udmFsdWUgfCB0YWJsZUNlbGw6IGNvbnRyb2wucGlwZSA6IGxhbmdcIiBbdHlwZV09XCJjb250cm9sLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3JlYWRvbmx5XT1cImNvbnRyb2wucmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImZvcm0uZ2V0KGNvbnRyb2wuZmllbGQpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJDVVJSRU5DWVwiKSB7XHJcbiAgICAgICAgICAgICAgICA8Y29yZS1jdXJyZW5jeS1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIj48L2NvcmUtY3VycmVuY3ktaW5wdXQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiVEVYVEFSRUFcIikge1xyXG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIFtyb3dzXT1cImNvbnRyb2wudGV4dGFyZWFSb3dzPy50b1N0cmluZygpIHx8ICczJ1wiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiAndW5zZXQnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3JlYWRvbmx5XT1cImNvbnRyb2wucmVhZG9ubHlcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChcIkNIRUNLQk9YXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFt0ZXh0XT1cImNvbnRyb2wubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dFZhbHVlXT1cImNvbnRyb2wudmFsdWVcIj48L2NvcmUtY2hlY2tib3g+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiTUNDXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLW1jYyBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIiBbY29sdW1uc109XCJjb250cm9sLmNvbHVtbnMhXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIiBcclxuICAgICAgICAgICAgICAgIFthcGlEZWZpbml0aW9uXT1cImNvbnRyb2wuYXBpRGVmaW5pdGlvbiFcIiBbZ2V0QnlJZEFwaV09XCJjb250cm9sLmdldEJ5SWRBcGkhXCIgW3NlbGVjdGVkUm93JF09XCJjb250cm9sLnNlbGVjdGVkUm93JCFcIlxyXG4gICAgICAgICAgICAgICAgW291dGVyUGFyYW0kXT1cImNvbnRyb2wub3V0ZXJQYXJhbSQhXCJcclxuICAgICAgICAgICAgICAgID48L2NvcmUtbWNjPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChcIkRBVEVQSUNLRVJcIikge1xyXG4gICAgICAgICAgICAgICAgPGNvcmUtZGF0ZS1waWNrZXIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW3JhbmdlTGltaXRdPVwiY29udHJvbC5yYW5nZUxpbWl0IVwiPjwvY29yZS1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJEUk9QRE9XTlwiKSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKCEhY29udHJvbC5kcm9wZG93bk9wdGlvbnMkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvcmUtZHJvcGRvd24gW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW29wdGlvbnMkXT1cImNvbnRyb2wuZHJvcGRvd25PcHRpb25zJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2V0QnlJZE9iamVjdCRdPVwiY29udHJvbC5nZXRCeUlkT2JqZWN0JCFcIiBbc2hvd25Gcm9tXT1cImNvbnRyb2wuc2hvd25Gcm9tIVwiPjwvY29yZS1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJMSVNUXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLWxpc3QgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW29wdGlvbnNdPVwiY29udHJvbC5saXN0T3B0aW9ucyFcIj48L2NvcmUtbGlzdD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJDSEVDS0xJU1RcIikge1xyXG4gICAgICAgICAgICAgICAgQGlmICghIWNvbnRyb2wuY2hlY2tsaXN0T3B0aW9ucyQpIHtcclxuICAgICAgICAgICAgICAgICAgICA8Y29yZS1jaGVja2xpc3QgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW29wdGlvbnMkXT1cImNvbnRyb2wuY2hlY2tsaXN0T3B0aW9ucyQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2dldEJ5SWRPYmplY3QkXT1cImNvbnRyb2wuZ2V0QnlJZE9iamVjdCQhXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIj48L2NvcmUtY2hlY2tsaXN0PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChcIkZJTEVVUExPQURFUlwiKSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKCEhY29udHJvbC51cGxvYWRGaWxlVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxjb3JlLWZpbGUtdXBsb2FkZXIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW3VwbG9hZEZpbGVUeXBlXT1cImNvbnRyb2wudXBsb2FkRmlsZVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsZURhdGFDb250cm9sTmFtZV09XCJjb250cm9sLmZpbGVEYXRhQ29udHJvbE5hbWUhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVOYW1lQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWxlTmFtZUNvbnRyb2xOYW1lIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlVHlwZUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmlsZVR5cGVDb250cm9sTmFtZSFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmVydGljYWxNb2RlXT1cImNvbnRyb2wudmVydGljYWxNb2RlIVwiPjwvY29yZS1maWxlLXVwbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChcIkFUVEFDSE1FTlRcIikge1xyXG4gICAgICAgICAgICAgICAgPGNvcmUtYXR0YWNobWVudCBuZ0RlZmF1bHRDb250cm9sIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFthc3NpZ25Ub109XCJjb250cm9sLmFzc2lnblRvIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlVG9TaG93XT1cImNvbnRyb2wudmFsdWVUb1Nob3chXCI+PC9jb3JlLWF0dGFjaG1lbnQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiR1JJREJVRkZFUlwiKSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKCEhY29udHJvbC5ncmlkQnVmZmVyRm9ybVNlY3Rpb25zICYmICEhY29udHJvbC5ncmlkQnVmZmVyVGFibGVDb2x1bW5zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvcmUtZ3JpZC1idWZmZXIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW2Zvcm1TZWN0aW9uc109XCJjb250cm9sLmdyaWRCdWZmZXJGb3JtU2VjdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZENvbHVtbnNdPVwiY29udHJvbC5ncmlkQnVmZmVyVGFibGVDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQnVmZmVyRm9ybUNyZWF0ZWQpPVwiISFjb250cm9sLm9uQnVmZmVyRm9ybUNyZWF0ZWQgPyBjb250cm9sLm9uQnVmZmVyRm9ybUNyZWF0ZWQoJGV2ZW50KSA6IG51bGxcIj48L2NvcmUtZ3JpZC1idWZmZXI+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiT1JHVFJFRUNIRUNLXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLW9yZy10cmVlIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc29yTW9kZV09XCJjb3JlT3JnVHJlZURlZmF1bHRBY2Nlc3Nvck1vZGVcIiBbaGVpZ2h0XT1cImNvbnRyb2wuaGVpZ2h0IVwiPjwvY29yZS1vcmctdHJlZT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJSQURJT0dST1VQXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLXJhZGlvLWdyb3VwIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW29wdGlvbnMkXT1cImNvbnRyb2wucmFkaW9Hcm91cE9wdGlvbnMkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3ZlcnRpY2FsXT1cImNvbnRyb2wudmVydGljYWxNb2RlIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvY29yZS1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJNT05USFNFTEVDVE9SXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLW1vbnRoLXNlbGVjdG9yIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiPjwvY29yZS1tb250aC1zZWxlY3Rvcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJTSElGVENFTExcIikge1xyXG4gICAgICAgICAgICAgICAgPGNvcmUtc2hpZnQtY2VsbCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIj48L2NvcmUtc2hpZnQtY2VsbD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJTSElGVENPTExFQ1RJT05cIikge1xyXG4gICAgICAgICAgICAgICAgPGNvcmUtc2hpZnQtY29sbGVjdGlvbiBbcmVsYXRpdmVNb2RlXT1cInRydWVcIiBbaGVpZ2h0XT1cImNvbnRyb2wuaGVpZ2h0IHx8IDgwMFwiPjwvY29yZS1zaGlmdC1jb2xsZWN0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChcIlNFRUtFUlwiKSB7XHJcbiAgICAgICAgICAgICAgICBAc3dpdGNoKGNvbnRyb2wuc2Vla2VyU291cmNlVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlKFwiSk9CX1NFRUtcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhjbHVkZUV4aXN0aW5nTGlzdF09XCJjb250cm9sLmV4Y2x1ZGVFeGlzdGluZ0xpc3QhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVdPVwiY29udHJvbC5tdWx0aU1vZGUhXCIgW211bHRpTW9kZVRhYmxlSGVpZ2h0XT1cImNvbnRyb2wubXVsdGlNb2RlVGFibGVIZWlnaHQhXCIgW211bHRpTW9kZVJvd0hlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVJvd0hlaWdodCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29iamVjdExpc3QkXT1cImNvbnRyb2wub2JqZWN0TGlzdCQhXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWVrZXJTb3VyY2VUeXBlXT1cImNvbnRyb2wuc2Vla2VyU291cmNlVHlwZSFcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJQYXJhbSRdPVwiY29udHJvbC5wcmVEZWZpbmVkT3V0ZXJQYXJhbSQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cImNvbnRyb2wucHJlRGVmaW5lZE91dGVyRmlsdGVyJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JvdW5kRnJvbV09XCJjb250cm9sLmJvdW5kRnJvbSFcIiBbc2hvd25Gcm9tXT1cImNvbnRyb2wuc2hvd25Gcm9tIVwiIFthbHNvQmluZFRvXT1cImNvbnRyb2wuYWxzb0JpbmRUbyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dldEJ5SWRPYmplY3QkXT1cImNvbnRyb2wuZ2V0QnlJZE9iamVjdCQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGljayRdPVwiY29udHJvbC5jbGljayRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpTW9kZUV4dGVuZGVkQ29sdW1uc109XCJjb250cm9sLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnNdPVwiY29udHJvbC5tdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdEJ1ZmZlckRhdGEkXT1cImNvbnRyb2wuZWRpdEJ1ZmZlckRhdGEkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kaXJlY3RCaW5kaW5nXT1cImNvbnRyb2wuaW5kaXJlY3RCaW5kaW5nIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYmluZEdyaWRJZFRvXT1cImNvbnRyb2wuYmluZEdyaWRJZFRvIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2NvcmUtZm9ybS1jb250cm9sLXNlZWtlcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UoXCJFTVBMT1lFRV9TRUVLXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtZm9ybS1jb250cm9sLXNlZWtlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVFeGlzdGluZ0xpc3RdPVwiY29udHJvbC5leGNsdWRlRXhpc3RpbmdMaXN0IVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlXT1cImNvbnRyb2wubXVsdGlNb2RlIVwiIFttdWx0aU1vZGVUYWJsZUhlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVRhYmxlSGVpZ2h0IVwiIFttdWx0aU1vZGVSb3dIZWlnaHRdPVwiY29udHJvbC5tdWx0aU1vZGVSb3dIZWlnaHQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvYmplY3RMaXN0JF09XCJjb250cm9sLm9iamVjdExpc3QkIVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2Vla2VyU291cmNlVHlwZV09XCJjb250cm9sLnNlZWtlclNvdXJjZVR5cGUhXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cImNvbnRyb2wucHJlRGVmaW5lZE91dGVyUGFyYW0kIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyRmlsdGVyJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlckZpbHRlciQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib3VuZEZyb21dPVwiY29udHJvbC5ib3VuZEZyb20hXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIiBbYWxzb0JpbmRUb109XCJjb250cm9sLmFsc29CaW5kVG8hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRCeUlkT2JqZWN0JF09XCJjb250cm9sLmdldEJ5SWRPYmplY3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2skXT1cImNvbnRyb2wuY2xpY2skXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZENvbHVtbnNdPVwiY29udHJvbC5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9ucyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRCdWZmZXJEYXRhJF09XCJjb250cm9sLmVkaXRCdWZmZXJEYXRhJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGlyZWN0QmluZGluZ109XCJjb250cm9sLmluZGlyZWN0QmluZGluZyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JpbmRHcmlkSWRUb109XCJjb250cm9sLmJpbmRHcmlkSWRUbyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlKFwiQ09OVFJBQ1RfU0VFS1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjb3JlLWZvcm0tY29udHJvbC1zZWVrZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlRXhpc3RpbmdMaXN0XT1cImNvbnRyb2wuZXhjbHVkZUV4aXN0aW5nTGlzdCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpTW9kZV09XCJjb250cm9sLm11bHRpTW9kZSFcIiBbbXVsdGlNb2RlVGFibGVIZWlnaHRdPVwiY29udHJvbC5tdWx0aU1vZGVUYWJsZUhlaWdodCFcIiBbbXVsdGlNb2RlUm93SGVpZ2h0XT1cImNvbnRyb2wubXVsdGlNb2RlUm93SGVpZ2h0IVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2JqZWN0TGlzdCRdPVwiY29udHJvbC5vYmplY3RMaXN0JCFcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlZWtlclNvdXJjZVR5cGVdPVwiY29udHJvbC5zZWVrZXJTb3VyY2VUeXBlIVwiIFtib3VuZEZyb21dPVwiY29udHJvbC5ib3VuZEZyb20hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJQYXJhbSRdPVwiY29udHJvbC5wcmVEZWZpbmVkT3V0ZXJQYXJhbSQhXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyRmlsdGVyJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlckZpbHRlciQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93bkZyb21dPVwiY29udHJvbC5zaG93bkZyb20hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHNvQmluZFRvXT1cImNvbnRyb2wuYWxzb0JpbmRUbyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dldEJ5SWRPYmplY3QkXT1cImNvbnRyb2wuZ2V0QnlJZE9iamVjdCQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZENvbHVtbnNdPVwiY29udHJvbC5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9ucyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsaWNrJF09XCJjb250cm9sLmNsaWNrJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2NvcmUtZm9ybS1jb250cm9sLXNlZWtlcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UoXCJXT1JLSU5HX1NFRUtcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVFeGlzdGluZ0xpc3RdPVwiY29udHJvbC5leGNsdWRlRXhpc3RpbmdMaXN0IVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlXT1cImNvbnRyb2wubXVsdGlNb2RlIVwiIFttdWx0aU1vZGVUYWJsZUhlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVRhYmxlSGVpZ2h0IVwiIFttdWx0aU1vZGVSb3dIZWlnaHRdPVwiY29udHJvbC5tdWx0aU1vZGVSb3dIZWlnaHQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvYmplY3RMaXN0JF09XCJjb250cm9sLm9iamVjdExpc3QkIVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2Vla2VyU291cmNlVHlwZV09XCJjb250cm9sLnNlZWtlclNvdXJjZVR5cGUhXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cImNvbnRyb2wucHJlRGVmaW5lZE91dGVyUGFyYW0kIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyRmlsdGVyJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlckZpbHRlciQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib3VuZEZyb21dPVwiY29udHJvbC5ib3VuZEZyb20hXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIiBbYWxzb0JpbmRUb109XCJjb250cm9sLmFsc29CaW5kVG8hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRCeUlkT2JqZWN0JF09XCJjb250cm9sLmdldEJ5SWRPYmplY3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9uc109XCJjb250cm9sLm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGljayRdPVwiY29udHJvbC5jbGljayRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlKFwiV0FHRV9TRUVLXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtZm9ybS1jb250cm9sLXNlZWtlciBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlRXhpc3RpbmdMaXN0XT1cImNvbnRyb2wuZXhjbHVkZUV4aXN0aW5nTGlzdCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVdPVwiY29udHJvbC5tdWx0aU1vZGUhXCIgW211bHRpTW9kZVRhYmxlSGVpZ2h0XT1cImNvbnRyb2wubXVsdGlNb2RlVGFibGVIZWlnaHQhXCIgW211bHRpTW9kZVJvd0hlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVJvd0hlaWdodCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29iamVjdExpc3QkXT1cImNvbnRyb2wub2JqZWN0TGlzdCQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWVrZXJTb3VyY2VUeXBlXT1cImNvbnRyb2wuc2Vla2VyU291cmNlVHlwZSFcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJQYXJhbSRdPVwiY29udHJvbC5wcmVEZWZpbmVkT3V0ZXJQYXJhbSQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cImNvbnRyb2wucHJlRGVmaW5lZE91dGVyRmlsdGVyJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JvdW5kRnJvbV09XCJjb250cm9sLmJvdW5kRnJvbSFcIiBbc2hvd25Gcm9tXT1cImNvbnRyb2wuc2hvd25Gcm9tIVwiIFthbHNvQmluZFRvXT1cImNvbnRyb2wuYWxzb0JpbmRUbyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dldEJ5SWRPYmplY3QkXT1cImNvbnRyb2wuZ2V0QnlJZE9iamVjdCQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZENvbHVtbnNdPVwiY29udHJvbC5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9ucyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsaWNrJF09XCJjb250cm9sLmNsaWNrJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2NvcmUtZm9ybS1jb250cm9sLXNlZWtlcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UoXCJQT1NJVElPTl9TRUVLXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtZm9ybS1jb250cm9sLXNlZWtlciBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlRXhpc3RpbmdMaXN0XT1cImNvbnRyb2wuZXhjbHVkZUV4aXN0aW5nTGlzdCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29iamVjdExpc3QkXT1cImNvbnRyb2wub2JqZWN0TGlzdCQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVdPVwiY29udHJvbC5tdWx0aU1vZGUhXCIgW211bHRpTW9kZVRhYmxlSGVpZ2h0XT1cImNvbnRyb2wubXVsdGlNb2RlVGFibGVIZWlnaHQhXCIgW211bHRpTW9kZVJvd0hlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVJvd0hlaWdodCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW2Fsc29CaW5kVG9dPVwiY29udHJvbC5hbHNvQmluZFRvIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2Vla2VyU291cmNlVHlwZV09XCJjb250cm9sLnNlZWtlclNvdXJjZVR5cGUhXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cImNvbnRyb2wucHJlRGVmaW5lZE91dGVyUGFyYW0kIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyRmlsdGVyJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlckZpbHRlciQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib3VuZEZyb21dPVwiY29udHJvbC5ib3VuZEZyb20hXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dldEJ5SWRPYmplY3QkXT1cImNvbnRyb2wuZ2V0QnlJZE9iamVjdCQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZENvbHVtbnNdPVwiY29udHJvbC5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9ucyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlZWtlclZlcmlmeUlnbm9yZV09XCJjb250cm9sLnNlZWtlclZlcmlmeUlnbm9yZSFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsaWNrJF09XCJjb250cm9sLmNsaWNrJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2NvcmUtZm9ybS1jb250cm9sLXNlZWtlcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UoXCJQT1NJVElPTl9DT05DVVJSRU5UX1NFRUtcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhjbHVkZUV4aXN0aW5nTGlzdF09XCJjb250cm9sLmV4Y2x1ZGVFeGlzdGluZ0xpc3QhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVdPVwiY29udHJvbC5tdWx0aU1vZGUhXCIgW211bHRpTW9kZVRhYmxlSGVpZ2h0XT1cImNvbnRyb2wubXVsdGlNb2RlVGFibGVIZWlnaHQhXCIgW211bHRpTW9kZVJvd0hlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVJvd0hlaWdodCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW2Fsc29CaW5kVG9dPVwiY29udHJvbC5hbHNvQmluZFRvIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2Vla2VyU291cmNlVHlwZV09XCJjb250cm9sLnNlZWtlclNvdXJjZVR5cGUhXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cImNvbnRyb2wucHJlRGVmaW5lZE91dGVyUGFyYW0kIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyRmlsdGVyJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlckZpbHRlciQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib3VuZEZyb21dPVwiY29udHJvbC5ib3VuZEZyb20hXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dldEJ5SWRPYmplY3QkXT1cImNvbnRyb2wuZ2V0QnlJZE9iamVjdCQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZENvbHVtbnNdPVwiY29udHJvbC5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9ucyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpTW9kZVRhYmxlSGVpZ2h0XT1cImNvbnRyb2wubXVsdGlNb2RlVGFibGVIZWlnaHQhXCJcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2skXT1cImNvbnRyb2wuY2xpY2skXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAY2FzZShcIk9SR0FOSVpBVElPTl9VTklUX1NFRUtcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIiBbc2Vla2VyU291cmNlVHlwZV09XCJjb250cm9sLnNlZWtlclNvdXJjZVR5cGUhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib3VuZEZyb21dPVwiY29udHJvbC5ib3VuZEZyb20hXCIgW2Fsc29CaW5kVG9dPVwiY29udHJvbC5hbHNvQmluZFRvIVwiIFtzaG93bkZyb21dPVwiY29udHJvbC5zaG93bkZyb20hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRCeUlkT2JqZWN0JF09XCJjb250cm9sLmdldEJ5SWRPYmplY3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2skXT1cImNvbnRyb2wuY2xpY2skXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wuY29udHJvbFR5cGU9PT0nQlVUVE9OJ1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHRleHRcIiAoY2xpY2spPVwib0hhbmRsZUNsaWNrKCRldmVudClcIj57e2NvbnRyb2wubGFiZWx8IHRyYW5zbGF0ZTogbGFuZ319PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSBFTkQ6IEZPUk0tQ09OVFJPTCBTRVNTSU9OLS0+XHJcblxyXG4gICAgICAgIDwhLS0gU1RBUlQ6IEVSUk9SIFNFU1NJT04tLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiISFlcnJvcnMhLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLWVycm9yXCIgKm5nRm9yPVwibGV0IGVycm9yIG9mIGVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAge3sgZXJyb3IuZXJyb3JNZXNzYWdlIHwgdHJhbnNsYXRlOiBsYW5nIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhISFlcnJvcnMhLmxlbmd0aCAmJiAhIWNoZWNrRXJyb3IkLnZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICB7eyAnJm5ic3A7JyB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIEVORDogRVJST1IgU0VTU0lPTi0tPlxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbnRyb2wvY29yZS1jb250cm9sL2NvcmUtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb250cm9sL2NvcmUtY29udHJvbC9jb3JlLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQThCLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBd0IsTUFBTSxvRUFBb0UsQ0FBQztBQUVuSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdEcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDNUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDN0csT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQ3pILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBaUM1RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQW1CckQsWUFBNEIsR0FBeUIsRUFBUyxZQUEwQjtRQUN0RixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEZSxRQUFHLEdBQUgsR0FBRyxDQUFzQjtRQUFTLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTnhGLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFFdEIsY0FBUyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBRXhCLG1DQUE4QixHQUFHLDRCQUE0QixDQUFDLE9BQU8sQ0FBQztJQUl0RSxDQUFDO0lBRU8sa0NBQWtDO1FBQ3hDLElBQUksU0FBUyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztXQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7T0FDdEIsRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO1NBQy9CO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFFaEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUU7WUFFN0IsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hFOzs7O2tCQUlFO2dCQUNGLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksS0FBSyxFQUFFO29CQUN4RSxTQUFTLENBQUMsSUFBSSxDQUFDO3dCQUNiLEdBQUcsRUFBRSxHQUFHO3dCQUNSLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3JFLENBQUMsQ0FBQTtpQkFDSDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTt3QkFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTt3QkFDL0YsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTs0QkFDbkIsU0FBUyxDQUFDLElBQUksQ0FBQztnQ0FDYixHQUFHLEVBQUUsR0FBRztnQ0FDUixZQUFZLEVBQUUsTUFBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQWE7NkJBQ3ZDLENBQUMsQ0FBQTt5QkFDSDs2QkFBTTs0QkFDTCxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQzt5QkFDM0M7cUJBQ0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7cUJBQzNDO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUN6QjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7U0FDbEI7SUFFSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRVEsUUFBUTtRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUU5RixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFFLENBQUM7UUFFckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUVELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsRUFBRTtvQkFDTCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7aUJBQ25CO3FCQUFNO29CQUNMLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1NBQ0Y7SUFFSCxDQUFDO0lBRUQsSUFBSSxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFdEUsT0FBTyxDQUFDLENBQU07UUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFNO1FBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxZQUFZLENBQUMsQ0FBTTtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs4R0FoSFUsb0JBQW9CO2tHQUFwQixvQkFBb0IsbU1DL0RqQywwaGpCQXdRTSwrZERsT0YsWUFBWSxvVkFDWixtQkFBbUIsKzFCQUNuQixhQUFhLDZDQUNiLGFBQWEsa0RBQ2IscUJBQXFCLDBPQUNyQixpQkFBaUIsOEZBQ2pCLHNCQUFzQix5TEFDdEIsOEJBQThCLDBoQkFDOUIscUJBQXFCLDBKQUNyQix5QkFBeUIsOE5BQ3pCLHVCQUF1Qiw2R0FDdkIsdUJBQXVCLHdJQUN2Qix1QkFBdUIsd01BQ3ZCLG9CQUFvQixvUUFDcEIsdUJBQXVCLCtGQUN2QixnQkFBZ0IsMk1BQ2hCLDBCQUEwQiw2R0FDMUIsZ0JBQWdCLDJHQUNoQiwwQkFBMEIsb0hBQzFCLHNCQUFzQixnSkFDdEIsNEJBQTRCOzsyRkFLbkIsb0JBQW9CO2tCQTdCaEMsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5QixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsMEJBQTBCO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3dCQUN0Qiw0QkFBNEI7cUJBQzdCO29IQU1RLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBJRm9ybUJhc2VDb250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtL2NvcmUtZm9ybS9lbnVtLWludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1jb21wb25lbnQvYmFzZS9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlIH0gZnJvbSAnLi4vLi4vY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZURhdGVQaWNrZXJDb21wb25lbnQsIElDb3JlRGF0ZVBpY2tlclJhbmdlIH0gZnJvbSAnLi4vLi4vY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgSUVycm9yIH0gZnJvbSAnLi9JRXJyb3InO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb3JlQ2hlY2tsaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sU2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1jaGVja2JveC9jb3JlLWNoZWNrYm94L2NvcmUtY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZU9yZ1RyZWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlR3JpZEJ1ZmZlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtZ3JpZC1idWZmZXIvY29yZS1ncmlkLWJ1ZmZlci9jb3JlLWdyaWQtYnVmZmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBDb3JlTWNjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1tY2MvY29yZS1tY2MvY29yZS1tY2MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZU1vbnRoU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLW1vbnRoLXNlbGVjdG9yL2NvcmUtbW9udGgtc2VsZWN0b3IvY29yZS1tb250aC1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWRyb3Bkb3duL2NvcmUtZHJvcGRvd24vY29yZS1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtbGlzdC9jb3JlLWxpc3QvY29yZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVGaWxlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZpbGUtdXBsb2FkZXIvY29yZS1maWxlLXVwbG9hZGVyL2NvcmUtZmlsZS11cGxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlQXR0YWNobWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtYXR0YWNobWVudC9jb3JlLWF0dGFjaG1lbnQvY29yZS1hdHRhY2htZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVSYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1yYWRpby1ncm91cC9jb3JlLXJhZGlvLWdyb3VwL2NvcmUtcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JlQ3VycmVuY3lJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtY3VycmVuY3ktaW5wdXQvY29yZS1jdXJyZW5jeS1pbnB1dC9jb3JlLWN1cnJlbmN5LWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVTaGlmdENvbGxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXNoaWZ0LWNvbGxlY3Rpb24vY29yZS1zaGlmdC1jb2xsZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVTaGlmdENlbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQ2VsbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90YWJsZS1jZWxsLnBpcGUnO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtY29udHJvbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIFRhYmxlQ2VsbFBpcGUsXHJcbiAgICBDb3JlRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBDb3JlTGlzdENvbXBvbmVudCxcclxuICAgIENvcmVDaGVja2xpc3RDb21wb25lbnQsXHJcbiAgICBDb3JlRm9ybUNvbnRyb2xTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBDb3JlRmlsZVVwbG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQ29yZUF0dGFjaG1lbnRDb21wb25lbnQsXHJcbiAgICBDb3JlR3JpZEJ1ZmZlckNvbXBvbmVudCxcclxuICAgIENvcmVEYXRlUGlja2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZU9yZ1RyZWVDb21wb25lbnQsXHJcbiAgICBDb3JlUmFkaW9Hcm91cENvbXBvbmVudCxcclxuICAgIENvcmVNY2NDb21wb25lbnQsXHJcbiAgICBDb3JlTW9udGhTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBDb3JlQ3VycmVuY3lJbnB1dENvbXBvbmVudCxcclxuICAgIENvcmVTaGlmdENlbGxDb21wb25lbnQsXHJcbiAgICBDb3JlU2hpZnRDb2xsZWN0aW9uQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUNvbnRyb2xDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBjb250cm9sITogSUZvcm1CYXNlQ29udHJvbDtcclxuICBASW5wdXQoKSBmb3JtITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGNoZWNrRXJyb3IkITogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xyXG4gIEBJbnB1dCgpIHJhbmdlTGltaXQhOiBJQ29yZURhdGVQaWNrZXJSYW5nZTtcclxuXHJcbiAgLyogU1RBUlQ6IFRISVMgSVMgTkFUSVZFIEZPUk0gQ09OVFJPTCAqL1xyXG4gIHJhd0NvbnRyb2whOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgLyogRU5EOiBUSElTIElTIE5BVElWRSBGT1JNIENPTlRST0wgKi9cclxuXHJcbiAgY29udHJvbFR5cGUhOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlO1xyXG4gIHJlcXVpcmVkITogYm9vbGVhbjtcclxuICBlcnJvcnM6IElFcnJvcltdID0gW107XHJcblxyXG4gIGlzRGV2TW9kZSA9IGlzRGV2TW9kZSgpO1xyXG5cclxuICBjb3JlT3JnVHJlZURlZmF1bHRBY2Nlc3Nvck1vZGUgPSBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlLkNIRUNLRUQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLCBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKG1scyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BsYXlWYWxpZGF0b3JOYW1lTWF0aGNoaW5nRXJyb3IoKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYFxyXG4gICAgICAgICcke3RoaXMuY29udHJvbC5maWVsZH0nIHZhbGlkYXRvciBhcnJheSBkZWZpbml0aW9uIGVycm9yOiB2YWxpZGF0b3IgbmFtZSBtdXN0IGVxdWFsIFZhbGlkYXRvcnMuJmx0O2tleSZndDtcclxuICAgICAgYCwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrRXJyb3IoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCEhdGhpcy5yYXdDb250cm9sPy5lcnJvcnMpIHtcclxuXHJcbiAgICAgIGNvbnN0IG5ld0Vycm9yczogSUVycm9yW10gPSBbXTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMuY29udHJvbC5maWVsZF0uZXJyb3JzISkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIC8qICBcclxuICAgICAgICAgIHRhbmxlaWNhOlxyXG4gICAgICAgICAgICBCeSBjdXN0b20gZGVzaWduLCBjdXN0b20gZXJyb3IgaXMgYW4gYXJyYXlcclxuICAgICAgICAgICAgd2hpbGUgYnVpbHQtaW4gdmFsaWRhdG9yIHNob3VsZCBwcm9kdWNlIGFuIG9iamVjdCBlcnJvciBpZiBhbnlcclxuICAgICAgICAqL1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5jb250cm9sLmZpZWxkXS5lcnJvcnMhW2tleV0gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgbmV3RXJyb3JzLnB1c2goe1xyXG4gICAgICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5jb250cm9sLmZpZWxkXS5lcnJvcnMhW2tleV1bMV1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICghIXRoaXMuY29udHJvbC52YWxpZGF0b3JzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29udHJvbC52YWxpZGF0b3JzPy5maWx0ZXIoeCA9PiB4Lm5hbWUudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgICAgIGlmICghIWZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBuZXdFcnJvcnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogZmlsdGVyIVswXS5lcnJvck1lc3NhZ2UhXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWxpZGF0b3JOYW1lTWF0aGNoaW5nRXJyb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsaWRhdG9yTmFtZU1hdGhjaGluZ0Vycm9yKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmVycm9ycyA9IG5ld0Vycm9ycztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldEVycm9yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geCkpO1xyXG4gICAgdGhpcy5jb250cm9sVHlwZSA9IHRoaXMuY29udHJvbC5jb250cm9sVHlwZTtcclxuICAgIHRoaXMucmVxdWlyZWQgPSAhIXRoaXMuY29udHJvbC52YWxpZGF0b3JzPy5maWx0ZXIoeCA9PiB4LnZhbGlkYXRvci5uYW1lID09PSAncmVxdWlyZWQnKS5sZW5ndGhcclxuXHJcbiAgICB0aGlzLnJhd0NvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuY29udHJvbC5maWVsZCkhO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLnJhd0NvbnRyb2w/LnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tFcnJvcigpO1xyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICAgIGlmICghIXRoaXMuY2hlY2tFcnJvciQpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5jaGVja0Vycm9yJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAoeCkge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrRXJyb3IoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRFcnJvcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBnZXQgaXNWYWxpZCgpIHsgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmNvbnRyb2wuZmllbGRdLnZhbGlkOyB9XHJcblxyXG4gIG9uRm9jdXMoZTogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuZm9jdXMkPy5uZXh0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGU6IGFueSkge1xyXG4gICAgdGhpcy5jb250cm9sLmJsdXIkPy5uZXh0KGUpO1xyXG4gIH1cclxuICBvSGFuZGxlQ2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuY2xpY2skPy5uZXh0KGUpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1jb250cm9sLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBbY2xhc3MuaGlkZGVuXT1cIiEhY29udHJvbC5oaWRkZW5cIj5cclxuXHJcbiAgICAgICAgPCEtLSBTVEFSVDogTEFCRUwgU0VTU0lPTi0tPlxyXG4gICAgICAgIDxsYWJlbCBbY2xhc3NdPVwiJ2NvbnRyb2wtbGFiZWwnICsgIChyZXF1aXJlZCA/ICcgcmVxdWlyZWQnIDogJycpXCIgW2F0dHIuZm9yXT1cImNvbnRyb2wuZmllbGRcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXZhdGFyLWxhYmVsXT1cImNvbnRyb2wudXBsb2FkRmlsZVR5cGU9PT0nSU1BR0VfQVZBVEFSJ1wiIFthcHBUb29sdGlwXT1cImNvbnRyb2wudG9vbHRpcCEgfCB0cmFuc2xhdGU6IGxhbmdcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJ1xyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgIHt7KGNvbnRyb2wuY29udHJvbFR5cGUhPT0nQ0hFQ0tCT1gnICYmIGNvbnRyb2wuY29udHJvbFR5cGUhPT0nQlVUVE9OJykgPyAoY29udHJvbC5sYWJlbCB8IHRyYW5zbGF0ZTogbGFuZykgOiAnJ319XHJcbiAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgQGlmICghIWNvbnRyb2wuaGludCEgJiYgY29udHJvbC5jb250cm9sVHlwZSAhPT0gJ0NIRUNLQk9YJykge1xyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItaGVscC1jaXJjbGVcIiBbYXBwVG9vbHRpcF09XCJjb250cm9sLmhpbnQhXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXHJcbiAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMnB4J1xyXG4gICAgICAgICAgICB9XCI+PC9pPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPCEtLSBTVEFSVDogTEFCRUwgU0VTU0lPTi0tPlxyXG5cclxuICAgICAgICA8IS0tIFNUQVJUOiBGT1JNLUNPTlRST0wgU0VTU0lPTi0tPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgIEBzd2l0Y2ggKGNvbnRyb2wuY29udHJvbFR5cGUpIHtcclxuICAgICAgICAgICAgQGNhc2UgKFwiVEVYVEJPWFwiKSB7XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCJjb250cm9sLnR5cGU9PT0nZGF0ZSdcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIiBbdHlwZV09XCJjb250cm9sLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3JlYWRvbmx5XT1cImNvbnRyb2wucmVhZG9ubHkhXCIgdXNlVmFsdWVBc0RhdGU+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cImNvbnRyb2wudHlwZT09PSdudW1iZXInXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW3R5cGVdPVwiY29udHJvbC50eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtyZWFkb25seV09XCJjb250cm9sLnJlYWRvbmx5XCIgW3N0ZXBdPVwiY29udHJvbC5zdGVwIHx8ICcxJ1wiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCJjb250cm9sLnR5cGUhPT0nZGF0ZScgJiYgY29udHJvbC50eXBlIT09J251bWJlcidcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtLmdldChjb250cm9sLmZpZWxkKT8udmFsdWUgfCB0YWJsZUNlbGw6IGNvbnRyb2wucGlwZSA6IGxhbmdcIiBbdHlwZV09XCJjb250cm9sLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3JlYWRvbmx5XT1cImNvbnRyb2wucmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImZvcm0uZ2V0KGNvbnRyb2wuZmllbGQpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJDVVJSRU5DWVwiKSB7XHJcbiAgICAgICAgICAgICAgICA8Y29yZS1jdXJyZW5jeS1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIj48L2NvcmUtY3VycmVuY3ktaW5wdXQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiVEVYVEFSRUFcIikge1xyXG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIFtyb3dzXT1cImNvbnRyb2wudGV4dGFyZWFSb3dzPy50b1N0cmluZygpIHx8ICczJ1wiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiAndW5zZXQnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3JlYWRvbmx5XT1cImNvbnRyb2wucmVhZG9ubHlcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChcIkNIRUNLQk9YXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFt0ZXh0XT1cImNvbnRyb2wubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dFZhbHVlXT1cImNvbnRyb2wudmFsdWVcIj48L2NvcmUtY2hlY2tib3g+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiTUNDXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLW1jYyBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIiBbY29sdW1uc109XCJjb250cm9sLmNvbHVtbnMhXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIiBcclxuICAgICAgICAgICAgICAgIFthcGlEZWZpbml0aW9uXT1cImNvbnRyb2wuYXBpRGVmaW5pdGlvbiFcIiBbZ2V0QnlJZEFwaV09XCJjb250cm9sLmdldEJ5SWRBcGkhXCIgW3NlbGVjdGVkUm93JF09XCJjb250cm9sLnNlbGVjdGVkUm93JCFcIlxyXG4gICAgICAgICAgICAgICAgW291dGVyUGFyYW0kXT1cImNvbnRyb2wub3V0ZXJQYXJhbSQhXCJcclxuICAgICAgICAgICAgICAgID48L2NvcmUtbWNjPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChcIkRBVEVQSUNLRVJcIikge1xyXG4gICAgICAgICAgICAgICAgPGNvcmUtZGF0ZS1waWNrZXIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW3JhbmdlTGltaXRdPVwiY29udHJvbC5yYW5nZUxpbWl0IVwiIFtwb3B1cEFsaWduXT1cImNvbnRyb2wucG9wdXBBbGlnbiFcIj48L2NvcmUtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiRFJPUERPV05cIikge1xyXG4gICAgICAgICAgICAgICAgQGlmICghIWNvbnRyb2wuZHJvcGRvd25PcHRpb25zJCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxjb3JlLWRyb3Bkb3duIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFtvcHRpb25zJF09XCJjb250cm9sLmRyb3Bkb3duT3B0aW9ucyQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2dldEJ5SWRPYmplY3QkXT1cImNvbnRyb2wuZ2V0QnlJZE9iamVjdCQhXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIj48L2NvcmUtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiTElTVFwiKSB7XHJcbiAgICAgICAgICAgICAgICA8Y29yZS1saXN0IFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFtvcHRpb25zXT1cImNvbnRyb2wubGlzdE9wdGlvbnMhXCI+PC9jb3JlLWxpc3Q+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiQ0hFQ0tMSVNUXCIpIHtcclxuICAgICAgICAgICAgICAgIEBpZiAoISFjb250cm9sLmNoZWNrbGlzdE9wdGlvbnMkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvcmUtY2hlY2tsaXN0IFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFtvcHRpb25zJF09XCJjb250cm9sLmNoZWNrbGlzdE9wdGlvbnMkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRCeUlkT2JqZWN0JF09XCJjb250cm9sLmdldEJ5SWRPYmplY3QkIVwiIFtzaG93bkZyb21dPVwiY29udHJvbC5zaG93bkZyb20hXCI+PC9jb3JlLWNoZWNrbGlzdD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJGSUxFVVBMT0FERVJcIikge1xyXG4gICAgICAgICAgICAgICAgQGlmICghIWNvbnRyb2wudXBsb2FkRmlsZVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICA8Y29yZS1maWxlLXVwbG9hZGVyIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFt1cGxvYWRGaWxlVHlwZV09XCJjb250cm9sLnVwbG9hZEZpbGVUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVEYXRhQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWxlRGF0YUNvbnRyb2xOYW1lIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlTmFtZUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmlsZU5hbWVDb250cm9sTmFtZSFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsZVR5cGVDb250cm9sTmFtZV09XCJjb250cm9sLmZpbGVUeXBlQ29udHJvbE5hbWUhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZlcnRpY2FsTW9kZV09XCJjb250cm9sLnZlcnRpY2FsTW9kZSFcIj48L2NvcmUtZmlsZS11cGxvYWRlcj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJBVFRBQ0hNRU5UXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLWF0dGFjaG1lbnQgbmdEZWZhdWx0Q29udHJvbCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIiBbYXNzaWduVG9dPVwiY29udHJvbC5hc3NpZ25UbyFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZVRvU2hvd109XCJjb250cm9sLnZhbHVlVG9TaG93IVwiPjwvY29yZS1hdHRhY2htZW50PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChcIkdSSURCVUZGRVJcIikge1xyXG4gICAgICAgICAgICAgICAgQGlmICghIWNvbnRyb2wuZ3JpZEJ1ZmZlckZvcm1TZWN0aW9ucyAmJiAhIWNvbnRyb2wuZ3JpZEJ1ZmZlclRhYmxlQ29sdW1ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxjb3JlLWdyaWQtYnVmZmVyIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFtmb3JtU2VjdGlvbnNdPVwiY29udHJvbC5ncmlkQnVmZmVyRm9ybVNlY3Rpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2dyaWRDb2x1bW5zXT1cImNvbnRyb2wuZ3JpZEJ1ZmZlclRhYmxlQ29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkJ1ZmZlckZvcm1DcmVhdGVkKT1cIiEhY29udHJvbC5vbkJ1ZmZlckZvcm1DcmVhdGVkID8gY29udHJvbC5vbkJ1ZmZlckZvcm1DcmVhdGVkKCRldmVudCkgOiBudWxsXCI+PC9jb3JlLWdyaWQtYnVmZmVyPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChcIk9SR1RSRUVDSEVDS1wiKSB7XHJcbiAgICAgICAgICAgICAgICA8Y29yZS1vcmctdHJlZSBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthY2Nlc3Nvck1vZGVdPVwiY29yZU9yZ1RyZWVEZWZhdWx0QWNjZXNzb3JNb2RlXCIgW2hlaWdodF09XCJjb250cm9sLmhlaWdodCFcIj48L2NvcmUtb3JnLXRyZWU+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiUkFESU9HUk9VUFwiKSB7XHJcbiAgICAgICAgICAgICAgICA8Y29yZS1yYWRpby1ncm91cCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtvcHRpb25zJF09XCJjb250cm9sLnJhZGlvR3JvdXBPcHRpb25zJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2ZXJ0aWNhbF09XCJjb250cm9sLnZlcnRpY2FsTW9kZSFcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2NvcmUtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiTU9OVEhTRUxFQ1RPUlwiKSB7XHJcbiAgICAgICAgICAgICAgICA8Y29yZS1tb250aC1zZWxlY3RvciBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIj48L2NvcmUtbW9udGgtc2VsZWN0b3I+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiU0hJRlRDRUxMXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLXNoaWZ0LWNlbGwgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCI+PC9jb3JlLXNoaWZ0LWNlbGw+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKFwiU0hJRlRDT0xMRUNUSU9OXCIpIHtcclxuICAgICAgICAgICAgICAgIDxjb3JlLXNoaWZ0LWNvbGxlY3Rpb24gW3JlbGF0aXZlTW9kZV09XCJ0cnVlXCIgW2hlaWdodF09XCJjb250cm9sLmhlaWdodCB8fCA4MDBcIj48L2NvcmUtc2hpZnQtY29sbGVjdGlvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoXCJTRUVLRVJcIikge1xyXG4gICAgICAgICAgICAgICAgQHN3aXRjaChjb250cm9sLnNlZWtlclNvdXJjZVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBAY2FzZShcIkpPQl9TRUVLXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtZm9ybS1jb250cm9sLXNlZWtlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVFeGlzdGluZ0xpc3RdPVwiY29udHJvbC5leGNsdWRlRXhpc3RpbmdMaXN0IVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlXT1cImNvbnRyb2wubXVsdGlNb2RlIVwiIFttdWx0aU1vZGVUYWJsZUhlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVRhYmxlSGVpZ2h0IVwiIFttdWx0aU1vZGVSb3dIZWlnaHRdPVwiY29udHJvbC5tdWx0aU1vZGVSb3dIZWlnaHQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvYmplY3RMaXN0JF09XCJjb250cm9sLm9iamVjdExpc3QkIVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2Vla2VyU291cmNlVHlwZV09XCJjb250cm9sLnNlZWtlclNvdXJjZVR5cGUhXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cImNvbnRyb2wucHJlRGVmaW5lZE91dGVyUGFyYW0kIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyRmlsdGVyJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlckZpbHRlciQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib3VuZEZyb21dPVwiY29udHJvbC5ib3VuZEZyb20hXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIiBbYWxzb0JpbmRUb109XCJjb250cm9sLmFsc29CaW5kVG8hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRCeUlkT2JqZWN0JF09XCJjb250cm9sLmdldEJ5SWRPYmplY3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2skXT1cImNvbnRyb2wuY2xpY2skXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZENvbHVtbnNdPVwiY29udHJvbC5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9ucyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRCdWZmZXJEYXRhJF09XCJjb250cm9sLmVkaXRCdWZmZXJEYXRhJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGlyZWN0QmluZGluZ109XCJjb250cm9sLmluZGlyZWN0QmluZGluZyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JpbmRHcmlkSWRUb109XCJjb250cm9sLmJpbmRHcmlkSWRUbyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlKFwiRU1QTE9ZRUVfU0VFS1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjb3JlLWZvcm0tY29udHJvbC1zZWVrZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlRXhpc3RpbmdMaXN0XT1cImNvbnRyb2wuZXhjbHVkZUV4aXN0aW5nTGlzdCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpTW9kZV09XCJjb250cm9sLm11bHRpTW9kZSFcIiBbbXVsdGlNb2RlVGFibGVIZWlnaHRdPVwiY29udHJvbC5tdWx0aU1vZGVUYWJsZUhlaWdodCFcIiBbbXVsdGlNb2RlUm93SGVpZ2h0XT1cImNvbnRyb2wubXVsdGlNb2RlUm93SGVpZ2h0IVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2JqZWN0TGlzdCRdPVwiY29udHJvbC5vYmplY3RMaXN0JCFcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlZWtlclNvdXJjZVR5cGVdPVwiY29udHJvbC5zZWVrZXJTb3VyY2VUeXBlIVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlclBhcmFtJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZURlZmluZWRPdXRlckZpbHRlciRdPVwiY29udHJvbC5wcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm91bmRGcm9tXT1cImNvbnRyb2wuYm91bmRGcm9tIVwiIFtzaG93bkZyb21dPVwiY29udHJvbC5zaG93bkZyb20hXCIgW2Fsc29CaW5kVG9dPVwiY29udHJvbC5hbHNvQmluZFRvIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2V0QnlJZE9iamVjdCRdPVwiY29udHJvbC5nZXRCeUlkT2JqZWN0JCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsaWNrJF09XCJjb250cm9sLmNsaWNrJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9uc109XCJjb250cm9sLm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlZGl0QnVmZmVyRGF0YSRdPVwiY29udHJvbC5lZGl0QnVmZmVyRGF0YSQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRpcmVjdEJpbmRpbmddPVwiY29udHJvbC5pbmRpcmVjdEJpbmRpbmchXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtiaW5kR3JpZElkVG9dPVwiY29udHJvbC5iaW5kR3JpZElkVG8hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAY2FzZShcIkNPTlRSQUNUX1NFRUtcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhjbHVkZUV4aXN0aW5nTGlzdF09XCJjb250cm9sLmV4Y2x1ZGVFeGlzdGluZ0xpc3QhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVdPVwiY29udHJvbC5tdWx0aU1vZGUhXCIgW211bHRpTW9kZVRhYmxlSGVpZ2h0XT1cImNvbnRyb2wubXVsdGlNb2RlVGFibGVIZWlnaHQhXCIgW211bHRpTW9kZVJvd0hlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVJvd0hlaWdodCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29iamVjdExpc3QkXT1cImNvbnRyb2wub2JqZWN0TGlzdCQhXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWVrZXJTb3VyY2VUeXBlXT1cImNvbnRyb2wuc2Vla2VyU291cmNlVHlwZSFcIiBbYm91bmRGcm9tXT1cImNvbnRyb2wuYm91bmRGcm9tIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cImNvbnRyb2wucHJlRGVmaW5lZE91dGVyUGFyYW0kIVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZURlZmluZWRPdXRlckZpbHRlciRdPVwiY29udHJvbC5wcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd25Gcm9tXT1cImNvbnRyb2wuc2hvd25Gcm9tIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxzb0JpbmRUb109XCJjb250cm9sLmFsc29CaW5kVG8hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRCeUlkT2JqZWN0JF09XCJjb250cm9sLmdldEJ5SWRPYmplY3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9uc109XCJjb250cm9sLm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGljayRdPVwiY29udHJvbC5jbGljayRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlKFwiV09SS0lOR19TRUVLXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtZm9ybS1jb250cm9sLXNlZWtlciBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlRXhpc3RpbmdMaXN0XT1cImNvbnRyb2wuZXhjbHVkZUV4aXN0aW5nTGlzdCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpTW9kZV09XCJjb250cm9sLm11bHRpTW9kZSFcIiBbbXVsdGlNb2RlVGFibGVIZWlnaHRdPVwiY29udHJvbC5tdWx0aU1vZGVUYWJsZUhlaWdodCFcIiBbbXVsdGlNb2RlUm93SGVpZ2h0XT1cImNvbnRyb2wubXVsdGlNb2RlUm93SGVpZ2h0IVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2JqZWN0TGlzdCRdPVwiY29udHJvbC5vYmplY3RMaXN0JCFcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlZWtlclNvdXJjZVR5cGVdPVwiY29udHJvbC5zZWVrZXJTb3VyY2VUeXBlIVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlclBhcmFtJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZURlZmluZWRPdXRlckZpbHRlciRdPVwiY29udHJvbC5wcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm91bmRGcm9tXT1cImNvbnRyb2wuYm91bmRGcm9tIVwiIFtzaG93bkZyb21dPVwiY29udHJvbC5zaG93bkZyb20hXCIgW2Fsc29CaW5kVG9dPVwiY29udHJvbC5hbHNvQmluZFRvIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2V0QnlJZE9iamVjdCRdPVwiY29udHJvbC5nZXRCeUlkT2JqZWN0JCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpTW9kZUV4dGVuZGVkQ29sdW1uc109XCJjb250cm9sLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnNdPVwiY29udHJvbC5tdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2skXT1cImNvbnRyb2wuY2xpY2skXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAY2FzZShcIldBR0VfU0VFS1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjb3JlLWZvcm0tY29udHJvbC1zZWVrZXIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhjbHVkZUV4aXN0aW5nTGlzdF09XCJjb250cm9sLmV4Y2x1ZGVFeGlzdGluZ0xpc3QhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlXT1cImNvbnRyb2wubXVsdGlNb2RlIVwiIFttdWx0aU1vZGVUYWJsZUhlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVRhYmxlSGVpZ2h0IVwiIFttdWx0aU1vZGVSb3dIZWlnaHRdPVwiY29udHJvbC5tdWx0aU1vZGVSb3dIZWlnaHQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvYmplY3RMaXN0JF09XCJjb250cm9sLm9iamVjdExpc3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2Vla2VyU291cmNlVHlwZV09XCJjb250cm9sLnNlZWtlclNvdXJjZVR5cGUhXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cImNvbnRyb2wucHJlRGVmaW5lZE91dGVyUGFyYW0kIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlRGVmaW5lZE91dGVyRmlsdGVyJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlckZpbHRlciQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib3VuZEZyb21dPVwiY29udHJvbC5ib3VuZEZyb20hXCIgW3Nob3duRnJvbV09XCJjb250cm9sLnNob3duRnJvbSFcIiBbYWxzb0JpbmRUb109XCJjb250cm9sLmFsc29CaW5kVG8hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRCeUlkT2JqZWN0JF09XCJjb250cm9sLmdldEJ5SWRPYmplY3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9uc109XCJjb250cm9sLm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGljayRdPVwiY29udHJvbC5jbGljayRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlKFwiUE9TSVRJT05fU0VFS1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjb3JlLWZvcm0tY29udHJvbC1zZWVrZXIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhjbHVkZUV4aXN0aW5nTGlzdF09XCJjb250cm9sLmV4Y2x1ZGVFeGlzdGluZ0xpc3QhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvYmplY3RMaXN0JF09XCJjb250cm9sLm9iamVjdExpc3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlXT1cImNvbnRyb2wubXVsdGlNb2RlIVwiIFttdWx0aU1vZGVUYWJsZUhlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVRhYmxlSGVpZ2h0IVwiIFttdWx0aU1vZGVSb3dIZWlnaHRdPVwiY29udHJvbC5tdWx0aU1vZGVSb3dIZWlnaHQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFthbHNvQmluZFRvXT1cImNvbnRyb2wuYWxzb0JpbmRUbyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlZWtlclNvdXJjZVR5cGVdPVwiY29udHJvbC5zZWVrZXJTb3VyY2VUeXBlIVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlclBhcmFtJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZURlZmluZWRPdXRlckZpbHRlciRdPVwiY29udHJvbC5wcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm91bmRGcm9tXT1cImNvbnRyb2wuYm91bmRGcm9tIVwiIFtzaG93bkZyb21dPVwiY29udHJvbC5zaG93bkZyb20hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRCeUlkT2JqZWN0JF09XCJjb250cm9sLmdldEJ5SWRPYmplY3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9uc109XCJjb250cm9sLm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWVrZXJWZXJpZnlJZ25vcmVdPVwiY29udHJvbC5zZWVrZXJWZXJpZnlJZ25vcmUhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGljayRdPVwiY29udHJvbC5jbGljayRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlKFwiUE9TSVRJT05fQ09OQ1VSUkVOVF9TRUVLXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtZm9ybS1jb250cm9sLXNlZWtlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVFeGlzdGluZ0xpc3RdPVwiY29udHJvbC5leGNsdWRlRXhpc3RpbmdMaXN0IVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlXT1cImNvbnRyb2wubXVsdGlNb2RlIVwiIFttdWx0aU1vZGVUYWJsZUhlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVRhYmxlSGVpZ2h0IVwiIFttdWx0aU1vZGVSb3dIZWlnaHRdPVwiY29udHJvbC5tdWx0aU1vZGVSb3dIZWlnaHQhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5maWVsZFwiIFthbHNvQmluZFRvXT1cImNvbnRyb2wuYWxzb0JpbmRUbyFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlZWtlclNvdXJjZVR5cGVdPVwiY29udHJvbC5zZWVrZXJTb3VyY2VUeXBlIVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJjb250cm9sLnByZURlZmluZWRPdXRlclBhcmFtJCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZURlZmluZWRPdXRlckZpbHRlciRdPVwiY29udHJvbC5wcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm91bmRGcm9tXT1cImNvbnRyb2wuYm91bmRGcm9tIVwiIFtzaG93bkZyb21dPVwiY29udHJvbC5zaG93bkZyb20hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRCeUlkT2JqZWN0JF09XCJjb250cm9sLmdldEJ5SWRPYmplY3QkIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXT1cImNvbnRyb2wubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9uc109XCJjb250cm9sLm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnMhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aU1vZGVUYWJsZUhlaWdodF09XCJjb250cm9sLm11bHRpTW9kZVRhYmxlSGVpZ2h0IVwiXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsaWNrJF09XCJjb250cm9sLmNsaWNrJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2NvcmUtZm9ybS1jb250cm9sLXNlZWtlcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UoXCJPUkdBTklaQVRJT05fVU5JVF9TRUVLXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtZm9ybS1jb250cm9sLXNlZWtlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZpZWxkXCIgW3NlZWtlclNvdXJjZVR5cGVdPVwiY29udHJvbC5zZWVrZXJTb3VyY2VUeXBlIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm91bmRGcm9tXT1cImNvbnRyb2wuYm91bmRGcm9tIVwiIFthbHNvQmluZFRvXT1cImNvbnRyb2wuYWxzb0JpbmRUbyFcIiBbc2hvd25Gcm9tXT1cImNvbnRyb2wuc2hvd25Gcm9tIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2V0QnlJZE9iamVjdCRdPVwiY29udHJvbC5nZXRCeUlkT2JqZWN0JCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsaWNrJF09XCJjb250cm9sLmNsaWNrJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2NvcmUtZm9ybS1jb250cm9sLXNlZWtlcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250cm9sLmNvbnRyb2xUeXBlPT09J0JVVFRPTidcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSB0ZXh0XCIgKGNsaWNrKT1cIm9IYW5kbGVDbGljaygkZXZlbnQpXCI+e3tjb250cm9sLmxhYmVsfCB0cmFuc2xhdGU6IGxhbmd9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwhLS0gRU5EOiBGT1JNLUNPTlRST0wgU0VTU0lPTi0tPlxyXG5cclxuICAgICAgICA8IS0tIFNUQVJUOiBFUlJPUiBTRVNTSU9OLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiEhZXJyb3JzIS5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1lcnJvclwiICpuZ0Zvcj1cImxldCBlcnJvciBvZiBlcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgIHt7IGVycm9yLmVycm9yTWVzc2FnZSB8IHRyYW5zbGF0ZTogbGFuZyB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiISEhZXJyb3JzIS5sZW5ndGggJiYgISFjaGVja0Vycm9yJC52YWx1ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAge3sgJyZuYnNwOycgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSBFTkQ6IEVSUk9SIFNFU1NJT04tLT5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|