barsa-sap-ui 2.2.33 → 2.2.35
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/esm2022/lib/captcha-field/captcha-field.component.mjs +3 -3
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +4 -1
- package/esm2022/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +2 -2
- package/fesm2022/barsa-sap-ui.mjs +5 -2
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/captcha-field/captcha-field.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
-
import { FieldBaseComponent
|
|
2
|
+
import { FieldBaseComponent } from 'barsa-novin-ray-core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@fundamental-ngx/core/button";
|
|
5
5
|
import * as i2 from "@fundamental-ngx/core/form";
|
|
@@ -8,7 +8,7 @@ export class CaptchaFieldComponent extends FieldBaseComponent {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
super(...arguments);
|
|
10
10
|
this.now = new Date().toString();
|
|
11
|
-
this.capId =
|
|
11
|
+
this.capId = '-';
|
|
12
12
|
}
|
|
13
13
|
onValueChange(e) {
|
|
14
14
|
this.value = e.target.value;
|
|
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
25
25
|
type: Component,
|
|
26
26
|
args: [{ selector: 'bsu-captcha-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<input\r\n fd-form-control\r\n [placeholder]=\"Setting.NullText || ''\"\r\n [attr.readonly]=\"(readonly$ | async) === true ? true : null\"\r\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\r\n type=\"text\"\r\n [value]=\"!value ? '' : value\"\r\n [id]=\"id\"\r\n (input)=\"onValueChange($event)\"\r\n/>\r\n<div id=\"captchaCommand\">\r\n <img [src]=\"'/api/auth/captcha?capId=' + capId + '&t=' + now\" />\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"'refresh'\"\r\n aria-label=\"refresh\"\r\n title=\"captcha\"\r\n (click)=\"onRefresh()\"\r\n ></button>\r\n</div>\r\n", styles: [":host{display:flex;align-items:center;gap:.2rem}#captchaCommand{flex-grow:1;display:flex;width:100%;align-items:center;justify-content:start}img{flex-grow:1;max-width:170px;height:40px;width:auto}input{font-size:1rem}@media (max-width: 599px){img{max-width:140px}}\n"] }]
|
|
27
27
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdGNoYS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9jYXB0Y2hhLWZpZWxkL2NhcHRjaGEtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FwdGNoYS1maWVsZC9jYXB0Y2hhLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBUzFELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBa0I7SUFQN0Q7O1FBUUksUUFBRyxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEMsVUFBSyxHQUFHLEdBQUcsQ0FBQztLQVNmO0lBUkcsYUFBYSxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsU0FBUztRQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBVlEscUJBQXFCO21HQUFyQixxQkFBcUIsZ0ZDWGxDLDhxQkFxQkE7OzRGRFZhLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS1jYXB0Y2hhLWZpZWxkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXB0Y2hhLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhcHRjaGEtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcHRjaGFGaWVsZENvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZUNvbXBvbmVudCB7XHJcbiAgICBub3c6IHN0cmluZyA9IG5ldyBEYXRlKCkudG9TdHJpbmcoKTtcclxuICAgIGNhcElkID0gJy0nO1xyXG4gICAgb25WYWx1ZUNoYW5nZShlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICAgIG9uUmVmcmVzaCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5vdyA9IG5ldyBEYXRlKCkudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxpbnB1dFxyXG4gICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwiU2V0dGluZy5OdWxsVGV4dCB8fCAnJ1wiXHJcbiAgICBbYXR0ci5yZWFkb25seV09XCIocmVhZG9ubHkkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IG51bGxcIlxyXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IG51bGxcIlxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgW3ZhbHVlXT1cIiF2YWx1ZSA/ICcnIDogdmFsdWVcIlxyXG4gICAgW2lkXT1cImlkXCJcclxuICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4vPlxyXG48ZGl2IGlkPVwiY2FwdGNoYUNvbW1hbmRcIj5cclxuICAgIDxpbWcgW3NyY109XCInL2FwaS9hdXRoL2NhcHRjaGE/Y2FwSWQ9JyArIGNhcElkICsgJyZ0PScgKyBub3dcIiAvPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgW2dseXBoXT1cIidyZWZyZXNoJ1wiXHJcbiAgICAgICAgYXJpYS1sYWJlbD1cInJlZnJlc2hcIlxyXG4gICAgICAgIHRpdGxlPVwiY2FwdGNoYVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaCgpXCJcclxuICAgID48L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -99,6 +99,9 @@ export class FormDialogComponent extends BaseComponent {
|
|
|
99
99
|
if (viewHieght) {
|
|
100
100
|
height = smallDevice ? '100%' : `${viewHieght + 100}px`;
|
|
101
101
|
}
|
|
102
|
+
if (viewWidth) {
|
|
103
|
+
width = smallDevice ? '100%' : `${viewWidth}px`;
|
|
104
|
+
}
|
|
102
105
|
const modalSetting = BarsaApi.Common.Util.TryGetValue(this.formPanelCtrlr, 'Setting.View.CustomUi.Parameters.ModalSetting', null);
|
|
103
106
|
let setting = {
|
|
104
107
|
escKeyCloseable: false,
|
|
@@ -168,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
168
171
|
type: ViewChild,
|
|
169
172
|
args: ['dialog', { read: TemplateRef, static: true }]
|
|
170
173
|
}] } });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS1kaWFsb2cvZm9ybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS1kaWFsb2cvZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQ0gsUUFBUSxFQUlSLGdCQUFnQixFQUNoQixhQUFhLEVBRWIsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBVzlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBdUNsRCxZQUNZLGNBQTZCLEVBQzdCLFlBQTBCLEVBQzFCLGNBQTZCO1FBRXJDLEtBQUssRUFBRSxDQUFDO1FBSkEsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFyQ3pDLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBWW5CLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUtuQixjQUFTLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFTeEIsYUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDL0IsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLDJCQUFzQixHQUFRLElBQUksQ0FBQztR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akIsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ0NvbmZpZywgRGlhbG9nUmVmLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEJhcnNhQXBpLFxyXG4gICAgRGlhbG9nUGFyYW1zLFxyXG4gICAgRm9ybUNvbXBvbmVudCxcclxuICAgIFBvcnRhbFNlcnZpY2UsXHJcbiAgICBDb250YWluZXJTZXJ2aWNlLFxyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIEZvcm1CYXNlQ29tcG9uZW50LFxyXG4gICAgaXNGaXJlZm94LFxyXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGVcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtZm9ybS1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Zvcm0tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb250YWluZXJTZXJ2aWNlXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2RpYWxvZycsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgZGlhbG9nVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBmb3JtUGFuZWxDdHJscjogYW55O1xyXG4gICAgZm9ybUNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEZvcm1Db21wb25lbnQ+O1xyXG4gICAgY2FwdGlvbiA9ICcnO1xyXG4gICAgZnVsbHNjcmVlbiA9IGZhbHNlO1xyXG4gICAgZGlhbG9nT3BlbmVkOiBib29sZWFuO1xyXG4gICAgZGlhbG9nUmVmOiBEaWFsb2dSZWY7XHJcbiAgICBpbkRpYWxvZzogYW55O1xyXG4gICAgcGFyYW1zOiB7XHJcbiAgICAgICAgbW9JZDogc3RyaW5nO1xyXG4gICAgICAgIHR5cGVEZWZJZDogc3RyaW5nO1xyXG4gICAgICAgIHJlcG9ydElkOiBzdHJpbmc7XHJcbiAgICAgICAgaW5EaWFsb2c6IGJvb2xlYW47XHJcbiAgICB9O1xyXG4gICAgcGFyZW50Q29udGFpbmVyOiBhbnk7XHJcbiAgICBkZXZpY2VTaXplOiBzdHJpbmc7XHJcbiAgICBpc05vbmVQZXJzaXN0YW5jZSA9IGZhbHNlO1xyXG4gICAgc2hvd1NhdmVCdXR0b24gPSB0cnVlO1xyXG4gICAgc2hvd1Rvb2xiYXIgPSB0cnVlO1xyXG4gICAgc2hvd0Zvb3RlcjogYm9vbGVhbjtcclxuICAgIGNhbkZ1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgICBjYW5Nb3ZlOiBib29sZWFuO1xyXG4gICAgY2FuUmVzaXplOiBib29sZWFuO1xyXG4gICAgaXNGaXJlZm94ID0gaXNGaXJlZm94KCk7XHJcbiAgICBmdWxsc2NyZWVuRGVmYXVsdDogYm9vbGVhbjtcclxuICAgIGV4dGVuZFRvb2xiYXJJdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgd29ya2Zsb3dCdXR0b25zJDogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgICBkZXZpY2VTaXplJDogT2JzZXJ2YWJsZTwncycgfCAnbScgfCAnbCcgfCAneGwnPjtcclxuICAgIGRpclZhbHVlJDogT2JzZXJ2YWJsZTwncnRsJyB8ICdsdHInPjtcclxuICAgIHJ0bCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBfZm9ybVVpQ29tcG9uZW50OiBGb3JtQmFzZUNvbXBvbmVudDtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBpc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XHJcbiAgICBpc1dvcmtmbG93Rm9ybSA9IGZhbHNlO1xyXG4gICAgd29ya2Zsb3dCdXR0b25zT25Gb290ZXIgPSBmYWxzZTtcclxuICAgIHNlbGVjdGVkV29ya2Zsb3dCdXR0b246IGFueSA9IG51bGw7XHJcbiAgICBmb3JtVWk6IEZvcm1CYXNlQ29tcG9uZW50O1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGRpYWxvZ1BhcmFtczogRGlhbG9nUGFyYW1zLFxyXG4gICAgICAgIHByaXZhdGUgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5zdWJzY3JpYmUoKGRldmljZVNpemUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kZXZpY2VTaXplID0gZGV2aWNlU2l6ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBmb3JtUGFuZWxDdHJsciA9IHRoaXMuZGlhbG9nUGFyYW1zLmNvbnRleHQuZm9ybXBhbmVsQ3RybHI7XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGZvcm1QYW5lbEN0cmxyLCAnU2V0dGluZy5WaWV3LkN1c3RvbVVpLlBhcmFtZXRlcnMnLCBudWxsKTtcclxuICAgICAgICB0aGlzLnRpdGxlID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoZm9ybVBhbmVsQ3RybHIsICdTZXR0aW5nLlZpZXcuSGVhZGVyTGF5b3V0LlRpdGxlJywgbnVsbCk7XHJcbiAgICAgICAgY29uc3QgbW9JZCA9IHRoaXMuZGlhbG9nUGFyYW1zLmNvbnRleHQuaWQ7XHJcbiAgICAgICAgY29uc3QgdHlwZURlZklkID0gdGhpcy5kaWFsb2dQYXJhbXMuY29udGV4dC50eWlkO1xyXG4gICAgICAgIGNvbnN0IHJlcG9ydElkID0gdGhpcy5kaWFsb2dQYXJhbXMuY29udGV4dC5yZXBpZDtcclxuICAgICAgICB0aGlzLmluRGlhbG9nID0gdGhpcy5kaWFsb2dQYXJhbXMuY29udGV4dC5pbkRpYWxvZztcclxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4gPSB0aGlzLmRpYWxvZ1BhcmFtcy5jb250ZXh0LmZ1bGxzY3JlZW47XHJcbiAgICAgICAgdGhpcy5jYW5GdWxsc2NyZWVuID0gcGFyYW1ldGVycz8uQ2FuRnVsbHNjcmVlbjtcclxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5EZWZhdWx0ID0gcGFyYW1ldGVycz8uRnVsbHNjcmVlbkRlZmF1bHQ7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnNPbkZvb3RlciA9IHBhcmFtZXRlcnM/LldvcmtmbG93QnV0dG9uc09uRm9vdGVyO1xyXG4gICAgICAgIGlmICh0aGlzLmZ1bGxzY3JlZW5EZWZhdWx0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2FuTW92ZSA9IHBhcmFtZXRlcnM/LkNhbk1vdmU7XHJcbiAgICAgICAgdGhpcy5jYW5SZXNpemUgPSBwYXJhbWV0ZXJzPy5DYW5SZXNpemU7XHJcbiAgICAgICAgdGhpcy5wYXJhbXMgPSB7IG1vSWQsIHR5cGVEZWZJZCwgcmVwb3J0SWQsIGluRGlhbG9nOiB0cnVlIH07XHJcbiAgICAgICAgdGhpcy5fc2V0Q2FwdGlvbihmb3JtUGFuZWxDdHJscik7XHJcbiAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJsciA9IGZvcm1QYW5lbEN0cmxyO1xyXG4gICAgfVxyXG4gICAgZ2V0IEFkYXB0ZXIoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtUGFuZWxDdHJsci5BZGFwdGVyO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgZm9ybVBhbmVsQ3RybHIgPSB0aGlzLmZvcm1QYW5lbEN0cmxyO1xyXG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd0Zvcm0gPSBmb3JtUGFuZWxDdHJscj8uU2V0dGluZz8uV29ya2Zsb3c7XHJcbiAgICAgICAgdGhpcy5zaG93U2F2ZUJ1dHRvbiA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICBmb3JtUGFuZWxDdHJscixcclxuICAgICAgICAgICAgJ1NldHRpbmcuVmlldy5Gb3JtU2V0dGluZ3MuU2hvd1NhdmVCdXR0b24nXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNob3dUb29sYmFyID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoZm9ybVBhbmVsQ3RybHIsICdTZXR0aW5nLlZpZXcuRm9ybVNldHRpbmdzLlNob3dUb29sYmFyJyk7XHJcbiAgICAgICAgdGhpcy5pc05vbmVQZXJzaXN0YW5jZSA9IGZvcm1QYW5lbEN0cmxyPy5TZXR0aW5nPy5WaWV3Py5Jc05vbmVQZXJzaXN0YW5jZTtcclxuICAgICAgICB0aGlzLnNob3dGb290ZXIgPSB0aGlzLmlzTm9uZVBlcnNpc3RhbmNlXHJcbiAgICAgICAgICAgID8gdGhpcy5zaG93U2F2ZUJ1dHRvbiAhPT0gZmFsc2UgJiYgdGhpcy5zaG93VG9vbGJhciAhPT0gZmFsc2VcclxuICAgICAgICAgICAgOiB0aGlzLnNob3dTYXZlQnV0dG9uO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaG93Rm9vdGVyID09IHR5cGVvZiBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Zvb3RlciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub3BlbkRpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgb25Ub29sYmFyQ2xpY2soZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2Zvcm1VaUNvbXBvbmVudC5vblRvb2xiYXJDbGljayhlKTtcclxuICAgIH1cclxuICAgIG9uV29ya2Zsb3dCdXR0b25TZWxlY3RlZDtcclxuICAgIG9uRm9ybVVpQ29tcG9uZW50UmVhZHkodWlDb21wb25lbnQ6IEZvcm1CYXNlQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZm9ybVVpQ29tcG9uZW50ID0gdWlDb21wb25lbnQ7XHJcbiAgICAgICAgdGhpcy5leHRlbmRUb29sYmFySXRlbXMkID0gdWlDb21wb25lbnQuZXh0ZW5kVG9vbGJhckl0ZW1zJDtcclxuICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9ucyQgPSB1aUNvbXBvbmVudC53b3JrZmxvd0J1dHRvbnMkO1xyXG4gICAgICAgIHRoaXMucnRsJCA9IHVpQ29tcG9uZW50LnJ0bCQ7XHJcbiAgICAgICAgdGhpcy5kaXJWYWx1ZSQgPSB1aUNvbXBvbmVudC5kaXJWYWx1ZSQ7XHJcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHVpQ29tcG9uZW50LmRldmljZVNpemUkO1xyXG4gICAgICAgIHRoaXMuZm9ybVVpID0gdWlDb21wb25lbnQ7XHJcbiAgICB9XHJcbiAgICBvcGVuRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNtYWxsRGV2aWNlID0gdGhpcy5kZXZpY2VTaXplID09PSAncycgfHwgdGhpcy5kZXZpY2VTaXplID09PSAnbSc7XHJcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgICBsZXQgd2lkdGggPSBzbWFsbERldmljZSA/ICcxMDAlJyA6ICczMHZ3JztcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gc21hbGxEZXZpY2UgPyAnMTAwJScgOiAnYXV0byc7XHJcbiAgICAgICAgaWYgKHdpbmRvd1dpZHRoIDwgMTQ0MCkge1xyXG4gICAgICAgICAgICB3aWR0aCA9ICc4MHN2dyc7XHJcbiAgICAgICAgfSBlbHNlIGlmICh3aW5kb3dXaWR0aCA8IDkwMCkge1xyXG4gICAgICAgICAgICB3aWR0aCA9ICcxMDBzdncnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgdmlld1dpZHRoID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5mb3JtUGFuZWxDdHJsciwgJ1NldHRpbmcuVmlldy5NaW5TaXplLndpZHRoJywgbnVsbCk7XHJcbiAgICAgICAgY29uc3Qgdmlld0hpZWdodCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuZm9ybVBhbmVsQ3RybHIsICdTZXR0aW5nLlZpZXcuTWluU2l6ZS5oZWlnaHQnLCBudWxsKTtcclxuICAgICAgICBjb25zdCBtaW5XaWR0aCA9IHNtYWxsRGV2aWNlID8gJzEwMCUnIDogdmlld1dpZHRoID8gdmlld1dpZHRoICsgJ3B4JyA6ICdhdXRvJztcclxuICAgICAgICBjb25zdCBtaW5IZWlnaHQgPSBzbWFsbERldmljZSA/ICcxMDAlJyA6IHZpZXdIaWVnaHQgPyB2aWV3SGllZ2h0ICsgJ3B4JyA6ICdhdXRvJztcclxuICAgICAgICBpZiAodmlld0hpZWdodCkge1xyXG4gICAgICAgICAgICBoZWlnaHQgPSBzbWFsbERldmljZSA/ICcxMDAlJyA6IGAke3ZpZXdIaWVnaHQgKyAxMDB9cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtb2RhbFNldHRpbmcgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcclxuICAgICAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJscixcclxuICAgICAgICAgICAgJ1NldHRpbmcuVmlldy5DdXN0b21VaS5QYXJhbWV0ZXJzLk1vZGFsU2V0dGluZycsXHJcbiAgICAgICAgICAgIG51bGxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBsZXQgc2V0dGluZzogRGlhbG9nQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBlc2NLZXlDbG9zZWFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgYmFja2Ryb3BDbGlja0Nsb3NlYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIG1vYmlsZTogc21hbGxEZXZpY2UsXHJcbiAgICAgICAgICAgIHdpZHRoLFxyXG4gICAgICAgICAgICBoZWlnaHQsXHJcbiAgICAgICAgICAgIC8vIGJvZHlNaW5IZWlnaHQ6IG1pbkhlaWdodCxcclxuICAgICAgICAgICAgbWluSGVpZ2h0LFxyXG4gICAgICAgICAgICBtaW5XaWR0aCxcclxuICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRoaXMuY2FuTW92ZSxcclxuICAgICAgICAgICAgcmVzaXphYmxlOiB0aGlzLmNhblJlc2l6ZSxcclxuICAgICAgICAgICAgZGF0YTogeyBjYXB0aW9uOiB0aGlzLmNhcHRpb24sIGNhbkZ1bGxzY3JlZW46IHRoaXMuY2FuRnVsbHNjcmVlbiwgY2FuTW92ZTogdGhpcy5jYW5Nb3ZlIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChtb2RhbFNldHRpbmcpIHtcclxuICAgICAgICAgICAgc2V0dGluZyA9IHsgLi4uc2V0dGluZywgLi4ubW9kYWxTZXR0aW5nIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nVGVtcGxhdGVSZWYsIHNldHRpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2FuY2VsKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLkFkYXB0ZXI7XHJcbiAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ1Rvb2xDbGljaycsIGFkYXB0ZXIsIHsgS2V5OiAnQ2FuY2VsJyB9KTtcclxuICAgICAgICB0aGlzLl9jbG9zZSgpO1xyXG4gICAgfVxyXG4gICAgb25TYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLkFkYXB0ZXI7XHJcbiAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ1Rvb2xDbGljaycsIGFkYXB0ZXIsIHsgS2V5OiAnU2F2ZUFuZENsb3NlJyB9KTtcclxuICAgIH1cclxuICAgIG9uT2soKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYWRhcHRlciA9IHRoaXMuQWRhcHRlcjtcclxuICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnVG9vbENsaWNrJywgYWRhcHRlciwgeyBLZXk6ICdPaycgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb3JtQ2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1BhcmFtcy5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nT3BlbmVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgLy8gQElucHV0KCkgU2hvd0Zvcm1QYW5lbENvbnRyb2wgPSAoZm9ybXBhbmVsQ3RybHIpID0+IHt9O1xyXG4gICAgLy8gLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIC8vIEBJbnB1dCgpIEZvcmNlQ2xvc2VDaGlsZCA9ICgpID0+IHt9O1xyXG4gICAgLy8gLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIC8vIEBJbnB1dCgpIFJlZnJlc2hGb3JtUGFuZWxDb250cm9sID0gKGZvcm1wYW5lbEN0cmxyKSA9PiB7fTtcclxuICAgIHByaXZhdGUgX2Nsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuZGlhbG9nUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2UoKTtcclxuICAgICAgICBpZiAodGhpcy5BZGFwdGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuQWRhcHRlci5Db250cm9sLmZpcmVFdmVudCgnUmVxdWVzdEZvckNsb3NlJywgdGhpcy5BZGFwdGVyLkNvbnRyb2wsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuZGlhbG9nUGFyYW1zLmNsb3NlKCk7XHJcbiAgICAgICAgLy8gdGhpcy5kaWFsb2dPcGVuZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXRDYXB0aW9uKGZvcm1QYW5lbEN0cmxyOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB0eXBlRGVmTmFtZSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGZvcm1QYW5lbEN0cmxyLCAnTW8uJFR5cGVEZWZOYW1lJywgJycpO1xyXG4gICAgICAgIGNvbnN0IG1vQ2FwdGlvbiA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGZvcm1QYW5lbEN0cmxyLCAnTW8uJENhcHRpb24nLCAnJyk7XHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gdHlwZURlZk5hbWUgKyAnOicgKyBtb0NhcHRpb247XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNkaWFsb2c+XHJcbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIiAjZGlhbG9nVHBsUmVmPlxyXG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgxIGZkLXRpdGxlIHN0eWxlPVwibWF4LXdpZHRoOiAxNXJlbVwiPnt7IHRpdGxlIHx8IGRpYWxvZ0NvbmZpZy5kYXRhLmNhcHRpb24gfX08L2gxPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1jZW50ZXIgc3R5bGU9XCJmbGV4OiAxXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgICAgICA8YnN1LWZvcm0tdG9vbGJhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1iYXItcmlnaHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZFRvb2xiYXJJdGVtcyRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFzeW5jXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOmZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmaWx0ZXJXb3JrZmxvd0luTW9iaWxlOiB3b3JrZmxvd0J1dHRvbnNPbkZvb3RlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlyVmFsdWVdPVwiKGRpclZhbHVlJCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzRmlyZWZveF09XCJpc0ZpcmVmb3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAodG9vbGJhckNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAjZm9ybVRvb2xiYXJcclxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtZm9ybS10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZGlhbG9nQ29uZmlnLmRhdGEuY2FuRnVsbHNjcmVlbikge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cImZ1bGxzY3JlZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZnVsbHNjcmVlbiA/ICdleGl0ZnVsbHNjcmVlbicgOiAncmVzaXplJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5EaWFsb2dcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RpYWxvZ109XCJkaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5DaGFuZ2VkKT1cImZ1bGxzY3JlZW4gPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nQ29tcG9uZW50XT1cImRpYWxvZ1RwbFJlZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgYXJpYUxhYmVsPVwiY2xvc2VcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8IS0tIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgZmRrVGVtcGxhdGU9XCJzdWJoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJleHRlbmRUb29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOmZhbHNlIGFzIHRvb2xiYXJJdGVtc1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLW1pZGRsZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgY2xhc3M9XCIhdHctanVzdGlmeS1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1mb3JtLXRvb2xiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbnNdPVwidG9vbGJhckl0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXJWYWx1ZV09XCIoZGlyVmFsdWUkIHwgYXN5bmMpISFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRmlyZWZveF09XCJpc0ZpcmVmb3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRvb2xiYXJDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmb3JtVG9vbGJhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9ic3UtZm9ybS10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT4gLS0+XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxyXG5cclxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XHJcbiAgICAgICAgICAgIDxibnJjLWZvcm1cclxuICAgICAgICAgICAgICAgIFtmb3JtUGFuZWxDdHJsXT1cImZvcm1QYW5lbEN0cmxyXCJcclxuICAgICAgICAgICAgICAgIFtwYXJhbXNdPVwicGFyYW1zXCJcclxuICAgICAgICAgICAgICAgIChmb3JtQ2xvc2UpPVwib25Gb3JtQ2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAodWlDb21wb25lbnQpPVwib25Gb3JtVWlDb21wb25lbnRSZWFkeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvYm5yYy1mb3JtPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXIgW3N0eWxlLmRpc3BsYXldPVwiIXNob3dGb290ZXIgJiYgIWlzV29ya2Zsb3dGb3JtICYmICF3b3JrZmxvd0J1dHRvbnNPbkZvb3RlciA/ICdub25lJyA6IG51bGxcIj5cclxuICAgICAgICAgICAgQGlmIChpc01vYmlsZSB8fCB3b3JrZmxvd0J1dHRvbnNPbkZvb3RlciApIHsgQGlmKHdvcmtmbG93QnV0dG9ucyQgfCBhc3luYyA7YXMgd29ya2Zsb3dCdXR0b25zKXtcclxuICAgICAgICAgICAgPGJzdS1sYXlvdXQtYWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgW2NhblNlbmRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW2J1dHRvbnNdPVwiW11cIlxyXG4gICAgICAgICAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcclxuICAgICAgICAgICAgICAgIFtsYW5kc2NhcGVdPVwiKGZvcm1VaT8ubGFuZHNjYXBlJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc3RhbmRhbG9uZV09XCIoZm9ybVVpPy5zdGFuZGFsb25lJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbd29ya2Zsb3dCdXR0b25zXT1cIndvcmtmbG93QnV0dG9uc1wiXHJcbiAgICAgICAgICAgICAgICBbd29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICBbcnRsXT1cIihydGwkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgICAgICAgICAgICAgICh0b29sQ2xpY2spPVwiZm9ybVVpPy5vblRvb2xiYXJDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICh3b3JrZmxvd0Nob2ljZVNlbGVjdCk9XCJmb3JtVWk/Lm9uV29ya2Zsb3dDaG9pY2VDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2JzdS1sYXlvdXQtYWN0aW9ucz5cclxuICAgICAgICAgICAgfSB9IEBmb3IgKGJ0biBvZiAoZXh0ZW5kVG9vbGJhckl0ZW1zJCB8IGFzeW5jIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzp0cnVlKSA7IHRyYWNrIGJ0bi5JZCkgeyBAaWYgKCEoYnRuXHJcbiAgICAgICAgICAgID09PSAnLScgfHwgYnRuLnRleHQgPT09ICctJykgJiYgKChidG4uaXNCdWlsdGluICYmIGJ0bi5pbkZvb3RlcikgfHwgYnRuLmlzV29ya2Zsb3cpKSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYnRuLkRhdGE/LkN1c3RvbVVpPy5TZWxlY3RvciA/IGR5bmFtaWNCdG5UZW1wbGF0ZSA6IGJ0blRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBidG4gfVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2J0blRlbXBsYXRlIGxldC1idG4+XHJcbiAgICAgICAgICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cImJ0bi5pc1dvcmtmbG93ID8gJ2F0dGVudGlvbicgOiBidG4uZGVzaWduXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi50ZXh0IHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImJ0bi5uZXdJY29uID8gYnRuLm5ld0ljb24gOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ0bi5oYW5kbGVyKGJ0biwgZm9ybVBhbmVsQ3RybHI/LkFkYXB0ZXI/LkNvbnRyb2wpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkeW5hbWljQnRuVGVtcGxhdGUgbGV0LWJ0bj5cclxuICAgICAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8Ym5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiYnRuLkRhdGEuQ3VzdG9tVWlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNFbmFibGVdPVwiYnRuLkNvbW1hbmQ/Ll9pc0VuYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChidG5DbGljayk9XCJidG4uaGFuZGxlcihidG4sIGZvcm1QYW5lbEN0cmxyPy5BZGFwdGVyPy5Db250cm9sKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB9IH0gQGlmICghaXNOb25lUGVyc2lzdGFuY2UgJiYgc2hvd1NhdmVCdXR0b24gIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtaW5pdGlhbC1mb2N1c1xyXG4gICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNhbmNlbCgpXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICA8L2ZkLWRpYWxvZz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS1kaWFsb2cvZm9ybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZm9ybS1kaWFsb2cvZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQ0gsUUFBUSxFQUlSLGdCQUFnQixFQUNoQixhQUFhLEVBRWIsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBVzlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBdUNsRCxZQUNZLGNBQTZCLEVBQzdCLFlBQTBCLEVBQzFCLGNBQTZCO1FBRXJDLEtBQUssRUFBRSxDQUFDO1FBSkEsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFyQ3pDLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBWW5CLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUtuQixjQUFTLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFTeEIsYUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDL0IsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLDJCQUFzQixHQUFRLElBQUksQ0FBQztR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QyxzeE1BNEhBOzs0RkRyR2EsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNJLGlCQUFpQixhQUdoQixDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzt5SUFJakIsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ0NvbmZpZywgRGlhbG9nUmVmLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEJhcnNhQXBpLFxyXG4gICAgRGlhbG9nUGFyYW1zLFxyXG4gICAgRm9ybUNvbXBvbmVudCxcclxuICAgIFBvcnRhbFNlcnZpY2UsXHJcbiAgICBDb250YWluZXJTZXJ2aWNlLFxyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIEZvcm1CYXNlQ29tcG9uZW50LFxyXG4gICAgaXNGaXJlZm94LFxyXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGVcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtZm9ybS1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Zvcm0tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb250YWluZXJTZXJ2aWNlXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2RpYWxvZycsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgZGlhbG9nVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBmb3JtUGFuZWxDdHJscjogYW55O1xyXG4gICAgZm9ybUNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEZvcm1Db21wb25lbnQ+O1xyXG4gICAgY2FwdGlvbiA9ICcnO1xyXG4gICAgZnVsbHNjcmVlbiA9IGZhbHNlO1xyXG4gICAgZGlhbG9nT3BlbmVkOiBib29sZWFuO1xyXG4gICAgZGlhbG9nUmVmOiBEaWFsb2dSZWY7XHJcbiAgICBpbkRpYWxvZzogYW55O1xyXG4gICAgcGFyYW1zOiB7XHJcbiAgICAgICAgbW9JZDogc3RyaW5nO1xyXG4gICAgICAgIHR5cGVEZWZJZDogc3RyaW5nO1xyXG4gICAgICAgIHJlcG9ydElkOiBzdHJpbmc7XHJcbiAgICAgICAgaW5EaWFsb2c6IGJvb2xlYW47XHJcbiAgICB9O1xyXG4gICAgcGFyZW50Q29udGFpbmVyOiBhbnk7XHJcbiAgICBkZXZpY2VTaXplOiBzdHJpbmc7XHJcbiAgICBpc05vbmVQZXJzaXN0YW5jZSA9IGZhbHNlO1xyXG4gICAgc2hvd1NhdmVCdXR0b24gPSB0cnVlO1xyXG4gICAgc2hvd1Rvb2xiYXIgPSB0cnVlO1xyXG4gICAgc2hvd0Zvb3RlcjogYm9vbGVhbjtcclxuICAgIGNhbkZ1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgICBjYW5Nb3ZlOiBib29sZWFuO1xyXG4gICAgY2FuUmVzaXplOiBib29sZWFuO1xyXG4gICAgaXNGaXJlZm94ID0gaXNGaXJlZm94KCk7XHJcbiAgICBmdWxsc2NyZWVuRGVmYXVsdDogYm9vbGVhbjtcclxuICAgIGV4dGVuZFRvb2xiYXJJdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgd29ya2Zsb3dCdXR0b25zJDogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgICBkZXZpY2VTaXplJDogT2JzZXJ2YWJsZTwncycgfCAnbScgfCAnbCcgfCAneGwnPjtcclxuICAgIGRpclZhbHVlJDogT2JzZXJ2YWJsZTwncnRsJyB8ICdsdHInPjtcclxuICAgIHJ0bCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBfZm9ybVVpQ29tcG9uZW50OiBGb3JtQmFzZUNvbXBvbmVudDtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBpc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XHJcbiAgICBpc1dvcmtmbG93Rm9ybSA9IGZhbHNlO1xyXG4gICAgd29ya2Zsb3dCdXR0b25zT25Gb290ZXIgPSBmYWxzZTtcclxuICAgIHNlbGVjdGVkV29ya2Zsb3dCdXR0b246IGFueSA9IG51bGw7XHJcbiAgICBmb3JtVWk6IEZvcm1CYXNlQ29tcG9uZW50O1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGRpYWxvZ1BhcmFtczogRGlhbG9nUGFyYW1zLFxyXG4gICAgICAgIHByaXZhdGUgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5zdWJzY3JpYmUoKGRldmljZVNpemUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kZXZpY2VTaXplID0gZGV2aWNlU2l6ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBmb3JtUGFuZWxDdHJsciA9IHRoaXMuZGlhbG9nUGFyYW1zLmNvbnRleHQuZm9ybXBhbmVsQ3RybHI7XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGZvcm1QYW5lbEN0cmxyLCAnU2V0dGluZy5WaWV3LkN1c3RvbVVpLlBhcmFtZXRlcnMnLCBudWxsKTtcclxuICAgICAgICB0aGlzLnRpdGxlID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoZm9ybVBhbmVsQ3RybHIsICdTZXR0aW5nLlZpZXcuSGVhZGVyTGF5b3V0LlRpdGxlJywgbnVsbCk7XHJcbiAgICAgICAgY29uc3QgbW9JZCA9IHRoaXMuZGlhbG9nUGFyYW1zLmNvbnRleHQuaWQ7XHJcbiAgICAgICAgY29uc3QgdHlwZURlZklkID0gdGhpcy5kaWFsb2dQYXJhbXMuY29udGV4dC50eWlkO1xyXG4gICAgICAgIGNvbnN0IHJlcG9ydElkID0gdGhpcy5kaWFsb2dQYXJhbXMuY29udGV4dC5yZXBpZDtcclxuICAgICAgICB0aGlzLmluRGlhbG9nID0gdGhpcy5kaWFsb2dQYXJhbXMuY29udGV4dC5pbkRpYWxvZztcclxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4gPSB0aGlzLmRpYWxvZ1BhcmFtcy5jb250ZXh0LmZ1bGxzY3JlZW47XHJcbiAgICAgICAgdGhpcy5jYW5GdWxsc2NyZWVuID0gcGFyYW1ldGVycz8uQ2FuRnVsbHNjcmVlbjtcclxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5EZWZhdWx0ID0gcGFyYW1ldGVycz8uRnVsbHNjcmVlbkRlZmF1bHQ7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnNPbkZvb3RlciA9IHBhcmFtZXRlcnM/LldvcmtmbG93QnV0dG9uc09uRm9vdGVyO1xyXG4gICAgICAgIGlmICh0aGlzLmZ1bGxzY3JlZW5EZWZhdWx0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2FuTW92ZSA9IHBhcmFtZXRlcnM/LkNhbk1vdmU7XHJcbiAgICAgICAgdGhpcy5jYW5SZXNpemUgPSBwYXJhbWV0ZXJzPy5DYW5SZXNpemU7XHJcbiAgICAgICAgdGhpcy5wYXJhbXMgPSB7IG1vSWQsIHR5cGVEZWZJZCwgcmVwb3J0SWQsIGluRGlhbG9nOiB0cnVlIH07XHJcbiAgICAgICAgdGhpcy5fc2V0Q2FwdGlvbihmb3JtUGFuZWxDdHJscik7XHJcbiAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJsciA9IGZvcm1QYW5lbEN0cmxyO1xyXG4gICAgfVxyXG4gICAgZ2V0IEFkYXB0ZXIoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtUGFuZWxDdHJsci5BZGFwdGVyO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgZm9ybVBhbmVsQ3RybHIgPSB0aGlzLmZvcm1QYW5lbEN0cmxyO1xyXG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd0Zvcm0gPSBmb3JtUGFuZWxDdHJscj8uU2V0dGluZz8uV29ya2Zsb3c7XHJcbiAgICAgICAgdGhpcy5zaG93U2F2ZUJ1dHRvbiA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICBmb3JtUGFuZWxDdHJscixcclxuICAgICAgICAgICAgJ1NldHRpbmcuVmlldy5Gb3JtU2V0dGluZ3MuU2hvd1NhdmVCdXR0b24nXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNob3dUb29sYmFyID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoZm9ybVBhbmVsQ3RybHIsICdTZXR0aW5nLlZpZXcuRm9ybVNldHRpbmdzLlNob3dUb29sYmFyJyk7XHJcbiAgICAgICAgdGhpcy5pc05vbmVQZXJzaXN0YW5jZSA9IGZvcm1QYW5lbEN0cmxyPy5TZXR0aW5nPy5WaWV3Py5Jc05vbmVQZXJzaXN0YW5jZTtcclxuICAgICAgICB0aGlzLnNob3dGb290ZXIgPSB0aGlzLmlzTm9uZVBlcnNpc3RhbmNlXHJcbiAgICAgICAgICAgID8gdGhpcy5zaG93U2F2ZUJ1dHRvbiAhPT0gZmFsc2UgJiYgdGhpcy5zaG93VG9vbGJhciAhPT0gZmFsc2VcclxuICAgICAgICAgICAgOiB0aGlzLnNob3dTYXZlQnV0dG9uO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaG93Rm9vdGVyID09IHR5cGVvZiBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Zvb3RlciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub3BlbkRpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgb25Ub29sYmFyQ2xpY2soZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2Zvcm1VaUNvbXBvbmVudC5vblRvb2xiYXJDbGljayhlKTtcclxuICAgIH1cclxuICAgIG9uV29ya2Zsb3dCdXR0b25TZWxlY3RlZDtcclxuICAgIG9uRm9ybVVpQ29tcG9uZW50UmVhZHkodWlDb21wb25lbnQ6IEZvcm1CYXNlQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZm9ybVVpQ29tcG9uZW50ID0gdWlDb21wb25lbnQ7XHJcbiAgICAgICAgdGhpcy5leHRlbmRUb29sYmFySXRlbXMkID0gdWlDb21wb25lbnQuZXh0ZW5kVG9vbGJhckl0ZW1zJDtcclxuICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9ucyQgPSB1aUNvbXBvbmVudC53b3JrZmxvd0J1dHRvbnMkO1xyXG4gICAgICAgIHRoaXMucnRsJCA9IHVpQ29tcG9uZW50LnJ0bCQ7XHJcbiAgICAgICAgdGhpcy5kaXJWYWx1ZSQgPSB1aUNvbXBvbmVudC5kaXJWYWx1ZSQ7XHJcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHVpQ29tcG9uZW50LmRldmljZVNpemUkO1xyXG4gICAgICAgIHRoaXMuZm9ybVVpID0gdWlDb21wb25lbnQ7XHJcbiAgICB9XHJcbiAgICBvcGVuRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNtYWxsRGV2aWNlID0gdGhpcy5kZXZpY2VTaXplID09PSAncycgfHwgdGhpcy5kZXZpY2VTaXplID09PSAnbSc7XHJcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgICBsZXQgd2lkdGggPSBzbWFsbERldmljZSA/ICcxMDAlJyA6ICczMHZ3JztcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gc21hbGxEZXZpY2UgPyAnMTAwJScgOiAnYXV0byc7XHJcbiAgICAgICAgaWYgKHdpbmRvd1dpZHRoIDwgMTQ0MCkge1xyXG4gICAgICAgICAgICB3aWR0aCA9ICc4MHN2dyc7XHJcbiAgICAgICAgfSBlbHNlIGlmICh3aW5kb3dXaWR0aCA8IDkwMCkge1xyXG4gICAgICAgICAgICB3aWR0aCA9ICcxMDBzdncnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgdmlld1dpZHRoID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5mb3JtUGFuZWxDdHJsciwgJ1NldHRpbmcuVmlldy5NaW5TaXplLndpZHRoJywgbnVsbCk7XHJcbiAgICAgICAgY29uc3Qgdmlld0hpZWdodCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuZm9ybVBhbmVsQ3RybHIsICdTZXR0aW5nLlZpZXcuTWluU2l6ZS5oZWlnaHQnLCBudWxsKTtcclxuICAgICAgICBjb25zdCBtaW5XaWR0aCA9IHNtYWxsRGV2aWNlID8gJzEwMCUnIDogdmlld1dpZHRoID8gdmlld1dpZHRoICsgJ3B4JyA6ICdhdXRvJztcclxuICAgICAgICBjb25zdCBtaW5IZWlnaHQgPSBzbWFsbERldmljZSA/ICcxMDAlJyA6IHZpZXdIaWVnaHQgPyB2aWV3SGllZ2h0ICsgJ3B4JyA6ICdhdXRvJztcclxuICAgICAgICBpZiAodmlld0hpZWdodCkge1xyXG4gICAgICAgICAgICBoZWlnaHQgPSBzbWFsbERldmljZSA/ICcxMDAlJyA6IGAke3ZpZXdIaWVnaHQgKyAxMDB9cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodmlld1dpZHRoKSB7XHJcbiAgICAgICAgICAgIHdpZHRoID0gc21hbGxEZXZpY2UgPyAnMTAwJScgOiBgJHt2aWV3V2lkdGh9cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtb2RhbFNldHRpbmcgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcclxuICAgICAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJscixcclxuICAgICAgICAgICAgJ1NldHRpbmcuVmlldy5DdXN0b21VaS5QYXJhbWV0ZXJzLk1vZGFsU2V0dGluZycsXHJcbiAgICAgICAgICAgIG51bGxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBsZXQgc2V0dGluZzogRGlhbG9nQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBlc2NLZXlDbG9zZWFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgYmFja2Ryb3BDbGlja0Nsb3NlYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIG1vYmlsZTogc21hbGxEZXZpY2UsXHJcbiAgICAgICAgICAgIHdpZHRoLFxyXG4gICAgICAgICAgICBoZWlnaHQsXHJcbiAgICAgICAgICAgIC8vIGJvZHlNaW5IZWlnaHQ6IG1pbkhlaWdodCxcclxuICAgICAgICAgICAgbWluSGVpZ2h0LFxyXG4gICAgICAgICAgICBtaW5XaWR0aCxcclxuICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRoaXMuY2FuTW92ZSxcclxuICAgICAgICAgICAgcmVzaXphYmxlOiB0aGlzLmNhblJlc2l6ZSxcclxuICAgICAgICAgICAgZGF0YTogeyBjYXB0aW9uOiB0aGlzLmNhcHRpb24sIGNhbkZ1bGxzY3JlZW46IHRoaXMuY2FuRnVsbHNjcmVlbiwgY2FuTW92ZTogdGhpcy5jYW5Nb3ZlIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChtb2RhbFNldHRpbmcpIHtcclxuICAgICAgICAgICAgc2V0dGluZyA9IHsgLi4uc2V0dGluZywgLi4ubW9kYWxTZXR0aW5nIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nVGVtcGxhdGVSZWYsIHNldHRpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2FuY2VsKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLkFkYXB0ZXI7XHJcbiAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ1Rvb2xDbGljaycsIGFkYXB0ZXIsIHsgS2V5OiAnQ2FuY2VsJyB9KTtcclxuICAgICAgICB0aGlzLl9jbG9zZSgpO1xyXG4gICAgfVxyXG4gICAgb25TYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLkFkYXB0ZXI7XHJcbiAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ1Rvb2xDbGljaycsIGFkYXB0ZXIsIHsgS2V5OiAnU2F2ZUFuZENsb3NlJyB9KTtcclxuICAgIH1cclxuICAgIG9uT2soKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYWRhcHRlciA9IHRoaXMuQWRhcHRlcjtcclxuICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnVG9vbENsaWNrJywgYWRhcHRlciwgeyBLZXk6ICdPaycgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb3JtQ2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1BhcmFtcy5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nT3BlbmVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgLy8gQElucHV0KCkgU2hvd0Zvcm1QYW5lbENvbnRyb2wgPSAoZm9ybXBhbmVsQ3RybHIpID0+IHt9O1xyXG4gICAgLy8gLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIC8vIEBJbnB1dCgpIEZvcmNlQ2xvc2VDaGlsZCA9ICgpID0+IHt9O1xyXG4gICAgLy8gLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIC8vIEBJbnB1dCgpIFJlZnJlc2hGb3JtUGFuZWxDb250cm9sID0gKGZvcm1wYW5lbEN0cmxyKSA9PiB7fTtcclxuICAgIHByaXZhdGUgX2Nsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuZGlhbG9nUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2UoKTtcclxuICAgICAgICBpZiAodGhpcy5BZGFwdGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuQWRhcHRlci5Db250cm9sLmZpcmVFdmVudCgnUmVxdWVzdEZvckNsb3NlJywgdGhpcy5BZGFwdGVyLkNvbnRyb2wsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuZGlhbG9nUGFyYW1zLmNsb3NlKCk7XHJcbiAgICAgICAgLy8gdGhpcy5kaWFsb2dPcGVuZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXRDYXB0aW9uKGZvcm1QYW5lbEN0cmxyOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB0eXBlRGVmTmFtZSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGZvcm1QYW5lbEN0cmxyLCAnTW8uJFR5cGVEZWZOYW1lJywgJycpO1xyXG4gICAgICAgIGNvbnN0IG1vQ2FwdGlvbiA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGZvcm1QYW5lbEN0cmxyLCAnTW8uJENhcHRpb24nLCAnJyk7XHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gdHlwZURlZk5hbWUgKyAnOicgKyBtb0NhcHRpb247XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNkaWFsb2c+XHJcbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIiAjZGlhbG9nVHBsUmVmPlxyXG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgxIGZkLXRpdGxlIHN0eWxlPVwibWF4LXdpZHRoOiAxNXJlbVwiPnt7IHRpdGxlIHx8IGRpYWxvZ0NvbmZpZy5kYXRhLmNhcHRpb24gfX08L2gxPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1jZW50ZXIgc3R5bGU9XCJmbGV4OiAxXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgICAgICA8YnN1LWZvcm0tdG9vbGJhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1iYXItcmlnaHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZFRvb2xiYXJJdGVtcyRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFzeW5jXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOmZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmaWx0ZXJXb3JrZmxvd0luTW9iaWxlOiB3b3JrZmxvd0J1dHRvbnNPbkZvb3RlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlyVmFsdWVdPVwiKGRpclZhbHVlJCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzRmlyZWZveF09XCJpc0ZpcmVmb3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAodG9vbGJhckNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAjZm9ybVRvb2xiYXJcclxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtZm9ybS10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZGlhbG9nQ29uZmlnLmRhdGEuY2FuRnVsbHNjcmVlbikge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cImZ1bGxzY3JlZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZnVsbHNjcmVlbiA/ICdleGl0ZnVsbHNjcmVlbicgOiAncmVzaXplJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5EaWFsb2dcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RpYWxvZ109XCJkaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5DaGFuZ2VkKT1cImZ1bGxzY3JlZW4gPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nQ29tcG9uZW50XT1cImRpYWxvZ1RwbFJlZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgYXJpYUxhYmVsPVwiY2xvc2VcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8IS0tIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgZmRrVGVtcGxhdGU9XCJzdWJoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJleHRlbmRUb29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOmZhbHNlIGFzIHRvb2xiYXJJdGVtc1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLW1pZGRsZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgY2xhc3M9XCIhdHctanVzdGlmeS1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1mb3JtLXRvb2xiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbnNdPVwidG9vbGJhckl0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXJWYWx1ZV09XCIoZGlyVmFsdWUkIHwgYXN5bmMpISFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRmlyZWZveF09XCJpc0ZpcmVmb3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRvb2xiYXJDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmb3JtVG9vbGJhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9ic3UtZm9ybS10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT4gLS0+XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxyXG5cclxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XHJcbiAgICAgICAgICAgIDxibnJjLWZvcm1cclxuICAgICAgICAgICAgICAgIFtmb3JtUGFuZWxDdHJsXT1cImZvcm1QYW5lbEN0cmxyXCJcclxuICAgICAgICAgICAgICAgIFtwYXJhbXNdPVwicGFyYW1zXCJcclxuICAgICAgICAgICAgICAgIChmb3JtQ2xvc2UpPVwib25Gb3JtQ2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAodWlDb21wb25lbnQpPVwib25Gb3JtVWlDb21wb25lbnRSZWFkeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvYm5yYy1mb3JtPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXIgW3N0eWxlLmRpc3BsYXldPVwiIXNob3dGb290ZXIgJiYgIWlzV29ya2Zsb3dGb3JtICYmICF3b3JrZmxvd0J1dHRvbnNPbkZvb3RlciA/ICdub25lJyA6IG51bGxcIj5cclxuICAgICAgICAgICAgQGlmIChpc01vYmlsZSB8fCB3b3JrZmxvd0J1dHRvbnNPbkZvb3RlciApIHsgQGlmKHdvcmtmbG93QnV0dG9ucyQgfCBhc3luYyA7YXMgd29ya2Zsb3dCdXR0b25zKXtcclxuICAgICAgICAgICAgPGJzdS1sYXlvdXQtYWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgW2NhblNlbmRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW2J1dHRvbnNdPVwiW11cIlxyXG4gICAgICAgICAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcclxuICAgICAgICAgICAgICAgIFtsYW5kc2NhcGVdPVwiKGZvcm1VaT8ubGFuZHNjYXBlJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc3RhbmRhbG9uZV09XCIoZm9ybVVpPy5zdGFuZGFsb25lJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbd29ya2Zsb3dCdXR0b25zXT1cIndvcmtmbG93QnV0dG9uc1wiXHJcbiAgICAgICAgICAgICAgICBbd29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICBbcnRsXT1cIihydGwkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgICAgICAgICAgICAgICh0b29sQ2xpY2spPVwiZm9ybVVpPy5vblRvb2xiYXJDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICh3b3JrZmxvd0Nob2ljZVNlbGVjdCk9XCJmb3JtVWk/Lm9uV29ya2Zsb3dDaG9pY2VDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2JzdS1sYXlvdXQtYWN0aW9ucz5cclxuICAgICAgICAgICAgfSB9IEBmb3IgKGJ0biBvZiAoZXh0ZW5kVG9vbGJhckl0ZW1zJCB8IGFzeW5jIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzp0cnVlKSA7IHRyYWNrIGJ0bi5JZCkgeyBAaWYgKCEoYnRuXHJcbiAgICAgICAgICAgID09PSAnLScgfHwgYnRuLnRleHQgPT09ICctJykgJiYgKChidG4uaXNCdWlsdGluICYmIGJ0bi5pbkZvb3RlcikgfHwgYnRuLmlzV29ya2Zsb3cpKSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYnRuLkRhdGE/LkN1c3RvbVVpPy5TZWxlY3RvciA/IGR5bmFtaWNCdG5UZW1wbGF0ZSA6IGJ0blRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBidG4gfVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2J0blRlbXBsYXRlIGxldC1idG4+XHJcbiAgICAgICAgICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cImJ0bi5pc1dvcmtmbG93ID8gJ2F0dGVudGlvbicgOiBidG4uZGVzaWduXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi50ZXh0IHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImJ0bi5uZXdJY29uID8gYnRuLm5ld0ljb24gOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ0bi5oYW5kbGVyKGJ0biwgZm9ybVBhbmVsQ3RybHI/LkFkYXB0ZXI/LkNvbnRyb2wpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkeW5hbWljQnRuVGVtcGxhdGUgbGV0LWJ0bj5cclxuICAgICAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8Ym5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiYnRuLkRhdGEuQ3VzdG9tVWlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNFbmFibGVdPVwiYnRuLkNvbW1hbmQ/Ll9pc0VuYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChidG5DbGljayk9XCJidG4uaGFuZGxlcihidG4sIGZvcm1QYW5lbEN0cmxyPy5BZGFwdGVyPy5Db250cm9sKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB9IH0gQGlmICghaXNOb25lUGVyc2lzdGFuY2UgJiYgc2hvd1NhdmVCdXR0b24gIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtaW5pdGlhbC1mb2N1c1xyXG4gICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNhbmNlbCgpXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICA8L2ZkLWRpYWxvZz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -135,7 +135,7 @@ export class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBas
|
|
|
135
135
|
m._subscriptions.add(sub);
|
|
136
136
|
if (isListItem) {
|
|
137
137
|
// m.openChangeHandle(false);
|
|
138
|
-
m.searchInputElement?.nativeElement.focus();
|
|
138
|
+
// m.searchInputElement?.nativeElement.focus();
|
|
139
139
|
}
|
|
140
140
|
else {
|
|
141
141
|
// stop propagation on the checkbox so event doesn't reach the list item
|
|
@@ -401,4 +401,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
401
401
|
}], GetSelectionData: [{
|
|
402
402
|
type: Input
|
|
403
403
|
}] } });
|
|
404
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi91aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBYSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQW9DLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQWV6RSxNQUFNLE9BQU8sd0NBQXlDLFNBQVEsNEJBQTRCO0lBUDFGOztRQXNCSSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQXdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLG9CQUFlLEdBQUcs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WUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZN0MsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkErSTlCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCB0YWtlVW50aWwsIHRhcCwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERpYWxvZ1JlZiwgTXVsdGlJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcbmltcG9ydCB7IEJhcnNhQXBpLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBSZXBvcnRNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RldmljZS1pbmZvLWZpZWxkLWJhc2UnO1xyXG5cclxuaW50ZXJmYWNlIExpbmVhckl0ZW1NbyBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgRGF0YTogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIElkOiBzdHJpbmc7XHJcbiAgICBUZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUxpbmVhckxpc3RDb250YWluZXJXaXRoQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKE11bHRpSW5wdXRDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBtdWx0aUlucHV0Q29tcG9uZW50OiBNdWx0aUlucHV0Q29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gICAgZGlhbG9nQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQElucHV0KCkgc2V0IFVsdlVpKHZhbDogeyBTZXR0aW5nOiBSZXBvcnRNb2RlbCB9KSB7XHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgICBjb25zdCBtb0xpc3QgPSB2YWwuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UubmV4dChtb0xpc3QpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vTGlzdCA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmRyb3BEb3duVmFsdWVzU291cmNlLm5leHQobW9MaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdWx2VWkgPSB2YWw7XHJcbiAgICB9XHJcbiAgICBtb2JpbGUgPSBmYWxzZTsgICAgICAgIFxyXG4gICAgZHJvcERvd25WYWx1ZXNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1ldGFvYmplY3REYXRhTW9kZWxbXT4oW10pO1xyXG4gICAgZHJvcERvd25WYWx1ZXMkID0gdGhpcy5kcm9wRG93blZhbHVlc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxyXG4gICAgICAgIG1hcCgobW9MaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHQgPSBtb0xpc3QuZmlsdGVyKChjKSA9PiB0aGlzLnZhbHVlLmZpbmQoKGQpID0+IGQuSWQgPT09IGMuSWQpID09PSB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICByZXR1cm4gdDtcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YXAoXHJcbiAgICAgICAgICAgIChtb0xpc3QpID0+XHJcbiAgICAgICAgICAgICAgICAodGhpcy5maXJzdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJENhcHRpb246IG1vTGlzdFswXT8uJENhcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgSWQ6IG1vTGlzdFswXT8uSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgVGV4dDogbW9MaXN0WzBdPy4kQ2FwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBEYXRhOiBtb0xpc3RbMF1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKSxcclxuICAgICAgICBtYXAoKG1vbGlzdCkgPT4gbW9saXN0Lm1hcCgoYykgPT4gYy5JZCkpXHJcbiAgICApO1xyXG4gICAgc2VsZWN0ZWQ6IGFueVtdO1xyXG4gICAgcmVwb3J0ID0gbnVsbDtcclxuICAgIHRlcm0gPSAnJztcclxuICAgIHRlcm1Tb3VyY2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgICBvcmlnaW5hbE1vTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xyXG4gICAgdmFsdWU6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcclxuICAgIHJ0bCA9IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNSdGw7XHJcbiAgICBkaWFsb2dSZWY6IERpYWxvZ1JlZjtcclxuICAgIGRpYWxvZ09wZW46IGJvb2xlYW47XHJcbiAgICBmaXJzdEl0ZW06IExpbmVhckl0ZW1NbztcclxuICAgIGlkc09mTW86IHN0cmluZ1tdO1xyXG4gICAgcGFyYW1ldGVyczogVWlMaW5lYXJMaXN0Q29udGFpbmVyU2V0dGluZztcclxuICAgIHByaXZhdGUgc2hvd1VsdlNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIF91bHZVaTogeyBba2V5OiBzdHJpbmddOiBhbnk7IFNldHRpbmc6IFJlcG9ydE1vZGVsIH07XHJcbiAgICBwcml2YXRlIF90cmlnZ2VyQ2xpY2tlZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX3NldFdpZHRoID0gZmFsc2U7XHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RW50ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudGVybSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnUmVxdWVzdENvbW1hbmQnLCB0aGlzLmNvbnRleHQsICdOZXcnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RG93bigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMudGVybSAmJiB0aGlzLmhpZGRlbigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlcXVlc3RGaWx0ZXIyJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZG9jID0gZG9jdW1lbnQ7XHJcbiAgICAgICAgICAgIGlmIChkb2MuYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdmZC10b2tlbicpICYmIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudD8ubGlzdENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50Lmxpc3RDb21wb25lbnQuc2V0SXRlbUFjdGl2ZSgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RXNjKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURyb3BEb3duT3BlblN0YXRlKGZhbHNlKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd1VsdlNvdXJjZVxyXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX29wZW5VbHYoKSk7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnJlcG9ydCA9IHRoaXMuU2V0dGluZy5SZXBvcnQ7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbE1vTGlzdCA9IFsuLi50aGlzLnZhbHVlXTtcclxuICAgICAgICB0aGlzLnRlcm1Tb3VyY2VcclxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHRlcm0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlcm0gPSB0ZXJtO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGVybSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BEb3duVmFsdWVzU291cmNlLm5leHQoW10pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlcXVlc3RGaWx0ZXInLCB0ZXJtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgICAgICAvLyB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQuc2VsZWN0ZWQgPSB0aGlzLm9yaWdpbmFsTW9MaXN0O1xyXG4gICAgICAgIHRoaXMuX3NldElkc09Nb0J5VmFsdWUoKTtcclxuXHJcbiAgICAgICAgLy8gY29uc3Qgb2xkSGFubGRlID0gdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50Ll9hZGRPbkJ1dHRvbkNsaWNrZWQ7XHJcbiAgICAgICAgY29uc3QgbSA9IHRoaXMubXVsdGlJbnB1dENvbXBvbmVudCBhcyBhbnk7XHJcbiAgICAgICAgbS5fYWRkT25CdXR0b25DbGlja2VkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVBZGRvbkJ1dHRvbkNsaWNrZWQoKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIG0uZmlsdGVyRm4gPSAoZHJvcGRvd25WYWx1ZXMsIHNlYXJjaFRlcm0pID0+IGRyb3Bkb3duVmFsdWVzO1xyXG4gICAgICAgIG0uX29uQ2hlY2tib3hDbGljayA9IGZ1bmN0aW9uIChvcHRpb24sIGV2ZW50LCBpbmRleCwgaXNMaXN0SXRlbSA9IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvZ2dsZWRTZWxlY3Rpb24gPSAhbS5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24uaWQpO1xyXG4gICAgICAgICAgICBtLl9yYW5nZVNlbGVjdG9yLm9uUmFuZ2VFbGVtZW50VG9nZ2xlZChpbmRleCwgZXZlbnQpO1xyXG4gICAgICAgICAgICBjb25zdCBzdWIgPSBtLl92aWV3TW9kZWwkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCh2bSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbS5fcmFuZ2VTZWxlY3Rvci5hcHBseVZhbHVlVG9FYWNoSW5SYW5nZSgoaWR4KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIG0uX2hhbmRsZVNlbGVjdCh0b2dnbGVkU2VsZWN0aW9uLCB2bS5kaXNwbGF5ZWRPcHRpb25zW2lkeF0sIGZhbHNlKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIG0uX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBtLl9zdWJzY3JpcHRpb25zLmFkZChzdWIpO1xyXG4gICAgICAgICAgICBpZiAoaXNMaXN0SXRlbSkge1xyXG4gICAgICAgICAgICAgICAgLy8gbS5vcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIG0uc2VhcmNoSW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBzdG9wIHByb3BhZ2F0aW9uIG9uIHRoZSBjaGVja2JveCBzbyBldmVudCBkb2Vzbid0IHJlYWNoIHRoZSBsaXN0IGl0ZW1cclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfS5iaW5kKG0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLndpbmRvd1Jlc2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoYykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9yZXNpemVUb2tlbml6ZXIoJzEwMCUnKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVUb2tlbml6ZXIoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBvblZpc2liaWxpdHlDaGFuZ2UoZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlID09PSAnVmlzaWJsZScgJiYgIXRoaXMuX3NldFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldFdpZHRoID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fcmVzaXplVG9rZW5pemVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX3Jlc2l6ZVRva2VuaXplcih3aWR0aDogc3RyaW5nID0gJycpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBlbERvbSA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgeCA9IGVsRG9tLnF1ZXJ5U2VsZWN0b3IoJ2ZkLXRva2VuaXplcicpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGlmICghd2lkdGggJiYgeCkge1xyXG4gICAgICAgICAgICBjb25zdCB3eCA9IHguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XHJcbiAgICAgICAgICAgIGlmICghd3gpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB3aWR0aCA9IGAke3d4fXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHgsICd3aWR0aCcsIGAke3dpZHRofWApO1xyXG4gICAgfVxyXG4gICAgdmFsdWVGbihlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBlO1xyXG4gICAgfSAgICBcclxuICAgIG9uU2VhcmNoVGVybUNoYW5nZSh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRlcm1Tb3VyY2UubmV4dCh0ZXJtKTtcclxuICAgIH1cclxuICAgIG9uT3BlblJlcG9ydCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2tlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMucmVwb3J0KSB7XHJcbiAgICAgICAgICAgIHRoaXMudGVybVNvdXJjZS5uZXh0KCcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnVHJpZ2dlckNsaWNrJywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuICAgIG9uU2VsZWN0ZWRDaGFuZ2UoYXJyOiBzdHJpbmdbXSk6IHZvaWQgeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRDaGFuZ2VkKGFycik7XHJcbiAgICB9XHJcbiAgICBvblJlbW92ZVNlbGVjdGVkKG1vKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVNlbGVjdGVkKG1vKTtcclxuICAgICAgICB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLkRlU2VsZWN0UmVjb3JkcyhbbW9dKTtcclxuICAgICAgICAvLyB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgncm93ZGVzZWxlY3QnLCB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLCAtMSwgbW8pO1xyXG4gICAgfVxyXG4gICAgb25EaXNtaXNzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2Nsb3NlRGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgICBvbk9rKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuX3NlbGVjdGVkQ2hhbmdlZCh0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgICAgIHRoaXMuX2Nsb3NlRGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgICBvbkNsZWFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEudWx2VWkudmlld2VyQ29udHJvbC5DbGVhckFsbFNlbGVjdGVkKCk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2hhbmRsZUFkZG9uQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5wYXJhbWV0ZXJzPy5FeGVjdXRlQWRkb25CdXR0b24pIHtcclxuICAgICAgICAgICAgdGhpcy5fZXhlY3V0ZUNvbW1hbmQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm9uT3BlblJlcG9ydCgpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9leGVjdXRlQ29tbWFuZCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IEFkZG9uQnV0dG9uQ29tbWFuZCB9ID0gdGhpcy5wYXJhbWV0ZXJzO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ0FkZG9uQnV0dG9uQ2xpY2tlZCcsIHRoaXMuY29udGV4dCwgQWRkb25CdXR0b25Db21tYW5kKTtcclxuICAgIH1cclxuICAgIF90cmFja0J5U2VsZWN0ZWRGbihfaW5kZXg6IG51bWJlciwgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCk6IG51bWJlciB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uSWQ7XHJcbiAgICB9XHJcbiAgICBkaXNwbGF5RnVuYyA9IChpZDogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICAgICAgICBjb25zdCBhbGxJdGVtcyA9IFsuLi50aGlzLnZhbHVlLCAuLi50aGlzLmRyb3BEb3duVmFsdWVzU291cmNlLmdldFZhbHVlKCldO1xyXG4gICAgICAgIGNvbnN0IGV4aXN0SW5WYWx1ZSA9IGFsbEl0ZW1zLmZpbmQoKGMpID0+IGMuSWQgPT09IGlkKTtcclxuICAgICAgICBpZiAoZXhpc3RJblZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBleGlzdEluVmFsdWUuVGV4dCA/PyBleGlzdEluVmFsdWUuJENhcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH07XHJcbiAgICBfc2V0VmFsdWUodmFsdWU6IGFueSk6IHZvaWQgeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbE1vTGlzdCA9IFsuLi52YWx1ZV07XHJcbiAgICAgICAgdGhpcy5fc2V0SWRzT01vQnlWYWx1ZSgpO1xyXG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgR2V0VGV4dEl0ZW1WYWx1ZSA9ICgpID0+IHRoaXMudGVybTtcclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBzaG93ID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX29wZW5VbHYoKTtcclxuICAgIH07XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgaGlkZSA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VEcm9wRG93bk9wZW5TdGF0ZShmYWxzZSk7XHJcbiAgICB9O1xyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBJbnB1dCgpIGhpZGRlbiA9ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50ICYmICF0aGlzLm11bHRpSW5wdXRDb21wb25lbnQub3BlbiAmJiAhdGhpcy5kaWFsb2dPcGVuO1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIEdldFNlbGVjdGlvbkRhdGEgPSAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5zZWxlY3RlZDtcclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgfTtcclxuICAgIHByaXZhdGUgX3NldElkc09Nb0J5VmFsdWUoKSB7XHJcbiAgICAgICAgdGhpcy5pZHNPZk1vID0gdGhpcy5vcmlnaW5hbE1vTGlzdC5tYXAoKGMpID0+IGMuSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NoYW5nZURyb3BEb3duT3BlblN0YXRlKHZhbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm11bHRpSW5wdXRDb21wb25lbnQgJiYgdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50Lm9wZW4gIT09IHZhbCkge1xyXG4gICAgICAgICAgICB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQub3BlbiA9IHZhbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9vcGVuVWx2KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnJlcG9ydCAmJiAhdGhpcy50ZXJtICYmIHRoaXMuX3RyaWdnZXJDbGlja2VkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ09wZW4gfHwgIXRoaXMuX3VsdlVpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgdmlldzogYW55ID0gdGhpcy5fdWx2VWkuU2V0dGluZy5WaWV3O1xyXG4gICAgICAgICAgICB2aWV3LklzQ2hlY2tMaXN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29uc3QgZGV2aWNlU2l6ZSA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZTtcclxuICAgICAgICAgICAgY29uc3QgbGFyZ2VTY3JlZW4gPSBkZXZpY2VTaXplID09PSAnbCcgfHwgZGV2aWNlU2l6ZSA9PT0gJ3hsJztcclxuICAgICAgICAgICAgY29uc3QgZGlhbG9nQ29uZmlnOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIHVsdlVpOiB0aGlzLl91bHZVaSxcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oJ1NlbGVjdCcpLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM6IFsuLi50aGlzLm9yaWdpbmFsTW9MaXN0XVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBkaWFsb2dQYW5lbENsYXNzOiBgdWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZyAke2RldmljZVNpemUgPyAndWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZy1tb2JpbGUnIDogJyd9YFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBpZiAobGFyZ2VTY3JlZW4pIHtcclxuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICc2MHZ3JztcclxuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSAnNjB2aCc7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcubWluV2lkdGggPSAnNjAwJztcclxuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5taW5IZWlnaHQgPSAnMzYwJztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5tb2JpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmZ1bGxTY3JlZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl91bHZVaT8uU2V0dGluZz8uRXh0cmE/LkRlZmF1bHRDb21tYW5kc0FjY2Vzcz8uVmlldykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkuU2V0dGluZy5FeHRyYS5EZWZhdWx0Q29tbWFuZHNBY2Nlc3MuVmlldyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGFTZXR0aW5nID0gdGhpcy5fdWx2VWkuU2V0dGluZy5EYXRhO1xyXG4gICAgICAgICAgICBpZiAobGFyZ2VTY3JlZW4gJiYgZGF0YVNldHRpbmcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChkYXRhU2V0dGluZy5QYWdpbmc/Lkhhc1BhZ2luZykge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSAnMTAwdmgnO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gZGF0YVNldHRpbmcuTW9EYXRhTGlzdC5sZW5ndGggPiAxMCA/ICcxMDB2aCcgOiAnNjB2aCc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nQ29udGFpbmVyLCBkaWFsb2dDb25maWcpO1xyXG4gICAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nQ2xvc2UodGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5fdWx2VWkuJFJlZ2lzdGVyRXZlbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3VsdlVpLiRSZWdpc3RlckV2ZW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3VsdlVpLnZpZXdlckNvbnRyb2wub24oe1xyXG4gICAgICAgICAgICAgICAgICAgIGFmdGVycmVuZGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VsdlVpLnZpZXdlckNvbnRyb2wucmVhZHlUb1NlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLkNsZWFyQWxsU2VsZWN0ZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbC5zZWxlY3RSZWNvcmRzKHRoaXMub3JpZ2luYWxNb0xpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMgPSBbLi4udGhpcy5vcmlnaW5hbE1vTGlzdF07XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByb3dTZWxlY3RBbGw6IChjb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZE1vVG9TZWxlY3RlZChtbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcm93RGVzZWxlY3RBbGw6IChjb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUZyb21TZWxlY3RlZChtbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcm93c2VsZWN0OiAoc2VuZGVyLCBpbmRleCwgbW8pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9pZiAodGhpcy5vcmlnaW5hbE1vTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vINmC2KjZhCDYp9iyINix2YbYr9ixINi02K/ZhiDYp9uM2YYg2KfYqtmB2KfZgiDZhduMINin2YHYqtin2K9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkTW9Ub1NlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy99XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByb3dkZXNlbGVjdDogKHNlbmRlciwgaW5kZXgsIG1vKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUZyb21TZWxlY3RlZChtbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSBkaWFsb2dSZWY7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRHJvcERvd25PcGVuU3RhdGUodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfY2xvc2VEaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRpYWxvZ09wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfYWRkTW9Ub1NlbGVjdGVkKG1vOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIW1vKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXM7XHJcbiAgICAgICAgaWYgKCFzZWxlY3RlZC5maW5kKChjKSA9PiBjLklkID09PSBtby5JZCkpIHtcclxuICAgICAgICAgICAgc2VsZWN0ZWQucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBJZDogbW8uSWQsXHJcbiAgICAgICAgICAgICAgICBUZXh0OiBtby4kQ2FwdGlvbixcclxuICAgICAgICAgICAgICAgIERhdGE6IG1vLFxyXG4gICAgICAgICAgICAgICAgJENhcHRpb246IG1vLiRDYXB0aW9uXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX3JlbW92ZUZyb21TZWxlY3RlZChtbzogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjLklkICE9PSBtby5JZCk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWQ7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9kaWFsb2dDbG9zZShtb0xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UubmV4dChtb0xpc3QpO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkQ2hhbmdlZChtb0xpc3QubWFwKChjKSA9PiBjLklkKSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9zZWxlY3RlZENoYW5nZWQoYXJyOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRlbGV0ZWRJdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdID0gW107XHJcbiAgICAgICAgY29uc3QgYWRkZWRJdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdID0gW107XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBbLi4udGhpcy52YWx1ZV07XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaCgobW8pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNbyA9IGFyci5maW5kKChtb0lkKSA9PiBtb0lkID09PSBtby5JZCk7XHJcbiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRNbykge1xyXG4gICAgICAgICAgICAgICAgbW8uRGF0YS4kSXNDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVkSXRlbXMucHVzaChtby5EYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGFyci5mb3JFYWNoKChtb0lkKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTW8gPSB0aGlzLm9yaWdpbmFsTW9MaXN0LmZpbmQoKGMpID0+IGMuSWQgPT09IG1vSWQpO1xyXG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkTW8pIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1vMiA9IHRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UuZ2V0VmFsdWUoKS5maW5kKChjKSA9PiBjLklkID09PSBtb0lkKTtcclxuICAgICAgICAgICAgICAgIGlmIChtbzIpIHtcclxuICAgICAgICAgICAgICAgICAgICBtbzIuJElzQ2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkZWRJdGVtcy5wdXNoKG1vMik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZGVsZXRlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdSZXF1ZXN0Q29tbWFuZCcsIHRoaXMuY29udGV4dCwgJ0RlbGV0ZScsIGRlbGV0ZWRJdGVtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhZGRlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdSZXF1ZXN0Q29tbWFuZCcsIHRoaXMuY29udGV4dCwgJ0FkZCcsIGFkZGVkSXRlbXMpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgncm93Y2xpY2snKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBVaUxpbmVhckxpc3RDb250YWluZXJTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBFeGVjdXRlQWRkb25CdXR0b246IGJvb2xlYW47XHJcbiAgICBBZGRvbkJ1dHRvbkNvbW1hbmQ6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbn1cclxuIiwiPGZkLW11bHRpLWlucHV0XHJcbiAgICBbaW5wdXRJZF09XCJpZFwiXHJcbiAgICBpbnRlcnNlY3Rpb25PYnNlcnZlclxyXG4gICAgW2ludGVyc2VjdGlvblRocmVzaG9sZF09XCIwLjFcIlxyXG4gICAgKHZpc2liaWxpdHlDaGFuZ2UpPVwib25WaXNpYmlsaXR5Q2hhbmdlKCRldmVudClcIlxyXG4gICAgW2NsYXNzLmNvbnRyb2wtcmVhZG9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbZHJvcGRvd25WYWx1ZXNdPVwiKGRyb3BEb3duVmFsdWVzJCB8IGFzeW5jKSEhXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJTZXR0aW5nLkNvbnRyb2xGaWVsZENhcHRpb25UcmFuc2xhdGVkIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgIFtkaXNwbGF5Rm5dPVwiZGlzcGxheUZ1bmNcIlxyXG4gICAgW3Nob3dBbGxCdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgW2Rpc3BsYXlBZGRvbkJ1dHRvbl09XCIoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpICE9PSB0cnVlXCJcclxuICAgIFthbGxvd05ld1Rva2Vuc109XCJmYWxzZVwiXHJcbiAgICBbaW5jbHVkZXNdPVwidHJ1ZVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cImlkc09mTW9cIlxyXG4gICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbdmFsdWVGbl09XCJ2YWx1ZUZuXCJcclxuICAgIChzZWFyY2hUZXJtQ2hhbmdlKT1cIm9uU2VhcmNoVGVybUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChzZWxlY3RlZENoYW5nZSk9XCJvblNlbGVjdGVkQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJfaGFuZGxlQWRkb25CdXR0b25DbGlja2VkKClcIlxyXG4+PC9mZC1tdWx0aS1pbnB1dD5cclxuXHJcbjwhLS0gPGJ1dHRvblxyXG4qbmdJZj1cInJlcG9ydFwiXHJcbmZkLWJ1dHRvblxyXG5bYXR0ci5ydGxdPVwicnRsXCJcclxuW2FyaWEtbGFiZWxdPVwiJ0FkdmFuY2VkJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbmdseXBoPVwidmFsdWUtaGVscFwiXHJcbltkaXNhYmxlZF09XCIoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpISFcIlxyXG4oY2xpY2spPVwib25PcGVuUmVwb3J0KClcIlxyXG4+PC9idXR0b24+IC0tPlxyXG5cclxuPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNjb250YWluZXI+XHJcbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIiAjZGlhbG9nVHBsPlxyXG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTNcIiBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmIChkaWFsb2dDb25maWcuaGVpZ2h0ICE9PSAnMTAwdmgnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiZnVsbHNjcmVlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuID8gJ2V4aXRmdWxsc2NyZWVuJyA6ICdyZXNpemUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNjcmVlbkRpYWxvZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5DaGFuZ2VkKT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW4gPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nXT1cImRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2dDb21wb25lbnRdPVwiZGlhbG9nVHBsXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhciBhcmlhTGFiZWw9XCJjbG9zZVwiIGdseXBoPVwiZGVjbGluZVwiIChjbGljayk9XCJvbkRpc21pc3MoKVwiPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8IS0tIDxoMyBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDM+XHJcbiAgICAgIDxidXR0b24gZmQtZGlhbG9nLWNsb3NlLWJ1dHRvbj48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgICAgIDxmZC1kaWFsb2ctYm9keT5cclxuICAgICAgICAgICAgQGlmIChkaWFsb2cuZGF0YS51bHZVaTsgYXMgdWx2VWkpIHtcclxuICAgICAgICAgICAgPGJzdS11aS11bHYtbWFpbi11aSBbY29udGV4dF09XCJ1bHZVaVwiIGNsYXNzPVwibGluZWFyLWxpc3Qtc2VsZWN0aW9uXCI+PC9ic3UtdWktdWx2LW1haW4tdWk+XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cclxuXHJcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXIgY2xhc3M9XCJ1bHZTZWxlY3Rpb25cIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19yb3cgdWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fc2VsZWN0aW9uLXJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ1NlbGVjdGVkSXRlbXNBbmRDb25kaXRpb25zJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlIGNsYXNzPVwic2VsZWN0ZWQtYW5kLWNvbmRpdGlvbi10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj57eyAnU2VsZWN0ZWRJdGVtc0FuZENvbmRpdGlvbnMnIHwgYmJiVHJhbnNsYXRlIH19IDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHt7IGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCB8fCAwIH19KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX190b2tlbnMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyIFtzaG91bGRPdmVyZmxvd109XCJ0cnVlXCIgc3R5bGU9XCJvdmVyZmxvdy15OmF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlbGVjdGVkIGl0ZW1zIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKCBpdGVtIG9mIGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXM7IHRyYWNrIF90cmFja0J5U2VsZWN0ZWRGbihzZWxlY3RlZEluZGV4LCBpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRJbmRleCA9ICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b2tlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwiaGlnaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19zZWxlY3Rpb24tdG9rZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbG9zZUNsaWNrKT1cIm9uUmVtb3ZlU2VsZWN0ZWQoaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgaXRlbS5UZXh0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC10b2tlbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy1jbGVhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWJhcl9fcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXN1Y2Nlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ09LJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25PaygpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1kaXNtaXNzLWRpYWxvZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1kaWFsb2ctZGVjaXNpdmUtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ2FuY2VsJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGlzbWlzcygpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XHJcbiAgICA8L2ZkLWRpYWxvZz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
404
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi91aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBYSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQW9DLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQWV6RSxNQUFNLE9BQU8sd0NBQXlDLFNBQVEsNEJBQTRCO0lBUDFGOztRQXNCSSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQXdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLG9CQUFlLEdBQUcs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QVk3QyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQStJOUIsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsTUFBTTtzQkFBZCxLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCwgdGFwLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmLCBNdWx0aUlucHV0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgQmFyc2FBcGksIE1ldGFvYmplY3REYXRhTW9kZWwsIFJlcG9ydE1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBEZXZpY2VJbmZvRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGV2aWNlLWluZm8tZmllbGQtYmFzZSc7XHJcblxyXG5pbnRlcmZhY2UgTGluZWFySXRlbU1vIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBEYXRhOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgSWQ6IHN0cmluZztcclxuICAgIFRleHQ6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpTGluZWFyTGlzdENvbnRhaW5lcldpdGhCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBEZXZpY2VJbmZvRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoTXVsdGlJbnB1dENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIG11bHRpSW5wdXRDb21wb25lbnQ6IE11bHRpSW5wdXRDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgICBkaWFsb2dDb250YWluZXI6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBASW5wdXQoKSBzZXQgVWx2VWkodmFsOiB7IFNldHRpbmc6IFJlcG9ydE1vZGVsIH0pIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vTGlzdCA9IHZhbC5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdDtcclxuICAgICAgICAgICAgdGhpcy5kcm9wRG93blZhbHVlc1NvdXJjZS5uZXh0KG1vTGlzdCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgbW9MaXN0ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UubmV4dChtb0xpc3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91bHZVaSA9IHZhbDtcclxuICAgIH1cclxuICAgIG1vYmlsZSA9IGZhbHNlO1xyXG4gICAgZHJvcERvd25WYWx1ZXNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1ldGFvYmplY3REYXRhTW9kZWxbXT4oW10pO1xyXG4gICAgZHJvcERvd25WYWx1ZXMkID0gdGhpcy5kcm9wRG93blZhbHVlc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxyXG4gICAgICAgIG1hcCgobW9MaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHQgPSBtb0xpc3QuZmlsdGVyKChjKSA9PiB0aGlzLnZhbHVlLmZpbmQoKGQpID0+IGQuSWQgPT09IGMuSWQpID09PSB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICByZXR1cm4gdDtcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YXAoXHJcbiAgICAgICAgICAgIChtb0xpc3QpID0+XHJcbiAgICAgICAgICAgICAgICAodGhpcy5maXJzdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJENhcHRpb246IG1vTGlzdFswXT8uJENhcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgSWQ6IG1vTGlzdFswXT8uSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgVGV4dDogbW9MaXN0WzBdPy4kQ2FwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBEYXRhOiBtb0xpc3RbMF1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKSxcclxuICAgICAgICBtYXAoKG1vbGlzdCkgPT4gbW9saXN0Lm1hcCgoYykgPT4gYy5JZCkpXHJcbiAgICApO1xyXG4gICAgc2VsZWN0ZWQ6IGFueVtdO1xyXG4gICAgcmVwb3J0ID0gbnVsbDtcclxuICAgIHRlcm0gPSAnJztcclxuICAgIHRlcm1Tb3VyY2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgICBvcmlnaW5hbE1vTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xyXG4gICAgdmFsdWU6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcclxuICAgIHJ0bCA9IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNSdGw7XHJcbiAgICBkaWFsb2dSZWY6IERpYWxvZ1JlZjtcclxuICAgIGRpYWxvZ09wZW46IGJvb2xlYW47XHJcbiAgICBmaXJzdEl0ZW06IExpbmVhckl0ZW1NbztcclxuICAgIGlkc09mTW86IHN0cmluZ1tdO1xyXG4gICAgcGFyYW1ldGVyczogVWlMaW5lYXJMaXN0Q29udGFpbmVyU2V0dGluZztcclxuICAgIHByaXZhdGUgc2hvd1VsdlNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIF91bHZVaTogeyBba2V5OiBzdHJpbmddOiBhbnk7IFNldHRpbmc6IFJlcG9ydE1vZGVsIH07XHJcbiAgICBwcml2YXRlIF90cmlnZ2VyQ2xpY2tlZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX3NldFdpZHRoID0gZmFsc2U7XHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RW50ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudGVybSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnUmVxdWVzdENvbW1hbmQnLCB0aGlzLmNvbnRleHQsICdOZXcnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RG93bigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMudGVybSAmJiB0aGlzLmhpZGRlbigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlcXVlc3RGaWx0ZXIyJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZG9jID0gZG9jdW1lbnQ7XHJcbiAgICAgICAgICAgIGlmIChkb2MuYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdmZC10b2tlbicpICYmIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudD8ubGlzdENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50Lmxpc3RDb21wb25lbnQuc2V0SXRlbUFjdGl2ZSgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RXNjKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURyb3BEb3duT3BlblN0YXRlKGZhbHNlKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd1VsdlNvdXJjZVxyXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX29wZW5VbHYoKSk7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnJlcG9ydCA9IHRoaXMuU2V0dGluZy5SZXBvcnQ7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbE1vTGlzdCA9IFsuLi50aGlzLnZhbHVlXTtcclxuICAgICAgICB0aGlzLnRlcm1Tb3VyY2VcclxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHRlcm0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlcm0gPSB0ZXJtO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGVybSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BEb3duVmFsdWVzU291cmNlLm5leHQoW10pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlcXVlc3RGaWx0ZXInLCB0ZXJtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgICAgICAvLyB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQuc2VsZWN0ZWQgPSB0aGlzLm9yaWdpbmFsTW9MaXN0O1xyXG4gICAgICAgIHRoaXMuX3NldElkc09Nb0J5VmFsdWUoKTtcclxuXHJcbiAgICAgICAgLy8gY29uc3Qgb2xkSGFubGRlID0gdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50Ll9hZGRPbkJ1dHRvbkNsaWNrZWQ7XHJcbiAgICAgICAgY29uc3QgbSA9IHRoaXMubXVsdGlJbnB1dENvbXBvbmVudCBhcyBhbnk7XHJcbiAgICAgICAgbS5fYWRkT25CdXR0b25DbGlja2VkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVBZGRvbkJ1dHRvbkNsaWNrZWQoKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIG0uZmlsdGVyRm4gPSAoZHJvcGRvd25WYWx1ZXMsIHNlYXJjaFRlcm0pID0+IGRyb3Bkb3duVmFsdWVzO1xyXG4gICAgICAgIG0uX29uQ2hlY2tib3hDbGljayA9IGZ1bmN0aW9uIChvcHRpb24sIGV2ZW50LCBpbmRleCwgaXNMaXN0SXRlbSA9IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvZ2dsZWRTZWxlY3Rpb24gPSAhbS5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24uaWQpO1xyXG4gICAgICAgICAgICBtLl9yYW5nZVNlbGVjdG9yLm9uUmFuZ2VFbGVtZW50VG9nZ2xlZChpbmRleCwgZXZlbnQpO1xyXG4gICAgICAgICAgICBjb25zdCBzdWIgPSBtLl92aWV3TW9kZWwkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCh2bSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbS5fcmFuZ2VTZWxlY3Rvci5hcHBseVZhbHVlVG9FYWNoSW5SYW5nZSgoaWR4KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIG0uX2hhbmRsZVNlbGVjdCh0b2dnbGVkU2VsZWN0aW9uLCB2bS5kaXNwbGF5ZWRPcHRpb25zW2lkeF0sIGZhbHNlKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIG0uX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBtLl9zdWJzY3JpcHRpb25zLmFkZChzdWIpO1xyXG4gICAgICAgICAgICBpZiAoaXNMaXN0SXRlbSkge1xyXG4gICAgICAgICAgICAgICAgLy8gbS5vcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIC8vICBtLnNlYXJjaElucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gc3RvcCBwcm9wYWdhdGlvbiBvbiB0aGUgY2hlY2tib3ggc28gZXZlbnQgZG9lc24ndCByZWFjaCB0aGUgbGlzdCBpdGVtXHJcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZChtKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fcmVzaXplVG9rZW5pemVyKCcxMDAlJyk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzaXplVG9rZW5pemVyKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgb25WaXNpYmlsaXR5Q2hhbmdlKGUpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZSA9PT0gJ1Zpc2libGUnICYmICF0aGlzLl9zZXRXaWR0aCkge1xyXG4gICAgICAgICAgICB0aGlzLl9zZXRXaWR0aCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZVRva2VuaXplcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIF9yZXNpemVUb2tlbml6ZXIod2lkdGg6IHN0cmluZyA9ICcnKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZWxEb20gPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IHggPSBlbERvbS5xdWVyeVNlbGVjdG9yKCdmZC10b2tlbml6ZXInKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAoIXdpZHRoICYmIHgpIHtcclxuICAgICAgICAgICAgY29uc3Qgd3ggPSB4LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xyXG4gICAgICAgICAgICBpZiAoIXd4KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgd2lkdGggPSBgJHt3eH1weGA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZSh4LCAnd2lkdGgnLCBgJHt3aWR0aH1gKTtcclxuICAgIH1cclxuICAgIHZhbHVlRm4oZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZTtcclxuICAgIH1cclxuICAgIG9uU2VhcmNoVGVybUNoYW5nZSh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRlcm1Tb3VyY2UubmV4dCh0ZXJtKTtcclxuICAgIH1cclxuICAgIG9uT3BlblJlcG9ydCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2tlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMucmVwb3J0KSB7XHJcbiAgICAgICAgICAgIHRoaXMudGVybVNvdXJjZS5uZXh0KCcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnVHJpZ2dlckNsaWNrJywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuICAgIG9uU2VsZWN0ZWRDaGFuZ2UoYXJyOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkQ2hhbmdlZChhcnIpO1xyXG4gICAgfVxyXG4gICAgb25SZW1vdmVTZWxlY3RlZChtbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbW92ZUZyb21TZWxlY3RlZChtbyk7XHJcbiAgICAgICAgdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbC5EZVNlbGVjdFJlY29yZHMoW21vXSk7XHJcbiAgICAgICAgLy8gdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbC5maXJlRXZlbnQoJ3Jvd2Rlc2VsZWN0JywgdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbCwgLTEsIG1vKTtcclxuICAgIH1cclxuICAgIG9uRGlzbWlzcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jbG9zZURpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgb25PaygpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLl9zZWxlY3RlZENoYW5nZWQodGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgICB0aGlzLl9jbG9zZURpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgb25DbGVhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnVsdlVpLnZpZXdlckNvbnRyb2wuQ2xlYXJBbGxTZWxlY3RlZCgpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVBZGRvbkJ1dHRvbkNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVycz8uRXhlY3V0ZUFkZG9uQnV0dG9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGVDb21tYW5kKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vbk9wZW5SZXBvcnQoKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfZXhlY3V0ZUNvbW1hbmQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeyBBZGRvbkJ1dHRvbkNvbW1hbmQgfSA9IHRoaXMucGFyYW1ldGVycztcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdBZGRvbkJ1dHRvbkNsaWNrZWQnLCB0aGlzLmNvbnRleHQsIEFkZG9uQnV0dG9uQ29tbWFuZCk7XHJcbiAgICB9XHJcbiAgICBfdHJhY2tCeVNlbGVjdGVkRm4oX2luZGV4OiBudW1iZXIsIGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwpOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBpdGVtLklkO1xyXG4gICAgfVxyXG4gICAgZGlzcGxheUZ1bmMgPSAoaWQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgY29uc3QgYWxsSXRlbXMgPSBbLi4udGhpcy52YWx1ZSwgLi4udGhpcy5kcm9wRG93blZhbHVlc1NvdXJjZS5nZXRWYWx1ZSgpXTtcclxuICAgICAgICBjb25zdCBleGlzdEluVmFsdWUgPSBhbGxJdGVtcy5maW5kKChjKSA9PiBjLklkID09PSBpZCk7XHJcbiAgICAgICAgaWYgKGV4aXN0SW5WYWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZXhpc3RJblZhbHVlLlRleHQgPz8gZXhpc3RJblZhbHVlLiRDYXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9O1xyXG4gICAgX3NldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9yaWdpbmFsTW9MaXN0ID0gWy4uLnZhbHVlXTtcclxuICAgICAgICB0aGlzLl9zZXRJZHNPTW9CeVZhbHVlKCk7XHJcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBHZXRUZXh0SXRlbVZhbHVlID0gKCkgPT4gdGhpcy50ZXJtO1xyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBJbnB1dCgpIHNob3cgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fb3BlblVsdigpO1xyXG4gICAgfTtcclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBoaWRlID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURyb3BEb3duT3BlblN0YXRlKGZhbHNlKTtcclxuICAgIH07XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgaGlkZGVuID0gKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQgJiYgIXRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5vcGVuICYmICF0aGlzLmRpYWxvZ09wZW47XHJcbiAgICB9O1xyXG4gICAgQElucHV0KCkgR2V0U2VsZWN0aW9uRGF0YSA9ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50LnNlbGVjdGVkO1xyXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICB9O1xyXG4gICAgcHJpdmF0ZSBfc2V0SWRzT01vQnlWYWx1ZSgpIHtcclxuICAgICAgICB0aGlzLmlkc09mTW8gPSB0aGlzLm9yaWdpbmFsTW9MaXN0Lm1hcCgoYykgPT4gYy5JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2hhbmdlRHJvcERvd25PcGVuU3RhdGUodmFsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMubXVsdGlJbnB1dENvbXBvbmVudCAmJiB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQub3BlbiAhPT0gdmFsKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5vcGVuID0gdmFsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX29wZW5VbHYoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVwb3J0ICYmICF0aGlzLnRlcm0gJiYgdGhpcy5fdHJpZ2dlckNsaWNrZWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nT3BlbiB8fCAhdGhpcy5fdWx2VWkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB2aWV3OiBhbnkgPSB0aGlzLl91bHZVaS5TZXR0aW5nLlZpZXc7XHJcbiAgICAgICAgICAgIHZpZXcuSXNDaGVja0xpc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ09wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zdCBkZXZpY2VTaXplID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplO1xyXG4gICAgICAgICAgICBjb25zdCBsYXJnZVNjcmVlbiA9IGRldmljZVNpemUgPT09ICdsJyB8fCBkZXZpY2VTaXplID09PSAneGwnO1xyXG4gICAgICAgICAgICBjb25zdCBkaWFsb2dDb25maWc6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdWx2VWk6IHRoaXMuX3VsdlVpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLl9iYmJQaXBlLnRyYW5zZm9ybSgnU2VsZWN0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtczogWy4uLnRoaXMub3JpZ2luYWxNb0xpc3RdXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXNjS2V5Q2xvc2VhYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGRpYWxvZ1BhbmVsQ2xhc3M6IGB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nICR7ZGV2aWNlU2l6ZSA/ICd1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nLW1vYmlsZScgOiAnJ31gXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGlmIChsYXJnZVNjcmVlbikge1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzYwdncnO1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICc2MHZoJztcclxuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5taW5XaWR0aCA9ICc2MDAnO1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1pbkhlaWdodCA9ICczNjAnO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1vYmlsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcuZnVsbFNjcmVlbiA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3VsdlVpPy5TZXR0aW5nPy5FeHRyYT8uRGVmYXVsdENvbW1hbmRzQWNjZXNzPy5WaWV3KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZVaS5TZXR0aW5nLkV4dHJhLkRlZmF1bHRDb21tYW5kc0FjY2Vzcy5WaWV3ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZGF0YVNldHRpbmcgPSB0aGlzLl91bHZVaS5TZXR0aW5nLkRhdGE7XHJcbiAgICAgICAgICAgIGlmIChsYXJnZVNjcmVlbiAmJiBkYXRhU2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGFTZXR0aW5nLlBhZ2luZz8uSGFzUGFnaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICcxMDB2aCc7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSBkYXRhU2V0dGluZy5Nb0RhdGFMaXN0Lmxlbmd0aCA+IDEwID8gJzEwMHZoJyA6ICc2MHZoJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4odGhpcy5kaWFsb2dDb250YWluZXIsIGRpYWxvZ0NvbmZpZyk7XHJcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWFsb2dDbG9zZSh0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl91bHZVaS4kUmVnaXN0ZXJFdmVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkuJFJlZ2lzdGVyRXZlbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbC5vbih7XHJcbiAgICAgICAgICAgICAgICAgICAgYWZ0ZXJyZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbC5yZWFkeVRvU2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VsdlVpLnZpZXdlckNvbnRyb2wuQ2xlYXJBbGxTZWxlY3RlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLnNlbGVjdFJlY29yZHModGhpcy5vcmlnaW5hbE1vTGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLm9yaWdpbmFsTW9MaXN0XTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJvd1NlbGVjdEFsbDogKGNvbnRleHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkTW9Ub1NlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByb3dEZXNlbGVjdEFsbDogKGNvbnRleHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVNlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByb3dzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2lmICh0aGlzLm9yaWdpbmFsTW9MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g2YLYqNmEINin2LIg2LHZhtiv2LEg2LTYr9mGINin24zZhiDYp9iq2YHYp9mCINmF24wg2KfZgdiq2KfYr1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRNb1RvU2VsZWN0ZWQobW8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL31cclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJvd2Rlc2VsZWN0OiAoc2VuZGVyLCBpbmRleCwgbW8pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVNlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IGRpYWxvZ1JlZjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEcm9wRG93bk9wZW5TdGF0ZSh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9jbG9zZURpYWxvZygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9hZGRNb1RvU2VsZWN0ZWQobW86IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghbW8pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcztcclxuICAgICAgICBpZiAoIXNlbGVjdGVkLmZpbmQoKGMpID0+IGMuSWQgPT09IG1vLklkKSkge1xyXG4gICAgICAgICAgICBzZWxlY3RlZC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIElkOiBtby5JZCxcclxuICAgICAgICAgICAgICAgIFRleHQ6IG1vLiRDYXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgRGF0YTogbW8sXHJcbiAgICAgICAgICAgICAgICAkQ2FwdGlvbjogbW8uJENhcHRpb25cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcmVtb3ZlRnJvbVNlbGVjdGVkKG1vOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGMpID0+IGMuSWQgIT09IG1vLklkKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZDtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2RpYWxvZ0Nsb3NlKG1vTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kcm9wRG93blZhbHVlc1NvdXJjZS5uZXh0KG1vTGlzdCk7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRDaGFuZ2VkKG1vTGlzdC5tYXAoKGMpID0+IGMuSWQpKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkQ2hhbmdlZChhcnI6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlZEl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcclxuICAgICAgICBjb25zdCBhZGRlZEl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IFsuLi50aGlzLnZhbHVlXTtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE1vID0gYXJyLmZpbmQoKG1vSWQpID0+IG1vSWQgPT09IG1vLklkKTtcclxuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZE1vKSB7XHJcbiAgICAgICAgICAgICAgICBtby5EYXRhLiRJc0NoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZWRJdGVtcy5wdXNoKG1vLkRhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYXJyLmZvckVhY2goKG1vSWQpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNbyA9IHRoaXMub3JpZ2luYWxNb0xpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gbW9JZCk7XHJcbiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRNbykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbW8yID0gdGhpcy5kcm9wRG93blZhbHVlc1NvdXJjZS5nZXRWYWx1ZSgpLmZpbmQoKGMpID0+IGMuSWQgPT09IG1vSWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG1vMikge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vMi4kSXNDaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBhZGRlZEl0ZW1zLnB1c2gobW8yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChkZWxldGVkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ1JlcXVlc3RDb21tYW5kJywgdGhpcy5jb250ZXh0LCAnRGVsZXRlJywgZGVsZXRlZEl0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFkZGVkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ1JlcXVlc3RDb21tYW5kJywgdGhpcy5jb250ZXh0LCAnQWRkJywgYWRkZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX3VsdlVpLnZpZXdlckNvbnRyb2wuZmlyZUV2ZW50KCdyb3djbGljaycpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIFVpTGluZWFyTGlzdENvbnRhaW5lclNldHRpbmcgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIEV4ZWN1dGVBZGRvbkJ1dHRvbjogYm9vbGVhbjtcclxuICAgIEFkZG9uQnV0dG9uQ29tbWFuZDogTWV0YW9iamVjdERhdGFNb2RlbDtcclxufVxyXG4iLCI8ZmQtbXVsdGktaW5wdXRcclxuICAgIFtpbnB1dElkXT1cImlkXCJcclxuICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICBbaW50ZXJzZWN0aW9uVGhyZXNob2xkXT1cIjAuMVwiXHJcbiAgICAodmlzaWJpbGl0eUNoYW5nZSk9XCJvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbY2xhc3MuY29udHJvbC1yZWFkb25seV09XCIocmVhZG9ubHkkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFtkcm9wZG93blZhbHVlc109XCIoZHJvcERvd25WYWx1ZXMkIHwgYXN5bmMpISFcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cIlNldHRpbmcuQ29udHJvbEZpZWxkQ2FwdGlvblRyYW5zbGF0ZWQgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgW2Rpc3BsYXlGbl09XCJkaXNwbGF5RnVuY1wiXHJcbiAgICBbc2hvd0FsbEJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICBbZGlzcGxheUFkZG9uQnV0dG9uXT1cIihkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWVcIlxyXG4gICAgW2FsbG93TmV3VG9rZW5zXT1cImZhbHNlXCJcclxuICAgIFtpbmNsdWRlc109XCJ0cnVlXCJcclxuICAgIFsobmdNb2RlbCldPVwiaWRzT2ZNb1wiXHJcbiAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFt2YWx1ZUZuXT1cInZhbHVlRm5cIlxyXG4gICAgKHNlYXJjaFRlcm1DaGFuZ2UpPVwib25TZWFyY2hUZXJtQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0ZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoYWRkT25CdXR0b25DbGlja2VkKT1cIl9oYW5kbGVBZGRvbkJ1dHRvbkNsaWNrZWQoKVwiXHJcbj48L2ZkLW11bHRpLWlucHV0PlxyXG5cclxuPCEtLSA8YnV0dG9uXHJcbipuZ0lmPVwicmVwb3J0XCJcclxuZmQtYnV0dG9uXHJcblthdHRyLnJ0bF09XCJydGxcIlxyXG5bYXJpYS1sYWJlbF09XCInQWR2YW5jZWQnIHwgYmJiVHJhbnNsYXRlXCJcclxuZ2x5cGg9XCJ2YWx1ZS1oZWxwXCJcclxuW2Rpc2FibGVkXT1cIihkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykhIVwiXHJcbihjbGljayk9XCJvbk9wZW5SZXBvcnQoKVwiXHJcbj48L2J1dHRvbj4gLS0+XHJcblxyXG48bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2NvbnRhaW5lcj5cclxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiICNkaWFsb2dUcGw+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItM1wiIGZkLXRpdGxlPnt7IGRpYWxvZy5kYXRhLnRpdGxlIH19PC9oMT5cclxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGRpYWxvZ0NvbmZpZy5oZWlnaHQgIT09ICcxMDB2aCcpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW4gPyAnZXhpdGZ1bGxzY3JlZW4nIDogJ3Jlc2l6ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRGlhbG9nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmdWxsc2NyZWVuXT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbkNoYW5nZWQpPVwiZGlhbG9nLmRhdGEuZnVsbHNjcmVlbiA9ICRldmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2ddPVwiZGlhbG9nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RpYWxvZ0NvbXBvbmVudF09XCJkaWFsb2dUcGxcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGFyaWFMYWJlbD1cImNsb3NlXCIgZ2x5cGg9XCJkZWNsaW5lXCIgKGNsaWNrKT1cIm9uRGlzbWlzcygpXCI+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwhLS0gPGgzIGZkLXRpdGxlPnt7IGRpYWxvZy5kYXRhLnRpdGxlIH19PC9oMz5cclxuICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uPjwvYnV0dG9uPiAtLT5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxyXG4gICAgICAgICAgICBAaWYgKGRpYWxvZy5kYXRhLnVsdlVpOyBhcyB1bHZVaSkge1xyXG4gICAgICAgICAgICA8YnN1LXVpLXVsdi1tYWluLXVpIFtjb250ZXh0XT1cInVsdlVpXCIgY2xhc3M9XCJsaW5lYXItbGlzdC1zZWxlY3Rpb25cIj48L2JzdS11aS11bHYtbWFpbi11aT5cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxyXG5cclxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3RlciBjbGFzcz1cInVsdlNlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3JvdyB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19zZWxlY3Rpb24tcm93XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInU2VsZWN0ZWRJdGVtc0FuZENvbmRpdGlvbnMnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aDUgZmQtdGl0bGUgY2xhc3M9XCJzZWxlY3RlZC1hbmQtY29uZGl0aW9uLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPnt7ICdTZWxlY3RlZEl0ZW1zQW5kQ29uZGl0aW9ucycgfCBiYmJUcmFuc2xhdGUgfX0gPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe3sgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoIHx8IDAgfX0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX190b2tlbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXIgW3Nob3VsZE92ZXJmbG93XT1cInRydWVcIiBzdHlsZT1cIm92ZXJmbG93LXk6YXV0b1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2VsZWN0ZWQgaXRlbXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoIGl0ZW0gb2YgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtczsgdHJhY2sgX3RyYWNrQnlTZWxlY3RlZEZuKHNlbGVjdGVkSW5kZXgsIGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEluZGV4ID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRva2VuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJoaWdoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZHAtdmFsdWUtaGVscC1kaWFsb2dfX3NlbGVjdGlvbi10b2tlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwib25SZW1vdmVTZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBpdGVtLlRleHQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRva2VuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zLWNsZWFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidDbGVhcicgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cclxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtYmFyX19yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3VjY2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInT0snIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk9rKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWRpc21pc3MtZGlhbG9nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EaXNtaXNzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cclxuICAgIDwvZmQtZGlhbG9nPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -9331,7 +9331,7 @@ class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBaseCompon
|
|
|
9331
9331
|
m._subscriptions.add(sub);
|
|
9332
9332
|
if (isListItem) {
|
|
9333
9333
|
// m.openChangeHandle(false);
|
|
9334
|
-
m.searchInputElement?.nativeElement.focus();
|
|
9334
|
+
// m.searchInputElement?.nativeElement.focus();
|
|
9335
9335
|
}
|
|
9336
9336
|
else {
|
|
9337
9337
|
// stop propagation on the checkbox so event doesn't reach the list item
|
|
@@ -9776,7 +9776,7 @@ class CaptchaFieldComponent extends FieldBaseComponent {
|
|
|
9776
9776
|
constructor() {
|
|
9777
9777
|
super(...arguments);
|
|
9778
9778
|
this.now = new Date().toString();
|
|
9779
|
-
this.capId =
|
|
9779
|
+
this.capId = '-';
|
|
9780
9780
|
}
|
|
9781
9781
|
onValueChange(e) {
|
|
9782
9782
|
this.value = e.target.value;
|
|
@@ -11418,6 +11418,9 @@ class FormDialogComponent extends BaseComponent {
|
|
|
11418
11418
|
if (viewHieght) {
|
|
11419
11419
|
height = smallDevice ? '100%' : `${viewHieght + 100}px`;
|
|
11420
11420
|
}
|
|
11421
|
+
if (viewWidth) {
|
|
11422
|
+
width = smallDevice ? '100%' : `${viewWidth}px`;
|
|
11423
|
+
}
|
|
11421
11424
|
const modalSetting = BarsaApi.Common.Util.TryGetValue(this.formPanelCtrlr, 'Setting.View.CustomUi.Parameters.ModalSetting', null);
|
|
11422
11425
|
let setting = {
|
|
11423
11426
|
escKeyCloseable: false,
|