iptdevs-design-system 3.1.324 → 3.1.325
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/cod/cod-form/cod-form.component.mjs +5 -3
- package/esm2020/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.mjs +5 -2
- package/fesm2015/iptdevs-design-system.mjs +8 -3
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +8 -3
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/lib/cod/cod-form/cod-form.component.d.ts +2 -1
- package/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -371,10 +371,10 @@ export class CodFormComponent {
|
|
|
371
371
|
}
|
|
372
372
|
}
|
|
373
373
|
CodFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormComponent, deps: [{ token: i1.BaseService }, { token: i2.LocalStorageCODService }, { token: i3.CodFormControls }, { token: i4.CommercialService }], target: i0.ɵɵFactoryTarget.Component });
|
|
374
|
-
CodFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormComponent, selector: "ipt-cod-form", inputs: { dataFromPreviusCodData: "dataFromPreviusCodData", courseSelect: "courseSelect", isNewCod: "isNewCod", editCod: "editCod" }, outputs: { okCreatedCOD: "okCreatedCOD" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && !dataFromPreviusCodData?.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData?.cod_renovation == true\" class=\"p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i6.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i7.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "component", type: i8.CodFormStepOneComponent, selector: "app-cod-form-step-one", inputs: ["initialData", "dataPreviusCodData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i9.CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i10.CodFormStepThreeComponent, selector: "app-cod-form-step-three", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i11.CodFormStepFourComponent, selector: "app-cod-form-step-four", inputs: ["isEditCod", "initialData"], outputs: ["changeStepEvent", "financingData"] }, { kind: "component", type: i12.CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: ["userRole", "initialData", "isEditCod"], outputs: ["changeStepEvent", "action"] }] });
|
|
374
|
+
CodFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormComponent, selector: "ipt-cod-form", inputs: { dataFromPreviusCodData: "dataFromPreviusCodData", courseSelect: "courseSelect", isNewCod: "isNewCod", editCod: "editCod", CourseSelectRenovation: "CourseSelectRenovation" }, outputs: { okCreatedCOD: "okCreatedCOD" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && !dataFromPreviusCodData?.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData?.cod_renovation == true\" class=\"p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" [CourseSelectRenovation]=\"CourseSelectRenovation\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i6.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i7.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "component", type: i8.CodFormStepOneComponent, selector: "app-cod-form-step-one", inputs: ["initialData", "dataPreviusCodData", "isEditCod", "CourseSelectRenovation"], outputs: ["changeStepEvent"] }, { kind: "component", type: i9.CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i10.CodFormStepThreeComponent, selector: "app-cod-form-step-three", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i11.CodFormStepFourComponent, selector: "app-cod-form-step-four", inputs: ["isEditCod", "initialData"], outputs: ["changeStepEvent", "financingData"] }, { kind: "component", type: i12.CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: ["userRole", "initialData", "isEditCod"], outputs: ["changeStepEvent", "action"] }] });
|
|
375
375
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormComponent, decorators: [{
|
|
376
376
|
type: Component,
|
|
377
|
-
args: [{ selector: 'ipt-cod-form', template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && !dataFromPreviusCodData?.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData?.cod_renovation == true\" class=\"p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n" }]
|
|
377
|
+
args: [{ selector: 'ipt-cod-form', template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && !dataFromPreviusCodData?.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData?.cod_renovation == true\" class=\"p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" [CourseSelectRenovation]=\"CourseSelectRenovation\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n" }]
|
|
378
378
|
}], ctorParameters: function () { return [{ type: i1.BaseService }, { type: i2.LocalStorageCODService }, { type: i3.CodFormControls }, { type: i4.CommercialService }]; }, propDecorators: { dataFromPreviusCodData: [{
|
|
379
379
|
type: Input
|
|
380
380
|
}], courseSelect: [{
|
|
@@ -383,7 +383,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
|
|
|
383
383
|
type: Input
|
|
384
384
|
}], editCod: [{
|
|
385
385
|
type: Input
|
|
386
|
+
}], CourseSelectRenovation: [{
|
|
387
|
+
type: Input
|
|
386
388
|
}], okCreatedCOD: [{
|
|
387
389
|
type: Output
|
|
388
390
|
}] } });
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9jb2QtZm9ybS9jb2QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL2NvZC1mb3JtL2NvZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTVHLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXL0IsTUFBTSxPQUFPLGdCQUFnQjtJQXNCM0IsWUFDVSxXQUF3QixFQUN4QixlQUF1QyxFQUN2QyxlQUFnQyxFQUNoQyxpQkFBb0M7UUFIcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBcEJwQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHN0MsaUJBQVksR0FBYTtZQUMvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1NBQ3RDLENBQUM7UUFFSyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixjQUFTLEdBQVcsa0NBQWtDLENBQUM7UUFFdkQsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUV0QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLDRCQUF1QixHQUF3QixJQUFJLENBQUM7UUFRekQsSUFBSSxD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aUdBQWhCLGdCQUFnQiwwUENiN0IsaW9GQWtDQTsyRkRyQmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7cU1BTWYsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBDcmVhdGVDT0RScSwgSVVwZGF0ZUNPRFJxIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY29kL2NvZC1ycS5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZXJjaWFsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvY29tbWVyY2lhbC1zZXJ2aWNlL2NvbWVyY2lhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scywgQ29udHJvbCB9IGZyb20gJy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZUNPRFNlcnZpY2UgfSBmcm9tICcuLi9sb2dpYy9sb2NhbC1zdG9yYWdlLWNvZC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lwdC1jb2QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2QtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgQ29kRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBkYXRhRnJvbVByZXZpdXNDb2REYXRhPzogYW55O1xuICBASW5wdXQoKSBjb3Vyc2VTZWxlY3Q/OiBhbnk7XG4gIEBJbnB1dCgpIGlzTmV3Q29kITogYm9vbGVhbjtcbiAgQElucHV0KCkgZWRpdENvZCE6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBva0NyZWF0ZWRDT0QgPSBuZXcgRXZlbnRFbWl0dGVyPEJvb2xlYW4+KCk7XG4gIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGFsbG93ZWRSb2xlczogbnVtYmVyW10gPSBbXG4gICAgMSwgMzAsIDMxLCAzMiwgNDAsIDQxLCA0MiwgNTAsIDUxLCA1MixcbiAgXTtcblxuICBwdWJsaWMgY3VycmVudFN0ZXA6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBmb3JtVGl0bGU6IHN0cmluZyA9ICdGb3JtdWxhcmlvIHBhcmEgY3JlYWNpw7NuIGRlbCBDT0QnO1xuICBwdWJsaWMgdXNlclJvbGU6IG51bWJlcjtcbiAgcHVibGljIGZvcm1TdGVwczogbnVtYmVyID0gNTtcbiAgcHVibGljIGZpbmFuY2luZ0RhdGE/OiBhbnlbXTtcbiAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBjb2RDcmVhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VDT0Q6IExvY2FsU3RvcmFnZUNPRFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2RGb3JtQ29udHJvbHM6IENvZEZvcm1Db250cm9scyxcbiAgICBwcml2YXRlIGNvbW1lcmNpYWxTZXJ2aWNlOiBDb21tZXJjaWFsU2VydmljZVxuICApIHtcbiAgICB0aGlzLnVzZXJSb2xlID0gdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyUm9sZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydlZGl0Q29kJ10gJiYgdGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhKSB7XG4gICAgICBpZiAodGhpcy5lZGl0Q29kKSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhLmVkaXRfY291cnNlX3BheW1lbnQpIHtcbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdRdWVyaWRvIGFzZXNvcicsXG4gICAgICAgICAgICB0ZXh0OiAnU29sbyBwdWVkZSBlZGl0YXIgRGF0b3MgZGVsIGVzdHVkaWFudGUnLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1UaXRsZSA9ICdGb3JtdWxhcmlvIHBhcmEgdmVyaWZpY2FyIHkgZWRpdGFyIGluZm9ybWFjacOzbiBkZWwgQ09EIGFjdHVhbCc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YUZyb21QcmV2aXVzQ29kRGF0YT8uY29kX3Jlbm92YXRpb24gPT0gZmFsc2UgJiYgdGhpcy5lZGl0Q29kID09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZm9ybVRpdGxlID0gJ0Zvcm11bGFyaW8gcGFyYSBjcmVhY2nDs24gZGVsIENPRCc7XG4gICAgICB9ZWxzZSBpZih0aGlzLmRhdGFGcm9tUHJldml1c0NvZERhdGEuY29kX3Jlbm92YXRpb24gPT0gdHJ1ZSAmJiB0aGlzLmVkaXRDb2QgPT0gZmFsc2Upe1xuICAgICAgICB0aGlzLmZvcm1UaXRsZSA9ICdGb3JtdWxhcmlvIHBhcmEgbGEgcmVub3ZhY2lvbiBkZWwgQ09EJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYWxsb3dlZFJvbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dlZFJvbGVzLmluY2x1ZGVzKHRoaXMudXNlclJvbGUpO1xuICB9XG5cbiAgZ2V0Q29kYnlDb2RlKCkge1xuICAgIC8vIFRPRE86IFRyYWVyIENPRCBwb3IgY8OzZGlnbyB5IHBpbnRhcmxvXG4gIH1cblxuXG4gIHNhdmVGaW5hbmNpbmdEYXRhKGRhdGE6IGFueVtdKSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IGRhdGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgZGF0YS5mb3JFYWNoKHAgPT4ge1xuICAgICAgICBjb25zdCBkYXRlID0gcFsyXTtcbiAgICAgICAgZGF0ZXMucHVzaChkYXRlKTtcbiAgICAgIH0pXG4gICAgICB0aGlzLmZpbmFuY2luZ0RhdGEgPSBkYXRlcztcbiAgICB9XG4gIH1cblxuICBnZXRGb3JtQWN0aW9uKGFjdGlvbjogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmZpbmFuY2luZ0RhdGEgJiYgdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoNCwgJ3BheW1lbnRfbWV0aG9kJykgPT09ICcxJykge1xuICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgdGl0bGU6ICdRdWVyaWRvIGFzZXNvcicsXG4gICAgICAgIHRleHQ6ICdEZWJlIGhhY2VyIGVsIGPDoWxjdWxvIGRlIGxhcyBjdW90YXMgZW4gZWwgcGFzbyA0JyxcbiAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgfSlcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG90YWxEYXRhOiBhbnlbXSA9IFtdO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNvZEZvcm1Db250cm9scy5nZXRDb250cm9sVmFsdWVzKCkuc3Vic2NyaWJlKChjb250cm9scykgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB0aGlzLmZvcm1TdGVwczsgaSsrKSB7XG4gICAgICAgICAgbGV0IGNvbnRyb2xzQnlTdGVwOiBDb250cm9sW10gPSBjb250cm9sc1tpLTFdO1xuICAgICAgICAgICAgY29udHJvbHNCeVN0ZXAuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoaSwgY29udHJvbC5uYW1lKTtcbiAgICAgICAgICAgICAgLy8gQ2FtYmlhciBUcnVlL0ZhbHNlIGRlbCBtdWx0aWN1bHR1cmFsaXNtbyAxLzBcbiAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSAnZmFsc2UnICYmIGNvbnRyb2wuZGVzY3JpcHRpb24gPT09ICdNdWx0aWN1bHR1cmFsaXNtbycpIHtcbiAgICAgICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICBjb250cm9sOiBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICAgICAgICBpc1JlcXVpcmVkOiBjb250cm9sLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb250cm9sLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJ3RydWUnICYmIGNvbnRyb2wuZGVzY3JpcHRpb24gPT09ICdNdWx0aWN1bHR1cmFsaXNtbycpIHtcbiAgICAgICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICBjb250cm9sOiBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICAgICAgICBpc1JlcXVpcmVkOiBjb250cm9sLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICcxJyxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb250cm9sLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICBjb250cm9sOiBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICAgICAgICBpc1JlcXVpcmVkOiBjb250cm9sLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogY29udHJvbC5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGFyIGVycm9yZXNcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG90YWxEYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0b3RhbERhdGFbaV07XG4gICAgICAgIGlmICghZWxlbWVudC52YWx1ZSAmJiBlbGVtZW50LmlzUmVxdWlyZWQpIHtcbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdFcnJvciBGb3JtIEFjdGlvbiBWYWxpZGF0ZSBFcnJvcicsXG4gICAgICAgICAgICB0ZXh0OiBgUmV2aXNhciBlbCBjYW1wbzogXCIke2VsZW1lbnQuZGVzY3JpcHRpb259XCJgLFxuICAgICAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChhY3Rpb24gPT09ICdjcmVhdGUnKSB0aGlzLmNyZWF0ZUNPRCh0b3RhbERhdGEpO1xuICAgICAgaWYgKGFjdGlvbiA9PT0gJ3VwZGF0ZScpIHRoaXMudXBkYXRlQ09EKHRvdGFsRGF0YSk7XG4gICAgfSlcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgfVxuXG4gIHVwZGF0ZUNPRCh0b3RhbERhdGE6IGFueVtdKSB7XG4gICAgaWYgKHRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24gJiYgIXRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnRWRpdGFuZG8gQ09ELCBlc3BlcmUgdW4gbW9tZW50bydcbiAgICBsZXQgcmVxdWVzdDogSVVwZGF0ZUNPRFJxID0gdGhpcy5nZXRVcGRhdGVDT0QodG90YWxEYXRhKTtcbiAgICB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLnVwZGF0ZUNPRChyZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLm1lc3NhZ2UuY29kZSA9PT0gMSkge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHRpdGxlOiAnUGVyZmVjdG8hJyxcbiAgICAgICAgICAgIHRleHQ6ICdFbCBDT0QgaGEgc2lkbyBFZGl0YWRvIGV4aXRvc2FtZW50ZS4nLFxuICAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZUNPRC5jbGVhckRhdGEoKTtcbiAgICAgICAgICB0aGlzLm9rQ3JlYXRlZENPRC5lbWl0KHRydWUpO1xuICAgICAgICB9ZWxzZSBpZiAocmVzcG9uc2UubWVzc2FnZS5jb2RlID09PSA0KSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VzID0gKHJlc3BvbnNlLmRhdGEuZXJyb3JzIGFzIGFueVtdKS5tYXAoZXJyb3IgPT4gYC0gJHtlcnJvci5tZXNzYWdlfWApLmpvaW4oJzxicj4nKTtcblxuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1JldmlzYXIgbG8gc2VsZWNjaW9uYWRvIGVuIGxvcyBjYW1wb3MnLFxuICAgICAgICAgICAgaHRtbDogYCR7ZXJyb3JNZXNzYWdlc31gLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcblxuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1dhcm5pbmchJyxcbiAgICAgICAgICAgIHRleHQ6IHJlc3BvbnNlLm1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICB0aXRsZTogJ0Vycm9yIGluIGNvZCBjcmVhdGlvbicsXG4gICAgICAgICAgdGV4dDogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgfVxuICAgIH0pXG5cbiAgfVxuXG4gIGNyZWF0ZUNPRCh0b3RhbERhdGE6IGFueVtdKSB7XG4gICAgaWYgKHRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24gJiYgIXRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnQ3JlYW5kbyBDT0QsIGVzcGVyZSB1biBtb21lbnRvJ1xuICAgIGxldCByZXF1ZXN0OiBDcmVhdGVDT0RScSA9IHRoaXMuZ2V0Q3JlYXRlQ09EKHRvdGFsRGF0YSk7XG4gICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5jcmVhdGVDT0QocmVxdWVzdCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5tZXNzYWdlLmNvZGUgPT09IDEpIHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubG9hZGVyTWVzc2FnZSA9ICcnO1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1BlcmZlY3RvIScsXG4gICAgICAgICAgICB0ZXh0OiAnRWwgQ09EIGhhIHNpZG8gY3JlYWRvIGV4aXRvc2FtZW50ZS4nLFxuICAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZUNPRC5jbGVhckRhdGEoKTtcbiAgICAgICAgICB0aGlzLm9rQ3JlYXRlZENPRC5lbWl0KHRydWUpO1xuICAgICAgICB9ZWxzZSBpZiAocmVzcG9uc2UubWVzc2FnZS5jb2RlID09PSA0KSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VzID0gKHJlc3BvbnNlLmRhdGEuZXJyb3JzIGFzIGFueVtdKS5tYXAoZXJyb3IgPT4gYC0gJHtlcnJvci5tZXNzYWdlfWApLmpvaW4oJzxicj4nKTtcblxuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1JldmlzYXIgbG8gc2VsZWNjaW9uYWRvIGVuIGxvcyBjYW1wb3MnLFxuICAgICAgICAgICAgaHRtbDogYCR7ZXJyb3JNZXNzYWdlc31gLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcblxuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1dhcm5pbmchJyxcbiAgICAgICAgICAgIHRleHQ6IHJlc3BvbnNlLm1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICB0aXRsZTogJ0Vycm9yIGluIGNvZCBjcmVhdGlvbicsXG4gICAgICAgICAgdGV4dDogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgfVxuICAgIH0pXG5cbiAgfVxuXG4gIGdldENyZWF0ZUNPRChkYXRhOiBhbnlbXSk6IENyZWF0ZUNPRFJxIHtcbiAgICBsZXQgcmVxdWVzdDogQ3JlYXRlQ09EUnEgPSB7XG4gICAgICB0b2tlbjogdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKSxcbiAgICAgIHN0dWRlbnRfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfbGFzdF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBuaWNrbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICduaWNrbmFtZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9lbWFpbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2VtYWlsJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X3Bob25lX2luZGljYXRpdmU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X3Bob25lX251bWJlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X3Bob25lX251bWJlcicpWzBdLnZhbHVlLFxuICAgICAgZ2VuZGVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2dlbmRlcicpWzBdLnZhbHVlLFxuICAgICAgYmlydGhkYXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2JpcnRoZGF0ZScpWzBdLnZhbHVlLFxuICAgICAgY2l0eTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjaXR5JylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2lkX2NhcmRfdHlwZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2lkX2NhcmRfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfaWRfY2FyZCcpWzBdLnZhbHVlLFxuICAgICAgcGFzc3dvcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFzc3dvcmQnKVswXS52YWx1ZSxcbiAgICAgIG5lZWRBdGVuZGFudDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICduZWVkQXRlbmRhbnQnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9sYXN0X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2lkX2NhcmRfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X2lkX2NhcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9waG9uZV9pbmRpY2F0aXZlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9pbmRpY2F0aXZlJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfbnVtYmVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9vY2N1cGF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfb2ZmaWNlX2FkZHJlc3M6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2FkZHJlc3MnKVswXS52YWx1ZSxcbiAgICAgIHNvY2lhbF9zdHJhdHVtOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0cmF0dW0nKVswXS52YWx1ZSxcbiAgICAgIGNpdmlsX3N0YXR1czogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjaXZpbF9zdGF0dXMnKVswXS52YWx1ZSxcbiAgICAgIGVkdWNhdGlvbmFsX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2dyYWRlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2FkZHJlc3M6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X29jY3VwYXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBkaXNhYmlsaXR5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2Rpc2FiaWxpdHknKVswXS52YWx1ZSxcbiAgICAgIGhlYWx0aF9yZWdpbWVuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2hlYWx0aF9yZWdpbWVuJylbMF0udmFsdWUsXG4gICAgICBtYXJrZXRpbmdfcmVhc29uczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtYXJrZXRpbmdfcmVhc29ucycpWzBdLnZhbHVlLFxuICAgICAgc3R1ZHlfcmVhc29uczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkeV9yZWFzb25zJylbMF0udmFsdWUsXG4gICAgICBvYnNlcnZhdGlvbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdvYnNlcnZhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8xOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMScpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8yOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMicpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMycpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV80OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNCcpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV81OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNScpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV82OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNicpWzBdLnZhbHVlLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYXZhaWxpYmxlX2NvdXJzZXMnKVswXS52YWx1ZSxcbiAgICAgIGNvdXJzZV90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvdXJzZV90eXBlJylbMF0udmFsdWUsXG4gICAgICBhZ3JlZW1lbnRfYnlfY2F0ZWdvcnk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JylbMF0udmFsdWUsXG4gICAgICBlbmdsaXNoX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2VuZ2xpc2hfbGV2ZWwnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfbWV0aG9kOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BheW1lbnRfbWV0aG9kJylbMF0udmFsdWUsXG4gICAgICBxdW90YV90aW1lczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdxdW90YV90aW1lcycpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9kYXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BheW1lbnRfZGF0ZScpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9kYXRlczogdGhpcy5maW5hbmNpbmdEYXRhISxcbiAgICAgIHByb2dyYW1fcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncHJvZ3JhbV9wcmljZScpWzBdLnZhbHVlLFxuICAgICAgdG90YWxfcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAndG90YWxfcHJpY2UnKVswXS52YWx1ZSxcbiAgICAgIHBhaWRfbGV2ZWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFpZF9sZXZlbCcpWzBdLnZhbHVlLFxuICAgICAgdGVybXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAndGVybXMnKVswXS52YWx1ZSxcbiAgICAgIHJlX3Bhc3N3b3JkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3JlX3Bhc3N3b3JkJylbMF0udmFsdWUsXG4gICAgICBhZ2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdlJylbMF0udmFsdWUsXG4gICAgICBjb3VudHJ5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvdW50cnknKVswXS52YWx1ZSxcbiAgICAgIHN0YXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0YXRlJylbMF0udmFsdWUsXG4gICAgICBhY2FkZW1pY19wbGFuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FjYWRlbWljX3BsYW4nKVswXS52YWx1ZSxcbiAgICAgIGNvZGVfcmVmZXJzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvZGVfcmVmZXJzJylbMF0udmFsdWUsXG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgZ2V0VXBkYXRlQ09EKGRhdGE6IGFueVtdKTogSVVwZGF0ZUNPRFJxIHtcbiAgICBsZXQgcmVxdWVzdDogSVVwZGF0ZUNPRFJxID0ge1xuICAgICAgdG9rZW46IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gICAgICBzdHVkZW50X25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2xhc3RfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2xhc3RfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgbmlja25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmlja25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfZW1haWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9lbWFpbCcpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9udW1iZXI6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIGdlbmRlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdnZW5kZXInKVswXS52YWx1ZSxcbiAgICAgIGJpcnRoZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdiaXJ0aGRhdGUnKVswXS52YWx1ZSxcbiAgICAgIGNpdHk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l0eScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIG5lZWRBdGVuZGFudDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICduZWVkQXRlbmRhbnQnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9sYXN0X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2lkX2NhcmRfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X2lkX2NhcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9waG9uZV9pbmRpY2F0aXZlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9pbmRpY2F0aXZlJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfbnVtYmVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9vY2N1cGF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfb2ZmaWNlX2FkZHJlc3M6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2FkZHJlc3MnKVswXS52YWx1ZSxcbiAgICAgIHNvY2lhbF9zdHJhdHVtOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0cmF0dW0nKVswXS52YWx1ZSxcbiAgICAgIGNpdmlsX3N0YXR1czogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjaXZpbF9zdGF0dXMnKVswXS52YWx1ZSxcbiAgICAgIGVkdWNhdGlvbmFsX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2dyYWRlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2FkZHJlc3M6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X29jY3VwYXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBkaXNhYmlsaXR5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2Rpc2FiaWxpdHknKVswXS52YWx1ZSxcbiAgICAgIGhlYWx0aF9yZWdpbWVuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2hlYWx0aF9yZWdpbWVuJylbMF0udmFsdWUsXG4gICAgICBtYXJrZXRpbmdfcmVhc29uczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtYXJrZXRpbmdfcmVhc29ucycpWzBdLnZhbHVlLFxuICAgICAgc3R1ZHlfcmVhc29uczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkeV9yZWFzb25zJylbMF0udmFsdWUsXG4gICAgICBvYnNlcnZhdGlvbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdvYnNlcnZhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8xOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMScpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8yOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMicpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMycpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV80OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNCcpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV81OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNScpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV82OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNicpWzBdLnZhbHVlLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYXZhaWxpYmxlX2NvdXJzZXMnKVswXS52YWx1ZSxcbiAgICAgIGNvdXJzZV90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvdXJzZV90eXBlJylbMF0udmFsdWUsXG4gICAgICBhZ3JlZW1lbnRfYnlfY2F0ZWdvcnk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JylbMF0udmFsdWUsXG4gICAgICBlbmdsaXNoX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2VuZ2xpc2hfbGV2ZWwnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfbWV0aG9kOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BheW1lbnRfbWV0aG9kJylbMF0udmFsdWUsXG4gICAgICBxdW90YV90aW1lczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdxdW90YV90aW1lcycpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9kYXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BheW1lbnRfZGF0ZScpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9kYXRlczogdGhpcy5maW5hbmNpbmdEYXRhISxcbiAgICAgIHByb2dyYW1fcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncHJvZ3JhbV9wcmljZScpWzBdLnZhbHVlLFxuICAgICAgdG90YWxfcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAndG90YWxfcHJpY2UnKVswXS52YWx1ZSxcbiAgICAgIHBhaWRfbGV2ZWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFpZF9sZXZlbCcpWzBdLnZhbHVlLFxuICAgICAgdGVybXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAndGVybXMnKVswXS52YWx1ZSxcbiAgICAgIGFnZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdhZ2UnKVswXS52YWx1ZSxcbiAgICAgIGNvdW50cnk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY291bnRyeScpWzBdLnZhbHVlLFxuICAgICAgc3RhdGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3RhdGUnKVswXS52YWx1ZSxcbiAgICAgIGFjYWRlbWljX3BsYW46IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWNhZGVtaWNfcGxhbicpWzBdLnZhbHVlLFxuICAgICAgY29kZV9yZWZlcnM6IHRoaXMucGFyc2VOdW1iZXIoZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb2RlX3JlZmVycycpWzBdLnZhbHVlKSxcbiAgICAgIGNvZGVfY29kOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvZGVfY29kJylbMF0udmFsdWUsXG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgY2hhbmdlU3RlcChzdGVwOiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gc3RlcDtcbiAgfVxuXG4gIHBhcnNlTnVtYmVyKHZhbHVlOiBhbnkpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIHJldHVybiBpc05hTihwYXJzZWRWYWx1ZSkgPyBudWxsIDogcGFyc2VkVmFsdWU7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJhbGxvd2VkUm9sZSgpIDsgZWxzZSBVbmF1dGhvcml6ZWRcIiBjbGFzcz1cImNvbnRhaW5lciBmbGV4IGZsZXgtY29sdW1uIGJnLXdoaXRlIGJvcmRlci1yb3VuZC0yeGwgcC0zIGNvbnRhaW5lciBhbmltYXRlX19hbmltYXRlZCBhbmltYXRlX19mYWRlSW5VcFwiPlxuXG4gIDxzcGFuICpuZ0lmPVwiZWRpdENvZFwiIGNsYXNzPVwiYmcteWVsbG93LTUwMCBwLTIgYm9yZGVyLXJvdW5kIG1iLTIgdy1hdXRvIHRleHQtbGcgZm9udC1zZW1pYm9sZFwiIHN0eWxlPVwiY29sb3I6IHdoaXRlO1wiPnt7IGZvcm1UaXRsZSB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCIhZWRpdENvZCAmJiAhZGF0YUZyb21QcmV2aXVzQ29kRGF0YT8uY29kX3Jlbm92YXRpb25cIiBjbGFzcz1cImJnLXByaW1hcnkgcC0yIGJvcmRlci1yb3VuZCBtYi0yIHctYXV0byB0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIj57eyBmb3JtVGl0bGUgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiIWVkaXRDb2QgJiYgZGF0YUZyb21QcmV2aXVzQ29kRGF0YT8uY29kX3Jlbm92YXRpb24gPT0gdHJ1ZVwiIGNsYXNzPVwicC0yIGJvcmRlci1yb3VuZCBtYi0yIHctYXV0byB0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IzFkYTc1MDsgY29sb3I6IHdoaXRlO1wiPnt7IGZvcm1UaXRsZSB9fTwvc3Bhbj5cblxuICA8cC10YWJWaWV3IFthY3RpdmVJbmRleF09XCJjdXJyZW50U3RlcFwiIChhY3RpdmVJbmRleENoYW5nZSk9XCJjdXJyZW50U3RlcCA9ICRldmVudFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIj5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLXN0YXJcIiBoZWFkZXI9XCIxLiBQbGFuZXMgeSBjb252ZW5pb3NcIj5cbiAgICAgIDxhcHAtY29kLWZvcm0tc3RlcC1vbmUgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiBbaW5pdGlhbERhdGFdPVwiY291cnNlU2VsZWN0XCIgW2RhdGFQcmV2aXVzQ29kRGF0YV09XCJkYXRhRnJvbVByZXZpdXNDb2REYXRhXCIgW2lzRWRpdENvZF09XCJlZGl0Q29kXCIgY2xhc3M9XCJwLTFcIj48L2FwcC1jb2QtZm9ybS1zdGVwLW9uZT5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS1pZC1jYXJkXCIgaGVhZGVyPVwiMi4gRGF0b3MgZGVsIGVzdHVkaWFudGVcIj5cbiAgICAgIDxhcHAtY29kLWZvcm0tc3RlcC10d28gKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiBbaW5pdGlhbERhdGFdPVwiZGF0YUZyb21QcmV2aXVzQ29kRGF0YVwiIFtpc0VkaXRDb2RdPVwiZWRpdENvZFwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC10d28+XG4gICAgPC9wLXRhYlBhbmVsPlxuICAgIDxwLXRhYlBhbmVsIGxlZnRJY29uPVwicGkgcGktdXNlci1lZGl0XCIgaGVhZGVyPVwiMy4gRGF0b3MgZGVsIGFjdWRpZW50ZVwiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLXRocmVlICAoY2hhbmdlU3RlcEV2ZW50KT1cImNoYW5nZVN0ZXAoJGV2ZW50KVwiIFtpbml0aWFsRGF0YV09XCJkYXRhRnJvbVByZXZpdXNDb2REYXRhXCIgW2lzRWRpdENvZF09XCJlZGl0Q29kXCIgY2xhc3M9XCJwLTFcIj48L2FwcC1jb2QtZm9ybS1zdGVwLXRocmVlPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLW1vbmV5LWJpbGxcIiBoZWFkZXI9XCI0LiBWYWxvcmVzXCI+XG4gICAgICA8YXBwLWNvZC1mb3JtLXN0ZXAtZm91ciAoY2hhbmdlU3RlcEV2ZW50KT1cImNoYW5nZVN0ZXAoJGV2ZW50KVwiIChmaW5hbmNpbmdEYXRhKT1cInNhdmVGaW5hbmNpbmdEYXRhKCRldmVudClcIiBbaW5pdGlhbERhdGFdPVwiZGF0YUZyb21QcmV2aXVzQ29kRGF0YVwiIFtpc0VkaXRDb2RdPVwiZWRpdENvZFwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC1mb3VyPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLWV5ZVwiIGhlYWRlcj1cIjUuIE9ic2VydmFjaW9uZXNcIj5cbiAgICAgIDxhcHAtY29kLWZvcm0tc3RlcC1maXZlIChjaGFuZ2VTdGVwRXZlbnQpPVwiY2hhbmdlU3RlcCgkZXZlbnQpXCIgW3VzZXJSb2xlXT1cInVzZXJSb2xlXCIgW2luaXRpYWxEYXRhXT1cImRhdGFGcm9tUHJldml1c0NvZERhdGFcIiAoYWN0aW9uKT1cImdldEZvcm1BY3Rpb24oJGV2ZW50KVwiIFtpc0VkaXRDb2RdPVwiZWRpdENvZFwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC1maXZlPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgPC9wLXRhYlZpZXc+XG5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI1VuYXV0aG9yaXplZD5cbiAgPHNwYW4gY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZm9udC1ib2xkIHAtMiBiZy15ZWxsb3ctMjAwIGJvcmRlci1yb3VuZC1sZyB3LWZ1bGxcIj5cbiAgICBObyB0aWVuZXMgbG9zIHBlcm1pc29zIHBhcmEgYWNjZWRlciBhIGVzdGEgZnVuY2lvbmFsaWRhZCwgY29tdW7DrWNhdGUgY29uIGVsIGRlc2Fycm9sbGFkb3IuXG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPGlwdC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBbaXNEaWFsb2ddPVwidHJ1ZVwiIFttZXNzYWdlXT1cImxvYWRlck1lc3NhZ2VcIj48L2lwdC1sb2FkZXI+XG4iXX0=
|
|
391
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9jb2QtZm9ybS9jb2QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL2NvZC1mb3JtL2NvZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTVHLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXL0IsTUFBTSxPQUFPLGdCQUFnQjtJQXVCM0IsWUFDVSxXQUF3QixFQUN4QixlQUF1QyxFQUN2QyxlQUFnQyxFQUNoQyxpQkFBb0M7UUFIcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBcEJwQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHN0MsaUJBQVksR0FBYTtZQUMvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1NBQ3RDLENBQUM7UUFFSyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixjQUFTLEdBQVcsa0NBQWtDLENBQUM7UUFFdkQsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUV0QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLDRCQUF1QixHQUF3QixJQUFJLENBQUM7UUFRekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQ3JELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsRUFBRTtvQkFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDUixLQUFLLEVBQUUsZ0JBQWdCO3dCQUN2QixJQUFJLEVBQUUsd0NBQXdDO3dCQUM5QyxJQUFJLEVBQUUsU0FBUztxQkFDaEIsQ0FBQyxDQUFBO2lCQUNIO2dCQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsK0RBQStELENBQUM7YUFDbEY7aUJBQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsY0FBYyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRTtnQkFDeEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQ0FBa0MsQ0FBQzthQUNyRDtpQkFBSyxJQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFDO2dCQUNuRixJQUFJLENBQUMsU0FBUyxHQUFHLHVDQUF1QyxDQUFDO2FBQzFEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsWUFBWTtRQUNWLHdDQUF3QztJQUMxQyxDQUFDO0lBR0QsaUJBQWlCLENBQUMsSUFBVztRQUMzQixJQUFJLElBQUksRUFBRTtZQUNSLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNmLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFjO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUMzRixJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNSLEtBQUssRUFBRSxnQkFBZ0I7Z0JBQ3ZCLElBQUksRUFBRSxrREFBa0Q7Z0JBQ3hELElBQUksRUFBRSxPQUFPO2FBQ2QsQ0FBQyxDQUFBO1lBQ0YsT0FBTztTQUNSO1FBQ0QsTUFBTSxTQUFTLEdBQVUsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQy9FLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLGNBQWMsR0FBYyxRQUFRLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUMvQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNqRSwrQ0FBK0M7b0JBQy9DLElBQUksS0FBSyxLQUFLLE9BQU8sSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLG1CQUFtQixFQUFFO3dCQUNwRSxTQUFTLENBQUMsSUFBSSxDQUFDOzRCQUNiLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSTs0QkFDckIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFROzRCQUM1QixLQUFLLEVBQUUsR0FBRzs0QkFDVixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7eUJBQ2pDLENBQUMsQ0FBQTtxQkFDSDt5QkFBTSxJQUFJLEtBQUssS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxtQkFBbUIsRUFBRTt3QkFDMUUsU0FBUyxDQUFDLElBQUksQ0FBQzs0QkFDYixPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7NEJBQ3JCLFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUTs0QkFDNUIsS0FBSyxFQUFFLEdBQUc7NEJBQ1YsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO3lCQUNqQyxDQUFDLENBQUE7cUJBQ0g7eUJBQU07d0JBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQzs0QkFDYixPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7NEJBQ3JCLFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUTs0QkFDNUIsS0FBSzs0QkFDTCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7eUJBQ2pDLENBQUMsQ0FBQTtxQkFDSDtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNSO1lBRUQsa0JBQWtCO1lBQ2xCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7b0JBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ1IsS0FBSyxFQUFFLGtDQUFrQzt3QkFDekMsSUFBSSxFQUFFLHNCQUFzQixPQUFPLENBQUMsV0FBVyxHQUFHO3dCQUNsRCxJQUFJLEVBQUUsT0FBTztxQkFDZCxDQUFDLENBQUM7b0JBQ0gsTUFBTTtpQkFDUDthQUNGO1lBRUQsSUFBSSxNQUFNLEtBQUssUUFBUTtnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ25ELElBQUksTUFBTSxLQUFLLFFBQVE7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFnQjtRQUN4QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUU7WUFDeEUsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxpQ0FBaUMsQ0FBQTtRQUN0RCxJQUFJLE9BQU8sR0FBaUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNsRCxJQUFJLEVBQUUsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDUixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsSUFBSSxFQUFFLHNDQUFzQzt3QkFDNUMsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCLENBQUMsQ0FBQTtvQkFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDOUI7cUJBQUssSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxhQUFhLEdBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV0RyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUNSLEtBQUssRUFBRSx1Q0FBdUM7d0JBQzlDLElBQUksRUFBRSxHQUFHLGFBQWEsRUFBRTt3QkFDeEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7b0JBRXhCLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ1IsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU87d0JBQzlCLElBQUksRUFBRSxPQUFPO3FCQUNkLENBQUMsQ0FBQTtpQkFDSDtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDO29CQUNSLEtBQUssRUFBRSx1QkFBdUI7b0JBQzlCLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDakIsSUFBSSxFQUFFLE9BQU87aUJBQ2QsQ0FBQyxDQUFBO1lBQ0osQ0FBQztZQUNELFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztZQUN0QyxDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBRUosQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFnQjtRQUN4QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUU7WUFDeEUsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQ0FBZ0MsQ0FBQTtRQUNyRCxJQUFJLE9BQU8sR0FBZ0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNsRCxJQUFJLEVBQUUsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDUixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsSUFBSSxFQUFFLHFDQUFxQzt3QkFDM0MsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCLENBQUMsQ0FBQTtvQkFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDOUI7cUJBQUssSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxhQUFhLEdBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV0RyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUNSLEtBQUssRUFBRSx1Q0FBdUM7d0JBQzlDLElBQUksRUFBRSxHQUFHLGFBQWEsRUFBRTt3QkFDeEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7b0JBRXhCLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ1IsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU87d0JBQzlCLElBQUksRUFBRSxPQUFPO3FCQUNkLENBQUMsQ0FBQTtpQkFDSDtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDO29CQUNSLEtBQUssRUFBRSx1QkFBdUI7b0JBQzlCLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDakIsSUFBSSxFQUFFLE9BQU87aUJBQ2QsQ0FBQyxDQUFBO1lBQ0osQ0FBQztZQUNELFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztZQUN0QyxDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBRUosQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFXO1FBQ3RCLElBQUksT0FBTyxHQUFnQjtZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7WUFDdEMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDM0UsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3JGLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ25FLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzdFLHdCQUF3QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNuRyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDM0YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDL0QsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDckUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDM0Qsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzNGLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDakYsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDbkUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDM0UsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDekUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ25GLG1CQUFtQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN6RixjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQy9FLHVCQUF1QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNqRyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDekYsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3JGLHFCQUFxQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN0RixjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN4RSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUMzRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3pFLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDakYsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZGLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZFLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDL0UsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3JGLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzdFLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3pFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN2RixrQkFBa0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkYsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN2RixrQkFBa0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkYsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNyRixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN6RSxxQkFBcUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDN0YsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDN0UsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUMvRSxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN6RSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUMzRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWM7WUFDbEMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDN0UsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDekUsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDN0QsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDekUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDekQsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDakUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDN0QsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDN0UsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7U0FDMUUsQ0FBQTtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBVztRQUN0QixJQUFJLE9BQU8sR0FBaUI7WUFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFO1lBQ3RDLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzNFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNyRixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNuRSxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUM3RSx3QkFBd0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDbkcsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzNGLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQy9ELFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3JFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzNELG9CQUFvQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUMzRixlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ2pGLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzNFLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3pFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNuRixtQkFBbUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDekYsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUMvRSx1QkFBdUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDakcsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUsscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3pGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNyRixxQkFBcUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdEYsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDeEUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDM0UsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN6RSxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ2pGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN2RixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN2RSxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQy9FLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNyRixhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUM3RSxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN6RSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkYsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN2RixrQkFBa0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkYsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN2RixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDckYsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDekUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzdGLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzdFLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDL0UsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDekUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDM0UsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFjO1lBQ2xDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzdFLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3pFLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzdELEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3pELE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ2pFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzdELGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzdFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUMzRixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztTQUNwRSxDQUFBO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ2pELENBQUM7OzZHQTlYVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiw0U0NiN0IscXJGQWtDQTsyRkRyQmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7cU1BTWYsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuaW1wb3J0IHsgQ3JlYXRlQ09EUnEsIElVcGRhdGVDT0RScSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NvZC9jb2QtcnEubW9kZWwnO1xuaW1wb3J0IHsgQ29tbWVyY2lhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2NvbW1lcmNpYWwtc2VydmljZS9jb21lcmNpYWwuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RGb3JtQ29udHJvbHMsIENvbnRyb2wgfSBmcm9tICcuLi9sb2dpYy9jb2QtZm9ybS1jb250cm9scyc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VDT0RTZXJ2aWNlIH0gZnJvbSAnLi4vbG9naWMvbG9jYWwtc3RvcmFnZS1jb2Quc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpcHQtY29kLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIENvZEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgZGF0YUZyb21QcmV2aXVzQ29kRGF0YT86IGFueTtcbiAgQElucHV0KCkgY291cnNlU2VsZWN0PzogYW55O1xuICBASW5wdXQoKSBpc05ld0NvZCE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVkaXRDb2QhOiBib29sZWFuO1xuICBASW5wdXQoKSBDb3Vyc2VTZWxlY3RSZW5vdmF0aW9uITphbnk7XG4gIEBPdXRwdXQoKSBva0NyZWF0ZWRDT0QgPSBuZXcgRXZlbnRFbWl0dGVyPEJvb2xlYW4+KCk7XG4gIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGFsbG93ZWRSb2xlczogbnVtYmVyW10gPSBbXG4gICAgMSwgMzAsIDMxLCAzMiwgNDAsIDQxLCA0MiwgNTAsIDUxLCA1MixcbiAgXTtcblxuICBwdWJsaWMgY3VycmVudFN0ZXA6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBmb3JtVGl0bGU6IHN0cmluZyA9ICdGb3JtdWxhcmlvIHBhcmEgY3JlYWNpw7NuIGRlbCBDT0QnO1xuICBwdWJsaWMgdXNlclJvbGU6IG51bWJlcjtcbiAgcHVibGljIGZvcm1TdGVwczogbnVtYmVyID0gNTtcbiAgcHVibGljIGZpbmFuY2luZ0RhdGE/OiBhbnlbXTtcbiAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBjb2RDcmVhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VDT0Q6IExvY2FsU3RvcmFnZUNPRFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2RGb3JtQ29udHJvbHM6IENvZEZvcm1Db250cm9scyxcbiAgICBwcml2YXRlIGNvbW1lcmNpYWxTZXJ2aWNlOiBDb21tZXJjaWFsU2VydmljZVxuICApIHtcbiAgICB0aGlzLnVzZXJSb2xlID0gdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyUm9sZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydlZGl0Q29kJ10gJiYgdGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhKSB7XG4gICAgICBpZiAodGhpcy5lZGl0Q29kKSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhLmVkaXRfY291cnNlX3BheW1lbnQpIHtcbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdRdWVyaWRvIGFzZXNvcicsXG4gICAgICAgICAgICB0ZXh0OiAnU29sbyBwdWVkZSBlZGl0YXIgRGF0b3MgZGVsIGVzdHVkaWFudGUnLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1UaXRsZSA9ICdGb3JtdWxhcmlvIHBhcmEgdmVyaWZpY2FyIHkgZWRpdGFyIGluZm9ybWFjacOzbiBkZWwgQ09EIGFjdHVhbCc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YUZyb21QcmV2aXVzQ29kRGF0YT8uY29kX3Jlbm92YXRpb24gPT0gZmFsc2UgJiYgdGhpcy5lZGl0Q29kID09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZm9ybVRpdGxlID0gJ0Zvcm11bGFyaW8gcGFyYSBjcmVhY2nDs24gZGVsIENPRCc7XG4gICAgICB9ZWxzZSBpZih0aGlzLmRhdGFGcm9tUHJldml1c0NvZERhdGEuY29kX3Jlbm92YXRpb24gPT0gdHJ1ZSAmJiB0aGlzLmVkaXRDb2QgPT0gZmFsc2Upe1xuICAgICAgICB0aGlzLmZvcm1UaXRsZSA9ICdGb3JtdWxhcmlvIHBhcmEgbGEgcmVub3ZhY2lvbiBkZWwgQ09EJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYWxsb3dlZFJvbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dlZFJvbGVzLmluY2x1ZGVzKHRoaXMudXNlclJvbGUpO1xuICB9XG5cbiAgZ2V0Q29kYnlDb2RlKCkge1xuICAgIC8vIFRPRE86IFRyYWVyIENPRCBwb3IgY8OzZGlnbyB5IHBpbnRhcmxvXG4gIH1cblxuXG4gIHNhdmVGaW5hbmNpbmdEYXRhKGRhdGE6IGFueVtdKSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IGRhdGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgZGF0YS5mb3JFYWNoKHAgPT4ge1xuICAgICAgICBjb25zdCBkYXRlID0gcFsyXTtcbiAgICAgICAgZGF0ZXMucHVzaChkYXRlKTtcbiAgICAgIH0pXG4gICAgICB0aGlzLmZpbmFuY2luZ0RhdGEgPSBkYXRlcztcbiAgICB9XG4gIH1cblxuICBnZXRGb3JtQWN0aW9uKGFjdGlvbjogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmZpbmFuY2luZ0RhdGEgJiYgdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoNCwgJ3BheW1lbnRfbWV0aG9kJykgPT09ICcxJykge1xuICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgdGl0bGU6ICdRdWVyaWRvIGFzZXNvcicsXG4gICAgICAgIHRleHQ6ICdEZWJlIGhhY2VyIGVsIGPDoWxjdWxvIGRlIGxhcyBjdW90YXMgZW4gZWwgcGFzbyA0JyxcbiAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgfSlcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG90YWxEYXRhOiBhbnlbXSA9IFtdO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNvZEZvcm1Db250cm9scy5nZXRDb250cm9sVmFsdWVzKCkuc3Vic2NyaWJlKChjb250cm9scykgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB0aGlzLmZvcm1TdGVwczsgaSsrKSB7XG4gICAgICAgICAgbGV0IGNvbnRyb2xzQnlTdGVwOiBDb250cm9sW10gPSBjb250cm9sc1tpLTFdO1xuICAgICAgICAgICAgY29udHJvbHNCeVN0ZXAuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoaSwgY29udHJvbC5uYW1lKTtcbiAgICAgICAgICAgICAgLy8gQ2FtYmlhciBUcnVlL0ZhbHNlIGRlbCBtdWx0aWN1bHR1cmFsaXNtbyAxLzBcbiAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSAnZmFsc2UnICYmIGNvbnRyb2wuZGVzY3JpcHRpb24gPT09ICdNdWx0aWN1bHR1cmFsaXNtbycpIHtcbiAgICAgICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICBjb250cm9sOiBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICAgICAgICBpc1JlcXVpcmVkOiBjb250cm9sLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb250cm9sLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJ3RydWUnICYmIGNvbnRyb2wuZGVzY3JpcHRpb24gPT09ICdNdWx0aWN1bHR1cmFsaXNtbycpIHtcbiAgICAgICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICBjb250cm9sOiBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICAgICAgICBpc1JlcXVpcmVkOiBjb250cm9sLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICcxJyxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb250cm9sLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0b3RhbERhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICBjb250cm9sOiBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICAgICAgICBpc1JlcXVpcmVkOiBjb250cm9sLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogY29udHJvbC5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGFyIGVycm9yZXNcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG90YWxEYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0b3RhbERhdGFbaV07XG4gICAgICAgIGlmICghZWxlbWVudC52YWx1ZSAmJiBlbGVtZW50LmlzUmVxdWlyZWQpIHtcbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdFcnJvciBGb3JtIEFjdGlvbiBWYWxpZGF0ZSBFcnJvcicsXG4gICAgICAgICAgICB0ZXh0OiBgUmV2aXNhciBlbCBjYW1wbzogXCIke2VsZW1lbnQuZGVzY3JpcHRpb259XCJgLFxuICAgICAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChhY3Rpb24gPT09ICdjcmVhdGUnKSB0aGlzLmNyZWF0ZUNPRCh0b3RhbERhdGEpO1xuICAgICAgaWYgKGFjdGlvbiA9PT0gJ3VwZGF0ZScpIHRoaXMudXBkYXRlQ09EKHRvdGFsRGF0YSk7XG4gICAgfSlcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgfVxuXG4gIHVwZGF0ZUNPRCh0b3RhbERhdGE6IGFueVtdKSB7XG4gICAgaWYgKHRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24gJiYgIXRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnRWRpdGFuZG8gQ09ELCBlc3BlcmUgdW4gbW9tZW50bydcbiAgICBsZXQgcmVxdWVzdDogSVVwZGF0ZUNPRFJxID0gdGhpcy5nZXRVcGRhdGVDT0QodG90YWxEYXRhKTtcbiAgICB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLnVwZGF0ZUNPRChyZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLm1lc3NhZ2UuY29kZSA9PT0gMSkge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHRpdGxlOiAnUGVyZmVjdG8hJyxcbiAgICAgICAgICAgIHRleHQ6ICdFbCBDT0QgaGEgc2lkbyBFZGl0YWRvIGV4aXRvc2FtZW50ZS4nLFxuICAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZUNPRC5jbGVhckRhdGEoKTtcbiAgICAgICAgICB0aGlzLm9rQ3JlYXRlZENPRC5lbWl0KHRydWUpO1xuICAgICAgICB9ZWxzZSBpZiAocmVzcG9uc2UubWVzc2FnZS5jb2RlID09PSA0KSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VzID0gKHJlc3BvbnNlLmRhdGEuZXJyb3JzIGFzIGFueVtdKS5tYXAoZXJyb3IgPT4gYC0gJHtlcnJvci5tZXNzYWdlfWApLmpvaW4oJzxicj4nKTtcblxuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1JldmlzYXIgbG8gc2VsZWNjaW9uYWRvIGVuIGxvcyBjYW1wb3MnLFxuICAgICAgICAgICAgaHRtbDogYCR7ZXJyb3JNZXNzYWdlc31gLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcblxuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1dhcm5pbmchJyxcbiAgICAgICAgICAgIHRleHQ6IHJlc3BvbnNlLm1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICB0aXRsZTogJ0Vycm9yIGluIGNvZCBjcmVhdGlvbicsXG4gICAgICAgICAgdGV4dDogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgfVxuICAgIH0pXG5cbiAgfVxuXG4gIGNyZWF0ZUNPRCh0b3RhbERhdGE6IGFueVtdKSB7XG4gICAgaWYgKHRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24gJiYgIXRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnQ3JlYW5kbyBDT0QsIGVzcGVyZSB1biBtb21lbnRvJ1xuICAgIGxldCByZXF1ZXN0OiBDcmVhdGVDT0RScSA9IHRoaXMuZ2V0Q3JlYXRlQ09EKHRvdGFsRGF0YSk7XG4gICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5jcmVhdGVDT0QocmVxdWVzdCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5tZXNzYWdlLmNvZGUgPT09IDEpIHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubG9hZGVyTWVzc2FnZSA9ICcnO1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1BlcmZlY3RvIScsXG4gICAgICAgICAgICB0ZXh0OiAnRWwgQ09EIGhhIHNpZG8gY3JlYWRvIGV4aXRvc2FtZW50ZS4nLFxuICAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZUNPRC5jbGVhckRhdGEoKTtcbiAgICAgICAgICB0aGlzLm9rQ3JlYXRlZENPRC5lbWl0KHRydWUpO1xuICAgICAgICB9ZWxzZSBpZiAocmVzcG9uc2UubWVzc2FnZS5jb2RlID09PSA0KSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VzID0gKHJlc3BvbnNlLmRhdGEuZXJyb3JzIGFzIGFueVtdKS5tYXAoZXJyb3IgPT4gYC0gJHtlcnJvci5tZXNzYWdlfWApLmpvaW4oJzxicj4nKTtcblxuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1JldmlzYXIgbG8gc2VsZWNjaW9uYWRvIGVuIGxvcyBjYW1wb3MnLFxuICAgICAgICAgICAgaHRtbDogYCR7ZXJyb3JNZXNzYWdlc31gLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcblxuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1dhcm5pbmchJyxcbiAgICAgICAgICAgIHRleHQ6IHJlc3BvbnNlLm1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICB0aXRsZTogJ0Vycm9yIGluIGNvZCBjcmVhdGlvbicsXG4gICAgICAgICAgdGV4dDogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY29kQ3JlYXRpb25TdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgfVxuICAgIH0pXG5cbiAgfVxuXG4gIGdldENyZWF0ZUNPRChkYXRhOiBhbnlbXSk6IENyZWF0ZUNPRFJxIHtcbiAgICBsZXQgcmVxdWVzdDogQ3JlYXRlQ09EUnEgPSB7XG4gICAgICB0b2tlbjogdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKSxcbiAgICAgIHN0dWRlbnRfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfbGFzdF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBuaWNrbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICduaWNrbmFtZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9lbWFpbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2VtYWlsJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X3Bob25lX2luZGljYXRpdmU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X3Bob25lX251bWJlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X3Bob25lX251bWJlcicpWzBdLnZhbHVlLFxuICAgICAgZ2VuZGVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2dlbmRlcicpWzBdLnZhbHVlLFxuICAgICAgYmlydGhkYXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2JpcnRoZGF0ZScpWzBdLnZhbHVlLFxuICAgICAgY2l0eTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjaXR5JylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2lkX2NhcmRfdHlwZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2lkX2NhcmRfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfaWRfY2FyZCcpWzBdLnZhbHVlLFxuICAgICAgcGFzc3dvcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFzc3dvcmQnKVswXS52YWx1ZSxcbiAgICAgIG5lZWRBdGVuZGFudDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICduZWVkQXRlbmRhbnQnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9sYXN0X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2lkX2NhcmRfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X2lkX2NhcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9waG9uZV9pbmRpY2F0aXZlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9pbmRpY2F0aXZlJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfbnVtYmVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9vY2N1cGF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfb2ZmaWNlX2FkZHJlc3M6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2FkZHJlc3MnKVswXS52YWx1ZSxcbiAgICAgIHNvY2lhbF9zdHJhdHVtOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0cmF0dW0nKVswXS52YWx1ZSxcbiAgICAgIGNpdmlsX3N0YXR1czogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjaXZpbF9zdGF0dXMnKVswXS52YWx1ZSxcbiAgICAgIGVkdWNhdGlvbmFsX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2dyYWRlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2FkZHJlc3M6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X29jY3VwYXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBkaXNhYmlsaXR5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2Rpc2FiaWxpdHknKVswXS52YWx1ZSxcbiAgICAgIGhlYWx0aF9yZWdpbWVuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2hlYWx0aF9yZWdpbWVuJylbMF0udmFsdWUsXG4gICAgICBtYXJrZXRpbmdfcmVhc29uczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtYXJrZXRpbmdfcmVhc29ucycpWzBdLnZhbHVlLFxuICAgICAgc3R1ZHlfcmVhc29uczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkeV9yZWFzb25zJylbMF0udmFsdWUsXG4gICAgICBvYnNlcnZhdGlvbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdvYnNlcnZhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8xOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMScpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8yOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMicpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMycpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV80OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNCcpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV81OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNScpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV82OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNicpWzBdLnZhbHVlLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYXZhaWxpYmxlX2NvdXJzZXMnKVswXS52YWx1ZSxcbiAgICAgIGNvdXJzZV90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvdXJzZV90eXBlJylbMF0udmFsdWUsXG4gICAgICBhZ3JlZW1lbnRfYnlfY2F0ZWdvcnk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JylbMF0udmFsdWUsXG4gICAgICBlbmdsaXNoX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2VuZ2xpc2hfbGV2ZWwnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfbWV0aG9kOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BheW1lbnRfbWV0aG9kJylbMF0udmFsdWUsXG4gICAgICBxdW90YV90aW1lczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdxdW90YV90aW1lcycpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9kYXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BheW1lbnRfZGF0ZScpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9kYXRlczogdGhpcy5maW5hbmNpbmdEYXRhISxcbiAgICAgIHByb2dyYW1fcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncHJvZ3JhbV9wcmljZScpWzBdLnZhbHVlLFxuICAgICAgdG90YWxfcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAndG90YWxfcHJpY2UnKVswXS52YWx1ZSxcbiAgICAgIHBhaWRfbGV2ZWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFpZF9sZXZlbCcpWzBdLnZhbHVlLFxuICAgICAgdGVybXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAndGVybXMnKVswXS52YWx1ZSxcbiAgICAgIHJlX3Bhc3N3b3JkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3JlX3Bhc3N3b3JkJylbMF0udmFsdWUsXG4gICAgICBhZ2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdlJylbMF0udmFsdWUsXG4gICAgICBjb3VudHJ5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvdW50cnknKVswXS52YWx1ZSxcbiAgICAgIHN0YXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0YXRlJylbMF0udmFsdWUsXG4gICAgICBhY2FkZW1pY19wbGFuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FjYWRlbWljX3BsYW4nKVswXS52YWx1ZSxcbiAgICAgIGNvZGVfcmVmZXJzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvZGVfcmVmZXJzJylbMF0udmFsdWUsXG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgZ2V0VXBkYXRlQ09EKGRhdGE6IGFueVtdKTogSVVwZGF0ZUNPRFJxIHtcbiAgICBsZXQgcmVxdWVzdDogSVVwZGF0ZUNPRFJxID0ge1xuICAgICAgdG9rZW46IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gICAgICBzdHVkZW50X25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2xhc3RfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2xhc3RfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgbmlja25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmlja25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfZW1haWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9lbWFpbCcpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9udW1iZXI6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIGdlbmRlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdnZW5kZXInKVswXS52YWx1ZSxcbiAgICAgIGJpcnRoZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdiaXJ0aGRhdGUnKVswXS52YWx1ZSxcbiAgICAgIGNpdHk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l0eScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIG5lZWRBdGVuZGFudDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICduZWVkQXRlbmRhbnQnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbGFzdF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9sYXN0X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2lkX2NhcmRfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X2lkX2NhcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9waG9uZV9pbmRpY2F0aXZlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9pbmRpY2F0aXZlJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfbnVtYmVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9vY2N1cGF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfb2ZmaWNlX2FkZHJlc3M6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFyZW50X2FkZHJlc3MnKVswXS52YWx1ZSxcbiAgICAgIHNvY2lhbF9zdHJhdHVtOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0cmF0dW0nKVswXS52YWx1ZSxcbiAgICAgIGNpdmlsX3N0YXR1czogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjaXZpbF9zdGF0dXMnKVswXS52YWx1ZSxcbiAgICAgIGVkdWNhdGlvbmFsX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2dyYWRlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2FkZHJlc3M6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X29jY3VwYXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9vY2N1cGF0aW9uJylbMF0udmFsdWUsXG4gICAgICBkaXNhYmlsaXR5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2Rpc2FiaWxpdHknKVswXS52YWx1ZSxcbiAgICAgIGhlYWx0aF9yZWdpbWVuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2hlYWx0aF9yZWdpbWVuJylbMF0udmFsdWUsXG4gICAgICBtYXJrZXRpbmdfcmVhc29uczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtYXJrZXRpbmdfcmVhc29ucycpWzBdLnZhbHVlLFxuICAgICAgc3R1ZHlfcmVhc29uczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkeV9yZWFzb25zJylbMF0udmFsdWUsXG4gICAgICBvYnNlcnZhdGlvbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdvYnNlcnZhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8xOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMScpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8yOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMicpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fMycpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV80OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNCcpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV81OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNScpWzBdLnZhbHVlLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV82OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ211bHRpY3VsdHVyYWxpc21fNicpWzBdLnZhbHVlLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYXZhaWxpYmxlX2NvdXJzZXMnKVswXS52YWx1ZSxcbiAgICAgIGNvdXJzZV90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvdXJzZV90eXBlJylbMF0udmFsdWUsXG4gICAgICBhZ3JlZW1lbnRfYnlfY2F0ZWdvcnk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JylbMF0udmFsdWUsXG4gICAgICBlbmdsaXNoX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2VuZ2xpc2hfbGV2ZWwnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfbWV0aG9kOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BheW1lbnRfbWV0aG9kJylbMF0udmFsdWUsXG4gICAgICBxdW90YV90aW1lczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdxdW90YV90aW1lcycpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9kYXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BheW1lbnRfZGF0ZScpWzBdLnZhbHVlLFxuICAgICAgcGF5bWVudF9kYXRlczogdGhpcy5maW5hbmNpbmdEYXRhISxcbiAgICAgIHByb2dyYW1fcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncHJvZ3JhbV9wcmljZScpWzBdLnZhbHVlLFxuICAgICAgdG90YWxfcHJpY2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAndG90YWxfcHJpY2UnKVswXS52YWx1ZSxcbiAgICAgIHBhaWRfbGV2ZWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncGFpZF9sZXZlbCcpWzBdLnZhbHVlLFxuICAgICAgdGVybXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAndGVybXMnKVswXS52YWx1ZSxcbiAgICAgIGFnZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdhZ2UnKVswXS52YWx1ZSxcbiAgICAgIGNvdW50cnk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY291bnRyeScpWzBdLnZhbHVlLFxuICAgICAgc3RhdGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3RhdGUnKVswXS52YWx1ZSxcbiAgICAgIGFjYWRlbWljX3BsYW46IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWNhZGVtaWNfcGxhbicpWzBdLnZhbHVlLFxuICAgICAgY29kZV9yZWZlcnM6IHRoaXMucGFyc2VOdW1iZXIoZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb2RlX3JlZmVycycpWzBdLnZhbHVlKSxcbiAgICAgIGNvZGVfY29kOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvZGVfY29kJylbMF0udmFsdWUsXG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgY2hhbmdlU3RlcChzdGVwOiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gc3RlcDtcbiAgfVxuXG4gIHBhcnNlTnVtYmVyKHZhbHVlOiBhbnkpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIHJldHVybiBpc05hTihwYXJzZWRWYWx1ZSkgPyBudWxsIDogcGFyc2VkVmFsdWU7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJhbGxvd2VkUm9sZSgpIDsgZWxzZSBVbmF1dGhvcml6ZWRcIiBjbGFzcz1cImNvbnRhaW5lciBmbGV4IGZsZXgtY29sdW1uIGJnLXdoaXRlIGJvcmRlci1yb3VuZC0yeGwgcC0zIGNvbnRhaW5lciBhbmltYXRlX19hbmltYXRlZCBhbmltYXRlX19mYWRlSW5VcFwiPlxuXG4gIDxzcGFuICpuZ0lmPVwiZWRpdENvZFwiIGNsYXNzPVwiYmcteWVsbG93LTUwMCBwLTIgYm9yZGVyLXJvdW5kIG1iLTIgdy1hdXRvIHRleHQtbGcgZm9udC1zZW1pYm9sZFwiIHN0eWxlPVwiY29sb3I6IHdoaXRlO1wiPnt7IGZvcm1UaXRsZSB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCIhZWRpdENvZCAmJiAhZGF0YUZyb21QcmV2aXVzQ29kRGF0YT8uY29kX3Jlbm92YXRpb25cIiBjbGFzcz1cImJnLXByaW1hcnkgcC0yIGJvcmRlci1yb3VuZCBtYi0yIHctYXV0byB0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIj57eyBmb3JtVGl0bGUgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiIWVkaXRDb2QgJiYgZGF0YUZyb21QcmV2aXVzQ29kRGF0YT8uY29kX3Jlbm92YXRpb24gPT0gdHJ1ZVwiIGNsYXNzPVwicC0yIGJvcmRlci1yb3VuZCBtYi0yIHctYXV0byB0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IzFkYTc1MDsgY29sb3I6IHdoaXRlO1wiPnt7IGZvcm1UaXRsZSB9fTwvc3Bhbj5cblxuICA8cC10YWJWaWV3IFthY3RpdmVJbmRleF09XCJjdXJyZW50U3RlcFwiIChhY3RpdmVJbmRleENoYW5nZSk9XCJjdXJyZW50U3RlcCA9ICRldmVudFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIj5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLXN0YXJcIiBoZWFkZXI9XCIxLiBQbGFuZXMgeSBjb252ZW5pb3NcIj5cbiAgICAgIDxhcHAtY29kLWZvcm0tc3RlcC1vbmUgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiBbaW5pdGlhbERhdGFdPVwiY291cnNlU2VsZWN0XCIgW2RhdGFQcmV2aXVzQ29kRGF0YV09XCJkYXRhRnJvbVByZXZpdXNDb2REYXRhXCIgW2lzRWRpdENvZF09XCJlZGl0Q29kXCIgW0NvdXJzZVNlbGVjdFJlbm92YXRpb25dPVwiQ291cnNlU2VsZWN0UmVub3ZhdGlvblwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC1vbmU+XG4gICAgPC9wLXRhYlBhbmVsPlxuICAgIDxwLXRhYlBhbmVsIGxlZnRJY29uPVwicGkgcGktaWQtY2FyZFwiIGhlYWRlcj1cIjIuIERhdG9zIGRlbCBlc3R1ZGlhbnRlXCI+XG4gICAgICA8YXBwLWNvZC1mb3JtLXN0ZXAtdHdvIChjaGFuZ2VTdGVwRXZlbnQpPVwiY2hhbmdlU3RlcCgkZXZlbnQpXCIgW2luaXRpYWxEYXRhXT1cImRhdGFGcm9tUHJldml1c0NvZERhdGFcIiBbaXNFZGl0Q29kXT1cImVkaXRDb2RcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtdHdvPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLXVzZXItZWRpdFwiIGhlYWRlcj1cIjMuIERhdG9zIGRlbCBhY3VkaWVudGVcIj5cbiAgICAgIDxhcHAtY29kLWZvcm0tc3RlcC10aHJlZSAgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiBbaW5pdGlhbERhdGFdPVwiZGF0YUZyb21QcmV2aXVzQ29kRGF0YVwiIFtpc0VkaXRDb2RdPVwiZWRpdENvZFwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC10aHJlZT5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS1tb25leS1iaWxsXCIgaGVhZGVyPVwiNC4gVmFsb3Jlc1wiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLWZvdXIgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiAoZmluYW5jaW5nRGF0YSk9XCJzYXZlRmluYW5jaW5nRGF0YSgkZXZlbnQpXCIgW2luaXRpYWxEYXRhXT1cImRhdGFGcm9tUHJldml1c0NvZERhdGFcIiBbaXNFZGl0Q29kXT1cImVkaXRDb2RcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtZm91cj5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS1leWVcIiBoZWFkZXI9XCI1LiBPYnNlcnZhY2lvbmVzXCI+XG4gICAgICA8YXBwLWNvZC1mb3JtLXN0ZXAtZml2ZSAoY2hhbmdlU3RlcEV2ZW50KT1cImNoYW5nZVN0ZXAoJGV2ZW50KVwiIFt1c2VyUm9sZV09XCJ1c2VyUm9sZVwiIFtpbml0aWFsRGF0YV09XCJkYXRhRnJvbVByZXZpdXNDb2REYXRhXCIgKGFjdGlvbik9XCJnZXRGb3JtQWN0aW9uKCRldmVudClcIiBbaXNFZGl0Q29kXT1cImVkaXRDb2RcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtZml2ZT5cbiAgICA8L3AtdGFiUGFuZWw+XG4gIDwvcC10YWJWaWV3PlxuXG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNVbmF1dGhvcml6ZWQ+XG4gIDxzcGFuIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZvbnQtYm9sZCBwLTIgYmcteWVsbG93LTIwMCBib3JkZXItcm91bmQtbGcgdy1mdWxsXCI+XG4gICAgTm8gdGllbmVzIGxvcyBwZXJtaXNvcyBwYXJhIGFjY2VkZXIgYSBlc3RhIGZ1bmNpb25hbGlkYWQsIGNvbXVuw61jYXRlIGNvbiBlbCBkZXNhcnJvbGxhZG9yLlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG5cbjxpcHQtbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2lzRGlhbG9nXT1cInRydWVcIiBbbWVzc2FnZV09XCJsb2FkZXJNZXNzYWdlXCI+PC9pcHQtbG9hZGVyPlxuIl19
|
|
@@ -71,6 +71,7 @@ export class CodFormStepOneComponent extends CodFormSteps {
|
|
|
71
71
|
}
|
|
72
72
|
processData(data) {
|
|
73
73
|
const { codFormStepOne } = this;
|
|
74
|
+
console.log(data);
|
|
74
75
|
this.getAgreementByPlan(data.course_type?.academic_plan.code);
|
|
75
76
|
this.getCourseType(data.course_type?.academic_plan.code);
|
|
76
77
|
codFormStepOne.controls['english_level'].setValue(data.english_level?.code);
|
|
@@ -271,7 +272,7 @@ export class CodFormStepOneComponent extends CodFormSteps {
|
|
|
271
272
|
}
|
|
272
273
|
}
|
|
273
274
|
CodFormStepOneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepOneComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ParameterService }, { token: i3.CopiesService }, { token: i4.BaseService }, { token: i5.CourseService }, { token: i6.CommunicatorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
-
CodFormStepOneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormStepOneComponent, selector: "app-cod-form-step-one", inputs: { initialData: "initialData", dataPreviusCodData: "dataPreviusCodData", isEditCod: "isEditCod" }, outputs: { changeStepEvent: "changeStepEvent" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"codFormStepOne\" class=\"grid\">\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['academic_plan'].value\"\n [selectCode]=\"codFormStepOne.controls['academic_plan'].value === null? 'Plan': codFormStepOne.controls['academic_plan'].value\"\n [defaultText]=\"'Plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAcademicPlan($event)\"\n [data]=\"plans\"\n [control]=\"codFormStepOne.controls['academic_plan']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['course_type'].value\"\n [selectCode]=\"codFormStepOne.controls['course_type'].value === null? 'Tipo de plan': codFormStepOne.controls['course_type'].value\"\n [defaultText]=\"'Tipo de plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectCoursesTypesByPlan($event)\"\n [data]=\"course_type\"\n [control]=\"codFormStepOne.controls['course_type']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['agreement_by_category'].value\"\n [selectCode]=\"codFormStepOne.controls['agreement_by_category'].value === null? 'Convenio por categoria': codFormStepOne.controls['agreement_by_category'].value\"\n [defaultText]=\"'Convenio por categoria'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAgreementByCategory($event)\"\n [data]=\"agreements\"\n [control]=\"codFormStepOne.controls['agreement_by_category']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['english_level'].value\"\n [selectCode]=\"codFormStepOne.controls['english_level'].value === null? 'Nivel de ingl\u00E9s': codFormStepOne.controls['english_level'].value\"\n [defaultText]=\"'Nivel de ingl\u00E9s'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectLevel($event)\"\n [data]=\"levels\"\n [control]=\"codFormStepOne.controls['english_level']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['availible_courses'].value\"\n [selectCode]=\"codFormStepOne.controls['availible_courses'].value === null? 'Grupos disponibles': codFormStepOne.controls['availible_courses'].value\"\n [defaultText]=\"'Grupos disponibles'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAvailibleCourses($event)\"\n [data]=\"availibleCourses\"\n [control]=\"codFormStepOne.controls['availible_courses']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <span *ngIf=\"!hasAvailableCourse\" class=\"mt-1 pl-2 text-red-500\">Todav\u00EDa no hay cursos con estas caracter\u00EDsticas.</span>\n</form>\n\n<div class=\"flex mt-2 align-items-center gap-3\">\n <span *ngIf=\"codFormStepOne.invalid && codFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">Faltan campos por llenar.</span>\n <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n", styles: [".yellow-300{background-color:var(--yellow-500)!important;color:#fff}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }] });
|
|
275
|
+
CodFormStepOneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormStepOneComponent, selector: "app-cod-form-step-one", inputs: { initialData: "initialData", dataPreviusCodData: "dataPreviusCodData", isEditCod: "isEditCod", CourseSelectRenovation: "CourseSelectRenovation" }, outputs: { changeStepEvent: "changeStepEvent" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"codFormStepOne\" class=\"grid\">\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['academic_plan'].value\"\n [selectCode]=\"codFormStepOne.controls['academic_plan'].value === null? 'Plan': codFormStepOne.controls['academic_plan'].value\"\n [defaultText]=\"'Plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAcademicPlan($event)\"\n [data]=\"plans\"\n [control]=\"codFormStepOne.controls['academic_plan']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['course_type'].value\"\n [selectCode]=\"codFormStepOne.controls['course_type'].value === null? 'Tipo de plan': codFormStepOne.controls['course_type'].value\"\n [defaultText]=\"'Tipo de plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectCoursesTypesByPlan($event)\"\n [data]=\"course_type\"\n [control]=\"codFormStepOne.controls['course_type']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['agreement_by_category'].value\"\n [selectCode]=\"codFormStepOne.controls['agreement_by_category'].value === null? 'Convenio por categoria': codFormStepOne.controls['agreement_by_category'].value\"\n [defaultText]=\"'Convenio por categoria'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAgreementByCategory($event)\"\n [data]=\"agreements\"\n [control]=\"codFormStepOne.controls['agreement_by_category']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['english_level'].value\"\n [selectCode]=\"codFormStepOne.controls['english_level'].value === null? 'Nivel de ingl\u00E9s': codFormStepOne.controls['english_level'].value\"\n [defaultText]=\"'Nivel de ingl\u00E9s'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectLevel($event)\"\n [data]=\"levels\"\n [control]=\"codFormStepOne.controls['english_level']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['availible_courses'].value\"\n [selectCode]=\"codFormStepOne.controls['availible_courses'].value === null? 'Grupos disponibles': codFormStepOne.controls['availible_courses'].value\"\n [defaultText]=\"'Grupos disponibles'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAvailibleCourses($event)\"\n [data]=\"availibleCourses\"\n [control]=\"codFormStepOne.controls['availible_courses']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <span *ngIf=\"!hasAvailableCourse\" class=\"mt-1 pl-2 text-red-500\">Todav\u00EDa no hay cursos con estas caracter\u00EDsticas.</span>\n</form>\n\n<div class=\"flex mt-2 align-items-center gap-3\">\n <span *ngIf=\"codFormStepOne.invalid && codFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">Faltan campos por llenar.</span>\n <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n", styles: [".yellow-300{background-color:var(--yellow-500)!important;color:#fff}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }] });
|
|
275
276
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepOneComponent, decorators: [{
|
|
276
277
|
type: Component,
|
|
277
278
|
args: [{ selector: 'app-cod-form-step-one', template: "<form [formGroup]=\"codFormStepOne\" class=\"grid\">\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['academic_plan'].value\"\n [selectCode]=\"codFormStepOne.controls['academic_plan'].value === null? 'Plan': codFormStepOne.controls['academic_plan'].value\"\n [defaultText]=\"'Plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAcademicPlan($event)\"\n [data]=\"plans\"\n [control]=\"codFormStepOne.controls['academic_plan']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['course_type'].value\"\n [selectCode]=\"codFormStepOne.controls['course_type'].value === null? 'Tipo de plan': codFormStepOne.controls['course_type'].value\"\n [defaultText]=\"'Tipo de plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectCoursesTypesByPlan($event)\"\n [data]=\"course_type\"\n [control]=\"codFormStepOne.controls['course_type']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['agreement_by_category'].value\"\n [selectCode]=\"codFormStepOne.controls['agreement_by_category'].value === null? 'Convenio por categoria': codFormStepOne.controls['agreement_by_category'].value\"\n [defaultText]=\"'Convenio por categoria'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAgreementByCategory($event)\"\n [data]=\"agreements\"\n [control]=\"codFormStepOne.controls['agreement_by_category']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['english_level'].value\"\n [selectCode]=\"codFormStepOne.controls['english_level'].value === null? 'Nivel de ingl\u00E9s': codFormStepOne.controls['english_level'].value\"\n [defaultText]=\"'Nivel de ingl\u00E9s'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectLevel($event)\"\n [data]=\"levels\"\n [control]=\"codFormStepOne.controls['english_level']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['availible_courses'].value\"\n [selectCode]=\"codFormStepOne.controls['availible_courses'].value === null? 'Grupos disponibles': codFormStepOne.controls['availible_courses'].value\"\n [defaultText]=\"'Grupos disponibles'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAvailibleCourses($event)\"\n [data]=\"availibleCourses\"\n [control]=\"codFormStepOne.controls['availible_courses']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <span *ngIf=\"!hasAvailableCourse\" class=\"mt-1 pl-2 text-red-500\">Todav\u00EDa no hay cursos con estas caracter\u00EDsticas.</span>\n</form>\n\n<div class=\"flex mt-2 align-items-center gap-3\">\n <span *ngIf=\"codFormStepOne.invalid && codFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">Faltan campos por llenar.</span>\n <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n", styles: [".yellow-300{background-color:var(--yellow-500)!important;color:#fff}\n"] }]
|
|
@@ -281,7 +282,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
|
|
|
281
282
|
type: Input
|
|
282
283
|
}], isEditCod: [{
|
|
283
284
|
type: Input
|
|
285
|
+
}], CourseSelectRenovation: [{
|
|
286
|
+
type: Input
|
|
284
287
|
}], changeStepEvent: [{
|
|
285
288
|
type: Output
|
|
286
289
|
}] } });
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9zdGVwcy9jb2QtZm9ybS1zdGVwLW9uZS9jb2QtZm9ybS1zdGVwLW9uZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtb25lL2NvZC1mb3JtLXN0ZXAtb25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQVE5RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsWUFBWTtJQXFCdkQsWUFDVSxFQUFlLEVBQ2YsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxLQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQVJBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUF2QnhCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUs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QyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQy9ELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUV6QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQzs7b0hBMVNVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLG9RQ2hCcEMsOHhHQWdFQTsyRkRoRGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHVCQUF1QjtxUkFNeEIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgR2V0QXZhaWxpYmxlQ291cnNlc1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvY291cnNlL2NvdXJzZS1ycS5tb2RlbCc7XG5pbXBvcnQgeyBDb3BpZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb3BpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb3Vyc2Utc2VydmljZS9jb3Vyc2Utc2VydmljZS5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IENvZEZvcm1TdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLWZvcm0tc3RlcHMnO1xuaW1wb3J0IHsgQ29tbXVuaWNhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvbW11bmljYXRvci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1mb3JtLXN0ZXAtb25lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtb25lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29kLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RGb3JtU3RlcE9uZUNvbXBvbmVudCBleHRlbmRzIENvZEZvcm1TdGVwcyBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgaW5pdGlhbERhdGE/OiBhbnk7XG4gIEBJbnB1dCgpIGRhdGFQcmV2aXVzQ29kRGF0YT86IGFueTtcbiAgQElucHV0KCkgaXNFZGl0Q29kPzogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGNoYW5nZVN0ZXBFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGNvcGllczogYW55O1xuICBjb2RGb3JtU3RlcE9uZSE6IEZvcm1Hcm91cDtcbiAgaGFzQXZhaWxhYmxlQ291cnNlITogYm9vbGVhbjtcblxuICAvLyBQYXJhbWV0ZXJzXG4gIGFncmVlbWVudHM6IGFueTtcbiAgYXZhaWxpYmxlQ291cnNlczogYW55W10gPSBbXTtcbiAgY291cnNlX3R5cGU6IGFueTtcbiAgbGV2ZWxzOiBhbnk7XG4gIHBsYW5zOiBhbnk7XG4gIGlzRGlzYWJsZWRTZWw6Ym9vbGVhbj1mYWxzZVxuICAvLyBDb250cm9scyBkZWwgZm9ybXVsYXJpb1xuICBjb250cm9scyA9IG5ldyBDb2RGb3JtQ29udHJvbHMoKS5jb250cm9sc1swXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHBhcmFtZXRlclNlcnZpY2U6IFBhcmFtZXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb3BpZXNTZXJ2aWNlOiBDb3BpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY291cnNlU2VydmljZTogQ291cnNlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRvclNlcnZpY2U6IENvbW11bmljYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNvcGllcyA9IHRoaXMuY29waWVzU2VydmljZS5jb3BpZXM7XG4gIH1cblxuICAvKiBFcyBuZWNlc2FyaW8gcmVjb3JyZXIgZWwgYXJyYXkgZGUgY29udHJvbHMgZGUgbnVlc3RybyBmb3JtdWxhcmlvIHBhcmE6XG4gICAg4pyFIExlZXIgZWwgTG9jYWwgU3RvcmFnZSB5IHNldGVhciBsb3MgdmFsb3Jlc1xuICAgIOKchSBTdWJzY3JpYmlyc2UgYSBsb3MgY2FtYmlvcyBkZWwgZm9ybXVsYXJpbyBwYXJhIHNldGVhciB2YWxvcmVzIG51ZXZvc1xuXG4gICAgTm90YTogbGEgY2xhc2UgQ29kRm9ybVN0ZXBzKCkgc2UgZW5jYXJnYSBkZSB0b2RhIGxhIGzDs2dpY2EgZGUgTFMgY29uIGxvcyBwYXNvcyBkZWwgZm9ybXVsYXJpbyBkZWwgQ09EXG4gICovXG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXG4gICAgdGhpcy5nZXRQYXJhbWV0ZXJzKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgIHRoaXMuc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCk7XG4gICAgdGhpcy5zZXRWYWx1ZXNCeUxvY2FsU3RvcmFnZSgpXG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS52YWx1ZUNoYW5nZXNcbiAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMuY29tbXVuaWNhdG9yU2VydmljZS5zZXRDdXJyZW50Q291cnNlVHlwZSh2YWx1ZSkpO1xuXG4gICAgdGhpcy5jb21tdW5pY2F0b3JTZXJ2aWNlLnNldEN1cnJlbnRBZ3JlZW1lbnQodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpISk7XG5cbiAgICBpZiAoY2hhbmdlc1snaW5pdGlhbERhdGEnXSAmJiB0aGlzLmluaXRpYWxEYXRhICE9IG51bGwpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0RhdGEodGhpcy5pbml0aWFsRGF0YSk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ2RhdGFQcmV2aXVzQ29kRGF0YSddICYmIHRoaXMuZGF0YVByZXZpdXNDb2REYXRhICE9IG51bGwpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0RhdGEodGhpcy5kYXRhUHJldml1c0NvZERhdGEpO1xuXG4gICAgICBpZiAodGhpcy5pc0VkaXRDb2QgJiYgIXRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmVkaXRfY291cnNlX3BheW1lbnQpIHtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkU2VsID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZFNlbCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0Rpc2FibGVkU2VsKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZUZvcm1Db250cm9scygpO1xuICAgICAgfVxuICAgICAgLy8gRm9yemFyIGRldGVjY2nDs24gZGUgY2FtYmlvc1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gIH1cbiAgcHJpdmF0ZSBkaXNhYmxlRm9ybUNvbnRyb2xzKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS5kaXNhYmxlKCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5kaXNhYmxlKCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uZGlzYWJsZSgpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5kaXNhYmxlKCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5kaXNhYmxlKCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uZGlzYWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRGF0YShkYXRhOiBhbnkpIHtcbiAgICBjb25zdCB7IGNvZEZvcm1TdGVwT25lIH0gPSB0aGlzO1xuXG4gICAgdGhpcy5nZXRBZ3JlZW1lbnRCeVBsYW4oZGF0YS5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmdldENvdXJzZVR5cGUoZGF0YS5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKGRhdGEuZW5nbGlzaF9sZXZlbD8uY29kZSk7XG4gICAgY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKGRhdGEuYWdyZWVtZW50Py5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShkYXRhLmNvdXJzZV90eXBlPy5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKGRhdGEuY291cnNlX3R5cGU/LmFjYWRlbWljX3BsYW4uY29kZSk7XG4gICAgdGhpcy5nZXRBdmFpbGlibGVDb3Vyc2VzKCk7XG5cbiAgICBpZiAodGhpcy5pc0VkaXRDb2QpIHtcbiAgICAgIHRoaXMuc2V0RGF0YUZyb21FZGl0Q29kSGlzdG9yeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5pbml0aWFsRGF0YSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0YUZyb21Vc2VySGlzdG9yeSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldERhdGFGcm9tVXNlckhpc3RvcnkoKXtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY291cnNlX3R5cGU/LmNvZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuYWdyZWVtZW50Py5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5lbmdsaXNoX2xldmVsPy5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGE/LmNvZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV9tb2RhbGl0eSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY291cnNlX21vZGFsaXR5Py5jb2RlKTtcbiAgfVxuXG4gIHNldERhdGFGcm9tRWRpdENvZEhpc3RvcnkoKXtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5kYXRhUHJldml1c0NvZERhdGEuY291cnNlX3R5cGUuYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmNvdXJzZV90eXBlLmNvZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmFncmVlbWVudC5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUodGhpcy5kYXRhUHJldml1c0NvZERhdGEuZW5nbGlzaF9sZXZlbC5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmNvdXJzZS5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZSh0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5jb3Vyc2UuY291cnNlX21vZGFsaXR5KTtcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlcyA9IHRoaXMucmVhZEFuZFdyaXRlTFMoMSwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbY29udHJvbC5uYW1lXS5zZXRWYWx1ZShsb2NhbFN0b3JhZ2VWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbkZvcm1DaGFuZ2VzKDEsIGNvbnRyb2wubmFtZSwgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRBbGxQbGFucygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMucGxhbnMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRMZXZlbHMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmxldmVscyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBhY2FkZW1pY19wbGFuOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjb3Vyc2VfdHlwZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBlbmdsaXNoX2xldmVsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBhdmFpbGlibGVfY291cnNlczogWycnLCBbXV0sXG4gICAgICBjb3Vyc2VfbW9kYWxpdHk6IFsnJ10sXG5cbiAgICB9KTtcbiAgfVxuXG4gIHNldFZhbHVlc0J5TG9jYWxTdG9yYWdlKCkge1xuICAgIGNvbnN0IGFjYWRlbWljUGxhbiA9IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS52YWx1ZSB8fCBudWxsO1xuICAgIGlmICghYWNhZGVtaWNQbGFuKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RBY2FkZW1pY1BsYW4oYWNhZGVtaWNQbGFuKTtcblxuICAgIGNvbnN0IGFncmVlbWVudEJ5Q2F0ZWdvcnkgPSB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZSB8fCBudWxsO1xuICAgIGlmICghYWdyZWVtZW50QnlDYXRlZ29yeSkgcmV0dXJuO1xuICAgIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuXG4gICAgY29uc3QgZW5nbGlzaExldmVsID0gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnZhbHVlIHx8IG51bGw7XG4gICAgaWYgKCFlbmdsaXNoTGV2ZWwpIHJldHVybjtcbiAgICB0aGlzLmdldEF2YWlsaWJsZUNvdXJzZXMoKTtcblxuICAgIGNvbnN0IGNvdXJzZU1vZGFsaXR5ID0gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10udmFsdWUgfHwgbnVsbDtcbiAgICBpZiAoIWNvdXJzZU1vZGFsaXR5KSByZXR1cm47XG4gICAgdGhpcy5nZXRBdmFpbGlibGVDb3Vyc2VzKCk7XG4gIH1cblxuICBzZW5kRm9ybSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLm1hcmtBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcE9uZS5pbnZhbGlkKSByZXR1cm47XG5cbiAgICAvLyBNb3Zlcm5vcyBhbCBwYXNvIDJcbiAgICB0aGlzLmNoYW5nZVN0ZXBFdmVudC5lbWl0KDEpO1xuICB9XG5cbiAgcmVzZXRGb3JtKCkge1xuICAgIHRoaXMucmVzZXRMb2NhbFN0b3JhZ2UodGhpcy5jb250cm9scyk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5yZXNldCgpO1xuICB9XG5cbiAgLy8gRXZlbnRvcyBkZSBsb3Mgc2VsZWN0c1xuICBzZWxlY3RBY2FkZW1pY1BsYW4oYWNhZGVtaWNfcGxhbjogYW55KSB7XG4gICAgaWYgKGFjYWRlbWljX3BsYW4gIT09ICdQbGFuJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKGFjYWRlbWljX3BsYW4pO1xuICAgICAgLy8gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydzY2hvb2xfbmFtZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgLy8gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuZ2V0Q291cnNlVHlwZShhY2FkZW1pY19wbGFuKTtcbiAgICAgIHRoaXMuZ2V0QWdyZWVtZW50QnlQbGFuKGFjYWRlbWljX3BsYW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q291cnNlVHlwZShwbGFuOiBudW1iZXIpIHtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291cnNlc1R5cGVzQnlQbGFuKHBsYW4pLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuY291cnNlX3R5cGUgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWdyZWVtZW50QnlQbGFuKHBsYW46IG51bWJlcikge1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRBZ3JlZW1lbnRCeUNhdGVnb3J5KHBsYW4pLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuYWdyZWVtZW50cyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RDb3Vyc2VzVHlwZXNCeVBsYW4oY291cnNlc1R5cGVzOiBhbnkpIHtcbiAgICBpZiAoY291cnNlc1R5cGVzICE9PSAnVGlwbyBkZSBwbGFuJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKGNvdXJzZXNUeXBlcyk7XG4gICAgICB0aGlzLmdldEF2YWlsaWJsZUNvdXJzZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBZ3JlZW1lbnRCeUNhdGVnb3J5KGFncmVlbWVudEJ5Q2F0ZWdvcmllczogYW55KSB7XG4gICAgaWYgKGFncmVlbWVudEJ5Q2F0ZWdvcmllcyAhPT0gJ0NvbnZlbmlvIHBvciBjYXRlZ29yaWEnKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKGFncmVlbWVudEJ5Q2F0ZWdvcmllcyk7XG4gICAgICB0aGlzLmNvbW11bmljYXRvclNlcnZpY2Uuc2V0Q3VycmVudEFncmVlbWVudChhZ3JlZW1lbnRCeUNhdGVnb3JpZXMpO1xuICAgICAgdGhpcy5nZXRBdmFpbGlibGVDb3Vyc2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snc2Nob29sX25hbWUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RMZXZlbChsZXZlbHM6IGFueSkge1xuICAgIGlmIChsZXZlbHMgIT09ICdOaXZlbCBkZSBpbmdsw6lzJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUobGV2ZWxzKTtcbiAgICAgIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0QXZhaWxpYmxlQ291cnNlcyhhdmFpbGlibGVDb3Vyc2VzOiBhbnkpIHtcbiAgICBpZiAoYXZhaWxpYmxlQ291cnNlcyAhPT0gJ0dydXBvcyBkaXNwb25pYmxlcycpIHtcbiAgICAgIGxldCBjb3Vyc2VNb2QgPSB0aGlzLmF2YWlsaWJsZUNvdXJzZXMuZmluZChvYmpldG8gPT4gb2JqZXRvLmNvZGUgPT09IHBhcnNlSW50KGF2YWlsaWJsZUNvdXJzZXMsIDEwKSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZShjb3Vyc2VNb2QubW9kYWxpdHkpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZShhdmFpbGlibGVDb3Vyc2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkUmVxdWVzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnZhbHVlICE9ICcnICYmXG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZSAhPSAnJyAmJlxuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS52YWx1ZSAhPSAnJ1xuICAgICk7XG4gIH1cblxuICBnZXRBdmFpbGlibGVDb3Vyc2VzKCkge1xuICAgIHRoaXMuYXZhaWxpYmxlQ291cnNlcyA9IFtdO1xuICAgIGlmICh0aGlzLnZhbGlkUmVxdWVzdCgpKSB7XG4gICAgICBsZXQgcmVxdWVzdF9hdmFpbGlibGVDb3Vyc2VzOiBHZXRBdmFpbGlibGVDb3Vyc2VzUnEgPSB7XG4gICAgICAgIHRva2VuOiB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpLFxuICAgICAgICBlbmdsaXNoX2xldmVsOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10udmFsdWUsXG4gICAgICAgIGFncmVlbWVudDogdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWUsXG4gICAgICAgIGNvdXJzZV90eXBlOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnZhbHVlLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmdldEF2YWlsYWJsZUNvdXJzZXNCeUxldkFncmVlQ1R5cGUocmVxdWVzdF9hdmFpbGlibGVDb3Vyc2VzKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgICBsZXQgY291cnNlczogYW55W10gPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgdGhpcy5oYXNBdmFpbGFibGVDb3Vyc2UgPSB0cnVlO1xuICAgICAgICAgICAgY291cnNlcy5mb3JFYWNoKGNvdXJzZSA9PiB7XG4gICAgICAgICAgICAgIGxldCBzY2hlZHVsZVBhcnRzID0gY291cnNlLmNvdXJzZV9zY2hlZHVsZVswXS5zcGxpdChcIiBcIik7XG4gICAgICAgICAgICAgIGxldCBzdGFydFRpbWUgPSBzY2hlZHVsZVBhcnRzWzJdO1xuICAgICAgICAgICAgICB0aGlzLmF2YWlsaWJsZUNvdXJzZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgY29kZTogY291cnNlLmNvZGUsXG4gICAgICAgICAgICAgICAgbmFtZTogYEN1cnNvICR7Y291cnNlLmNvdXJzZV9tb2RhbGl0eS5uYW1lID09PSAnUHJlc2VuY2lhbCcgPyAnUHJlc2VuY2lhbCcgOiAnVmlydHVhbCd9IC0gVGVhY2hlciAke2NvdXJzZS50ZWFjaGVyfSAtICBGZWNoYSBkZSBpbmljaW86ICR7Y291cnNlLnRvX3N0YXJ0fSwgSG9yYSBkZSBpbmljaW86ICR7c3RhcnRUaW1lfSwgQ3Vwb3MgZGlzcDogJHtjb3Vyc2UuYXZhaWxhYmxlX2NhcGFjaXR5fWAsXG4gICAgICAgICAgICAgICAgbW9kYWxpdHk6IGNvdXJzZS5jb3Vyc2VfbW9kYWxpdHkuY29kZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGFzQXZhaWxhYmxlQ291cnNlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKFwiXCIpO1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZVN0ZXBGb3VyKCk7XG5cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldFZhbHVlU3RlcEZvdXIoKXtcbiAgICB0aGlzLnNldERhdGFJbkxvY2FsU3RvcmFnZSg0LCAncHJvZ3JhbV9wcmljZScsIG51bGwpO1xuICAgIHRoaXMuc2V0RGF0YUluTG9jYWxTdG9yYWdlKDQsICdxdW90YV90aW1lcycsIG51bGwpO1xuICAgIHRoaXMuc2V0RGF0YUluTG9jYWxTdG9yYWdlKDQsICd0b3RhbF9wcmljZScsIG51bGwpO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImNvZEZvcm1TdGVwT25lXCIgY2xhc3M9XCJncmlkXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnZhbHVlXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10udmFsdWUgPT09IG51bGw/ICdQbGFuJzogY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS52YWx1ZVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ1BsYW4nXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEFjYWRlbWljUGxhbigkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cInBsYW5zXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ11cIlxuICAgICAgW2Rpc2FibGVkU2VsXT1cImlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10udmFsdWVcIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10udmFsdWUgPT09IG51bGw/ICdUaXBvIGRlIHBsYW4nOiBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS52YWx1ZVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ1RpcG8gZGUgcGxhbidcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0Q291cnNlc1R5cGVzQnlQbGFuKCRldmVudClcIlxuICAgICAgW2RhdGFdPVwiY291cnNlX3R5cGVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ11cIlxuICAgICAgW2Rpc2FibGVkU2VsXT1cImlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnZhbHVlXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZSA9PT0gbnVsbD8gJ0NvbnZlbmlvIHBvciBjYXRlZ29yaWEnOiBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWVcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidDb252ZW5pbyBwb3IgY2F0ZWdvcmlhJ1wiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RBZ3JlZW1lbnRCeUNhdGVnb3J5KCRldmVudClcIlxuICAgICAgW2RhdGFdPVwiYWdyZWVtZW50c1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J11cIlxuICAgICAgW2Rpc2FibGVkU2VsXT1cImlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS52YWx1ZVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnZhbHVlID09PSBudWxsPyAnTml2ZWwgZGUgaW5nbMOpcyc6IGNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10udmFsdWVcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidOaXZlbCBkZSBpbmdsw6lzJ1wiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RMZXZlbCgkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cImxldmVsc1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddXCJcbiAgICAgIFtkaXNhYmxlZFNlbF09XCJpc0Rpc2FibGVkU2VsXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnZhbHVlXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnZhbHVlID09PSBudWxsPyAnR3J1cG9zIGRpc3BvbmlibGVzJzogY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10udmFsdWVcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidHcnVwb3MgZGlzcG9uaWJsZXMnXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEF2YWlsaWJsZUNvdXJzZXMoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJhdmFpbGlibGVDb3Vyc2VzXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddXCJcbiAgICAgIFtkaXNhYmxlZFNlbF09XCJpc0Rpc2FibGVkU2VsXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICA8L2Rpdj5cbiAgPHNwYW4gKm5nSWY9XCIhaGFzQXZhaWxhYmxlQ291cnNlXCIgY2xhc3M9XCJtdC0xIHBsLTIgdGV4dC1yZWQtNTAwXCI+VG9kYXbDrWEgbm8gaGF5IGN1cnNvcyBjb24gZXN0YXMgY2FyYWN0ZXLDrXN0aWNhcy48L3NwYW4+XG48L2Zvcm0+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IG10LTIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gIDxzcGFuICpuZ0lmPVwiY29kRm9ybVN0ZXBPbmUuaW52YWxpZCAmJiBjb2RGb3JtU3RlcE9uZS50b3VjaGVkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTEgcHktMiBiZy1yZWQtMTAwIHctZnVsbCBib3JkZXItcm91bmQteGxcIj5GYWx0YW4gY2FtcG9zIHBvciBsbGVuYXIuPC9zcGFuPlxuICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbY2xhc3NdPVwiaXNFZGl0Q29kID8gJ21sLWF1dG8geWVsbG93LTMwMCBwLWJ1dHRvbi1zbScgOiAnbWwtYXV0byBwLWJ1dHRvbi1zbSdcIiAoY2xpY2spPVwic2VuZEZvcm0oKVwiIHBCdXR0b24gbGFiZWw9XCJTaWd1aWVudGVcIiBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIj48L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9zdGVwcy9jb2QtZm9ybS1zdGVwLW9uZS9jb2QtZm9ybS1zdGVwLW9uZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtb25lL2NvZC1mb3JtLXN0ZXAtb25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQVE5RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsWUFBWTtJQXNCdkQsWUFDVSxFQUFlLEVBQ2YsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxLQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQVJBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUF2QnhCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUs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LENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7aUJBRXpCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDOztvSEEzU1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsc1RDaEJwQyw4eEdBZ0VBOzJGRGhEYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UsdUJBQXVCO3FSQU14QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgR2V0QXZhaWxpYmxlQ291cnNlc1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvY291cnNlL2NvdXJzZS1ycS5tb2RlbCc7XG5pbXBvcnQgeyBDb3BpZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb3BpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb3Vyc2Utc2VydmljZS9jb3Vyc2Utc2VydmljZS5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IENvZEZvcm1TdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLWZvcm0tc3RlcHMnO1xuaW1wb3J0IHsgQ29tbXVuaWNhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvbW11bmljYXRvci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1mb3JtLXN0ZXAtb25lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtb25lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29kLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RGb3JtU3RlcE9uZUNvbXBvbmVudCBleHRlbmRzIENvZEZvcm1TdGVwcyBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgaW5pdGlhbERhdGE/OiBhbnk7XG4gIEBJbnB1dCgpIGRhdGFQcmV2aXVzQ29kRGF0YT86IGFueTtcbiAgQElucHV0KCkgaXNFZGl0Q29kPzogYm9vbGVhbjtcbiAgQElucHV0KCkgQ291cnNlU2VsZWN0UmVub3ZhdGlvbj86YW55O1xuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29waWVzOiBhbnk7XG4gIGNvZEZvcm1TdGVwT25lITogRm9ybUdyb3VwO1xuICBoYXNBdmFpbGFibGVDb3Vyc2UhOiBib29sZWFuO1xuXG4gIC8vIFBhcmFtZXRlcnNcbiAgYWdyZWVtZW50czogYW55O1xuICBhdmFpbGlibGVDb3Vyc2VzOiBhbnlbXSA9IFtdO1xuICBjb3Vyc2VfdHlwZTogYW55O1xuICBsZXZlbHM6IGFueTtcbiAgcGxhbnM6IGFueTtcbiAgaXNEaXNhYmxlZFNlbDpib29sZWFuPWZhbHNlXG4gIC8vIENvbnRyb2xzIGRlbCBmb3JtdWxhcmlvXG4gIGNvbnRyb2xzID0gbmV3IENvZEZvcm1Db250cm9scygpLmNvbnRyb2xzWzBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcGFyYW1ldGVyU2VydmljZTogUGFyYW1ldGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNvcGllc1NlcnZpY2U6IENvcGllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb3Vyc2VTZXJ2aWNlOiBDb3Vyc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbXVuaWNhdG9yU2VydmljZTogQ29tbXVuaWNhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY29waWVzID0gdGhpcy5jb3BpZXNTZXJ2aWNlLmNvcGllcztcbiAgfVxuXG4gIC8qIEVzIG5lY2VzYXJpbyByZWNvcnJlciBlbCBhcnJheSBkZSBjb250cm9scyBkZSBudWVzdHJvIGZvcm11bGFyaW8gcGFyYTpcbiAgICDinIUgTGVlciBlbCBMb2NhbCBTdG9yYWdlIHkgc2V0ZWFyIGxvcyB2YWxvcmVzXG4gICAg4pyFIFN1YnNjcmliaXJzZSBhIGxvcyBjYW1iaW9zIGRlbCBmb3JtdWxhcmlvIHBhcmEgc2V0ZWFyIHZhbG9yZXMgbnVldm9zXG5cbiAgICBOb3RhOiBsYSBjbGFzZSBDb2RGb3JtU3RlcHMoKSBzZSBlbmNhcmdhIGRlIHRvZGEgbGEgbMOzZ2ljYSBkZSBMUyBjb24gbG9zIHBhc29zIGRlbCBmb3JtdWxhcmlvIGRlbCBDT0RcbiAgKi9cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICB0aGlzLmdldFBhcmFtZXRlcnMoKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICB0aGlzLnNldFZhbHVlc0J5TG9jYWxTdG9yYWdlKClcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnZhbHVlQ2hhbmdlc1xuICAgIC5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5jb21tdW5pY2F0b3JTZXJ2aWNlLnNldEN1cnJlbnRDb3Vyc2VUeXBlKHZhbHVlKSk7XG5cbiAgICB0aGlzLmNvbW11bmljYXRvclNlcnZpY2Uuc2V0Q3VycmVudEFncmVlbWVudCh0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JykhKTtcblxuICAgIGlmIChjaGFuZ2VzWydpbml0aWFsRGF0YSddICYmIHRoaXMuaW5pdGlhbERhdGEgIT0gbnVsbCkge1xuICAgICAgdGhpcy5wcm9jZXNzRGF0YSh0aGlzLmluaXRpYWxEYXRhKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snZGF0YVByZXZpdXNDb2REYXRhJ10gJiYgdGhpcy5kYXRhUHJldml1c0NvZERhdGEgIT0gbnVsbCkge1xuICAgICAgdGhpcy5wcm9jZXNzRGF0YSh0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YSk7XG5cbiAgICAgIGlmICh0aGlzLmlzRWRpdENvZCAmJiAhdGhpcy5kYXRhUHJldml1c0NvZERhdGEuZWRpdF9jb3Vyc2VfcGF5bWVudCkge1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWRTZWwgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkU2VsID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWRTZWwpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlRm9ybUNvbnRyb2xzKCk7XG4gICAgICB9XG4gICAgICAvLyBGb3J6YXIgZGV0ZWNjacOzbiBkZSBjYW1iaW9zXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgfVxuICBwcml2YXRlIGRpc2FibGVGb3JtQ29udHJvbHMoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLmRpc2FibGUoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLmRpc2FibGUoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5kaXNhYmxlKCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLmRpc2FibGUoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLmRpc2FibGUoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5kaXNhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NEYXRhKGRhdGE6IGFueSkge1xuICAgIGNvbnN0IHsgY29kRm9ybVN0ZXBPbmUgfSA9IHRoaXM7XG4gICAgY29uc29sZS5sb2coZGF0YSk7XG4gICAgdGhpcy5nZXRBZ3JlZW1lbnRCeVBsYW4oZGF0YS5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmdldENvdXJzZVR5cGUoZGF0YS5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKGRhdGEuZW5nbGlzaF9sZXZlbD8uY29kZSk7XG4gICAgY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKGRhdGEuYWdyZWVtZW50Py5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShkYXRhLmNvdXJzZV90eXBlPy5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKGRhdGEuY291cnNlX3R5cGU/LmFjYWRlbWljX3BsYW4uY29kZSk7XG4gICAgdGhpcy5nZXRBdmFpbGlibGVDb3Vyc2VzKCk7XG5cbiAgICBpZiAodGhpcy5pc0VkaXRDb2QpIHtcbiAgICAgIHRoaXMuc2V0RGF0YUZyb21FZGl0Q29kSGlzdG9yeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5pbml0aWFsRGF0YSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0YUZyb21Vc2VySGlzdG9yeSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldERhdGFGcm9tVXNlckhpc3RvcnkoKXtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY291cnNlX3R5cGU/LmNvZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuYWdyZWVtZW50Py5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5lbmdsaXNoX2xldmVsPy5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGE/LmNvZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV9tb2RhbGl0eSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY291cnNlX21vZGFsaXR5Py5jb2RlKTtcbiAgfVxuXG4gIHNldERhdGFGcm9tRWRpdENvZEhpc3RvcnkoKXtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5kYXRhUHJldml1c0NvZERhdGEuY291cnNlX3R5cGUuYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmNvdXJzZV90eXBlLmNvZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmFncmVlbWVudC5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUodGhpcy5kYXRhUHJldml1c0NvZERhdGEuZW5nbGlzaF9sZXZlbC5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmNvdXJzZS5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZSh0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5jb3Vyc2UuY291cnNlX21vZGFsaXR5KTtcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlcyA9IHRoaXMucmVhZEFuZFdyaXRlTFMoMSwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbY29udHJvbC5uYW1lXS5zZXRWYWx1ZShsb2NhbFN0b3JhZ2VWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbkZvcm1DaGFuZ2VzKDEsIGNvbnRyb2wubmFtZSwgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRBbGxQbGFucygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMucGxhbnMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRMZXZlbHMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmxldmVscyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBhY2FkZW1pY19wbGFuOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjb3Vyc2VfdHlwZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBlbmdsaXNoX2xldmVsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBhdmFpbGlibGVfY291cnNlczogWycnLCBbXV0sXG4gICAgICBjb3Vyc2VfbW9kYWxpdHk6IFsnJ10sXG5cbiAgICB9KTtcbiAgfVxuXG4gIHNldFZhbHVlc0J5TG9jYWxTdG9yYWdlKCkge1xuICAgIGNvbnN0IGFjYWRlbWljUGxhbiA9IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS52YWx1ZSB8fCBudWxsO1xuICAgIGlmICghYWNhZGVtaWNQbGFuKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RBY2FkZW1pY1BsYW4oYWNhZGVtaWNQbGFuKTtcblxuICAgIGNvbnN0IGFncmVlbWVudEJ5Q2F0ZWdvcnkgPSB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZSB8fCBudWxsO1xuICAgIGlmICghYWdyZWVtZW50QnlDYXRlZ29yeSkgcmV0dXJuO1xuICAgIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuXG4gICAgY29uc3QgZW5nbGlzaExldmVsID0gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnZhbHVlIHx8IG51bGw7XG4gICAgaWYgKCFlbmdsaXNoTGV2ZWwpIHJldHVybjtcbiAgICB0aGlzLmdldEF2YWlsaWJsZUNvdXJzZXMoKTtcblxuICAgIGNvbnN0IGNvdXJzZU1vZGFsaXR5ID0gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10udmFsdWUgfHwgbnVsbDtcbiAgICBpZiAoIWNvdXJzZU1vZGFsaXR5KSByZXR1cm47XG4gICAgdGhpcy5nZXRBdmFpbGlibGVDb3Vyc2VzKCk7XG4gIH1cblxuICBzZW5kRm9ybSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLm1hcmtBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcE9uZS5pbnZhbGlkKSByZXR1cm47XG5cbiAgICAvLyBNb3Zlcm5vcyBhbCBwYXNvIDJcbiAgICB0aGlzLmNoYW5nZVN0ZXBFdmVudC5lbWl0KDEpO1xuICB9XG5cbiAgcmVzZXRGb3JtKCkge1xuICAgIHRoaXMucmVzZXRMb2NhbFN0b3JhZ2UodGhpcy5jb250cm9scyk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5yZXNldCgpO1xuICB9XG5cbiAgLy8gRXZlbnRvcyBkZSBsb3Mgc2VsZWN0c1xuICBzZWxlY3RBY2FkZW1pY1BsYW4oYWNhZGVtaWNfcGxhbjogYW55KSB7XG4gICAgaWYgKGFjYWRlbWljX3BsYW4gIT09ICdQbGFuJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKGFjYWRlbWljX3BsYW4pO1xuICAgICAgLy8gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydzY2hvb2xfbmFtZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgLy8gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuZ2V0Q291cnNlVHlwZShhY2FkZW1pY19wbGFuKTtcbiAgICAgIHRoaXMuZ2V0QWdyZWVtZW50QnlQbGFuKGFjYWRlbWljX3BsYW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q291cnNlVHlwZShwbGFuOiBudW1iZXIpIHtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291cnNlc1R5cGVzQnlQbGFuKHBsYW4pLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuY291cnNlX3R5cGUgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWdyZWVtZW50QnlQbGFuKHBsYW46IG51bWJlcikge1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRBZ3JlZW1lbnRCeUNhdGVnb3J5KHBsYW4pLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuYWdyZWVtZW50cyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RDb3Vyc2VzVHlwZXNCeVBsYW4oY291cnNlc1R5cGVzOiBhbnkpIHtcbiAgICBpZiAoY291cnNlc1R5cGVzICE9PSAnVGlwbyBkZSBwbGFuJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKGNvdXJzZXNUeXBlcyk7XG4gICAgICB0aGlzLmdldEF2YWlsaWJsZUNvdXJzZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBZ3JlZW1lbnRCeUNhdGVnb3J5KGFncmVlbWVudEJ5Q2F0ZWdvcmllczogYW55KSB7XG4gICAgaWYgKGFncmVlbWVudEJ5Q2F0ZWdvcmllcyAhPT0gJ0NvbnZlbmlvIHBvciBjYXRlZ29yaWEnKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKGFncmVlbWVudEJ5Q2F0ZWdvcmllcyk7XG4gICAgICB0aGlzLmNvbW11bmljYXRvclNlcnZpY2Uuc2V0Q3VycmVudEFncmVlbWVudChhZ3JlZW1lbnRCeUNhdGVnb3JpZXMpO1xuICAgICAgdGhpcy5nZXRBdmFpbGlibGVDb3Vyc2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snc2Nob29sX25hbWUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RMZXZlbChsZXZlbHM6IGFueSkge1xuICAgIGlmIChsZXZlbHMgIT09ICdOaXZlbCBkZSBpbmdsw6lzJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUobGV2ZWxzKTtcbiAgICAgIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0QXZhaWxpYmxlQ291cnNlcyhhdmFpbGlibGVDb3Vyc2VzOiBhbnkpIHtcbiAgICBpZiAoYXZhaWxpYmxlQ291cnNlcyAhPT0gJ0dydXBvcyBkaXNwb25pYmxlcycpIHtcbiAgICAgIGxldCBjb3Vyc2VNb2QgPSB0aGlzLmF2YWlsaWJsZUNvdXJzZXMuZmluZChvYmpldG8gPT4gb2JqZXRvLmNvZGUgPT09IHBhcnNlSW50KGF2YWlsaWJsZUNvdXJzZXMsIDEwKSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZShjb3Vyc2VNb2QubW9kYWxpdHkpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZShhdmFpbGlibGVDb3Vyc2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkUmVxdWVzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnZhbHVlICE9ICcnICYmXG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZSAhPSAnJyAmJlxuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS52YWx1ZSAhPSAnJ1xuICAgICk7XG4gIH1cblxuICBnZXRBdmFpbGlibGVDb3Vyc2VzKCkge1xuICAgIHRoaXMuYXZhaWxpYmxlQ291cnNlcyA9IFtdO1xuICAgIGlmICh0aGlzLnZhbGlkUmVxdWVzdCgpKSB7XG4gICAgICBsZXQgcmVxdWVzdF9hdmFpbGlibGVDb3Vyc2VzOiBHZXRBdmFpbGlibGVDb3Vyc2VzUnEgPSB7XG4gICAgICAgIHRva2VuOiB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpLFxuICAgICAgICBlbmdsaXNoX2xldmVsOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10udmFsdWUsXG4gICAgICAgIGFncmVlbWVudDogdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWUsXG4gICAgICAgIGNvdXJzZV90eXBlOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnZhbHVlLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmdldEF2YWlsYWJsZUNvdXJzZXNCeUxldkFncmVlQ1R5cGUocmVxdWVzdF9hdmFpbGlibGVDb3Vyc2VzKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgICBsZXQgY291cnNlczogYW55W10gPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgdGhpcy5oYXNBdmFpbGFibGVDb3Vyc2UgPSB0cnVlO1xuICAgICAgICAgICAgY291cnNlcy5mb3JFYWNoKGNvdXJzZSA9PiB7XG4gICAgICAgICAgICAgIGxldCBzY2hlZHVsZVBhcnRzID0gY291cnNlLmNvdXJzZV9zY2hlZHVsZVswXS5zcGxpdChcIiBcIik7XG4gICAgICAgICAgICAgIGxldCBzdGFydFRpbWUgPSBzY2hlZHVsZVBhcnRzWzJdO1xuICAgICAgICAgICAgICB0aGlzLmF2YWlsaWJsZUNvdXJzZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgY29kZTogY291cnNlLmNvZGUsXG4gICAgICAgICAgICAgICAgbmFtZTogYEN1cnNvICR7Y291cnNlLmNvdXJzZV9tb2RhbGl0eS5uYW1lID09PSAnUHJlc2VuY2lhbCcgPyAnUHJlc2VuY2lhbCcgOiAnVmlydHVhbCd9IC0gVGVhY2hlciAke2NvdXJzZS50ZWFjaGVyfSAtICBGZWNoYSBkZSBpbmljaW86ICR7Y291cnNlLnRvX3N0YXJ0fSwgSG9yYSBkZSBpbmljaW86ICR7c3RhcnRUaW1lfSwgQ3Vwb3MgZGlzcDogJHtjb3Vyc2UuYXZhaWxhYmxlX2NhcGFjaXR5fWAsXG4gICAgICAgICAgICAgICAgbW9kYWxpdHk6IGNvdXJzZS5jb3Vyc2VfbW9kYWxpdHkuY29kZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGFzQXZhaWxhYmxlQ291cnNlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKFwiXCIpO1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZVN0ZXBGb3VyKCk7XG5cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldFZhbHVlU3RlcEZvdXIoKXtcbiAgICB0aGlzLnNldERhdGFJbkxvY2FsU3RvcmFnZSg0LCAncHJvZ3JhbV9wcmljZScsIG51bGwpO1xuICAgIHRoaXMuc2V0RGF0YUluTG9jYWxTdG9yYWdlKDQsICdxdW90YV90aW1lcycsIG51bGwpO1xuICAgIHRoaXMuc2V0RGF0YUluTG9jYWxTdG9yYWdlKDQsICd0b3RhbF9wcmljZScsIG51bGwpO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImNvZEZvcm1TdGVwT25lXCIgY2xhc3M9XCJncmlkXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnZhbHVlXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10udmFsdWUgPT09IG51bGw/ICdQbGFuJzogY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS52YWx1ZVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ1BsYW4nXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEFjYWRlbWljUGxhbigkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cInBsYW5zXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ11cIlxuICAgICAgW2Rpc2FibGVkU2VsXT1cImlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10udmFsdWVcIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10udmFsdWUgPT09IG51bGw/ICdUaXBvIGRlIHBsYW4nOiBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS52YWx1ZVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ1RpcG8gZGUgcGxhbidcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0Q291cnNlc1R5cGVzQnlQbGFuKCRldmVudClcIlxuICAgICAgW2RhdGFdPVwiY291cnNlX3R5cGVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ11cIlxuICAgICAgW2Rpc2FibGVkU2VsXT1cImlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnZhbHVlXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZSA9PT0gbnVsbD8gJ0NvbnZlbmlvIHBvciBjYXRlZ29yaWEnOiBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWVcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidDb252ZW5pbyBwb3IgY2F0ZWdvcmlhJ1wiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RBZ3JlZW1lbnRCeUNhdGVnb3J5KCRldmVudClcIlxuICAgICAgW2RhdGFdPVwiYWdyZWVtZW50c1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J11cIlxuICAgICAgW2Rpc2FibGVkU2VsXT1cImlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS52YWx1ZVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnZhbHVlID09PSBudWxsPyAnTml2ZWwgZGUgaW5nbMOpcyc6IGNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10udmFsdWVcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidOaXZlbCBkZSBpbmdsw6lzJ1wiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RMZXZlbCgkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cImxldmVsc1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddXCJcbiAgICAgIFtkaXNhYmxlZFNlbF09XCJpc0Rpc2FibGVkU2VsXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnZhbHVlXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnZhbHVlID09PSBudWxsPyAnR3J1cG9zIGRpc3BvbmlibGVzJzogY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10udmFsdWVcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidHcnVwb3MgZGlzcG9uaWJsZXMnXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEF2YWlsaWJsZUNvdXJzZXMoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJhdmFpbGlibGVDb3Vyc2VzXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddXCJcbiAgICAgIFtkaXNhYmxlZFNlbF09XCJpc0Rpc2FibGVkU2VsXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICA8L2Rpdj5cbiAgPHNwYW4gKm5nSWY9XCIhaGFzQXZhaWxhYmxlQ291cnNlXCIgY2xhc3M9XCJtdC0xIHBsLTIgdGV4dC1yZWQtNTAwXCI+VG9kYXbDrWEgbm8gaGF5IGN1cnNvcyBjb24gZXN0YXMgY2FyYWN0ZXLDrXN0aWNhcy48L3NwYW4+XG48L2Zvcm0+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IG10LTIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gIDxzcGFuICpuZ0lmPVwiY29kRm9ybVN0ZXBPbmUuaW52YWxpZCAmJiBjb2RGb3JtU3RlcE9uZS50b3VjaGVkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTEgcHktMiBiZy1yZWQtMTAwIHctZnVsbCBib3JkZXItcm91bmQteGxcIj5GYWx0YW4gY2FtcG9zIHBvciBsbGVuYXIuPC9zcGFuPlxuICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbY2xhc3NdPVwiaXNFZGl0Q29kID8gJ21sLWF1dG8geWVsbG93LTMwMCBwLWJ1dHRvbi1zbScgOiAnbWwtYXV0byBwLWJ1dHRvbi1zbSdcIiAoY2xpY2spPVwic2VuZEZvcm0oKVwiIHBCdXR0b24gbGFiZWw9XCJTaWd1aWVudGVcIiBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIj48L2J1dHRvbj5cbjwvZGl2PlxuIl19
|