com.phloxui
Version:
PhloxUI Ng2+ Framework
203 lines (202 loc) • 20.7 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/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()\" [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',] },],
};
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);
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;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL3RoZW1lL21hdGVyaWFsL2NvbXBvbmVudC9NYXRlcmlhbENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBMkIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUluRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXpELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBSXpHLHFCQUFNLFNBQVMsR0FBVyxrQ0FBa0MsQ0FBQzs7SUFvRE4sNkRBQXlCO0lBNEU5RSwyQ0FBWSxVQUFzQixFQUFFLGFBQTRCO2VBQzlELGtCQUFNLFVBQVUsRUFBRSxhQUFhLENBQUM7S0FDakM7Ozs7SUFFTSxvREFBUTs7OztRQUNiLGlCQUFNLFFBQVEsV0FBRSxDQUFDOztrREEvRXdCLFNBQVM7O2dCQXBEckQsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtvQkFDbkIsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFFBQVEsRUFBRSxtM0VBNkNYO2lCQUNBOzs7O2dCQWpFMkIsVUFBVTtnQkFDN0IsYUFBYTs7OzBCQXVFbkIsS0FBSzsrQkFHTCxLQUFLOytCQUdMLEtBQUs7cUNBR0wsS0FBSzt5QkFHTCxLQUFLO3lDQUdMLEtBQUs7b0NBR0wsS0FBSzsrQkFHTCxLQUFLOzhCQUdMLEtBQUs7bUNBR0wsS0FBSzs0QkFHTCxLQUFLOzJCQUdMLEtBQUssU0FBQyxZQUFZOzRCQUdsQixLQUFLOzZCQUVMLEtBQUs7eUJBSUwsS0FBSzswQkFLTCxLQUFLOzJCQUdMLEtBQUs7OEJBTUwsTUFBTSxTQUFDLFNBQVM7bUNBSWhCLE1BQU0sU0FBQyxjQUFjO2lDQUdyQixNQUFNLFNBQUMsWUFBWTtvQ0FHbkIsTUFBTSxTQUFDLGVBQWU7OztRQWpFdEIsTUFBTSxFQUFFOzBDQUNRLDhCQUE4Qjs7O1FBRTlDLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTswQ0FDYSxRQUFROzs7UUFFN0IsTUFBTSxFQUFFOzBDQUNZLFFBQVE7OztRQUU1QixNQUFNLEVBQUU7Ozs7UUFHUixNQUFNLEVBQUU7Ozs7UUFHUixNQUFNLENBQUMsWUFBWSxDQUFDOzs7O1FBS3BCLE1BQU0sRUFBRTs7OztRQUlSLElBQUksRUFBRTtRQUNOLE1BQU0sRUFBRTs7OztRQUlSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQU1SLE1BQU0sQ0FBQyxNQUFNLENBQUM7MENBQ00sWUFBWTs7O1FBR2hDLE1BQU0sQ0FBQyxXQUFXLENBQUM7MENBQ00sWUFBWTs7O1FBRXJDLE1BQU0sQ0FBQyxTQUFTLENBQUM7MENBQ00sWUFBWTs7O1FBRW5DLE1BQU0sQ0FBQyxZQUFZLENBQUM7MENBQ00sWUFBWTs7NENBNUl6QztFQWtFdUQseUJBQXlCO1NBQW5FLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBJbnB1dCwgT3V0cHV0LCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9EaWFsb2dTZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGhsb3hBcHBJbmZvIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50L21vZGVsL1BobG94QXBwSW5mbyc7XG5pbXBvcnQgeyBDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50L0NvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IElIYXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudC9JSGFzTW9kZWwnO1xuaW1wb3J0IHsgSUhhc0hlbHAgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnQvSUhhc0hlbHAnO1xuaW1wb3J0IHsgSUhhc0RhdGEgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnQvSUhhc0RhdGEnO1xuaW1wb3J0IHsgT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vZGVjb3JhdG9yL09wdGlvbi5kZWNvcmF0b3InO1xuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9JMThOLmRlY29yYXRvcic7XG5pbXBvcnQgeyBJRGF0YUxhbmdTZWxlY3RvckNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnQvSURhdGFMYW5nU2VsZWN0b3JDb250cm9sbGVyJztcbmltcG9ydCB7IENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3JNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudC9tb2RlbC9Db21wb25lbnREYXRhTGFuZ1NlbGVjdG9yTW9kZWwnO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbmNvbnN0IFRZUEVfTkFNRTogc3RyaW5nID0gXCJtYXRlcmlhbC1jb21wb25lbnQtbGFuZy1zZWxlY3RvclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwibWF0ZXJpYWwtY29tcG9uZW50LWxhbmctc2VsZWN0b3IgZGlzYWJsZWQtb3ZlcmxheVwiIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aCgpXCIgW3N0eWxlLmhlaWdodF09XCJnZXRIZWlnaHQoKVwiPlxuXHQ8ZGl2IGNsYXNzPVwid3JhcHBlciBsZWZ0XCIgW2NsYXNzLmV4cGFuZF09XCIhaGFzTGFuZ3VhZ2UoKVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJjb21wb25lbnQtcGFuZVwiPlxuXHRcdFx0PCEtLSBkZWZhdWx0IC0tPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbXBvbmVudC13cmFwcGVyXCIgW2NsYXNzLnNob3ddPVwiX2lzU2VsZWN0ZWRMYW5ndWFnZUJ5SW5kZXgobnVsbClcIj5cblx0XHRcdFx0PHBoeC1jb21wb25lbnQtd3JhcHBlciAqbmdJZj1cImhhc01vZGVsKClcIiBbdHlwZV09XCJnZXRNb2RlbCgpLmNvbXBvbmVudFR5cGVcIiBbbW9kZWxdPVwiZ2V0TW9kZWwoKS5jb21wb25lbnRNb2RlbFwiXG5cdFx0XHRcdFx0W2hhbmRsZXJdPVwiZ2V0RGVmYXVsdENvbXBvbmVudEhhbmRsZXIoKVwiIFtkYXRhXT1cIl9nZXREZWZhdWx0RGF0YSgpXCIgW2RhdGFQYXJlbnRdPVwidGhpc1wiXG5cdFx0XHRcdFx0W29wdGlvbnNdPVwiZ2V0TW9kZWwoKS5jb21wb25lbnRPcHRpb25zXCI+PC9waHgtY29tcG9uZW50LXdyYXBwZXI+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDwhLS0gYnkgbGFuZyAtLT5cblx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtaXRlbSBbbmdGb3JPZl09XCJfZ2V0RGF0YUxhbmdMaXN0KClcIiBsZXQtaT1cImluZGV4XCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjb21wb25lbnQtd3JhcHBlclwiIFtjbGFzcy5zaG93XT1cIl9pc1NlbGVjdGVkTGFuZ3VhZ2VCeUluZGV4KGkpXCI+XG5cdFx0XHRcdFx0PHBoeC1jb21wb25lbnQtd3JhcHBlciAqbmdJZj1cImhhc01vZGVsKClcIiBbdHlwZV09XCJnZXRNb2RlbCgpLmNvbXBvbmVudFR5cGVcIiBbbW9kZWxdPVwiZ2V0TW9kZWwoKS5jb21wb25lbnRNb2RlbFwiXG5cdFx0XHRcdFx0XHRbaGFuZGxlcl09XCJnZXRDb21wb25lbnRIYW5kbGVyKClcIiBbc2V0dGluZ109XCJnZXRDb21wb25lbnRTZXR0aW5nKGkpXCIgW2RhdGFdPVwiaXRlbVwiIFtkYXRhUGFyZW50XT1cInRoaXNcIlxuXHRcdFx0XHRcdFx0W29wdGlvbnNdPVwiZ2V0TW9kZWwoKS5jb21wb25lbnRPcHRpb25zXCI+PC9waHgtY29tcG9uZW50LXdyYXBwZXI+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJ3cmFwcGVyIHJpZ2h0XCIgW2NsYXNzLmhpZGVdPVwiIWhhc0xhbmd1YWdlKClcIj5cblx0XHQ8ZGl2IGNsYXNzPVwibGFuZy1wYW5lXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibGFuZ3VhZ2UtYnRuIGRlZmF1bHQgZGF0YVwiIFtjbGFzcy5zZWxlY3RlZF09XCJpc1NlbGVjdGVkTGFuZ3VhZ2UobnVsbClcIiBbY2xhc3MuZGlydHldPVwiX2lzRGF0YURpcnR5QnlJbmRleChudWxsKVwiXG5cdFx0XHRcdChjbGljayk9XCJvbkFjdGlvbkJ0bkNsaWNrZWQoJGV2ZW50LCBudWxsLCBudWxsKVwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlciBmbHVpZFwiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1jZWxsLXdyYXBwZXIgbWlkZGxlXCI+XG5cdFx0XHRcdFx0XHREZWZhdWx0XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE1lcmdlZExhbmd1YWdlTGlzdCgpOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJsYW5ndWFnZS1idG5cIiBbY2xhc3MuZGF0YV09XCJfbGFuZ0hhc0RhdGFCeUluZGV4KGkpXCJcblx0XHRcdFx0W2NsYXNzLmRpcnR5XT1cIl9pc0RhdGFEaXJ0eUJ5SW5kZXgoaSlcIlxuXHRcdFx0XHRbY2xhc3Muc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZExhbmd1YWdlKGl0ZW0pXCIgKGNsaWNrKT1cIm9uQWN0aW9uQnRuQ2xpY2tlZCgkZXZlbnQsIGl0ZW0sIGkpXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyIGZsdWlkXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYmxlLWNlbGwtd3JhcHBlciBtaWRkbGVcIj5cblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCIhX2hhc0J1dHRvbkljb24oaXRlbSlcIj57e2l0ZW0ubGFiZWx9fTwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cIl9oYXNCdXR0b25JY29uKGl0ZW0pXCI+XG5cdFx0XHRcdFx0XHRcdDxpbWcgc3JjPVwie3tpdGVtLmljb25VUkx9fVwiPlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9ja2luZy1idG5cIj48L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cbmBcbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yIGV4dGVuZHMgQ29tcG9uZW50RGF0YUxhbmdTZWxlY3RvciBpbXBsZW1lbnRzIE9uSW5pdCwgSUhhc0hlbHAge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFlQRV9OQU1FOiBzdHJpbmcgPSBUWVBFX05BTUU7XG5cbiAgLy8gUmUtZGVjbGFyZSBmaWVsZCB0byBkZWNsYXJlIG5nIEBJbnB1dC5cbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RIYXNEYXRhXG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgbW9kZWw6IENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3JNb2RlbDtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBjb250cm9sbGVyOiBJRGF0YUxhbmdTZWxlY3RvckNvbnRyb2xsZXI7XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgZGF0YVBhcmVudDogSUhhc0RhdGE7XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgaWdub3JlUGFyZW50RGF0YTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBkYXRhOiBhbnk7XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgaWdub3JlUGFyZW50RGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgZGVsZWdhdGVIaXN0b3J5OiBib29sZWFuO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIG9uRGlzYWJsZWQ6IEZ1bmN0aW9uO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIG9uRW5hYmxlZDogRnVuY3Rpb247XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgbG9hZGluZ0VuYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgaTE4bktleTogc3RyaW5nO1xuICBASW5wdXQoJ2kxOG5CeXBhc3MnKVxuICBAT3B0aW9uKCdpMThuQnlwYXNzJylcbiAgcHJvdGVjdGVkIGJ5cGFzczogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgcHJvdGVjdGVkIG9wdGlvbnM6IGFueTtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBkaXNhYmxlZDogYm9vbGVhbjtcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RIYXNEYXRhSGVscFxuICBASW5wdXQoKVxuICBASTE4TigpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgaGVscDogYW55O1xuICAvLyAtLS0gZnJvbSBDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yXG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgd2lkdGg6IHN0cmluZztcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBoZWlnaHQ6IHN0cmluZztcblxuICAvLyBSZS1kZWNsYXJlIGZpZWxkIHRvIGRlY2xhcmUgbmcgQE91dHB1dC5cbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RIYXNEYXRhXG4gIEBPdXRwdXQoJ3BoeExvYWQnKVxuICBAT3B0aW9uKCdsb2FkJylcbiAgcHJvdGVjdGVkIGxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0RGF0YUxhbmdTZWxlY3RvclxuICBAT3V0cHV0KCdwaHhMYW5nQ2xpY2snKVxuICBAT3B0aW9uKCdsYW5nQ2xpY2snKVxuICBwcm90ZWN0ZWQgbGFuZ0NsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3V0cHV0KCdwaHhMYW5nQWRkJylcbiAgQE9wdGlvbignbGFuZ0FkZCcpXG4gIHByb3RlY3RlZCBsYW5nQWRkRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3V0cHV0KCdwaHhMYW5nUmVtb3ZlJylcbiAgQE9wdGlvbignbGFuZ1JlbW92ZScpXG4gIHByb3RlY3RlZCBsYW5nUmVtb3ZlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcbiAgICBzdXBlcihlbGVtZW50UmVmLCBkaWFsb2dTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbn1cbiJdfQ==