@fundamental-ngx/core 0.43.22 → 0.43.23
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/esm2020/multi-combobox/multi-announcer/multi-announcer.directive.mjs +2 -2
- package/esm2020/overflow-layout/overflow-layout.service.mjs +19 -15
- package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-overflow-layout.mjs +18 -14
- package/fesm2015/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-overflow-layout.mjs +18 -14
- package/fesm2020/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fundamental-ngx-core-v0.43.23.tgz +0 -0
- package/overflow-layout/overflow-layout.service.d.ts +4 -4
- package/package.json +3 -3
- package/schematics/add-dependencies/index.js +4 -4
- package/fundamental-ngx-core-v0.43.22.tgz +0 -0
|
@@ -3,7 +3,7 @@ import { KeyUtil } from '@fundamental-ngx/cdk/utils';
|
|
|
3
3
|
import { FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';
|
|
4
4
|
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
|
5
5
|
import { firstValueFrom, Observable } from 'rxjs';
|
|
6
|
-
import { TokenComponent } from
|
|
6
|
+
import { TokenComponent } from '@fundamental-ngx/core/token';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "rxjs";
|
|
9
9
|
export class MultiAnnouncerDirective {
|
|
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
100
100
|
exports: [MultiAnnouncerDirective]
|
|
101
101
|
}]
|
|
102
102
|
}] });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktYW5ub3VuY2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL211bHRpLWNvbWJvYm94L211bHRpLWFubm91bmNlci9tdWx0aS1hbm5vdW5jZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFjLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBTzdELE1BQU0sT0FBTyx1QkFBdUI7SUEyQmhDLGNBQWM7SUFDZCxZQUFrRCxVQUFrQztRQUFsQyxlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQW5CcEYsY0FBYztRQUNHLHlCQUFvQixHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUVsRSxjQUFjO1FBQ04sd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRXBDLGNBQWM7UUFDTixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFLbEMsY0FBYztRQUNOLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRTNCLGNBQWM7UUFDRyxtQkFBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFJbkUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxjQUFjO0lBQ04s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TUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLFlBekZwQix1QkFBdUIsYUFBdkIsdUJBQXVCO2tIQXlGdkIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSmhDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgaW5qZWN0LCBJbnB1dCwgTmdNb2R1bGUsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZEX0xBTkdVQUdFLCBGZExhbmd1YWdlLCBUcmFuc2xhdGlvblJlc29sdmVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IExpdmVBbm5vdW5jZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9rZW5Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZE11bHRpQW5ub3VuY2VyXScsXG4gICAgZXhwb3J0QXM6ICdmZE11bHRpQW5ub3VuY2VyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpQW5ub3VuY2VyRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbXVsdGlBbm5vdW5jZXJPcHRpb25zOiBhbnlbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihUb2tlbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgX3Rva2VuczogUXVlcnlMaXN0PFRva2VuQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNsYXRpb25SZXNvbHZlciA9IG5ldyBUcmFuc2xhdGlvblJlc29sdmVyKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25vUmVzdWx0c0Fubm91bmNlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXN1bHRzQW5ub3VuY2VkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xhbmd1YWdlOiBGZExhbmd1YWdlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hbm5vdW5jZW1lbnQgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGl2ZUFubm91bmNlcjogTGl2ZUFubm91bmNlciA9IGluamVjdChMaXZlQW5ub3VuY2VyKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoQEluamVjdChGRF9MQU5HVUFHRSkgcHJpdmF0ZSByZWFkb25seSBfbGFuZ3VhZ2UkOiBPYnNlcnZhYmxlPEZkTGFuZ3VhZ2U+KSB7XG4gICAgICAgIHRoaXMuX2luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2luaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX2xhbmd1YWdlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fbGFuZ3VhZ2UkKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBwcml2YXRlIF9tYWtlU2VhcmNoVGVybUNoYW5nZUFubm91bmNlbWVudHMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlUeXBlKGV2ZW50LCAnYWxwaGFiZXRpY2FsJykgfHwgS2V5VXRpbC5pc0tleVR5cGUoZXZlbnQsICdudW1lcmljJykpIHtcbiAgICAgICAgICAgIHRoaXMuX2xpdmVBbm5vdW5jZXIuY2xlYXIoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5tdWx0aUFubm91bmNlck9wdGlvbnMubGVuZ3RoICYmICF0aGlzLl9ub1Jlc3VsdHNBbm5vdW5jZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9idWlsZEFubm91bmNlbWVudCgnbm9SZXN1bHRzJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm9SZXN1bHRzQW5ub3VuY2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXN1bHRzQW5ub3VuY2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubXVsdGlBbm5vdW5jZXJPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkQW5ub3VuY2VtZW50KHRoaXMubXVsdGlBbm5vdW5jZXJPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYnVpbGRBbm5vdW5jZW1lbnQoJ25hdmlnYXRlU2VsZWN0aW9uc1dpdGhBcnJvd3MnKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3Jlc3VsdHNBbm5vdW5jZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm9SZXN1bHRzQW5ub3VuY2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc3VsdHNBbm5vdW5jZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLl90b2tlbnMgJiYgdGhpcy5fdG9rZW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkQW5ub3VuY2VtZW50KCdlc2NhcGVOYXZpZ2F0ZVRva2VucycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fbWFrZUFubm91bmNlbWVudCh0aGlzLl9hbm5vdW5jZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9idWlsZEFubm91bmNlbWVudChtZXNzYWdlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYW5ub3VuY2VtZW50ID1cbiAgICAgICAgICAgIHRoaXMuX2Fubm91bmNlbWVudCArXG4gICAgICAgICAgICB0aGlzLl90cmFuc2xhdGlvblJlc29sdmVyLnJlc29sdmUoXG4gICAgICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICAgID8gJ2NvcmVNdWx0aUlucHV0LicgKyBtZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgIDogbWVzc2FnZSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICA/ICdjb3JlTXVsdGlJbnB1dC5jb3VudExpc3RSZXN1bHRzU2luZ3VsYXInXG4gICAgICAgICAgICAgICAgICAgIDogJ2NvcmVNdWx0aUlucHV0LmNvdW50TGlzdFJlc3VsdHNQbHVyYWwnLFxuICAgICAgICAgICAgICAgIHsgY291bnQ6IG1lc3NhZ2UgfVxuICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAnICc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9tYWtlQW5ub3VuY2VtZW50KG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLl9saXZlQW5ub3VuY2VyLmFubm91bmNlKG1lc3NhZ2UsICdhc3NlcnRpdmUnKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Fubm91bmNlbWVudCA9ICcnO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW011bHRpQW5ub3VuY2VyRGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbTXVsdGlBbm5vdW5jZXJEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpQW5ub3VuY2VyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -61,20 +61,6 @@ export class OverflowLayoutService {
|
|
|
61
61
|
setConfig(config) {
|
|
62
62
|
this.config = config;
|
|
63
63
|
}
|
|
64
|
-
/** @hidden */
|
|
65
|
-
_emitResult() {
|
|
66
|
-
this._result$.next(this.result);
|
|
67
|
-
}
|
|
68
|
-
/** @hidden */
|
|
69
|
-
_listenToSizeChanges(...elements) {
|
|
70
|
-
elements.forEach((element) => this._subscription.add(resizeObservable(element)
|
|
71
|
-
.pipe(skip(1), filter(() => this._listenToItemResize), distinctUntilChanged(), debounceTime(30))
|
|
72
|
-
.subscribe(() => {
|
|
73
|
-
setTimeout(() => {
|
|
74
|
-
this.fitVisibleItems();
|
|
75
|
-
});
|
|
76
|
-
})));
|
|
77
|
-
}
|
|
78
64
|
/**
|
|
79
65
|
* Calculates available space for items and hides items that are not fitting into the container.
|
|
80
66
|
*/
|
|
@@ -141,6 +127,10 @@ export class OverflowLayoutService {
|
|
|
141
127
|
this._detectChanges$.next();
|
|
142
128
|
visibleContainerItems.forEach((item, index) => {
|
|
143
129
|
const itemRef = allItems[index];
|
|
130
|
+
// If item is forced to be visible, just display the item since it's size calculation was already taken care of in previous iteration.
|
|
131
|
+
if (itemRef.overflowItem.forceVisibility) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
144
134
|
if (shouldHideItems && !itemRef.overflowItem.forceVisibility) {
|
|
145
135
|
item.containerRef.hidden = true;
|
|
146
136
|
item.softHidden = false;
|
|
@@ -206,10 +196,24 @@ export class OverflowLayoutService {
|
|
|
206
196
|
const elementSize = elementWidth + parseFloat(elementStyle.marginLeft) + parseFloat(elementStyle.marginRight);
|
|
207
197
|
return Math.ceil(elementSize);
|
|
208
198
|
}
|
|
199
|
+
/** @hidden */
|
|
200
|
+
_emitResult() {
|
|
201
|
+
this._result$.next(this.result);
|
|
202
|
+
}
|
|
203
|
+
/** @hidden */
|
|
204
|
+
_listenToSizeChanges(...elements) {
|
|
205
|
+
elements.forEach((element) => this._subscription.add(resizeObservable(element)
|
|
206
|
+
.pipe(skip(1), filter(() => this._listenToItemResize), distinctUntilChanged(), debounceTime(30))
|
|
207
|
+
.subscribe(() => {
|
|
208
|
+
setTimeout(() => {
|
|
209
|
+
this.fitVisibleItems();
|
|
210
|
+
});
|
|
211
|
+
})));
|
|
212
|
+
}
|
|
209
213
|
}
|
|
210
214
|
OverflowLayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverflowLayoutService, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
211
215
|
OverflowLayoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverflowLayoutService });
|
|
212
216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverflowLayoutService, decorators: [{
|
|
213
217
|
type: Injectable
|
|
214
218
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9vdmVyZmxvdy1sYXlvdXQvb3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQWMsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBa0IzRyxNQUFNLE9BQU8sNkJBQTZCO0lBQTFDO1FBQ0ksa0NBQWtDO1FBQ2xDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsc0JBQXNCO1FBQ3RCLFVBQUssR0FBc0IsRUFBRSxDQUFDO1FBRTlCLDRCQUE0QjtRQUM1QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFFcEMsNkJBQTZCO1FBQzdCLGlCQUFZLEdBQXNCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0NBQUE7QUFHRCxNQUFNLE9BQU8scUJBQXFCO0lBNkI5Qjs7T0FFRztJQUNILElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7SUFDZCxZQUFvQixNQUErQjtRQUEvQixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQXRDbkQ7O1dBRUc7UUFDSCxXQUFNLEdBQUcsSUFBSSw2QkFBNkIsRUFBRSxDQUFDO1FBRTdDLGNBQWM7UUFDTix3QkFBbUIsR0FBRyxJQUFJLENB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QUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLE9BQW9CO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUMzRCxNQUFNLFdBQVcsR0FBRyxZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTlHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDOztrSEE5UFEscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVzaXplT2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgT2JzZXJ2YWJsZSwgc2tpcCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVyZmxvd0xheW91dEl0ZW1Db250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvb3ZlcmZsb3ctbGF5b3V0LWl0ZW0tY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVyZmxvd0xheW91dEZvY3VzYWJsZUl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcmZsb3ctZm9jdXNhYmxlLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IE92ZXJmbG93SXRlbVJlZiB9IGZyb20gJy4vaW50ZXJmYWNlcy9vdmVyZmxvdy1pdGVtLXJlZi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJmbG93TGF5b3V0Q29uZmlnIHtcbiAgICBpdGVtczogT3ZlcmZsb3dJdGVtUmVmW107XG4gICAgZm9jdXNhYmxlSXRlbXM6IE92ZXJmbG93TGF5b3V0Rm9jdXNhYmxlSXRlbVtdO1xuICAgIHZpc2libGVJdGVtczogT3ZlcmZsb3dMYXlvdXRJdGVtQ29udGFpbmVyRGlyZWN0aXZlW107XG4gICAgaXRlbXNXcmFwcGVyOiBIVE1MRWxlbWVudDtcbiAgICBzaG93TW9yZUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgbGF5b3V0Q29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgbWF4VmlzaWJsZUl0ZW1zOiBudW1iZXI7XG4gICAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnO1xuICAgIGVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbjogYm9vbGVhbjtcbiAgICByZXZlcnNlSGlkZGVuSXRlbXM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBPdmVyZmxvd0xheW91dExpc3RlbmluZ1Jlc3VsdCB7XG4gICAgLyoqIFdoZXRoZXIgdG8gc2hvdyBtb3JlIGJ1dHRvbiAqL1xuICAgIHNob3dNb3JlID0gZmFsc2U7XG5cbiAgICAvKiogT3ZlcmZsb3cgaXRlbSBzICovXG4gICAgaXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG5cbiAgICAvKiogSGlkZGVuIG92ZXJmbG93IGl0ZW1zICovXG4gICAgaGlkZGVuSXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG5cbiAgICAvKiogVmlzaWJsZSBvdmVyZmxvdyBpdGVtcyAqL1xuICAgIHZpc2libGVJdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE92ZXJmbG93TGF5b3V0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogT3ZlcmZsb3cgTGF5b3V0IGNvbmZpZy5cbiAgICAgKi9cbiAgICBjb25maWc6IE92ZXJmbG93TGF5b3V0Q29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogT3ZlcmZsb3cgTGF5b3V0IGNhbGN1bGF0aW9uIHJlc3VsdC5cbiAgICAgKi9cbiAgICByZXN1bHQgPSBuZXcgT3ZlcmZsb3dMYXlvdXRMaXN0ZW5pbmdSZXN1bHQoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9JdGVtUmVzaXplID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hbGxJdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGlkZGVuSXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RldGVjdENoYW5nZXMkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzdWx0JCA9IG5ldyBTdWJqZWN0PE92ZXJmbG93TGF5b3V0TGlzdGVuaW5nUmVzdWx0PigpO1xuXG4gICAgLyoqXG4gICAgICogT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuIGNoYW5nZXMgZGV0ZWN0aW9uIGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGdldCBkZXRlY3RDaGFuZ2VzKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGV0ZWN0Q2hhbmdlcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuIG5ldyBjYWxjdWxhdGlvbiByZXN1bHQgaXMgYXZhaWxhYmxlLlxuICAgICAqL1xuICAgIGdldCBvblJlc3VsdCgpOiBPYnNlcnZhYmxlPE92ZXJmbG93TGF5b3V0TGlzdGVuaW5nUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzdGFydExpc3RlbmluZyhjb25maWc6IE92ZXJmbG93TGF5b3V0Q29uZmlnKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0Q29uZmlnKGNvbmZpZyk7XG4gICAgICAgIHRoaXMuZml0VmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvU2l6ZUNoYW5nZXModGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jb25maWcuaXRlbXNXcmFwcGVyKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldENvbmZpZyhjb25maWc6IE92ZXJmbG93TGF5b3V0Q29uZmlnKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZW1pdFJlc3VsdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzdWx0JC5uZXh0KHRoaXMucmVzdWx0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvU2l6ZUNoYW5nZXMoLi4uZWxlbWVudHM6IEhUTUxFbGVtZW50W10pOiB2b2lkIHtcbiAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT5cbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICAgICAgcmVzaXplT2JzZXJ2YWJsZShlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5fbGlzdGVuVG9JdGVtUmVzaXplKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMzApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpdFZpc2libGVJdGVtcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyBhdmFpbGFibGUgc3BhY2UgZm9yIGl0ZW1zIGFuZCBoaWRlcyBpdGVtcyB0aGF0IGFyZSBub3QgZml0dGluZyBpbnRvIHRoZSBjb250YWluZXIuXG4gICAgICovXG4gICAgZml0VmlzaWJsZUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0l0ZW1SZXNpemUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYWxsSXRlbXMgPSB0aGlzLmNvbmZpZy5pdGVtcztcblxuICAgICAgICBsZXQgYWxsSXRlbXMgPSBbLi4udGhpcy5jb25maWcuaXRlbXNdO1xuICAgICAgICBsZXQgdmlzaWJsZUNvbnRhaW5lckl0ZW1zID0gWy4uLnRoaXMuY29uZmlnLnZpc2libGVJdGVtc107XG5cbiAgICAgICAgdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodH1weGA7XG5cbiAgICAgICAgYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIC8vIFNvZnRseSBoaWRlIHByZXZpb3VzbHkgY29tcGxldGVseSBoaWRkZW4gaXRlbSBpbiBvcmRlciB0byBjb3JyZWN0bHkgY2FsY3VsYXRlIGl0J3Mgc2l6ZS5cbiAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaXRlbS5pbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgaXRlbS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICAgICAgaXRlbS5sYXN0ID0gaW5kZXggPT09IGFsbEl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBpdGVtLmdsb2JhbEluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB2aXNpYmxlQ29udGFpbmVySXRlbXNbaW5kZXhdLmNvbnRhaW5lclJlZi5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcyQubmV4dCgpO1xuXG4gICAgICAgIGFsbEl0ZW1zID0gdGhpcy5jb25maWcuZGlyZWN0aW9uID09PSAncmlnaHQnID8gYWxsSXRlbXMgOiBhbGxJdGVtcy5yZXZlcnNlKCk7XG4gICAgICAgIHZpc2libGVDb250YWluZXJJdGVtcyA9XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5kaXJlY3Rpb24gPT09ICdyaWdodCcgPyB2aXNpYmxlQ29udGFpbmVySXRlbXMgOiB2aXNpYmxlQ29udGFpbmVySXRlbXMucmV2ZXJzZSgpO1xuXG4gICAgICAgIHRoaXMucmVzdWx0LnNob3dNb3JlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2VtaXRSZXN1bHQoKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBjb25zdCBpdGVtc0NvbnRhaW5lcldpZHRoID0gYWxsSXRlbXMucmVkdWNlKFxuICAgICAgICAgICAgKHRvdGFsLCBpdGVtKSA9PiB0b3RhbCArICh0aGlzLl9nZXRFbGVtZW50V2lkdGgoaXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHx8IDApLFxuICAgICAgICAgICAgMFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoID49IGl0ZW1zQ29udGFpbmVyV2lkdGggJiZcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnZpc2libGVJdGVtcy5sZW5ndGggPD0gdGhpcy5jb25maWcubWF4VmlzaWJsZUl0ZW1zICYmXG4gICAgICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcy5sZW5ndGggPT09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBNYWtlIGFsbCBpdGVtcyBmdWxseSB2aXNpYmxlLlxuICAgICAgICAgICAgYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdC5zaG93TW9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZXN1bHQuaGlkZGVuSXRlbXMgPSB0aGlzLl9oaWRkZW5JdGVtcztcbiAgICAgICAgICAgIHRoaXMuX2VtaXRSZXN1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvSXRlbVJlc2l6ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzdWx0LnNob3dNb3JlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZW1pdFJlc3VsdCgpO1xuICAgICAgICBsZXQgZml0dGluZ0VsbUNvdW50ID0gMDtcbiAgICAgICAgbGV0IGZpdHRpbmdFbG1zV2lkdGggPSAwO1xuICAgICAgICBsZXQgc2hvdWxkSGlkZUl0ZW1zID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc2hvd01vcmVDb250YWluZXJXaWR0aCA9IE1hdGguY2VpbCh0aGlzLl9nZXRFbGVtZW50V2lkdGgodGhpcy5jb25maWcuc2hvd01vcmVDb250YWluZXIpKTtcbiAgICAgICAgbGV0IGxheW91dFdpZHRoID0gY29udGFpbmVyV2lkdGggLSBzaG93TW9yZUNvbnRhaW5lcldpZHRoO1xuXG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGFsbCBmb3JjZWQgdmlzaWJsZSBpdGVtc1xuICAgICAgICBjb25zdCBmb3JjZWRJdGVtc0luZGV4ZXMgPSB0aGlzLl9nZXRGb3JjZWRJdGVtc0luZGV4ZXMoKTtcblxuICAgICAgICBmb3JjZWRJdGVtc0luZGV4ZXMuZm9yRWFjaCgoaXRlbUluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbmZpZy52aXNpYmxlSXRlbXNbaXRlbUluZGV4XTtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFNpemUgPSB0aGlzLl9nZXRFbGVtZW50V2lkdGgoY29udGFpbmVyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGxheW91dFdpZHRoIC09IGVsZW1lbnRTaXplO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBtYXhWaXNpYmxlSXRlbXMgPVxuICAgICAgICAgICAgdGhpcy5jb25maWcubWF4VmlzaWJsZUl0ZW1zIC1cbiAgICAgICAgICAgIGZvcmNlZEl0ZW1zSW5kZXhlcy5maWx0ZXIoKGluZGV4KSA9PiBpbmRleCA+PSB0aGlzLmNvbmZpZy5tYXhWaXNpYmxlSXRlbXMpLmxlbmd0aDtcblxuICAgICAgICBpZiAobGF5b3V0V2lkdGggPCAwICYmIGZvcmNlZEl0ZW1zSW5kZXhlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1RoZXJlIGlzIG5vIGVub3VnaCBzcGFjZSB0byBmaXQgYWxsIGZvcmNlZCB2aXNpYmxlIGl0ZW1zIGludG8gdGhlIGNvbnRhaW5lci4gUGxlYXNlIGFkanVzdCB0aGVpciB2aXNpYmlsaXR5IGFjY29yZGluZ2x5LidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzJC5uZXh0KCk7XG5cbiAgICAgICAgdmlzaWJsZUNvbnRhaW5lckl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtUmVmID0gYWxsSXRlbXNbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKHNob3VsZEhpZGVJdGVtcyAmJiAhaXRlbVJlZi5vdmVyZmxvd0l0ZW0uZm9yY2VWaXNpYmlsaXR5KSB7XG4gICAgICAgICAgICAgICAgaXRlbS5jb250YWluZXJSZWYuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpdGVtLnNvZnRIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpdGVtUmVmLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50U2l6ZSA9IHRoaXMuX2dldEVsZW1lbnRXaWR0aChpdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBjb21iaW5lZFdpZHRoID0gZml0dGluZ0VsbXNXaWR0aCArIGVsZW1lbnRTaXplO1xuXG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb24gPVxuICAgICAgICAgICAgICAgIChjb21iaW5lZFdpZHRoIDw9IGxheW91dFdpZHRoIHx8XG4gICAgICAgICAgICAgICAgICAgIChpdGVtID09PSB0aGlzLmNvbmZpZy52aXNpYmxlSXRlbXNbdGhpcy5jb25maWcudmlzaWJsZUl0ZW1zLmxlbmd0aCAtIDFdICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lZFdpZHRoIDw9IGxheW91dFdpZHRoICsgc2hvd01vcmVDb250YWluZXJXaWR0aCkpICYmXG4gICAgICAgICAgICAgICAgZml0dGluZ0VsbUNvdW50IDwgbWF4VmlzaWJsZUl0ZW1zO1xuXG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgZml0dGluZ0VsbXNXaWR0aCArPSBlbGVtZW50U2l6ZTtcbiAgICAgICAgICAgICAgICBmaXR0aW5nRWxtQ291bnQrKztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWl0ZW1SZWYub3ZlcmZsb3dJdGVtLmZvcmNlVmlzaWJpbGl0eSkge1xuICAgICAgICAgICAgICAgIHNob3VsZEhpZGVJdGVtcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgaXRlbS5zb2Z0SGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXRlbS5jb250YWluZXJSZWYuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpdGVtUmVmLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJldmVyc2Ugb3JpZ2luYWwgb3JkZXIgYmFjay5cbiAgICAgICAgYWxsSXRlbXMgPSB0aGlzLmNvbmZpZy5kaXJlY3Rpb24gPT09ICdyaWdodCcgPyBhbGxJdGVtcyA6IGFsbEl0ZW1zLnJldmVyc2UoKTtcblxuICAgICAgICBhbGxJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLnNvZnRIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IGhpZGRlbkl0ZW1zID0gYWxsSXRlbXMuZmlsdGVyKChpKSA9PiBpLmhpZGRlbik7XG4gICAgICAgIGhpZGRlbkl0ZW1zID0gdGhpcy5jb25maWcucmV2ZXJzZUhpZGRlbkl0ZW1zID8gaGlkZGVuSXRlbXMucmV2ZXJzZSgpIDogaGlkZGVuSXRlbXM7XG4gICAgICAgIGNvbnN0IHZpc2libGVJdGVtcyA9IGFsbEl0ZW1zLmZpbHRlcigoaSkgPT4gIWkuaGlkZGVuKTtcblxuICAgICAgICB2aXNpYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIGl0ZW0uZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgICAgIGl0ZW0ubGFzdCA9IGluZGV4ID09PSB2aXNpYmxlSXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5faGlkZGVuSXRlbXMgPSBoaWRkZW5JdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLmZpcnN0ID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICBpdGVtLmxhc3QgPSBpbmRleCA9PT0gaGlkZGVuSXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGl0ZW0uaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlc3VsdC5zaG93TW9yZSA9IHRoaXMuX2hpZGRlbkl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgICAgIHRoaXMucmVzdWx0LmhpZGRlbkl0ZW1zID0gdGhpcy5faGlkZGVuSXRlbXM7XG4gICAgICAgIHRoaXMuX2VtaXRSZXN1bHQoKTtcbiAgICAgICAgdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnJztcblxuICAgICAgICB0aGlzLl9saXN0ZW5Ub0l0ZW1SZXNpemUgPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0Rm9yY2VkSXRlbXNJbmRleGVzKCk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FsbEl0ZW1zXG4gICAgICAgICAgICAubWFwKChpdGVtLCBpbmRleCkgPT4gKGl0ZW0ub3ZlcmZsb3dJdGVtLmZvcmNlVmlzaWJpbGl0eSA/IGluZGV4IDogLTEpKVxuICAgICAgICAgICAgLmZpbHRlcigoaSkgPT4gaSA+IC0xKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmV0dXJucyBjb21iaW5lZCB3aWR0aCBvZiB0aGUgZWxlbWVudCBpbmNsdWRpbmcgbWFyZ2lucy5cbiAgICAgKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHRvIGNhbGN1bGF0ZSB3aWR0aCBvZi5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRFbGVtZW50V2lkdGgoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBlbGVtZW50U3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBlbGVtZW50V2lkdGggPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBjb25zdCBlbGVtZW50U2l6ZSA9IGVsZW1lbnRXaWR0aCArIHBhcnNlRmxvYXQoZWxlbWVudFN0eWxlLm1hcmdpbkxlZnQpICsgcGFyc2VGbG9hdChlbGVtZW50U3R5bGUubWFyZ2luUmlnaHQpO1xuXG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoZWxlbWVudFNpemUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9vdmVyZmxvdy1sYXlvdXQvb3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQWMsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBa0IzRyxNQUFNLE9BQU8sNkJBQTZCO0lBQTFDO1FBQ0ksa0NBQWtDO1FBQ2xDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsc0JBQXNCO1FBQ3RCLFVBQUssR0FBc0IsRUFBRSxDQUFDO1FBRTlCLDRCQUE0QjtRQUM1QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFFcEMsNkJBQTZCO1FBQzdCLGlCQUFZLEdBQXNCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0NBQUE7QUFHRCxNQUFNLE9BQU8scUJBQXFCO0lBNkI5Qjs7T0FFRztJQUNILElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7SUFDZCxZQUFvQixNQUErQjtRQUEvQixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQXRDbkQ7O1dBRUc7UUFDSCxXQUFNLEdBQUcsSUFBSSw2QkFBNkIsRUFBRSxDQUFDO1FBRTdDLGNBQWM7UUFDTix3QkFBbUIsR0FBRyxJQUFJLENB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LFdBQVc7UUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGNBQWM7SUFDTixvQkFBb0IsQ0FBQyxHQUFHLFFBQXVCO1FBQ25ELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDbEIsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO2FBQ3BCLElBQUksQ0FDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUN0QyxvQkFBb0IsRUFBRSxFQUN0QixZQUFZLENBQUMsRUFBRSxDQUFDLENBQ25CO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ1QsQ0FDSixDQUFDO0lBQ04sQ0FBQzs7a0hBbFFRLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJlc2l6ZU9ic2VydmFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIE9ic2VydmFibGUsIHNraXAsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmZsb3dMYXlvdXRJdGVtQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL292ZXJmbG93LWxheW91dC1pdGVtLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmZsb3dMYXlvdXRGb2N1c2FibGVJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL292ZXJmbG93LWZvY3VzYWJsZS1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPdmVyZmxvd0l0ZW1SZWYgfSBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcmZsb3ctaXRlbS1yZWYuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBPdmVyZmxvd0xheW91dENvbmZpZyB7XG4gICAgaXRlbXM6IE92ZXJmbG93SXRlbVJlZltdO1xuICAgIGZvY3VzYWJsZUl0ZW1zOiBPdmVyZmxvd0xheW91dEZvY3VzYWJsZUl0ZW1bXTtcbiAgICB2aXNpYmxlSXRlbXM6IE92ZXJmbG93TGF5b3V0SXRlbUNvbnRhaW5lckRpcmVjdGl2ZVtdO1xuICAgIGl0ZW1zV3JhcHBlcjogSFRNTEVsZW1lbnQ7XG4gICAgc2hvd01vcmVDb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgIGxheW91dENvbnRhaW5lckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIG1heFZpc2libGVJdGVtczogbnVtYmVyO1xuICAgIGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JztcbiAgICBlbmFibGVLZXlib2FyZE5hdmlnYXRpb246IGJvb2xlYW47XG4gICAgcmV2ZXJzZUhpZGRlbkl0ZW1zOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgT3ZlcmZsb3dMYXlvdXRMaXN0ZW5pbmdSZXN1bHQge1xuICAgIC8qKiBXaGV0aGVyIHRvIHNob3cgbW9yZSBidXR0b24gKi9cbiAgICBzaG93TW9yZSA9IGZhbHNlO1xuXG4gICAgLyoqIE92ZXJmbG93IGl0ZW0gcyAqL1xuICAgIGl0ZW1zOiBPdmVyZmxvd0l0ZW1SZWZbXSA9IFtdO1xuXG4gICAgLyoqIEhpZGRlbiBvdmVyZmxvdyBpdGVtcyAqL1xuICAgIGhpZGRlbkl0ZW1zOiBPdmVyZmxvd0l0ZW1SZWZbXSA9IFtdO1xuXG4gICAgLyoqIFZpc2libGUgb3ZlcmZsb3cgaXRlbXMgKi9cbiAgICB2aXNpYmxlSXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd0xheW91dFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIE92ZXJmbG93IExheW91dCBjb25maWcuXG4gICAgICovXG4gICAgY29uZmlnOiBPdmVyZmxvd0xheW91dENvbmZpZztcblxuICAgIC8qKlxuICAgICAqIE92ZXJmbG93IExheW91dCBjYWxjdWxhdGlvbiByZXN1bHQuXG4gICAgICovXG4gICAgcmVzdWx0ID0gbmV3IE92ZXJmbG93TGF5b3V0TGlzdGVuaW5nUmVzdWx0KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvSXRlbVJlc2l6ZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWxsSXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hpZGRlbkl0ZW1zOiBPdmVyZmxvd0l0ZW1SZWZbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXRlY3RDaGFuZ2VzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc3VsdCQgPSBuZXcgU3ViamVjdDxPdmVyZmxvd0xheW91dExpc3RlbmluZ1Jlc3VsdD4oKTtcblxuICAgIC8qKlxuICAgICAqIE9ic2VydmFibGUgd2hpY2ggZW1pdHMgd2hlbiBjaGFuZ2VzIGRldGVjdGlvbiBpcyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBnZXQgZGV0ZWN0Q2hhbmdlcygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RldGVjdENoYW5nZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ic2VydmFibGUgd2hpY2ggZW1pdHMgd2hlbiBuZXcgY2FsY3VsYXRpb24gcmVzdWx0IGlzIGF2YWlsYWJsZS5cbiAgICAgKi9cbiAgICBnZXQgb25SZXN1bHQoKTogT2JzZXJ2YWJsZTxPdmVyZmxvd0xheW91dExpc3RlbmluZ1Jlc3VsdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWx0JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhcnRMaXN0ZW5pbmcoY29uZmlnOiBPdmVyZmxvd0xheW91dENvbmZpZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICAgICAgICB0aGlzLmZpdFZpc2libGVJdGVtcygpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub1NpemVDaGFuZ2VzKHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY29uZmlnLml0ZW1zV3JhcHBlcik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRDb25maWcoY29uZmlnOiBPdmVyZmxvd0xheW91dENvbmZpZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIGF2YWlsYWJsZSBzcGFjZSBmb3IgaXRlbXMgYW5kIGhpZGVzIGl0ZW1zIHRoYXQgYXJlIG5vdCBmaXR0aW5nIGludG8gdGhlIGNvbnRhaW5lci5cbiAgICAgKi9cbiAgICBmaXRWaXNpYmxlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvSXRlbVJlc2l6ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9hbGxJdGVtcyA9IHRoaXMuY29uZmlnLml0ZW1zO1xuXG4gICAgICAgIGxldCBhbGxJdGVtcyA9IFsuLi50aGlzLmNvbmZpZy5pdGVtc107XG4gICAgICAgIGxldCB2aXNpYmxlQ29udGFpbmVySXRlbXMgPSBbLi4udGhpcy5jb25maWcudmlzaWJsZUl0ZW1zXTtcblxuICAgICAgICB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke3RoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0fXB4YDtcblxuICAgICAgICBhbGxJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgLy8gU29mdGx5IGhpZGUgcHJldmlvdXNseSBjb21wbGV0ZWx5IGhpZGRlbiBpdGVtIGluIG9yZGVyIHRvIGNvcnJlY3RseSBjYWxjdWxhdGUgaXQncyBzaXplLlxuICAgICAgICAgICAgaXRlbS5zb2Z0SGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICBpdGVtLmZpcnN0ID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICBpdGVtLmxhc3QgPSBpbmRleCA9PT0gYWxsSXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGl0ZW0uZ2xvYmFsSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIHZpc2libGVDb250YWluZXJJdGVtc1tpbmRleF0uY29udGFpbmVyUmVmLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzJC5uZXh0KCk7XG5cbiAgICAgICAgYWxsSXRlbXMgPSB0aGlzLmNvbmZpZy5kaXJlY3Rpb24gPT09ICdyaWdodCcgPyBhbGxJdGVtcyA6IGFsbEl0ZW1zLnJldmVyc2UoKTtcbiAgICAgICAgdmlzaWJsZUNvbnRhaW5lckl0ZW1zID1cbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/IHZpc2libGVDb250YWluZXJJdGVtcyA6IHZpc2libGVDb250YWluZXJJdGVtcy5yZXZlcnNlKCk7XG5cbiAgICAgICAgdGhpcy5yZXN1bHQuc2hvd01vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZW1pdFJlc3VsdCgpO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIGNvbnN0IGl0ZW1zQ29udGFpbmVyV2lkdGggPSBhbGxJdGVtcy5yZWR1Y2UoXG4gICAgICAgICAgICAodG90YWwsIGl0ZW0pID0+IHRvdGFsICsgKHRoaXMuX2dldEVsZW1lbnRXaWR0aChpdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkgfHwgMCksXG4gICAgICAgICAgICAwXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29udGFpbmVyV2lkdGggPj0gaXRlbXNDb250YWluZXJXaWR0aCAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWcudmlzaWJsZUl0ZW1zLmxlbmd0aCA8PSB0aGlzLmNvbmZpZy5tYXhWaXNpYmxlSXRlbXMgJiZcbiAgICAgICAgICAgIHRoaXMuX2hpZGRlbkl0ZW1zLmxlbmd0aCA9PT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIE1ha2UgYWxsIGl0ZW1zIGZ1bGx5IHZpc2libGUuXG4gICAgICAgICAgICBhbGxJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5zb2Z0SGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucmVzdWx0LnNob3dNb3JlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdC5oaWRkZW5JdGVtcyA9IHRoaXMuX2hpZGRlbkl0ZW1zO1xuICAgICAgICAgICAgdGhpcy5fZW1pdFJlc3VsdCgpO1xuICAgICAgICAgICAgdGhpcy5fbGlzdGVuVG9JdGVtUmVzaXplID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJyc7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXN1bHQuc2hvd01vcmUgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0UmVzdWx0KCk7XG4gICAgICAgIGxldCBmaXR0aW5nRWxtQ291bnQgPSAwO1xuICAgICAgICBsZXQgZml0dGluZ0VsbXNXaWR0aCA9IDA7XG4gICAgICAgIGxldCBzaG91bGRIaWRlSXRlbXMgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBzaG93TW9yZUNvbnRhaW5lcldpZHRoID0gTWF0aC5jZWlsKHRoaXMuX2dldEVsZW1lbnRXaWR0aCh0aGlzLmNvbmZpZy5zaG93TW9yZUNvbnRhaW5lcikpO1xuICAgICAgICBsZXQgbGF5b3V0V2lkdGggPSBjb250YWluZXJXaWR0aCAtIHNob3dNb3JlQ29udGFpbmVyV2lkdGg7XG5cbiAgICAgICAgLy8gVHJ5IHRvIGZpbmQgYWxsIGZvcmNlZCB2aXNpYmxlIGl0ZW1zXG4gICAgICAgIGNvbnN0IGZvcmNlZEl0ZW1zSW5kZXhlcyA9IHRoaXMuX2dldEZvcmNlZEl0ZW1zSW5kZXhlcygpO1xuXG4gICAgICAgIGZvcmNlZEl0ZW1zSW5kZXhlcy5mb3JFYWNoKChpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29uZmlnLnZpc2libGVJdGVtc1tpdGVtSW5kZXhdO1xuICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50U2l6ZSA9IHRoaXMuX2dldEVsZW1lbnRXaWR0aChjb250YWluZXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgbGF5b3V0V2lkdGggLT0gZWxlbWVudFNpemU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IG1heFZpc2libGVJdGVtcyA9XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5tYXhWaXNpYmxlSXRlbXMgLVxuICAgICAgICAgICAgZm9yY2VkSXRlbXNJbmRleGVzLmZpbHRlcigoaW5kZXgpID0+IGluZGV4ID49IHRoaXMuY29uZmlnLm1heFZpc2libGVJdGVtcykubGVuZ3RoO1xuXG4gICAgICAgIGlmIChsYXlvdXRXaWR0aCA8IDAgJiYgZm9yY2VkSXRlbXNJbmRleGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAnVGhlcmUgaXMgbm8gZW5vdWdoIHNwYWNlIHRvIGZpdCBhbGwgZm9yY2VkIHZpc2libGUgaXRlbXMgaW50byB0aGUgY29udGFpbmVyLiBQbGVhc2UgYWRqdXN0IHRoZWlyIHZpc2liaWxpdHkgYWNjb3JkaW5nbHkuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMkLm5leHQoKTtcblxuICAgICAgICB2aXNpYmxlQ29udGFpbmVySXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1SZWYgPSBhbGxJdGVtc1tpbmRleF07XG4gICAgICAgICAgICAvLyBJZiBpdGVtIGlzIGZvcmNlZCB0byBiZSB2aXNpYmxlLCBqdXN0IGRpc3BsYXkgdGhlIGl0ZW0gc2luY2UgaXQncyBzaXplIGNhbGN1bGF0aW9uIHdhcyBhbHJlYWR5IHRha2VuIGNhcmUgb2YgaW4gcHJldmlvdXMgaXRlcmF0aW9uLlxuICAgICAgICAgICAgaWYgKGl0ZW1SZWYub3ZlcmZsb3dJdGVtLmZvcmNlVmlzaWJpbGl0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzaG91bGRIaWRlSXRlbXMgJiYgIWl0ZW1SZWYub3ZlcmZsb3dJdGVtLmZvcmNlVmlzaWJpbGl0eSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uY29udGFpbmVyUmVmLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgaXRlbS5zb2Z0SGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXRlbVJlZi5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFNpemUgPSB0aGlzLl9nZXRFbGVtZW50V2lkdGgoaXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgY29tYmluZWRXaWR0aCA9IGZpdHRpbmdFbG1zV2lkdGggKyBlbGVtZW50U2l6ZTtcblxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uID1cbiAgICAgICAgICAgICAgICAoY29tYmluZWRXaWR0aCA8PSBsYXlvdXRXaWR0aCB8fFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSA9PT0gdGhpcy5jb25maWcudmlzaWJsZUl0ZW1zW3RoaXMuY29uZmlnLnZpc2libGVJdGVtcy5sZW5ndGggLSAxXSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZWRXaWR0aCA8PSBsYXlvdXRXaWR0aCArIHNob3dNb3JlQ29udGFpbmVyV2lkdGgpKSAmJlxuICAgICAgICAgICAgICAgIGZpdHRpbmdFbG1Db3VudCA8IG1heFZpc2libGVJdGVtcztcblxuICAgICAgICAgICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgICAgICAgICAgIGZpdHRpbmdFbG1zV2lkdGggKz0gZWxlbWVudFNpemU7XG4gICAgICAgICAgICAgICAgZml0dGluZ0VsbUNvdW50Kys7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpdGVtUmVmLm92ZXJmbG93SXRlbS5mb3JjZVZpc2liaWxpdHkpIHtcbiAgICAgICAgICAgICAgICBzaG91bGRIaWRlSXRlbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGl0ZW0uY29udGFpbmVyUmVmLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgaXRlbVJlZi5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZXZlcnNlIG9yaWdpbmFsIG9yZGVyIGJhY2suXG4gICAgICAgIGFsbEl0ZW1zID0gdGhpcy5jb25maWcuZGlyZWN0aW9uID09PSAncmlnaHQnID8gYWxsSXRlbXMgOiBhbGxJdGVtcy5yZXZlcnNlKCk7XG5cbiAgICAgICAgYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5zb2Z0SGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCBoaWRkZW5JdGVtcyA9IGFsbEl0ZW1zLmZpbHRlcigoaSkgPT4gaS5oaWRkZW4pO1xuICAgICAgICBoaWRkZW5JdGVtcyA9IHRoaXMuY29uZmlnLnJldmVyc2VIaWRkZW5JdGVtcyA/IGhpZGRlbkl0ZW1zLnJldmVyc2UoKSA6IGhpZGRlbkl0ZW1zO1xuICAgICAgICBjb25zdCB2aXNpYmxlSXRlbXMgPSBhbGxJdGVtcy5maWx0ZXIoKGkpID0+ICFpLmhpZGRlbik7XG5cbiAgICAgICAgdmlzaWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICBpdGVtLmZpcnN0ID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICBpdGVtLmxhc3QgPSBpbmRleCA9PT0gdmlzaWJsZUl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2hpZGRlbkl0ZW1zID0gaGlkZGVuSXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaXRlbS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICAgICAgaXRlbS5sYXN0ID0gaW5kZXggPT09IGhpZGRlbkl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBpdGVtLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZXN1bHQuc2hvd01vcmUgPSB0aGlzLl9oaWRkZW5JdGVtcy5sZW5ndGggPiAwO1xuICAgICAgICB0aGlzLnJlc3VsdC5oaWRkZW5JdGVtcyA9IHRoaXMuX2hpZGRlbkl0ZW1zO1xuICAgICAgICB0aGlzLl9lbWl0UmVzdWx0KCk7XG4gICAgICAgIHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJyc7XG5cbiAgICAgICAgdGhpcy5fbGlzdGVuVG9JdGVtUmVzaXplID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEZvcmNlZEl0ZW1zSW5kZXhlcygpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxJdGVtc1xuICAgICAgICAgICAgLm1hcCgoaXRlbSwgaW5kZXgpID0+IChpdGVtLm92ZXJmbG93SXRlbS5mb3JjZVZpc2liaWxpdHkgPyBpbmRleCA6IC0xKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGkpID0+IGkgPiAtMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFJldHVybnMgY29tYmluZWQgd2lkdGggb2YgdGhlIGVsZW1lbnQgaW5jbHVkaW5nIG1hcmdpbnMuXG4gICAgICogQHBhcmFtIGVsZW1lbnQgRWxlbWVudCB0byBjYWxjdWxhdGUgd2lkdGggb2YuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RWxlbWVudFdpZHRoKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgZWxlbWVudFdpZHRoID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgY29uc3QgZWxlbWVudFNpemUgPSBlbGVtZW50V2lkdGggKyBwYXJzZUZsb2F0KGVsZW1lbnRTdHlsZS5tYXJnaW5MZWZ0KSArIHBhcnNlRmxvYXQoZWxlbWVudFN0eWxlLm1hcmdpblJpZ2h0KTtcblxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGVsZW1lbnRTaXplKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VtaXRSZXN1bHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc3VsdCQubmV4dCh0aGlzLnJlc3VsdCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub1NpemVDaGFuZ2VzKC4uLmVsZW1lbnRzOiBIVE1MRWxlbWVudFtdKTogdm9pZCB7XG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgICAgIHJlc2l6ZU9ic2VydmFibGUoZWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBza2lwKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuX2xpc3RlblRvSXRlbVJlc2l6ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDMwKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maXRWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|