ngx-sp-infra 3.20.0 → 3.20.2
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.
|
@@ -148,6 +148,8 @@ export class LibComboboxComponent {
|
|
|
148
148
|
this.updateSelectedValue();
|
|
149
149
|
if (changes["libRequired"]?.currentValue != undefined)
|
|
150
150
|
this.setValidator();
|
|
151
|
+
if (changes["separator"].currentValue != undefined)
|
|
152
|
+
this.updateSelectedValue(this.control.value, false);
|
|
151
153
|
if (changes["control"]?.currentValue) {
|
|
152
154
|
this.setValidator();
|
|
153
155
|
this.updateSelectedValue(changes["control"].currentValue.value);
|
|
@@ -180,14 +182,14 @@ export class LibComboboxComponent {
|
|
|
180
182
|
this.setControlStatus(this.innerControl.status);
|
|
181
183
|
this.changeValue.emit(null);
|
|
182
184
|
}
|
|
183
|
-
updateSelectedValue(value) {
|
|
185
|
+
updateSelectedValue(value, noChange = true) {
|
|
184
186
|
this.innerControl.setValue(null); // Limpa o campo antes de qualquer coisa
|
|
185
187
|
const selectedValue = value ?? this._outerControl.value;
|
|
186
188
|
if (!this.list || (selectedValue === null && selectedValue === ''))
|
|
187
189
|
return;
|
|
188
190
|
const initializedValue = this.list.find(item => item.ID === selectedValue);
|
|
189
191
|
if (initializedValue)
|
|
190
|
-
this.innerControl.setValue(`${initializedValue.AdditionalStringProperty1 && initializedValue.AdditionalStringProperty1 != '' ? initializedValue.AdditionalStringProperty1 : ""}${this.separator === undefined ? "" : " " + this.separator + " "}${initializedValue.LABEL}
|
|
192
|
+
this.innerControl.setValue(`${initializedValue.AdditionalStringProperty1 && initializedValue.AdditionalStringProperty1 != '' ? initializedValue.AdditionalStringProperty1 : ""}${this.separator === undefined ? "" : " " + this.separator + " "}${initializedValue.LABEL}`, { emitEvent: noChange });
|
|
191
193
|
}
|
|
192
194
|
adjustDropdownWidth() {
|
|
193
195
|
if (this._mainInput && this._dropdownMenu) {
|
|
@@ -287,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
287
289
|
type: HostListener,
|
|
288
290
|
args: ['window:resize', ['$event']]
|
|
289
291
|
}] } });
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvbGliLWNvbWJvYm94L2xpYi1jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL2xpYi1jb21ib2JveC9saWItY29tYm9ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hLLE9BQU8sRUFBbUIsV0FBVyxFQUFxQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQUlwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQVdILE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsSUFBYyxZQUFZLEtBQWMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNwRSxJQUFjLFlBQVksQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTNCLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFvQkQscUJBQXFCO0lBRXJCLGlCQUFpQjtJQUVqQjs7eURBRXFEO0lBQ3JELElB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QU07WUFFUixLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsS0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQSxDQUFDLENBQUM7K0dBblJqRSxvQkFBb0I7bUdBQXBCLG9CQUFvQixxekJDOUNqQyx5OUdBNENpRDs7NEZERXBDLG9CQUFvQjtrQkFWaEMsU0FBUzsrQkFDRSxjQUFjO3dEQXFEYixPQUFPO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFnQlMsSUFBSTtzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSVQsU0FBUztzQkFBeEIsS0FBSztnQkFLVSxTQUFTO3NCQUF4QixLQUFLO2dCQUtDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0ssUUFBUTtzQkFEbEIsS0FBSztnQkFhVSxlQUFlO3NCQUE5QixLQUFLO2dCQU1VLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFPVSxLQUFLO3NCQUFwQixLQUFLO2dCQU1VLFlBQVk7c0JBQTNCLEtBQUs7Z0JBTVUsb0JBQW9CO3NCQUFuQyxLQUFLO2dCQU1XLGdCQUFnQjtzQkFBaEMsTUFBTTtnQkFPVSxXQUFXO3NCQUEzQixNQUFNO2dCQUd5QixVQUFVO3NCQUF6QyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ1ksWUFBWTtzQkFBN0MsU0FBUzt1QkFBQyxhQUFhO2dCQUNXLGFBQWE7c0JBQS9DLFNBQVM7dUJBQUMsY0FBYztnQkFzQ3pCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Db250cm9sU3RhdHVzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUmVjb3JkQ29tYm9ib3ggfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tYm9ib3gvcmVjb3JkLWNvbWJvYm94JztcblxuLyoqXG4gKiBAY29tcG9uZW50IExpYkNvbWJvYm94Q29tcG9uZW50XG4gKiBAc2VsZWN0b3IgbGliLWNvbWJvYm94XG4gKiBcbiAqIEBkZXNjcmlwdGlvblxuICogTyBjb21wb25lbnRlIExpYkNvbWJvYm94Q29tcG9uZW50IMOpIHByb2pldGFkbyBwYXJhIGZvcm5lY2VyIGFvcyB1c3XDoXJpb3MgdW1hIGludGVyZmFjZSBwYXJhIHBlc3F1aXNhciBlIHNlbGVjaW9uYXIgaXRlbnMgZGUgdW1hIGxpc3RhLlxuICogRWxlIHN1cG9ydGEgYSBmaWx0cmFnZW0gZGUgaXRlbnMgY29tIGJhc2UgbmEgZW50cmFkYSBkbyB1c3XDoXJpbywgcGVybWl0aW5kbyB1bWEgc2VsZcOnw6NvIG1haXMgZsOhY2lsIGVtIGxpc3RhcyBleHRlbnNhcy5cbiAqIFxuICogIyMgRnVuY2lvbmFsaWRhZGVzOlxuICogLSBQZXNxdWlzYSBlIGZpbHRyYWdlbSBkZSBpdGVucyBuYSBsaXN0YSBkbyBjb21ib2JveC5cbiAqIC0gU2VsZcOnw6NvIGRlIGl0ZW5zIGNvbSBmZWVkYmFjayB2aXN1YWwuXG4gKiAtIEVtaXNzw6NvIGRlIGV2ZW50b3MgcGVyc29uYWxpemFkb3MgcGFyYSBpbnRlcmHDp8O1ZXMgZG8gdXN1w6FyaW8sIGNvbW8gcmVjYXJyZWdhciBhIGxpc3RhIG91IHNlbGVjaW9uYXIgdW0gaXRlbS5cbiAqIC0gQWp1c3RlIGRpbsOibWljbyBkYSBsYXJndXJhIGRvIGRyb3Bkb3duIHBhcmEgY29ycmVzcG9uZGVyIGFvIGlucHV0IHByaW5jaXBhbC5cbiAqIC0gSW5pY2lhbGl6YcOnw6NvIGRlIHVtIHZhbG9yIHNlbGVjaW9uYWRvLCBzZSBmb3JuZWNpZG8uXG4gKiBcbiAqICMjIElucHV0czpcbiAqIC0gYGNvbnRyb2xgIChGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbCk6IENvbnRyb2wgcGFyYSBzZWxlw6fDo28gZG9zIHZhbG9yZXMsIGF0dWFsaXphcsOhIGF1dG9tYXRpY2FtZW50ZSBvIGNvbnRyb2wgZG8gY29tcG9uZW50ZSBwYWkgdGFtYsOpbVxuICogLSBgY29tYm9ib3hMaXN0YCAoUmVjb3JkQ29tYm9ib3hbXSk6IExpc3RhIGRlIHJlZ2lzdHJvcyBxdWUgc2Vyw6NvIGV4aWJpZG9zIG5vIGNvbWJvLCBlbnF1YW50byBlbGVzIGVzdGl2ZXJlbSBjYXJyZWdhbmRvIHNlcsOhIGV4aWJpZG8gdW0gc3Bpbm5lclxuICogLSBgbGFiZWxUZXh0YCAoc3RyaW5nKTogVGV4dG8gZG8gcsOzdHVsbyBxdWUgc2Vyw6EgZXhpYmlkbyBhY2ltYSBkbyBjb21iby4gQ2FzbyBuw6NvIGluZm9ybWFkbyBuYWRhIHNlcsOhIGV4aWJpZG9cbiAqIC0gYGRpc2FibGVkYCAoYm9vbGVhbik6IERlZmluZSBzZSBvIGNhbXBvIGVzdMOhIGRlc2FiaWxpdGFkby4gRGV2ZSBzZXIgdXNhZG8gcGFyYSB2YWxpZGHDp8O1ZXMgZGUgaGFiaWxpdGHDp8OjbyBkaW7Dom1pY2EgZG8gY2FtcG9cbiAqIC0gYGxpYlJlcXVpcmVkYCAoYm9vbGVhbik6IERlZmluZSBzZSBvIGNhbXBvIMOpIG9icmlnYXTDs3JpbywgdmFpIGV4aWJpciBvICcqJyB2ZXJtZWxobyBhbyBsYWRvIGRvIGxhYmVsIChzZSBlbGUgZXN0aXZlciBwcmVzZW50ZSlcbiAqIC0gYG1haW5JbnB1dFBsYWNlaG9sZGVyYCAoc3RyaW5nKTogUGxhY2Vob2xkZXIgZG8gY2FtcG8gcHJpbmNpcGFsIGRvIGNvbWJvXG4gKiAtIGBzZWFyY2hJbnB1dFBsYWNlaG9sZGVyYCAoc3RyaW5nKTogUGxhY2Vob2xkZXIgZG8gY2FtcG8gZGUgcGVzcXVpc2EgZGVudHJvIGRvIGNvbWJvXG4gKiAtIGBjb2xvclRoZW1lYCAoXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiIHwgXCJzdWNjZXNzXCIgfCBcImRhbmdlclwiIHwgXCJ3YXJuaW5nXCIgfCBcImluZm9cIiB8IFwibGlnaHRcIiB8IFwiZGFya1wiKTogRGVmaW5lIG8gdGVtYSBkZSBjb3IgZG8gY29tcG9uZW50ZSwgY29tbyBcInByaW1hcnlcIiwgXCJzdWNjZXNzXCIsIG91IFwiZGFuZ2VyXCJcbiAqIC0gYHJldHVyblJlY29yZGAgKGJvb2xlYW4pOiBEZWZpbmUgc2UgbyB0aXBvIGRlIHJldG9ybm8gYW8gc2VsZWNpb25hciB1bWEgb3DDp8OjbyBzZXLDoSBvIFJlY29yZCBpbnRlaXJvIG91IGFwZW5hcyBvIElEXG4gKiBcbiAqICMjIE91dHB1dHM6XG4gKiAtIGBvblJlbG9hZExpc3RgIChFdmVudEVtaXR0ZXI8c3RyaW5nPik6IEV2ZW50byBlbWl0aWRvIHF1YW5kbyBhIGxpc3RhIHByZWNpc2Egc2VyIHJlY2FycmVnYWRhLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY29tYm9ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGliLWNvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBgXG4gICAgLmdsYi1tYXgtaGVpZ2h0LTM1MHB4IHsgbWF4LWhlaWdodDogMzUwcHggIWltcG9ydGFudDsgfVxuICAgIC5mb3JtLWxhYmVsIHsgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7IH1cbiAgICAuei1pbmRleC0xMDIwIHsgei1pbmRleDogMTAyMCAhaW1wb3J0YW50OyB9XG4gICAgLmN1cnNvci1wb2ludGVyIHsgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7IH1cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBMaWJDb21ib2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxuXG4gIC8vICNyZWdpb24gUFJPVEVDVEVEXG4gIHByb3RlY3RlZCB0ZXh0b1Blc3F1aXNhOiBzdHJpbmcgPSBcIlwiO1xuXG4gIHByb3RlY3RlZCBnZXQgYXJpYUV4cGFuZGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fYXJpYUV4cGFuZGVkOyB9XG4gIHByb3RlY3RlZCBzZXQgYXJpYUV4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYXJpYUV4cGFuZGVkID0gdmFsdWU7XG4gICAgdGhpcy5hZGp1c3REcm9wZG93bldpZHRoKCk7XG4gICAgXG4gICAgaWYgKHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgdGhpcy50ZXh0b1Blc3F1aXNhID0gXCJcIjtcbiAgICAgIHRoaXMuX3NlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbm5lckNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgaW52YWxpZENvbnRyb2w6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHRvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgY29tYm9ib3hJRCE6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhYmVsSUQhOiBzdHJpbmc7XG4gIC8vICNlbmRyZWdpb24gUFJPVEVDVEVEXG5cbiAgLy8gI3JlZ2lvbiBQUklWQVRFXG4gIHByaXZhdGUgX2Rpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9hcmlhRXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHJpdmF0ZSBfb3V0ZXJDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPihudWxsKTtcbiAgLy8gI2VuZHJlZ2lvbiBQUklWQVRFXG5cbiAgLy8gI3JlZ2lvbiBQVUJMSUNcblxuICAvKiogKG9icmlnYXTDs3JpbykgQ29udHJvbCBwYXJhIHNlbGXDp8OjbyBkb3MgdmFsb3JlcywgYXR1YWxpemFyw6EgYXV0b21hdGljYW1lbnRlIG8gY29udHJvbCBkbyBjb21wb25lbnRlIHBhaSB0YW1iw6ltXG4gICAqIEBhbGlhcyAnY29udHJvbCdcbiAgICogQHR5cGUge0Zvcm1Db250cm9sPGFueT4gfCBBYnN0cmFjdENvbnRyb2w8YW55Pn0gKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sPHVua25vd24+IHsgcmV0dXJuIHRoaXMuX291dGVyQ29udHJvbCB9XG4gIHB1YmxpYyBzZXQgY29udHJvbCh2YWx1ZTogRm9ybUNvbnRyb2w8dW5rbm93bj4gfCBBYnN0cmFjdENvbnRyb2w8dW5rbm93bj4pIHtcbiAgICB0aGlzLl9vdXRlckNvbnRyb2wgPSB2YWx1ZSBhcyBGb3JtQ29udHJvbDtcblxuICAgIC8vIENhbmNlbGEgYSBzdWJzY3Jpw6fDo28gYW50ZXJpb3IgKHNlIGhvdXZlcikgcGFyYSBldml0YXIgbcO6bHRpcGxhcyBzdWJzY3Jpw6fDtWVzXG4gICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAvLyBTdWJzY3Jpw6fDo28gYW8gb2JzZXJ2w6F2ZWwgdmFsdWVDaGFuZ2VzIHBhcmEgcmVhZ2lyIGEgbXVkYW7Dp2FzIG5vIHZhbG9yXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fb3V0ZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4geyB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWUodmFsdWUpIH0pO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX291dGVyQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShzdGF0dXMgPT4geyB0aGlzLnNldENvbnRyb2xTdGF0dXMoc3RhdHVzKSB9KTtcbiAgfVxuXG4gIC8qKiAob2JyaWdhdMOzcmlvKSBMaXN0YSBkZSByZWdpc3Ryb3MgcXVlIHNlcsOjbyBleGliaWRvcyBubyBjb21ibywgZW5xdWFudG8gZWxlcyBlc3RpdmVyZW0gY2FycmVnYW5kbyBzZXLDoSBleGliaWRvIHVtIHNwaW5uZXJcbiAgICogQGFsaWFzICdsaXN0J1xuICAgKiBAdHlwZSB7UmVjb3JkQ29tYm9ib3hbXX0gKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGxpc3Q/OiBSZWNvcmRDb21ib2JveFtdO1xuXG4gIC8qKiAob3BjaW9uYWwpIFRleHRvIGRvIHLDs3R1bG8gcXVlIHNlcsOhIGV4aWJpZG8gYWNpbWEgZG8gY29tYm8uIENhc28gbsOjbyBpbmZvcm1hZG8gbmFkYSBzZXLDoSBleGliaWRvXG4gICAqIEB0eXBlIHtzdHJpbmd9ICovXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqIChvcGNpb25hbCkgVGV4dG8gb3UgY2FyYWN0ZXJlIHNlcGFyYWRvciBlbnRyZSBhIGluZm9ybWHDp8OjbyBkZSBJRCBlIExBQkVMXG4gICAqIEBleGFtcGxlIFwiIC0gXCJcbiAgICogQHR5cGUge3N0cmluZ30gKi9cbiAgQElucHV0KCkgcHVibGljIHNlcGFyYXRvcj86IHN0cmluZyA9IFwiIFwiO1xuXG4gIC8qKiAob3BjaW9uYWwpIERlZmluZSBzZSBvIGNhbXBvIMOpIG9icmlnYXTDs3JpbywgdmFpIGV4aWJpciBvICcqJyB2ZXJtZWxobyBhbyBsYWRvIGRvIGxhYmVsIChzZSBlbGUgZXN0aXZlciBwcmVzZW50ZSlcbiAgICogQHR5cGUge2Jvb2xlYW59ICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsaWJSZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqIChvcGNpb25hbCkgRGVmaW5lIHNlIG8gY2FtcG8gZXN0w6EgZGVzYWJpbGl0YWRvLiBEZXZlIHNlciB1c2FkbyBwYXJhIHZhbGlkYcOnw7VlcyBkZSBoYWJpbGl0YcOnw6NvIGRpbsOibWljYSBkbyBjYW1wb1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2UgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkID8/IGZhbHNlOyB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUgPT09IHRydWUpIHRoaXMuaW5uZXJDb250cm9sLmRpc2FibGUoKTtcbiAgICBlbHNlIHRoaXMuaW5uZXJDb250cm9sLmVuYWJsZSgpO1xuXG4gICAgLy90aGlzLnNldENvbnRyb2xTdGF0dXMoKTtcbiAgfVxuXG4gIC8qKiAob3BjaW9uYWwpIFBsYWNlaG9sZGVyIGRvIGNhbXBvIHByaW5jaXBhbCBkbyBjb21ib1xuICAgKiBAYWxpYXMgJ21haW5QbGFjZWhvbGRlcidcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgXCJTZWxlY2lvbmUgdW1hIG9ww6fDo28uLi5cIiAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWFpblBsYWNlaG9sZGVyPzogc3RyaW5nID0gXCJTZWxlY2lvbmUgdW1hIG9ww6fDo28uLi5cIjtcblxuICAvKiogKG9wY2lvbmFsKSBQbGFjZWhvbGRlciBkbyBjYW1wbyBkZSBwZXNxdWlzYSBkZW50cm8gZG8gY29tYm9cbiAgICogQGFsaWFzICdzZWFyY2hQbGFjZWhvbGRlcidcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgXCJQZXNxdWlzYS4uLlwiICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hQbGFjZWhvbGRlcj86IHN0cmluZyA9IFwiUGVzcXVpc2EuLi5cIjtcblxuICAvKiogKG9wY2lvbmFsKSBEZWZpbmUgbyB0ZW1hIGRlIGNvciBkbyBjb21wb25lbnRlLCBjb21vIFwicHJpbWFyeVwiLCBcInN1Y2Nlc3NcIiwgb3UgXCJkYW5nZXJcIlxuICAgKiBAYWxpYXMgJ3RoZW1lJ1xuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCBcInByaW1hcnlcIlxuICAqL1xuICBASW5wdXQoKSBwdWJsaWMgdGhlbWU/OiBzdHJpbmcgPSBcInByaW1hcnlcIjtcblxuICAvKiogKG9wY2lvbmFsKSBEZWZpbmUgc2UgbyB0aXBvIGRlIHJldG9ybm8gYW8gc2VsZWNpb25hciB1bWEgb3DDp8OjbyBzZXLDoSBvIFJlY29yZCBpbnRlaXJvIG91IGFwZW5hcyBvIElELlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgKi9cbiAgQElucHV0KCkgcHVibGljIHJldHVyblJlY29yZD86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogKG9wY2lvbmFsKSBEZWZpbmUgc2UgbyBjw7NkaWdvIGV4dHJhIGNoYW1hZG8gJ0FkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEnIHNlcsOhIGV4aWJpZG8gZW0gbmVncml0byBvdSBuw6NvLlxuICAgKiBAdHlwZSB7IGJvb2xlYW4gfVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICovXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRpdGlvbmFsU3RyaW5nQm9sZD86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBhbyByZWNhcnJlZ2FyIGEgbGlzdGEgZGUgcmVnaXN0cm9zXG4gICAqIEBleGFtcGxlIEFvIHNlciBlbWl0aWRvLCBvIGNvbXBvbmVudGUgcGFpIHBvZGUgcmVmYXplciBvIEdFVCBkYSBsaXN0YSwgcG9yIGV4ZW1wbG8uXG4gICAqIEBlbWl0cyBFdmVudEVtaXR0ZXI8c3RyaW5nPiBxdWUgbGV2YSBvIHZhbG9yIHN0cmluZyBkYSBwZXNxdWlzYSBmZWl0YSBwYXJhIHNlciBlbnZpYWRhIHBhcmEgbyBHRVRcbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxzdHJpbmc+fSAqL1xuICBAT3V0cHV0KCkgcHVibGljIHJlbG9hZExpc3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cblxuICAvKiogRXZlbnRvIGVtaXRpZG8gYW8gc2VsZWNpb25hciB1bSByZWdpc3RybyBkYSBsaXN0YSBkbyBjb21ib2JveFxuICAgKiBAZXhhbXBsZSBBbyBzZXIgZW1pdGlkbywgbyBjb21wb25lbnRlIHBhaSBwb2RlIHJlYWxpemFyIHVtYSB2YWxpZGHDp8OjbyBjb20gbyB2YWxvciBzZWxlY2lvbmFkby5cbiAgICogQGVtaXRzIEV2ZW50RW1pdHRlcjxzdHJpbmd8bnVtYmVyfG51bGw+IHF1ZSBsZXZhIG8gdmFsb3Igc3RyaW5nIGRhIHBlc3F1aXNhIGZlaXRhIHBhcmEgc2VyIGVudmlhZGEgcGFyYSBvIEdFVFxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bWJlciB8IG51bGw+fSAqL1xuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZVZhbHVlOiBFdmVudEVtaXR0ZXI8UmVjb3JkQ29tYm9ib3ggfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkQ29tYm9ib3ggfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsPigpO1xuICBcblxuICBAVmlld0NoaWxkKCdtYWluSW5wdXQnKSBwcml2YXRlIF9tYWluSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcpIHByaXZhdGUgX3NlYXJjaElucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25NZW51JykgcHJpdmF0ZSBfZHJvcGRvd25NZW51ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIC8vICNlbmRyZWdpb24gUFVCTElDXG5cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XG5cblxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IElOSVRJQUxJWkFUSU9OIDw9PT09PT09PT09XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb21ib2JveElEID0gYGxpYi1jb21ib2JveC0ke01hdGgucmFuZG9tKCkgKiAxMDB9YDtcbiAgICB0aGlzLmxhYmVsSUQgPSBgJHtNYXRoLnJhbmRvbSgpICogMTAwfWA7XG5cbiAgICB0aGlzLmFkanVzdERyb3Bkb3duV2lkdGgoKTtcblxuICAgIHRoaXMuc2V0VmFsaWRhdG9yKCk7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGp1c3REcm9wZG93bldpZHRoKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJsaXN0XCJdPy5jdXJyZW50VmFsdWUpIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZSgpO1xuICAgIGlmIChjaGFuZ2VzW1wibGliUmVxdWlyZWRcIl0/LmN1cnJlbnRWYWx1ZSAhPSB1bmRlZmluZWQpIHRoaXMuc2V0VmFsaWRhdG9yKCk7XG4gICAgaWYgKGNoYW5nZXNbXCJjb250cm9sXCJdPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRhdG9yKCk7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWUoKGNoYW5nZXNbXCJjb250cm9sXCJdLmN1cnJlbnRWYWx1ZSBhcyBGb3JtQ29udHJvbCkudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLy8gTyBxdWUgZmF6ZXIgcXVhbmRvIG8gZXZlbnRvIGRlIHJlZGltZW5zaW9uYW1lbnRvIG9jb3JyZXJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uUmVzaXplKCk6IHZvaWQgeyB0aGlzLmFkanVzdERyb3Bkb3duV2lkdGgoKSB9XG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gSU5JVElBTElaQVRJT04gPD09PT09PT09PT1cblxuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTFMgPD09PT09PT09PT1cbiAgcHVibGljIHNldFZhbHVlKGl0ZW06IFJlY29yZENvbWJvYm94KTogdm9pZCB7XG4gICAgdGhpcy50ZXh0b1Blc3F1aXNhID0gXCJcIjtcbiAgICB0aGlzLmlubmVyQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMuX291dGVyQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIFxuICAgIHRoaXMuX291dGVyQ29udHJvbC5zZXRWYWx1ZShpdGVtLklEKTtcbiAgICB0aGlzLmlubmVyQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgIGAke2l0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSAmJiBpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgIT0gJycgPyBpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgOiBcIlwifSR7dGhpcy5zZXBhcmF0b3IgPT09IHVuZGVmaW5lZCA/IFwiIFwiIDogXCIgXCIrdGhpcy5zZXBhcmF0b3IrXCIgXCJ9JHtpdGVtLkxBQkVMfWBcbiAgICApO1xuXG4gICAgdGhpcy5hcmlhRXhwYW5kZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNldENvbnRyb2xTdGF0dXModGhpcy5pbm5lckNvbnRyb2wuc3RhdHVzKTtcbiAgICBcbiAgICB0aGlzLmNoYW5nZVZhbHVlLmVtaXQodGhpcy5yZXR1cm5SZWNvcmQgPyBpdGVtIGFzIFJlY29yZENvbWJvYm94IDogaXRlbS5JRCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRvUGVzcXVpc2EgPSBcIlwiO1xuICAgIHRoaXMuaW5uZXJDb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5fb3V0ZXJDb250cm9sLm1hcmtBc0RpcnR5KCk7XG5cbiAgICB0aGlzLl9vdXRlckNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5pbm5lckNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG5cbiAgICB0aGlzLmFyaWFFeHBhbmRlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2V0Q29udHJvbFN0YXR1cyh0aGlzLmlubmVyQ29udHJvbC5zdGF0dXMpO1xuXG4gICAgdGhpcy5jaGFuZ2VWYWx1ZS5lbWl0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFZhbHVlKHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKG51bGwpOyAvLyBMaW1wYSBvIGNhbXBvIGFudGVzIGRlIHF1YWxxdWVyIGNvaXNhXG4gICAgXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCA9IHZhbHVlID8/IHRoaXMuX291dGVyQ29udHJvbC52YWx1ZTtcbiAgICBpZiAoIXRoaXMubGlzdCB8fCAoc2VsZWN0ZWRWYWx1ZSA9PT0gbnVsbCAmJiBzZWxlY3RlZFZhbHVlID09PSAnJykpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBpbml0aWFsaXplZFZhbHVlID0gdGhpcy5saXN0LmZpbmQoaXRlbSA9PiBpdGVtLklEID09PSBzZWxlY3RlZFZhbHVlKVxuICAgIGlmIChpbml0aWFsaXplZFZhbHVlKSB0aGlzLmlubmVyQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgIGAke2luaXRpYWxpemVkVmFsdWUuQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSAmJiBpbml0aWFsaXplZFZhbHVlLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgIT0gJycgPyBpbml0aWFsaXplZFZhbHVlLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgOiBcIlwifSR7dGhpcy5zZXBhcmF0b3IgPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBcIiBcIit0aGlzLnNlcGFyYXRvcitcIiBcIn0ke2luaXRpYWxpemVkVmFsdWUuTEFCRUx9YFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkanVzdERyb3Bkb3duV2lkdGgoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX21haW5JbnB1dCAmJiB0aGlzLl9kcm9wZG93bk1lbnUpIHtcbiAgICAgIGNvbnN0IGlucHV0V2lkdGggPSB0aGlzLl9tYWluSW5wdXQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIHRoaXMuX2Ryb3Bkb3duTWVudS5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7aW5wdXRXaWR0aH1weGA7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNlcnZlIHBhcmEgYXBsaWNhciBvdSByZW1vdmVyIG8gVmFsaWRhdG9yLnJlcXVpcmVkIGRvIGNvbnRyb2xlLlxuICAgKiBQb3IgcGFkcsOjbyBlbGUgcHJpb3JpemFyw6EgYSBwcm9wcmllZGFkZSBsaWJSZXF1aXJlZCBwYXJhIGVzdGEgdmFsaWRhw6fDo28uICovXG4gIHByaXZhdGUgc2V0VmFsaWRhdG9yKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpYlJlcXVpcmVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLmxpYlJlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5pbm5lckNvbnRyb2wucmVtb3ZlVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgdGhpcy5pc1JlcXVpcmVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX291dGVyQ29udHJvbC5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkpIHtcbiAgICAgICAgdGhpcy5pbm5lckNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgdGhpcy5pc1JlcXVpcmVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmlubmVyQ29udHJvbC5yZW1vdmVWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLmlzUmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldENvbnRyb2xTdGF0dXMoZm9ybVN0YXR1czogRm9ybUNvbnRyb2xTdGF0dXMpOiB2b2lkIHtcbiAgICBzd2l0Y2goZm9ybVN0YXR1cykge1xuICAgICAgY2FzZSAnVkFMSUQnOlxuICAgICAgICB0aGlzLmludmFsaWRDb250cm9sID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLmVuYWJsZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnSU5WQUxJRCc6XG4gICAgICAgIHRoaXMuaW52YWxpZENvbnRyb2wgPSB0cnVlO1xuICAgICAgICB0aGlzLmlubmVyQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ1BFTkRJTkcnOlxuICAgICAgICB0aGlzLmludmFsaWRDb250cm9sID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLmVuYWJsZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnRElTQUJMRUQnOlxuICAgICAgICB0aGlzLmludmFsaWRDb250cm9sID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbG9hZExpc3QoKTogdm9pZCB7IHRoaXMucmVsb2FkTGlzdENoYW5nZS5lbWl0KHRoaXMudGV4dG9QZXNxdWlzYSkgfVxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFVUSUxTIDw9PT09PT09PT09XG5cbn0iLCI8IS0tIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC90ZW1wbGF0ZS9pbnRlcmFjdGl2ZS1zdXBwb3J0cy1mb2N1cyAtLT5cbjwhLS0gZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgLS0+XG5cbjxsYWJlbCAqbmdJZj1cImxhYmVsVGV4dCAmJiBsYWJlbFRleHQgIT09ICcnXCIgY2xhc3M9XCJmb3JtLWxhYmVsIGZ3LWJvbGRcIiBbaWRdPVwibGFiZWxJRFwiIFtmb3JdPVwiY29tYm9ib3hJRFwiIFtsaWJSZXF1aXJlZF09XCJpc1JlcXVpcmVkXCI+e3sgbGFiZWxUZXh0IH19PC9sYWJlbD5cblxuPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGRyb3Bkb3duIGZsZXgtZmlsbCBnbGItbWF4LWhlaWdodC0zNTBweFwiPlxuXG4gICA8IS0tIEVzdGUgZWxlbWVudG8gbmctY29udGVudCBjb20gbyBhdHJpYnV0byBbYnRuTGVmdF0gcGVybWl0ZSBxdWUgbyB1c3XDoXJpbyBmaW5hbCBmb3JuZcOnYSBjb250ZcO6ZG8gcGVyc29uYWxpemFkbyBwYXJhIHNlciBleGliaWRvIG5vIGxhZG8gZXNxdWVyZG8gZG8gY29tYm9ib3ggZGUgcGVzcXVpc2EuXG4gICBBbyB1c2FyIG8gYXRyaWJ1dG8gW2J0bkxlZnRdLCBvIHVzdcOhcmlvIHBvZGUgZmFjaWxtZW50ZSBhZGljaW9uYXIgYm90w7VlcyBvdSBvdXRyb3MgZWxlbWVudG9zIHBhcmEgbWVsaG9yYXIgYSBmdW5jaW9uYWxpZGFkZSBvdSBhcGFyw6puY2lhIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLiAtLT5cbiAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltidG5MZWZ0XVwiPjwvbmctY29udGVudD5cblxuICAgPGlucHV0ICAjbWFpbklucHV0IGNsYXNzPVwiZm9ybS1zZWxlY3QgdGV4dC1zdGFydCByb3VuZGVkLWVuZCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIiBkYXRhLWJzLWF1dG8tY2xvc2U9XCJvdXRzaWRlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgcmVhZG9ubHlcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJtYWluUGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiaW5uZXJDb250cm9sXCIgW2NsYXNzLmlzLWludmFsaWRdPVwiaW52YWxpZENvbnRyb2xcIiBbaWRdPVwiY29tYm9ib3hJRFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYXJpYUV4cGFuZGVkID0gIWFyaWFFeHBhbmRlZDsgc2VhcmNoSW5wdXQuZm9jdXMoKVwiIChmb2N1cyk9XCJzZWFyY2hJbnB1dC5mb2N1cygpXCI+XG5cbiAgIDx1bCAgI2Ryb3Bkb3duTWVudSAgY2xhc3M9XCJkcm9wZG93bi1tZW51IHAtMiBnbGItbWF4LWhlaWdodC0zNTBweCBvdmVyZmxvdy15LXNjcm9sbCB6LWluZGV4LTEwMjBcIiBbY2xhc3Muc2hvd109XCJhcmlhRXhwYW5kZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBtYi0yXCI+XG4gICAgICAgICA8aW5wdXQgI3NlYXJjaElucHV0IChpbnB1dCk9XCJ0ZXh0b1Blc3F1aXNhID0gc2VhcmNoSW5wdXQudmFsdWVcIiB0eXBlPVwidGV4dFwiIGlkPVwic2VhcmNoSW5wdXQte3tjb21ib2JveElEfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbCBnbGItaW5wdXQtbm8tZ2xvd1wiIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiIChrZXl1cC5lbnRlcik9XCJyZWxvYWRMaXN0KClcIj5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXt7dGhlbWV9fVwiIChjbGljayk9XCJyZWxvYWRMaXN0KClcIj4gPGxpYi1pY29uIGljb25OYW1lPVwibHVwYVwiIGljb25TaXplPVwibWVkaXVtLXNtYWxsXCIgLz4gPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChsaXN0KSB7XG4gICAgICAgICA8bGkgKm5nSWY9XCJpbm5lckNvbnRyb2wudmFsdWUgIT09ICcnICYmIGlubmVyQ29udHJvbC52YWx1ZSAhPT0gbnVsbFwiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJjbGVhclZhbHVlKClcIj4gPHNwYW4gY2xhc3M9XCJmdy1ib2xkXCI+TGltcGFyIG9ww6fDo28gc2VsZWNpb25hZGE8L3NwYW4+IDwvbGk+XG4gICAgICAgICBAZm9yIChpdGVtIG9mIGxpc3QgfCB0ZXh0RmlsdGVyOnRleHRvUGVzcXVpc2E7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJzZXRWYWx1ZShpdGVtKVwiPlxuICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgJiYgaXRlbS5BZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxICE9PSAnJ1wiIGNsYXNzPVwiZ2xiLWZzLTEyIGQtaW5saW5lLWJsb2NrIHctMTI1XCIgW2NsYXNzLmZ3LWJvbGRdPVwiYWRkaXRpb25hbFN0cmluZ0JvbGRcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSArIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBcIiBcIitzZXBhcmF0b3IpIH19XG4gICAgICAgICAgICAgICA8L3NwYW4+IHt7IGl0ZW0uTEFCRUwgfX1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICB9XG4gICAgICAgICBAZW1wdHkgeyA8bGkgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGZzdC1pdGFsaWNcIj5OZW5odW0gcmVnaXN0cm8gZW5jb250cmFkbyBjb20gZXN0YSBwZXNxdWlzYS4uLjwvbGk+IH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHsgPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbSB0ZXh0LWNlbnRlclwiPiA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXJcIiByb2xlPVwic3RhdHVzXCI+PHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5DYXJyZWdhbmRvIGRhZG9zLi4uPC9zcGFuPjwvZGl2PiA8L2xpPiB9XG4gICA8L3VsPlxuXG4gICA8IS0tIEVzdGUgZWxlbWVudG8gbmctY29udGVudCBjb20gbyBhdHJpYnV0byBbYnRuUmlnaHRdIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gZmluYWwgZm9ybmXDp2EgY29udGXDumRvIHBlcnNvbmFsaXphZG8gcGFyYSBzZXIgZXhpYmlkbyBubyBsYWRvIGRpcmVpdG8gZG8gY29tYm9ib3ggZGUgcGVzcXVpc2EuXG4gICBBbyB1c2FyIG8gYXRyaWJ1dG8gW2J0blJpZ2h0XSwgbyB1c3XDoXJpbyBwb2RlIGZhY2lsbWVudGUgYWRpY2lvbmFyIGJvdMO1ZXMgb3Ugb3V0cm9zIGVsZW1lbnRvcyBwYXJhIG1lbGhvcmFyIGEgZnVuY2lvbmFsaWRhZGUgb3UgYXBhcsOqbmNpYSBkbyBjb21ib2JveCBkZSBwZXNxdWlzYS4gLS0+XG4gICA8bmctY29udGVudCBzZWxlY3Q9XCJbYnRuUmlnaHRdXCI+PC9uZy1jb250ZW50PlxuXG48L2Rpdj5cblxuPCEtLSAjcmVnaW9uIE1FTlNBR0VNIERFIEVSUk8gREUgVkFMSURBw4fDg08gLS0+XG48bGliLWVycm9yLW1lc3NhZ2UgKm5nSWY9XCJpbnZhbGlkQ29udHJvbFwiIGN1c3RvbU1lc3NhZ2U9XCJFc3RlIGNhbXBvIMOpIG9icmlnYXTDs3Jpby5cIiAvPlxuPCEtLSAjZW5kcmVnaW9uIE1FTlNBR0VNIERFIEVSUk8gREUgVkFMSURBw4fDg08gLS0+Il19
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvbGliLWNvbWJvYm94L2xpYi1jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL2xpYi1jb21ib2JveC9saWItY29tYm9ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hLLE9BQU8sRUFBbUIsV0FBVyxFQUFxQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQUlwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQVdILE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsSUFBYyxZQUFZLEtBQWMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNwRSxJQUFjLFlBQVksQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTNCLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFvQkQscUJBQXFCO0lBRXJCLGlCQUFpQjtJQUVqQjs7eURBRXFEO0lBQ3JELElB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QUFhO2dCQUNXLGFBQWE7c0JBQS9DLFNBQVM7dUJBQUMsY0FBYztnQkF5Q3pCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Db250cm9sU3RhdHVzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUmVjb3JkQ29tYm9ib3ggfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tYm9ib3gvcmVjb3JkLWNvbWJvYm94JztcblxuLyoqXG4gKiBAY29tcG9uZW50IExpYkNvbWJvYm94Q29tcG9uZW50XG4gKiBAc2VsZWN0b3IgbGliLWNvbWJvYm94XG4gKiBcbiAqIEBkZXNjcmlwdGlvblxuICogTyBjb21wb25lbnRlIExpYkNvbWJvYm94Q29tcG9uZW50IMOpIHByb2pldGFkbyBwYXJhIGZvcm5lY2VyIGFvcyB1c3XDoXJpb3MgdW1hIGludGVyZmFjZSBwYXJhIHBlc3F1aXNhciBlIHNlbGVjaW9uYXIgaXRlbnMgZGUgdW1hIGxpc3RhLlxuICogRWxlIHN1cG9ydGEgYSBmaWx0cmFnZW0gZGUgaXRlbnMgY29tIGJhc2UgbmEgZW50cmFkYSBkbyB1c3XDoXJpbywgcGVybWl0aW5kbyB1bWEgc2VsZcOnw6NvIG1haXMgZsOhY2lsIGVtIGxpc3RhcyBleHRlbnNhcy5cbiAqIFxuICogIyMgRnVuY2lvbmFsaWRhZGVzOlxuICogLSBQZXNxdWlzYSBlIGZpbHRyYWdlbSBkZSBpdGVucyBuYSBsaXN0YSBkbyBjb21ib2JveC5cbiAqIC0gU2VsZcOnw6NvIGRlIGl0ZW5zIGNvbSBmZWVkYmFjayB2aXN1YWwuXG4gKiAtIEVtaXNzw6NvIGRlIGV2ZW50b3MgcGVyc29uYWxpemFkb3MgcGFyYSBpbnRlcmHDp8O1ZXMgZG8gdXN1w6FyaW8sIGNvbW8gcmVjYXJyZWdhciBhIGxpc3RhIG91IHNlbGVjaW9uYXIgdW0gaXRlbS5cbiAqIC0gQWp1c3RlIGRpbsOibWljbyBkYSBsYXJndXJhIGRvIGRyb3Bkb3duIHBhcmEgY29ycmVzcG9uZGVyIGFvIGlucHV0IHByaW5jaXBhbC5cbiAqIC0gSW5pY2lhbGl6YcOnw6NvIGRlIHVtIHZhbG9yIHNlbGVjaW9uYWRvLCBzZSBmb3JuZWNpZG8uXG4gKiBcbiAqICMjIElucHV0czpcbiAqIC0gYGNvbnRyb2xgIChGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbCk6IENvbnRyb2wgcGFyYSBzZWxlw6fDo28gZG9zIHZhbG9yZXMsIGF0dWFsaXphcsOhIGF1dG9tYXRpY2FtZW50ZSBvIGNvbnRyb2wgZG8gY29tcG9uZW50ZSBwYWkgdGFtYsOpbVxuICogLSBgY29tYm9ib3hMaXN0YCAoUmVjb3JkQ29tYm9ib3hbXSk6IExpc3RhIGRlIHJlZ2lzdHJvcyBxdWUgc2Vyw6NvIGV4aWJpZG9zIG5vIGNvbWJvLCBlbnF1YW50byBlbGVzIGVzdGl2ZXJlbSBjYXJyZWdhbmRvIHNlcsOhIGV4aWJpZG8gdW0gc3Bpbm5lclxuICogLSBgbGFiZWxUZXh0YCAoc3RyaW5nKTogVGV4dG8gZG8gcsOzdHVsbyBxdWUgc2Vyw6EgZXhpYmlkbyBhY2ltYSBkbyBjb21iby4gQ2FzbyBuw6NvIGluZm9ybWFkbyBuYWRhIHNlcsOhIGV4aWJpZG9cbiAqIC0gYGRpc2FibGVkYCAoYm9vbGVhbik6IERlZmluZSBzZSBvIGNhbXBvIGVzdMOhIGRlc2FiaWxpdGFkby4gRGV2ZSBzZXIgdXNhZG8gcGFyYSB2YWxpZGHDp8O1ZXMgZGUgaGFiaWxpdGHDp8OjbyBkaW7Dom1pY2EgZG8gY2FtcG9cbiAqIC0gYGxpYlJlcXVpcmVkYCAoYm9vbGVhbik6IERlZmluZSBzZSBvIGNhbXBvIMOpIG9icmlnYXTDs3JpbywgdmFpIGV4aWJpciBvICcqJyB2ZXJtZWxobyBhbyBsYWRvIGRvIGxhYmVsIChzZSBlbGUgZXN0aXZlciBwcmVzZW50ZSlcbiAqIC0gYG1haW5JbnB1dFBsYWNlaG9sZGVyYCAoc3RyaW5nKTogUGxhY2Vob2xkZXIgZG8gY2FtcG8gcHJpbmNpcGFsIGRvIGNvbWJvXG4gKiAtIGBzZWFyY2hJbnB1dFBsYWNlaG9sZGVyYCAoc3RyaW5nKTogUGxhY2Vob2xkZXIgZG8gY2FtcG8gZGUgcGVzcXVpc2EgZGVudHJvIGRvIGNvbWJvXG4gKiAtIGBjb2xvclRoZW1lYCAoXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiIHwgXCJzdWNjZXNzXCIgfCBcImRhbmdlclwiIHwgXCJ3YXJuaW5nXCIgfCBcImluZm9cIiB8IFwibGlnaHRcIiB8IFwiZGFya1wiKTogRGVmaW5lIG8gdGVtYSBkZSBjb3IgZG8gY29tcG9uZW50ZSwgY29tbyBcInByaW1hcnlcIiwgXCJzdWNjZXNzXCIsIG91IFwiZGFuZ2VyXCJcbiAqIC0gYHJldHVyblJlY29yZGAgKGJvb2xlYW4pOiBEZWZpbmUgc2UgbyB0aXBvIGRlIHJldG9ybm8gYW8gc2VsZWNpb25hciB1bWEgb3DDp8OjbyBzZXLDoSBvIFJlY29yZCBpbnRlaXJvIG91IGFwZW5hcyBvIElEXG4gKiBcbiAqICMjIE91dHB1dHM6XG4gKiAtIGBvblJlbG9hZExpc3RgIChFdmVudEVtaXR0ZXI8c3RyaW5nPik6IEV2ZW50byBlbWl0aWRvIHF1YW5kbyBhIGxpc3RhIHByZWNpc2Egc2VyIHJlY2FycmVnYWRhLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY29tYm9ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGliLWNvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBgXG4gICAgLmdsYi1tYXgtaGVpZ2h0LTM1MHB4IHsgbWF4LWhlaWdodDogMzUwcHggIWltcG9ydGFudDsgfVxuICAgIC5mb3JtLWxhYmVsIHsgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7IH1cbiAgICAuei1pbmRleC0xMDIwIHsgei1pbmRleDogMTAyMCAhaW1wb3J0YW50OyB9XG4gICAgLmN1cnNvci1wb2ludGVyIHsgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7IH1cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBMaWJDb21ib2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxuXG4gIC8vICNyZWdpb24gUFJPVEVDVEVEXG4gIHByb3RlY3RlZCB0ZXh0b1Blc3F1aXNhOiBzdHJpbmcgPSBcIlwiO1xuXG4gIHByb3RlY3RlZCBnZXQgYXJpYUV4cGFuZGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fYXJpYUV4cGFuZGVkOyB9XG4gIHByb3RlY3RlZCBzZXQgYXJpYUV4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYXJpYUV4cGFuZGVkID0gdmFsdWU7XG4gICAgdGhpcy5hZGp1c3REcm9wZG93bldpZHRoKCk7XG4gICAgXG4gICAgaWYgKHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgdGhpcy50ZXh0b1Blc3F1aXNhID0gXCJcIjtcbiAgICAgIHRoaXMuX3NlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbm5lckNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgaW52YWxpZENvbnRyb2w6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHRvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgY29tYm9ib3hJRCE6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhYmVsSUQhOiBzdHJpbmc7XG4gIC8vICNlbmRyZWdpb24gUFJPVEVDVEVEXG5cbiAgLy8gI3JlZ2lvbiBQUklWQVRFXG4gIHByaXZhdGUgX2Rpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9hcmlhRXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHJpdmF0ZSBfb3V0ZXJDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPihudWxsKTtcbiAgLy8gI2VuZHJlZ2lvbiBQUklWQVRFXG5cbiAgLy8gI3JlZ2lvbiBQVUJMSUNcblxuICAvKiogKG9icmlnYXTDs3JpbykgQ29udHJvbCBwYXJhIHNlbGXDp8OjbyBkb3MgdmFsb3JlcywgYXR1YWxpemFyw6EgYXV0b21hdGljYW1lbnRlIG8gY29udHJvbCBkbyBjb21wb25lbnRlIHBhaSB0YW1iw6ltXG4gICAqIEBhbGlhcyAnY29udHJvbCdcbiAgICogQHR5cGUge0Zvcm1Db250cm9sPGFueT4gfCBBYnN0cmFjdENvbnRyb2w8YW55Pn0gKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sPHVua25vd24+IHsgcmV0dXJuIHRoaXMuX291dGVyQ29udHJvbCB9XG4gIHB1YmxpYyBzZXQgY29udHJvbCh2YWx1ZTogRm9ybUNvbnRyb2w8dW5rbm93bj4gfCBBYnN0cmFjdENvbnRyb2w8dW5rbm93bj4pIHtcbiAgICB0aGlzLl9vdXRlckNvbnRyb2wgPSB2YWx1ZSBhcyBGb3JtQ29udHJvbDtcblxuICAgIC8vIENhbmNlbGEgYSBzdWJzY3Jpw6fDo28gYW50ZXJpb3IgKHNlIGhvdXZlcikgcGFyYSBldml0YXIgbcO6bHRpcGxhcyBzdWJzY3Jpw6fDtWVzXG4gICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAvLyBTdWJzY3Jpw6fDo28gYW8gb2JzZXJ2w6F2ZWwgdmFsdWVDaGFuZ2VzIHBhcmEgcmVhZ2lyIGEgbXVkYW7Dp2FzIG5vIHZhbG9yXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fb3V0ZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4geyB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWUodmFsdWUpIH0pO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX291dGVyQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShzdGF0dXMgPT4geyB0aGlzLnNldENvbnRyb2xTdGF0dXMoc3RhdHVzKSB9KTtcbiAgfVxuXG4gIC8qKiAob2JyaWdhdMOzcmlvKSBMaXN0YSBkZSByZWdpc3Ryb3MgcXVlIHNlcsOjbyBleGliaWRvcyBubyBjb21ibywgZW5xdWFudG8gZWxlcyBlc3RpdmVyZW0gY2FycmVnYW5kbyBzZXLDoSBleGliaWRvIHVtIHNwaW5uZXJcbiAgICogQGFsaWFzICdsaXN0J1xuICAgKiBAdHlwZSB7UmVjb3JkQ29tYm9ib3hbXX0gKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGxpc3Q/OiBSZWNvcmRDb21ib2JveFtdO1xuXG4gIC8qKiAob3BjaW9uYWwpIFRleHRvIGRvIHLDs3R1bG8gcXVlIHNlcsOhIGV4aWJpZG8gYWNpbWEgZG8gY29tYm8uIENhc28gbsOjbyBpbmZvcm1hZG8gbmFkYSBzZXLDoSBleGliaWRvXG4gICAqIEB0eXBlIHtzdHJpbmd9ICovXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqIChvcGNpb25hbCkgVGV4dG8gb3UgY2FyYWN0ZXJlIHNlcGFyYWRvciBlbnRyZSBhIGluZm9ybWHDp8OjbyBkZSBJRCBlIExBQkVMXG4gICAqIEBleGFtcGxlIFwiIC0gXCJcbiAgICogQHR5cGUge3N0cmluZ30gKi9cbiAgQElucHV0KCkgcHVibGljIHNlcGFyYXRvcj86IHN0cmluZyA9IFwiIFwiO1xuXG4gIC8qKiAob3BjaW9uYWwpIERlZmluZSBzZSBvIGNhbXBvIMOpIG9icmlnYXTDs3JpbywgdmFpIGV4aWJpciBvICcqJyB2ZXJtZWxobyBhbyBsYWRvIGRvIGxhYmVsIChzZSBlbGUgZXN0aXZlciBwcmVzZW50ZSlcbiAgICogQHR5cGUge2Jvb2xlYW59ICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsaWJSZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqIChvcGNpb25hbCkgRGVmaW5lIHNlIG8gY2FtcG8gZXN0w6EgZGVzYWJpbGl0YWRvLiBEZXZlIHNlciB1c2FkbyBwYXJhIHZhbGlkYcOnw7VlcyBkZSBoYWJpbGl0YcOnw6NvIGRpbsOibWljYSBkbyBjYW1wb1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2UgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkID8/IGZhbHNlOyB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUgPT09IHRydWUpIHRoaXMuaW5uZXJDb250cm9sLmRpc2FibGUoKTtcbiAgICBlbHNlIHRoaXMuaW5uZXJDb250cm9sLmVuYWJsZSgpO1xuXG4gICAgLy90aGlzLnNldENvbnRyb2xTdGF0dXMoKTtcbiAgfVxuXG4gIC8qKiAob3BjaW9uYWwpIFBsYWNlaG9sZGVyIGRvIGNhbXBvIHByaW5jaXBhbCBkbyBjb21ib1xuICAgKiBAYWxpYXMgJ21haW5QbGFjZWhvbGRlcidcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgXCJTZWxlY2lvbmUgdW1hIG9ww6fDo28uLi5cIiAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWFpblBsYWNlaG9sZGVyPzogc3RyaW5nID0gXCJTZWxlY2lvbmUgdW1hIG9ww6fDo28uLi5cIjtcblxuICAvKiogKG9wY2lvbmFsKSBQbGFjZWhvbGRlciBkbyBjYW1wbyBkZSBwZXNxdWlzYSBkZW50cm8gZG8gY29tYm9cbiAgICogQGFsaWFzICdzZWFyY2hQbGFjZWhvbGRlcidcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgXCJQZXNxdWlzYS4uLlwiICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hQbGFjZWhvbGRlcj86IHN0cmluZyA9IFwiUGVzcXVpc2EuLi5cIjtcblxuICAvKiogKG9wY2lvbmFsKSBEZWZpbmUgbyB0ZW1hIGRlIGNvciBkbyBjb21wb25lbnRlLCBjb21vIFwicHJpbWFyeVwiLCBcInN1Y2Nlc3NcIiwgb3UgXCJkYW5nZXJcIlxuICAgKiBAYWxpYXMgJ3RoZW1lJ1xuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCBcInByaW1hcnlcIlxuICAqL1xuICBASW5wdXQoKSBwdWJsaWMgdGhlbWU/OiBzdHJpbmcgPSBcInByaW1hcnlcIjtcblxuICAvKiogKG9wY2lvbmFsKSBEZWZpbmUgc2UgbyB0aXBvIGRlIHJldG9ybm8gYW8gc2VsZWNpb25hciB1bWEgb3DDp8OjbyBzZXLDoSBvIFJlY29yZCBpbnRlaXJvIG91IGFwZW5hcyBvIElELlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgKi9cbiAgQElucHV0KCkgcHVibGljIHJldHVyblJlY29yZD86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogKG9wY2lvbmFsKSBEZWZpbmUgc2UgbyBjw7NkaWdvIGV4dHJhIGNoYW1hZG8gJ0FkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEnIHNlcsOhIGV4aWJpZG8gZW0gbmVncml0byBvdSBuw6NvLlxuICAgKiBAdHlwZSB7IGJvb2xlYW4gfVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICovXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRpdGlvbmFsU3RyaW5nQm9sZD86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBhbyByZWNhcnJlZ2FyIGEgbGlzdGEgZGUgcmVnaXN0cm9zXG4gICAqIEBleGFtcGxlIEFvIHNlciBlbWl0aWRvLCBvIGNvbXBvbmVudGUgcGFpIHBvZGUgcmVmYXplciBvIEdFVCBkYSBsaXN0YSwgcG9yIGV4ZW1wbG8uXG4gICAqIEBlbWl0cyBFdmVudEVtaXR0ZXI8c3RyaW5nPiBxdWUgbGV2YSBvIHZhbG9yIHN0cmluZyBkYSBwZXNxdWlzYSBmZWl0YSBwYXJhIHNlciBlbnZpYWRhIHBhcmEgbyBHRVRcbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxzdHJpbmc+fSAqL1xuICBAT3V0cHV0KCkgcHVibGljIHJlbG9hZExpc3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cblxuICAvKiogRXZlbnRvIGVtaXRpZG8gYW8gc2VsZWNpb25hciB1bSByZWdpc3RybyBkYSBsaXN0YSBkbyBjb21ib2JveFxuICAgKiBAZXhhbXBsZSBBbyBzZXIgZW1pdGlkbywgbyBjb21wb25lbnRlIHBhaSBwb2RlIHJlYWxpemFyIHVtYSB2YWxpZGHDp8OjbyBjb20gbyB2YWxvciBzZWxlY2lvbmFkby5cbiAgICogQGVtaXRzIEV2ZW50RW1pdHRlcjxzdHJpbmd8bnVtYmVyfG51bGw+IHF1ZSBsZXZhIG8gdmFsb3Igc3RyaW5nIGRhIHBlc3F1aXNhIGZlaXRhIHBhcmEgc2VyIGVudmlhZGEgcGFyYSBvIEdFVFxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bWJlciB8IG51bGw+fSAqL1xuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZVZhbHVlOiBFdmVudEVtaXR0ZXI8UmVjb3JkQ29tYm9ib3ggfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkQ29tYm9ib3ggfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsPigpO1xuICBcblxuICBAVmlld0NoaWxkKCdtYWluSW5wdXQnKSBwcml2YXRlIF9tYWluSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcpIHByaXZhdGUgX3NlYXJjaElucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25NZW51JykgcHJpdmF0ZSBfZHJvcGRvd25NZW51ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIC8vICNlbmRyZWdpb24gUFVCTElDXG5cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XG5cblxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IElOSVRJQUxJWkFUSU9OIDw9PT09PT09PT09XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb21ib2JveElEID0gYGxpYi1jb21ib2JveC0ke01hdGgucmFuZG9tKCkgKiAxMDB9YDtcbiAgICB0aGlzLmxhYmVsSUQgPSBgJHtNYXRoLnJhbmRvbSgpICogMTAwfWA7XG5cbiAgICB0aGlzLmFkanVzdERyb3Bkb3duV2lkdGgoKTtcblxuICAgIHRoaXMuc2V0VmFsaWRhdG9yKCk7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGp1c3REcm9wZG93bldpZHRoKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJsaXN0XCJdPy5jdXJyZW50VmFsdWUpIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZSgpO1xuICAgIGlmIChjaGFuZ2VzW1wibGliUmVxdWlyZWRcIl0/LmN1cnJlbnRWYWx1ZSAhPSB1bmRlZmluZWQpIHRoaXMuc2V0VmFsaWRhdG9yKCk7XG5cbiAgICBpZiAoY2hhbmdlc1tcInNlcGFyYXRvclwiXS5jdXJyZW50VmFsdWUgIT0gdW5kZWZpbmVkKSB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWUodGhpcy5jb250cm9sLnZhbHVlIGFzIHN0cmluZyB8IG51bWJlciwgZmFsc2UpO1xuXG4gICAgaWYgKGNoYW5nZXNbXCJjb250cm9sXCJdPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRhdG9yKCk7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWUoKGNoYW5nZXNbXCJjb250cm9sXCJdLmN1cnJlbnRWYWx1ZSBhcyBGb3JtQ29udHJvbCkudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLy8gTyBxdWUgZmF6ZXIgcXVhbmRvIG8gZXZlbnRvIGRlIHJlZGltZW5zaW9uYW1lbnRvIG9jb3JyZXJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uUmVzaXplKCk6IHZvaWQgeyB0aGlzLmFkanVzdERyb3Bkb3duV2lkdGgoKSB9XG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gSU5JVElBTElaQVRJT04gPD09PT09PT09PT1cblxuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTFMgPD09PT09PT09PT1cbiAgcHVibGljIHNldFZhbHVlKGl0ZW06IFJlY29yZENvbWJvYm94KTogdm9pZCB7XG4gICAgdGhpcy50ZXh0b1Blc3F1aXNhID0gXCJcIjtcbiAgICB0aGlzLmlubmVyQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMuX291dGVyQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIFxuICAgIHRoaXMuX291dGVyQ29udHJvbC5zZXRWYWx1ZShpdGVtLklEKTtcbiAgICB0aGlzLmlubmVyQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgIGAke2l0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSAmJiBpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgIT0gJycgPyBpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgOiBcIlwifSR7dGhpcy5zZXBhcmF0b3IgPT09IHVuZGVmaW5lZCA/IFwiIFwiIDogXCIgXCIrdGhpcy5zZXBhcmF0b3IrXCIgXCJ9JHtpdGVtLkxBQkVMfWBcbiAgICApO1xuXG4gICAgdGhpcy5hcmlhRXhwYW5kZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNldENvbnRyb2xTdGF0dXModGhpcy5pbm5lckNvbnRyb2wuc3RhdHVzKTtcbiAgICBcbiAgICB0aGlzLmNoYW5nZVZhbHVlLmVtaXQodGhpcy5yZXR1cm5SZWNvcmQgPyBpdGVtIGFzIFJlY29yZENvbWJvYm94IDogaXRlbS5JRCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRvUGVzcXVpc2EgPSBcIlwiO1xuICAgIHRoaXMuaW5uZXJDb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5fb3V0ZXJDb250cm9sLm1hcmtBc0RpcnR5KCk7XG5cbiAgICB0aGlzLl9vdXRlckNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5pbm5lckNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG5cbiAgICB0aGlzLmFyaWFFeHBhbmRlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2V0Q29udHJvbFN0YXR1cyh0aGlzLmlubmVyQ29udHJvbC5zdGF0dXMpO1xuXG4gICAgdGhpcy5jaGFuZ2VWYWx1ZS5lbWl0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFZhbHVlKHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCwgbm9DaGFuZ2U6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5pbm5lckNvbnRyb2wuc2V0VmFsdWUobnVsbCk7IC8vIExpbXBhIG8gY2FtcG8gYW50ZXMgZGUgcXVhbHF1ZXIgY29pc2FcbiAgICBcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gdmFsdWUgPz8gdGhpcy5fb3V0ZXJDb250cm9sLnZhbHVlO1xuICAgIGlmICghdGhpcy5saXN0IHx8IChzZWxlY3RlZFZhbHVlID09PSBudWxsICYmIHNlbGVjdGVkVmFsdWUgPT09ICcnKSkgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IGluaXRpYWxpemVkVmFsdWUgPSB0aGlzLmxpc3QuZmluZChpdGVtID0+IGl0ZW0uSUQgPT09IHNlbGVjdGVkVmFsdWUpXG4gICAgaWYgKGluaXRpYWxpemVkVmFsdWUpIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKFxuICAgICAgYCR7aW5pdGlhbGl6ZWRWYWx1ZS5BZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxICYmIGluaXRpYWxpemVkVmFsdWUuQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSAhPSAnJyA/IGluaXRpYWxpemVkVmFsdWUuQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSA6IFwiXCJ9JHt0aGlzLnNlcGFyYXRvciA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IFwiIFwiK3RoaXMuc2VwYXJhdG9yK1wiIFwifSR7aW5pdGlhbGl6ZWRWYWx1ZS5MQUJFTH1gLFxuICAgICAgeyBlbWl0RXZlbnQ6IG5vQ2hhbmdlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3REcm9wZG93bldpZHRoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9tYWluSW5wdXQgJiYgdGhpcy5fZHJvcGRvd25NZW51KSB7XG4gICAgICBjb25zdCBpbnB1dFdpZHRoID0gdGhpcy5fbWFpbklucHV0Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICB0aGlzLl9kcm9wZG93bk1lbnUubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IGAke2lucHV0V2lkdGh9cHhgO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXJ2ZSBwYXJhIGFwbGljYXIgb3UgcmVtb3ZlciBvIFZhbGlkYXRvci5yZXF1aXJlZCBkbyBjb250cm9sZS5cbiAgICogUG9yIHBhZHLDo28gZWxlIHByaW9yaXphcsOhIGEgcHJvcHJpZWRhZGUgbGliUmVxdWlyZWQgcGFyYSBlc3RhIHZhbGlkYcOnw6NvLiAqL1xuICBwcml2YXRlIHNldFZhbGlkYXRvcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5saWJSZXF1aXJlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5saWJSZXF1aXJlZCkge1xuICAgICAgICB0aGlzLmlubmVyQ29udHJvbC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLmlzUmVxdWlyZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLnJlbW92ZVZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9vdXRlckNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKSB7XG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5pbm5lckNvbnRyb2wucmVtb3ZlVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgdGhpcy5pc1JlcXVpcmVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb250cm9sU3RhdHVzKGZvcm1TdGF0dXM6IEZvcm1Db250cm9sU3RhdHVzKTogdm9pZCB7XG4gICAgc3dpdGNoKGZvcm1TdGF0dXMpIHtcbiAgICAgIGNhc2UgJ1ZBTElEJzpcbiAgICAgICAgdGhpcy5pbnZhbGlkQ29udHJvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlubmVyQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0lOVkFMSUQnOlxuICAgICAgICB0aGlzLmludmFsaWRDb250cm9sID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbm5lckNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdQRU5ESU5HJzpcbiAgICAgICAgdGhpcy5pbnZhbGlkQ29udHJvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlubmVyQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0RJU0FCTEVEJzpcbiAgICAgICAgdGhpcy5pbnZhbGlkQ29udHJvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlubmVyQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRMaXN0KCk6IHZvaWQgeyB0aGlzLnJlbG9hZExpc3RDaGFuZ2UuZW1pdCh0aGlzLnRleHRvUGVzcXVpc2EpIH1cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBVVElMUyA8PT09PT09PT09PVxuXG59IiwiPCEtLSBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvdGVtcGxhdGUvaW50ZXJhY3RpdmUtc3VwcG9ydHMtZm9jdXMgLS0+XG48IS0tIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC90ZW1wbGF0ZS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzIC0tPlxuXG48bGFiZWwgKm5nSWY9XCJsYWJlbFRleHQgJiYgbGFiZWxUZXh0ICE9PSAnJ1wiIGNsYXNzPVwiZm9ybS1sYWJlbCBmdy1ib2xkXCIgW2lkXT1cImxhYmVsSURcIiBbZm9yXT1cImNvbWJvYm94SURcIiBbbGliUmVxdWlyZWRdPVwiaXNSZXF1aXJlZFwiPnt7IGxhYmVsVGV4dCB9fTwvbGFiZWw+XG5cbjxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkcm9wZG93biBmbGV4LWZpbGwgZ2xiLW1heC1oZWlnaHQtMzUwcHhcIj5cblxuICAgPCEtLSBFc3RlIGVsZW1lbnRvIG5nLWNvbnRlbnQgY29tIG8gYXRyaWJ1dG8gW2J0bkxlZnRdIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gZmluYWwgZm9ybmXDp2EgY29udGXDumRvIHBlcnNvbmFsaXphZG8gcGFyYSBzZXIgZXhpYmlkbyBubyBsYWRvIGVzcXVlcmRvIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLlxuICAgQW8gdXNhciBvIGF0cmlidXRvIFtidG5MZWZ0XSwgbyB1c3XDoXJpbyBwb2RlIGZhY2lsbWVudGUgYWRpY2lvbmFyIGJvdMO1ZXMgb3Ugb3V0cm9zIGVsZW1lbnRvcyBwYXJhIG1lbGhvcmFyIGEgZnVuY2lvbmFsaWRhZGUgb3UgYXBhcsOqbmNpYSBkbyBjb21ib2JveCBkZSBwZXNxdWlzYS4gLS0+XG4gICA8bmctY29udGVudCBzZWxlY3Q9XCJbYnRuTGVmdF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgIDxpbnB1dCAgI21haW5JbnB1dCBjbGFzcz1cImZvcm0tc2VsZWN0IHRleHQtc3RhcnQgcm91bmRlZC1lbmQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCIgZGF0YS1icy1hdXRvLWNsb3NlPVwib3V0c2lkZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIHJlYWRvbmx5XG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwibWFpblBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImlubmVyQ29udHJvbFwiIFtjbGFzcy5pcy1pbnZhbGlkXT1cImludmFsaWRDb250cm9sXCIgW2lkXT1cImNvbWJvYm94SURcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFyaWFFeHBhbmRlZCA9ICFhcmlhRXhwYW5kZWQ7IHNlYXJjaElucHV0LmZvY3VzKClcIiAoZm9jdXMpPVwic2VhcmNoSW5wdXQuZm9jdXMoKVwiPlxuXG4gICA8dWwgICNkcm9wZG93bk1lbnUgIGNsYXNzPVwiZHJvcGRvd24tbWVudSBwLTIgZ2xiLW1heC1oZWlnaHQtMzUwcHggb3ZlcmZsb3cteS1zY3JvbGwgei1pbmRleC0xMDIwXCIgW2NsYXNzLnNob3ddPVwiYXJpYUV4cGFuZGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbWItMlwiPlxuICAgICAgICAgPGlucHV0ICNzZWFyY2hJbnB1dCAoaW5wdXQpPVwidGV4dG9QZXNxdWlzYSA9IHNlYXJjaElucHV0LnZhbHVlXCIgdHlwZT1cInRleHRcIiBpZD1cInNlYXJjaElucHV0LXt7Y29tYm9ib3hJRH19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZ2xiLWlucHV0LW5vLWdsb3dcIiBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIiAoa2V5dXAuZW50ZXIpPVwicmVsb2FkTGlzdCgpXCI+XG4gICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi17e3RoZW1lfX1cIiAoY2xpY2spPVwicmVsb2FkTGlzdCgpXCI+IDxsaWItaWNvbiBpY29uTmFtZT1cImx1cGFcIiBpY29uU2l6ZT1cIm1lZGl1bS1zbWFsbFwiIC8+IDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobGlzdCkge1xuICAgICAgICAgPGxpICpuZ0lmPVwiaW5uZXJDb250cm9sLnZhbHVlICE9PSAnJyAmJiBpbm5lckNvbnRyb2wudmFsdWUgIT09IG51bGxcIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiY2xlYXJWYWx1ZSgpXCI+IDxzcGFuIGNsYXNzPVwiZnctYm9sZFwiPkxpbXBhciBvcMOnw6NvIHNlbGVjaW9uYWRhPC9zcGFuPiA8L2xpPlxuICAgICAgICAgQGZvciAoaXRlbSBvZiBsaXN0IHwgdGV4dEZpbHRlcjp0ZXh0b1Blc3F1aXNhOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwic2V0VmFsdWUoaXRlbSlcIj5cbiAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5BZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxICYmIGl0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSAhPT0gJydcIiBjbGFzcz1cImdsYi1mcy0xMiBkLWlubGluZS1ibG9jayB3LTEyNVwiIFtjbGFzcy5mdy1ib2xkXT1cImFkZGl0aW9uYWxTdHJpbmdCb2xkXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgKyAoc2VwYXJhdG9yID09PSB1bmRlZmluZWQgPyBcIlwiIDogXCIgXCIrc2VwYXJhdG9yKSB9fVxuICAgICAgICAgICAgICAgPC9zcGFuPiB7eyBpdGVtLkxBQkVMIH19XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgfVxuICAgICAgICAgQGVtcHR5IHsgPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbSBmc3QtaXRhbGljXCI+TmVuaHVtIHJlZ2lzdHJvIGVuY29udHJhZG8gY29tIGVzdGEgcGVzcXVpc2EuLi48L2xpPiB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7IDxsaSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gdGV4dC1jZW50ZXJcIj4gPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCIgcm9sZT1cInN0YXR1c1wiPjxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+Q2FycmVnYW5kbyBkYWRvcy4uLjwvc3Bhbj48L2Rpdj4gPC9saT4gfVxuICAgPC91bD5cblxuICAgPCEtLSBFc3RlIGVsZW1lbnRvIG5nLWNvbnRlbnQgY29tIG8gYXRyaWJ1dG8gW2J0blJpZ2h0XSBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIGZpbmFsIGZvcm5lw6dhIGNvbnRlw7pkbyBwZXJzb25hbGl6YWRvIHBhcmEgc2VyIGV4aWJpZG8gbm8gbGFkbyBkaXJlaXRvIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLlxuICAgQW8gdXNhciBvIGF0cmlidXRvIFtidG5SaWdodF0sIG8gdXN1w6FyaW8gcG9kZSBmYWNpbG1lbnRlIGFkaWNpb25hciBib3TDtWVzIG91IG91dHJvcyBlbGVtZW50b3MgcGFyYSBtZWxob3JhciBhIGZ1bmNpb25hbGlkYWRlIG91IGFwYXLDqm5jaWEgZG8gY29tYm9ib3ggZGUgcGVzcXVpc2EuIC0tPlxuICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J0blJpZ2h0XVwiPjwvbmctY29udGVudD5cblxuPC9kaXY+XG5cbjwhLS0gI3JlZ2lvbiBNRU5TQUdFTSBERSBFUlJPIERFIFZBTElEQcOHw4NPIC0tPlxuPGxpYi1lcnJvci1tZXNzYWdlICpuZ0lmPVwiaW52YWxpZENvbnRyb2xcIiBjdXN0b21NZXNzYWdlPVwiRXN0ZSBjYW1wbyDDqSBvYnJpZ2F0w7NyaW8uXCIgLz5cbjwhLS0gI2VuZHJlZ2lvbiBNRU5TQUdFTSBERSBFUlJPIERFIFZBTElEQcOHw4NPIC0tPiJdfQ==
|
|
@@ -22,7 +22,6 @@ export class SearchInputComponent {
|
|
|
22
22
|
}
|
|
23
23
|
loadRoutes() {
|
|
24
24
|
this.http.get('assets/jsons/routes.json').subscribe(data => {
|
|
25
|
-
console.log(data);
|
|
26
25
|
this.items = data;
|
|
27
26
|
}, error => {
|
|
28
27
|
console.error('Error loading routes:', error);
|
|
@@ -84,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
84
83
|
type: HostListener,
|
|
85
84
|
args: ['document:keydown', ['$event']]
|
|
86
85
|
}] } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvc2VhcmNoLWlucHV0L3NlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdEcsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixZQUFvQixJQUFnQixFQUFVLE1BQWM7UUFBeEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFUNUQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixVQUFLLEdBQXVDLEVBQUUsQ0FBQztRQUUvQyxrQkFBYSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFJK0IsQ0FBQztJQUVoRSxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFxQywwQkFBMEIsQ0FBQyxDQUFDLFNBQVMsQ0FDckYsSUFBSSxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN2QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ25ELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUNsRSxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDOytHQTlFVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixzT0NUakMsMjlCQTBCQzs7NEZEakJZLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7b0dBWUYsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQXdCeEIsU0FBUztzQkFEUixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXNlYXJjaC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2VhcmNoLWlucHV0LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIGlzVmlzaWJsZSA9IGZhbHNlO1xuICBzZWFyY2hRdWVyeSA9ICcnO1xuICBcbiAgaXRlbXM6IHsgbGFiZWw6IHN0cmluZywgcm91dGU6IHN0cmluZyB9W10gPSBbXTtcbiAgXG4gIGZpbHRlcmVkSXRlbXMgPSBbLi4udGhpcy5pdGVtc107XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBzZWFyY2hJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZFJvdXRlcygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzVmlzaWJsZSkge1xuICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfVxuICB9XG5cbiAgbG9hZFJvdXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHAuZ2V0PHsgbGFiZWw6IHN0cmluZywgcm91dGU6IHN0cmluZyB9W10+KCdhc3NldHMvanNvbnMvcm91dGVzLmpzb24nKS5zdWJzY3JpYmUoXG4gICAgICBkYXRhID0+IHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IGRhdGE7XG4gICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgcm91dGVzOicsIGVycm9yKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIGV2ZW50LmtleSA9PT0gJ3AnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSAhdGhpcy5pc1Zpc2libGU7XG4gICAgICBpZiAodGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvY3VzSW5wdXQoKSwgMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlc2V0U2VhcmNoKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzVmlzaWJsZSAmJiBldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAodGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvKHRoaXMuZmlsdGVyZWRJdGVtc1swXS5yb3V0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBjbG9zZVNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMucmVzZXRTZWFyY2goKTtcbiAgfVxuXG4gIHJlc2V0U2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbLi4udGhpcy5pdGVtc107XG4gIH1cblxuICBvblNlYXJjaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hRdWVyeS50cmltKCkpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT5cbiAgICAgICAgaXRlbS5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFsuLi50aGlzLml0ZW1zXTtcbiAgICB9XG4gIH1cblxuICBuYXZpZ2F0ZVRvKHJvdXRlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm91dGVdKTtcbiAgICB0aGlzLmNsb3NlU2VhcmNoKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXQpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChpc1Zpc2libGUpIHtcbjxkaXYgY2xhc3M9XCJzZWFyY2gtb3ZlcmxheVwiPlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgI3NlYXJjaElucHV0IFsobmdNb2RlbCldPVwic2VhcmNoUXVlcnlcIiAoaW5wdXQpPVwib25TZWFyY2goKVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiUGVzcXVpc2UgcG9yIHRlbGFzIGRhIGFwbGljYcOnw6NvLi4uXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAvPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2VTZWFyY2goKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgbXMtMlwiPkZlY2hhcjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChzZWFyY2hRdWVyeSAhPT0gJycpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtcmVzdWx0c1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsYWJsZS1jb250ZW50XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8bGkgKGNsaWNrKT1cIm5hdmlnYXRlVG8oaXRlbS5yb3V0ZSlcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiPnt7aXRlbS5sYWJlbH19PC9saT5cbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICBAZW1wdHkge1xuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW1cIj5OZW5odW0gcmVnaXN0cm8gZW5jb250cmFkbzwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbn0iXX0=
|
|
@@ -5316,6 +5316,8 @@ class LibComboboxComponent {
|
|
|
5316
5316
|
this.updateSelectedValue();
|
|
5317
5317
|
if (changes["libRequired"]?.currentValue != undefined)
|
|
5318
5318
|
this.setValidator();
|
|
5319
|
+
if (changes["separator"].currentValue != undefined)
|
|
5320
|
+
this.updateSelectedValue(this.control.value, false);
|
|
5319
5321
|
if (changes["control"]?.currentValue) {
|
|
5320
5322
|
this.setValidator();
|
|
5321
5323
|
this.updateSelectedValue(changes["control"].currentValue.value);
|
|
@@ -5348,14 +5350,14 @@ class LibComboboxComponent {
|
|
|
5348
5350
|
this.setControlStatus(this.innerControl.status);
|
|
5349
5351
|
this.changeValue.emit(null);
|
|
5350
5352
|
}
|
|
5351
|
-
updateSelectedValue(value) {
|
|
5353
|
+
updateSelectedValue(value, noChange = true) {
|
|
5352
5354
|
this.innerControl.setValue(null); // Limpa o campo antes de qualquer coisa
|
|
5353
5355
|
const selectedValue = value ?? this._outerControl.value;
|
|
5354
5356
|
if (!this.list || (selectedValue === null && selectedValue === ''))
|
|
5355
5357
|
return;
|
|
5356
5358
|
const initializedValue = this.list.find(item => item.ID === selectedValue);
|
|
5357
5359
|
if (initializedValue)
|
|
5358
|
-
this.innerControl.setValue(`${initializedValue.AdditionalStringProperty1 && initializedValue.AdditionalStringProperty1 != '' ? initializedValue.AdditionalStringProperty1 : ""}${this.separator === undefined ? "" : " " + this.separator + " "}${initializedValue.LABEL}
|
|
5360
|
+
this.innerControl.setValue(`${initializedValue.AdditionalStringProperty1 && initializedValue.AdditionalStringProperty1 != '' ? initializedValue.AdditionalStringProperty1 : ""}${this.separator === undefined ? "" : " " + this.separator + " "}${initializedValue.LABEL}`, { emitEvent: noChange });
|
|
5359
5361
|
}
|
|
5360
5362
|
adjustDropdownWidth() {
|
|
5361
5363
|
if (this._mainInput && this._dropdownMenu) {
|
|
@@ -7387,7 +7389,6 @@ class SearchInputComponent {
|
|
|
7387
7389
|
}
|
|
7388
7390
|
loadRoutes() {
|
|
7389
7391
|
this.http.get('assets/jsons/routes.json').subscribe(data => {
|
|
7390
|
-
console.log(data);
|
|
7391
7392
|
this.items = data;
|
|
7392
7393
|
}, error => {
|
|
7393
7394
|
console.error('Error loading routes:', error);
|