UNPKG

survey-creator-angular

Version:

Use SurveyJS Creator to create or edit JSON for SurveyJS Form Library.

79 lines 16.6 kB
import { Component, ElementRef, Input, ViewChild } from "@angular/core"; import { AngularComponentFactory } from "survey-angular-ui"; import { QuestionAdornerViewModel } from "survey-creator-core"; import { CreatorModelComponent } from "./creator-model.component"; import * as i0 from "@angular/core"; import * as i1 from "survey-angular-ui"; import * as i2 from "./question-banner.component"; import * as i3 from "@angular/common"; export class QuestionDesignerComponent extends CreatorModelComponent { constructor() { super(...arguments); this.adornerComponent = ""; } get creator() { return this.componentData.data; } get model() { return this.componentData.model; } createModel() { if (this.componentData) { this.adorner = new QuestionAdornerViewModel(this.creator, this.model, null); } } getPropertiesToTrack() { return ["model", "creator"]; } getModel() { return this.adorner; } get placeholderComponent() { return ""; } get placeholderComponentData() { return null; } get showPlaceholderComponent() { return false; } selectQuestionType(event) { var _a; event.stopPropagation(); (_a = this.adorner.questionTypeSelectorModel) === null || _a === void 0 ? void 0 : _a.action(this.adorner.questionTypeSelectorModel, event); } addNewQuestion(event) { event.stopPropagation(); this.adorner.addNewQuestion(); } ngAfterViewChecked() { var _a; super.ngAfterViewChecked(); if (this.adorner && ((_a = this.container) === null || _a === void 0 ? void 0 : _a.nativeElement)) { this.adorner.rootElement = this.container.nativeElement; } } ngOnDestroy() { super.ngOnDestroy(); this.adorner.dispose(); } } QuestionDesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); QuestionDesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionDesignerComponent, selector: "svc-question", inputs: { componentName: "componentName", componentData: "componentData" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"adorner\" class=\"svc-question__adorner\" [class]=\"adorner.rootCss()\" (dblclick)=\"adorner.dblclick($event)\"\n (mouseover)=\"adorner.hover($event, $event.currentTarget)\" (mouseleave)=\"adorner.hover($event, $event.currentTarget)\"\n [attr.data-sv-drop-target-survey-element]=\"adorner.element.name || null\" #container>\n <div *ngIf=\"adorner.showHiddenTitle\" [class]=\"adorner.cssCollapsedHiddenHeader\">\n <sv-ng-element-title *ngIf=\"!!model.hasTitle\" [element]=\"model\"></sv-ng-element-title>\n <div *ngIf=\"!model.hasTitle\" [class]=\"adorner.cssCollapsedHiddenTitle\">\n <span class=\"svc-fake-title\">{{model.name}}</span>\n </div>\n </div>\n <div [class]=\"adorner.css()\" [key2click]=\"{ disableTabStop: true }\" (click)=\"adorner.select(adorner, $event)\">\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--left\"></div>\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--right\"></div>\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--top\"></div>\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--bottom\"></div>\n <div *ngIf=\"adorner.allowDragging\" class=\"svc-question__drag-area\" (pointerdown)=\"adorner.onPointerDown($event)\">\n <svg class=\"svc-question__drag-element\" [iconName]=\"'icon-drag-area-indicator_24x16'\" [size]=\"'auto'\"\n sv-ng-svg-icon></svg>\n <div class=\"svc-question__top-actions\">\n <sv-action-bar [model]=\"adorner.topActionContainer\" [handleClick]=\"false\"></sv-action-bar>\n </div>\n </div>\n <ng-container *ngIf=\"adorner.needToRenderContent\">\n <ng-template [component]=\"{ name: componentName, data: componentData }\"></ng-template>\n <div *ngIf=\"adorner.isEmptyElement && !showPlaceholderComponent\" class=\"svc-panel__placeholder_frame-wrapper\">\n <div class=\"svc-panel__placeholder_frame\">\n <div class=\"svc-panel__placeholder\">{{ adorner.placeholderText }}</div>\n </div>\n </div>\n <ng-template *ngIf=\"adorner.isEmptyElement && !!showPlaceholderComponent\"\n [component]=\"{ name: placeholderComponent, data: placeholderComponentData }\">\n </ng-template>\n <ng-template *ngIf=\"adornerComponent\"\n [component]=\"{ name: adornerComponent, data: { adorner: adorner, question: model } }\">\n </ng-template>\n <svc-question-banner *ngIf=\"adorner.isBannerShowing\" [model]=\"adorner.createBannerParams()\">\n </svc-question-banner>\n <div class=\"svc-question__content-actions\" (focusin)=\"adorner.select(adorner, $event)\">\n <sv-action-bar [model]=\"adorner.actionContainer\" [handleClick]=\"false\"></sv-action-bar>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.ElementTitleComponent, selector: "sv-ng-element-title", inputs: ["element"] }, { type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: i2.QuestionBannerComponent, selector: "svc-question-banner", inputs: ["model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionDesignerComponent, decorators: [{ type: Component, args: [{ selector: "svc-question", templateUrl: "./question.component.html", styles: [":host { display: none; }"] }] }], propDecorators: { componentName: [{ type: Input }], componentData: [{ type: Input }], container: [{ type: ViewChild, args: ["container", { read: ElementRef }] }] } }); AngularComponentFactory.Instance.registerComponent("svc-question", QuestionDesignerComponent); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uL3NyYy9xdWVzdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUFFLHVCQUF1QixFQUE2QyxNQUFNLG1CQUFtQixDQUFDO0FBRXZHLE9BQU8sRUFBc0Isd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFPbEUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHFCQUErQztJQUw5Rjs7UUFzREUscUJBQWdCLEdBQUcsRUFBRSxDQUFDO0tBQ3ZCO0lBN0NDLElBQWMsT0FBTztRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDUyxXQUFXO1FBQ25CLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFPLElBQUksQ0FBQyxDQUFDO1NBQ2xGO0lBQ0gsQ0FBQztJQUNTLG9CQUFvQjtRQUM1QixPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDUyxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsSUFBVyx3QkFBd0I7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBVyx3QkFBd0I7UUFDakMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ00sa0JBQWtCLENBQUMsS0FBVTs7UUFDbEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsMENBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUNNLGNBQWMsQ0FBQyxLQUFVO1FBQzlCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDZSxrQkFBa0I7O1FBQ2hDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLGFBQWEsQ0FBQSxFQUFFO1lBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUNRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7dUhBaERVLHlCQUF5QjsyR0FBekIseUJBQXlCLG1OQUdKLFVBQVUsb0RDZDVDLCsxRkEyQ2M7NEZEaENELHlCQUF5QjtrQkFMckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLDJCQUEyQjtvQkFDeEMsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUVVLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDd0MsU0FBUztzQkFBdEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOztBQWlEOUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnksIEJhc2VBbmd1bGFyLCBFbWJlZGRlZFZpZXdDb250ZW50Q29tcG9uZW50IH0gZnJvbSBcInN1cnZleS1hbmd1bGFyLXVpXCI7XG5pbXBvcnQgeyBQYWdlTW9kZWwsIFBhbmVsTW9kZWwsIFF1ZXN0aW9uLCBTdXJ2ZXlNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvck1vZGVsLCBRdWVzdGlvbkFkb3JuZXJWaWV3TW9kZWwgfSBmcm9tIFwic3VydmV5LWNyZWF0b3ItY29yZVwiO1xuaW1wb3J0IHsgQ3JlYXRvck1vZGVsQ29tcG9uZW50IH0gZnJvbSBcIi4vY3JlYXRvci1tb2RlbC5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2Yy1xdWVzdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3F1ZXN0aW9uLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlczogW1wiOmhvc3QgeyBkaXNwbGF5OiBub25lOyB9XCJdXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uRGVzaWduZXJDb21wb25lbnQgZXh0ZW5kcyBDcmVhdG9yTW9kZWxDb21wb25lbnQ8UXVlc3Rpb25BZG9ybmVyVmlld01vZGVsPiB7XG4gIEBJbnB1dCgpIGNvbXBvbmVudE5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvbXBvbmVudERhdGEhOiBhbnk7XG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIiwgeyByZWFkOiBFbGVtZW50UmVmIH0pIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBwdWJsaWMgYWRvcm5lciE6IFF1ZXN0aW9uQWRvcm5lclZpZXdNb2RlbDtcbiAgcHJvdGVjdGVkIGdldCBjcmVhdG9yKCk6IFN1cnZleUNyZWF0b3JNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50RGF0YS5kYXRhO1xuICB9XG4gIHB1YmxpYyBnZXQgbW9kZWwoKTogUXVlc3Rpb24gfCBQYW5lbE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnREYXRhLm1vZGVsO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGVNb2RlbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnREYXRhKSB7XG4gICAgICB0aGlzLmFkb3JuZXIgPSBuZXcgUXVlc3Rpb25BZG9ybmVyVmlld01vZGVsKHRoaXMuY3JlYXRvciwgdGhpcy5tb2RlbCwgPGFueT5udWxsKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGdldFByb3BlcnRpZXNUb1RyYWNrKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1wibW9kZWxcIiwgXCJjcmVhdG9yXCJdO1xuICB9XG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBRdWVzdGlvbkFkb3JuZXJWaWV3TW9kZWwge1xuICAgIHJldHVybiB0aGlzLmFkb3JuZXI7XG4gIH1cbiAgcHVibGljIGdldCBwbGFjZWhvbGRlckNvbXBvbmVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXJDb21wb25lbnREYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcHVibGljIGdldCBzaG93UGxhY2Vob2xkZXJDb21wb25lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHB1YmxpYyBzZWxlY3RRdWVzdGlvblR5cGUoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWRvcm5lci5xdWVzdGlvblR5cGVTZWxlY3Rvck1vZGVsPy5hY3Rpb24odGhpcy5hZG9ybmVyLnF1ZXN0aW9uVHlwZVNlbGVjdG9yTW9kZWwsIGV2ZW50KTtcbiAgfVxuICBwdWJsaWMgYWRkTmV3UXVlc3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWRvcm5lci5hZGROZXdRdWVzdGlvbigpO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdDaGVja2VkKCk7XG4gICAgaWYgKHRoaXMuYWRvcm5lciAmJiB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5hZG9ybmVyLnJvb3RFbGVtZW50ID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICB9XG4gIH1cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmFkb3JuZXIuZGlzcG9zZSgpO1xuICB9XG4gIGFkb3JuZXJDb21wb25lbnQgPSBcIlwiO1xufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2Yy1xdWVzdGlvblwiLCBRdWVzdGlvbkRlc2lnbmVyQ29tcG9uZW50KTtcblxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiAqbmdJZj1cImFkb3JuZXJcIiBjbGFzcz1cInN2Yy1xdWVzdGlvbl9fYWRvcm5lclwiIFtjbGFzc109XCJhZG9ybmVyLnJvb3RDc3MoKVwiIChkYmxjbGljayk9XCJhZG9ybmVyLmRibGNsaWNrKCRldmVudClcIlxuICAgIChtb3VzZW92ZXIpPVwiYWRvcm5lci5ob3ZlcigkZXZlbnQsICRldmVudC5jdXJyZW50VGFyZ2V0KVwiIChtb3VzZWxlYXZlKT1cImFkb3JuZXIuaG92ZXIoJGV2ZW50LCAkZXZlbnQuY3VycmVudFRhcmdldClcIlxuICAgIFthdHRyLmRhdGEtc3YtZHJvcC10YXJnZXQtc3VydmV5LWVsZW1lbnRdPVwiYWRvcm5lci5lbGVtZW50Lm5hbWUgfHwgbnVsbFwiICNjb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cImFkb3JuZXIuc2hvd0hpZGRlblRpdGxlXCIgW2NsYXNzXT1cImFkb3JuZXIuY3NzQ29sbGFwc2VkSGlkZGVuSGVhZGVyXCI+XG4gICAgICA8c3YtbmctZWxlbWVudC10aXRsZSAqbmdJZj1cIiEhbW9kZWwuaGFzVGl0bGVcIiBbZWxlbWVudF09XCJtb2RlbFwiPjwvc3YtbmctZWxlbWVudC10aXRsZT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFtb2RlbC5oYXNUaXRsZVwiIFtjbGFzc109XCJhZG9ybmVyLmNzc0NvbGxhcHNlZEhpZGRlblRpdGxlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmMtZmFrZS10aXRsZVwiPnt7bW9kZWwubmFtZX19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbY2xhc3NdPVwiYWRvcm5lci5jc3MoKVwiIFtrZXkyY2xpY2tdPVwieyBkaXNhYmxlVGFiU3RvcDogdHJ1ZSB9XCIgKGNsaWNrKT1cImFkb3JuZXIuc2VsZWN0KGFkb3JuZXIsICRldmVudClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yIHN2Yy1xdWVzdGlvbl9fZHJvcC1pbmRpY2F0b3ItLWxlZnRcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yIHN2Yy1xdWVzdGlvbl9fZHJvcC1pbmRpY2F0b3ItLXJpZ2h0XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ZjLXF1ZXN0aW9uX19kcm9wLWluZGljYXRvciBzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yLS10b3BcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yIHN2Yy1xdWVzdGlvbl9fZHJvcC1pbmRpY2F0b3ItLWJvdHRvbVwiPjwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImFkb3JuZXIuYWxsb3dEcmFnZ2luZ1wiIGNsYXNzPVwic3ZjLXF1ZXN0aW9uX19kcmFnLWFyZWFcIiAocG9pbnRlcmRvd24pPVwiYWRvcm5lci5vblBvaW50ZXJEb3duKCRldmVudClcIj5cbiAgICAgICAgPHN2ZyBjbGFzcz1cInN2Yy1xdWVzdGlvbl9fZHJhZy1lbGVtZW50XCIgW2ljb25OYW1lXT1cIidpY29uLWRyYWctYXJlYS1pbmRpY2F0b3JfMjR4MTYnXCIgW3NpemVdPVwiJ2F1dG8nXCJcbiAgICAgICAgICBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1xdWVzdGlvbl9fdG9wLWFjdGlvbnNcIj5cbiAgICAgICAgICA8c3YtYWN0aW9uLWJhciBbbW9kZWxdPVwiYWRvcm5lci50b3BBY3Rpb25Db250YWluZXJcIiBbaGFuZGxlQ2xpY2tdPVwiZmFsc2VcIj48L3N2LWFjdGlvbi1iYXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRvcm5lci5uZWVkVG9SZW5kZXJDb250ZW50XCI+XG4gICAgICA8bmctdGVtcGxhdGUgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGNvbXBvbmVudE5hbWUsIGRhdGE6IGNvbXBvbmVudERhdGEgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYWRvcm5lci5pc0VtcHR5RWxlbWVudCAmJiAhc2hvd1BsYWNlaG9sZGVyQ29tcG9uZW50XCIgY2xhc3M9XCJzdmMtcGFuZWxfX3BsYWNlaG9sZGVyX2ZyYW1lLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1wYW5lbF9fcGxhY2Vob2xkZXJfZnJhbWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLXBhbmVsX19wbGFjZWhvbGRlclwiPnt7IGFkb3JuZXIucGxhY2Vob2xkZXJUZXh0IH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJhZG9ybmVyLmlzRW1wdHlFbGVtZW50ICYmICEhc2hvd1BsYWNlaG9sZGVyQ29tcG9uZW50XCJcbiAgICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IHBsYWNlaG9sZGVyQ29tcG9uZW50LCBkYXRhOiBwbGFjZWhvbGRlckNvbXBvbmVudERhdGEgfVwiPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImFkb3JuZXJDb21wb25lbnRcIlxuICAgICAgICBbY29tcG9uZW50XT1cInsgbmFtZTogYWRvcm5lckNvbXBvbmVudCwgZGF0YTogeyBhZG9ybmVyOiBhZG9ybmVyLCBxdWVzdGlvbjogbW9kZWwgfSB9XCI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPHN2Yy1xdWVzdGlvbi1iYW5uZXIgKm5nSWY9XCJhZG9ybmVyLmlzQmFubmVyU2hvd2luZ1wiIFttb2RlbF09XCJhZG9ybmVyLmNyZWF0ZUJhbm5lclBhcmFtcygpXCI+XG4gICAgICA8L3N2Yy1xdWVzdGlvbi1iYW5uZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ZjLXF1ZXN0aW9uX19jb250ZW50LWFjdGlvbnNcIiAoZm9jdXNpbik9XCJhZG9ybmVyLnNlbGVjdChhZG9ybmVyLCAkZXZlbnQpXCI+XG4gICAgICAgIDxzdi1hY3Rpb24tYmFyIFttb2RlbF09XCJhZG9ybmVyLmFjdGlvbkNvbnRhaW5lclwiIFtoYW5kbGVDbGlja109XCJmYWxzZVwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=