@loxia/mst-viewer 5.8.1 → 5.8.2-202308171006
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/generated.version.mjs +2 -2
- package/esm2020/lib/model/ritdeel.mjs +3 -2
- package/esm2020/lib/mst-viewer.module.mjs +6 -7
- package/esm2020/lib/services/beweging-utils.service.mjs +1 -1
- package/esm2020/lib/state/effect/laad-signaleringsbeelden.effect.mjs +7 -9
- package/esm2020/lib/state/effect/svg-view.effect.mjs +2 -2
- package/fesm2015/loxia-mst-viewer.mjs +11 -14
- package/fesm2015/loxia-mst-viewer.mjs.map +1 -1
- package/fesm2020/loxia-mst-viewer.mjs +11 -14
- package/fesm2020/loxia-mst-viewer.mjs.map +1 -1
- package/generated.version.d.ts +1 -1
- package/lib/mst-viewer.module.d.ts +4 -4
- package/lib/services/beweging-utils.service.d.ts +3 -3
- package/lib/state/effect/laad-signaleringsbeelden.effect.d.ts +1 -3
- package/lib/state/effect/svg-view.effect.d.ts +1 -1
- package/package.json +3 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '5.8.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const version = '5.8.2-SNAPSHOT';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVkLnZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9nZW5lcmF0ZWQudmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICc1LjguMi1TTkFQU0hPVCc7XG5cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JsJavaUtil } from '@loxia/rijwegen';
|
|
2
|
+
import { BewegingUtils } from '../services/beweging-utils.service';
|
|
2
3
|
import { RijwegplanRijwegDwangCombinatie } from './rijwegplan-rijweg-dwang-combinatie';
|
|
3
4
|
export var RitdeelZichtbaarheid;
|
|
4
5
|
(function (RitdeelZichtbaarheid) {
|
|
@@ -143,7 +144,7 @@ export class Ritdeel {
|
|
|
143
144
|
return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER;
|
|
144
145
|
}
|
|
145
146
|
isNieuw() {
|
|
146
|
-
return !this.beweging;
|
|
147
|
+
return !this.beweging || this.beweging.wijzigStatus === BewegingUtils.TOEGEVOEGD;
|
|
147
148
|
}
|
|
148
149
|
getPplg() {
|
|
149
150
|
return this.rijwegplanRijwegDwangCombi.rijwegplan.getPPLG();
|
|
@@ -201,4 +202,4 @@ export class Ritdeel {
|
|
|
201
202
|
this.topoElementen = topoElementen;
|
|
202
203
|
}
|
|
203
204
|
}
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml0ZGVlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9tb2RlbC9yaXRkZWVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RixNQUFNLENBQU4sSUFBWSxvQkFJWDtBQUpELFdBQVksb0JBQW9CO0lBQzVCLHlFQUFhLENBQUE7SUFDYiwyR0FBOEIsQ0FBQTtJQUM5Qix1R0FBNEIsQ0FBQTtBQUNoQyxDQUFDLEVBSlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUkvQjtBQUVELE1BQU0sT0FBTyxPQUFPO0lBS2hCLFlBQW9CLDBCQUEyRCxFQUM1RCxNQUFlLEVBQ04sUUFBa0IsRUFDM0IsbUNBQW9FLEVBQ3BFLFlBQW9CLEVBQ25CLGFBQXVDO1FBTHZDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBaUM7UUFDNUQsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNOLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDM0Isd0NBQW1DLEdBQW5DLG1DQUFtQyxDQUFpQztRQUNwRSxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFUbkQsdUJBQWtCLEdBQThCLEVBQUUsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQztRQUMvQyw2QkFBd0IsR0FBRyxLQUFLLENBQUM7SUFRekMsQ0FBQztJQUVELHFCQUFxQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFdBQXlCO1FBQ2xDLE1BQU0sZ0NBQWdDLEdBQ2xDLElBQUksK0JBQStCLENBQy9CLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLEVBQUUsSUFB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QUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1lBQ2pILGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZG9tZWluLCBKc0phdmFVdGlsLCBzYmJsYWQgfSBmcm9tICdAbG94aWEvcmlqd2VnZW4nO1xuaW1wb3J0IHsgQWN0aWUsIEJld2VnaW5nIH0gZnJvbSAnLi4vb3B0aW1vJztcbmltcG9ydCB7IFJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpbmF0aWUgfSBmcm9tICcuL3JpandlZ3BsYW4tcmlqd2VnLWR3YW5nLWNvbWJpbmF0aWUnO1xuXG5leHBvcnQgZW51bSBSaXRkZWVsWmljaHRiYWFyaGVpZCB7XG4gICAgWklDSFRCQUFSID0gMSxcbiAgICBPTlpJQ0hUQkFBUl9ET09SX0dFQlJVSUtFUiA9IDIsXG4gICAgT05aSUNIVEJBQVJfRE9PUl9TWVNURUVNID0gM1xufVxuXG5leHBvcnQgY2xhc3MgUml0ZGVlbCB7XG4gICAgcHJpdmF0ZSBhbHRlcm5hdGlldmVSb3V0ZXM6IHNiYmxhZC5BbHRlcm5hdGl2ZVJvdXRlW10gPSBbXTtcbiAgICBwcml2YXRlIHppY2h0YmFhcmhlaWQgPSBSaXRkZWVsWmljaHRiYWFyaGVpZC5aSUNIVEJBQVI7XG4gICAgcHJpdmF0ZSB6aWNodGJhYXJCdWl0ZW5QYWdpbmF0aWUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmk6IFJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpbmF0aWUsXG4gICAgICAgICAgICAgICAgcHVibGljIGFjdGllczogQWN0aWVbXSxcbiAgICAgICAgICAgICAgICBwdWJsaWMgcmVhZG9ubHkgYmV3ZWdpbmc6IEJld2VnaW5nLFxuICAgICAgICAgICAgICAgIHB1YmxpYyB2cmlqZWJhYW5SaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaTogUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmluYXRpZSxcbiAgICAgICAgICAgICAgICBwdWJsaWMgdmVydm9sZ1Nwb29yOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB0b3BvRWxlbWVudGVuOiBzYmJsYWQuVG9wb2xvZ3lFbGVtZW50W10pIHtcbiAgICB9XG5cbiAgICBnZXRBbHRlcm5hdGlldmVSb3V0ZXMoKTogc2JibGFkLkFsdGVybmF0aXZlUm91dGVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsdGVybmF0aWV2ZVJvdXRlcztcbiAgICB9XG5cbiAgICBjb3B5TWV0RHdhbmcobmlldXdlRHdhbmc6IGRvbWVpbi5Ed2FuZyk6IFJpdGRlZWwge1xuICAgICAgICBjb25zdCBuaWV1d2VSaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaSA9XG4gICAgICAgICAgICBuZXcgUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmluYXRpZShcbiAgICAgICAgICAgICAgICB0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLnJpandlZ3BsYW4sIHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkucmlqd2VnLCBuaWV1d2VEd2FuZyk7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgUml0ZGVlbChuaWV1d2VSaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaSwgW10sIHRoaXMuYmV3ZWdpbmcsXG4gICAgICAgICAgICB0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLCB0aGlzLnZlcnZvbGdTcG9vciwgdGhpcy50b3BvRWxlbWVudGVuKTtcbiAgICAgICAgY29weS5hbHRlcm5hdGlldmVSb3V0ZXMgPSB0aGlzLmFsdGVybmF0aWV2ZVJvdXRlcztcbiAgICAgICAgY29weS56aWNodGJhYXJoZWlkID0gdGhpcy56aWNodGJhYXJoZWlkO1xuICAgICAgICBjb3B5LnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZSA9IHRoaXMuemljaHRiYWFyQnVpdGVuUGFnaW5hdGllO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG5cbiAgICBjb3B5TWV0QWx0ZXJuYXRpZXZlUm91dGVzKGFsdGVybmF0aWV2ZVJvdXRlczogc2JibGFkLkFsdGVybmF0aXZlUm91dGVbXSk6IFJpdGRlZWwge1xuICAgICAgICBjb25zdCBjb3B5ID0gbmV3IFJpdGRlZWwodGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaSwgdGhpcy5hY3RpZXMsIHRoaXMuYmV3ZWdpbmcsXG4gICAgICAgICAgICB0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLCB0aGlzLnZlcnZvbGdTcG9vciwgdGhpcy50b3BvRWxlbWVudGVuKTtcbiAgICAgICAgY29weS5hbHRlcm5hdGlldmVSb3V0ZXMgPSBhbHRlcm5hdGlldmVSb3V0ZXM7XG4gICAgICAgIGNvcHkuemljaHRiYWFyaGVpZCA9IHRoaXMuemljaHRiYWFyaGVpZDtcbiAgICAgICAgY29weS56aWNodGJhYXJCdWl0ZW5QYWdpbmF0aWUgPSB0aGlzLnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZTtcblxuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG5cbiAgICBjb3B5TWV0QWx0ZXJuYXRpZXZlUm91dGVzWm9uZGVyQWN0aWVzKGFsdGVybmF0aWV2ZVJvdXRlczogc2JibGFkLkFsdGVybmF0aXZlUm91dGVbXSk6IFJpdGRlZWwge1xuICAgICAgICBjb25zdCBjb3B5ID0gdGhpcy5jb3B5TWV0QWx0ZXJuYXRpZXZlUm91dGVzKGFsdGVybmF0aWV2ZVJvdXRlcyk7XG4gICAgICAgIGlmIChjb3B5LmJld2VnaW5nKSB7XG4gICAgICAgICAgICBjb3B5LmFjdGllcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIGNvcHlNZXRaaWNodGJhYXJoZWlkKHppY2h0YmFhcmhlaWQ6IFJpdGRlZWxaaWNodGJhYXJoZWlkKTogUml0ZGVlbCB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgUml0ZGVlbCh0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLCB0aGlzLmFjdGllcywgdGhpcy5iZXdlZ2luZyxcbiAgICAgICAgICAgIHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmksIHRoaXMudmVydm9sZ1Nwb29yLCB0aGlzLnRvcG9FbGVtZW50ZW4pO1xuICAgICAgICBjb3B5LmFsdGVybmF0aWV2ZVJvdXRlcyA9IHRoaXMuYWx0ZXJuYXRpZXZlUm91dGVzO1xuICAgICAgICBjb3B5LnppY2h0YmFhcmhlaWQgPSB6aWNodGJhYXJoZWlkO1xuICAgICAgICBjb3B5LnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZSA9IHRoaXMuemljaHRiYWFyQnVpdGVuUGFnaW5hdGllO1xuXG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIGNvcHlNZXRaaWNodGJhYXJoZWlkRW5QYWdpbmF0aWUoemljaHRiYWFyaGVpZDogUml0ZGVlbFppY2h0YmFhcmhlaWQsIHppY2h0YmFhckJ1aXRlblBhZ2luYXRpZTogYm9vbGVhbik6IFJpdGRlZWwge1xuICAgICAgICBjb25zdCBjb3B5ID0gdGhpcy5jb3B5TWV0WmljaHRiYWFyaGVpZCh6aWNodGJhYXJoZWlkKTtcbiAgICAgICAgY29weS56aWNodGJhYXJCdWl0ZW5QYWdpbmF0aWUgPSB6aWNodGJhYXJCdWl0ZW5QYWdpbmF0aWU7XG5cbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuXG4gICAgY29weU1ldFppY2h0YmFhcmhlaWRCdWl0ZW5QYWdpbmF0aWUoemljaHRiYWFyQnVpdGVuUGFnaW5hdGllOiBib29sZWFuKTogUml0ZGVlbCB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgUml0ZGVlbCh0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLCB0aGlzLmFjdGllcywgdGhpcy5iZXdlZ2luZyxcbiAgICAgICAgICAgIHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmksIHRoaXMudmVydm9sZ1Nwb29yLCB0aGlzLnRvcG9FbGVtZW50ZW4pO1xuICAgICAgICBjb3B5LmFsdGVybmF0aWV2ZVJvdXRlcyA9IHRoaXMuYWx0ZXJuYXRpZXZlUm91dGVzO1xuICAgICAgICBjb3B5LnppY2h0YmFhcmhlaWQgPSB0aGlzLnppY2h0YmFhcmhlaWQ7XG4gICAgICAgIGNvcHkuemljaHRiYWFyQnVpdGVuUGFnaW5hdGllID0gemljaHRiYWFyQnVpdGVuUGFnaW5hdGllO1xuXG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIGVxdWFscyhvdGhlcjogUml0ZGVlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIW90aGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG90aGVyLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpID09PSB0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpO1xuICAgIH1cblxuICAgIGdldFJpandlZ3BsYW4oKTogZG9tZWluLlJpandlZ3BsYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5yaWp3ZWdwbGFuO1xuICAgIH1cblxuICAgIGdldFJpandlZygpOiBkb21laW4uUmlqd2VnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkucmlqd2VnO1xuICAgIH1cblxuICAgIGdldER3YW5nKCk6IGRvbWVpbi5Ed2FuZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLmR3YW5nO1xuICAgIH1cblxuICAgIGdldFJvdXRlKCk6IGRvbWVpbi5Sb3V0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLmdldFJvdXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0U2VpbmVuKCk6IGRvbWVpbi5TZWluW10ge1xuICAgICAgICBjb25zdCBzZWluZW46IGRvbWVpbi5TZWluW10gPSBKc0phdmFVdGlsLmxpc3RUb0FycmF5KHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZ2V0Um91dGUoKS5nZXRTZWluZW4oKSk7XG4gICAgICAgIGlmICh0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWluOiBkb21laW4uU2VpbltdID0gSnNKYXZhVXRpbC5saXN0VG9BcnJheSh0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLmdldFJvdXRlKCkuZ2V0U2VpbmVuKCkpO1xuICAgICAgICAgICAgc2VpbmVuLnB1c2goLi4uc2Vpbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlaW5lbjtcbiAgICB9XG5cbiAgICBnZXRWYW5QcmxTcG9vcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5nZXRWYW5QcmxTcG9vcigpO1xuICAgIH1cblxuICAgIGdldFZpc3VlZWxOYWFyUHJsU3Bvb3IoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudmVydm9sZ1Nwb29yKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52ZXJ2b2xnU3Bvb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5nZXROYWFyUHJsU3Bvb3IoKTtcbiAgICB9XG5cbiAgICBnZXROYWFyUHJsU3Bvb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZ2V0TmFhclBybFNwb29yKCk7XG4gICAgfVxuXG4gICAgZ2V0TmFhclBybFNwb29yVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmV0dmFsID0gdGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5nZXROYWFyUHJsU3Bvb3IoKTtcbiAgICAgICAgaWYgKHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkpIHtcbiAgICAgICAgICAgIHJldHZhbCArPSAnX2UnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnZlcnZvbGdTcG9vcikge1xuICAgICAgICAgICAgcmV0dmFsICs9ICcoJyArIHRoaXMudmVydm9sZ1Nwb29yICsgJyknO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXR2YWw7XG4gICAgfVxuXG4gICAgZ2V0VnJpamViYWFuUmlqd2VncGxhbigpOiBkb21laW4uUmlqd2VncGxhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLnJpandlZ3BsYW47XG4gICAgfVxuXG4gICAgZ2V0VnJpamViYWFuUmlqd2VnKCk6IGRvbWVpbi5SaWp3ZWcge1xuICAgICAgICByZXR1cm4gdGhpcy52cmlqZWJhYW5SaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5yaWp3ZWc7XG4gICAgfVxuXG4gICAgZ2V0VnJpamViYWFuRHdhbmcoKTogZG9tZWluLkR3YW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZHdhbmc7XG4gICAgfVxuXG4gICAgZ2V0RHdhbmdOdW1tZXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZ2V0RHdhbmdOdW1tZXIoKTtcbiAgICB9XG5cbiAgICBnZXRaaWNodGJhYXJoZWlkKCk6IFJpdGRlZWxaaWNodGJhYXJoZWlkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuemljaHRiYWFyaGVpZDtcbiAgICB9XG5cbiAgICBpc1ppY2h0YmFhcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuemljaHRiYWFyaGVpZCA9PT0gUml0ZGVlbFppY2h0YmFhcmhlaWQuWklDSFRCQUFSO1xuICAgIH1cblxuICAgIGlzWmljaHRiYWFyQmlubmVuV2luZG93KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ppY2h0YmFhcigpICYmICF0aGlzLnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZTtcbiAgICB9XG5cbiAgICBpc0Jpbm5lbldpbmRvdygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnppY2h0YmFhcmhlaWQgPT09IFJpdGRlZWxaaWNodGJhYXJoZWlkLlpJQ0hUQkFBUiB8fFxuICAgICAgICAgICAgICAgIHRoaXMuemljaHRiYWFyaGVpZCA9PT0gUml0ZGVlbFppY2h0YmFhcmhlaWQuT05aSUNIVEJBQVJfRE9PUl9HRUJSVUlLRVIpXG4gICAgICAgICAgICAmJiB0aGlzLnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZSA9PT0gZmFsc2U7XG4gICAgfVxuXG4gICAgaXNOaWV0QmVzY2hpa2JhYXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppY2h0YmFhcmhlaWQgPT09IFJpdGRlZWxaaWNodGJhYXJoZWlkLk9OWklDSFRCQUFSX0RPT1JfU1lTVEVFTTtcbiAgICB9XG5cbiAgICBpc09uemljaHRiYWFyRG9vckdlYnJ1aWtlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuemljaHRiYWFyaGVpZCA9PT0gUml0ZGVlbFppY2h0YmFhcmhlaWQuT05aSUNIVEJBQVJfRE9PUl9HRUJSVUlLRVI7XG4gICAgfVxuXG4gICAgaXNOaWV1dygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmJld2VnaW5nO1xuICAgIH1cblxuICAgIGdldFBwbGcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkucmlqd2VncGxhbi5nZXRQUExHKCk7XG4gICAgfVxuXG4gICAgZ2V0UHBsZ1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5nZXRWYW5TZWluUHBsZygpID09PSB0aGlzLmdldE5hYXJTZWluUHBsZygpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRWYW5TZWluUHBsZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFuU2VpblBwbGcoKSArICcgLyAnICsgdGhpcy5nZXROYWFyU2VpblBwbGcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhlZWZ0VnJpamViYWFuSW5mbygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkgJiYgISF0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLmR3YW5nO1xuICAgIH1cblxuICAgIGdldFZyaWplYmFhblBybFJvdXRlKCk6IGRvbWVpbi5Sb3V0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLmdldFJvdXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0VG9wb2xvZ2llRWxlbWVudGVuKCk6IHNiYmxhZC5Ub3BvbG9neUVsZW1lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvcG9FbGVtZW50ZW47XG4gICAgfVxuXG4gICAgZ2V0QmV3ZWdpbmdJZCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5iZXdlZ2luZykge1xuICAgICAgICAgICAgcmV0dXJuICcnICsgdGhpcy5iZXdlZ2luZy5pZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZ2V0VHJlaW5OdW1tZXIoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuYmV3ZWdpbmcgJiYgdGhpcy5iZXdlZ2luZy50cmVpbk51bW1lcikge1xuICAgICAgICAgICAgcmV0dXJuICcnICsgdGhpcy5iZXdlZ2luZy50cmVpbk51bW1lcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZ2V0VmFuU2VpblBwbGcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmV3ZWdpbmcgPyB0aGlzLmJld2VnaW5nLnZhblNlaW5QcGxnIDogdGhpcy5nZXRSb3V0ZSgpLmdldEJlZ2luU2VpbigpLmdldFBQTEcoKTtcbiAgICB9XG5cbiAgICBnZXROYWFyU2VpblBwbGcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmV3ZWdpbmcgPyB0aGlzLmJld2VnaW5nLm5hYXJTZWluUHBsZyA6IHRoaXMuZ2V0Um91dGUoKS5nZXRFaW5kU2VpbigpLmdldFBQTEcoKTtcbiAgICB9XG5cbiAgICBnZXRWYW5TZWluTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSb3V0ZSgpLmdldEJlZ2luU2VpbigpLmdldE5hbWUoKTtcbiAgICB9XG5cbiAgICBnZXROYWFyU2Vpbk5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um91dGUoKS5nZXRFaW5kU2VpbigpLmdldE5hbWUoKTtcbiAgICB9XG5cbiAgICBnZXRaaWNodGJhYXJoZWlkQnVpdGVuUGFnaW5hdGllKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy56aWNodGJhYXJCdWl0ZW5QYWdpbmF0aWU7XG4gICAgfVxuXG4gICAgYmVwYWFsVG9wb2xvZ2llRWxlbWVudGVuKHNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UpIHtcbiAgICAgICAgY29uc3QgdG9wb0VsZW1lbnRlbiA9IHNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UuYmVwYWFsUm91dGVFbGVtZW50ZW4odGhpcy5nZXRSb3V0ZSgpKTtcblxuICAgICAgICBpZiAodGhpcy5oZWVmdFZyaWplYmFhbkluZm8oKSkge1xuICAgICAgICAgICAgY29uc3QgdnJpamViYWFuVG9wb0VsZW1lbnRlbiA9IHNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UuYmVwYWFsUm91dGVFbGVtZW50ZW4odGhpcy5nZXRWcmlqZWJhYW5QcmxSb3V0ZSgpKTtcbiAgICAgICAgICAgIHRvcG9FbGVtZW50ZW4ucHVzaCguLi52cmlqZWJhYW5Ub3BvRWxlbWVudGVuKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvcG9FbGVtZW50ZW4gPSB0b3BvRWxlbWVudGVuO1xuICAgIH1cbn1cbiJdfQ==
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml0ZGVlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9tb2RlbC9yaXRkZWVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdkYsTUFBTSxDQUFOLElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM1Qix5RUFBYSxDQUFBO0lBQ2IsMkdBQThCLENBQUE7SUFDOUIsdUdBQTRCLENBQUE7QUFDaEMsQ0FBQyxFQUpXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFJL0I7QUFFRCxNQUFNLE9BQU8sT0FBTztJQUtoQixZQUFvQiwwQkFBMkQsRUFDNUQsTUFBZSxFQUNOLFFBQWtCLEVBQzNCLG1DQUFvRSxFQUNwRSxZQUFvQixFQUNuQixhQUF1QztRQUx2QywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWlDO1FBQzVELFdBQU0sR0FBTixNQUFNLENBQVM7UUFDTixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzNCLHdDQUFtQyxHQUFuQyxtQ0FBbUMsQ0FBaUM7UUFDcEUsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDbkIsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBVG5ELHVCQUFrQixHQUE4QixFQUFFLENBQUM7UUFDbkQsa0JBQWEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUM7UUFDL0MsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO0lBUXpDLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVksQ0FBQyxXQUF5QjtRQUNsQyxNQUFNLGdDQUFnQyxHQUNsQyxJQUFJLCtCQUEr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QyxDQUFDO1FBRTVGLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUU7WUFDM0IsTUFBTSxzQkFBc0IsR0FBRywrQkFBK0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1lBQ2pILGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZG9tZWluLCBKc0phdmFVdGlsLCBzYmJsYWQgfSBmcm9tICdAbG94aWEvcmlqd2VnZW4nO1xuaW1wb3J0IHsgQWN0aWUsIEJld2VnaW5nIH0gZnJvbSAnLi4vb3B0aW1vJztcbmltcG9ydCB7IEJld2VnaW5nVXRpbHMgfSBmcm9tICcuLi9zZXJ2aWNlcy9iZXdlZ2luZy11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IFJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpbmF0aWUgfSBmcm9tICcuL3JpandlZ3BsYW4tcmlqd2VnLWR3YW5nLWNvbWJpbmF0aWUnO1xuXG5leHBvcnQgZW51bSBSaXRkZWVsWmljaHRiYWFyaGVpZCB7XG4gICAgWklDSFRCQUFSID0gMSxcbiAgICBPTlpJQ0hUQkFBUl9ET09SX0dFQlJVSUtFUiA9IDIsXG4gICAgT05aSUNIVEJBQVJfRE9PUl9TWVNURUVNID0gM1xufVxuXG5leHBvcnQgY2xhc3MgUml0ZGVlbCB7XG4gICAgcHJpdmF0ZSBhbHRlcm5hdGlldmVSb3V0ZXM6IHNiYmxhZC5BbHRlcm5hdGl2ZVJvdXRlW10gPSBbXTtcbiAgICBwcml2YXRlIHppY2h0YmFhcmhlaWQgPSBSaXRkZWVsWmljaHRiYWFyaGVpZC5aSUNIVEJBQVI7XG4gICAgcHJpdmF0ZSB6aWNodGJhYXJCdWl0ZW5QYWdpbmF0aWUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmk6IFJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpbmF0aWUsXG4gICAgICAgICAgICAgICAgcHVibGljIGFjdGllczogQWN0aWVbXSxcbiAgICAgICAgICAgICAgICBwdWJsaWMgcmVhZG9ubHkgYmV3ZWdpbmc6IEJld2VnaW5nLFxuICAgICAgICAgICAgICAgIHB1YmxpYyB2cmlqZWJhYW5SaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaTogUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmluYXRpZSxcbiAgICAgICAgICAgICAgICBwdWJsaWMgdmVydm9sZ1Nwb29yOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB0b3BvRWxlbWVudGVuOiBzYmJsYWQuVG9wb2xvZ3lFbGVtZW50W10pIHtcbiAgICB9XG5cbiAgICBnZXRBbHRlcm5hdGlldmVSb3V0ZXMoKTogc2JibGFkLkFsdGVybmF0aXZlUm91dGVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsdGVybmF0aWV2ZVJvdXRlcztcbiAgICB9XG5cbiAgICBjb3B5TWV0RHdhbmcobmlldXdlRHdhbmc6IGRvbWVpbi5Ed2FuZyk6IFJpdGRlZWwge1xuICAgICAgICBjb25zdCBuaWV1d2VSaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaSA9XG4gICAgICAgICAgICBuZXcgUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmluYXRpZShcbiAgICAgICAgICAgICAgICB0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLnJpandlZ3BsYW4sIHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkucmlqd2VnLCBuaWV1d2VEd2FuZyk7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgUml0ZGVlbChuaWV1d2VSaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaSwgW10sIHRoaXMuYmV3ZWdpbmcsXG4gICAgICAgICAgICB0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLCB0aGlzLnZlcnZvbGdTcG9vciwgdGhpcy50b3BvRWxlbWVudGVuKTtcbiAgICAgICAgY29weS5hbHRlcm5hdGlldmVSb3V0ZXMgPSB0aGlzLmFsdGVybmF0aWV2ZVJvdXRlcztcbiAgICAgICAgY29weS56aWNodGJhYXJoZWlkID0gdGhpcy56aWNodGJhYXJoZWlkO1xuICAgICAgICBjb3B5LnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZSA9IHRoaXMuemljaHRiYWFyQnVpdGVuUGFnaW5hdGllO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG5cbiAgICBjb3B5TWV0QWx0ZXJuYXRpZXZlUm91dGVzKGFsdGVybmF0aWV2ZVJvdXRlczogc2JibGFkLkFsdGVybmF0aXZlUm91dGVbXSk6IFJpdGRlZWwge1xuICAgICAgICBjb25zdCBjb3B5ID0gbmV3IFJpdGRlZWwodGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaSwgdGhpcy5hY3RpZXMsIHRoaXMuYmV3ZWdpbmcsXG4gICAgICAgICAgICB0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLCB0aGlzLnZlcnZvbGdTcG9vciwgdGhpcy50b3BvRWxlbWVudGVuKTtcbiAgICAgICAgY29weS5hbHRlcm5hdGlldmVSb3V0ZXMgPSBhbHRlcm5hdGlldmVSb3V0ZXM7XG4gICAgICAgIGNvcHkuemljaHRiYWFyaGVpZCA9IHRoaXMuemljaHRiYWFyaGVpZDtcbiAgICAgICAgY29weS56aWNodGJhYXJCdWl0ZW5QYWdpbmF0aWUgPSB0aGlzLnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZTtcblxuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG5cbiAgICBjb3B5TWV0QWx0ZXJuYXRpZXZlUm91dGVzWm9uZGVyQWN0aWVzKGFsdGVybmF0aWV2ZVJvdXRlczogc2JibGFkLkFsdGVybmF0aXZlUm91dGVbXSk6IFJpdGRlZWwge1xuICAgICAgICBjb25zdCBjb3B5ID0gdGhpcy5jb3B5TWV0QWx0ZXJuYXRpZXZlUm91dGVzKGFsdGVybmF0aWV2ZVJvdXRlcyk7XG4gICAgICAgIGlmIChjb3B5LmJld2VnaW5nKSB7XG4gICAgICAgICAgICBjb3B5LmFjdGllcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIGNvcHlNZXRaaWNodGJhYXJoZWlkKHppY2h0YmFhcmhlaWQ6IFJpdGRlZWxaaWNodGJhYXJoZWlkKTogUml0ZGVlbCB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgUml0ZGVlbCh0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLCB0aGlzLmFjdGllcywgdGhpcy5iZXdlZ2luZyxcbiAgICAgICAgICAgIHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmksIHRoaXMudmVydm9sZ1Nwb29yLCB0aGlzLnRvcG9FbGVtZW50ZW4pO1xuICAgICAgICBjb3B5LmFsdGVybmF0aWV2ZVJvdXRlcyA9IHRoaXMuYWx0ZXJuYXRpZXZlUm91dGVzO1xuICAgICAgICBjb3B5LnppY2h0YmFhcmhlaWQgPSB6aWNodGJhYXJoZWlkO1xuICAgICAgICBjb3B5LnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZSA9IHRoaXMuemljaHRiYWFyQnVpdGVuUGFnaW5hdGllO1xuXG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIGNvcHlNZXRaaWNodGJhYXJoZWlkRW5QYWdpbmF0aWUoemljaHRiYWFyaGVpZDogUml0ZGVlbFppY2h0YmFhcmhlaWQsIHppY2h0YmFhckJ1aXRlblBhZ2luYXRpZTogYm9vbGVhbik6IFJpdGRlZWwge1xuICAgICAgICBjb25zdCBjb3B5ID0gdGhpcy5jb3B5TWV0WmljaHRiYWFyaGVpZCh6aWNodGJhYXJoZWlkKTtcbiAgICAgICAgY29weS56aWNodGJhYXJCdWl0ZW5QYWdpbmF0aWUgPSB6aWNodGJhYXJCdWl0ZW5QYWdpbmF0aWU7XG5cbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuXG4gICAgY29weU1ldFppY2h0YmFhcmhlaWRCdWl0ZW5QYWdpbmF0aWUoemljaHRiYWFyQnVpdGVuUGFnaW5hdGllOiBib29sZWFuKTogUml0ZGVlbCB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgUml0ZGVlbCh0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLCB0aGlzLmFjdGllcywgdGhpcy5iZXdlZ2luZyxcbiAgICAgICAgICAgIHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmksIHRoaXMudmVydm9sZ1Nwb29yLCB0aGlzLnRvcG9FbGVtZW50ZW4pO1xuICAgICAgICBjb3B5LmFsdGVybmF0aWV2ZVJvdXRlcyA9IHRoaXMuYWx0ZXJuYXRpZXZlUm91dGVzO1xuICAgICAgICBjb3B5LnppY2h0YmFhcmhlaWQgPSB0aGlzLnppY2h0YmFhcmhlaWQ7XG4gICAgICAgIGNvcHkuemljaHRiYWFyQnVpdGVuUGFnaW5hdGllID0gemljaHRiYWFyQnVpdGVuUGFnaW5hdGllO1xuXG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIGVxdWFscyhvdGhlcjogUml0ZGVlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIW90aGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG90aGVyLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpID09PSB0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpO1xuICAgIH1cblxuICAgIGdldFJpandlZ3BsYW4oKTogZG9tZWluLlJpandlZ3BsYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5yaWp3ZWdwbGFuO1xuICAgIH1cblxuICAgIGdldFJpandlZygpOiBkb21laW4uUmlqd2VnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkucmlqd2VnO1xuICAgIH1cblxuICAgIGdldER3YW5nKCk6IGRvbWVpbi5Ed2FuZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLmR3YW5nO1xuICAgIH1cblxuICAgIGdldFJvdXRlKCk6IGRvbWVpbi5Sb3V0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLmdldFJvdXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0U2VpbmVuKCk6IGRvbWVpbi5TZWluW10ge1xuICAgICAgICBjb25zdCBzZWluZW46IGRvbWVpbi5TZWluW10gPSBKc0phdmFVdGlsLmxpc3RUb0FycmF5KHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZ2V0Um91dGUoKS5nZXRTZWluZW4oKSk7XG4gICAgICAgIGlmICh0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWluOiBkb21laW4uU2VpbltdID0gSnNKYXZhVXRpbC5saXN0VG9BcnJheSh0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLmdldFJvdXRlKCkuZ2V0U2VpbmVuKCkpO1xuICAgICAgICAgICAgc2VpbmVuLnB1c2goLi4uc2Vpbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlaW5lbjtcbiAgICB9XG5cbiAgICBnZXRWYW5QcmxTcG9vcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5nZXRWYW5QcmxTcG9vcigpO1xuICAgIH1cblxuICAgIGdldFZpc3VlZWxOYWFyUHJsU3Bvb3IoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudmVydm9sZ1Nwb29yKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52ZXJ2b2xnU3Bvb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5nZXROYWFyUHJsU3Bvb3IoKTtcbiAgICB9XG5cbiAgICBnZXROYWFyUHJsU3Bvb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZ2V0TmFhclBybFNwb29yKCk7XG4gICAgfVxuXG4gICAgZ2V0TmFhclBybFNwb29yVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmV0dmFsID0gdGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5nZXROYWFyUHJsU3Bvb3IoKTtcbiAgICAgICAgaWYgKHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkpIHtcbiAgICAgICAgICAgIHJldHZhbCArPSAnX2UnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnZlcnZvbGdTcG9vcikge1xuICAgICAgICAgICAgcmV0dmFsICs9ICcoJyArIHRoaXMudmVydm9sZ1Nwb29yICsgJyknO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXR2YWw7XG4gICAgfVxuXG4gICAgZ2V0VnJpamViYWFuUmlqd2VncGxhbigpOiBkb21laW4uUmlqd2VncGxhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpLnJpandlZ3BsYW47XG4gICAgfVxuXG4gICAgZ2V0VnJpamViYWFuUmlqd2VnKCk6IGRvbWVpbi5SaWp3ZWcge1xuICAgICAgICByZXR1cm4gdGhpcy52cmlqZWJhYW5SaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5yaWp3ZWc7XG4gICAgfVxuXG4gICAgZ2V0VnJpamViYWFuRHdhbmcoKTogZG9tZWluLkR3YW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZHdhbmc7XG4gICAgfVxuXG4gICAgZ2V0RHdhbmdOdW1tZXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZ2V0RHdhbmdOdW1tZXIoKTtcbiAgICB9XG5cbiAgICBnZXRaaWNodGJhYXJoZWlkKCk6IFJpdGRlZWxaaWNodGJhYXJoZWlkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuemljaHRiYWFyaGVpZDtcbiAgICB9XG5cbiAgICBpc1ppY2h0YmFhcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuemljaHRiYWFyaGVpZCA9PT0gUml0ZGVlbFppY2h0YmFhcmhlaWQuWklDSFRCQUFSO1xuICAgIH1cblxuICAgIGlzWmljaHRiYWFyQmlubmVuV2luZG93KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ppY2h0YmFhcigpICYmICF0aGlzLnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZTtcbiAgICB9XG5cbiAgICBpc0Jpbm5lbldpbmRvdygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnppY2h0YmFhcmhlaWQgPT09IFJpdGRlZWxaaWNodGJhYXJoZWlkLlpJQ0hUQkFBUiB8fFxuICAgICAgICAgICAgICAgIHRoaXMuemljaHRiYWFyaGVpZCA9PT0gUml0ZGVlbFppY2h0YmFhcmhlaWQuT05aSUNIVEJBQVJfRE9PUl9HRUJSVUlLRVIpXG4gICAgICAgICAgICAmJiB0aGlzLnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZSA9PT0gZmFsc2U7XG4gICAgfVxuXG4gICAgaXNOaWV0QmVzY2hpa2JhYXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppY2h0YmFhcmhlaWQgPT09IFJpdGRlZWxaaWNodGJhYXJoZWlkLk9OWklDSFRCQUFSX0RPT1JfU1lTVEVFTTtcbiAgICB9XG5cbiAgICBpc09uemljaHRiYWFyRG9vckdlYnJ1aWtlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuemljaHRiYWFyaGVpZCA9PT0gUml0ZGVlbFppY2h0YmFhcmhlaWQuT05aSUNIVEJBQVJfRE9PUl9HRUJSVUlLRVI7XG4gICAgfVxuXG4gICAgaXNOaWV1dygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmJld2VnaW5nIHx8IHRoaXMuYmV3ZWdpbmcud2lqemlnU3RhdHVzID09PSBCZXdlZ2luZ1V0aWxzLlRPRUdFVk9FR0Q7XG4gICAgfVxuXG4gICAgZ2V0UHBsZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5yaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaS5yaWp3ZWdwbGFuLmdldFBQTEcoKTtcbiAgICB9XG5cbiAgICBnZXRQcGxnU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmdldFZhblNlaW5QcGxnKCkgPT09IHRoaXMuZ2V0TmFhclNlaW5QcGxnKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFZhblNlaW5QcGxnKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRWYW5TZWluUHBsZygpICsgJyAvICcgKyB0aGlzLmdldE5hYXJTZWluUHBsZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGVlZnRWcmlqZWJhYW5JbmZvKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52cmlqZWJhYW5SaWp3ZWdwbGFuUmlqd2VnRHdhbmdDb21iaSAmJiAhIXRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZHdhbmc7XG4gICAgfVxuXG4gICAgZ2V0VnJpamViYWFuUHJsUm91dGUoKTogZG9tZWluLlJvdXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkuZ2V0Um91dGUoKTtcbiAgICB9XG5cbiAgICBnZXRUb3BvbG9naWVFbGVtZW50ZW4oKTogc2JibGFkLlRvcG9sb2d5RWxlbWVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9wb0VsZW1lbnRlbjtcbiAgICB9XG5cbiAgICBnZXRCZXdlZ2luZ0lkKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmJld2VnaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gJycgKyB0aGlzLmJld2VnaW5nLmlkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBnZXRUcmVpbk51bW1lcigpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5iZXdlZ2luZyAmJiB0aGlzLmJld2VnaW5nLnRyZWluTnVtbWVyKSB7XG4gICAgICAgICAgICByZXR1cm4gJycgKyB0aGlzLmJld2VnaW5nLnRyZWluTnVtbWVyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBnZXRWYW5TZWluUHBsZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5iZXdlZ2luZyA/IHRoaXMuYmV3ZWdpbmcudmFuU2VpblBwbGcgOiB0aGlzLmdldFJvdXRlKCkuZ2V0QmVnaW5TZWluKCkuZ2V0UFBMRygpO1xuICAgIH1cblxuICAgIGdldE5hYXJTZWluUHBsZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5iZXdlZ2luZyA/IHRoaXMuYmV3ZWdpbmcubmFhclNlaW5QcGxnIDogdGhpcy5nZXRSb3V0ZSgpLmdldEVpbmRTZWluKCkuZ2V0UFBMRygpO1xuICAgIH1cblxuICAgIGdldFZhblNlaW5OYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvdXRlKCkuZ2V0QmVnaW5TZWluKCkuZ2V0TmFtZSgpO1xuICAgIH1cblxuICAgIGdldE5hYXJTZWluTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSb3V0ZSgpLmdldEVpbmRTZWluKCkuZ2V0TmFtZSgpO1xuICAgIH1cblxuICAgIGdldFppY2h0YmFhcmhlaWRCdWl0ZW5QYWdpbmF0aWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnppY2h0YmFhckJ1aXRlblBhZ2luYXRpZTtcbiAgICB9XG5cbiAgICBiZXBhYWxUb3BvbG9naWVFbGVtZW50ZW4oc2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSkge1xuICAgICAgICBjb25zdCB0b3BvRWxlbWVudGVuID0gc2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZS5iZXBhYWxSb3V0ZUVsZW1lbnRlbih0aGlzLmdldFJvdXRlKCkpO1xuXG4gICAgICAgIGlmICh0aGlzLmhlZWZ0VnJpamViYWFuSW5mbygpKSB7XG4gICAgICAgICAgICBjb25zdCB2cmlqZWJhYW5Ub3BvRWxlbWVudGVuID0gc2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZS5iZXBhYWxSb3V0ZUVsZW1lbnRlbih0aGlzLmdldFZyaWplYmFhblBybFJvdXRlKCkpO1xuICAgICAgICAgICAgdG9wb0VsZW1lbnRlbi5wdXNoKC4uLnZyaWplYmFhblRvcG9FbGVtZW50ZW4pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9wb0VsZW1lbnRlbiA9IHRvcG9FbGVtZW50ZW47XG4gICAgfVxufVxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
// import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
4
|
-
import { AngularComponentsModule } from '@loxia/angular-components';
|
|
5
4
|
import { ImxViewerModule } from '@loxia/imx-viewer';
|
|
5
|
+
import { RijwegenModule } from '@loxia/rijwegen';
|
|
6
6
|
import { EffectsModule } from '@ngrx/effects';
|
|
7
7
|
import { StoreModule } from '@ngrx/store';
|
|
8
8
|
import { ResourceModule } from '@ngx-resource/handler-ngx-http';
|
|
@@ -50,11 +50,10 @@ export const STORE_CONFIG = {
|
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
52
|
const imports = [
|
|
53
|
-
AngularComponentsModule,
|
|
54
53
|
CommonModule,
|
|
55
54
|
ImxViewerModule,
|
|
55
|
+
RijwegenModule,
|
|
56
56
|
ResourceModule.forRoot(),
|
|
57
|
-
// BrowserAnimationsModule,
|
|
58
57
|
StoreModule.forRoot(storeReducers, STORE_CONFIG),
|
|
59
58
|
EffectsModule.forRoot([
|
|
60
59
|
DeleteOngeplandeActieEffect,
|
|
@@ -85,9 +84,9 @@ MstViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
|
|
|
85
84
|
RitdelenLijstComponent,
|
|
86
85
|
RitdelenViewComponent,
|
|
87
86
|
CarouselControlsComponent,
|
|
88
|
-
ViewerControlsComponent], imports: [
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
ViewerControlsComponent], imports: [CommonModule,
|
|
88
|
+
ImxViewerModule,
|
|
89
|
+
RijwegenModule, i3.ResourceModule, i4.StoreRootModule, i5.EffectsRootModule], exports: [MstviewerComponent] });
|
|
91
90
|
MstViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MstViewerModule, providers: [
|
|
92
91
|
ZoneUtil,
|
|
93
92
|
SignaleringsbeeldInfoResource,
|
|
@@ -132,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
|
|
|
132
131
|
]
|
|
133
132
|
}]
|
|
134
133
|
}], ctorParameters: function () { return [{ type: i1.EditorService }, { type: i2.ZoneUtil }]; } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXN0LXZpZXdlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9saWIvbXN0LXZpZXdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsa0ZBQWtGO0FBQ2xGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1D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TixPQUFPO29CQUNQLFlBQVksRUFBRTt3QkFDVixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsa0JBQWtCO3FCQUNyQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsUUFBUTt3QkFDUiw2QkFBNkI7d0JBQzdCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYiwrQkFBK0I7d0JBQy9CLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2Isd0JBQXdCO3FCQUMzQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUgfSBmcm9tICdAbG94aWEvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IElteFZpZXdlck1vZHVsZSB9IGZyb20gJ0Bsb3hpYS9pbXgtdmlld2VyJztcbmltcG9ydCB7IEVmZmVjdHNNb2R1bGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgUmVzb3VyY2VNb2R1bGUgfSBmcm9tICdAbmd4LXJlc291cmNlL2hhbmRsZXItbmd4LWh0dHAnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vYXRvbWljLWNvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi9hdG9taWMtY29tcG9uZW50cy9vdmVybGF5L292ZXJsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2dyZXNzSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9hdG9taWMtY29tcG9uZW50cy9wcm9ncmVzcy1pbmRpY2F0b3IvcHJvZ3Jlc3MtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNc3R2aWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbXN0dmlld2VyL21zdHZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUml0ZGVsZW5MaWpzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yaXRkZWxlbi1saWpzdC9yaXRkZWxlbi1saWpzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUml0ZGVsZW5WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JpdGRlbGVuLXZpZXcvcml0ZGVsZW4tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUnBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JwZS9ycGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1zdExvZ2dpbmdSZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2VzL21zdGxvZ2dpbmcucmVzb3VyY2UnO1xuaW1wb3J0IHsgU2lnbmFsZXJpbmdzYmVlbGRJbmZvUmVzb3VyY2UgfSBmcm9tICcuL3Jlc291cmNlcy9zaWduYWxlcmluZ3NiZWVsZGluZm8ucmVzb3VyY2UnO1xuaW1wb3J0IHsgQmV3ZWdpbmdVdGlscyB9IGZyb20gJy4vc2VydmljZXMvYmV3ZWdpbmctdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBCZXdlZ2luZ1ZlcnJpamtlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2Jld2VnaW5nLXZlcnJpamtlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFJpdExlemVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcml0LWxlemVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2lnbmFsZXJpbmdzLWJlZWxkLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCZXBhYWxPbmdlcGxhbmRlQWN0aWVzRWZmZWN0IH0gZnJvbSAnLi9zdGF0ZS9lZmZlY3QvYmVwYWFsLW9uZ2VwbGFuZGUtYWN0aWVzLmVmZmVjdCc7XG5pbXBvcnQgeyBCZXdlZ2luZ0ludm9lZ2VuRWZmZWN0IH0gZnJvbSAnLi9zdGF0ZS9lZmZlY3QvYmV3ZWdpbmctaW52b2VnZW4uZWZmZWN0JztcbmltcG9ydCB7IERlbGV0ZU9uZ2VwbGFuZGVBY3RpZUVmZmVjdCB9IGZyb20gJy4vc3RhdGUvZWZmZWN0L2RlbGV0ZS1vbmdlcGxhbmRlLWFjdGllLmVmZmVjdCc7XG5pbXBvcnQgeyBMYWFkUm91dGVGaWxlc0VmZmVjdCB9IGZyb20gJy4vc3RhdGUvZWZmZWN0L2xhYWQtcm91dGUtZmlsZXMuZWZmZWN0JztcbmltcG9ydCB7IExhYWRTaWduYWxlcmluZ3NiZWVsZGVuRWZmZWN0IH0gZnJvbSAnLi9zdGF0ZS9lZmZlY3QvbGFhZC1zaWduYWxlcmluZ3NiZWVsZGVuLmVmZmVjdCc7XG5pbXBvcnQgeyBSaXRHb2Vka2V1cmVuRWZmZWN0IH0gZnJvbSAnLi9zdGF0ZS9lZmZlY3Qvcml0LWdvZWRrZXVyZW4uZWZmZWN0JztcbmltcG9ydCB7IFJpdGRlbGVuRWZmZWN0IH0gZnJvbSAnLi9zdGF0ZS9lZmZlY3Qvcml0ZGVsZW4uZWZmZWN0JztcbmltcG9ydCB7IFN2Z1ZpZXdFZmZlY3QgfSBmcm9tICcuL3N0YXRlL2VmZmVjdC9zdmctdmlldy5lZmZlY3QnO1xuaW1wb3J0IHsgc3RvcmVSZWR1Y2VycyB9IGZyb20gJy4vc3RhdGUvbXN0LWVkaXRvci1zdGF0ZSc7XG5pbXBvcnQgeyBBY3RpZUhlbHBlciB9IGZyb20gJy4vdXRpbC9hY3RpZS1oZWxwZXInO1xuaW1wb3J0IHsgTG9nZ2luZ0hlbHBlciB9IGZyb20gJy4vdXRpbC9sb2dnaW5nLWhlbHBlcic7XG5pbXBvcnQgeyBab25lVXRpbCB9IGZyb20gJy4vdXRpbC96b25lLXV0aWwnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxDb250cm9sc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYXJvdXNlbC1jb250cm9scy9jYXJvdXNlbC1jb250cm9scy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld2VyQ29udHJvbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmlld2VyLWNvbnRyb2xzL3ZpZXdlci1jb250cm9scy5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgU1RPUkVfQ09ORklHID0ge1xuICAgIHJ1bnRpbWVDaGVja3M6IHtcbiAgICAgICAgc3RyaWN0U3RhdGVJbW11dGFiaWxpdHk6IGZhbHNlLFxuICAgICAgICBzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6IGZhbHNlLFxuICAgICAgICAvLyBzdHJpY3RTdGF0ZVNlcmlhbGl6YWJpbGl0eTogdHJ1ZSwgLy8gZ2VlZnQgbm9nIHJ1bnRpbWUgZXJyb3JzLCB6b3UgbW9vaSB6aWpuIG9tIGFhbiB0ZSBrdW5uZW4gemV0dGVuXG4gICAgICAgIC8vIHN0cmljdEFjdGlvblNlcmlhbGl6YWJpbGl0eTogdHJ1ZSwgLy8gZ2VlZnQgbm9nIHJ1bnRpbWUgZXJyb3JzLCB6b3UgbW9vaSB6aWpuIG9tIGFhbiB0ZSBrdW5uZW4gemV0dGVuXG4gICAgICAgIHN0cmljdEFjdGlvblR5cGVVbmlxdWVuZXNzOiBmYWxzZVxuICAgIH1cbn07XG5cbmNvbnN0IGltcG9ydHMgPSBbXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElteFZpZXdlck1vZHVsZSxcbiAgICBSZXNvdXJjZU1vZHVsZS5mb3JSb290KCksXG4gICAgLy8gQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yUm9vdCggc3RvcmVSZWR1Y2VycywgU1RPUkVfQ09ORklHKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvclJvb3QoW1xuICAgICAgICBEZWxldGVPbmdlcGxhbmRlQWN0aWVFZmZlY3QsXG4gICAgICAgIExhYWRTaWduYWxlcmluZ3NiZWVsZGVuRWZmZWN0LFxuICAgICAgICBMYWFkUm91dGVGaWxlc0VmZmVjdCxcbiAgICAgICAgQmVwYWFsT25nZXBsYW5kZUFjdGllc0VmZmVjdCxcbiAgICAgICAgQmV3ZWdpbmdJbnZvZWdlbkVmZmVjdCxcbiAgICAgICAgUml0ZGVsZW5FZmZlY3QsXG4gICAgICAgIFJpdEdvZWRrZXVyZW5FZmZlY3QsXG4gICAgICAgIFN2Z1ZpZXdFZmZlY3RcbiAgICBdKVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBNc3R2aWV3ZXJDb21wb25lbnQsXG4gICAgICAgIE92ZXJsYXlDb21wb25lbnQsXG4gICAgICAgIFByb2dyZXNzSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgICAgICBScGVDb21wb25lbnQsXG4gICAgICAgIFJpdGRlbGVuTGlqc3RDb21wb25lbnQsXG4gICAgICAgIFJpdGRlbGVuVmlld0NvbXBvbmVudCxcbiAgICAgICAgQ2Fyb3VzZWxDb250cm9sc0NvbXBvbmVudCxcbiAgICAgICAgVmlld2VyQ29udHJvbHNDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgTXN0dmlld2VyQ29tcG9uZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgWm9uZVV0aWwsXG4gICAgICAgIFNpZ25hbGVyaW5nc2JlZWxkSW5mb1Jlc291cmNlLFxuICAgICAgICBNc3RMb2dnaW5nUmVzb3VyY2UsXG4gICAgICAgIEVkaXRvclNlcnZpY2UsXG4gICAgICAgIFNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UsXG4gICAgICAgIFJpdExlemVyU2VydmljZSxcbiAgICAgICAgQmV3ZWdpbmdVdGlscyxcbiAgICAgICAgQWN0aWVIZWxwZXIsXG4gICAgICAgIExvZ2dpbmdIZWxwZXIsXG4gICAgICAgIEJld2VnaW5nVmVycmlqa2VyU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTXN0Vmlld2VyTW9kdWxlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IEVkaXRvclNlcnZpY2UsIHpvbmVVdGlsOiBab25lVXRpbCkge1xuICAgICAgICAvLyBtYWFrIGRlIEVkaXRvclNlcnZpY2UgdG9lZ2Fua2VsaWprIHZvb3IgR1dUIGNvZGVcbiAgICAgICAgd2luZG93WydycGUnXSA9IHtcbiAgICAgICAgICAgIEVkaXRvclNlcnZpY2U6IHpvbmVVdGlsLnByb3h5KHNlcnZpY2UpXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXN0LXZpZXdlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9saWIvbXN0LXZpZXdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsa0ZBQWtGO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDakgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOzs7Ozs7O0FBRWpHLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUN4QixhQUFhLEVBQUU7UUFDWCx1QkFBdUIsRUFBRSxLQUFLO1FBQzlCLHdCQUF3QixFQUFFLEtBQUs7UUFDL0IsdUdBQXVHO1FBQ3ZHLHdHQUF3RztRQUN4RywwQkFBMEIsRUFBRSxLQUFLO0tBQ3BDO0NBQ0osQ0FBQztBQUVGLE1BQU0sT0FBTyxHQUFHO0lBQ1osWUFBWTtJQUNaLGVBQWU7SUFDZixjQUFjO0lBQ2QsY0FBYyxDQUFDLE9BQU8sRUFBRTtJQUN4QixXQUFXLENBQUMsT0FBTyxDQUFFLGFBQWEsRUFBRSxZQUFZLENBQUM7SUFDakQsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUNsQiwyQkFBMkI7UUFDM0IsNkJBQTZCO1FBQzdCLG9CQUFvQjtRQUNwQiw0QkFBNEI7UUFDNUIsc0JBQXNCO1FBQ3RCLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsYUFBYTtLQUNoQixDQUFDO0NBQ0wsQ0FBQztBQStCRixNQUFNLE9BQU8sZUFBZTtJQUN4QixZQUFvQixPQUFzQixFQUFFLFFBQWtCO1FBQTFDLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEMsbURBQW1EO1FBQ25ELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNaLGFBQWEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztTQUN6QyxDQUFDO0lBQ04sQ0FBQzs7NEdBTlEsZUFBZTs2R0FBZixlQUFlLGlCQTFCcEIsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsMEJBQTBCO1FBQzFCLFlBQVk7UUFDWixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLHlCQUF5QjtRQUN6Qix1QkFBdUIsYUE1QjNCLFlBQVk7UUFDWixlQUFlO1FBQ2YsY0FBYywwRUE2QlYsa0JBQWtCOzZHQWViLGVBQWUsYUFiYjtRQUNQLFFBQVE7UUFDUiw2QkFBNkI7UUFDN0Isa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYiwrQkFBK0I7UUFDL0IsZUFBZTtRQUNmLGFBQWE7UUFDYixXQUFXO1FBQ1gsYUFBYTtRQUNiLHdCQUF3QjtLQUMzQixZQTFCRCxPQUFPOzJGQTRCRSxlQUFlO2tCQTdCM0IsUUFBUTttQkFBQztvQkFDTixPQUFPO29CQUNQLFlBQVksRUFBRTt3QkFDVixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsa0JBQWtCO3FCQUNyQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsUUFBUTt3QkFDUiw2QkFBNkI7d0JBQzdCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYiwrQkFBK0I7d0JBQy9CLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2Isd0JBQXdCO3FCQUMzQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgSW14Vmlld2VyTW9kdWxlIH0gZnJvbSAnQGxveGlhL2lteC12aWV3ZXInO1xuaW1wb3J0IHsgUmlqd2VnZW5Nb2R1bGUgfSBmcm9tICdAbG94aWEvcmlqd2VnZW4nO1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmVNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBSZXNvdXJjZU1vZHVsZSB9IGZyb20gJ0BuZ3gtcmVzb3VyY2UvaGFuZGxlci1uZ3gtaHR0cCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9hdG9taWMtY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL2F0b21pYy1jb21wb25lbnRzL292ZXJsYXkvb3ZlcmxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL2F0b21pYy1jb21wb25lbnRzL3Byb2dyZXNzLWluZGljYXRvci9wcm9ncmVzcy1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IE1zdHZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tc3R2aWV3ZXIvbXN0dmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSaXRkZWxlbkxpanN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JpdGRlbGVuLWxpanN0L3JpdGRlbGVuLWxpanN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSaXRkZWxlblZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcml0ZGVsZW4tdmlldy9yaXRkZWxlbi12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBScGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcnBlL3JwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXN0TG9nZ2luZ1Jlc291cmNlIH0gZnJvbSAnLi9yZXNvdXJjZXMvbXN0bG9nZ2luZy5yZXNvdXJjZSc7XG5pbXBvcnQgeyBTaWduYWxlcmluZ3NiZWVsZEluZm9SZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2VzL3NpZ25hbGVyaW5nc2JlZWxkaW5mby5yZXNvdXJjZSc7XG5pbXBvcnQgeyBCZXdlZ2luZ1V0aWxzIH0gZnJvbSAnLi9zZXJ2aWNlcy9iZXdlZ2luZy11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEJld2VnaW5nVmVycmlqa2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYmV3ZWdpbmctdmVycmlqa2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUml0TGV6ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9yaXQtbGV6ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zaWduYWxlcmluZ3MtYmVlbGQtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IEJlcGFhbE9uZ2VwbGFuZGVBY3RpZXNFZmZlY3QgfSBmcm9tICcuL3N0YXRlL2VmZmVjdC9iZXBhYWwtb25nZXBsYW5kZS1hY3RpZXMuZWZmZWN0JztcbmltcG9ydCB7IEJld2VnaW5nSW52b2VnZW5FZmZlY3QgfSBmcm9tICcuL3N0YXRlL2VmZmVjdC9iZXdlZ2luZy1pbnZvZWdlbi5lZmZlY3QnO1xuaW1wb3J0IHsgRGVsZXRlT25nZXBsYW5kZUFjdGllRWZmZWN0IH0gZnJvbSAnLi9zdGF0ZS9lZmZlY3QvZGVsZXRlLW9uZ2VwbGFuZGUtYWN0aWUuZWZmZWN0JztcbmltcG9ydCB7IExhYWRSb3V0ZUZpbGVzRWZmZWN0IH0gZnJvbSAnLi9zdGF0ZS9lZmZlY3QvbGFhZC1yb3V0ZS1maWxlcy5lZmZlY3QnO1xuaW1wb3J0IHsgTGFhZFNpZ25hbGVyaW5nc2JlZWxkZW5FZmZlY3QgfSBmcm9tICcuL3N0YXRlL2VmZmVjdC9sYWFkLXNpZ25hbGVyaW5nc2JlZWxkZW4uZWZmZWN0JztcbmltcG9ydCB7IFJpdEdvZWRrZXVyZW5FZmZlY3QgfSBmcm9tICcuL3N0YXRlL2VmZmVjdC9yaXQtZ29lZGtldXJlbi5lZmZlY3QnO1xuaW1wb3J0IHsgUml0ZGVsZW5FZmZlY3QgfSBmcm9tICcuL3N0YXRlL2VmZmVjdC9yaXRkZWxlbi5lZmZlY3QnO1xuaW1wb3J0IHsgU3ZnVmlld0VmZmVjdCB9IGZyb20gJy4vc3RhdGUvZWZmZWN0L3N2Zy12aWV3LmVmZmVjdCc7XG5pbXBvcnQgeyBzdG9yZVJlZHVjZXJzIH0gZnJvbSAnLi9zdGF0ZS9tc3QtZWRpdG9yLXN0YXRlJztcbmltcG9ydCB7IEFjdGllSGVscGVyIH0gZnJvbSAnLi91dGlsL2FjdGllLWhlbHBlcic7XG5pbXBvcnQgeyBMb2dnaW5nSGVscGVyIH0gZnJvbSAnLi91dGlsL2xvZ2dpbmctaGVscGVyJztcbmltcG9ydCB7IFpvbmVVdGlsIH0gZnJvbSAnLi91dGlsL3pvbmUtdXRpbCc7XG5pbXBvcnQgeyBDYXJvdXNlbENvbnRyb2xzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Nhcm91c2VsLWNvbnRyb2xzL2Nhcm91c2VsLWNvbnRyb2xzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3ZXJDb250cm9sc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92aWV3ZXItY29udHJvbHMvdmlld2VyLWNvbnRyb2xzLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBTVE9SRV9DT05GSUcgPSB7XG4gICAgcnVudGltZUNoZWNrczoge1xuICAgICAgICBzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTogZmFsc2UsXG4gICAgICAgIHN0cmljdEFjdGlvbkltbXV0YWJpbGl0eTogZmFsc2UsXG4gICAgICAgIC8vIHN0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OiB0cnVlLCAvLyBnZWVmdCBub2cgcnVudGltZSBlcnJvcnMsIHpvdSBtb29pIHppam4gb20gYWFuIHRlIGt1bm5lbiB6ZXR0ZW5cbiAgICAgICAgLy8gc3RyaWN0QWN0aW9uU2VyaWFsaXphYmlsaXR5OiB0cnVlLCAvLyBnZWVmdCBub2cgcnVudGltZSBlcnJvcnMsIHpvdSBtb29pIHppam4gb20gYWFuIHRlIGt1bm5lbiB6ZXR0ZW5cbiAgICAgICAgc3RyaWN0QWN0aW9uVHlwZVVuaXF1ZW5lc3M6IGZhbHNlXG4gICAgfVxufTtcblxuY29uc3QgaW1wb3J0cyA9IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW14Vmlld2VyTW9kdWxlLFxuICAgIFJpandlZ2VuTW9kdWxlLFxuICAgIFJlc291cmNlTW9kdWxlLmZvclJvb3QoKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JSb290KCBzdG9yZVJlZHVjZXJzLCBTVE9SRV9DT05GSUcpLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yUm9vdChbXG4gICAgICAgIERlbGV0ZU9uZ2VwbGFuZGVBY3RpZUVmZmVjdCxcbiAgICAgICAgTGFhZFNpZ25hbGVyaW5nc2JlZWxkZW5FZmZlY3QsXG4gICAgICAgIExhYWRSb3V0ZUZpbGVzRWZmZWN0LFxuICAgICAgICBCZXBhYWxPbmdlcGxhbmRlQWN0aWVzRWZmZWN0LFxuICAgICAgICBCZXdlZ2luZ0ludm9lZ2VuRWZmZWN0LFxuICAgICAgICBSaXRkZWxlbkVmZmVjdCxcbiAgICAgICAgUml0R29lZGtldXJlbkVmZmVjdCxcbiAgICAgICAgU3ZnVmlld0VmZmVjdFxuICAgIF0pXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHMsXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEljb25Db21wb25lbnQsXG4gICAgICAgIE1zdHZpZXdlckNvbXBvbmVudCxcbiAgICAgICAgT3ZlcmxheUNvbXBvbmVudCxcbiAgICAgICAgUHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgICAgIFJwZUNvbXBvbmVudCxcbiAgICAgICAgUml0ZGVsZW5MaWpzdENvbXBvbmVudCxcbiAgICAgICAgUml0ZGVsZW5WaWV3Q29tcG9uZW50LFxuICAgICAgICBDYXJvdXNlbENvbnRyb2xzQ29tcG9uZW50LFxuICAgICAgICBWaWV3ZXJDb250cm9sc0NvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBNc3R2aWV3ZXJDb21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBab25lVXRpbCxcbiAgICAgICAgU2lnbmFsZXJpbmdzYmVlbGRJbmZvUmVzb3VyY2UsXG4gICAgICAgIE1zdExvZ2dpbmdSZXNvdXJjZSxcbiAgICAgICAgRWRpdG9yU2VydmljZSxcbiAgICAgICAgU2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgUml0TGV6ZXJTZXJ2aWNlLFxuICAgICAgICBCZXdlZ2luZ1V0aWxzLFxuICAgICAgICBBY3RpZUhlbHBlcixcbiAgICAgICAgTG9nZ2luZ0hlbHBlcixcbiAgICAgICAgQmV3ZWdpbmdWZXJyaWprZXJTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBNc3RWaWV3ZXJNb2R1bGUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogRWRpdG9yU2VydmljZSwgem9uZVV0aWw6IFpvbmVVdGlsKSB7XG4gICAgICAgIC8vIG1hYWsgZGUgRWRpdG9yU2VydmljZSB0b2VnYW5rZWxpamsgdm9vciBHV1QgY29kZVxuICAgICAgICB3aW5kb3dbJ3JwZSddID0ge1xuICAgICAgICAgICAgRWRpdG9yU2VydmljZTogem9uZVV0aWwucHJveHkoc2VydmljZSlcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -147,4 +147,4 @@ BewegingUtils.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versio
|
|
|
147
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BewegingUtils, decorators: [{
|
|
148
148
|
type: Injectable
|
|
149
149
|
}], ctorParameters: function () { return [{ type: i1.EditorService }]; } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV3ZWdpbmctdXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zZXJ2aWNlcy9iZXdlZ2luZy11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFPdEIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDaEQsQ0FBQztJQUVNLDRCQUE0QixDQUFDLFFBQW1CLEVBQUUsbUJBQStCO1FBQ3BGLE1BQU0sTUFBTSxHQUFlLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFFaEMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVsRixJQUFJLGNBQWMsR0FBYSxJQUFJLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQzdCLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RixJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixDQUFDLEVB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TyxHQUFHLFNBQVUsQ0FBQTtBQUNwQiwrQkFBaUIsR0FBRyxTQUFVLENBQUE7QUFDOUIsMENBQTRCLEdBQUcsSUFBSyxDQUFBOzBHQUwxQyxhQUFhOzhHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdGRlZWwgfSBmcm9tICcuLi9tb2RlbC9yaXRkZWVsJztcbmltcG9ydCB7IEFjdGllLCBCZXdlZ2luZyB9IGZyb20gJy4uL29wdGltbyc7XG5pbXBvcnQgeyBBcnJheU11bHRpbWFwIH0gZnJvbSAnLi4vdXRpbC9tdWx0aS1tYXAnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4vZWRpdG9yLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmV3ZWdpbmdVdGlscyB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgR0VXSUpaSUdEID0gJ0dld2lqemlnZCc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgVE9FR0VWT0VHRCA9ICdUb2VnZXZvZWdkJztcbiAgICBwcml2YXRlIHN0YXRpYyBOT1JNQUFMID0gJ05vcm1hYWwnO1xuICAgIHByaXZhdGUgc3RhdGljIFNFSU5fVFlQRV9GSUNUSUVGID0gJ0ZJQ1RJRUYnO1xuICAgIHByaXZhdGUgc3RhdGljIFNQT09SX05BQVJfVlJJSkVCQUFOX1BPU1RGSVggPSAnX2UnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGV4dHJhY3RCZXdlZ2luZ2VuVWl0Uml0ZGVsZW4ocml0RGVsZW46IFJpdGRlZWxbXSwgb3JpZ2luZWxlQmV3ZWdpbmdlbjogQmV3ZWdpbmdbXSk6IEJld2VnaW5nW10ge1xuICAgICAgICBjb25zdCByZXR2YWw6IEJld2VnaW5nW10gPSBbXTtcbiAgICAgICAgcmV0dmFsLmxlbmd0aCA9IHJpdERlbGVuLmxlbmd0aDtcblxuICAgICAgICBjb25zdCBvcmlnaW5lbGVCZXdlZ2luZ01hcCA9IHRoaXMuYmVwYWFsT3JpZ2luZWxlQmV3ZWdpbmdNYXAob3JpZ2luZWxlQmV3ZWdpbmdlbik7XG5cbiAgICAgICAgbGV0IHZvcmlnZUJld2VnaW5nOiBCZXdlZ2luZyA9IG51bGw7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcml0RGVsZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHJpdGRlZWwgPSByaXREZWxlbltpXTtcbiAgICAgICAgICAgIGlmIChyaXRkZWVsLmJld2VnaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dmFsW2ldID0gcml0ZGVlbC5iZXdlZ2luZztcbiAgICAgICAgICAgICAgICBjb25zdCBuaWV1d0R3YW5nTnVtbWVyID0gQmV3ZWdpbmdVdGlscy50b1JvdXRlRmlsZUR3YW5nTnVtbWVyKHJpdGRlZWwuZ2V0RHdhbmdOdW1tZXIoKSk7XG4gICAgICAgICAgICAgICAgaWYgKEJld2VnaW5nVXRpbHMuaXNHZXdpanppZ2Qocml0ZGVlbCwgbmlldXdEd2FuZ051bW1lciwgb3JpZ2luZWxlQmV3ZWdpbmdNYXApKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHZhbFtpXS53aWp6aWdTdGF0dXMgPSBCZXdlZ2luZ1V0aWxzLkdFV0lKWklHRDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dmFsW2ldLmR3YW5nTnVtbWVyID0gbmlldXdEd2FuZ051bW1lcjtcbiAgICAgICAgICAgICAgICAgICAgcml0ZGVlbC5iZXdlZ2luZy5yaXRBY3RpZXMgPSByaXRkZWVsLmFjdGllcztcbiAgICAgICAgICAgICAgICAgICAgQmV3ZWdpbmdVdGlscy5yZW1vdmVLZXJlbkV4dGVuc2llKHJldHZhbFtpXSk7XG4gICAgICAgICAgICAgICAgICAgIEJld2VnaW5nVXRpbHMucmVtb3ZlS2VyZW5FeHRlbnNpZSh2b3JpZ2VCZXdlZ2luZyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpID09PSByaXREZWxlbi5sZW5ndGggLSAxICYmIEJld2VnaW5nVXRpbHMuYmV3ZWdpbmdlblppam5HZXdpanppZ2Qocml0RGVsZW4sIG9yaWdpbmVsZUJld2VnaW5nZW4pKSB7XG4gICAgICAgICAgICAgICAgICAgIEJld2VnaW5nVXRpbHMucmVtb3ZlS2VyZW5FeHRlbnNpZShyZXR2YWxbaV0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmV0dmFsW2ldLndpanppZ1N0YXR1cyA9PT0gQmV3ZWdpbmdVdGlscy5UT0VHRVZPRUdEKSB7XG4gICAgICAgICAgICAgICAgICAgIEJld2VnaW5nVXRpbHMucmVtb3ZlS2VyZW5FeHRlbnNpZSh2b3JpZ2VCZXdlZ2luZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR2YWxbaV0gPSB0aGlzLm1hYWtCZXdlZ2luZyhyaXRkZWVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHZhbFtpXS52b2xnbnVtbWVyQmlubmVuUml0ID0gaSArIDE7XG4gICAgICAgICAgICB2b3JpZ2VCZXdlZ2luZyA9IHJpdGRlZWwuYmV3ZWdpbmc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldHZhbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBiZXdlZ2luZ2VuWmlqbkdld2lqemlnZChyaXREZWxlbjogUml0ZGVlbFtdLCBvcmlnaW5lbGVCZXdlZ2luZ2VuOiBCZXdlZ2luZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHJpdERlbGVuQXJyYXkgPSBbXTtcbiAgICAgICAgY29uc3QgYmV3ZWdpbmdlbklkQXJyYXkgPSBbXTtcblxuICAgICAgICByaXREZWxlbi5mb3JFYWNoKHIgPT4ge1xuICAgICAgICAgICAgaWYgKHIuYmV3ZWdpbmcpIHtcbiAgICAgICAgICAgICAgICByaXREZWxlbkFycmF5LnB1c2goci5iZXdlZ2luZy5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBvcmlnaW5lbGVCZXdlZ2luZ2VuLmZvckVhY2goYiA9PiB7XG4gICAgICAgICAgICBiZXdlZ2luZ2VuSWRBcnJheS5wdXNoKGIuaWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICByaXREZWxlbkFycmF5LnNvcnQoKTtcbiAgICAgICAgYmV3ZWdpbmdlbklkQXJyYXkuc29ydCgpO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocml0RGVsZW5BcnJheSkgIT09IEpTT04uc3RyaW5naWZ5KGJld2VnaW5nZW5JZEFycmF5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyByZW1vdmVLZXJlbkV4dGVuc2llKGJld2VnaW5nOiBCZXdlZ2luZyk6IHZvaWQge1xuICAgICAgICBpZiAoYmV3ZWdpbmcgJiYgdGhpcy5jb250YWluc0V4dGVuc2llKCdfaycsIGJld2VnaW5nLm5hYXJTcG9vcikpIHtcbiAgICAgICAgICAgIGJld2VnaW5nLm5hYXJTcG9vciA9IGJld2VnaW5nLm5hYXJTcG9vci5zcGxpdCgnX2snKVswXTtcbiAgICAgICAgICAgIGJld2VnaW5nLndpanppZ1N0YXR1cyA9IHRoaXMuR0VXSUpaSUdEO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGNvbnRhaW5zRXh0ZW5zaWUobWF0Y2g6IHN0cmluZywgc3RyaW5nVG9DaGVjazogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzdHJpbmdUb0NoZWNrLmluZGV4T2YobWF0Y2gpICE9PSAtMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBpc0dld2lqemlnZChyaXRkZWVsOiBSaXRkZWVsLCBuaWV1d0R3YW5nTnVtbWVyLCBvcmlnaW5lbGVCZXdlZ2luZ2VuTWFwOiBBcnJheU11bHRpbWFwPG51bWJlciwgc3RyaW5nPik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkd2FuZ0dld2lqemlnZCA9IHJpdGRlZWwuYmV3ZWdpbmcuZHdhbmdOdW1tZXIgIT09IG5pZXV3RHdhbmdOdW1tZXI7XG4gICAgICAgIGxldCBnZXdpanppZ2QgPSBmYWxzZTtcbiAgICAgICAgaWYgKHJpdGRlZWwuYmV3ZWdpbmcud2lqemlnU3RhdHVzID09PSB0aGlzLk5PUk1BQUwpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmVsZUJld2VnaW5nQWN0aWVzID0gb3JpZ2luZWxlQmV3ZWdpbmdlbk1hcC5nZXQocml0ZGVlbC5iZXdlZ2luZy5pZCk7XG4gICAgICAgICAgICBjb25zdCBodWlkaWdlQWN0aWVzID0gdGhpcy5jcmVhdGVTb3J0ZWRBY3RpZUlkTGlzdChyaXRkZWVsLmFjdGllcyk7XG4gICAgICAgICAgICBnZXdpanppZ2QgPSBKU09OLnN0cmluZ2lmeShodWlkaWdlQWN0aWVzKSAhPT0gSlNPTi5zdHJpbmdpZnkob3JpZ2luZWxlQmV3ZWdpbmdBY3RpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkd2FuZ0dld2lqemlnZCB8fCBnZXdpanppZ2Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiZXBhYWxPcmlnaW5lbGVCZXdlZ2luZ01hcChvcmlnaW5lbGVCZXdlZ2luZ2VuOiBCZXdlZ2luZ1tdKTogQXJyYXlNdWx0aW1hcDxudW1iZXIsIHN0cmluZz4ge1xuICAgICAgICBjb25zdCBiZXdlZ2luZ01hcCA9IG5ldyBBcnJheU11bHRpbWFwPG51bWJlciwgc3RyaW5nPigpO1xuICAgICAgICBvcmlnaW5lbGVCZXdlZ2luZ2VuLmZvckVhY2goYiA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY3RpZUlkcyA9IEJld2VnaW5nVXRpbHMuY3JlYXRlU29ydGVkQWN0aWVJZExpc3QoYi5yaXRBY3RpZXMpO1xuICAgICAgICAgICAgYmV3ZWdpbmdNYXAucHV0QWxsKGIuaWQsIGFjdGllSWRzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBiZXdlZ2luZ01hcDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjcmVhdGVTb3J0ZWRBY3RpZUlkTGlzdChhY3RpZXM6IEFjdGllW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGFjdGllSWRzID0gW107XG4gICAgICAgIGFjdGllcy5mb3JFYWNoKHJhID0+IGFjdGllSWRzLnB1c2gocmEuaWQpKTtcbiAgICAgICAgYWN0aWVJZHMuc29ydCgpO1xuICAgICAgICByZXR1cm4gYWN0aWVJZHM7XG4gICAgfVxuXG4gICAgcHVibGljIG1hYWtCZXdlZ2luZyhuZXdSaXRkZWVsOiBSaXRkZWVsKTogQmV3ZWdpbmcge1xuICAgICAgICBjb25zdCBlaW5kU2VpbiA9IG5ld1JpdGRlZWwuZ2V0Um91dGUoKS5nZXRFaW5kU2VpbigpO1xuXG4gICAgICAgIGxldCBuYWFyU2Vpbk5hYW07XG4gICAgICAgIGxldCBuYWFyU2VpblBwbGc7XG4gICAgICAgIGxldCBuYWFyU3Bvb3IgPSBuZXdSaXRkZWVsLmdldE5hYXJQcmxTcG9vcigpO1xuICAgICAgICBpZiAoZWluZFNlaW4uZ2V0VHlwZUFsc1N0cmluZygpID09PSBCZXdlZ2luZ1V0aWxzLlNFSU5fVFlQRV9GSUNUSUVGKSB7XG4gICAgICAgICAgICBpZiAobmV3Uml0ZGVlbC5oZWVmdFZyaWplYmFhbkluZm8oKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZiRWluZFNlaW4gPSBuZXdSaXRkZWVsLmdldFZyaWplYmFhblJpandlZygpLmdldEVpbmRTZWluKCk7XG4gICAgICAgICAgICAgICAgbmFhclNlaW5OYWFtID0gdmJFaW5kU2Vpbi5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgbmFhclNlaW5QcGxnID0gdmJFaW5kU2Vpbi5nZXRQUExHKCk7XG4gICAgICAgICAgICAgICAgbmFhclNwb29yICs9IEJld2VnaW5nVXRpbHMuU1BPT1JfTkFBUl9WUklKRUJBQU5fUE9TVEZJWDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcmlqd2VncGxhbiA9IHRoaXMuZWRpdG9yU2VydmljZS5nZXRSaWp3ZWdwbGFuKG5ld1JpdGRlZWwuZ2V0UHBsZygpKTtcbiAgICAgICAgICAgICAgICBjb25zdCByaWp3ZWdBbmRlcmVSaWNodGluZyA9IHJpandlZ3BsYW4uZ2V0Umlqd2VnKG5ld1JpdGRlZWwuZ2V0VmlzdWVlbE5hYXJQcmxTcG9vcigpLCBuZXdSaXRkZWVsLmdldFZhblBybFNwb29yKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0U2VpbkluQW5kZXJlUmljaHRpbmcgPSByaWp3ZWdBbmRlcmVSaWNodGluZy5nZXRCZWdpblNlaW4oKTtcbiAgICAgICAgICAgICAgICBuYWFyU2Vpbk5hYW0gPSBzdGFydFNlaW5JbkFuZGVyZVJpY2h0aW5nLmdldE5hbWUoKTtcbiAgICAgICAgICAgICAgICBuYWFyU2VpblBwbGcgPSBzdGFydFNlaW5JbkFuZGVyZVJpY2h0aW5nLmdldFBQTEcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5hYXJTZWluTmFhbSA9IGVpbmRTZWluLmdldE5hbWUoKTtcbiAgICAgICAgICAgIG5hYXJTZWluUHBsZyA9IGVpbmRTZWluLmdldFBQTEcoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQmV3ZWdpbmdVdGlscy52dWxCZXdlZ2luZyhuZXdSaXRkZWVsLCBuYWFyU2Vpbk5hYW0sIG5hYXJTZWluUHBsZywgbmFhclNwb29yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB2dWxCZXdlZ2luZyhuZXdSaXRkZWVsOiBSaXRkZWVsLCBuYWFyU2Vpbk5hYW06IHN0cmluZywgbmFhclNlaW5QcGxnOiBzdHJpbmcsIG5hYXJTcG9vcjogc3RyaW5nKTogQmV3ZWdpbmcge1xuICAgICAgICBjb25zdCBiZXdlZ2luZzogQmV3ZWdpbmcgPSB7XG4gICAgICAgICAgICBpZDogMCxcbiAgICAgICAgICAgIHJpdElkOiAwLFxuICAgICAgICAgICAgdm9sZ251bW1lckJpbm5lblJpdDogLTEsXG4gICAgICAgICAgICB2YW5TZWluVHlwZTogJ0JFRF9TRUlOJyxcbiAgICAgICAgICAgIHZhblNlaW5OYWFtOiBuZXdSaXRkZWVsLmdldFJvdXRlKCkuZ2V0QmVnaW5TZWluKCkuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgdmFuU2VpblBwbGc6IG5ld1JpdGRlZWwuZ2V0Um91dGUoKS5nZXRCZWdpblNlaW4oKS5nZXRQUExHKCksXG4gICAgICAgICAgICBuYWFyU2VpblR5cGU6ICdCRURfU0VJTicsXG4gICAgICAgICAgICBuYWFyU2Vpbk5hYW0sXG4gICAgICAgICAgICBuYWFyU2VpblBwbGcsXG4gICAgICAgICAgICBkd2FuZ051bW1lcjogQmV3ZWdpbmdVdGlscy50b1JvdXRlRmlsZUR3YW5nTnVtbWVyKG5ld1JpdGRlZWwuZ2V0RHdhbmdOdW1tZXIoKSksXG4gICAgICAgICAgICB2YW5QcGxnOiBuZXdSaXRkZWVsLmdldFBwbGcoKSxcbiAgICAgICAgICAgIHZhblNwb29yOiBuZXdSaXRkZWVsLmdldFZhblBybFNwb29yKCksXG4gICAgICAgICAgICBuYWFyUHBsZzogbmV3Uml0ZGVlbC5nZXRQcGxnKCksXG4gICAgICAgICAgICBuYWFyU3Bvb3IsXG4gICAgICAgICAgICByaXRBY3RpZXM6IFtdLFxuICAgICAgICAgICAgd2lqemlnU3RhdHVzOiB0aGlzLlRPRUdFVk9FR0RcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGJld2VnaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHRvUm91dGVGaWxlRHdhbmdOdW1tZXIoZHdhbmdOdW1tZXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoZHdhbmdOdW1tZXIgPT09IDApID8gLTEgOiBkd2FuZ051bW1lcjtcbiAgICB9XG59XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV3ZWdpbmctdXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zZXJ2aWNlcy9iZXdlZ2luZy11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFPdEIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDaEQsQ0FBQztJQUVNLDRCQUE0QixDQUFDLFFBQW1CLEVBQUUsbUJBQStCO1FBQ3BGLE1BQU0sTUFBTSxHQUFlLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFFaEMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVsRixJQUFJLGNBQWMsR0FBYSxJQUFJLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQzdCLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RixJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixDQUFDLEVB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TyxHQUFHLFNBQVMsQ0FBQztBQUNaLCtCQUFpQixHQUFHLFNBQVUsQ0FBQTtBQUM5QiwwQ0FBNEIsR0FBRyxJQUFLLENBQUE7MEdBTDFDLGFBQWE7OEdBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUml0ZGVlbCB9IGZyb20gJy4uL21vZGVsL3JpdGRlZWwnO1xuaW1wb3J0IHsgQWN0aWUsIEJld2VnaW5nIH0gZnJvbSAnLi4vb3B0aW1vJztcbmltcG9ydCB7IEFycmF5TXVsdGltYXAgfSBmcm9tICcuLi91dGlsL211bHRpLW1hcCc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi9lZGl0b3Iuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCZXdlZ2luZ1V0aWxzIHtcbiAgICBzdGF0aWMgR0VXSUpaSUdEID0gJ0dld2lqemlnZCc7XG4gICAgc3RhdGljIFRPRUdFVk9FR0QgPSAnVG9lZ2V2b2VnZCc7XG4gICAgc3RhdGljIE5PUk1BQUwgPSAnTm9ybWFhbCc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgU0VJTl9UWVBFX0ZJQ1RJRUYgPSAnRklDVElFRic7XG4gICAgcHJpdmF0ZSBzdGF0aWMgU1BPT1JfTkFBUl9WUklKRUJBQU5fUE9TVEZJWCA9ICdfZSc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXh0cmFjdEJld2VnaW5nZW5VaXRSaXRkZWxlbihyaXREZWxlbjogUml0ZGVlbFtdLCBvcmlnaW5lbGVCZXdlZ2luZ2VuOiBCZXdlZ2luZ1tdKTogQmV3ZWdpbmdbXSB7XG4gICAgICAgIGNvbnN0IHJldHZhbDogQmV3ZWdpbmdbXSA9IFtdO1xuICAgICAgICByZXR2YWwubGVuZ3RoID0gcml0RGVsZW4ubGVuZ3RoO1xuXG4gICAgICAgIGNvbnN0IG9yaWdpbmVsZUJld2VnaW5nTWFwID0gdGhpcy5iZXBhYWxPcmlnaW5lbGVCZXdlZ2luZ01hcChvcmlnaW5lbGVCZXdlZ2luZ2VuKTtcblxuICAgICAgICBsZXQgdm9yaWdlQmV3ZWdpbmc6IEJld2VnaW5nID0gbnVsbDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByaXREZWxlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgcml0ZGVlbCA9IHJpdERlbGVuW2ldO1xuICAgICAgICAgICAgaWYgKHJpdGRlZWwuYmV3ZWdpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR2YWxbaV0gPSByaXRkZWVsLmJld2VnaW5nO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5pZXV3RHdhbmdOdW1tZXIgPSBCZXdlZ2luZ1V0aWxzLnRvUm91dGVGaWxlRHdhbmdOdW1tZXIocml0ZGVlbC5nZXREd2FuZ051bW1lcigpKTtcbiAgICAgICAgICAgICAgICBpZiAoQmV3ZWdpbmdVdGlscy5pc0dld2lqemlnZChyaXRkZWVsLCBuaWV1d0R3YW5nTnVtbWVyLCBvcmlnaW5lbGVCZXdlZ2luZ01hcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dmFsW2ldLndpanppZ1N0YXR1cyA9IEJld2VnaW5nVXRpbHMuR0VXSUpaSUdEO1xuICAgICAgICAgICAgICAgICAgICByZXR2YWxbaV0uZHdhbmdOdW1tZXIgPSBuaWV1d0R3YW5nTnVtbWVyO1xuICAgICAgICAgICAgICAgICAgICByaXRkZWVsLmJld2VnaW5nLnJpdEFjdGllcyA9IHJpdGRlZWwuYWN0aWVzO1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUocmV0dmFsW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgQmV3ZWdpbmdVdGlscy5yZW1vdmVLZXJlbkV4dGVuc2llKHZvcmlnZUJld2VnaW5nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPT09IHJpdERlbGVuLmxlbmd0aCAtIDEgJiYgQmV3ZWdpbmdVdGlscy5iZXdlZ2luZ2VuWmlqbkdld2lqemlnZChyaXREZWxlbiwgb3JpZ2luZWxlQmV3ZWdpbmdlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgQmV3ZWdpbmdVdGlscy5yZW1vdmVLZXJlbkV4dGVuc2llKHJldHZhbFtpXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXR2YWxbaV0ud2lqemlnU3RhdHVzID09PSBCZXdlZ2luZ1V0aWxzLlRPRUdFVk9FR0QpIHtcbiAgICAgICAgICAgICAgICAgICAgQmV3ZWdpbmdVdGlscy5yZW1vdmVLZXJlbkV4dGVuc2llKHZvcmlnZUJld2VnaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHZhbFtpXSA9IHRoaXMubWFha0Jld2VnaW5nKHJpdGRlZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dmFsW2ldLnZvbGdudW1tZXJCaW5uZW5SaXQgPSBpICsgMTtcbiAgICAgICAgICAgIHZvcmlnZUJld2VnaW5nID0gcml0ZGVlbC5iZXdlZ2luZztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0dmFsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGJld2VnaW5nZW5aaWpuR2V3aWp6aWdkKHJpdERlbGVuOiBSaXRkZWVsW10sIG9yaWdpbmVsZUJld2VnaW5nZW46IEJld2VnaW5nW10pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgcml0RGVsZW5BcnJheSA9IFtdO1xuICAgICAgICBjb25zdCBiZXdlZ2luZ2VuSWRBcnJheSA9IFtdO1xuXG4gICAgICAgIHJpdERlbGVuLmZvckVhY2gociA9PiB7XG4gICAgICAgICAgICBpZiAoci5iZXdlZ2luZykge1xuICAgICAgICAgICAgICAgIHJpdERlbGVuQXJyYXkucHVzaChyLmJld2VnaW5nLmlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG9yaWdpbmVsZUJld2VnaW5nZW4uZm9yRWFjaChiID0+IHtcbiAgICAgICAgICAgIGJld2VnaW5nZW5JZEFycmF5LnB1c2goYi5pZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJpdERlbGVuQXJyYXkuc29ydCgpO1xuICAgICAgICBiZXdlZ2luZ2VuSWRBcnJheS5zb3J0KCk7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyaXREZWxlbkFycmF5KSAhPT0gSlNPTi5zdHJpbmdpZnkoYmV3ZWdpbmdlbklkQXJyYXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJlbW92ZUtlcmVuRXh0ZW5zaWUoYmV3ZWdpbmc6IEJld2VnaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChiZXdlZ2luZyAmJiB0aGlzLmNvbnRhaW5zRXh0ZW5zaWUoJ19rJywgYmV3ZWdpbmcubmFhclNwb29yKSkge1xuICAgICAgICAgICAgYmV3ZWdpbmcubmFhclNwb29yID0gYmV3ZWdpbmcubmFhclNwb29yLnNwbGl0KCdfaycpWzBdO1xuICAgICAgICAgICAgYmV3ZWdpbmcud2lqemlnU3RhdHVzID0gdGhpcy5HRVdJSlpJR0Q7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgY29udGFpbnNFeHRlbnNpZShtYXRjaDogc3RyaW5nLCBzdHJpbmdUb0NoZWNrOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZ1RvQ2hlY2suaW5kZXhPZihtYXRjaCkgIT09IC0xO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGlzR2V3aWp6aWdkKHJpdGRlZWw6IFJpdGRlZWwsIG5pZXV3RHdhbmdOdW1tZXIsIG9yaWdpbmVsZUJld2VnaW5nZW5NYXA6IEFycmF5TXVsdGltYXA8bnVtYmVyLCBzdHJpbmc+KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGR3YW5nR2V3aWp6aWdkID0gcml0ZGVlbC5iZXdlZ2luZy5kd2FuZ051bW1lciAhPT0gbmlldXdEd2FuZ051bW1lcjtcbiAgICAgICAgbGV0IGdld2lqemlnZCA9IGZhbHNlO1xuICAgICAgICBpZiAocml0ZGVlbC5iZXdlZ2luZy53aWp6aWdTdGF0dXMgPT09IHRoaXMuTk9STUFBTCkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luZWxlQmV3ZWdpbmdBY3RpZXMgPSBvcmlnaW5lbGVCZXdlZ2luZ2VuTWFwLmdldChyaXRkZWVsLmJld2VnaW5nLmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGh1aWRpZ2VBY3RpZXMgPSB0aGlzLmNyZWF0ZVNvcnRlZEFjdGllSWRMaXN0KHJpdGRlZWwuYWN0aWVzKTtcbiAgICAgICAgICAgIGdld2lqemlnZCA9IEpTT04uc3RyaW5naWZ5KGh1aWRpZ2VBY3RpZXMpICE9PSBKU09OLnN0cmluZ2lmeShvcmlnaW5lbGVCZXdlZ2luZ0FjdGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGR3YW5nR2V3aWp6aWdkIHx8IGdld2lqemlnZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlcGFhbE9yaWdpbmVsZUJld2VnaW5nTWFwKG9yaWdpbmVsZUJld2VnaW5nZW46IEJld2VnaW5nW10pOiBBcnJheU11bHRpbWFwPG51bWJlciwgc3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGJld2VnaW5nTWFwID0gbmV3IEFycmF5TXVsdGltYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG4gICAgICAgIG9yaWdpbmVsZUJld2VnaW5nZW4uZm9yRWFjaChiID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGllSWRzID0gQmV3ZWdpbmdVdGlscy5jcmVhdGVTb3J0ZWRBY3RpZUlkTGlzdChiLnJpdEFjdGllcyk7XG4gICAgICAgICAgICBiZXdlZ2luZ01hcC5wdXRBbGwoYi5pZCwgYWN0aWVJZHMpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGJld2VnaW5nTWFwO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNyZWF0ZVNvcnRlZEFjdGllSWRMaXN0KGFjdGllczogQWN0aWVbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgYWN0aWVJZHMgPSBbXTtcbiAgICAgICAgYWN0aWVzLmZvckVhY2gocmEgPT4gYWN0aWVJZHMucHVzaChyYS5pZCkpO1xuICAgICAgICBhY3RpZUlkcy5zb3J0KCk7XG4gICAgICAgIHJldHVybiBhY3RpZUlkcztcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFha0Jld2VnaW5nKG5ld1JpdGRlZWw6IFJpdGRlZWwpOiBCZXdlZ2luZyB7XG4gICAgICAgIGNvbnN0IGVpbmRTZWluID0gbmV3Uml0ZGVlbC5nZXRSb3V0ZSgpLmdldEVpbmRTZWluKCk7XG5cbiAgICAgICAgbGV0IG5hYXJTZWluTmFhbTtcbiAgICAgICAgbGV0IG5hYXJTZWluUHBsZztcbiAgICAgICAgbGV0IG5hYXJTcG9vciA9IG5ld1JpdGRlZWwuZ2V0TmFhclBybFNwb29yKCk7XG4gICAgICAgIGlmIChlaW5kU2Vpbi5nZXRUeXBlQWxzU3RyaW5nKCkgPT09IEJld2VnaW5nVXRpbHMuU0VJTl9UWVBFX0ZJQ1RJRUYpIHtcbiAgICAgICAgICAgIGlmIChuZXdSaXRkZWVsLmhlZWZ0VnJpamViYWFuSW5mbygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmJFaW5kU2VpbiA9IG5ld1JpdGRlZWwuZ2V0VnJpamViYWFuUmlqd2VnKCkuZ2V0RWluZFNlaW4oKTtcbiAgICAgICAgICAgICAgICBuYWFyU2Vpbk5hYW0gPSB2YkVpbmRTZWluLmdldE5hbWUoKTtcbiAgICAgICAgICAgICAgICBuYWFyU2VpblBwbGcgPSB2YkVpbmRTZWluLmdldFBQTEcoKTtcbiAgICAgICAgICAgICAgICBuYWFyU3Bvb3IgKz0gQmV3ZWdpbmdVdGlscy5TUE9PUl9OQUFSX1ZSSUpFQkFBTl9QT1NURklYO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByaWp3ZWdwbGFuID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmdldFJpandlZ3BsYW4obmV3Uml0ZGVlbC5nZXRQcGxnKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpandlZ0FuZGVyZVJpY2h0aW5nID0gcmlqd2VncGxhbi5nZXRSaWp3ZWcobmV3Uml0ZGVlbC5nZXRWaXN1ZWVsTmFhclBybFNwb29yKCksIG5ld1JpdGRlZWwuZ2V0VmFuUHJsU3Bvb3IoKSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRTZWluSW5BbmRlcmVSaWNodGluZyA9IHJpandlZ0FuZGVyZVJpY2h0aW5nLmdldEJlZ2luU2VpbigpO1xuICAgICAgICAgICAgICAgIG5hYXJTZWluTmFhbSA9IHN0YXJ0U2VpbkluQW5kZXJlUmljaHRpbmcuZ2V0TmFtZSgpO1xuICAgICAgICAgICAgICAgIG5hYXJTZWluUHBsZyA9IHN0YXJ0U2VpbkluQW5kZXJlUmljaHRpbmcuZ2V0UFBMRygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmFhclNlaW5OYWFtID0gZWluZFNlaW4uZ2V0TmFtZSgpO1xuICAgICAgICAgICAgbmFhclNlaW5QcGxnID0gZWluZFNlaW4uZ2V0UFBMRygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBCZXdlZ2luZ1V0aWxzLnZ1bEJld2VnaW5nKG5ld1JpdGRlZWwsIG5hYXJTZWluTmFhbSwgbmFhclNlaW5QcGxnLCBuYWFyU3Bvb3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHZ1bEJld2VnaW5nKG5ld1JpdGRlZWw6IFJpdGRlZWwsIG5hYXJTZWluTmFhbTogc3RyaW5nLCBuYWFyU2VpblBwbGc6IHN0cmluZywgbmFhclNwb29yOiBzdHJpbmcpOiBCZXdlZ2luZyB7XG4gICAgICAgIGNvbnN0IGJld2VnaW5nOiBCZXdlZ2luZyA9IHtcbiAgICAgICAgICAgIGlkOiAwLFxuICAgICAgICAgICAgcml0SWQ6IDAsXG4gICAgICAgICAgICB2b2xnbnVtbWVyQmlubmVuUml0OiAtMSxcbiAgICAgICAgICAgIHZhblNlaW5UeXBlOiAnQkVEX1NFSU4nLFxuICAgICAgICAgICAgdmFuU2Vpbk5hYW06IG5ld1JpdGRlZWwuZ2V0Um91dGUoKS5nZXRCZWdpblNlaW4oKS5nZXROYW1lKCksXG4gICAgICAgICAgICB2YW5TZWluUHBsZzogbmV3Uml0ZGVlbC5nZXRSb3V0ZSgpLmdldEJlZ2luU2VpbigpLmdldFBQTEcoKSxcbiAgICAgICAgICAgIG5hYXJTZWluVHlwZTogJ0JFRF9TRUlOJyxcbiAgICAgICAgICAgIG5hYXJTZWluTmFhbSxcbiAgICAgICAgICAgIG5hYXJTZWluUHBsZyxcbiAgICAgICAgICAgIGR3YW5nTnVtbWVyOiBCZXdlZ2luZ1V0aWxzLnRvUm91dGVGaWxlRHdhbmdOdW1tZXIobmV3Uml0ZGVlbC5nZXREd2FuZ051bW1lcigpKSxcbiAgICAgICAgICAgIHZhblBwbGc6IG5ld1JpdGRlZWwuZ2V0UHBsZygpLFxuICAgICAgICAgICAgdmFuU3Bvb3I6IG5ld1JpdGRlZWwuZ2V0VmFuUHJsU3Bvb3IoKSxcbiAgICAgICAgICAgIG5hYXJQcGxnOiBuZXdSaXRkZWVsLmdldFBwbGcoKSxcbiAgICAgICAgICAgIG5hYXJTcG9vcixcbiAgICAgICAgICAgIHJpdEFjdGllczogW10sXG4gICAgICAgICAgICB3aWp6aWdTdGF0dXM6IHRoaXMuVE9FR0VWT0VHRFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gYmV3ZWdpbmc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdG9Sb3V0ZUZpbGVEd2FuZ051bW1lcihkd2FuZ051bW1lcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChkd2FuZ051bW1lciA9PT0gMCkgPyAtMSA6IGR3YW5nTnVtbWVyO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -13,17 +13,15 @@ import * as i1 from "@ngrx/effects";
|
|
|
13
13
|
import * as i2 from "@ngrx/store";
|
|
14
14
|
import * as i3 from "../../services/signalerings-beeld-manager.service";
|
|
15
15
|
import * as i4 from "../../services/editor.service";
|
|
16
|
-
import * as i5 from "
|
|
17
|
-
import * as i6 from "../../
|
|
18
|
-
import * as i7 from "../../
|
|
19
|
-
import * as i8 from "../../services/connector.service";
|
|
16
|
+
import * as i5 from "../../services/melding-emitter.service";
|
|
17
|
+
import * as i6 from "../../resources/signaleringsbeeldinfo.resource";
|
|
18
|
+
import * as i7 from "../../services/connector.service";
|
|
20
19
|
export class LaadSignaleringsbeeldenEffect {
|
|
21
|
-
constructor(actions$, store, signaleringsBeeldManagerService, editorService,
|
|
20
|
+
constructor(actions$, store, signaleringsBeeldManagerService, editorService, meldingEmitterService, sbiResource, connectorService) {
|
|
22
21
|
this.actions$ = actions$;
|
|
23
22
|
this.store = store;
|
|
24
23
|
this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
|
|
25
24
|
this.editorService = editorService;
|
|
26
|
-
this.sbSvgUtilService = sbSvgUtilService;
|
|
27
25
|
this.meldingEmitterService = meldingEmitterService;
|
|
28
26
|
this.sbiResource = sbiResource;
|
|
29
27
|
this.connectorService = connectorService;
|
|
@@ -356,9 +354,9 @@ export class LaadSignaleringsbeeldenEffect {
|
|
|
356
354
|
});
|
|
357
355
|
}
|
|
358
356
|
}
|
|
359
|
-
LaadSignaleringsbeeldenEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LaadSignaleringsbeeldenEffect, deps: [{ token: i1.Actions }, { token: i2.Store }, { token: i3.SignaleringsBeeldManagerService }, { token: i4.EditorService }, { token: i5.
|
|
357
|
+
LaadSignaleringsbeeldenEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LaadSignaleringsbeeldenEffect, deps: [{ token: i1.Actions }, { token: i2.Store }, { token: i3.SignaleringsBeeldManagerService }, { token: i4.EditorService }, { token: i5.MeldingEmitterService }, { token: i6.SignaleringsbeeldInfoResource }, { token: i7.ConnectorService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
360
358
|
LaadSignaleringsbeeldenEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LaadSignaleringsbeeldenEffect });
|
|
361
359
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LaadSignaleringsbeeldenEffect, decorators: [{
|
|
362
360
|
type: Injectable
|
|
363
|
-
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.Store }, { type: i3.SignaleringsBeeldManagerService }, { type: i4.EditorService }, { type: i5.
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFhZC1zaWduYWxlcmluZ3NiZWVsZGVuLmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zdGF0ZS9lZmZlY3QvbGFhZC1zaWduYWxlcmluZ3NiZWVsZGVuLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdkUsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFXLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sS0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxVQUFVLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLG1DQUFtQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkcsT0FBTyxLQUFLLGVBQWUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQUsvRCxNQUFNLE9BQU8sNkJBQTZCO0lBR3RDLFlBQW9CLFFBQWlCLEVBQ2pCLEtBQTRCLEVBQzVCLCtCQUFnRSxFQUNoRSxhQUE0QixFQUM1QixnQkFBb0QsRUFDcEQscUJBQTRDLEVBQzVDLFdBQTBDLEVBQzFDLGdCQUFrQztRQVBsQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBQzVCLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7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QTZCO2tCQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2lnbmFsZXJpbmdzYmVlbGRTdmdVdGlsaXR5U2VydmljZSB9IGZyb20gJ0Bsb3hpYS9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgSW14Vmlld2VyQ29tcG9uZW50LCBQb2ludCwgU3ZnSW5mbyB9IGZyb20gJ0Bsb3hpYS9pbXgtdmlld2VyJztcbmltcG9ydCB7IHNiYmxhZCB9IGZyb20gJ0Bsb3hpYS9yaWp3ZWdlbic7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBtYXAsIHRha2UsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUml0ZGVlbCwgUml0ZGVlbFppY2h0YmFhcmhlaWQgfSBmcm9tICcuLi8uLi9tb2RlbC9yaXRkZWVsJztcbmltcG9ydCB7IEluZnJhTW9kZWwgfSBmcm9tICcuLi8uLi9vcHRpbW8nO1xuaW1wb3J0IHsgSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0bywgU2lnbmFsZXJpbmdzYmVlbGRJbmZvUmVzb3VyY2UgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvc2lnbmFsZXJpbmdzYmVlbGRpbmZvLnJlc291cmNlJztcbmltcG9ydCB7IENvbm5lY3RvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25uZWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVsZGluZ0VtaXR0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVsZGluZy1lbWl0dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NpZ25hbGVyaW5ncy1iZWVsZC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVsZGluZ0J1aWxkZXIgfSBmcm9tICcuLi8uLi91dGlsL21lbGRpbmctYnVpbGRlcic7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XG5pbXBvcnQgKiBhcyBNc3RBY3Rpb25zIGZyb20gJy4uL2FjdGlvbnMvYWN0aW9ucyc7XG5pbXBvcnQgeyBTZXRTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zLCBTZXRWaXNpYmxlU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcyB9IGZyb20gJy4uL2FjdGlvbnMvYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBSaXRkZWxlbkFjdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9yaXRkZWxlbi5hY3Rpb25zJztcbmltcG9ydCB7IE1zdEVkaXRvclN0YXRlIH0gZnJvbSAnLi4vbXN0LWVkaXRvci1zdGF0ZSc7XG5pbXBvcnQgVG9wb2xvZ3lFbGVtZW50ID0gc2JibGFkLlRvcG9sb2d5RWxlbWVudDtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExhYWRTaWduYWxlcmluZ3NiZWVsZGVuRWZmZWN0IHtcbiAgICBwcml2YXRlIFNWR19QSVhFTF9SVUlNVEUgPSAzMDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8TXN0RWRpdG9yU3RhdGU+LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZTogU2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzYlN2Z1V0aWxTZXJ2aWNlOiBTaWduYWxlcmluZ3NiZWVsZFN2Z1V0aWxpdHlTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgbWVsZGluZ0VtaXR0ZXJTZXJ2aWNlOiBNZWxkaW5nRW1pdHRlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzYmlSZXNvdXJjZTogU2lnbmFsZXJpbmdzYmVlbGRJbmZvUmVzb3VyY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjb25uZWN0b3JTZXJ2aWNlOiBDb25uZWN0b3JTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgdmVyd2Vya1JpdGRlbGVuJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShSaXRkZWxlbkFjdGlvbnMuc2V0Uml0RGVsZW4sIFJpdGRlbGVuQWN0aW9ucy5uYXZpZ2VlciwgUml0ZGVsZW5BY3Rpb25zLm5hdmlnZWVyVmFuYWYpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlKSxcbiAgICAgICAgbWFwKChbYWN0aWUsIHN0b3JlU3RhdGVdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1zdEFjdGlvbnMuU2V0T25nZXBsYW5kZUFjdGllc0JlcGFhbGQoZmFsc2UpKTtcbiAgICAgICAgICAgIHRoaXMudmVyd2Vya1JpdGRlbGVuKGFjdGllLCBzdG9yZVN0YXRlKTtcbiAgICAgICAgfSkpLCB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICAgKTtcblxuICAgIHZlcndlcmtSaXRkZWxlbihhY3RpZSwgc3RvcmVTdGF0ZTogTXN0RWRpdG9yU3RhdGUpIHtcbiAgICAgICAgY29uc3QgaXNJbml0ID0gYWN0aWUudHlwZSA9PT0gUml0ZGVsZW5BY3Rpb25zLlNFVF9SSVRfREVMRU47XG4gICAgICAgIGNvbnN0IHJpdERlbGVuOiBSaXRkZWVsW10gPSBpc0luaXQgPyBhY3RpZS5yaXREZWxlbiA6IHN0b3JlU3RhdGUucml0RGVsZW47XG4gICAgICAgIGNvbnN0IHN0b3JlRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdID0gc3RvcmVTdGF0ZS5zaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zO1xuXG4gICAgICAgIC8vIFRPRE8gc3RhcHNpemUgdmFuIDEgd2Vya3QgbnUgbmlldCwgZXIgd29yZHQgYWxsZWVuIG5hYXIgcGFnaW5hdGllc2l6ZSBnZWtla2VuIHZhbmFmIGRlIGxhYXRzdGUgemljaHRiYXJlIHJpdGRlZWwuXG4gICAgICAgIHRoaXMubmF2aWdlZXIocml0RGVsZW4sIGFjdGllLCBzdG9yZUR0b3MpO1xuXG4gICAgICAgIGNvbnN0IHZpc2libGVSaXREZWxlbiA9IHJpdERlbGVuLmZpbHRlcihuID0+IG4uaXNaaWNodGJhYXJCaW5uZW5XaW5kb3coKSk7XG4gICAgICAgIGNvbnN0IHZpc2libGVSaXRQcGxnczogc3RyaW5nW10gPSB2aXNpYmxlUml0RGVsZW4ubWFwKHIgPT4gci5nZXRQcGxnKCkpLmZpbHRlcih0aGlzLmRpc3RpbmN0KTtcblxuICAgICAgICBjb25zdCB2aXNpYmxlRHRvcyA9IHRoaXMuYmVwYWFsWmljaHRiYXJlRHRvcyh2aXNpYmxlUml0UHBsZ3MsIHN0b3JlRHRvcyk7XG4gICAgICAgIGNvbnN0IGxvYWRpbmdEdG9zID0gdGhpcy5iZXBhYWxUb0xvYWREdG9zKHZpc2libGVEdG9zLCByaXREZWxlbiwgdmlzaWJsZVJpdERlbGVuLCB2aXNpYmxlUml0UHBsZ3MsIHN0b3JlU3RhdGUpO1xuXG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTXN0QWN0aW9ucy5TZXRCdXN5KHRydWUpKTtcbiAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuZWRpdG9yU2VydmljZS5sYWFkU2lnbmFsZXJpbmdzYmVlbGRlbihhY3RpZS5pYXZlcnNpZWluZm8udmVyc2llLCBsb2FkaW5nRHRvcyk7XG4gICAgICAgIHByb21pc2UudGhlbihzdmdEYXRhVXJscyA9PiB7XG4gICAgICAgICAgICB0aGlzLnZlcndlcmtTdmdzKHN2Z0RhdGFVcmxzKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5pZXV3ZVJpdGRlbGVuID0gdGhpcy51cGRhdGVSaXRkZWxlbihyaXREZWxlbiwgdmlzaWJsZUR0b3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coc3RvcmVTdGF0ZS5kZWJ1ZywgdmlzaWJsZVJpdFBwbGdzLCBsb2FkaW5nRHRvcyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWlzSW5pdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1zdEFjdGlvbnMuVXBkYXRlU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcyhzdG9yZUR0b3MpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNc3RBY3Rpb25zLlVwZGF0ZVZpc2libGVTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zKGxvYWRpbmdEdG9zKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUml0ZGVsZW5BY3Rpb25zLnVwZGF0ZVJpdERlbGVuKG5pZXV3ZVJpdGRlbGVuKSk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMubWVsZGluZ0VtaXR0ZXJTZXJ2aWNlLmVtaXQoTWVsZGluZ0J1aWxkZXIucndwRGF0YU5pZXRHZXZvbmRlbihVdGlscy5nZXRWYWxpZEVyb3JyTWVzc2FnZShlcnIpKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxhYWRFblZlcndlcmtTaWduYWxlcmluZ3NiZWVsZEluZm8kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKE1zdEFjdGlvbnMubGFhZEVuVmVyd2Vya1NpZ25hbGVyaW5nc2JlZWxkSW5mbyksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUpLFxuICAgICAgICBtYXAoKFthY3RpZSwgc3RvcmVTdGF0ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9icyA9IHRoaXMuc2JpUmVzb3VyY2UubGFhZFNpZ25hbGVyaW5nc2JlZWxkSW5mbyh0aGlzLmNyZWF0ZVNpZ25hbGVyaW5nc2JlZWxkSW5mb1F1ZXJ5RHRvKGFjdGllLnBwbGdzLCBzdG9yZVN0YXRlLmlhVmVyc2llKSk7XG4gICAgICAgICAgICBvYnMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10gPSByZXM7XG4gICAgICAgICAgICAgICAgaWYgKGR0b3MgJiYgZHRvcy5maWx0ZXIoZHRvID0+IGR0by5tZXRWaXN1YWxpc2F0aWUpLmxlbmd0aCA+IDEyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVsZGluZ0VtaXR0ZXJTZXJ2aWNlLmVtaXQoTWVsZGluZ0J1aWxkZXIubWVlckRhbjEyQmxhZGVuR2V2b25kZW4oZHRvcy5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChTZXRTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zKGR0b3MsIHN0b3JlU3RhdGUuaWFWZXJzaWUsIGFjdGllLnJpdCwgYWN0aWUucGFnaW5hdGlvblNpemUsIGFjdGllLnJpdEdld2lqemlnZFRvZWdlc3RhYW4pKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNldFZpc2libGVTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zKGR0b3MpKTtcbiAgICAgICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZWxkaW5nRW1pdHRlclNlcnZpY2UuZW1pdChNZWxkaW5nQnVpbGRlci5uaWV0R2V2b25kZW5TQkkoZXJyKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpLCB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICAgKTtcblxuICAgIG5hdmlnZWVyQnVpdGVuUml0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShNc3RBY3Rpb25zLm5hdmlnZWVyQnVpdGVuUml0KSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZSksXG4gICAgICAgIG1hcCgoW2FjdGllLCBzdG9yZVN0YXRlXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmFuZCA9IHRoaXMuc2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZS5nZXRUb3BvbG9neUVsZW1lbnRCeVB1aWMoYWN0aWUucmFuZFB1aWMpO1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0b3JTZXJ2aWNlLmdldE90aGVyUmFuZChhY3RpZS5yYW5kUHVpYykuc3Vic2NyaWJlKG90aGVyUHBsZyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JzID0gdGhpcy5zYmlSZXNvdXJjZS5sYWFkU2lnbmFsZXJpbmdzYmVlbGRJbmZvKHRoaXMuY3JlYXRlU2lnbmFsZXJpbmdzYmVlbGRJbmZvUXVlcnlEdG8oW3JhbmQuZ2V0UFBMRygpLCBvdGhlclBwbGddLCBzdG9yZVN0YXRlLmlhVmVyc2llKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmxhYWRSb3V0ZUZpbGVzKHN0b3JlU3RhdGUuaWFWZXJzaWUudmVyc2llLCBbcmFuZC5nZXRQUExHKCksIG90aGVyUHBsZ10pO1xuICAgICAgICAgICAgICAgIG9icy5waXBlKHRha2UoMSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmxhYWRTaWduYWxlcmluZ3NiZWVsZGVuKHN0b3JlU3RhdGUuaWFWZXJzaWUudmVyc2llLCByZXMpO1xuICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnRoZW4oc3ZnRGF0YVVybHMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJ3ZXJrU3ZncyhzdmdEYXRhVXJscyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuaWV1d2VSaXRkZWxlbiA9IHRoaXMudXBkYXRlUml0ZGVsZW4oc3RvcmVTdGF0ZS5yaXREZWxlbiwgcmVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTXN0QWN0aW9ucy5VcGRhdGVWaXNpYmxlU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcyhyZXMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUml0ZGVsZW5BY3Rpb25zLnVwZGF0ZVJpdERlbGVuKG5pZXV3ZVJpdGRlbGVuKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9KSksIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgICApO1xuXG4gICAgcHJpdmF0ZSBjcmVhdGVTaWduYWxlcmluZ3NiZWVsZEluZm9RdWVyeUR0byhwcGxnczogc3RyaW5nW10sIGlhaW5mbzogSW5mcmFNb2RlbCkge1xuICAgICAgICBjb25zdCBkYXR1bSA9IGlhaW5mby5pbmdhbmdzRGF0dW0gJiYgIWlzTmFOKGlhaW5mby5pbmdhbmdzRGF0dW0uZ2V0VGltZSgpKSA/IGlhaW5mby5pbmdhbmdzRGF0dW0udG9JU09TdHJpbmcoKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHsgcHBsZ3MsIHZlcnNpZTogaWFpbmZvLnZlcnNpZSwgaW5nYW5nc0RhdHVtOiBkYXR1bSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgdmVyd2Vya1N2Z3Moc3ZnRGF0YVVybHMpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNc3RBY3Rpb25zLlNldFN2Z0luZm9zKHRoaXMuYmVwYWFsU3ZnSW5mb3Moc3ZnRGF0YVVybHMpKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiZXBhYWxTdmdJbmZvcyhzdmdEYXRhVXJscykge1xuICAgICAgICBsZXQgbmV4dENvb3JkcyA9IG5ldyBQb2ludCgwLCAwKTtcbiAgICAgICAgY29uc3QgaW5mb3M6IFN2Z0luZm9bXSA9IFtdO1xuICAgICAgICBzdmdEYXRhVXJscy5mb3JFYWNoKHN2Z0RhdGFVcmwgPT4ge1xuICAgICAgICAgICAgaWYgKHN2Z0RhdGFVcmwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNvZGVkID0gYXRvYihzdmdEYXRhVXJsLnN1YnN0cmluZygnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwnLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIGluZm9zLnB1c2gobmV3IFN2Z0luZm8oJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwnICsgZGVjb2RlZCwgbmV4dENvb3JkcykpO1xuICAgICAgICAgICAgICAgIG5leHRDb29yZHMgPSBuZXcgUG9pbnQobmV4dENvb3Jkcy54ICsgSW14Vmlld2VyQ29tcG9uZW50LmdldFhDb29yZGluYXRlKGRlY29kZWQpICsgdGhpcy5TVkdfUElYRUxfUlVJTVRFLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpbmZvcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlcGFhbFRvTG9hZER0b3ModmlzaWJsZUR0b3MsIHJpdERlbGVuOiBSaXRkZWVsW10sIHZpc2libGVSaXREZWxlbiwgdmlzaWJsZVJpdFBwbGdzOiBzdHJpbmdbXSwgc3RvcmVTdGF0ZTogTXN0RWRpdG9yU3RhdGUpIHtcbiAgICAgICAgY29uc3QgbG9hZGluZ0R0b3MgPSBbLi4udmlzaWJsZUR0b3NdO1xuICAgICAgICBjb25zdCBmaXJzdElkeCA9IHJpdERlbGVuLmluZGV4T2YodmlzaWJsZVJpdERlbGVuWzBdKSAtIDE7XG4gICAgICAgIHRoaXMuYWRkUHJldk5vblZpc2libGVEdG8oZmlyc3RJZHgsIHJpdERlbGVuLCBsb2FkaW5nRHRvcywgdmlzaWJsZVJpdFBwbGdzLCBzdG9yZVN0YXRlLnNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3MpO1xuICAgICAgICBjb25zdCBsYXN0SWR4ID0gcml0RGVsZW4uaW5kZXhPZih2aXNpYmxlUml0RGVsZW5bdmlzaWJsZVJpdERlbGVuLmxlbmd0aCAtIDFdKSArIDE7XG4gICAgICAgIHRoaXMuYWRkTmV4dE5vblZpc2libGVEdG8obGFzdElkeCwgcml0RGVsZW4sIGxvYWRpbmdEdG9zLCB2aXNpYmxlUml0UHBsZ3MsIHN0b3JlU3RhdGUuc2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcyk7XG4gICAgICAgIHJldHVybiBsb2FkaW5nRHRvcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlcGFhbFppY2h0YmFyZUR0b3ModmlzaWJsZVJpdFBwbGdzOiBzdHJpbmdbXSwgZHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdKSB7XG4gICAgICAgIGNvbnN0IHZpc2libGVEdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10gPSBbXTtcbiAgICAgICAgdmlzaWJsZVJpdFBwbGdzLmZvckVhY2gocHBsZyA9PiB7XG4gICAgICAgICAgICBkdG9zLmZpbHRlcihkdG8gPT4gZHRvLnBwbGdzLmluY2x1ZGVzKHBwbGcpKS5mb3JFYWNoKGR0byA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF2aXNpYmxlRHRvcy5pbmNsdWRlcyhkdG8pKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpc2libGVEdG9zLnB1c2goZHRvKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZpc2libGVEdG9zLmZvckVhY2goZHRvID0+IGR0by5tZXRWaXN1YWxpc2F0aWUgPSB0cnVlKTtcbiAgICAgICAgZHRvcy5maWx0ZXIoZCA9PiAhdmlzaWJsZUR0b3MuaW5jbHVkZXMoZCkpLmZvckVhY2goZCA9PiBkLm1ldFZpc3VhbGlzYXRpZSA9IGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHZpc2libGVEdG9zO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlzdGluY3QodmFsdWUsIGluZGV4LCBzZWxmKSB7XG4gICAgICAgIHJldHVybiBzZWxmLmluZGV4T2YodmFsdWUpID09PSBpbmRleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFByZXZOb25WaXNpYmxlRHRvKGZpcnN0SWR4LCByaXRkZWxlbjogUml0ZGVlbFtdLCBsb2FkaW5nRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdLCB2aXNpYmxlUml0UHBsZ3M6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdKSB7XG4gICAgICAgIGlmIChmaXJzdElkeCA+PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwcGxnID0gcml0ZGVsZW5bZmlyc3RJZHhdLmdldFBwbGcoKTtcbiAgICAgICAgICAgIGNvbnN0IHJpdGRlZWxEdG9zID0gYWxsRHRvcy5maWx0ZXIoZHRvID0+IGR0by5wcGxncy5pbmNsdWRlcyhwcGxnKSkuZmlsdGVyKGR0byA9PiAhbG9hZGluZ0R0b3MuaW5jbHVkZXMoZHRvKSk7XG5cbiAgICAgICAgICAgIGlmICghdmlzaWJsZVJpdFBwbGdzLmluY2x1ZGVzKHBwbGcpICYmIHJpdGRlZWxEdG9zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByaXRkZWVsRHRvcy5maWx0ZXIoZCA9PiAhbG9hZGluZ0R0b3MuaW5jbHVkZXMoZCkpLmZvckVhY2goZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGQubWV0VmlzdWFsaXNhdGllID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmdEdG9zLnB1c2goZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkUHJldk5vblZpc2libGVEdG8oZmlyc3RJZHggLSAxLCByaXRkZWxlbiwgbG9hZGluZ0R0b3MsIHZpc2libGVSaXRQcGxncywgYWxsRHRvcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZE5leHROb25WaXNpYmxlRHRvKGxhc3RJZHgsIHJpdGRlbGVuOiBSaXRkZWVsW10sIGxvYWRpbmdEdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10sIHZpc2libGVSaXRQcGxnczogc3RyaW5nW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxEdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10pIHtcbiAgICAgICAgaWYgKGxhc3RJZHggPD0gcml0ZGVsZW4ubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgcHBsZyA9IHJpdGRlbGVuW2xhc3RJZHhdLmdldFBwbGcoKTtcbiAgICAgICAgICAgIGNvbnN0IHJpdGRlZWxEdG9zID0gYWxsRHRvcy5maWx0ZXIoZHRvID0+IGR0by5wcGxncy5pbmNsdWRlcyhwcGxnKSkuZmlsdGVyKGR0byA9PiAhbG9hZGluZ0R0b3MuaW5jbHVkZXMoZHRvKSk7XG5cbiAgICAgICAgICAgIGlmICghdmlzaWJsZVJpdFBwbGdzLmluY2x1ZGVzKHBwbGcpICYmIHJpdGRlZWxEdG9zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByaXRkZWVsRHRvcy5maWx0ZXIoZCA9PiAhbG9hZGluZ0R0b3MuaW5jbHVkZXMoZCkpLmZvckVhY2goZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGQubWV0VmlzdWFsaXNhdGllID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmdEdG9zLnB1c2goZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkTmV4dE5vblZpc2libGVEdG8obGFzdElkeCArIDEsIHJpdGRlbGVuLCBsb2FkaW5nRHRvcywgdmlzaWJsZVJpdFBwbGdzLCBhbGxEdG9zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGVidWdMb2coZGVidWcsIHZpc2libGVSaXRQcGxnczogc3RyaW5nW10sIGxvYWRpbmdEdG9zKSB7XG4gICAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1JJVCBQUExHczogJyArIHZpc2libGVSaXRQcGxncyk7XG4gICAgICAgICAgICBsb2FkaW5nRHRvcy5mb3JFYWNoKGR0byA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHN0ciA9ICdEVE8gICAgICAgICA6ICcgKyBkdG8uYmxhZElkO1xuICAgICAgICAgICAgICAgIHN0ciArPSAnXFxuRFRPLWJsYWROYWFtOiAnICsgZHRvLmJsYWROYWFtO1xuICAgICAgICAgICAgICAgIHN0ciArPSAnXFxuRFRPLVBQTEdzICAgOiAnICsgZHRvLnBwbGdzO1xuICAgICAgICAgICAgICAgIHN0ciArPSAnXFxuVmlzaWJsZSAgICAgOiAnICsgZHRvLm1ldFZpc3VhbGlzYXRpZTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhzdHIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhY3RpZXM6IE5hdmlnZWVyfE5hdmlnZWVyVmFuYWZ8U2V0Uml0RGVsZW5cbiAgICBwcml2YXRlIG5hdmlnZWVyKHJpdERlbGVuOiBSaXRkZWVsW10sIGFjdGllOiB7IHBhZ2luYXRpb25TaXplOiBudW1iZXI7IHN0YXBTaXplOiBudW1iZXI7IHR5cGU6IHN0cmluZzsgcml0ZGVlbCB9LCBzdG9yZUR0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSkge1xuICAgICAgICAvLyBhbGxlIHJpdGRlbGVuIGtyaWpnZW4gemljaHRiYWFyaGVpZEJ1aXRlblBhZ2luYXRpZSA9PiBmYWxzZVxuICAgICAgICBpZiAoYWN0aWUudHlwZSA9PT0gUml0ZGVsZW5BY3Rpb25zLlNFVF9SSVRfREVMRU4pIHtcbiAgICAgICAgICAgIHRoaXMuYmVwYWFsWmljaHRiYWFyaGVpZFJlY2h0cygwLCByaXREZWxlbiwgYWN0aWUucGFnaW5hdGlvblNpemUsIHN0b3JlRHRvcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aWUudHlwZSA9PT0gUml0ZGVsZW5BY3Rpb25zLk5BVklHRUVSKSB7XG4gICAgICAgICAgICBjb25zdCBpc0xpbmtzID0gYWN0aWUuc3RhcFNpemUgPCAwO1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMuYmVwYWFsU3RhcnRJbmRleChyaXREZWxlbik7XG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IHRoaXMuYmVwYWFsRW5kSW5kZXgocml0RGVsZW4pO1xuICAgICAgICAgICAgY29uc3QgbmF2aWdlcmVuTW9nZWxpamsgPSAhKHN0YXJ0SW5kZXggPT09IDAgJiYgaXNMaW5rcyB8fCBlbmRJbmRleCA9PT0gcml0RGVsZW4ubGVuZ3RoIC0gMSAmJiAhaXNMaW5rcyk7XG4gICAgICAgICAgICBpZiAobmF2aWdlcmVuTW9nZWxpamspIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNMaW5rcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJlcGFhbFppY2h0YmFhcmhlaWRMaW5rcyhzdGFydEluZGV4LCByaXREZWxlbiwgYWN0aWUucGFnaW5hdGlvblNpemUsIHN0b3JlRHRvcyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iZXBhYWxaaWNodGJhYXJoZWlkUmVjaHRzKGVuZEluZGV4LCByaXREZWxlbiwgYWN0aWUucGFnaW5hdGlvblNpemUsIHN0b3JlRHRvcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGFjdGllLnR5cGUgPT09IFJpdGRlbGVuQWN0aW9ucy5OQVZJR0VFUl9WQU5BRikge1xuICAgICAgICAgICAgY29uc3QgaWR4ID0gcml0RGVsZW4uaW5kZXhPZihhY3RpZS5yaXRkZWVsKTtcbiAgICAgICAgICAgIHRoaXMuYmVwYWFsWmljaHRiYWFyaGVpZFJlY2h0cyhpZHgsIHJpdERlbGVuLCBhY3RpZS5wYWdpbmF0aW9uU2l6ZSwgc3RvcmVEdG9zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUml0ZGVsZW4ocml0ZGVsZW46IFJpdGRlZWxbXSwgdmlzaWJsZUR0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSk6IFJpdGRlZWxbXSB7XG4gICAgICAgIGNvbnN0IHZpc2libGVJbmRpY2VzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcml0ZGVsZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChyaXRkZWxlbltpXS5pc1ppY2h0YmFhckJpbm5lbldpbmRvdygpKSB7XG4gICAgICAgICAgICAgICAgdmlzaWJsZUluZGljZXMucHVzaChpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbiguLi52aXNpYmxlSW5kaWNlcyk7XG4gICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLnZpc2libGVJbmRpY2VzKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJpdGRlbGVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByZCA9IHJpdGRlbGVuW2ldO1xuXG4gICAgICAgICAgICBpZiAocmQuaXNaaWNodGJhYXJCaW5uZW5XaW5kb3coKSkge1xuICAgICAgICAgICAgICAgIHJkLmJlcGFhbFRvcG9sb2dpZUVsZW1lbnRlbih0aGlzLnNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGlmIChyZC5nZXRUb3BvbG9naWVFbGVtZW50ZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpdGRlbGVuW2ldID0gcmQuaXNOaWV0QmVzY2hpa2JhYXIoKSA/IHJkLmNvcHlNZXRaaWNodGJhYXJoZWlkKFJpdGRlZWxaaWNodGJhYXJoZWlkLlpJQ0hUQkFBUikgOiByZDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByaXRkZWxlbltpXSA9IHRoaXMubWFha09uemljaHRiYWFyKHJkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVppY2h0YmFhcmhlaWRBYW5ncmV6ZW5kZVJpdGRlbGVuKG1pbiwgbWF4LCByaXRkZWxlbiwgdmlzaWJsZUR0b3MpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVppY2h0YmFhcmhlaWRCdWl0ZW5XaW5kb3cocml0ZGVsZW4sIHZpc2libGVEdG9zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVppY2h0YmFhcmhlaWRCdWl0ZW5XaW5kb3cobmlldXdlUml0ZGVsZW4sIHZpc2libGVEdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10pIHtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5pZXV3ZVJpdGRlbGVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByZCA9IG5pZXV3ZVJpdGRlbGVuW2ldO1xuXG4gICAgICAgICAgICBpZiAoIXJkLmlzWmljaHRiYWFyKCkgJiYgdGhpcy5iZXZhdEdldmlzdWFsaXNlZXJkZVBwbGcodmlzaWJsZUR0b3MsIHJkLmdldFBwbGcoKSkpIHtcbiAgICAgICAgICAgICAgICByZC5iZXBhYWxUb3BvbG9naWVFbGVtZW50ZW4odGhpcy5zaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICBpZiAocmQuZ2V0VG9wb2xvZ2llRWxlbWVudGVuKCkubGVuZ3RoID4gMCAmJiB0aGlzLmlzRWVyc3RlTGFhdHN0ZVB1aWNaaWNodGJhYXIocmQuZ2V0VG9wb2xvZ2llRWxlbWVudGVuKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5pZXV3ZVJpdGRlbGVuW2ldID0gcmQuaXNOaWV0QmVzY2hpa2JhYXIoKSA/IHJkLmNvcHlNZXRaaWNodGJhYXJoZWlkRW5QYWdpbmF0aWUoUml0ZGVlbFppY2h0YmFhcmhlaWQuWklDSFRCQUFSLCB0cnVlKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZC5jb3B5TWV0WmljaHRiYWFyaGVpZEJ1aXRlblBhZ2luYXRpZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5pZXV3ZVJpdGRlbGVuO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlWmljaHRiYWFyaGVpZEFhbmdyZXplbmRlUml0ZGVsZW4obWluLCBtYXgsIG5pZXV3ZVJpdGRlbGVuLCB2aXNpYmxlRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdKSB7XG4gICAgICAgIGxldCBpID0gbWluIC0gMTtcbiAgICAgICAgd2hpbGUgKGkgPj0gMCkge1xuICAgICAgICAgICAgaSA9IHRoaXMudXBkYXRlWmljaHRiYWFySGVpZChpLCAwLCB2aXNpYmxlRHRvcywgbmlldXdlUml0ZGVsZW4pIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGkgPSBtYXggKyAxO1xuICAgICAgICB3aGlsZSAoaSA8IG5pZXV3ZVJpdGRlbGVuLmxlbmd0aCkge1xuICAgICAgICAgICAgaSA9IHRoaXMudXBkYXRlWmljaHRiYWFySGVpZChpLCBuaWV1d2VSaXRkZWxlbi5sZW5ndGgsIHZpc2libGVEdG9zLCBuaWV1d2VSaXRkZWxlbikgKyAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVaaWNodGJhYXJIZWlkKGk6IG51bWJlciwgZW5kOiBudW1iZXIsIHZpc2libGVEdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10sIG5pZXV3ZVJpdGRlbGVuOiBSaXRkZWVsW10pIHtcbiAgICAgICAgY29uc3QgcmQgPSBuaWV1d2VSaXRkZWxlbltpXTtcbiAgICAgICAgaWYgKHRoaXMuYmV2YXRHZXZpc3VhbGlzZWVyZGVQcGxnKHZpc2libGVEdG9zLCByZC5nZXRQcGxnKCkpKSB7XG4gICAgICAgICAgICBpID0gdGhpcy51cGRhdGVaaWNodGJhYXJoZWlkQWFuZ3JlbnplbmRlUml0ZGVlbChyZCwgbmlldXdlUml0ZGVsZW4sIGksIGVuZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpID0gZW5kO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNFZXJzdGVMYWF0c3RlUHVpY1ppY2h0YmFhcih0b3BvRWxlbWVudGVuOiBUb3BvbG9neUVsZW1lbnRbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncCcgKyB0b3BvRWxlbWVudGVuWzBdLmdldFB1aWMoKSkgfHxcbiAgICAgICAgICAgICEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3AnICsgdG9wb0VsZW1lbnRlblt0b3BvRWxlbWVudGVuLmxlbmd0aCAtIDFdLmdldFB1aWMoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVaaWNodGJhYXJoZWlkQWFuZ3JlbnplbmRlUml0ZGVlbChyZCwgbmlldXdlUml0ZGVsZW4sIGksIGVuZCkge1xuICAgICAgICByZC5iZXBhYWxUb3BvbG9naWVFbGVtZW50ZW4odGhpcy5zaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlKTtcbiAgICAgICAgaWYgKHJkLmdldFRvcG9sb2dpZUVsZW1lbnRlbigpLmxlbmd0aCA+IDAgJiYgdGhpcy5pc0VlcnN0ZUxhYXRzdGVQdWljWmljaHRiYWFyKHJkLmdldFRvcG9sb2dpZUVsZW1lbnRlbigpKSkge1xuICAgICAgICAgICAgbmlldXdlUml0ZGVsZW5baV0gPSByZC5pc05pZXRCZXNjaGlrYmFhcigpID8gcmQuY29weU1ldFppY2h0YmFhcmhlaWQoUml0ZGVlbFppY2h0YmFhcmhlaWQuWklDSFRCQUFSKSA6IHJkO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZW5kO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmV2YXRHZXZpc3VhbGlzZWVyZGVQcGxnKHZpc2libGVEdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10sIHBwbGc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBmb3IgKGNvbnN0IGR0byBvZiB2aXNpYmxlRHRvcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkdG9wcGxnIG9mIGR0by5wcGxncykge1xuICAgICAgICAgICAgICAgIGlmIChkdG9wcGxnID09PSBwcGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYWFrT256aWNodGJhYXIocmQpIHtcbiAgICAgICAgcmV0dXJuIHJkLmlzWmljaHRiYWFyKCkgfHwgcmQuaXNPbnppY2h0YmFhckRvb3JHZWJydWlrZXIoKSA/XG4gICAgICAgICAgICByZC5jb3B5TWV0WmljaHRiYWFyaGVpZEVuUGFnaW5hdGllKFJpdGRlZWxaaWNodGJhYXJoZWlkLk9OWklDSFRCQUFSX0RPT1JfU1lTVEVFTSwgZmFsc2UpIDpcbiAgICAgICAgICAgIHJkLmNvcHlNZXRaaWNodGJhYXJoZWlkQnVpdGVuUGFnaW5hdGllKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlcGFhbFppY2h0YmFhcmhlaWRSZWNodHMoaWR4OiBudW1iZXIsIGl0ZW1zOiBSaXRkZWVsW10sIHBhZ2luYXRpb25TaXplOiBudW1iZXIsIGR0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSkge1xuICAgICAgICBjb25zdCBwcGxnc1dpbmRvdyA9IFtdO1xuICAgICAgICBjb25zdCBkdG9zV2luZG93ID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHJkID0gaXRlbXNbaV07XG4gICAgICAgICAgICBpZiAoaSA+PSBpZHggJiYgdGhpcy52YWx0QmlubmVuUGFnaW5hdGllV2luZG93KHBwbGdzV2luZG93LCBwYWdpbmF0aW9uU2l6ZSwgZHRvc1dpbmRvdykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFppY2h0YmFhcihyZCwgcHBsZ3NXaW5kb3csIGR0b3MsIGR0b3NXaW5kb3csIGl0ZW1zLCBpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaXRlbXNbaV0gPSByZC5pc1ppY2h0YmFhcigpIHx8IHJkLmlzT256aWNodGJhYXJEb29yR2VicnVpa2VyKCkgP1xuICAgICAgICAgICAgICAgICAgICByZC5jb3B5TWV0WmljaHRiYWFyaGVpZEVuUGFnaW5hdGllKFJpdGRlZWxaaWNodGJhYXJoZWlkLk9OWklDSFRCQUFSX0RPT1JfU1lTVEVFTSwgZmFsc2UpIDpcbiAgICAgICAgICAgICAgICAgICAgcmQuY29weU1ldFppY2h0YmFhcmhlaWRCdWl0ZW5QYWdpbmF0aWUoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiZXBhYWxaaWNodGJhYXJoZWlkTGlua3MoaWR4OiBudW1iZXIsIGl0ZW1zOiBSaXRkZWVsW10sIHBhZ2luYXRpb25TaXplOiBudW1iZXIsIGR0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSkge1xuICAgICAgICBjb25zdCBwcGxnc1dpbmRvdyA9IFtdO1xuICAgICAgICBjb25zdCBkdG9zV2luZG93ID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSBpdGVtcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgcmQgPSBpdGVtc1tpXTtcbiAgICAgICAgICAgIGlmIChpIDw9IGlkeCAmJiB0aGlzLnZhbHRCaW5uZW5QYWdpbmF0aWVXaW5kb3cocHBsZ3NXaW5kb3csIHBhZ2luYXRpb25TaXplLCBkdG9zV2luZG93KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0WmljaHRiYWFyKHJkLCBwcGxnc1dpbmRvdywgZHRvcywgZHRvc1dpbmRvdywgaXRlbXMsIGkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtc1tpXSA9IHJkLmlzWmljaHRiYWFyKCkgfHwgcmQuaXNPbnppY2h0YmFhckRvb3JHZWJydWlrZXIoKSA/XG4gICAgICAgICAgICAgICAgICAgIHJkLmNvcHlNZXRaaWNodGJhYXJoZWlkRW5QYWdpbmF0aWUoUml0ZGVlbFppY2h0YmFhcmhlaWQuT05aSUNIVEJBQVJfRE9PUl9TWVNURUVNLCBmYWxzZSkgOlxuICAgICAgICAgICAgICAgICAgICByZC5jb3B5TWV0WmljaHRiYWFyaGVpZEJ1aXRlblBhZ2luYXRpZShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbHRCaW5uZW5QYWdpbmF0aWVXaW5kb3cocHBsZ3NXaW5kb3csIHBhZ2luYXRpb25TaXplOiBudW1iZXIsIGR0b3NXaW5kb3cpIHtcbiAgICAgICAgcmV0dXJuIHBwbGdzV2luZG93Lmxlbmd0aCA8IHBhZ2luYXRpb25TaXplIHx8IGR0b3NXaW5kb3cubGVuZ3RoIDwgcGFnaW5hdGlvblNpemU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRaaWNodGJhYXIocmQsIHBwbGdzV2luZG93LCBkdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10sIGR0b3NXaW5kb3csIGl0ZW1zOiBSaXRkZWVsW10sIGk6IG51bWJlcikge1xuICAgICAgICBjb25zdCBpdGVtUHBsZyA9IHJkLmdldFBwbGcoKTtcbiAgICAgICAgaWYgKCFwcGxnc1dpbmRvdy5pbmNsdWRlcyhpdGVtUHBsZykpIHtcbiAgICAgICAgICAgIHBwbGdzV2luZG93LnB1c2goaXRlbVBwbGcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHBsZ0R0b3MgPSBbXTtcbiAgICAgICAgZHRvcy5maWx0ZXIoZHRvID0+IGR0by5wcGxncy5pbmNsdWRlcyhpdGVtUHBsZykpLmZvckVhY2goZHRvID0+IHtcbiAgICAgICAgICAgIGlmICghcHBsZ0R0b3MuaW5jbHVkZXMoZHRvKSkge1xuICAgICAgICAgICAgICAgIHBwbGdEdG9zLnB1c2goZHRvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcHBsZ0R0b3MuZmlsdGVyKGQgPT4gIWR0b3NXaW5kb3cuaW5jbHVkZXMoZCkpLmZvckVhY2goZCA9PiBkdG9zV2luZG93LnB1c2goZCkpO1xuXG4gICAgICAgIGl0ZW1zW2ldID0gIXJkLmlzWmljaHRiYWFyKCkgPyByZC5jb3B5TWV0WmljaHRiYWFyaGVpZEVuUGFnaW5hdGllKFJpdGRlZWxaaWNodGJhYXJoZWlkLlpJQ0hUQkFBUiwgZmFsc2UpIDpcbiAgICAgICAgICAgIHJkLmNvcHlNZXRaaWNodGJhYXJoZWlkQnVpdGVuUGFnaW5hdGllKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlcGFhbFN0YXJ0SW5kZXgocml0RGVsZW46IFJpdGRlZWxbXSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJpdERlbGVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocml0RGVsZW5baV0uaXNCaW5uZW5XaW5kb3coKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlcGFhbEVuZEluZGV4KHJpdERlbGVuOiBSaXRkZWVsW10pIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHJpdERlbGVuLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAocml0RGVsZW5baV0uaXNCaW5uZW5XaW5kb3coKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHpldENsYXNzT3BSYW5kZW4ocHVpY3M6IHN0cmluZ1tdKSB7XG4gICAgICAgIHB1aWNzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCByYW5kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3AnICsgZWxlbWVudCk7XG4gICAgICAgICAgICByYW5kPy5jbGFzc0xpc3QuYWRkKCdjb25uZWN0b3InKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
361
|
+
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.Store }, { type: i3.SignaleringsBeeldManagerService }, { type: i4.EditorService }, { type: i5.MeldingEmitterService }, { type: i6.SignaleringsbeeldInfoResource }, { type: i7.ConnectorService }]; } });
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFhZC1zaWduYWxlcmluZ3NiZWVsZGVuLmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zdGF0ZS9lZmZlY3QvbGFhZC1zaWduYWxlcmluZ3NiZWVsZGVuLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdkUsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFXLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sS0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxVQUFVLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLG1DQUFtQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkcsT0FBTyxLQUFLLGVBQWUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7O0FBSy9ELE1BQU0sT0FBTyw2QkFBNkI7SUFHdEMsWUFBb0IsUUFBaUIsRUFDakIsS0FBNEIsRUFDNUIsK0JBQWdFLEVBQ2hFLGFBQTRCLEVBQzVCLHFCQUE0QyxFQUM1QyxXQUEwQyxFQUMxQyxnQkFBa0M7UUFObEMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUM1QixvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWlDO1FBQ2hFLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsZ0JBQVcsR0FBWCxXQUFXLENBQStCO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFSOUMscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBVzlCLHFCQUFnQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDcEQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQzVGLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDM0IsQ0FBQztRQW1DRix3Q0FBbUMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZFLE1BQU0sQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsRUFDckQsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDMUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ25JLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM5QixNQUFNLElBQUksR0FBZ0MsR0FBRyxDQUFDO2dCQUM5QyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7b0JBQzdELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2lCQUN4RjtnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztnQkFDNUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUMzQixDQUFDO1FBRUYsdUJBQWtCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN0RCxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQ3BDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNuSixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUMzRixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDNUYsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTt3QkFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUNyRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsc0NBQXNDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDNUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO29CQUN4RSxDQUFDLENBQUMsQ0FBQztnQkFFUCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBRVAsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDM0IsQ0FBQztJQW5GRixDQUFDO0lBV0QsZUFBZSxDQUFDLEtBQUssRUFBRSxVQUEwQjtRQUM3QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxhQUFhLENBQUM7UUFDNUQsTUFBTSxRQUFRLEdBQWMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQzFFLE1BQU0sU0FBUyxHQUFnQyxVQUFVLENBQUMseUJBQXlCLENBQUM7UUFFcEYsb0hBQW9IO1FBQ3BILElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUxQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztRQUMxRSxNQUFNLGVBQWUsR0FBYSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5RixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFL0csSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBRTlELElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQzNFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxzQ0FBc0MsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2lCQUN2RjtnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDeEUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUEyQ08sbUNBQW1DLENBQUMsS0FBZSxFQUFFLE1BQWtCO1FBQzNFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDM0gsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVPLFdBQVcsQ0FBQyxXQUFXO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUFXO1FBQzlCLElBQUksVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqQyxNQUFNLEtBQUssR0FBYyxFQUFFLENBQUM7UUFDNUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM3QixJQUFJLFVBQVUsRUFBRTtnQkFDWixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNoRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLHFCQUFxQixHQUFHLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNyRSxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2hIO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsV0FBVyxFQUFFLFFBQW1CLEVBQUUsZUFBZSxFQUFFLGVBQXlCLEVBQUUsVUFBMEI7UUFDN0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDbEgsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2pILE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxlQUF5QixFQUFFLElBQWlDO1FBQ3BGLE1BQU0sV0FBVyxHQUFnQyxFQUFFLENBQUM7UUFDcEQsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM1QixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNuRixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSTtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsUUFBbUIsRUFBRSxXQUF3QyxFQUFFLGVBQXlCLEVBQ2xHLE9BQW9DO1FBQzdELElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNmLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUU5RyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDM0QsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDMUQsQ0FBQyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7b0JBQzFCLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFDO2FBQ047aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDNUY7U0FDSjtJQUNMLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsUUFBbUIsRUFBRSxXQUF3QyxFQUFFLGVBQXlCLEVBQ2pHLE9BQW9DO1FBQzdELElBQUksT0FBTyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUU5RyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDM0QsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDMUQsQ0FBQyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7b0JBQzFCLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFDO2FBQ047aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDM0Y7U0FDSjtJQUNMLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBSyxFQUFFLGVBQXlCLEVBQUUsV0FBVztRQUMxRCxJQUFJLEtBQUssRUFBRTtZQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLGVBQWUsQ0FBQyxDQUFDO1lBQzdDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksR0FBRyxHQUFHLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7Z0JBQ3hDLEdBQUcsSUFBSSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUN6QyxHQUFHLElBQUksa0JBQWtCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDdEMsR0FBRyxJQUFJLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCw2Q0FBNkM7SUFDckMsUUFBUSxDQUFDLFFBQW1CLEVBQUUsS0FBMEUsRUFBRSxTQUFzQztRQUNwSiw4REFBOEQ7UUFDOUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxhQUFhLEVBQUU7WUFDOUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNoRjthQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsUUFBUSxFQUFFO1lBQ2hELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLFVBQVUsS0FBSyxDQUFDLElBQUksT0FBTyxJQUFJLFFBQVEsS0FBSyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pHLElBQUksaUJBQWlCLEVBQUU7Z0JBQ25CLElBQUksT0FBTyxFQUFFO29CQUNULElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQ3hGO3FCQUFNO29CQUNILElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQ3ZGO2FBQ0o7U0FDSjthQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsY0FBYyxFQUFFO1lBQ3RELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbEY7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQW1CLEVBQUUsV0FBd0M7UUFDaEYsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLEVBQUU7Z0JBQ3ZDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7U0FDSjtRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUN4QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7UUFFeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXZCLElBQUksRUFBRSxDQUFDLHVCQUF1QixFQUFFLEVBQUU7Z0JBQzlCLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN2QyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN2RztxQkFBTTtvQkFDSCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDMUM7YUFDSjtTQUNKO1FBRUQsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTdFLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sK0JBQStCLENBQUMsY0FBYyxFQUFFLFdBQXdDO1FBRTVGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVDLE1BQU0sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUU3QixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUU7Z0JBQy9FLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxFQUFFO29CQUN4RyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDbkgsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNKO1NBQ0o7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUMxQixDQUFDO0lBRU8sc0NBQXNDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsV0FBd0M7UUFDN0csSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDWCxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2RTtRQUVELENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osT0FBTyxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRTtZQUM5QixDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0Y7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsQ0FBUyxFQUFFLEdBQVcsRUFBRSxXQUF3QyxFQUFFLGNBQXlCO1FBQ25ILE1BQU0sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDMUQsQ0FBQyxHQUFHLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUMvRTthQUFNO1lBQ0gsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNYO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU8sNEJBQTRCLENBQUMsYUFBZ0M7UUFDakUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlELENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFTyxzQ0FBc0MsQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRSxHQUFHO1FBQ3JFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNsRSxJQUFJLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEVBQUU7WUFDeEcsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUU3RzthQUFNO1lBQ0gsT0FBTyxHQUFHLENBQUM7U0FDZDtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVPLHdCQUF3QixDQUFDLFdBQXdDLEVBQUUsSUFBWTtRQUNuRixLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRTtZQUMzQixLQUFLLE1BQU0sT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7Z0JBQzdCLElBQUksT0FBTyxLQUFLLElBQUksRUFBRTtvQkFDbEIsT0FBTyxJQUFJLENBQUM7aUJBQ2Y7YUFDSjtTQUNKO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUM7WUFDeEQsRUFBRSxDQUFDLCtCQUErQixDQUFDLG9CQUFvQixDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUYsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxHQUFXLEVBQUUsS0FBZ0IsRUFBRSxjQUFzQixFQUFFLElBQWlDO1FBQ3RILE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLENBQUMsRUFBRTtnQkFDckYsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO2lCQUFNO2dCQUNILEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLDBCQUEwQixFQUFFLENBQUMsQ0FBQztvQkFDNUQsRUFBRSxDQUFDLCtCQUErQixDQUFDLG9CQUFvQixDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQzFGLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyRDtTQUNKO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QixDQUFDLEdBQVcsRUFBRSxLQUFnQixFQUFFLGNBQXNCLEVBQUUsSUFBaUM7UUFDckgsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLENBQUMsRUFBRTtnQkFDckYsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO2lCQUFNO2dCQUNILEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLDBCQUEwQixFQUFFLENBQUMsQ0FBQztvQkFDNUQsRUFBRSxDQUFDLCtCQUErQixDQUFDLG9CQUFvQixDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQzFGLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyRDtTQUNKO0lBQ0wsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxjQUFzQixFQUFFLFVBQVU7UUFDN0UsT0FBTyxXQUFXLENBQUMsTUFBTSxHQUFHLGNBQWMsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQztJQUNyRixDQUFDO0lBRU8sWUFBWSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBaUMsRUFBRSxVQUFVLEVBQUUsS0FBZ0IsRUFBRSxDQUFTO1FBQzVHLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNqQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDekIsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN0QjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN0RyxFQUFFLENBQUMsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQW1CO1FBQ3hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUM5QixPQUFPLENBQUMsQ0FBQzthQUNaO1NBQ0o7UUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFtQjtRQUN0QyxLQUFLLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDO2FBQ1o7U0FDSjtRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBZTtRQUNwQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7MEhBcllRLDZCQUE2Qjs4SEFBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbXhWaWV3ZXJDb21wb25lbnQsIFBvaW50LCBTdmdJbmZvIH0gZnJvbSAnQGxveGlhL2lteC12aWV3ZXInO1xuaW1wb3J0IHsgc2JibGFkIH0gZnJvbSAnQGxveGlhL3JpandlZ2VuJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IG1hcCwgdGFrZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSaXRkZWVsLCBSaXRkZWVsWmljaHRiYWFyaGVpZCB9IGZyb20gJy4uLy4uL21vZGVsL3JpdGRlZWwnO1xuaW1wb3J0IHsgSW5mcmFNb2RlbCB9IGZyb20gJy4uLy4uL29wdGltbyc7XG5pbXBvcnQgeyBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvLCBTaWduYWxlcmluZ3NiZWVsZEluZm9SZXNvdXJjZSB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9zaWduYWxlcmluZ3NiZWVsZGluZm8ucmVzb3VyY2UnO1xuaW1wb3J0IHsgQ29ubmVjdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nvbm5lY3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBNZWxkaW5nRW1pdHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZWxkaW5nLWVtaXR0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2lnbmFsZXJpbmdzLWJlZWxkLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNZWxkaW5nQnVpbGRlciB9IGZyb20gJy4uLy4uL3V0aWwvbWVsZGluZy1idWlsZGVyJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi91dGlsL3V0aWxzJztcbmltcG9ydCAqIGFzIE1zdEFjdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9hY3Rpb25zJztcbmltcG9ydCB7IFNldFNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3MsIFNldFZpc2libGVTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zIH0gZnJvbSAnLi4vYWN0aW9ucy9hY3Rpb25zJztcbmltcG9ydCAqIGFzIFJpdGRlbGVuQWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zL3JpdGRlbGVuLmFjdGlvbnMnO1xuaW1wb3J0IHsgTXN0RWRpdG9yU3RhdGUgfSBmcm9tICcuLi9tc3QtZWRpdG9yLXN0YXRlJztcbmltcG9ydCBUb3BvbG9neUVsZW1lbnQgPSBzYmJsYWQuVG9wb2xvZ3lFbGVtZW50O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGFhZFNpZ25hbGVyaW5nc2JlZWxkZW5FZmZlY3Qge1xuICAgIHByaXZhdGUgU1ZHX1BJWEVMX1JVSU1URSA9IDMwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxNc3RFZGl0b3JTdGF0ZT4sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlOiBTaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIG1lbGRpbmdFbWl0dGVyU2VydmljZTogTWVsZGluZ0VtaXR0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc2JpUmVzb3VyY2U6IFNpZ25hbGVyaW5nc2JlZWxkSW5mb1Jlc291cmNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgY29ubmVjdG9yU2VydmljZTogQ29ubmVjdG9yU2VydmljZSkge1xuICAgIH1cblxuICAgIHZlcndlcmtSaXRkZWxlbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoUml0ZGVsZW5BY3Rpb25zLnNldFJpdERlbGVuLCBSaXRkZWxlbkFjdGlvbnMubmF2aWdlZXIsIFJpdGRlbGVuQWN0aW9ucy5uYXZpZ2VlclZhbmFmKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZSksXG4gICAgICAgIG1hcCgoW2FjdGllLCBzdG9yZVN0YXRlXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNc3RBY3Rpb25zLlNldE9uZ2VwbGFuZGVBY3RpZXNCZXBhYWxkKGZhbHNlKSk7XG4gICAgICAgICAgICB0aGlzLnZlcndlcmtSaXRkZWxlbihhY3RpZSwgc3RvcmVTdGF0ZSk7XG4gICAgICAgIH0pKSwgeyBkaXNwYXRjaDogZmFsc2UgfVxuICAgICk7XG5cbiAgICB2ZXJ3ZXJrUml0ZGVsZW4oYWN0aWUsIHN0b3JlU3RhdGU6IE1zdEVkaXRvclN0YXRlKSB7XG4gICAgICAgIGNvbnN0IGlzSW5pdCA9IGFjdGllLnR5cGUgPT09IFJpdGRlbGVuQWN0aW9ucy5TRVRfUklUX0RFTEVOO1xuICAgICAgICBjb25zdCByaXREZWxlbjogUml0ZGVlbFtdID0gaXNJbml0ID8gYWN0aWUucml0RGVsZW4gOiBzdG9yZVN0YXRlLnJpdERlbGVuO1xuICAgICAgICBjb25zdCBzdG9yZUR0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSA9IHN0b3JlU3RhdGUuc2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcztcblxuICAgICAgICAvLyBUT0RPIHN0YXBzaXplIHZhbiAxIHdlcmt0IG51IG5pZXQsIGVyIHdvcmR0IGFsbGVlbiBuYWFyIHBhZ2luYXRpZXNpemUgZ2VrZWtlbiB2YW5hZiBkZSBsYWF0c3RlIHppY2h0YmFyZSByaXRkZWVsLlxuICAgICAgICB0aGlzLm5hdmlnZWVyKHJpdERlbGVuLCBhY3RpZSwgc3RvcmVEdG9zKTtcblxuICAgICAgICBjb25zdCB2aXNpYmxlUml0RGVsZW4gPSByaXREZWxlbi5maWx0ZXIobiA9PiBuLmlzWmljaHRiYWFyQmlubmVuV2luZG93KCkpO1xuICAgICAgICBjb25zdCB2aXNpYmxlUml0UHBsZ3M6IHN0cmluZ1tdID0gdmlzaWJsZVJpdERlbGVuLm1hcChyID0+IHIuZ2V0UHBsZygpKS5maWx0ZXIodGhpcy5kaXN0aW5jdCk7XG5cbiAgICAgICAgY29uc3QgdmlzaWJsZUR0b3MgPSB0aGlzLmJlcGFhbFppY2h0YmFyZUR0b3ModmlzaWJsZVJpdFBwbGdzLCBzdG9yZUR0b3MpO1xuICAgICAgICBjb25zdCBsb2FkaW5nRHRvcyA9IHRoaXMuYmVwYWFsVG9Mb2FkRHRvcyh2aXNpYmxlRHRvcywgcml0RGVsZW4sIHZpc2libGVSaXREZWxlbiwgdmlzaWJsZVJpdFBwbGdzLCBzdG9yZVN0YXRlKTtcblxuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1zdEFjdGlvbnMuU2V0QnVzeSh0cnVlKSk7XG4gICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmVkaXRvclNlcnZpY2UubGFhZFNpZ25hbGVyaW5nc2JlZWxkZW4oYWN0aWUuaWF2ZXJzaWVpbmZvLnZlcnNpZSwgbG9hZGluZ0R0b3MpO1xuICAgICAgICBwcm9taXNlLnRoZW4oc3ZnRGF0YVVybHMgPT4ge1xuICAgICAgICAgICAgdGhpcy52ZXJ3ZXJrU3ZncyhzdmdEYXRhVXJscyk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuaWV1d2VSaXRkZWxlbiA9IHRoaXMudXBkYXRlUml0ZGVsZW4ocml0RGVsZW4sIHZpc2libGVEdG9zKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKHN0b3JlU3RhdGUuZGVidWcsIHZpc2libGVSaXRQcGxncywgbG9hZGluZ0R0b3MpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpc0luaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNc3RBY3Rpb25zLlVwZGF0ZVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3Moc3RvcmVEdG9zKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTXN0QWN0aW9ucy5VcGRhdGVWaXNpYmxlU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcyhsb2FkaW5nRHRvcykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFJpdGRlbGVuQWN0aW9ucy51cGRhdGVSaXREZWxlbihuaWV1d2VSaXRkZWxlbikpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lbGRpbmdFbWl0dGVyU2VydmljZS5lbWl0KE1lbGRpbmdCdWlsZGVyLnJ3cERhdGFOaWV0R2V2b25kZW4oVXRpbHMuZ2V0VmFsaWRFcm9yck1lc3NhZ2UoZXJyKSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBsYWFkRW5WZXJ3ZXJrU2lnbmFsZXJpbmdzYmVlbGRJbmZvJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShNc3RBY3Rpb25zLmxhYWRFblZlcndlcmtTaWduYWxlcmluZ3NiZWVsZEluZm8pLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlKSxcbiAgICAgICAgbWFwKChbYWN0aWUsIHN0b3JlU3RhdGVdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvYnMgPSB0aGlzLnNiaVJlc291cmNlLmxhYWRTaWduYWxlcmluZ3NiZWVsZEluZm8odGhpcy5jcmVhdGVTaWduYWxlcmluZ3NiZWVsZEluZm9RdWVyeUR0byhhY3RpZS5wcGxncywgc3RvcmVTdGF0ZS5pYVZlcnNpZSkpO1xuICAgICAgICAgICAgb2JzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdID0gcmVzO1xuICAgICAgICAgICAgICAgIGlmIChkdG9zICYmIGR0b3MuZmlsdGVyKGR0byA9PiBkdG8ubWV0VmlzdWFsaXNhdGllKS5sZW5ndGggPiAxMikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbGRpbmdFbWl0dGVyU2VydmljZS5lbWl0KE1lbGRpbmdCdWlsZGVyLm1lZXJEYW4xMkJsYWRlbkdldm9uZGVuKGR0b3MubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goU2V0U2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcyhkdG9zLCBzdG9yZVN0YXRlLmlhVmVyc2llLCBhY3RpZS5yaXQsIGFjdGllLnBhZ2luYXRpb25TaXplLCBhY3RpZS5yaXRHZXdpanppZ2RUb2VnZXN0YWFuKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChTZXRWaXNpYmxlU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcyhkdG9zKSk7XG4gICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubWVsZGluZ0VtaXR0ZXJTZXJ2aWNlLmVtaXQoTWVsZGluZ0J1aWxkZXIubmlldEdldm9uZGVuU0JJKGVycikpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pKSwgeyBkaXNwYXRjaDogZmFsc2UgfVxuICAgICk7XG5cbiAgICBuYXZpZ2VlckJ1aXRlblJpdCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoTXN0QWN0aW9ucy5uYXZpZ2VlckJ1aXRlblJpdCksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUpLFxuICAgICAgICBtYXAoKFthY3RpZSwgc3RvcmVTdGF0ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmQgPSB0aGlzLnNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UuZ2V0VG9wb2xvZ3lFbGVtZW50QnlQdWljKGFjdGllLnJhbmRQdWljKTtcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdG9yU2VydmljZS5nZXRPdGhlclJhbmQoYWN0aWUucmFuZFB1aWMpLnN1YnNjcmliZShvdGhlclBwbGcgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9icyA9IHRoaXMuc2JpUmVzb3VyY2UubGFhZFNpZ25hbGVyaW5nc2JlZWxkSW5mbyh0aGlzLmNyZWF0ZVNpZ25hbGVyaW5nc2JlZWxkSW5mb1F1ZXJ5RHRvKFtyYW5kLmdldFBQTEcoKSwgb3RoZXJQcGxnXSwgc3RvcmVTdGF0ZS5pYVZlcnNpZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5sYWFkUm91dGVGaWxlcyhzdG9yZVN0YXRlLmlhVmVyc2llLnZlcnNpZSwgW3JhbmQuZ2V0UFBMRygpLCBvdGhlclBwbGddKTtcbiAgICAgICAgICAgICAgICBvYnMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuZWRpdG9yU2VydmljZS5sYWFkU2lnbmFsZXJpbmdzYmVlbGRlbihzdG9yZVN0YXRlLmlhVmVyc2llLnZlcnNpZSwgcmVzKTtcbiAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS50aGVuKHN2Z0RhdGFVcmxzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmVyd2Vya1N2Z3Moc3ZnRGF0YVVybHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmlldXdlUml0ZGVsZW4gPSB0aGlzLnVwZGF0ZVJpdGRlbGVuKHN0b3JlU3RhdGUucml0RGVsZW4sIHJlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1zdEFjdGlvbnMuVXBkYXRlVmlzaWJsZVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3MocmVzKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFJpdGRlbGVuQWN0aW9ucy51cGRhdGVSaXREZWxlbihuaWV1d2VSaXRkZWxlbikpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSkpLCB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICAgKTtcblxuICAgIHByaXZhdGUgY3JlYXRlU2lnbmFsZXJpbmdzYmVlbGRJbmZvUXVlcnlEdG8ocHBsZ3M6IHN0cmluZ1tdLCBpYWluZm86IEluZnJhTW9kZWwpIHtcbiAgICAgICAgY29uc3QgZGF0dW0gPSBpYWluZm8uaW5nYW5nc0RhdHVtICYmICFpc05hTihpYWluZm8uaW5nYW5nc0RhdHVtLmdldFRpbWUoKSkgPyBpYWluZm8uaW5nYW5nc0RhdHVtLnRvSVNPU3RyaW5nKCkgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB7IHBwbGdzLCB2ZXJzaWU6IGlhaW5mby52ZXJzaWUsIGluZ2FuZ3NEYXR1bTogZGF0dW0gfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZlcndlcmtTdmdzKHN2Z0RhdGFVcmxzKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTXN0QWN0aW9ucy5TZXRTdmdJbmZvcyh0aGlzLmJlcGFhbFN2Z0luZm9zKHN2Z0RhdGFVcmxzKSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmVwYWFsU3ZnSW5mb3Moc3ZnRGF0YVVybHMpIHtcbiAgICAgICAgbGV0IG5leHRDb29yZHMgPSBuZXcgUG9pbnQoMCwgMCk7XG4gICAgICAgIGNvbnN0IGluZm9zOiBTdmdJbmZvW10gPSBbXTtcbiAgICAgICAgc3ZnRGF0YVVybHMuZm9yRWFjaChzdmdEYXRhVXJsID0+IHtcbiAgICAgICAgICAgIGlmIChzdmdEYXRhVXJsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlZCA9IGF0b2Ioc3ZnRGF0YVVybC5zdWJzdHJpbmcoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsJy5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICBpbmZvcy5wdXNoKG5ldyBTdmdJbmZvKCdkYXRhOmltYWdlL3N2Zyt4bWwsJyArIGRlY29kZWQsIG5leHRDb29yZHMpKTtcbiAgICAgICAgICAgICAgICBuZXh0Q29vcmRzID0gbmV3IFBvaW50KG5leHRDb29yZHMueCArIElteFZpZXdlckNvbXBvbmVudC5nZXRYQ29vcmRpbmF0ZShkZWNvZGVkKSArIHRoaXMuU1ZHX1BJWEVMX1JVSU1URSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaW5mb3M7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiZXBhYWxUb0xvYWREdG9zKHZpc2libGVEdG9zLCByaXREZWxlbjogUml0ZGVlbFtdLCB2aXNpYmxlUml0RGVsZW4sIHZpc2libGVSaXRQcGxnczogc3RyaW5nW10sIHN0b3JlU3RhdGU6IE1zdEVkaXRvclN0YXRlKSB7XG4gICAgICAgIGNvbnN0IGxvYWRpbmdEdG9zID0gWy4uLnZpc2libGVEdG9zXTtcbiAgICAgICAgY29uc3QgZmlyc3RJZHggPSByaXREZWxlbi5pbmRleE9mKHZpc2libGVSaXREZWxlblswXSkgLSAxO1xuICAgICAgICB0aGlzLmFkZFByZXZOb25WaXNpYmxlRHRvKGZpcnN0SWR4LCByaXREZWxlbiwgbG9hZGluZ0R0b3MsIHZpc2libGVSaXRQcGxncywgc3RvcmVTdGF0ZS5zaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zKTtcbiAgICAgICAgY29uc3QgbGFzdElkeCA9IHJpdERlbGVuLmluZGV4T2YodmlzaWJsZVJpdERlbGVuW3Zpc2libGVSaXREZWxlbi5sZW5ndGggLSAxXSkgKyAxO1xuICAgICAgICB0aGlzLmFkZE5leHROb25WaXNpYmxlRHRvKGxhc3RJZHgsIHJpdERlbGVuLCBsb2FkaW5nRHRvcywgdmlzaWJsZVJpdFBwbGdzLCBzdG9yZVN0YXRlLnNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3MpO1xuICAgICAgICByZXR1cm4gbG9hZGluZ0R0b3M7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiZXBhYWxaaWNodGJhcmVEdG9zKHZpc2libGVSaXRQcGxnczogc3RyaW5nW10sIGR0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSkge1xuICAgICAgICBjb25zdCB2aXNpYmxlRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdID0gW107XG4gICAgICAgIHZpc2libGVSaXRQcGxncy5mb3JFYWNoKHBwbGcgPT4ge1xuICAgICAgICAgICAgZHRvcy5maWx0ZXIoZHRvID0+IGR0by5wcGxncy5pbmNsdWRlcyhwcGxnKSkuZm9yRWFjaChkdG8gPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdmlzaWJsZUR0b3MuaW5jbHVkZXMoZHRvKSkge1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmxlRHRvcy5wdXNoKGR0byk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2aXNpYmxlRHRvcy5mb3JFYWNoKGR0byA9PiBkdG8ubWV0VmlzdWFsaXNhdGllID0gdHJ1ZSk7XG4gICAgICAgIGR0b3MuZmlsdGVyKGQgPT4gIXZpc2libGVEdG9zLmluY2x1ZGVzKGQpKS5mb3JFYWNoKGQgPT4gZC5tZXRWaXN1YWxpc2F0aWUgPSBmYWxzZSk7XG4gICAgICAgIHJldHVybiB2aXNpYmxlRHRvcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc3RpbmN0KHZhbHVlLCBpbmRleCwgc2VsZikge1xuICAgICAgICByZXR1cm4gc2VsZi5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRQcmV2Tm9uVmlzaWJsZUR0byhmaXJzdElkeCwgcml0ZGVsZW46IFJpdGRlZWxbXSwgbG9hZGluZ0R0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSwgdmlzaWJsZVJpdFBwbGdzOiBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbER0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSkge1xuICAgICAgICBpZiAoZmlyc3RJZHggPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgcHBsZyA9IHJpdGRlbGVuW2ZpcnN0SWR4XS5nZXRQcGxnKCk7XG4gICAgICAgICAgICBjb25zdCByaXRkZWVsRHRvcyA9IGFsbER0b3MuZmlsdGVyKGR0byA9PiBkdG8ucHBsZ3MuaW5jbHVkZXMocHBsZykpLmZpbHRlcihkdG8gPT4gIWxvYWRpbmdEdG9zLmluY2x1ZGVzKGR0bykpO1xuXG4gICAgICAgICAgICBpZiAoIXZpc2libGVSaXRQcGxncy5pbmNsdWRlcyhwcGxnKSAmJiByaXRkZWVsRHRvcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcml0ZGVlbER0b3MuZmlsdGVyKGQgPT4gIWxvYWRpbmdEdG9zLmluY2x1ZGVzKGQpKS5mb3JFYWNoKGQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkLm1ldFZpc3VhbGlzYXRpZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nRHRvcy5wdXNoKGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFByZXZOb25WaXNpYmxlRHRvKGZpcnN0SWR4IC0gMSwgcml0ZGVsZW4sIGxvYWRpbmdEdG9zLCB2aXNpYmxlUml0UHBsZ3MsIGFsbER0b3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGROZXh0Tm9uVmlzaWJsZUR0byhsYXN0SWR4LCByaXRkZWxlbjogUml0ZGVlbFtdLCBsb2FkaW5nRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdLCB2aXNpYmxlUml0UHBsZ3M6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdKSB7XG4gICAgICAgIGlmIChsYXN0SWR4IDw9IHJpdGRlbGVuLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHBwbGcgPSByaXRkZWxlbltsYXN0SWR4XS5nZXRQcGxnKCk7XG4gICAgICAgICAgICBjb25zdCByaXRkZWVsRHRvcyA9IGFsbER0b3MuZmlsdGVyKGR0byA9PiBkdG8ucHBsZ3MuaW5jbHVkZXMocHBsZykpLmZpbHRlcihkdG8gPT4gIWxvYWRpbmdEdG9zLmluY2x1ZGVzKGR0bykpO1xuXG4gICAgICAgICAgICBpZiAoIXZpc2libGVSaXRQcGxncy5pbmNsdWRlcyhwcGxnKSAmJiByaXRkZWVsRHRvcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcml0ZGVlbER0b3MuZmlsdGVyKGQgPT4gIWxvYWRpbmdEdG9zLmluY2x1ZGVzKGQpKS5mb3JFYWNoKGQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkLm1ldFZpc3VhbGlzYXRpZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nRHRvcy5wdXNoKGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZE5leHROb25WaXNpYmxlRHRvKGxhc3RJZHggKyAxLCByaXRkZWxlbiwgbG9hZGluZ0R0b3MsIHZpc2libGVSaXRQcGxncywgYWxsRHRvcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRlYnVnTG9nKGRlYnVnLCB2aXNpYmxlUml0UHBsZ3M6IHN0cmluZ1tdLCBsb2FkaW5nRHRvcykge1xuICAgICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSSVQgUFBMR3M6ICcgKyB2aXNpYmxlUml0UHBsZ3MpO1xuICAgICAgICAgICAgbG9hZGluZ0R0b3MuZm9yRWFjaChkdG8gPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzdHIgPSAnRFRPICAgICAgICAgOiAnICsgZHRvLmJsYWRJZDtcbiAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcbkRUTy1ibGFkTmFhbTogJyArIGR0by5ibGFkTmFhbTtcbiAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcbkRUTy1QUExHcyAgIDogJyArIGR0by5wcGxncztcbiAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcblZpc2libGUgICAgIDogJyArIGR0by5tZXRWaXN1YWxpc2F0aWU7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coc3RyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gYWN0aWVzOiBOYXZpZ2VlcnxOYXZpZ2VlclZhbmFmfFNldFJpdERlbGVuXG4gICAgcHJpdmF0ZSBuYXZpZ2VlcihyaXREZWxlbjogUml0ZGVlbFtdLCBhY3RpZTogeyBwYWdpbmF0aW9uU2l6ZTogbnVtYmVyOyBzdGFwU2l6ZTogbnVtYmVyOyB0eXBlOiBzdHJpbmc7IHJpdGRlZWwgfSwgc3RvcmVEdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10pIHtcbiAgICAgICAgLy8gYWxsZSByaXRkZWxlbiBrcmlqZ2VuIHppY2h0YmFhcmhlaWRCdWl0ZW5QYWdpbmF0aWUgPT4gZmFsc2VcbiAgICAgICAgaWYgKGFjdGllLnR5cGUgPT09IFJpdGRlbGVuQWN0aW9ucy5TRVRfUklUX0RFTEVOKSB7XG4gICAgICAgICAgICB0aGlzLmJlcGFhbFppY2h0YmFhcmhlaWRSZWNodHMoMCwgcml0RGVsZW4sIGFjdGllLnBhZ2luYXRpb25TaXplLCBzdG9yZUR0b3MpO1xuICAgICAgICB9IGVsc2UgaWYgKGFjdGllLnR5cGUgPT09IFJpdGRlbGVuQWN0aW9ucy5OQVZJR0VFUikge1xuICAgICAgICAgICAgY29uc3QgaXNMaW5rcyA9IGFjdGllLnN0YXBTaXplIDwgMDtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLmJlcGFhbFN0YXJ0SW5kZXgocml0RGVsZW4pO1xuICAgICAgICAgICAgY29uc3QgZW5kSW5kZXggPSB0aGlzLmJlcGFhbEVuZEluZGV4KHJpdERlbGVuKTtcbiAgICAgICAgICAgIGNvbnN0IG5hdmlnZXJlbk1vZ2VsaWprID0gIShzdGFydEluZGV4ID09PSAwICYmIGlzTGlua3MgfHwgZW5kSW5kZXggPT09IHJpdERlbGVuLmxlbmd0aCAtIDEgJiYgIWlzTGlua3MpO1xuICAgICAgICAgICAgaWYgKG5hdmlnZXJlbk1vZ2VsaWprKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iZXBhYWxaaWNodGJhYXJoZWlkTGlua3Moc3RhcnRJbmRleCwgcml0RGVsZW4sIGFjdGllLnBhZ2luYXRpb25TaXplLCBzdG9yZUR0b3MpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmVwYWFsWmljaHRiYWFyaGVpZFJlY2h0cyhlbmRJbmRleCwgcml0RGVsZW4sIGFjdGllLnBhZ2luYXRpb25TaXplLCBzdG9yZUR0b3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChhY3RpZS50eXBlID09PSBSaXRkZWxlbkFjdGlvbnMuTkFWSUdFRVJfVkFOQUYpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHJpdERlbGVuLmluZGV4T2YoYWN0aWUucml0ZGVlbCk7XG4gICAgICAgICAgICB0aGlzLmJlcGFhbFppY2h0YmFhcmhlaWRSZWNodHMoaWR4LCByaXREZWxlbiwgYWN0aWUucGFnaW5hdGlvblNpemUsIHN0b3JlRHRvcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJpdGRlbGVuKHJpdGRlbGVuOiBSaXRkZWVsW10sIHZpc2libGVEdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10pOiBSaXRkZWVsW10ge1xuICAgICAgICBjb25zdCB2aXNpYmxlSW5kaWNlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJpdGRlbGVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocml0ZGVsZW5baV0uaXNaaWNodGJhYXJCaW5uZW5XaW5kb3coKSkge1xuICAgICAgICAgICAgICAgIHZpc2libGVJbmRpY2VzLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWluID0gTWF0aC5taW4oLi4udmlzaWJsZUluZGljZXMpO1xuICAgICAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi52aXNpYmxlSW5kaWNlcyk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByaXRkZWxlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgcmQgPSByaXRkZWxlbltpXTtcblxuICAgICAgICAgICAgaWYgKHJkLmlzWmljaHRiYWFyQmlubmVuV2luZG93KCkpIHtcbiAgICAgICAgICAgICAgICByZC5iZXBhYWxUb3BvbG9naWVFbGVtZW50ZW4odGhpcy5zaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICBpZiAocmQuZ2V0VG9wb2xvZ2llRWxlbWVudGVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByaXRkZWxlbltpXSA9IHJkLmlzTmlldEJlc2NoaWtiYWFyKCkgPyByZC5jb3B5TWV0WmljaHRiYWFyaGVpZChSaXRkZWVsWmljaHRiYWFyaGVpZC5aSUNIVEJBQVIpIDogcmQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcml0ZGVsZW5baV0gPSB0aGlzLm1hYWtPbnppY2h0YmFhcihyZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVaaWNodGJhYXJoZWlkQWFuZ3JlemVuZGVSaXRkZWxlbihtaW4sIG1heCwgcml0ZGVsZW4sIHZpc2libGVEdG9zKTtcblxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVaaWNodGJhYXJoZWlkQnVpdGVuV2luZG93KHJpdGRlbGVuLCB2aXNpYmxlRHRvcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVaaWNodGJhYXJoZWlkQnVpdGVuV2luZG93KG5pZXV3ZVJpdGRlbGVuLCB2aXNpYmxlRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdKSB7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuaWV1d2VSaXRkZWxlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgcmQgPSBuaWV1d2VSaXRkZWxlbltpXTtcblxuICAgICAgICAgICAgaWYgKCFyZC5pc1ppY2h0YmFhcigpICYmIHRoaXMuYmV2YXRHZXZpc3VhbGlzZWVyZGVQcGxnKHZpc2libGVEdG9zLCByZC5nZXRQcGxnKCkpKSB7XG4gICAgICAgICAgICAgICAgcmQuYmVwYWFsVG9wb2xvZ2llRWxlbWVudGVuKHRoaXMuc2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJkLmdldFRvcG9sb2dpZUVsZW1lbnRlbigpLmxlbmd0aCA+IDAgJiYgdGhpcy5pc0VlcnN0ZUxhYXRzdGVQdWljWmljaHRiYWFyKHJkLmdldFRvcG9sb2dpZUVsZW1lbnRlbigpKSkge1xuICAgICAgICAgICAgICAgICAgICBuaWV1d2VSaXRkZWxlbltpXSA9IHJkLmlzTmlldEJlc2NoaWtiYWFyKCkgPyByZC5jb3B5TWV0WmljaHRiYWFyaGVpZEVuUGFnaW5hdGllKFJpdGRlZWxaaWNodGJhYXJoZWlkLlpJQ0hUQkFBUiwgdHJ1ZSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmQuY29weU1ldFppY2h0YmFhcmhlaWRCdWl0ZW5QYWdpbmF0aWUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuaWV1d2VSaXRkZWxlbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVppY2h0YmFhcmhlaWRBYW5ncmV6ZW5kZVJpdGRlbGVuKG1pbiwgbWF4LCBuaWV1d2VSaXRkZWxlbiwgdmlzaWJsZUR0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSkge1xuICAgICAgICBsZXQgaSA9IG1pbiAtIDE7XG4gICAgICAgIHdoaWxlIChpID49IDApIHtcbiAgICAgICAgICAgIGkgPSB0aGlzLnVwZGF0ZVppY2h0YmFhckhlaWQoaSwgMCwgdmlzaWJsZUR0b3MsIG5pZXV3ZVJpdGRlbGVuKSAtIDE7XG4gICAgICAgIH1cblxuICAgICAgICBpID0gbWF4ICsgMTtcbiAgICAgICAgd2hpbGUgKGkgPCBuaWV1d2VSaXRkZWxlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGkgPSB0aGlzLnVwZGF0ZVppY2h0YmFhckhlaWQoaSwgbmlldXdlUml0ZGVsZW4ubGVuZ3RoLCB2aXNpYmxlRHRvcywgbmlldXdlUml0ZGVsZW4pICsgMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlWmljaHRiYWFySGVpZChpOiBudW1iZXIsIGVuZDogbnVtYmVyLCB2aXNpYmxlRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdLCBuaWV1d2VSaXRkZWxlbjogUml0ZGVlbFtdKSB7XG4gICAgICAgIGNvbnN0IHJkID0gbmlldXdlUml0ZGVsZW5baV07XG4gICAgICAgIGlmICh0aGlzLmJldmF0R2V2aXN1YWxpc2VlcmRlUHBsZyh2aXNpYmxlRHRvcywgcmQuZ2V0UHBsZygpKSkge1xuICAgICAgICAgICAgaSA9IHRoaXMudXBkYXRlWmljaHRiYWFyaGVpZEFhbmdyZW56ZW5kZVJpdGRlZWwocmQsIG5pZXV3ZVJpdGRlbGVuLCBpLCBlbmQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaSA9IGVuZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRWVyc3RlTGFhdHN0ZVB1aWNaaWNodGJhYXIodG9wb0VsZW1lbnRlbjogVG9wb2xvZ3lFbGVtZW50W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3AnICsgdG9wb0VsZW1lbnRlblswXS5nZXRQdWljKCkpIHx8XG4gICAgICAgICAgICAhIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwJyArIHRvcG9FbGVtZW50ZW5bdG9wb0VsZW1lbnRlbi5sZW5ndGggLSAxXS5nZXRQdWljKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlWmljaHRiYWFyaGVpZEFhbmdyZW56ZW5kZVJpdGRlZWwocmQsIG5pZXV3ZVJpdGRlbGVuLCBpLCBlbmQpIHtcbiAgICAgICAgcmQuYmVwYWFsVG9wb2xvZ2llRWxlbWVudGVuKHRoaXMuc2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSk7XG4gICAgICAgIGlmIChyZC5nZXRUb3BvbG9naWVFbGVtZW50ZW4oKS5sZW5ndGggPiAwICYmIHRoaXMuaXNFZXJzdGVMYWF0c3RlUHVpY1ppY2h0YmFhcihyZC5nZXRUb3BvbG9naWVFbGVtZW50ZW4oKSkpIHtcbiAgICAgICAgICAgIG5pZXV3ZVJpdGRlbGVuW2ldID0gcmQuaXNOaWV0QmVzY2hpa2JhYXIoKSA/IHJkLmNvcHlNZXRaaWNodGJhYXJoZWlkKFJpdGRlZWxaaWNodGJhYXJoZWlkLlpJQ0hUQkFBUikgOiByZDtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGVuZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJldmF0R2V2aXN1YWxpc2VlcmRlUHBsZyh2aXNpYmxlRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdLCBwcGxnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgZm9yIChjb25zdCBkdG8gb2YgdmlzaWJsZUR0b3MpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZHRvcHBsZyBvZiBkdG8ucHBsZ3MpIHtcbiAgICAgICAgICAgICAgICBpZiAoZHRvcHBsZyA9PT0gcHBsZykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFha09uemljaHRiYWFyKHJkKSB7XG4gICAgICAgIHJldHVybiByZC5pc1ppY2h0YmFhcigpIHx8IHJkLmlzT256aWNodGJhYXJEb29yR2VicnVpa2VyKCkgP1xuICAgICAgICAgICAgcmQuY29weU1ldFppY2h0YmFhcmhlaWRFblBhZ2luYXRpZShSaXRkZWVsWmljaHRiYWFyaGVpZC5PTlpJQ0hUQkFBUl9ET09SX1NZU1RFRU0sIGZhbHNlKSA6XG4gICAgICAgICAgICByZC5jb3B5TWV0WmljaHRiYWFyaGVpZEJ1aXRlblBhZ2luYXRpZShmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiZXBhYWxaaWNodGJhYXJoZWlkUmVjaHRzKGlkeDogbnVtYmVyLCBpdGVtczogUml0ZGVlbFtdLCBwYWdpbmF0aW9uU2l6ZTogbnVtYmVyLCBkdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10pIHtcbiAgICAgICAgY29uc3QgcHBsZ3NXaW5kb3cgPSBbXTtcbiAgICAgICAgY29uc3QgZHRvc1dpbmRvdyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByZCA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgaWYgKGkgPj0gaWR4ICYmIHRoaXMudmFsdEJpbm5lblBhZ2luYXRpZVdpbmRvdyhwcGxnc1dpbmRvdywgcGFnaW5hdGlvblNpemUsIGR0b3NXaW5kb3cpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRaaWNodGJhYXIocmQsIHBwbGdzV2luZG93LCBkdG9zLCBkdG9zV2luZG93LCBpdGVtcywgaSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGl0ZW1zW2ldID0gcmQuaXNaaWNodGJhYXIoKSB8fCByZC5pc09uemljaHRiYWFyRG9vckdlYnJ1aWtlcigpID9cbiAgICAgICAgICAgICAgICAgICAgcmQuY29weU1ldFppY2h0YmFhcmhlaWRFblBhZ2luYXRpZShSaXRkZWVsWmljaHRiYWFyaGVpZC5PTlpJQ0hUQkFBUl9ET09SX1NZU1RFRU0sIGZhbHNlKSA6XG4gICAgICAgICAgICAgICAgICAgIHJkLmNvcHlNZXRaaWNodGJhYXJoZWlkQnVpdGVuUGFnaW5hdGllKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYmVwYWFsWmljaHRiYWFyaGVpZExpbmtzKGlkeDogbnVtYmVyLCBpdGVtczogUml0ZGVlbFtdLCBwYWdpbmF0aW9uU2l6ZTogbnVtYmVyLCBkdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10pIHtcbiAgICAgICAgY29uc3QgcHBsZ3NXaW5kb3cgPSBbXTtcbiAgICAgICAgY29uc3QgZHRvc1dpbmRvdyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gaXRlbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHJkID0gaXRlbXNbaV07XG4gICAgICAgICAgICBpZiAoaSA8PSBpZHggJiYgdGhpcy52YWx0QmlubmVuUGFnaW5hdGllV2luZG93KHBwbGdzV2luZG93LCBwYWdpbmF0aW9uU2l6ZSwgZHRvc1dpbmRvdykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFppY2h0YmFhcihyZCwgcHBsZ3NXaW5kb3csIGR0b3MsIGR0b3NXaW5kb3csIGl0ZW1zLCBpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaXRlbXNbaV0gPSByZC5pc1ppY2h0YmFhcigpIHx8IHJkLmlzT256aWNodGJhYXJEb29yR2VicnVpa2VyKCkgP1xuICAgICAgICAgICAgICAgICAgICByZC5jb3B5TWV0WmljaHRiYWFyaGVpZEVuUGFnaW5hdGllKFJpdGRlZWxaaWNodGJhYXJoZWlkLk9OWklDSFRCQUFSX0RPT1JfU1lTVEVFTSwgZmFsc2UpIDpcbiAgICAgICAgICAgICAgICAgICAgcmQuY29weU1ldFppY2h0YmFhcmhlaWRCdWl0ZW5QYWdpbmF0aWUoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx0QmlubmVuUGFnaW5hdGllV2luZG93KHBwbGdzV2luZG93LCBwYWdpbmF0aW9uU2l6ZTogbnVtYmVyLCBkdG9zV2luZG93KSB7XG4gICAgICAgIHJldHVybiBwcGxnc1dpbmRvdy5sZW5ndGggPCBwYWdpbmF0aW9uU2l6ZSB8fCBkdG9zV2luZG93Lmxlbmd0aCA8IHBhZ2luYXRpb25TaXplO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0WmljaHRiYWFyKHJkLCBwcGxnc1dpbmRvdywgZHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdLCBkdG9zV2luZG93LCBpdGVtczogUml0ZGVlbFtdLCBpOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaXRlbVBwbGcgPSByZC5nZXRQcGxnKCk7XG4gICAgICAgIGlmICghcHBsZ3NXaW5kb3cuaW5jbHVkZXMoaXRlbVBwbGcpKSB7XG4gICAgICAgICAgICBwcGxnc1dpbmRvdy5wdXNoKGl0ZW1QcGxnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBwbGdEdG9zID0gW107XG4gICAgICAgIGR0b3MuZmlsdGVyKGR0byA9PiBkdG8ucHBsZ3MuaW5jbHVkZXMoaXRlbVBwbGcpKS5mb3JFYWNoKGR0byA9PiB7XG4gICAgICAgICAgICBpZiAoIXBwbGdEdG9zLmluY2x1ZGVzKGR0bykpIHtcbiAgICAgICAgICAgICAgICBwcGxnRHRvcy5wdXNoKGR0byk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHBwbGdEdG9zLmZpbHRlcihkID0+ICFkdG9zV2luZG93LmluY2x1ZGVzKGQpKS5mb3JFYWNoKGQgPT4gZHRvc1dpbmRvdy5wdXNoKGQpKTtcblxuICAgICAgICBpdGVtc1tpXSA9ICFyZC5pc1ppY2h0YmFhcigpID8gcmQuY29weU1ldFppY2h0YmFhcmhlaWRFblBhZ2luYXRpZShSaXRkZWVsWmljaHRiYWFyaGVpZC5aSUNIVEJBQVIsIGZhbHNlKSA6XG4gICAgICAgICAgICByZC5jb3B5TWV0WmljaHRiYWFyaGVpZEJ1aXRlblBhZ2luYXRpZShmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiZXBhYWxTdGFydEluZGV4KHJpdERlbGVuOiBSaXRkZWVsW10pIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByaXREZWxlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHJpdERlbGVuW2ldLmlzQmlubmVuV2luZG93KCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiZXBhYWxFbmRJbmRleChyaXREZWxlbjogUml0ZGVlbFtdKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSByaXREZWxlbi5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHJpdERlbGVuW2ldLmlzQmlubmVuV2luZG93KCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB6ZXRDbGFzc09wUmFuZGVuKHB1aWNzOiBzdHJpbmdbXSkge1xuICAgICAgICBwdWljcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmFuZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwJyArIGVsZW1lbnQpO1xuICAgICAgICAgICAgcmFuZD8uY2xhc3NMaXN0LmFkZCgnY29ubmVjdG9yJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|