iptdevs-design-system 3.1.694 → 3.1.696
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-self-managed/cod-form-self-managed/cod-self-managed.component.mjs +13 -12
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component.mjs +4 -4
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.mjs +4 -4
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component.mjs +4 -4
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.mjs +4 -4
- package/esm2020/lib/components/molecules/card-course/card-course.component.mjs +3 -3
- package/fesm2015/iptdevs-design-system.mjs +20 -20
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +20 -20
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/package.json +1 -1
package/esm2020/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.mjs
CHANGED
|
@@ -111,7 +111,7 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
|
|
|
111
111
|
}
|
|
112
112
|
showConfirm() {
|
|
113
113
|
if (!this.visible) {
|
|
114
|
-
this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life:
|
|
114
|
+
this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 5000 });
|
|
115
115
|
this.visible = true;
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -164,10 +164,10 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
CodSelfFormStepTwoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MessageService }, { token: i3.BaseService }, { token: i4.AcademicService }], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
-
CodSelfFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepTwoComponent, selector: "app-cod-self-form-step-two", inputs: { scorePlacementTest: "scorePlacementTest", codPrevious: "codPrevious" }, outputs: { completed: "completed" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto m-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n <div class=\"container-button\" *ngIf=\"!SearchData\">\n <ipt-button\n [label]=\"'Filtrar'\"\n (onClick)=\"filterAgain()\"\n [primary]=\"true\">\n </ipt-button>\n </div>\n\n <div *ngIf=\"SearchData\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"Placement test\">\n <span>Tienes un Placement Test realizado. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <span>\"NO APLICA PLACEMENT TEST PARA PLANES TECNICOS\"</span>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas iniciar en este nivel {{ scorePlacementTest?.level_inglish_next.name }}?</h3>\n\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest == null\" header=\"Prueba diagn\u00F3stico Placement Test\">\n <span>Presenta totalmente gratis esta prueba para conocer tu nivel de ingl\u00E9s y nuestras ofertas para ti.</span>\n <div class=\"containerDay mt-3\">\n <ipt-button\n [label]=\"'Presentar Test'\"\n (onClick)=\"openTestInNewTab()\"\n [primary]=\"true\">\n </ipt-button>\n\n <div class=\"flex flex-column gap-3\">\n\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pTooltip=\"Buscar Planes\"\n tooltipPosition=\"left\"\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n\n\n <ipt-card-select-course-self-cod-managed\n *ngIf=\"courseSelect != null\"\n [courseSelect]=\"courseSelect\">\n </ipt-card-select-course-self-cod-managed>\n\n <article *ngIf=\"visibleGroupReview\" class=\"cards-container\">\n\n <ipt-card-course-self-cod-managed\n [CourseData]=\"dataCourse\"\n (codeCourse)=\"courseCode($event)\"\n [isLoading]=\"isLoading\">\n </ipt-card-course-self-cod-managed>\n </article>\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n [disabled]=\"!codSelfFormStepTwo.valid || courseSelect === null\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n </div>\n</div>\n\n\n\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}.cards-container{margin-top:10px}.container-button{width:7rem}.containerDay{justify-content:center;display:flex}.checkBox{gap:1rem}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ButtonComponent, selector: "ipt-button", inputs: ["primary", "size", "label", "buttonType", "isEnabled"], outputs: ["onClick"] }, { kind: "component", type: i7.CardCourseComponent, selector: "ipt-card-course-self-cod-managed", inputs: ["CourseData", "isLoading"], outputs: ["codeCourse"] }, { kind: "component", type: i8.CardSelectCourseComponent, selector: "ipt-card-select-course-self-cod-managed", inputs: ["courseSelect"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i12.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i12.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i13.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: i14.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] });
|
|
167
|
+
CodSelfFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepTwoComponent, selector: "app-cod-self-form-step-two", inputs: { scorePlacementTest: "scorePlacementTest", codPrevious: "codPrevious" }, outputs: { completed: "completed" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mt-4 mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n <div class=\"container-button\" *ngIf=\"!SearchData\">\n <ipt-button\n [label]=\"'Filtrar'\"\n (onClick)=\"filterAgain()\"\n [primary]=\"true\">\n </ipt-button>\n </div>\n\n <div *ngIf=\"SearchData\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"Placement test\">\n <span>Tienes un Placement Test realizado. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <span>\"NO APLICA PLACEMENT TEST PARA PLANES TECNICOS\"</span>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas iniciar en este nivel {{ scorePlacementTest?.level_inglish_next.name }}?</h3>\n\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest == null\" header=\"Prueba diagn\u00F3stico Placement Test\">\n <span>Presenta totalmente gratis esta prueba para conocer tu nivel de ingl\u00E9s y nuestras ofertas para ti.</span>\n <div class=\"containerDay mt-3\">\n <ipt-button\n [label]=\"'Presentar Test'\"\n (onClick)=\"openTestInNewTab()\"\n [primary]=\"true\">\n </ipt-button>\n\n <div class=\"flex flex-column gap-3\">\n\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pTooltip=\"Buscar Planes\"\n tooltipPosition=\"left\"\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n\n\n <ipt-card-select-course-self-cod-managed\n *ngIf=\"courseSelect != null\"\n [courseSelect]=\"courseSelect\">\n </ipt-card-select-course-self-cod-managed>\n\n <article *ngIf=\"visibleGroupReview\" class=\"cards-container\">\n\n <ipt-card-course-self-cod-managed\n [CourseData]=\"dataCourse\"\n (codeCourse)=\"courseCode($event)\"\n [isLoading]=\"isLoading\">\n </ipt-card-course-self-cod-managed>\n </article>\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n [disabled]=\"!codSelfFormStepTwo.valid || courseSelect === null\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n </div>\n</div>\n\n\n\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}.cards-container{margin-top:10px}.container-button{width:7rem}.containerDay{justify-content:center;display:flex}.checkBox{gap:1rem}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ButtonComponent, selector: "ipt-button", inputs: ["primary", "size", "label", "buttonType", "isEnabled"], outputs: ["onClick"] }, { kind: "component", type: i7.CardCourseComponent, selector: "ipt-card-course-self-cod-managed", inputs: ["CourseData", "isLoading"], outputs: ["codeCourse"] }, { kind: "component", type: i8.CardSelectCourseComponent, selector: "ipt-card-select-course-self-cod-managed", inputs: ["courseSelect"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i12.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i12.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i13.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: i14.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] });
|
|
168
168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, decorators: [{
|
|
169
169
|
type: Component,
|
|
170
|
-
args: [{ selector: 'app-cod-self-form-step-two', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto
|
|
170
|
+
args: [{ selector: 'app-cod-self-form-step-two', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mt-4 mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n <div class=\"container-button\" *ngIf=\"!SearchData\">\n <ipt-button\n [label]=\"'Filtrar'\"\n (onClick)=\"filterAgain()\"\n [primary]=\"true\">\n </ipt-button>\n </div>\n\n <div *ngIf=\"SearchData\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"Placement test\">\n <span>Tienes un Placement Test realizado. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <span>\"NO APLICA PLACEMENT TEST PARA PLANES TECNICOS\"</span>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas iniciar en este nivel {{ scorePlacementTest?.level_inglish_next.name }}?</h3>\n\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest == null\" header=\"Prueba diagn\u00F3stico Placement Test\">\n <span>Presenta totalmente gratis esta prueba para conocer tu nivel de ingl\u00E9s y nuestras ofertas para ti.</span>\n <div class=\"containerDay mt-3\">\n <ipt-button\n [label]=\"'Presentar Test'\"\n (onClick)=\"openTestInNewTab()\"\n [primary]=\"true\">\n </ipt-button>\n\n <div class=\"flex flex-column gap-3\">\n\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pTooltip=\"Buscar Planes\"\n tooltipPosition=\"left\"\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n\n\n <ipt-card-select-course-self-cod-managed\n *ngIf=\"courseSelect != null\"\n [courseSelect]=\"courseSelect\">\n </ipt-card-select-course-self-cod-managed>\n\n <article *ngIf=\"visibleGroupReview\" class=\"cards-container\">\n\n <ipt-card-course-self-cod-managed\n [CourseData]=\"dataCourse\"\n (codeCourse)=\"courseCode($event)\"\n [isLoading]=\"isLoading\">\n </ipt-card-course-self-cod-managed>\n </article>\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n [disabled]=\"!codSelfFormStepTwo.valid || courseSelect === null\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n </div>\n</div>\n\n\n\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}.cards-container{margin-top:10px}.container-button{width:7rem}.containerDay{justify-content:center;display:flex}.checkBox{gap:1rem}\n"] }]
|
|
171
171
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.MessageService }, { type: i3.BaseService }, { type: i4.AcademicService }]; }, propDecorators: { completed: [{
|
|
172
172
|
type: Output
|
|
173
173
|
}], scorePlacementTest: [{
|
|
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
|
|
|
175
175
|
}], codPrevious: [{
|
|
176
176
|
type: Input
|
|
177
177
|
}] } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFLcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBYWhHLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxtQkFBbUI7SUFzQ2xFLFlBQ1UsRUFBZSxFQUNmLGNBQThCLEVBQzlCLFdBQXdCLEVBQ3hCLGVBQWdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBTEEsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF4Q2hDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS2pELGFBQVEsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR3BELFlBQU8s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USxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlGLHlHQUF5RztRQUN6RyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRSxDQUFDOzt3SEF4S1UsMkJBQTJCOzRHQUEzQiwyQkFBMkIsZ05DcEJ4Qyx5dk9BcUtBOzJGRGpKYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsNEJBQTRCO3VMQU01QixTQUFTO3NCQUFsQixNQUFNO2dCQUVFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy9pbXBvcnQgc2VydmljZXNcbmltcG9ydCB7IEFjYWRlbWljU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2FkZW1pYy1zZXJ2aWNlL2FjYWRlbWljLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZFN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcblxuLy9pbXBvcnQgUHJpbWUgbmdcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG4vL2ltcG9ydCBNb2RlbHNcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvYWNhZGVtaWMvYWNhZGVtaWMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC10d28nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBUd29Db21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAT3V0cHV0KCkgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQElucHV0KCkgc2NvcmVQbGFjZW1lbnRUZXN0Pzphbnk7XG4gIEBJbnB1dCgpIGNvZFByZXZpb3VzPzphbnk7XG5cbiAgY29udHJvbHMgPSBuZXcgQ29kU2VsZk1hbmFnZWRDb250cm9scygpLmNvbnRyb2xzWzFdO1xuICBjb2RTZWxmRm9ybVN0ZXBUd28hOiBGb3JtR3JvdXA7XG4gIHN0YXJ0RGF0ZTEhOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbWVzc2FnZUluZm86c3RyaW5nID0gJ0J1c2NhIHVuIHBsYW4gZGUgYWN1ZXJkbyBhIHR1IGRpc3BvbmliaWxpZGFkLic7XG4gIHN0YXRlT3B0aW9uc01vZGFsaXR5OiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6IDEsIGtleTogJ3ByJywgIG5hbWU6ICdQcmVzZW5jaWFsJ30sXG4gICAgeyBjb2RlOiAyLCBrZXk6ICd2aScsIG5hbWU6ICdWaXJ0dWFsJ30sXG4gIF07XG4gIHNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtcbiAgICB7Y29kZTogMSwgbmFtZTogJ01hw7FhbmEnLCBrZXk6ICdtYScgfSxcbiAgICB7Y29kZTogMiwgbmFtZTogJ1RhcmRlJywga2V5OiAndGEnIH0sXG4gICAge2NvZGU6IDMsIG5hbWU6ICdOb2NoZScsIGtleTogJ25vJyB9LFxuICBdO1xuICBPcHRpb25QbGFjZW1lbnRUZXN0OiBhbnlbXT1bXG4gICAge2NvZGU6IDEsIGtleTogJ3NpJywgIG5hbWU6ICdTaSd9LFxuICAgIHtjb2RlOiAyLCBrZXk6ICduaScsICBuYW1lOiAnTm8nfSxcbiAgXTtcbiAgc2VsZWN0ZWRTY2hlZHVsZXM6IEl3ZWVrRGF5c1JxW10gPSBbXTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RhbGl0eTogSXdlZWtEYXlzUnFbXT1bXVxuICBzZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3Q6IEl3ZWVrRGF5c1JxW109W107XG4gIG1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRNb2RhbGl0eSA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRQbGFjZW1lbnRUZXN0ID0gZmFsc2U7XG4gIFNlYXJjaERhdGEgPSB0cnVlO1xuICBkYXRhQ291cnNlOiBhbnlbXSA9IFtdO1xuICBpc0xvYWRpbmcgPSB0cnVlO1xuICBjb3Vyc2VTZWxlY3Q/OiBhbnk7XG4gIHZpc2libGVHcm91cFJldmlldyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNhZGVtaWNTZXJ2aWNlOiBBY2FkZW1pY1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIHRoaXMuaXNMb2FkaW5nPXRydWU7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcblxuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBhY2FkZW1pY19wbGFuOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjb3Vyc2VfdHlwZTpbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBlbmdsaXNoX2xldmVsOiBbe3ZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWV9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwKV1dLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV9tb2RhbGl0eTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXSxcblxuICAgIH0pO1xuICB9XG5cbiAgYmFjaygpIHtcbiAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KDApO1xuICB9XG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMik7XG4gIH1cblxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDIsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoMiwgY29udHJvbC5uYW1lLCB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBzZWFyY2hBdmFsYWlibGVDb3Vyc2UoKXtcbiAgICB0aGlzLmlzTG9hZGluZz10cnVlO1xuICAgIGNvbnN0IGFnZSA9IE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdlJykpXG4gICAgY29uc3QgZ3JhZGUgPSBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2dyYWRlJykpXG4gICAgY29uc3QgYWdyZWVtZW50ID0gTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSlcbiAgICBjb25zdCB1c2VyQ29kZSA9IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlckNvZGUoKTtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IGFueSA9IHtcbiAgICAgIGNvZGVfdXNlcjogdXNlckNvZGUsXG4gICAgICBjb2RQcmV2aW91czogdGhpcy5jb2RQcmV2aW91cyxcbiAgICAgIHNjb3JlUGxhY2VtZW50VGVzdDogdGhpcy5zY29yZVBsYWNlbWVudFRlc3QsXG4gICAgICBhZ2U6IGFnZSxcbiAgICAgIGdyYWRlOiBncmFkZSxcbiAgICAgIGFncmVlbWVudDogYWdyZWVtZW50LFxuICAgICAgbW9kYWxpdHk6IHRoaXMuc2VsZWN0ZWRNb2RhbGl0eSxcbiAgICAgIHNjaGVkdWxlczogdGhpcy5zZWxlY3RlZFNjaGVkdWxlcyxcbiAgICAgIGRlY2l0aW9uUGxhY2VtZW50VGVzdDogdGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QsXG4gICAgICB0b2tlbjogdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKVxuXG4gICAgfVxuICAgIHRoaXMuYWNhZGVtaWNTZXJ2aWNlLm9idGFpblBsYW5zQ291cnNlQXZhbGFpYmxlRm9yUG9zaWJsZVN0dWRlbnRCeUFnZUFuZEdyYWRlKHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpPT57XG4gICAgICB0aGlzLlNlYXJjaERhdGEgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGF0YUNvdXJzZSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy52aXNpYmxlR3JvdXBSZXZpZXcgPSB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDEwMDAwIH0pO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFNjaGVkdWxlcyhldmU6IEl3ZWVrRGF5c1JxW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzID0gZXZlXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgc2VsZWN0TW9kYWxpdHkoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxpdHkgPSBldmVcbiAgICBpZiAodGhpcy5zZWxlY3RlZE1vZGFsaXR5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5tZXNzYWdlQWxlcnRNb2RhbGl0eSA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gZmFsc2VcbiAgICB9XG4gIH1cbiAgc2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdCA9IGV2ZVxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGZpbHRlckFnYWluKCl7XG4gICAgdGhpcy5TZWFyY2hEYXRhID0gdHJ1ZVxuICB9XG5cbiAgY291cnNlQ29kZShjb2RlQ291cnNlOiBhbnkpe1xuICAgIHRoaXMuY291cnNlU2VsZWN0ID0gY29kZUNvdXJzZTtcbiAgICB0aGlzLnZpc2libGVHcm91cFJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMuU2VhcmNoRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMuc2V0VmFsdWVzRm9ybSgpO1xuICB9XG5cbiAgc2V0VmFsdWVzRm9ybSgpe1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX3R5cGUuYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb3Vyc2VfdHlwZT8uY29kZSk7XG4gICAgLy8gdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0LmFncmVlbWVudD8uY29kZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5lbmdsaXNoX2xldmVsPy5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5LmNvZGUpO1xuICB9XG5cbiAgb3BlblRlc3RJbk5ld1RhYigpOiB2b2lkIHtcbiAgICB3aW5kb3cub3BlbignaHR0cHM6Ly90ZXN0LmluZ2xlc3BhcmF0b2Rvcy5lZHUuY28vJywgJ19ibGFuaycpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mb3JtXCI+XG4gICAgPGgyPlBsYW5lczwvaDI+XG4gICAgICA8cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIiBrZXk9XCJjb25maXJtXCIgKG9uQ2xvc2UpPVwib25SZWplY3QoKVwiIFtiYXNlWkluZGV4XT1cIjEwXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZmxleDogMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvcmVhZGluZy5wbmdcIiBzdHlsZT1cIndpZHRoOiA2NXB4O1wiIHNoYXBlPVwiY2lyY2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC05MDBcIj5KYWNvYjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1sZyBteS0zIHRleHQtOTAwXCI+e3sgbWVzc2FnZUluZm8gfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cblxuICAgIDxpIGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtLTRcIiAoY2xpY2spPVwic2hvd0NvbmZpcm0oKVwiIHBUb29sdGlwPVwiTWFzIGluZm8uXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+PC9pPlxuICAgICAgPGRpdiBjbGFzcz1cImFuaW1hdGVfX2FuaW1hdGVkIGFuaW1hdGVfX3NsaWRlSW5SaWdodCBuZy1zdGFyLWluc2VydGVkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItYnV0dG9uXCIgKm5nSWY9XCIhU2VhcmNoRGF0YVwiPlxuICAgICAgICAgIDxpcHQtYnV0dG9uXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ0ZpbHRyYXInXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImZpbHRlckFnYWluKClcIlxuICAgICAgICAgICAgW3ByaW1hcnldPVwidHJ1ZVwiPlxuICAgICAgICAgIDwvaXB0LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIlNlYXJjaERhdGFcIj5cbiAgICAgICAgICA8cC1hY2NvcmRpb24gW211bHRpcGxlXT1cInRydWVcIiBbYWN0aXZlSW5kZXhdPVwiWzBdXCI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgaGVhZGVyPVwiSm9ybmFkYVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5XCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja0JveCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTMgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc2NoZWR1bGVzOyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3VwMlwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRheVdcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTY2hlZHVsZXNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RTY2hlZHVsZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VBbGVydFNjaGVkdWxlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1bmEgb3BjaW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuICAgICAgICAgICAgPHAtYWNjb3JkaW9uVGFiIGhlYWRlcj1cIk1vZGFsaWRhZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5XCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja0JveCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTMgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc3RhdGVPcHRpb25zTW9kYWxpdHk7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ3JvdXAyXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE1vZGFsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJkYXlXLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94SWNvbj1cInBpIHBpLWNoZWNrLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VBbGVydE1vZGFsaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBzZWxlY2Npb25hIHVuYSBvcGNpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nSWY9XCJzY29yZVBsYWNlbWVudFRlc3QgIT0gbnVsbFwiIGhlYWRlcj1cIlBsYWNlbWVudCB0ZXN0XCI+XG4gICAgICAgICAgICAgIDxzcGFuPlRpZW5lcyB1biBQbGFjZW1lbnQgVGVzdCByZWFsaXphZG8uIFB1ZWRlcyBjb21lbnphciBjb24gZWwgbml2ZWw8L3NwYW4+PGgzPnt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgICA8c3Bhbj5cIk5PIEFQTElDQSBQTEFDRU1FTlQgVEVTVCBQQVJBIFBMQU5FUyBURUNOSUNPU1wiPC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aDM+wr9EZXNlYXMgaW5pY2lhciBlbiBlc3RlIG5pdmVsIHt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX0/PC9oMz5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIE9wdGlvblBsYWNlbWVudFRlc3Q7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNhdGVnb3J5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxld2Vla2RheXNbaW5kXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjYXRlZ29yeS5rZXlcIiBjbGFzcz1cIm1sLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nSWY9XCJzY29yZVBsYWNlbWVudFRlc3QgPT0gbnVsbFwiIGhlYWRlcj1cIlBydWViYSBkaWFnbsOzc3RpY28gUGxhY2VtZW50IFRlc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4+UHJlc2VudGEgdG90YWxtZW50ZSBncmF0aXMgZXN0YSBwcnVlYmEgcGFyYSBjb25vY2VyIHR1IG5pdmVsIGRlIGluZ2zDqXMgeSBudWVzdHJhcyBvZmVydGFzIHBhcmEgdGkuPC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aXB0LWJ1dHRvblxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUHJlc2VudGFyIFRlc3QnXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJvcGVuVGVzdEluTmV3VGFiKClcIlxuICAgICAgICAgICAgICAgIFtwcmltYXJ5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgPC9pcHQtYnV0dG9uPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0zXCI+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG4gICAgICAgICAgPC9wLWFjY29yZGlvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgbS0yXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHBUb29sdGlwPVwiQnVzY2FyIFBsYW5lc1wiXG4gICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgIFJpcHBsZVxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLXNlYXJjaFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDAgfHwgc2VsZWN0ZWRNb2RhbGl0eS5sZW5ndGggPT09IDAgfHwgc2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGwgJiYgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQXZhbGFpYmxlQ291cnNlKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxpcHQtY2FyZC1zZWxlY3QtY291cnNlLXNlbGYtY29kLW1hbmFnZWRcbiAgICAgICAgKm5nSWY9XCJjb3Vyc2VTZWxlY3QgIT0gbnVsbFwiXG4gICAgICAgIFtjb3Vyc2VTZWxlY3RdPVwiY291cnNlU2VsZWN0XCI+XG4gICAgICAgIDwvaXB0LWNhcmQtc2VsZWN0LWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuXG4gICAgICAgIDxhcnRpY2xlICpuZ0lmPVwidmlzaWJsZUdyb3VwUmV2aWV3XCIgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIj5cblxuICAgICAgICAgIDxpcHQtY2FyZC1jb3Vyc2Utc2VsZi1jb2QtbWFuYWdlZFxuICAgICAgICAgICAgW0NvdXJzZURhdGFdPVwiZGF0YUNvdXJzZVwiXG4gICAgICAgICAgICAoY29kZUNvdXJzZSk9XCJjb3Vyc2VDb2RlKCRldmVudClcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIj5cbiAgICAgICAgICA8L2lwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgID48L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWQgfHwgY291cnNlU2VsZWN0ID09PSBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbmRGb3JtKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG5cbiJdfQ==
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFLcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBYWhHLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxtQkFBbUI7SUFzQ2xFLFlBQ1UsRUFBZSxFQUNmLGNBQThCLEVBQzlCLFdBQXdCLEVBQ3hCLGVBQWdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBTEEsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF4Q2hDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS2pELGFBQVEsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR3BELFlBQU8s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USxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlGLHlHQUF5RztRQUN6RyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRSxDQUFDOzt3SEF4S1UsMkJBQTJCOzRHQUEzQiwyQkFBMkIsZ05DcEJ4Qyx5cU9BbUtBOzJGRC9JYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsNEJBQTRCO3VMQU01QixTQUFTO3NCQUFsQixNQUFNO2dCQUVFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy9pbXBvcnQgc2VydmljZXNcbmltcG9ydCB7IEFjYWRlbWljU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2FkZW1pYy1zZXJ2aWNlL2FjYWRlbWljLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZFN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcblxuLy9pbXBvcnQgUHJpbWUgbmdcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG4vL2ltcG9ydCBNb2RlbHNcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvYWNhZGVtaWMvYWNhZGVtaWMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC10d28nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBUd29Db21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAT3V0cHV0KCkgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQElucHV0KCkgc2NvcmVQbGFjZW1lbnRUZXN0Pzphbnk7XG4gIEBJbnB1dCgpIGNvZFByZXZpb3VzPzphbnk7XG5cbiAgY29udHJvbHMgPSBuZXcgQ29kU2VsZk1hbmFnZWRDb250cm9scygpLmNvbnRyb2xzWzFdO1xuICBjb2RTZWxmRm9ybVN0ZXBUd28hOiBGb3JtR3JvdXA7XG4gIHN0YXJ0RGF0ZTEhOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbWVzc2FnZUluZm86c3RyaW5nID0gJ0J1c2NhIHVuIHBsYW4gZGUgYWN1ZXJkbyBhIHR1IGRpc3BvbmliaWxpZGFkLic7XG4gIHN0YXRlT3B0aW9uc01vZGFsaXR5OiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6IDEsIGtleTogJ3ByJywgIG5hbWU6ICdQcmVzZW5jaWFsJ30sXG4gICAgeyBjb2RlOiAyLCBrZXk6ICd2aScsIG5hbWU6ICdWaXJ0dWFsJ30sXG4gIF07XG4gIHNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtcbiAgICB7Y29kZTogMSwgbmFtZTogJ01hw7FhbmEnLCBrZXk6ICdtYScgfSxcbiAgICB7Y29kZTogMiwgbmFtZTogJ1RhcmRlJywga2V5OiAndGEnIH0sXG4gICAge2NvZGU6IDMsIG5hbWU6ICdOb2NoZScsIGtleTogJ25vJyB9LFxuICBdO1xuICBPcHRpb25QbGFjZW1lbnRUZXN0OiBhbnlbXT1bXG4gICAge2NvZGU6IDEsIGtleTogJ3NpJywgIG5hbWU6ICdTaSd9LFxuICAgIHtjb2RlOiAyLCBrZXk6ICduaScsICBuYW1lOiAnTm8nfSxcbiAgXTtcbiAgc2VsZWN0ZWRTY2hlZHVsZXM6IEl3ZWVrRGF5c1JxW10gPSBbXTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RhbGl0eTogSXdlZWtEYXlzUnFbXT1bXVxuICBzZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3Q6IEl3ZWVrRGF5c1JxW109W107XG4gIG1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRNb2RhbGl0eSA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRQbGFjZW1lbnRUZXN0ID0gZmFsc2U7XG4gIFNlYXJjaERhdGEgPSB0cnVlO1xuICBkYXRhQ291cnNlOiBhbnlbXSA9IFtdO1xuICBpc0xvYWRpbmcgPSB0cnVlO1xuICBjb3Vyc2VTZWxlY3Q/OiBhbnk7XG4gIHZpc2libGVHcm91cFJldmlldyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNhZGVtaWNTZXJ2aWNlOiBBY2FkZW1pY1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIHRoaXMuaXNMb2FkaW5nPXRydWU7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcblxuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBhY2FkZW1pY19wbGFuOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjb3Vyc2VfdHlwZTpbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBlbmdsaXNoX2xldmVsOiBbe3ZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWV9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwKV1dLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV9tb2RhbGl0eTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXSxcblxuICAgIH0pO1xuICB9XG5cbiAgYmFjaygpIHtcbiAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KDApO1xuICB9XG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMik7XG4gIH1cblxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDIsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoMiwgY29udHJvbC5uYW1lLCB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBzZWFyY2hBdmFsYWlibGVDb3Vyc2UoKXtcbiAgICB0aGlzLmlzTG9hZGluZz10cnVlO1xuICAgIGNvbnN0IGFnZSA9IE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdlJykpXG4gICAgY29uc3QgZ3JhZGUgPSBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2dyYWRlJykpXG4gICAgY29uc3QgYWdyZWVtZW50ID0gTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSlcbiAgICBjb25zdCB1c2VyQ29kZSA9IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlckNvZGUoKTtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IGFueSA9IHtcbiAgICAgIGNvZGVfdXNlcjogdXNlckNvZGUsXG4gICAgICBjb2RQcmV2aW91czogdGhpcy5jb2RQcmV2aW91cyxcbiAgICAgIHNjb3JlUGxhY2VtZW50VGVzdDogdGhpcy5zY29yZVBsYWNlbWVudFRlc3QsXG4gICAgICBhZ2U6IGFnZSxcbiAgICAgIGdyYWRlOiBncmFkZSxcbiAgICAgIGFncmVlbWVudDogYWdyZWVtZW50LFxuICAgICAgbW9kYWxpdHk6IHRoaXMuc2VsZWN0ZWRNb2RhbGl0eSxcbiAgICAgIHNjaGVkdWxlczogdGhpcy5zZWxlY3RlZFNjaGVkdWxlcyxcbiAgICAgIGRlY2l0aW9uUGxhY2VtZW50VGVzdDogdGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QsXG4gICAgICB0b2tlbjogdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKVxuXG4gICAgfVxuICAgIHRoaXMuYWNhZGVtaWNTZXJ2aWNlLm9idGFpblBsYW5zQ291cnNlQXZhbGFpYmxlRm9yUG9zaWJsZVN0dWRlbnRCeUFnZUFuZEdyYWRlKHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpPT57XG4gICAgICB0aGlzLlNlYXJjaERhdGEgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGF0YUNvdXJzZSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy52aXNpYmxlR3JvdXBSZXZpZXcgPSB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDUwMDAgfSk7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0U2NoZWR1bGVzKGV2ZTogSXdlZWtEYXlzUnFbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMgPSBldmVcbiAgICBpZiAodGhpcy5zZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0U2NoZWR1bGVzID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0U2NoZWR1bGVzID0gZmFsc2VcbiAgICB9XG4gIH1cblxuICBzZWxlY3RNb2RhbGl0eShldmU6IEl3ZWVrRGF5c1JxW10pe1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RhbGl0eSA9IGV2ZVxuICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kYWxpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0TW9kYWxpdHkgPSBmYWxzZVxuICAgIH1cbiAgfVxuICBzZWxlY3RPcGNpb25zUGxhY2VtZW50VGVzdChldmU6IEl3ZWVrRGF5c1JxW10pe1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0ID0gZXZlXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5tZXNzYWdlQWxlcnRQbGFjZW1lbnRUZXN0ID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgZmlsdGVyQWdhaW4oKXtcbiAgICB0aGlzLlNlYXJjaERhdGEgPSB0cnVlXG4gIH1cblxuICBjb3Vyc2VDb2RlKGNvZGVDb3Vyc2U6IGFueSl7XG4gICAgdGhpcy5jb3Vyc2VTZWxlY3QgPSBjb2RlQ291cnNlO1xuICAgIHRoaXMudmlzaWJsZUdyb3VwUmV2aWV3ID0gZmFsc2U7XG4gICAgdGhpcy5TZWFyY2hEYXRhID0gZmFsc2U7XG4gICAgdGhpcy5zZXRWYWx1ZXNGb3JtKCk7XG4gIH1cblxuICBzZXRWYWx1ZXNGb3JtKCl7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb3Vyc2VfdHlwZS5hY2FkZW1pY19wbGFuLmNvZGUpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0LmNvdXJzZV90eXBlPy5jb2RlKTtcbiAgICAvLyB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuYWdyZWVtZW50Py5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0LmVuZ2xpc2hfbGV2ZWw/LmNvZGUpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0LmNvZGUpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb3Vyc2VfbW9kYWxpdHkuY29kZSk7XG4gIH1cblxuICBvcGVuVGVzdEluTmV3VGFiKCk6IHZvaWQge1xuICAgIHdpbmRvdy5vcGVuKCdodHRwczovL3Rlc3QuaW5nbGVzcGFyYXRvZG9zLmVkdS5jby8nLCAnX2JsYW5rJyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItbWFpblwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZvcm1cIj5cbiAgICA8aDI+UGxhbmVzPC9oMj5cbiAgICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwidG9wLWNlbnRlclwiIGtleT1cImNvbmZpcm1cIiAob25DbG9zZSk9XCJvblJlamVjdCgpXCIgW2Jhc2VaSW5kZXhdPVwiMTBcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0XCIgc3R5bGU9XCJmbGV4OiAxXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9xYS5pcHRkZXYuY29tLmNvL2Fzc2V0cy9sb2dvcy9yZWFkaW5nLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDY1cHg7XCIgc2hhcGU9XCJjaXJjbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LTkwMFwiPkphY29iPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWxnIG15LTMgdGV4dC05MDBcIj57eyBtZXNzYWdlSW5mbyB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRvYXN0PlxuXG4gICAgPGkgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUgY3Vyc29yLXBvaW50ZXIgdy1hdXRvIG10LTQgbWItNFwiIChjbGljayk9XCJzaG93Q29uZmlybSgpXCIgcFRvb2x0aXA9XCJNYXMgaW5mby5cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj48L2k+XG4gICAgICA8ZGl2IGNsYXNzPVwiYW5pbWF0ZV9fYW5pbWF0ZWQgYW5pbWF0ZV9fc2xpZGVJblJpZ2h0IG5nLXN0YXItaW5zZXJ0ZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1idXR0b25cIiAqbmdJZj1cIiFTZWFyY2hEYXRhXCI+XG4gICAgICAgICAgPGlwdC1idXR0b25cbiAgICAgICAgICAgIFtsYWJlbF09XCInRmlsdHJhcidcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiZmlsdGVyQWdhaW4oKVwiXG4gICAgICAgICAgICBbcHJpbWFyeV09XCJ0cnVlXCI+XG4gICAgICAgICAgPC9pcHQtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiU2VhcmNoRGF0YVwiPlxuICAgICAgICAgIDxwLWFjY29yZGlvbiBbbXVsdGlwbGVdPVwidHJ1ZVwiIFthY3RpdmVJbmRleF09XCJbMF1cIj5cbiAgICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJKb3JuYWRhXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJEYXlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tCb3ggZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXlXIG9mIHNjaGVkdWxlczsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgICA8cC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJncm91cDJcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkYXlXXCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU2NoZWR1bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJkYXlXLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94SWNvbj1cInBpIHBpLWNoZWNrLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0U2NoZWR1bGVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJkYXlXLmtleVwiPnt7IGRheVcubmFtZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRTY2hlZHVsZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIHNlbGVjY2lvbmEgdW5hIG9wY2lvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cbiAgICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJNb2RhbGlkYWRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lckRheVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja0JveCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTMgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc3RhdGVPcHRpb25zTW9kYWxpdHk7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ3JvdXAyXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE1vZGFsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJkYXlXLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94SWNvbj1cInBpIHBpLWNoZWNrLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VBbGVydE1vZGFsaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBzZWxlY2Npb25hIHVuYSBvcGNpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nSWY9XCJzY29yZVBsYWNlbWVudFRlc3QgIT0gbnVsbFwiIGhlYWRlcj1cIlBsYWNlbWVudCB0ZXN0XCI+XG4gICAgICAgICAgICAgIDxzcGFuPlRpZW5lcyB1biBQbGFjZW1lbnQgVGVzdCByZWFsaXphZG8uIFB1ZWRlcyBjb21lbnphciBjb24gZWwgbml2ZWw8L3NwYW4+PGgzPnt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgICA8c3Bhbj5cIk5PIEFQTElDQSBQTEFDRU1FTlQgVEVTVCBQQVJBIFBMQU5FUyBURUNOSUNPU1wiPC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aDM+wr9EZXNlYXMgaW5pY2lhciBlbiBlc3RlIG5pdmVsIHt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX0/PC9oMz5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIE9wdGlvblBsYWNlbWVudFRlc3Q7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNhdGVnb3J5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxld2Vla2RheXNbaW5kXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjYXRlZ29yeS5rZXlcIiBjbGFzcz1cIm1sLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nSWY9XCJzY29yZVBsYWNlbWVudFRlc3QgPT0gbnVsbFwiIGhlYWRlcj1cIlBydWViYSBkaWFnbsOzc3RpY28gUGxhY2VtZW50IFRlc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4+UHJlc2VudGEgdG90YWxtZW50ZSBncmF0aXMgZXN0YSBwcnVlYmEgcGFyYSBjb25vY2VyIHR1IG5pdmVsIGRlIGluZ2zDqXMgeSBudWVzdHJhcyBvZmVydGFzIHBhcmEgdGkuPC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aXB0LWJ1dHRvblxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUHJlc2VudGFyIFRlc3QnXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJvcGVuVGVzdEluTmV3VGFiKClcIlxuICAgICAgICAgICAgICAgIFtwcmltYXJ5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgPC9pcHQtYnV0dG9uPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0zXCI+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG4gICAgICAgICAgPC9wLWFjY29yZGlvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgbS0yXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHBUb29sdGlwPVwiQnVzY2FyIFBsYW5lc1wiXG4gICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgIFJpcHBsZVxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLXNlYXJjaFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDAgfHwgc2VsZWN0ZWRNb2RhbGl0eS5sZW5ndGggPT09IDAgfHwgc2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGwgJiYgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQXZhbGFpYmxlQ291cnNlKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxpcHQtY2FyZC1zZWxlY3QtY291cnNlLXNlbGYtY29kLW1hbmFnZWRcbiAgICAgICAgKm5nSWY9XCJjb3Vyc2VTZWxlY3QgIT0gbnVsbFwiXG4gICAgICAgIFtjb3Vyc2VTZWxlY3RdPVwiY291cnNlU2VsZWN0XCI+XG4gICAgICAgIDwvaXB0LWNhcmQtc2VsZWN0LWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuXG4gICAgICAgIDxhcnRpY2xlICpuZ0lmPVwidmlzaWJsZUdyb3VwUmV2aWV3XCIgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIj5cblxuICAgICAgICAgIDxpcHQtY2FyZC1jb3Vyc2Utc2VsZi1jb2QtbWFuYWdlZFxuICAgICAgICAgICAgW0NvdXJzZURhdGFdPVwiZGF0YUNvdXJzZVwiXG4gICAgICAgICAgICAoY29kZUNvdXJzZSk9XCJjb3Vyc2VDb2RlKCRldmVudClcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIj5cbiAgICAgICAgICA8L2lwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgID48L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWQgfHwgY291cnNlU2VsZWN0ID09PSBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbmRGb3JtKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG5cbiJdfQ==
|
|
@@ -81,10 +81,10 @@ export class CardCourseComponent {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
CardCourseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CardCourseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
-
CardCourseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CardCourseComponent, selector: "ipt-card-course-self-cod-managed", inputs: { CourseData: "CourseData", isLoading: "isLoading" }, outputs: { codeCourse: "codeCourse" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isLoading\" class=\"main-container\">\n\n <!-- cards Academy -->\n <div class=\"container__span-header flex justify-content-start\" *ngIf=\"visibleAcademy || visibleKids || visibleSchools\">\n <span>Selecciona un Plan</span>\n </div>\n\n <p-panel\n *ngIf=\"visibleAcademy\"\n header=\"Plan Academy\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"academic_plan\"\n class=\"academic_plan\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Kids -->\n\n <p-panel\n *ngIf=\"visibleKids\"\n header=\"Plan Kids\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_kids\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Schools -->\n\n <p-panel\n *ngIf=\"visibleSchools\"\n header=\"Plan Schools\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_school\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <div class=\"container__span-footer flex justify-content-center\" *ngIf=\"!visibleAcademy && !visibleKids && !visibleSchools\">\n <span>No se encontraron planes</span>\n </div>\n</div>\n<div *ngIf=\"isLoading\">\n\n <p-panel\n header=\"\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"p-component panel-skeleton\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main class=\"flex flex-col\">\n <section *ngFor=\"let course of skeleton\" class=\"card1 animate__animated\" >\n <p-skeleton width=\"12rem\" height=\"2rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p class=\"card1__content_skeleton\">\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <strong><hr></strong>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n </p>\n <div class=\"card1__date__skeleton\">\n </div>\n <div class=\"card1__arrow\" >\n <p-skeleton size=\"3rem\" styleClass=\"mr-2\" ></p-skeleton>\n </div>\n </section>\n </main>\n </p-panel>\n\n</div>\n\n", styles: ["main{display:flex;gap:.7rem;flex-wrap:wrap}.card1{--border-radius: 6px;--primary-color: #1c77f7;--secondary-color: #2c2c2c;--tertiary-color: #ffffff;width:340px;font-family:Poppins,sans-serif;cursor:pointer;border-radius:var(--border-radius);background:#f1f1f3;box-shadow:0 8px 16px #00000008;position:relative;transition:.3s;border:solid .5px #e0e0e0}.type-theory{color:#00aecc}.type-club{color:#0d9d36}.msg-two-coup{color:#000!important;padding-left:7px;padding-right:7px;border-radius:5px;background-color:#4ed1e9}.msg-two-lev{color:#000!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#fb8f42}.beginner{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#94b9aa}.levelAone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#c4291c}.levelAonetwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#418ed1}.levelAtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#4fad65}.levelBone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#6824b8}.levelBtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#06161e}.levelBplus{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#cc6529}.main-container{margin-top:1%}.course-code{font-size:12px;font-weight:400;margin-left:.5rem}.card1:hover{box-shadow:#0000003d 0 3px 8px}.card1>*+*{margin-top:.7em}.card1 .card1__content{padding-left:10px;color:var(--secondary-color);font-size:.86rem;font-weight:200;z-index:1;position:relative}strong{color:var(--secondary-color);font-weight:300}:host ::ng-deep .p-panel .p-panel-header .p-panel-header-icon{color:#fff!important}.card1 .card1__title__academic{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}:host ::ng-deep #academic_plan .p-panel .p-panel-header{color:#fff!important;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}.card1 .card1__title__kids{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_kids .p-panel .p-panel-header{color:#fff!important;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__title__schools{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_school .p-panel .p-panel-header{color:#fff!important;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__date{color:#807c7c;padding-left:10px;font-size:.4rem;z-index:1;position:relative;margin-bottom:2%;margin-top:.7rem}.card1 .card1__arrow{padding-left:10px;position:absolute;padding:.1rem;border-top-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);bottom:0;right:0;transition:.2s;display:flex;justify-content:center;align-items:center;width:50px}.card1 svg{transition:.2s}.card1:hover .card1__title{color:var(--secondary-color)}.card1:hover .card1__arrow{background:rgb(170,41,170)}.card1:hover .card1__arrow svg{transform:translate(3px)}.card1:hover strong{color:#aa29aa;font-weight:400}.card1:hover .course-code{color:#aa29aa;font-weight:500}.image-container{display:flex;border-radius:6px;width:250px;height:207px;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 1px 3px 1px}:host ::ng-deep .p-menubar .p-menuitem{position:relative;width:auto}.green300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#76db9b;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.red300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#e35b53;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.gray300{height:2%;width:2%;padding-right:9px;border-radius:70%;color:#9e9a99;background-color:#9e9a99;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}label{border-radius:50%}#panel-skeleton{position:relative;overflow:hidden;background:#f0f0f0}#panel-skeleton:after{content:\"\";animation:p-skeleton-animation 1.2s infinite;height:100%;left:0;position:absolute;right:0;top:0;transform:translate(-100%);z-index:1;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.4),rgba(255,255,255,0))}@keyframes p-skeleton-animation{0%{transform:translate(-100%)}to{transform:translate(100%)}}.container__span-header,.container__span-footer{margin:20px 0;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i5.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i6.ScheduleFormatPipe, name: "scheduleFormat" }, { kind: "pipe", type: i7.ScheduleTimeFormatPipe, name: "scheduleTimeFormat" }, { kind: "pipe", type: i8.TypeLevelPipe, name: "typeLevel" }] });
|
|
84
|
+
CardCourseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CardCourseComponent, selector: "ipt-card-course-self-cod-managed", inputs: { CourseData: "CourseData", isLoading: "isLoading" }, outputs: { codeCourse: "codeCourse" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isLoading\" class=\"main-container\">\n\n <!-- cards Academy -->\n <div class=\"container__span-header flex justify-content-start\" *ngIf=\"visibleAcademy || visibleKids || visibleSchools\">\n <span>Selecciona un Plan</span>\n </div>\n\n <p-panel\n *ngIf=\"visibleAcademy\"\n header=\"Plan Academy\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"academic_plan\"\n class=\"academic_plan\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Kids -->\n\n <p-panel\n *ngIf=\"visibleKids\"\n header=\"Plan Kids\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_kids\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Schools -->\n\n <p-panel\n *ngIf=\"visibleSchools\"\n header=\"Plan Schools\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_school\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <div class=\"container__span-footer flex justify-content-center\" *ngIf=\"!visibleAcademy && !visibleKids && !visibleSchools\">\n <span>No se encontraron planes</span>\n </div>\n</div>\n<div *ngIf=\"isLoading\">\n\n <p-panel\n header=\"\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"p-component panel-skeleton\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main class=\"flex flex-col\">\n <section *ngFor=\"let course of skeleton\" class=\"card1 animate__animated\" >\n <p-skeleton width=\"12rem\" height=\"2rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p class=\"card1__content_skeleton\">\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <strong><hr></strong>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n </p>\n <div class=\"card1__date__skeleton\">\n </div>\n <div class=\"card1__arrow\" >\n <p-skeleton size=\"3rem\" styleClass=\"mr-2\" ></p-skeleton>\n </div>\n </section>\n </main>\n </p-panel>\n\n</div>\n\n", styles: ["main{display:flex;gap:.7rem;flex-wrap:wrap}.card1{--border-radius: 6px;--primary-color: #1c77f7;--secondary-color: #2c2c2c;--tertiary-color: #ffffff;width:340px;font-family:Poppins,sans-serif;cursor:pointer;border-radius:var(--border-radius);background:#f1f1f3;box-shadow:0 8px 16px #00000008;position:relative;transition:.3s;border:solid .5px #e0e0e0}.type-theory{color:#00aecc}.type-club{color:#0d9d36}.msg-two-coup{color:#000!important;padding-left:7px;padding-right:7px;border-radius:5px;background-color:#4ed1e9}.msg-two-lev{color:#000!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#fb8f42}.beginner{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#94b9aa}.levelAone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#c4291c}.levelAonetwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#418ed1}.levelAtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#4fad65}.levelBone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#6824b8}.levelBtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#06161e}.levelBplus{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#cc6529}.main-container{margin-top:1%}.course-code{font-size:12px;font-weight:400;margin-left:.5rem}.card1:hover{box-shadow:#0000003d 0 3px 8px}.card1>*+*{margin-top:.7em}.card1 .card1__content{padding-left:10px;color:var(--secondary-color);font-size:.86rem;font-weight:200;z-index:1;position:relative}strong{color:var(--secondary-color);font-weight:300}:host ::ng-deep .p-panel .p-panel-header .p-panel-header-icon{color:#fff!important}.card1 .card1__title__academic{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}:host ::ng-deep #academic_plan .p-panel .p-panel-header{color:#fff!important;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}.card1 .card1__title__kids{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_kids .p-panel .p-panel-header{color:#fff!important;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__title__schools{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_school .p-panel .p-panel-header{color:#fff!important;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__date{color:#807c7c;padding-left:10px;font-size:.4rem;z-index:1;position:relative;margin-bottom:2%;margin-top:.7rem}.card1 .card1__arrow{padding-left:10px;position:absolute;padding:.3rem;border-top-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);bottom:0;right:0;transition:.2s;display:flex;justify-content:center;align-items:center}.card1 svg{transition:.2s}.card1:hover .card1__title{color:var(--secondary-color)}.card1:hover .card1__arrow{background:rgb(170,41,170)}.card1:hover .card1__arrow svg{transform:translate(3px)}.card1:hover strong{color:#aa29aa;font-weight:400}.card1:hover .course-code{color:#aa29aa;font-weight:500}.image-container{display:flex;border-radius:6px;width:250px;height:207px;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 1px 3px 1px}:host ::ng-deep .p-menubar .p-menuitem{position:relative;width:auto}.green300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#76db9b;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.red300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#e35b53;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.gray300{height:2%;width:2%;padding-right:9px;border-radius:70%;color:#9e9a99;background-color:#9e9a99;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}label{border-radius:50%}#panel-skeleton{position:relative;overflow:hidden;background:#f0f0f0}#panel-skeleton:after{content:\"\";animation:p-skeleton-animation 1.2s infinite;height:100%;left:0;position:absolute;right:0;top:0;transform:translate(-100%);z-index:1;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.4),rgba(255,255,255,0))}@keyframes p-skeleton-animation{0%{transform:translate(-100%)}to{transform:translate(100%)}}.container__span-header,.container__span-footer{margin:20px 0;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i5.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i6.ScheduleFormatPipe, name: "scheduleFormat" }, { kind: "pipe", type: i7.ScheduleTimeFormatPipe, name: "scheduleTimeFormat" }, { kind: "pipe", type: i8.TypeLevelPipe, name: "typeLevel" }] });
|
|
85
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CardCourseComponent, decorators: [{
|
|
86
86
|
type: Component,
|
|
87
|
-
args: [{ selector: 'ipt-card-course-self-cod-managed', template: "<div *ngIf=\"!isLoading\" class=\"main-container\">\n\n <!-- cards Academy -->\n <div class=\"container__span-header flex justify-content-start\" *ngIf=\"visibleAcademy || visibleKids || visibleSchools\">\n <span>Selecciona un Plan</span>\n </div>\n\n <p-panel\n *ngIf=\"visibleAcademy\"\n header=\"Plan Academy\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"academic_plan\"\n class=\"academic_plan\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Kids -->\n\n <p-panel\n *ngIf=\"visibleKids\"\n header=\"Plan Kids\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_kids\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Schools -->\n\n <p-panel\n *ngIf=\"visibleSchools\"\n header=\"Plan Schools\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_school\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <div class=\"container__span-footer flex justify-content-center\" *ngIf=\"!visibleAcademy && !visibleKids && !visibleSchools\">\n <span>No se encontraron planes</span>\n </div>\n</div>\n<div *ngIf=\"isLoading\">\n\n <p-panel\n header=\"\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"p-component panel-skeleton\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main class=\"flex flex-col\">\n <section *ngFor=\"let course of skeleton\" class=\"card1 animate__animated\" >\n <p-skeleton width=\"12rem\" height=\"2rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p class=\"card1__content_skeleton\">\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <strong><hr></strong>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n </p>\n <div class=\"card1__date__skeleton\">\n </div>\n <div class=\"card1__arrow\" >\n <p-skeleton size=\"3rem\" styleClass=\"mr-2\" ></p-skeleton>\n </div>\n </section>\n </main>\n </p-panel>\n\n</div>\n\n", styles: ["main{display:flex;gap:.7rem;flex-wrap:wrap}.card1{--border-radius: 6px;--primary-color: #1c77f7;--secondary-color: #2c2c2c;--tertiary-color: #ffffff;width:340px;font-family:Poppins,sans-serif;cursor:pointer;border-radius:var(--border-radius);background:#f1f1f3;box-shadow:0 8px 16px #00000008;position:relative;transition:.3s;border:solid .5px #e0e0e0}.type-theory{color:#00aecc}.type-club{color:#0d9d36}.msg-two-coup{color:#000!important;padding-left:7px;padding-right:7px;border-radius:5px;background-color:#4ed1e9}.msg-two-lev{color:#000!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#fb8f42}.beginner{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#94b9aa}.levelAone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#c4291c}.levelAonetwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#418ed1}.levelAtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#4fad65}.levelBone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#6824b8}.levelBtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#06161e}.levelBplus{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#cc6529}.main-container{margin-top:1%}.course-code{font-size:12px;font-weight:400;margin-left:.5rem}.card1:hover{box-shadow:#0000003d 0 3px 8px}.card1>*+*{margin-top:.7em}.card1 .card1__content{padding-left:10px;color:var(--secondary-color);font-size:.86rem;font-weight:200;z-index:1;position:relative}strong{color:var(--secondary-color);font-weight:300}:host ::ng-deep .p-panel .p-panel-header .p-panel-header-icon{color:#fff!important}.card1 .card1__title__academic{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}:host ::ng-deep #academic_plan .p-panel .p-panel-header{color:#fff!important;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}.card1 .card1__title__kids{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_kids .p-panel .p-panel-header{color:#fff!important;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__title__schools{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_school .p-panel .p-panel-header{color:#fff!important;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__date{color:#807c7c;padding-left:10px;font-size:.4rem;z-index:1;position:relative;margin-bottom:2%;margin-top:.7rem}.card1 .card1__arrow{padding-left:10px;position:absolute;padding:.1rem;border-top-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);bottom:0;right:0;transition:.2s;display:flex;justify-content:center;align-items:center;width:50px}.card1 svg{transition:.2s}.card1:hover .card1__title{color:var(--secondary-color)}.card1:hover .card1__arrow{background:rgb(170,41,170)}.card1:hover .card1__arrow svg{transform:translate(3px)}.card1:hover strong{color:#aa29aa;font-weight:400}.card1:hover .course-code{color:#aa29aa;font-weight:500}.image-container{display:flex;border-radius:6px;width:250px;height:207px;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 1px 3px 1px}:host ::ng-deep .p-menubar .p-menuitem{position:relative;width:auto}.green300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#76db9b;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.red300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#e35b53;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.gray300{height:2%;width:2%;padding-right:9px;border-radius:70%;color:#9e9a99;background-color:#9e9a99;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}label{border-radius:50%}#panel-skeleton{position:relative;overflow:hidden;background:#f0f0f0}#panel-skeleton:after{content:\"\";animation:p-skeleton-animation 1.2s infinite;height:100%;left:0;position:absolute;right:0;top:0;transform:translate(-100%);z-index:1;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.4),rgba(255,255,255,0))}@keyframes p-skeleton-animation{0%{transform:translate(-100%)}to{transform:translate(100%)}}.container__span-header,.container__span-footer{margin:20px 0;font-weight:700}\n"] }]
|
|
87
|
+
args: [{ selector: 'ipt-card-course-self-cod-managed', template: "<div *ngIf=\"!isLoading\" class=\"main-container\">\n\n <!-- cards Academy -->\n <div class=\"container__span-header flex justify-content-start\" *ngIf=\"visibleAcademy || visibleKids || visibleSchools\">\n <span>Selecciona un Plan</span>\n </div>\n\n <p-panel\n *ngIf=\"visibleAcademy\"\n header=\"Plan Academy\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"academic_plan\"\n class=\"academic_plan\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Kids -->\n\n <p-panel\n *ngIf=\"visibleKids\"\n header=\"Plan Kids\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_kids\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Schools -->\n\n <p-panel\n *ngIf=\"visibleSchools\"\n header=\"Plan Schools\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_school\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <div class=\"container__span-footer flex justify-content-center\" *ngIf=\"!visibleAcademy && !visibleKids && !visibleSchools\">\n <span>No se encontraron planes</span>\n </div>\n</div>\n<div *ngIf=\"isLoading\">\n\n <p-panel\n header=\"\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"p-component panel-skeleton\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main class=\"flex flex-col\">\n <section *ngFor=\"let course of skeleton\" class=\"card1 animate__animated\" >\n <p-skeleton width=\"12rem\" height=\"2rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p class=\"card1__content_skeleton\">\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <strong><hr></strong>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n </p>\n <div class=\"card1__date__skeleton\">\n </div>\n <div class=\"card1__arrow\" >\n <p-skeleton size=\"3rem\" styleClass=\"mr-2\" ></p-skeleton>\n </div>\n </section>\n </main>\n </p-panel>\n\n</div>\n\n", styles: ["main{display:flex;gap:.7rem;flex-wrap:wrap}.card1{--border-radius: 6px;--primary-color: #1c77f7;--secondary-color: #2c2c2c;--tertiary-color: #ffffff;width:340px;font-family:Poppins,sans-serif;cursor:pointer;border-radius:var(--border-radius);background:#f1f1f3;box-shadow:0 8px 16px #00000008;position:relative;transition:.3s;border:solid .5px #e0e0e0}.type-theory{color:#00aecc}.type-club{color:#0d9d36}.msg-two-coup{color:#000!important;padding-left:7px;padding-right:7px;border-radius:5px;background-color:#4ed1e9}.msg-two-lev{color:#000!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#fb8f42}.beginner{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#94b9aa}.levelAone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#c4291c}.levelAonetwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#418ed1}.levelAtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#4fad65}.levelBone{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#6824b8}.levelBtwo{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#06161e}.levelBplus{color:#fff!important;padding-left:5px;padding-right:5px;border-radius:5px;margin-left:13px;background-color:#cc6529}.main-container{margin-top:1%}.course-code{font-size:12px;font-weight:400;margin-left:.5rem}.card1:hover{box-shadow:#0000003d 0 3px 8px}.card1>*+*{margin-top:.7em}.card1 .card1__content{padding-left:10px;color:var(--secondary-color);font-size:.86rem;font-weight:200;z-index:1;position:relative}strong{color:var(--secondary-color);font-weight:300}:host ::ng-deep .p-panel .p-panel-header .p-panel-header-icon{color:#fff!important}.card1 .card1__title__academic{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}:host ::ng-deep #academic_plan .p-panel .p-panel-header{color:#fff!important;background:rgb(4,18,106);background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1)90%);border-radius:6px 6px 0 0}.card1 .card1__title__kids{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_kids .p-panel .p-panel-header{color:#fff!important;background:rgb(127,33,99);background:linear-gradient(175deg,rgba(127,33,99,1) 27%,rgba(171,49,135,1) 53%,rgba(220,76,178,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__title__schools{color:#fff;padding-left:10px;padding-right:10px;font-size:1.1rem;font-weight:300;z-index:1;position:relative;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}:host ::ng-deep #social_school .p-panel .p-panel-header{color:#fff!important;background:rgb(57,130,154);background:linear-gradient(175deg,rgba(57,130,154,1) 27%,rgba(44,147,180,1) 53%,rgba(135,182,197,1) 90%);border-radius:6px 6px 0 0}.card1 .card1__date{color:#807c7c;padding-left:10px;font-size:.4rem;z-index:1;position:relative;margin-bottom:2%;margin-top:.7rem}.card1 .card1__arrow{padding-left:10px;position:absolute;padding:.3rem;border-top-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);bottom:0;right:0;transition:.2s;display:flex;justify-content:center;align-items:center}.card1 svg{transition:.2s}.card1:hover .card1__title{color:var(--secondary-color)}.card1:hover .card1__arrow{background:rgb(170,41,170)}.card1:hover .card1__arrow svg{transform:translate(3px)}.card1:hover strong{color:#aa29aa;font-weight:400}.card1:hover .course-code{color:#aa29aa;font-weight:500}.image-container{display:flex;border-radius:6px;width:250px;height:207px;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 1px 3px 1px}:host ::ng-deep .p-menubar .p-menuitem{position:relative;width:auto}.green300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#76db9b;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.red300{height:2%;width:2%;padding-right:9px;border-radius:70%;background:#e35b53;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}.gray300{height:2%;width:2%;padding-right:9px;border-radius:70%;color:#9e9a99;background-color:#9e9a99;box-shadow:-1px 0 1px 1px #000000fa;border:1px solid rgb(0 0 0 / 40%)}label{border-radius:50%}#panel-skeleton{position:relative;overflow:hidden;background:#f0f0f0}#panel-skeleton:after{content:\"\";animation:p-skeleton-animation 1.2s infinite;height:100%;left:0;position:absolute;right:0;top:0;transform:translate(-100%);z-index:1;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.4),rgba(255,255,255,0))}@keyframes p-skeleton-animation{0%{transform:translate(-100%)}to{transform:translate(100%)}}.container__span-header,.container__span-footer{margin:20px 0;font-weight:700}\n"] }]
|
|
88
88
|
}], propDecorators: { CourseData: [{
|
|
89
89
|
type: Input
|
|
90
90
|
}], isLoading: [{
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
|
|
|
92
92
|
}], codeCourse: [{
|
|
93
93
|
type: Output
|
|
94
94
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb3Vyc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQtY291cnNlL2NhcmQtY291cnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkLWNvdXJzZS9jYXJkLWNvdXJzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFRekcsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9XLGNBQVMsR0FBRyxJQUFJLENBQUE7UUFDZixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFNUQsa0JBQWEsR0FBTyxFQUFFLENBQUM7UUFDdkIsZUFBVSxHQUFPLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFPLEVBQUUsQ0FBQztRQUN2QixtQkFBYyxHQUFJLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFJLEtBQUssQ0FBQztRQUNyQixtQkFBYyxHQUFJLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7S0E2RGxCO0lBM0RDLFFBQVE7UUFDUixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQztTQUNyQjthQUFJO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBQyxLQUFLLENBQUM7U0FDdEI7SUFDRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFDLEtBQUssQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFDLEtBQUssQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUM5RDtTQUNGO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUE0QjtRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsUUFBTyxLQUFLLEVBQUU7WUFDWixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxXQUFXLENBQUE7WUFDcEIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sY0FBYyxDQUFBO1lBQ3ZCLEtBQUssSUFBSTtnQkFDUCxPQUFPLFdBQVcsQ0FBQztZQUNyQixLQUFLLElBQUk7Z0JBQ1AsT0FBTyxXQUFXLENBQUE7WUFDcEIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sV0FBVyxDQUFBO1lBQ3BCLEtBQUssS0FBSztnQkFDUixPQUFPLFlBQVksQ0FBQTtZQUNyQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLGFBQWEsQ0FBQztZQUNuQixLQUFLLGNBQWMsQ0FBQztZQUNwQixLQUFLLGVBQWUsQ0FBQztZQUNyQixLQUFLLFlBQVksQ0FBQztZQUNsQixLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sVUFBVSxDQUFDO1lBQ3BCO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDOztnSEF2RVUsbUJBQW1CO29HQUFuQixtQkFBbUIsa01DVGhDLG0rVkEyTEE7MkZEbExhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxrQ0FBa0M7OEJBS2xDLFVBQVU7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvdXJzZUJ5VG9rZW5ScyB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9tb2RlbHMvYWN0aXZpdGllcy9hY3Rpdml0aWVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpcHQtY2FyZC1jb3Vyc2Utc2VsZi1jb2QtbWFuYWdlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWNvdXJzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtY291cnNlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYXJkQ291cnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICBASW5wdXQgKCkgQ291cnNlRGF0YT86YW55O1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSB0cnVlXG4gIEBPdXRwdXQoKSBjb2RlQ291cnNlID0gbmV3IEV2ZW50RW1pdHRlcjxJQ291cnNlQnlUb2tlblJzPigpO1xuXG4gIGNvdXJzZUFjYWRlbXk6YW55W109W107XG4gIGNvdXJzZUtpZHM6YW55W109W107XG4gIGNvdXJzZVNjaG9vbHM6YW55W109W107XG4gIHZpc2libGVBY2FkZW15ID0gIGZhbHNlO1xuICB2aXNpYmxlS2lkcyA9ICBmYWxzZTtcbiAgdmlzaWJsZVNjaG9vbHMgPSAgZmFsc2U7XG4gIHNrZWxldG9uPVt7fSx7fV07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIGlmICh0aGlzLkNvdXJzZURhdGEubGVuZ3RoID09IDApIHtcbiAgICB0aGlzLmlzTG9hZGluZz10cnVlO1xuICB9ZWxzZXtcbiAgICB0aGlzLmlzTG9hZGluZz1mYWxzZTtcbiAgfVxuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snQ291cnNlRGF0YSddKSB7XG4gICAgICBpZiAoIXRoaXMuQ291cnNlRGF0YSkge1xuICAgICAgICB0aGlzLmNvdXJzZUFjYWRlbXkgPSBbXTtcbiAgICAgICAgdGhpcy5jb3Vyc2VLaWRzID0gW107XG4gICAgICAgIHRoaXMuY291cnNlU2Nob29scyA9IFtdO1xuICAgICAgICB0aGlzLmlzTG9hZGluZz1mYWxzZVxuICAgICAgICB0aGlzLnZpc2libGVBY2FkZW15ID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmlzaWJsZUtpZHMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52aXNpYmxlU2Nob29scyA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmc9ZmFsc2VcbiAgICAgICAgdGhpcy5jb3Vyc2VBY2FkZW15ID0gdGhpcy5Db3Vyc2VEYXRhLkFjYWRlbXk7XG4gICAgICAgIHRoaXMuY291cnNlS2lkcyA9IHRoaXMuQ291cnNlRGF0YS5LaWRzO1xuICAgICAgICB0aGlzLmNvdXJzZVNjaG9vbHMgPSB0aGlzLkNvdXJzZURhdGEuU2Nob29scztcbiAgICAgICAgdGhpcy52aXNpYmxlQWNhZGVteSA9IHRoaXMuQ291cnNlRGF0YS5BY2FkZW15ID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnZpc2libGVLaWRzID0gdGhpcy5Db3Vyc2VEYXRhLktpZHMgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMudmlzaWJsZVNjaG9vbHMgPSB0aGlzLkNvdXJzZURhdGEuU2Nob29scyA/IHRydWUgOiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2aWV3RGF0YUNvdXJzZShjb2RlQ291cnNlOiBJQ291cnNlQnlUb2tlblJzKXtcbiAgICB0aGlzLmNvZGVDb3Vyc2UuZW1pdChjb2RlQ291cnNlKTtcbiAgfVxuXG4gIGdldENzc0NsYXNzKGxldmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaChsZXZlbCkge1xuICAgICAgY2FzZSAnUFJFLUExJzpcbiAgICAgICAgcmV0dXJuICdsZXZlbEFvbmUnXG4gICAgICBjYXNlICdBMSc6XG4gICAgICAgIHJldHVybiAnbGV2ZWxBb25ldHdvJ1xuICAgICAgY2FzZSAnQTInOlxuICAgICAgICByZXR1cm4gJ2xldmVsQXR3byc7XG4gICAgICBjYXNlICdCMSc6XG4gICAgICAgIHJldHVybiAnbGV2ZWxCb25lJ1xuICAgICAgY2FzZSAnQjInOlxuICAgICAgICByZXR1cm4gJ2xldmVsQnR3bydcbiAgICAgIGNhc2UgJ0IxKyc6XG4gICAgICAgIHJldHVybiAnbGV2ZWxCcGx1cydcbiAgICAgIGNhc2UgJ01PVkVSUyBJJzpcbiAgICAgIGNhc2UgJ01PVkVSUyBJSSc6XG4gICAgICBjYXNlICdCRUdJTk5FUlMgSSc6XG4gICAgICBjYXNlICdCRUdJTk5FUlMgSUknOlxuICAgICAgY2FzZSAnQkVHSU5ORVJTIElJSSc6XG4gICAgICBjYXNlICdTVEFSVEVSUyBJJzpcbiAgICAgIGNhc2UgJ1NUQVJURVJTIElJJzpcbiAgICAgICAgcmV0dXJuICdiZWdpbm5lcic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZ1wiIGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cblxuICA8IS0tIGNhcmRzIEFjYWRlbXkgLS0+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJfX3NwYW4taGVhZGVyIGZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0XCIgKm5nSWY9XCJ2aXNpYmxlQWNhZGVteSB8fCB2aXNpYmxlS2lkcyB8fCB2aXNpYmxlU2Nob29sc1wiPlxuICAgIDxzcGFuPlNlbGVjY2lvbmEgdW4gUGxhbjwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPHAtcGFuZWxcbiAgKm5nSWY9XCJ2aXNpYmxlQWNhZGVteVwiXG4gIGhlYWRlcj1cIlBsYW4gQWNhZGVteVwiXG4gIFt0b2dnbGVhYmxlXT1cInRydWVcIlxuICBbY29sbGFwc2VkXT1cImZhbHNlXCJcbiAgaWQ9XCJhY2FkZW1pY19wbGFuXCJcbiAgY2xhc3M9XCJhY2FkZW1pY19wbGFuXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaWNvbnNcIj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bWFpbiAqbmdJZj1cIiFpc0xvYWRpbmdcIiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgIDxzZWN0aW9uICpuZ0Zvcj1cImxldCBjb3Vyc2Ugb2YgY291cnNlQWNhZGVteVwiIGNsYXNzPVwiY2FyZDEgYW5pbWF0ZV9fYW5pbWF0ZWRcIiAgKGNsaWNrKT1cInZpZXdEYXRhQ291cnNlKGNvdXJzZSlcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZDFfX3RpdGxlX19hY2FkZW1pY1wiPnt7IGNvdXJzZS5jb3Vyc2VfdHlwZS5sYWJlbCB9fTwvaDM+XG4gICAgICAgIDxwIGNsYXNzPVwiY2FyZDFfX2NvbnRlbnRcIj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5DbGFzZXMgVGVvcmljYXM6IDwvc3Ryb25nPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08YnI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5UaGVvcnkgVGVhY2hlcjogPC9zdHJvbmc+e3sgY291cnNlLnRlYWNoZXIgfCB0aXRsZWNhc2UgfX08YnI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+VGhlb3J5IENsYXNzcm9vbTogPC9zdHJvbmc+PHNwYW4+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8c3Ryb25nPjxocj48L3N0cm9uZz5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2xhc2VzIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVGb3JtYXQgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5Ib3JhcmlvIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8c3Ryb25nPk1vZGFsaWRhZDogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfbW9kYWxpdHlcIj57eyBjb3Vyc2UuY291cnNlX21vZGFsaXR5Lm5hbWUgfCB0aXRsZWNhc2UgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsdWIgVGVhY2hlcjogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi50ZWFjaGVyIHwgdGl0bGVjYXNlIH19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2x1YiBDbGFzc3Jvb206IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlRGV0YWlsc1swXS5DbGFzc1Jvb20ubmFtZSAgfCB0aXRsZWNhc2V9fTwvc3Bhbj48YnI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZz48aHI+PC9zdHJvbmc+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsXCI+UG9zaWJsZSBpbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsID8gY291cnNlLnRvX3N0YXJ0IDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGxcIj5cbiAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgIT09IG51bGxcIj5GZWNoYSBJbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZS5zdGFydF9kYXRlICE9PSBudWxsID8gY291cnNlLnN0YXJ0X2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+RmVjaGEgY3VsbWluYWNpb246IDwvc3Ryb25nPnt7IGNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbCA/IGNvdXJzZS5maW5pc2hfZGF0ZSA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmc+Q3JlYXRlZDogPC9zdHJvbmc+e3sgY291cnNlLmNyZWF0ZWRfYXQgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxicj4gLS0+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQxX19kYXRlXCI+XG4gICAgICAgICAgPCEtLSA8c3BhblxuICAgICAgICAgIFtuZ0NsYXNzXT1cImNvdXJzZS5zdGF0dXM/LmNvbG9yX3N0YXR1c1wiXG4gICAgICAgICAgPjwvc3Bhbj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImNvdXJzZS1jb2RlXCI+Q29kZToge3tjb3Vyc2UuY29kZX19PC9zcGFuPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fYXJyb3dcIiBbbmdDbGFzc109XCJnZXRDc3NDbGFzcyhjb3Vyc2UuZW5nbGlzaF9sZXZlbC5uYW1lKVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGNvdXJzZS5lbmdsaXNoX2xldmVsLm5hbWUgfCB0eXBlTGV2ZWx9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgPC9tYWluPlxuICAgIDxpcHQtbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+PC9pcHQtbG9hZGVyPlxuICA8L3AtcGFuZWw+XG5cbiAgPCEtLSBjYXJkcyBLaWRzIC0tPlxuXG4gIDxwLXBhbmVsXG4gICpuZ0lmPVwidmlzaWJsZUtpZHNcIlxuICBoZWFkZXI9XCJQbGFuIEtpZHNcIlxuICBbdG9nZ2xlYWJsZV09XCJ0cnVlXCJcbiAgW2NvbGxhcHNlZF09XCJmYWxzZVwiXG4gIGlkPVwic29jaWFsX2tpZHNcIlxuICA+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpY29uc1wiPiA8L25nLXRlbXBsYXRlPlxuICAgIDxtYWluICpuZ0lmPVwiIWlzTG9hZGluZ1wiIGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPHNlY3Rpb24gKm5nRm9yPVwibGV0IGNvdXJzZSBvZiBjb3Vyc2VLaWRzXCIgY2xhc3M9XCJjYXJkMSBhbmltYXRlX19hbmltYXRlZFwiICAoY2xpY2spPVwidmlld0RhdGFDb3Vyc2UoY291cnNlKVwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkMV9fdGl0bGVfX2tpZHNcIj57eyBjb3Vyc2UuY291cnNlX3R5cGUubGFiZWwgfX08L2gzPlxuICAgICAgICA8cCBjbGFzcz1cImNhcmQxX19jb250ZW50XCI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+Q2xhc2VzIFRlb3JpY2FzOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVGb3JtYXQgfX08YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+SG9yYXJpbyBUZW9yaWNvOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PGJyPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+VGhlb3J5IFRlYWNoZXI6IDwvc3Ryb25nPnt7IGNvdXJzZS50ZWFjaGVyIHwgdGl0bGVjYXNlIH19PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPlRoZW9yeSBDbGFzc3Jvb206IDwvc3Ryb25nPjxzcGFuPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGVEZXRhaWxzWzBdLkNsYXNzUm9vbS5uYW1lICB8IHRpdGxlY2FzZX19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPHN0cm9uZz48aHI+PC9zdHJvbmc+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsYXNlcyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+SG9yYXJpbyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPHN0cm9uZz5Nb2RhbGlkYWQ6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX21vZGFsaXR5XCI+e3sgY291cnNlLmNvdXJzZV9tb2RhbGl0eS5uYW1lIHwgdGl0bGVjYXNlIH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIFRlYWNoZXI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIudGVhY2hlciB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsdWIgQ2xhc3Nyb29tOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmc+PGhyPjwvc3Ryb25nPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlBvc2libGUgaW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbCA/IGNvdXJzZS50b19zdGFydCA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsXCI+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlICE9PSBudWxsXCI+RmVjaGEgSW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2Uuc3RhcnRfZGF0ZSAhPT0gbnVsbCA/IGNvdXJzZS5zdGFydF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIGN1bG1pbmFjaW9uOiA8L3N0cm9uZz57eyBjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGwgPyBjb3Vyc2UuZmluaXNoX2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPkNyZWF0ZWQ6IDwvc3Ryb25nPnt7IGNvdXJzZS5jcmVhdGVkX2F0IHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnI+IC0tPlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fZGF0ZVwiPlxuICAgICAgICAgIDwhLS0gPHNwYW5cbiAgICAgICAgICBbbmdDbGFzc109XCJjb3Vyc2Uuc3RhdHVzPy5jb2xvcl9zdGF0dXNcIlxuICAgICAgICAgID48L3NwYW4+IC0tPlxuICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJjb3Vyc2UtY29kZVwiPkNvZGU6IHt7Y291cnNlLmNvZGV9fTwvc3Bhbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2Fycm93XCIgW25nQ2xhc3NdPVwiZ2V0Q3NzQ2xhc3MoY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSlcIj5cbiAgICAgICAgICA8c3Bhbj57eyBjb3Vyc2UuZW5nbGlzaF9sZXZlbC5uYW1lIHwgdHlwZUxldmVsfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbWFpbj5cbiAgICA8aXB0LWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvaXB0LWxvYWRlcj5cbiAgPC9wLXBhbmVsPlxuXG4gIDwhLS0gY2FyZHMgU2Nob29scyAtLT5cblxuICA8cC1wYW5lbFxuICAqbmdJZj1cInZpc2libGVTY2hvb2xzXCJcbiAgaGVhZGVyPVwiUGxhbiBTY2hvb2xzXCJcbiAgW3RvZ2dsZWFibGVdPVwidHJ1ZVwiXG4gIFtjb2xsYXBzZWRdPVwiZmFsc2VcIlxuICBpZD1cInNvY2lhbF9zY2hvb2xcIlxuICA+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpY29uc1wiPiA8L25nLXRlbXBsYXRlPlxuICAgIDxtYWluICpuZ0lmPVwiIWlzTG9hZGluZ1wiIGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPHNlY3Rpb24gKm5nRm9yPVwibGV0IGNvdXJzZSBvZiBjb3Vyc2VTY2hvb2xzXCIgY2xhc3M9XCJjYXJkMSBhbmltYXRlX19hbmltYXRlZFwiICAoY2xpY2spPVwidmlld0RhdGFDb3Vyc2UoY291cnNlKVwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkMV9fdGl0bGVfX3NjaG9vbHNcIj57eyBjb3Vyc2UuY291cnNlX3R5cGUubGFiZWwgfX08L2gzPlxuICAgICAgICA8cCBjbGFzcz1cImNhcmQxX19jb250ZW50XCI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+Q2xhc2VzIFRlb3JpY2FzOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVGb3JtYXQgfX08YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+SG9yYXJpbyBUZW9yaWNvOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PGJyPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+VGhlb3J5IFRlYWNoZXI6IDwvc3Ryb25nPnt7IGNvdXJzZS50ZWFjaGVyIHwgdGl0bGVjYXNlIH19PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPlRoZW9yeSBDbGFzc3Jvb206IDwvc3Ryb25nPjxzcGFuPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGVEZXRhaWxzWzBdLkNsYXNzUm9vbS5uYW1lICB8IHRpdGxlY2FzZX19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPHN0cm9uZz48aHI+PC9zdHJvbmc+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsYXNlcyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+SG9yYXJpbyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPHN0cm9uZz5Nb2RhbGlkYWQ6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX21vZGFsaXR5XCI+e3sgY291cnNlLmNvdXJzZV9tb2RhbGl0eS5uYW1lIHwgdGl0bGVjYXNlIH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIFRlYWNoZXI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIudGVhY2hlciB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsdWIgQ2xhc3Nyb29tOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmc+PGhyPjwvc3Ryb25nPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlBvc2libGUgaW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbCA/IGNvdXJzZS50b19zdGFydCA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsXCI+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlICE9PSBudWxsXCI+RmVjaGEgSW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2Uuc3RhcnRfZGF0ZSAhPT0gbnVsbCA/IGNvdXJzZS5zdGFydF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIGN1bG1pbmFjaW9uOiA8L3N0cm9uZz57eyBjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGwgPyBjb3Vyc2UuZmluaXNoX2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPkNyZWF0ZWQ6IDwvc3Ryb25nPnt7IGNvdXJzZS5jcmVhdGVkX2F0IHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnI+IC0tPlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fZGF0ZVwiPlxuICAgICAgICAgIDwhLS0gPHNwYW5cbiAgICAgICAgICBbbmdDbGFzc109XCJjb3Vyc2Uuc3RhdHVzPy5jb2xvcl9zdGF0dXNcIlxuICAgICAgICAgID48L3NwYW4+IC0tPlxuICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJjb3Vyc2UtY29kZVwiPkNvZGU6IHt7Y291cnNlLmNvZGV9fTwvc3Bhbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2Fycm93XCIgW25nQ2xhc3NdPVwiZ2V0Q3NzQ2xhc3MoY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSlcIj5cbiAgICAgICAgICA8c3Bhbj57eyBjb3Vyc2UuZW5nbGlzaF9sZXZlbC5uYW1lIHwgdHlwZUxldmVsfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbWFpbj5cbiAgICA8aXB0LWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvaXB0LWxvYWRlcj5cbiAgPC9wLXBhbmVsPlxuXG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJfX3NwYW4tZm9vdGVyIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiIXZpc2libGVBY2FkZW15ICYmICF2aXNpYmxlS2lkcyAmJiAhdmlzaWJsZVNjaG9vbHNcIj5cbiAgICA8c3Bhbj5ObyBzZSBlbmNvbnRyYXJvbiBwbGFuZXM8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG5cbiAgPHAtcGFuZWxcbiAgaGVhZGVyPVwiXCJcbiAgW3RvZ2dsZWFibGVdPVwidHJ1ZVwiXG4gIFtjb2xsYXBzZWRdPVwiZmFsc2VcIlxuICBpZD1cInAtY29tcG9uZW50IHBhbmVsLXNrZWxldG9uXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaWNvbnNcIj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bWFpbiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgIDxzZWN0aW9uICpuZ0Zvcj1cImxldCBjb3Vyc2Ugb2Ygc2tlbGV0b25cIiBjbGFzcz1cImNhcmQxIGFuaW1hdGVfX2FuaW1hdGVkXCIgID5cbiAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxMnJlbVwiIGhlaWdodD1cIjJyZW1cIiBzdHlsZUNsYXNzPVwibWItMlwiID48L3Atc2tlbGV0b24+XG4gICAgICAgIDxwIGNsYXNzPVwiY2FyZDFfX2NvbnRlbnRfc2tlbGV0b25cIj5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjlyZW1cIiBoZWlnaHQ9XCIxcmVtXCIgc3R5bGVDbGFzcz1cIm1iLTJcIiA+PC9wLXNrZWxldG9uPlxuICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiOXJlbVwiIGhlaWdodD1cIjFyZW1cIiBzdHlsZUNsYXNzPVwibWItMlwiID48L3Atc2tlbGV0b24+XG4gICAgICAgICAgPHN0cm9uZz48aHI+PC9zdHJvbmc+XG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCI5cmVtXCIgaGVpZ2h0PVwiMXJlbVwiIHN0eWxlQ2xhc3M9XCJtYi0yXCIgPjwvcC1za2VsZXRvbj5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjlyZW1cIiBoZWlnaHQ9XCIxcmVtXCIgc3R5bGVDbGFzcz1cIm1iLTJcIiA+PC9wLXNrZWxldG9uPlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fZGF0ZV9fc2tlbGV0b25cIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fYXJyb3dcIiA+XG4gICAgICAgICAgPHAtc2tlbGV0b24gc2l6ZT1cIjNyZW1cIiBzdHlsZUNsYXNzPVwibXItMlwiID48L3Atc2tlbGV0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbWFpbj5cbiAgPC9wLXBhbmVsPlxuXG48L2Rpdj5cblxuIl19
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb3Vyc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQtY291cnNlL2NhcmQtY291cnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkLWNvdXJzZS9jYXJkLWNvdXJzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFRekcsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9XLGNBQVMsR0FBRyxJQUFJLENBQUE7UUFDZixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFNUQsa0JBQWEsR0FBTyxFQUFFLENBQUM7UUFDdkIsZUFBVSxHQUFPLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFPLEVBQUUsQ0FBQztRQUN2QixtQkFBYyxHQUFJLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFJLEtBQUssQ0FBQztRQUNyQixtQkFBYyxHQUFJLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7S0E2RGxCO0lBM0RDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQztTQUNyQjthQUFJO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBQyxLQUFLLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFDLEtBQUssQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFDLEtBQUssQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUM5RDtTQUNGO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUE0QjtRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsUUFBTyxLQUFLLEVBQUU7WUFDWixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxXQUFXLENBQUE7WUFDcEIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sY0FBYyxDQUFBO1lBQ3ZCLEtBQUssSUFBSTtnQkFDUCxPQUFPLFdBQVcsQ0FBQztZQUNyQixLQUFLLElBQUk7Z0JBQ1AsT0FBTyxXQUFXLENBQUE7WUFDcEIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sV0FBVyxDQUFBO1lBQ3BCLEtBQUssS0FBSztnQkFDUixPQUFPLFlBQVksQ0FBQTtZQUNyQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLGFBQWEsQ0FBQztZQUNuQixLQUFLLGNBQWMsQ0FBQztZQUNwQixLQUFLLGVBQWUsQ0FBQztZQUNyQixLQUFLLFlBQVksQ0FBQztZQUNsQixLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sVUFBVSxDQUFDO1lBQ3BCO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDOztnSEF2RVUsbUJBQW1CO29HQUFuQixtQkFBbUIsa01DVGhDLG0rVkEyTEE7MkZEbExhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxrQ0FBa0M7OEJBS2xDLFVBQVU7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvdXJzZUJ5VG9rZW5ScyB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9tb2RlbHMvYWN0aXZpdGllcy9hY3Rpdml0aWVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpcHQtY2FyZC1jb3Vyc2Utc2VsZi1jb2QtbWFuYWdlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWNvdXJzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtY291cnNlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYXJkQ291cnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICBASW5wdXQgKCkgQ291cnNlRGF0YT86YW55O1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSB0cnVlXG4gIEBPdXRwdXQoKSBjb2RlQ291cnNlID0gbmV3IEV2ZW50RW1pdHRlcjxJQ291cnNlQnlUb2tlblJzPigpO1xuXG4gIGNvdXJzZUFjYWRlbXk6YW55W109W107XG4gIGNvdXJzZUtpZHM6YW55W109W107XG4gIGNvdXJzZVNjaG9vbHM6YW55W109W107XG4gIHZpc2libGVBY2FkZW15ID0gIGZhbHNlO1xuICB2aXNpYmxlS2lkcyA9ICBmYWxzZTtcbiAgdmlzaWJsZVNjaG9vbHMgPSAgZmFsc2U7XG4gIHNrZWxldG9uPVt7fSx7fV07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuQ291cnNlRGF0YS5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5pc0xvYWRpbmc9dHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMuaXNMb2FkaW5nPWZhbHNlO1xuICAgIH1cbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ0NvdXJzZURhdGEnXSkge1xuICAgICAgaWYgKCF0aGlzLkNvdXJzZURhdGEpIHtcbiAgICAgICAgdGhpcy5jb3Vyc2VBY2FkZW15ID0gW107XG4gICAgICAgIHRoaXMuY291cnNlS2lkcyA9IFtdO1xuICAgICAgICB0aGlzLmNvdXJzZVNjaG9vbHMgPSBbXTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmc9ZmFsc2VcbiAgICAgICAgdGhpcy52aXNpYmxlQWNhZGVteSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZpc2libGVLaWRzID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmlzaWJsZVNjaG9vbHMgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nPWZhbHNlXG4gICAgICAgIHRoaXMuY291cnNlQWNhZGVteSA9IHRoaXMuQ291cnNlRGF0YS5BY2FkZW15O1xuICAgICAgICB0aGlzLmNvdXJzZUtpZHMgPSB0aGlzLkNvdXJzZURhdGEuS2lkcztcbiAgICAgICAgdGhpcy5jb3Vyc2VTY2hvb2xzID0gdGhpcy5Db3Vyc2VEYXRhLlNjaG9vbHM7XG4gICAgICAgIHRoaXMudmlzaWJsZUFjYWRlbXkgPSB0aGlzLkNvdXJzZURhdGEuQWNhZGVteSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy52aXNpYmxlS2lkcyA9IHRoaXMuQ291cnNlRGF0YS5LaWRzID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnZpc2libGVTY2hvb2xzID0gdGhpcy5Db3Vyc2VEYXRhLlNjaG9vbHMgPyB0cnVlIDogZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmlld0RhdGFDb3Vyc2UoY29kZUNvdXJzZTogSUNvdXJzZUJ5VG9rZW5Scyl7XG4gICAgdGhpcy5jb2RlQ291cnNlLmVtaXQoY29kZUNvdXJzZSk7XG4gIH1cblxuICBnZXRDc3NDbGFzcyhsZXZlbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2gobGV2ZWwpIHtcbiAgICAgIGNhc2UgJ1BSRS1BMSc6XG4gICAgICAgIHJldHVybiAnbGV2ZWxBb25lJ1xuICAgICAgY2FzZSAnQTEnOlxuICAgICAgICByZXR1cm4gJ2xldmVsQW9uZXR3bydcbiAgICAgIGNhc2UgJ0EyJzpcbiAgICAgICAgcmV0dXJuICdsZXZlbEF0d28nO1xuICAgICAgY2FzZSAnQjEnOlxuICAgICAgICByZXR1cm4gJ2xldmVsQm9uZSdcbiAgICAgIGNhc2UgJ0IyJzpcbiAgICAgICAgcmV0dXJuICdsZXZlbEJ0d28nXG4gICAgICBjYXNlICdCMSsnOlxuICAgICAgICByZXR1cm4gJ2xldmVsQnBsdXMnXG4gICAgICBjYXNlICdNT1ZFUlMgSSc6XG4gICAgICBjYXNlICdNT1ZFUlMgSUknOlxuICAgICAgY2FzZSAnQkVHSU5ORVJTIEknOlxuICAgICAgY2FzZSAnQkVHSU5ORVJTIElJJzpcbiAgICAgIGNhc2UgJ0JFR0lOTkVSUyBJSUknOlxuICAgICAgY2FzZSAnU1RBUlRFUlMgSSc6XG4gICAgICBjYXNlICdTVEFSVEVSUyBJSSc6XG4gICAgICAgIHJldHVybiAnYmVnaW5uZXInO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmdcIiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XG5cbiAgPCEtLSBjYXJkcyBBY2FkZW15IC0tPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyX19zcGFuLWhlYWRlciBmbGV4IGp1c3RpZnktY29udGVudC1zdGFydFwiICpuZ0lmPVwidmlzaWJsZUFjYWRlbXkgfHwgdmlzaWJsZUtpZHMgfHwgdmlzaWJsZVNjaG9vbHNcIj5cbiAgICA8c3Bhbj5TZWxlY2Npb25hIHVuIFBsYW48L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxwLXBhbmVsXG4gICpuZ0lmPVwidmlzaWJsZUFjYWRlbXlcIlxuICBoZWFkZXI9XCJQbGFuIEFjYWRlbXlcIlxuICBbdG9nZ2xlYWJsZV09XCJ0cnVlXCJcbiAgW2NvbGxhcHNlZF09XCJmYWxzZVwiXG4gIGlkPVwiYWNhZGVtaWNfcGxhblwiXG4gIGNsYXNzPVwiYWNhZGVtaWNfcGxhblwiXG4gID5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImljb25zXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPG1haW4gKm5nSWY9XCIhaXNMb2FkaW5nXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICA8c2VjdGlvbiAqbmdGb3I9XCJsZXQgY291cnNlIG9mIGNvdXJzZUFjYWRlbXlcIiBjbGFzcz1cImNhcmQxIGFuaW1hdGVfX2FuaW1hdGVkXCIgIChjbGljayk9XCJ2aWV3RGF0YUNvdXJzZShjb3Vyc2UpXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQxX190aXRsZV9fYWNhZGVtaWNcIj57eyBjb3Vyc2UuY291cnNlX3R5cGUubGFiZWwgfX08L2gzPlxuICAgICAgICA8cCBjbGFzcz1cImNhcmQxX19jb250ZW50XCI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+Q2xhc2VzIFRlb3JpY2FzOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVGb3JtYXQgfX08YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+SG9yYXJpbyBUZW9yaWNvOiA8L3N0cm9uZz57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PGJyPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+VGhlb3J5IFRlYWNoZXI6IDwvc3Ryb25nPnt7IGNvdXJzZS50ZWFjaGVyIHwgdGl0bGVjYXNlIH19PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPlRoZW9yeSBDbGFzc3Jvb206IDwvc3Ryb25nPjxzcGFuPnt7IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGVEZXRhaWxzWzBdLkNsYXNzUm9vbS5uYW1lICB8IHRpdGxlY2FzZX19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPHN0cm9uZz48aHI+PC9zdHJvbmc+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsYXNlcyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+SG9yYXJpbyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPHN0cm9uZz5Nb2RhbGlkYWQ6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX21vZGFsaXR5XCI+e3sgY291cnNlLmNvdXJzZV9tb2RhbGl0eS5uYW1lIHwgdGl0bGVjYXNlIH19PC9zcGFuPjxicj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIFRlYWNoZXI6IDwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2UuY291cnNlX2NsdWJcIj57eyBjb3Vyc2UuY291cnNlX2NsdWIudGVhY2hlciB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsdWIgQ2xhc3Nyb29tOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZURldGFpbHNbMF0uQ2xhc3NSb29tLm5hbWUgIHwgdGl0bGVjYXNlfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmc+PGhyPjwvc3Ryb25nPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlBvc2libGUgaW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbCA/IGNvdXJzZS50b19zdGFydCA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlID09PSBudWxsXCI+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5zdGFydF9kYXRlICE9PSBudWxsXCI+RmVjaGEgSW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2Uuc3RhcnRfZGF0ZSAhPT0gbnVsbCA/IGNvdXJzZS5zdGFydF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIGN1bG1pbmFjaW9uOiA8L3N0cm9uZz57eyBjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGwgPyBjb3Vyc2UuZmluaXNoX2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPkNyZWF0ZWQ6IDwvc3Ryb25nPnt7IGNvdXJzZS5jcmVhdGVkX2F0IHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnI+IC0tPlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkMV9fZGF0ZVwiPlxuICAgICAgICAgIDwhLS0gPHNwYW5cbiAgICAgICAgICBbbmdDbGFzc109XCJjb3Vyc2Uuc3RhdHVzPy5jb2xvcl9zdGF0dXNcIlxuICAgICAgICAgID48L3NwYW4+IC0tPlxuICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJjb3Vyc2UtY29kZVwiPkNvZGU6IHt7Y291cnNlLmNvZGV9fTwvc3Bhbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2Fycm93XCIgW25nQ2xhc3NdPVwiZ2V0Q3NzQ2xhc3MoY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSlcIj5cbiAgICAgICAgICA8c3Bhbj57eyBjb3Vyc2UuZW5nbGlzaF9sZXZlbC5uYW1lIHwgdHlwZUxldmVsfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbWFpbj5cbiAgICA8aXB0LWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvaXB0LWxvYWRlcj5cbiAgPC9wLXBhbmVsPlxuXG4gIDwhLS0gY2FyZHMgS2lkcyAtLT5cblxuICA8cC1wYW5lbFxuICAqbmdJZj1cInZpc2libGVLaWRzXCJcbiAgaGVhZGVyPVwiUGxhbiBLaWRzXCJcbiAgW3RvZ2dsZWFibGVdPVwidHJ1ZVwiXG4gIFtjb2xsYXBzZWRdPVwiZmFsc2VcIlxuICBpZD1cInNvY2lhbF9raWRzXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaWNvbnNcIj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bWFpbiAqbmdJZj1cIiFpc0xvYWRpbmdcIiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgIDxzZWN0aW9uICpuZ0Zvcj1cImxldCBjb3Vyc2Ugb2YgY291cnNlS2lkc1wiIGNsYXNzPVwiY2FyZDEgYW5pbWF0ZV9fYW5pbWF0ZWRcIiAgKGNsaWNrKT1cInZpZXdEYXRhQ291cnNlKGNvdXJzZSlcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZDFfX3RpdGxlX19raWRzXCI+e3sgY291cnNlLmNvdXJzZV90eXBlLmxhYmVsIH19PC9oMz5cbiAgICAgICAgPHAgY2xhc3M9XCJjYXJkMV9fY29udGVudFwiPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkNsYXNlcyBUZW9yaWNhczogPC9zdHJvbmc+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkhvcmFyaW8gVGVvcmljbzogPC9zdHJvbmc+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTxicj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPlRoZW9yeSBUZWFjaGVyOiA8L3N0cm9uZz57eyBjb3Vyc2UudGVhY2hlciB8IHRpdGxlY2FzZSB9fTxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5UaGVvcnkgQ2xhc3Nyb29tOiA8L3N0cm9uZz48c3Bhbj57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlRGV0YWlsc1swXS5DbGFzc1Jvb20ubmFtZSAgfCB0aXRsZWNhc2V9fTwvc3Bhbj48YnI+IC0tPlxuICAgICAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbGFzZXMgQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkhvcmFyaW8gQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDxzdHJvbmc+TW9kYWxpZGFkOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9tb2RhbGl0eVwiPnt7IGNvdXJzZS5jb3Vyc2VfbW9kYWxpdHkubmFtZSB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2x1YiBUZWFjaGVyOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLnRlYWNoZXIgfCB0aXRsZWNhc2UgfX08L3NwYW4+PGJyPiAtLT5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIENsYXNzcm9vbTogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGVEZXRhaWxzWzBdLkNsYXNzUm9vbS5uYW1lICB8IHRpdGxlY2FzZX19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPjxocj48L3N0cm9uZz4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2UudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIEluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgIT09IG51bGwgPyBjb3Vyc2Uuc3RhcnRfZGF0ZSA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj5GZWNoYSBjdWxtaW5hY2lvbjogPC9zdHJvbmc+e3sgY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsID8gY291cnNlLmZpbmlzaF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZz5DcmVhdGVkOiA8L3N0cm9uZz57eyBjb3Vyc2UuY3JlYXRlZF9hdCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyPiAtLT5cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2RhdGVcIj5cbiAgICAgICAgICA8IS0tIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiY291cnNlLnN0YXR1cz8uY29sb3Jfc3RhdHVzXCJcbiAgICAgICAgICA+PC9zcGFuPiAtLT5cbiAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiY291cnNlLWNvZGVcIj5Db2RlOiB7e2NvdXJzZS5jb2RlfX08L3NwYW4+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQxX19hcnJvd1wiIFtuZ0NsYXNzXT1cImdldENzc0NsYXNzKGNvdXJzZS5lbmdsaXNoX2xldmVsLm5hbWUpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSB8IHR5cGVMZXZlbH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L21haW4+XG4gICAgPGlwdC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj48L2lwdC1sb2FkZXI+XG4gIDwvcC1wYW5lbD5cblxuICA8IS0tIGNhcmRzIFNjaG9vbHMgLS0+XG5cbiAgPHAtcGFuZWxcbiAgKm5nSWY9XCJ2aXNpYmxlU2Nob29sc1wiXG4gIGhlYWRlcj1cIlBsYW4gU2Nob29sc1wiXG4gIFt0b2dnbGVhYmxlXT1cInRydWVcIlxuICBbY29sbGFwc2VkXT1cImZhbHNlXCJcbiAgaWQ9XCJzb2NpYWxfc2Nob29sXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaWNvbnNcIj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bWFpbiAqbmdJZj1cIiFpc0xvYWRpbmdcIiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgIDxzZWN0aW9uICpuZ0Zvcj1cImxldCBjb3Vyc2Ugb2YgY291cnNlU2Nob29sc1wiIGNsYXNzPVwiY2FyZDEgYW5pbWF0ZV9fYW5pbWF0ZWRcIiAgKGNsaWNrKT1cInZpZXdEYXRhQ291cnNlKGNvdXJzZSlcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZDFfX3RpdGxlX19zY2hvb2xzXCI+e3sgY291cnNlLmNvdXJzZV90eXBlLmxhYmVsIH19PC9oMz5cbiAgICAgICAgPHAgY2xhc3M9XCJjYXJkMV9fY29udGVudFwiPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkNsYXNlcyBUZW9yaWNhczogPC9zdHJvbmc+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkhvcmFyaW8gVGVvcmljbzogPC9zdHJvbmc+e3sgY291cnNlLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTxicj5cbiAgICAgICAgICA8IS0tIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPlRoZW9yeSBUZWFjaGVyOiA8L3N0cm9uZz57eyBjb3Vyc2UudGVhY2hlciB8IHRpdGxlY2FzZSB9fTxicj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5UaGVvcnkgQ2xhc3Nyb29tOiA8L3N0cm9uZz48c3Bhbj57eyBjb3Vyc2UuY291cnNlX3NjaGVkdWxlRGV0YWlsc1swXS5DbGFzc1Jvb20ubmFtZSAgfCB0aXRsZWNhc2V9fTwvc3Bhbj48YnI+IC0tPlxuICAgICAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbGFzZXMgQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkhvcmFyaW8gQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDxzdHJvbmc+TW9kYWxpZGFkOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9tb2RhbGl0eVwiPnt7IGNvdXJzZS5jb3Vyc2VfbW9kYWxpdHkubmFtZSB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2x1YiBUZWFjaGVyOiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlLmNvdXJzZV9jbHViXCI+e3sgY291cnNlLmNvdXJzZV9jbHViLnRlYWNoZXIgfCB0aXRsZWNhc2UgfX08L3NwYW4+PGJyPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5DbHViIENsYXNzcm9vbTogPC9zdHJvbmc+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZS5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZS5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGVEZXRhaWxzWzBdLkNsYXNzUm9vbS5uYW1lICB8IHRpdGxlY2FzZX19PC9zcGFuPjxicj4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nPjxocj48L3N0cm9uZz4gLS0+XG4gICAgICAgICAgPCEtLSA8c3Ryb25nICpuZ0lmPVwiY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2UudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2Uuc3RhcnRfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIEluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlLnN0YXJ0X2RhdGUgIT09IG51bGwgPyBjb3Vyc2Uuc3RhcnRfZGF0ZSA6IG51bGwgfCBkYXRlOidkZC9NTS95eXl5JyB9fTxiciAqbmdJZj1cImNvdXJzZS5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPlxuICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2UuZmluaXNoX2RhdGUgIT09IG51bGxcIj5GZWNoYSBjdWxtaW5hY2lvbjogPC9zdHJvbmc+e3sgY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsID8gY291cnNlLmZpbmlzaF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlLmZpbmlzaF9kYXRlICE9PSBudWxsXCI+IC0tPlxuICAgICAgICAgIDwhLS0gPHN0cm9uZz5DcmVhdGVkOiA8L3N0cm9uZz57eyBjb3Vyc2UuY3JlYXRlZF9hdCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyPiAtLT5cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2RhdGVcIj5cbiAgICAgICAgICA8IS0tIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiY291cnNlLnN0YXR1cz8uY29sb3Jfc3RhdHVzXCJcbiAgICAgICAgICA+PC9zcGFuPiAtLT5cbiAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiY291cnNlLWNvZGVcIj5Db2RlOiB7e2NvdXJzZS5jb2RlfX08L3NwYW4+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQxX19hcnJvd1wiIFtuZ0NsYXNzXT1cImdldENzc0NsYXNzKGNvdXJzZS5lbmdsaXNoX2xldmVsLm5hbWUpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgY291cnNlLmVuZ2xpc2hfbGV2ZWwubmFtZSB8IHR5cGVMZXZlbH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L21haW4+XG4gICAgPGlwdC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj48L2lwdC1sb2FkZXI+XG4gIDwvcC1wYW5lbD5cblxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyX19zcGFuLWZvb3RlciBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cIiF2aXNpYmxlQWNhZGVteSAmJiAhdmlzaWJsZUtpZHMgJiYgIXZpc2libGVTY2hvb2xzXCI+XG4gICAgPHNwYW4+Tm8gc2UgZW5jb250cmFyb24gcGxhbmVzPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiPlxuXG4gIDxwLXBhbmVsXG4gIGhlYWRlcj1cIlwiXG4gIFt0b2dnbGVhYmxlXT1cInRydWVcIlxuICBbY29sbGFwc2VkXT1cImZhbHNlXCJcbiAgaWQ9XCJwLWNvbXBvbmVudCBwYW5lbC1za2VsZXRvblwiXG4gID5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImljb25zXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPG1haW4gY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICA8c2VjdGlvbiAqbmdGb3I9XCJsZXQgY291cnNlIG9mIHNrZWxldG9uXCIgY2xhc3M9XCJjYXJkMSBhbmltYXRlX19hbmltYXRlZFwiICA+XG4gICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiMTJyZW1cIiBoZWlnaHQ9XCIycmVtXCIgc3R5bGVDbGFzcz1cIm1iLTJcIiA+PC9wLXNrZWxldG9uPlxuICAgICAgICA8cCBjbGFzcz1cImNhcmQxX19jb250ZW50X3NrZWxldG9uXCI+XG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCI5cmVtXCIgaGVpZ2h0PVwiMXJlbVwiIHN0eWxlQ2xhc3M9XCJtYi0yXCIgPjwvcC1za2VsZXRvbj5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjlyZW1cIiBoZWlnaHQ9XCIxcmVtXCIgc3R5bGVDbGFzcz1cIm1iLTJcIiA+PC9wLXNrZWxldG9uPlxuICAgICAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiOXJlbVwiIGhlaWdodD1cIjFyZW1cIiBzdHlsZUNsYXNzPVwibWItMlwiID48L3Atc2tlbGV0b24+XG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCI5cmVtXCIgaGVpZ2h0PVwiMXJlbVwiIHN0eWxlQ2xhc3M9XCJtYi0yXCIgPjwvcC1za2VsZXRvbj5cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2RhdGVfX3NrZWxldG9uXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZDFfX2Fycm93XCIgPlxuICAgICAgICAgIDxwLXNrZWxldG9uIHNpemU9XCIzcmVtXCIgc3R5bGVDbGFzcz1cIm1yLTJcIiA+PC9wLXNrZWxldG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L21haW4+XG4gIDwvcC1wYW5lbD5cblxuPC9kaXY+XG5cbiJdfQ==
|