com.phloxui
Version:
PhloxUI Ng2+ Framework
226 lines (225 loc) • 22.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ElementRef, Input, Output, EventEmitter } from '@angular/core';
import { DialogService } from '../../../../service/DialogService.service';
import { ComponentDataLangSelector } from '../../../../component/dataview/ComponentDataLangSelector.component';
import { Option } from '../../../../decorator/Option.decorator';
import { I18N } from '../../../../decorator/I18N.decorator';
import { ComponentDataLangSelectorModel } from '../../../../component/model/ComponentDataLangSelectorModel';
var /** @type {?} */ TYPE_NAME = "material-component-lang-selector";
var MaterialComponentDataLangSelector = /** @class */ (function (_super) {
tslib_1.__extends(MaterialComponentDataLangSelector, _super);
function MaterialComponentDataLangSelector(elementRef, dialogService) {
return _super.call(this, elementRef, dialogService) || this;
}
/**
* @return {?}
*/
MaterialComponentDataLangSelector.prototype.ngOnInit = /**
* @return {?}
*/
function () {
_super.prototype.ngOnInit.call(this);
};
MaterialComponentDataLangSelector.TYPE_NAME = TYPE_NAME;
MaterialComponentDataLangSelector.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: "<div class=\"material-component-lang-selector disabled-overlay\" [style.width]=\"getWidth()\" [style.height]=\"getHeight()\">\n\t<div class=\"wrapper left\" [class.expand]=\"!hasLanguage()\">\n\t\t<div class=\"component-pane\"> \n\t\t\t<!-- default -->\n\t\t\t<div class=\"component-wrapper\" [class.show]=\"_isSelectedLanguageByIndex(null)\">\n\t\t\t\t<phx-component-wrapper *ngIf=\"hasModel()\" [type]=\"getModel().componentType\" [model]=\"getModel().componentModel\"\n\t\t\t\t\t[handler]=\"getDefaultComponentHandler()\" [data]=\"getDefaultData()\" [dataParent]=\"this\"\n\t\t\t\t\t[options]=\"getModel().componentOptions\"></phx-component-wrapper>\n\t\t\t</div> \n\t\t\t<!-- by lang -->\n\t\t\t<ng-template ngFor let-item [ngForOf]=\"_getDataLangList()\" let-i=\"index\">\n\t\t\t\t<div class=\"component-wrapper\" [class.show]=\"_isSelectedLanguageByIndex(i)\">\n\t\t\t\t\t<phx-component-wrapper *ngIf=\"hasModel() && item !== null\" [type]=\"getModel().componentType\" [model]=\"getModel().componentModel\"\n\t\t\t\t\t\t[handler]=\"getComponentHandler()\" [setting]=\"getComponentSetting(i)\" [data]=\"item\" [dataParent]=\"this\"\n\t\t\t\t\t\t[options]=\"getModel().componentOptions\"></phx-component-wrapper>\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t</div>\n\t</div>\n\t<div class=\"wrapper right\" [class.hide]=\"!hasLanguage()\">\n\t\t<div class=\"lang-pane\">\n\t\t\t<div class=\"language-btn default data\" [class.selected]=\"isSelectedLanguage(null)\" [class.dirty]=\"_isDataDirtyByIndex(null)\"\n\t\t\t\t(click)=\"onActionBtnClicked($event, null, null)\">\n\t\t\t\t<div class=\"table-wrapper fluid\">\n\t\t\t\t\t<div class=\"table-cell-wrapper middle\">\n\t\t\t\t\t\tDefault\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngFor=\"let item of getMergedLanguageList(); let i = index\" class=\"language-btn\" [class.data]=\"_langHasDataByIndex(i)\"\n\t\t\t\t[class.dirty]=\"_isDataDirtyByIndex(i)\"\n\t\t\t\t[class.selected]=\"isSelectedLanguage(item)\" (click)=\"onActionBtnClicked($event, item, i)\">\n\t\t\t\t<div class=\"table-wrapper fluid\">\n\t\t\t\t\t<div class=\"table-cell-wrapper middle\">\n\t\t\t\t\t\t<div *ngIf=\"!_hasButtonIcon(item)\">{{item.label}}</div>\n\t\t\t\t\t\t<div *ngIf=\"_hasButtonIcon(item)\">\n\t\t\t\t\t\t\t<img src=\"{{item.iconURL}}\">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"mocking-btn\"></div>\n\t\t</div>\n\t</div>\n</div>\n"
},] },
];
/** @nocollapse */
MaterialComponentDataLangSelector.ctorParameters = function () { return [
{ type: ElementRef, },
{ type: DialogService, },
]; };
MaterialComponentDataLangSelector.propDecorators = {
"model": [{ type: Input },],
"controller": [{ type: Input },],
"dataParent": [{ type: Input },],
"ignoreParentData": [{ type: Input },],
"data": [{ type: Input },],
"ignoreParentDisabled": [{ type: Input },],
"delegateHistory": [{ type: Input },],
"onDisabled": [{ type: Input },],
"onEnabled": [{ type: Input },],
"loadingEnabled": [{ type: Input },],
"i18nKey": [{ type: Input },],
"bypass": [{ type: Input, args: ['i18nBypass',] },],
"options": [{ type: Input },],
"disabled": [{ type: Input },],
"help": [{ type: Input },],
"width": [{ type: Input },],
"height": [{ type: Input },],
"loadEvent": [{ type: Output, args: ['phxLoad',] },],
"langClickEvent": [{ type: Output, args: ['phxLangClick',] },],
"langAddEvent": [{ type: Output, args: ['phxLangAdd',] },],
"langRemoveEvent": [{ type: Output, args: ['phxLangRemove',] },],
"beforeLangClickEvent": [{ type: Output, args: ['phxBeforeLangClick',] },],
"beforeLangAddEvent": [{ type: Output, args: ['phxBeforeLangAdd',] },],
"beforeLangRemoveEvent": [{ type: Output, args: ['phxBeforeLangRemove',] },],
};
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", ComponentDataLangSelectorModel)
], MaterialComponentDataLangSelector.prototype, "model", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialComponentDataLangSelector.prototype, "controller", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialComponentDataLangSelector.prototype, "dataParent", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialComponentDataLangSelector.prototype, "ignoreParentData", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialComponentDataLangSelector.prototype, "data", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialComponentDataLangSelector.prototype, "ignoreParentDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialComponentDataLangSelector.prototype, "delegateHistory", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], MaterialComponentDataLangSelector.prototype, "onDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], MaterialComponentDataLangSelector.prototype, "onEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialComponentDataLangSelector.prototype, "loadingEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialComponentDataLangSelector.prototype, "i18nKey", void 0);
tslib_1.__decorate([
Option('i18nBypass'),
tslib_1.__metadata("design:type", Boolean)
], MaterialComponentDataLangSelector.prototype, "bypass", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialComponentDataLangSelector.prototype, "disabled", void 0);
tslib_1.__decorate([
I18N(),
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialComponentDataLangSelector.prototype, "help", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialComponentDataLangSelector.prototype, "width", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialComponentDataLangSelector.prototype, "height", void 0);
tslib_1.__decorate([
Option('load'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialComponentDataLangSelector.prototype, "loadEvent", void 0);
tslib_1.__decorate([
Option('langClick'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialComponentDataLangSelector.prototype, "langClickEvent", void 0);
tslib_1.__decorate([
Option('langAdd'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialComponentDataLangSelector.prototype, "langAddEvent", void 0);
tslib_1.__decorate([
Option('langRemove'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialComponentDataLangSelector.prototype, "langRemoveEvent", void 0);
tslib_1.__decorate([
Option('beforeLangClick'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialComponentDataLangSelector.prototype, "beforeLangClickEvent", void 0);
tslib_1.__decorate([
Option('beforeLangAdd'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialComponentDataLangSelector.prototype, "beforeLangAddEvent", void 0);
tslib_1.__decorate([
Option('beforeLangRemove'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialComponentDataLangSelector.prototype, "beforeLangRemoveEvent", void 0);
return MaterialComponentDataLangSelector;
}(ComponentDataLangSelector));
export { MaterialComponentDataLangSelector };
function MaterialComponentDataLangSelector_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MaterialComponentDataLangSelector.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MaterialComponentDataLangSelector.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
MaterialComponentDataLangSelector.propDecorators;
/** @type {?} */
MaterialComponentDataLangSelector.TYPE_NAME;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.model;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.controller;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.dataParent;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.ignoreParentData;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.data;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.ignoreParentDisabled;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.delegateHistory;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.onDisabled;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.onEnabled;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.loadingEnabled;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.i18nKey;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.bypass;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.options;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.disabled;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.help;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.width;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.height;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.loadEvent;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.langClickEvent;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.langAddEvent;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.langRemoveEvent;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.beforeLangClickEvent;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.beforeLangAddEvent;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.beforeLangRemoveEvent;
/** @type {?} */
MaterialComponentDataLangSelector.prototype.selectedLanguageIndex;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL3RoZW1lL21hdGVyaWFsL2NvbXBvbmVudC9kYXRhdmlldy9NYXRlcmlhbENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBRy9HLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFNUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFJNUcscUJBQU0sU0FBUyxHQUFXLGtDQUFrQyxDQUFDOztJQW9ETiw2REFBeUI7SUF1RjlFLDJDQUFZLFVBQXNCLEVBQUUsYUFBNEI7ZUFDOUQsa0JBQU0sVUFBVSxFQUFFLGFBQWEsQ0FBQztLQUNqQzs7OztJQUVNLG9EQUFROzs7O1FBQ2IsaUJBQU0sUUFBUSxXQUFFLENBQUM7O2tEQTFGd0IsU0FBUzs7Z0JBcERyRCxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNuQixRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLHE0RUE2Q1g7aUJBQ0E7Ozs7Z0JBL0QyQixVQUFVO2dCQUM3QixhQUFhOzs7MEJBcUVuQixLQUFLOytCQUdMLEtBQUs7K0JBR0wsS0FBSztxQ0FHTCxLQUFLO3lCQUdMLEtBQUs7eUNBR0wsS0FBSztvQ0FHTCxLQUFLOytCQUdMLEtBQUs7OEJBR0wsS0FBSzttQ0FHTCxLQUFLOzRCQUdMLEtBQUs7MkJBR0wsS0FBSyxTQUFDLFlBQVk7NEJBR2xCLEtBQUs7NkJBRUwsS0FBSzt5QkFJTCxLQUFLOzBCQUtMLEtBQUs7MkJBR0wsS0FBSzs4QkFNTCxNQUFNLFNBQUMsU0FBUzttQ0FJaEIsTUFBTSxTQUFDLGNBQWM7aUNBR3JCLE1BQU0sU0FBQyxZQUFZO29DQUduQixNQUFNLFNBQUMsZUFBZTt5Q0FHdEIsTUFBTSxTQUFDLG9CQUFvQjt1Q0FHM0IsTUFBTSxTQUFDLGtCQUFrQjswQ0FHekIsTUFBTSxTQUFDLHFCQUFxQjs7O1FBMUU1QixNQUFNLEVBQUU7MENBQ1EsOEJBQThCOzs7UUFFOUMsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzBDQUNhLFFBQVE7OztRQUU3QixNQUFNLEVBQUU7MENBQ1ksUUFBUTs7O1FBRTVCLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sQ0FBQyxZQUFZLENBQUM7Ozs7UUFLcEIsTUFBTSxFQUFFOzs7O1FBSVIsSUFBSSxFQUFFO1FBQ04sTUFBTSxFQUFFOzs7O1FBSVIsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBTVIsTUFBTSxDQUFDLE1BQU0sQ0FBQzswQ0FDTSxZQUFZOzs7UUFHaEMsTUFBTSxDQUFDLFdBQVcsQ0FBQzswQ0FDTSxZQUFZOzs7UUFFckMsTUFBTSxDQUFDLFNBQVMsQ0FBQzswQ0FDTSxZQUFZOzs7UUFFbkMsTUFBTSxDQUFDLFlBQVksQ0FBQzswQ0FDTSxZQUFZOzs7UUFFdEMsTUFBTSxDQUFDLGlCQUFpQixDQUFDOzBDQUNNLFlBQVk7OztRQUUzQyxNQUFNLENBQUMsZUFBZSxDQUFDOzBDQUNNLFlBQVk7OztRQUV6QyxNQUFNLENBQUMsa0JBQWtCLENBQUM7MENBQ00sWUFBWTs7NENBbkovQztFQWdFdUQseUJBQXlCO1NBQW5FLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL0RpYWxvZ1NlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50L2RhdGF2aWV3L0NvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IElIYXNIZWxwIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50L0lIYXNIZWxwJztcbmltcG9ydCB7IElIYXNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50L0lIYXNEYXRhJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvci9PcHRpb24uZGVjb3JhdG9yJztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3IvSTE4Ti5kZWNvcmF0b3InO1xuaW1wb3J0IHsgSURhdGFMYW5nU2VsZWN0b3JDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50L0lEYXRhTGFuZ1NlbGVjdG9yQ29udHJvbGxlcic7XG5pbXBvcnQgeyBDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnQvbW9kZWwvQ29tcG9uZW50RGF0YUxhbmdTZWxlY3Rvck1vZGVsJztcblxuZGVjbGFyZSB2YXIgJDogYW55O1xuXG5jb25zdCBUWVBFX05BTUU6IHN0cmluZyA9IFwibWF0ZXJpYWwtY29tcG9uZW50LWxhbmctc2VsZWN0b3JcIjtcblxuQENvbXBvbmVudCh7XG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXG4gIHNlbGVjdG9yOiBUWVBFX05BTUUsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cIm1hdGVyaWFsLWNvbXBvbmVudC1sYW5nLXNlbGVjdG9yIGRpc2FibGVkLW92ZXJsYXlcIiBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGgoKVwiIFtzdHlsZS5oZWlnaHRdPVwiZ2V0SGVpZ2h0KClcIj5cblx0PGRpdiBjbGFzcz1cIndyYXBwZXIgbGVmdFwiIFtjbGFzcy5leHBhbmRdPVwiIWhhc0xhbmd1YWdlKClcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY29tcG9uZW50LXBhbmVcIj4gXG5cdFx0XHQ8IS0tIGRlZmF1bHQgLS0+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29tcG9uZW50LXdyYXBwZXJcIiBbY2xhc3Muc2hvd109XCJfaXNTZWxlY3RlZExhbmd1YWdlQnlJbmRleChudWxsKVwiPlxuXHRcdFx0XHQ8cGh4LWNvbXBvbmVudC13cmFwcGVyICpuZ0lmPVwiaGFzTW9kZWwoKVwiIFt0eXBlXT1cImdldE1vZGVsKCkuY29tcG9uZW50VHlwZVwiIFttb2RlbF09XCJnZXRNb2RlbCgpLmNvbXBvbmVudE1vZGVsXCJcblx0XHRcdFx0XHRbaGFuZGxlcl09XCJnZXREZWZhdWx0Q29tcG9uZW50SGFuZGxlcigpXCIgW2RhdGFdPVwiZ2V0RGVmYXVsdERhdGEoKVwiIFtkYXRhUGFyZW50XT1cInRoaXNcIlxuXHRcdFx0XHRcdFtvcHRpb25zXT1cImdldE1vZGVsKCkuY29tcG9uZW50T3B0aW9uc1wiPjwvcGh4LWNvbXBvbmVudC13cmFwcGVyPlxuXHRcdFx0PC9kaXY+IFxuXHRcdFx0PCEtLSBieSBsYW5nIC0tPlxuXHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIGxldC1pdGVtIFtuZ0Zvck9mXT1cIl9nZXREYXRhTGFuZ0xpc3QoKVwiIGxldC1pPVwiaW5kZXhcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbXBvbmVudC13cmFwcGVyXCIgW2NsYXNzLnNob3ddPVwiX2lzU2VsZWN0ZWRMYW5ndWFnZUJ5SW5kZXgoaSlcIj5cblx0XHRcdFx0XHQ8cGh4LWNvbXBvbmVudC13cmFwcGVyICpuZ0lmPVwiaGFzTW9kZWwoKSAmJiBpdGVtICE9PSBudWxsXCIgW3R5cGVdPVwiZ2V0TW9kZWwoKS5jb21wb25lbnRUeXBlXCIgW21vZGVsXT1cImdldE1vZGVsKCkuY29tcG9uZW50TW9kZWxcIlxuXHRcdFx0XHRcdFx0W2hhbmRsZXJdPVwiZ2V0Q29tcG9uZW50SGFuZGxlcigpXCIgW3NldHRpbmddPVwiZ2V0Q29tcG9uZW50U2V0dGluZyhpKVwiIFtkYXRhXT1cIml0ZW1cIiBbZGF0YVBhcmVudF09XCJ0aGlzXCJcblx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImdldE1vZGVsKCkuY29tcG9uZW50T3B0aW9uc1wiPjwvcGh4LWNvbXBvbmVudC13cmFwcGVyPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwid3JhcHBlciByaWdodFwiIFtjbGFzcy5oaWRlXT1cIiFoYXNMYW5ndWFnZSgpXCI+XG5cdFx0PGRpdiBjbGFzcz1cImxhbmctcGFuZVwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImxhbmd1YWdlLWJ0biBkZWZhdWx0IGRhdGFcIiBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZExhbmd1YWdlKG51bGwpXCIgW2NsYXNzLmRpcnR5XT1cIl9pc0RhdGFEaXJ0eUJ5SW5kZXgobnVsbClcIlxuXHRcdFx0XHQoY2xpY2spPVwib25BY3Rpb25CdG5DbGlja2VkKCRldmVudCwgbnVsbCwgbnVsbClcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYmxlLXdyYXBwZXIgZmx1aWRcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFibGUtY2VsbC13cmFwcGVyIG1pZGRsZVwiPlxuXHRcdFx0XHRcdFx0RGVmYXVsdFxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRNZXJnZWRMYW5ndWFnZUxpc3QoKTsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwibGFuZ3VhZ2UtYnRuXCIgW2NsYXNzLmRhdGFdPVwiX2xhbmdIYXNEYXRhQnlJbmRleChpKVwiXG5cdFx0XHRcdFtjbGFzcy5kaXJ0eV09XCJfaXNEYXRhRGlydHlCeUluZGV4KGkpXCJcblx0XHRcdFx0W2NsYXNzLnNlbGVjdGVkXT1cImlzU2VsZWN0ZWRMYW5ndWFnZShpdGVtKVwiIChjbGljayk9XCJvbkFjdGlvbkJ0bkNsaWNrZWQoJGV2ZW50LCBpdGVtLCBpKVwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlciBmbHVpZFwiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1jZWxsLXdyYXBwZXIgbWlkZGxlXCI+XG5cdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwiIV9oYXNCdXR0b25JY29uKGl0ZW0pXCI+e3tpdGVtLmxhYmVsfX08L2Rpdj5cblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJfaGFzQnV0dG9uSWNvbihpdGVtKVwiPlxuXHRcdFx0XHRcdFx0XHQ8aW1nIHNyYz1cInt7aXRlbS5pY29uVVJMfX1cIj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vY2tpbmctYnRuXCI+PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG5gXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQ29tcG9uZW50RGF0YUxhbmdTZWxlY3RvciBleHRlbmRzIENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IgaW1wbGVtZW50cyBPbkluaXQsIElIYXNIZWxwIHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xuXG4gIC8vIFJlLWRlY2xhcmUgZmllbGQgdG8gZGVjbGFyZSBuZyBASW5wdXQuIFxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBtb2RlbDogQ29tcG9uZW50RGF0YUxhbmdTZWxlY3Rvck1vZGVsO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGNvbnRyb2xsZXI6IElEYXRhTGFuZ1NlbGVjdG9yQ29udHJvbGxlcjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBkYXRhUGFyZW50OiBJSGFzRGF0YTtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBpZ25vcmVQYXJlbnREYXRhOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGRhdGE6IGFueTtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBpZ25vcmVQYXJlbnREaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBkZWxlZ2F0ZUhpc3Rvcnk6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgb25EaXNhYmxlZDogRnVuY3Rpb247XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgb25FbmFibGVkOiBGdW5jdGlvbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBsb2FkaW5nRW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBpMThuS2V5OiBzdHJpbmc7XG4gIEBJbnB1dCgnaTE4bkJ5cGFzcycpXG4gIEBPcHRpb24oJ2kxOG5CeXBhc3MnKVxuICBwcm90ZWN0ZWQgYnlwYXNzOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQgb3B0aW9uczogYW55O1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGRpc2FibGVkOiBib29sZWFuO1xuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFIZWxwXG4gIEBJbnB1dCgpXG4gIEBJMThOKClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBoZWxwOiBhbnk7XG4gIC8vIC0tLSBmcm9tIENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3JcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCB3aWR0aDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGhlaWdodDogc3RyaW5nO1xuXG4gIC8vIFJlLWRlY2xhcmUgZmllbGQgdG8gZGVjbGFyZSBuZyBAT3V0cHV0LlxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFcbiAgQE91dHB1dCgncGh4TG9hZCcpXG4gIEBPcHRpb24oJ2xvYWQnKVxuICBwcm90ZWN0ZWQgbG9hZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3REYXRhTGFuZ1NlbGVjdG9yXG4gIEBPdXRwdXQoJ3BoeExhbmdDbGljaycpXG4gIEBPcHRpb24oJ2xhbmdDbGljaycpXG4gIHByb3RlY3RlZCBsYW5nQ2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeExhbmdBZGQnKVxuICBAT3B0aW9uKCdsYW5nQWRkJylcbiAgcHJvdGVjdGVkIGxhbmdBZGRFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeExhbmdSZW1vdmUnKVxuICBAT3B0aW9uKCdsYW5nUmVtb3ZlJylcbiAgcHJvdGVjdGVkIGxhbmdSZW1vdmVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUxhbmdDbGljaycpXG4gIEBPcHRpb24oJ2JlZm9yZUxhbmdDbGljaycpXG4gIHByb3RlY3RlZCBiZWZvcmVMYW5nQ2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUxhbmdBZGQnKVxuICBAT3B0aW9uKCdiZWZvcmVMYW5nQWRkJylcbiAgcHJvdGVjdGVkIGJlZm9yZUxhbmdBZGRFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUxhbmdSZW1vdmUnKVxuICBAT3B0aW9uKCdiZWZvcmVMYW5nUmVtb3ZlJylcbiAgcHJvdGVjdGVkIGJlZm9yZUxhbmdSZW1vdmVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZExhbmd1YWdlSW5kZXg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgZGlhbG9nU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfSAgXG59XG4iXX0=