@loxia/mst-viewer 8.1.3-202512010252 → 8.1.3-202512010758
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/generated/openapi/api/api.mjs +26 -0
- package/esm2022/generated/openapi/api/appConfigController.service.mjs +140 -0
- package/esm2022/generated/openapi/api/appConfigController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/bewegingController.service.mjs +155 -0
- package/esm2022/generated/openapi/api/bewegingController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/class0BuildProperties.service.mjs +140 -0
- package/esm2022/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/connectorController.service.mjs +146 -0
- package/esm2022/generated/openapi/api/connectorController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/logController.service.mjs +150 -0
- package/esm2022/generated/openapi/api/logController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/p21Controller.service.mjs +236 -0
- package/esm2022/generated/openapi/api/p21Controller.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/sbController.service.mjs +203 -0
- package/esm2022/generated/openapi/api/sbController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/svgController.service.mjs +155 -0
- package/esm2022/generated/openapi/api/svgController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api.module.mjs +40 -0
- package/esm2022/generated/openapi/configuration.mjs +99 -0
- package/esm2022/generated/openapi/encoder.mjs +19 -0
- package/esm2022/generated/openapi/index.mjs +7 -0
- package/esm2022/generated/openapi/model/actieDto.mjs +13 -0
- package/esm2022/generated/openapi/model/algemeneRitDto.mjs +13 -0
- package/esm2022/generated/openapi/model/bewegingDto.mjs +2 -0
- package/esm2022/generated/openapi/model/frontendKeycloakConfig.mjs +13 -0
- package/esm2022/generated/openapi/model/frontendProperties.mjs +2 -0
- package/esm2022/generated/openapi/model/kilometrering.mjs +13 -0
- package/esm2022/generated/openapi/model/logDto.mjs +2 -0
- package/esm2022/generated/openapi/model/models.mjs +18 -0
- package/esm2022/generated/openapi/model/ritRequestDto.mjs +2 -0
- package/esm2022/generated/openapi/model/sein.mjs +10 -0
- package/esm2022/generated/openapi/model/signaleringsElement.mjs +13 -0
- package/esm2022/generated/openapi/model/signaleringsbeeldDto.mjs +13 -0
- package/esm2022/generated/openapi/model/spoornummer.mjs +13 -0
- package/esm2022/generated/openapi/model/spoortakFragment.mjs +2 -0
- package/esm2022/generated/openapi/model/svgInfoDto.mjs +2 -0
- package/esm2022/generated/openapi/model/svgTopology.mjs +2 -0
- package/esm2022/generated/openapi/model/topologyElement.mjs +2 -0
- package/esm2022/generated/openapi/model/wissel.mjs +2 -0
- package/esm2022/generated/openapi/param.mjs +2 -0
- package/esm2022/generated/openapi/variables.mjs +9 -0
- package/esm2022/lib/atomic-components/message/message.component.mjs +6 -6
- package/esm2022/lib/atomic-components/messages/messages.component.mjs +4 -4
- package/esm2022/lib/atomic-components/overlay/overlay.component.mjs +4 -4
- package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.component.mjs +4 -4
- package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +7 -4
- package/esm2022/lib/atomic-components/services/messages.service.mjs +4 -4
- package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +7 -8
- package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +15 -9
- package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +21 -15
- package/esm2022/lib/components/ritdelen-view/ritdelen-view.component.mjs +4 -4
- package/esm2022/lib/components/rpe/rpe.component.mjs +9 -5
- package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +13 -11
- package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +19 -16
- package/esm2022/lib/model/km-range.mjs +2 -2
- package/esm2022/lib/model/nieuwe-route.mjs +2 -2
- package/esm2022/lib/model/ritdeel.mjs +10 -10
- package/esm2022/lib/mst-viewer.module.mjs +10 -9
- package/esm2022/lib/resources/mstlogging.resource.mjs +13 -146
- package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +18 -14
- package/esm2022/lib/services/base-rest.service.mjs +6 -4
- package/esm2022/lib/services/beweging-utils.service.mjs +9 -9
- package/esm2022/lib/services/beweging-verrijker.service.mjs +4 -4
- package/esm2022/lib/services/connector.service.mjs +4 -4
- package/esm2022/lib/services/debug.service.mjs +6 -6
- package/esm2022/lib/services/editor.service.mjs +6 -4
- package/esm2022/lib/services/print-beweging.service.mjs +26 -23
- package/esm2022/lib/services/rit-lezer.service.mjs +7 -7
- package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +4 -4
- package/esm2022/lib/services/viewer-control.service.mjs +13 -34
- package/esm2022/lib/state/actions/actions.mjs +7 -4
- package/esm2022/lib/state/actions/ritdelen.actions.mjs +4 -4
- package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +11 -10
- package/esm2022/lib/state/effect/bepaal-sb-infos.effect.mjs +5 -5
- package/esm2022/lib/state/effect/beweging-invoegen.effect.mjs +4 -4
- package/esm2022/lib/state/effect/delete-ongeplande-actie.effect.mjs +4 -4
- package/esm2022/lib/state/effect/focus-effect.mjs +5 -5
- package/esm2022/lib/state/effect/laad-route-files.effect.mjs +11 -11
- package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +28 -30
- package/esm2022/lib/state/effect/rit-goedkeuren.effect.mjs +4 -4
- package/esm2022/lib/state/effect/ritdelen.effect.mjs +29 -28
- package/esm2022/lib/state/effect/svg-view.effect.mjs +60 -19
- package/esm2022/lib/state/mst-editor-state.mjs +13 -15
- package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +1 -1
- package/esm2022/lib/util/actie-helper.mjs +32 -28
- package/esm2022/lib/util/actie-popover-bepaler.mjs +2 -2
- package/esm2022/lib/util/date.service.mjs +4 -4
- package/esm2022/lib/util/logging-helper.mjs +38 -43
- package/esm2022/lib/util/multi-map.mjs +2 -3
- package/esm2022/lib/util/utils.mjs +5 -5
- package/esm2022/lib/util/zone-util.mjs +5 -4
- package/esm2022/src/generated/openapi/api/api.mjs +26 -0
- package/esm2022/src/generated/openapi/api/appConfigController.service.mjs +140 -0
- package/esm2022/src/generated/openapi/api/appConfigController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/bewegingController.service.mjs +155 -0
- package/esm2022/src/generated/openapi/api/bewegingController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/class0BuildProperties.service.mjs +140 -0
- package/esm2022/src/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/connectorController.service.mjs +146 -0
- package/esm2022/src/generated/openapi/api/connectorController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/logController.service.mjs +150 -0
- package/esm2022/src/generated/openapi/api/logController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/p21Controller.service.mjs +236 -0
- package/esm2022/src/generated/openapi/api/p21Controller.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/sbController.service.mjs +203 -0
- package/esm2022/src/generated/openapi/api/sbController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/svgController.service.mjs +155 -0
- package/esm2022/src/generated/openapi/api/svgController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api.module.mjs +40 -0
- package/esm2022/src/generated/openapi/configuration.mjs +99 -0
- package/esm2022/src/generated/openapi/encoder.mjs +19 -0
- package/esm2022/src/generated/openapi/index.mjs +7 -0
- package/esm2022/src/generated/openapi/loxia-mst-viewer-src-generated-openapi.mjs +5 -0
- package/esm2022/src/generated/openapi/model/actieDto.mjs +13 -0
- package/esm2022/src/generated/openapi/model/algemeneRitDto.mjs +13 -0
- package/esm2022/src/generated/openapi/model/bewegingDto.mjs +2 -0
- package/esm2022/src/generated/openapi/model/frontendKeycloakConfig.mjs +13 -0
- package/esm2022/src/generated/openapi/model/frontendProperties.mjs +2 -0
- package/esm2022/src/generated/openapi/model/kilometrering.mjs +13 -0
- package/esm2022/src/generated/openapi/model/logDto.mjs +2 -0
- package/esm2022/src/generated/openapi/model/models.mjs +18 -0
- package/esm2022/src/generated/openapi/model/ritRequestDto.mjs +2 -0
- package/esm2022/src/generated/openapi/model/sein.mjs +10 -0
- package/esm2022/src/generated/openapi/model/signaleringsElement.mjs +13 -0
- package/esm2022/src/generated/openapi/model/signaleringsbeeldDto.mjs +13 -0
- package/esm2022/src/generated/openapi/model/spoornummer.mjs +13 -0
- package/esm2022/src/generated/openapi/model/spoortakFragment.mjs +2 -0
- package/esm2022/src/generated/openapi/model/svgInfoDto.mjs +2 -0
- package/esm2022/src/generated/openapi/model/svgTopology.mjs +2 -0
- package/esm2022/src/generated/openapi/model/topologyElement.mjs +2 -0
- package/esm2022/src/generated/openapi/model/wissel.mjs +2 -0
- package/esm2022/src/generated/openapi/param.mjs +2 -0
- package/esm2022/src/generated/openapi/variables.mjs +9 -0
- package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +1522 -0
- package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -0
- package/fesm2022/loxia-mst-viewer.mjs +2162 -722
- package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
- package/generated/openapi/api/api.d.ts +25 -0
- package/generated/openapi/api/appConfigController.service.d.ts +38 -0
- package/generated/openapi/api/appConfigController.serviceInterface.d.ts +24 -0
- package/generated/openapi/api/bewegingController.service.d.ts +40 -0
- package/generated/openapi/api/bewegingController.serviceInterface.d.ts +27 -0
- package/generated/openapi/api/class0BuildProperties.service.d.ts +36 -0
- package/generated/openapi/api/class0BuildProperties.serviceInterface.d.ts +23 -0
- package/generated/openapi/api/connectorController.service.d.ts +38 -0
- package/generated/openapi/api/connectorController.serviceInterface.d.ts +25 -0
- package/generated/openapi/api/logController.service.d.ts +38 -0
- package/generated/openapi/api/logController.serviceInterface.d.ts +25 -0
- package/generated/openapi/api/p21Controller.service.d.ts +62 -0
- package/generated/openapi/api/p21Controller.serviceInterface.d.ts +30 -0
- package/generated/openapi/api/sbController.service.d.ts +60 -0
- package/generated/openapi/api/sbController.serviceInterface.d.ts +32 -0
- package/generated/openapi/api/svgController.service.d.ts +40 -0
- package/generated/openapi/api/svgController.serviceInterface.d.ts +27 -0
- package/generated/openapi/api.module.d.ts +11 -0
- package/generated/openapi/configuration.d.ts +104 -0
- package/generated/openapi/encoder.d.ts +11 -0
- package/generated/openapi/index.d.ts +6 -0
- package/generated/openapi/model/actieDto.d.ts +35 -0
- package/generated/openapi/model/algemeneRitDto.d.ts +20 -0
- package/generated/openapi/model/bewegingDto.d.ts +37 -0
- package/generated/openapi/model/frontendKeycloakConfig.d.ts +16 -0
- package/generated/openapi/model/frontendProperties.d.ts +15 -0
- package/generated/openapi/model/kilometrering.d.ts +15 -0
- package/generated/openapi/model/logDto.d.ts +22 -0
- package/generated/openapi/model/models.d.ts +17 -0
- package/generated/openapi/model/ritRequestDto.d.ts +17 -0
- package/generated/openapi/model/sein.d.ts +46 -0
- package/generated/openapi/model/signaleringsElement.d.ts +16 -0
- package/generated/openapi/model/signaleringsbeeldDto.d.ts +16 -0
- package/generated/openapi/model/spoornummer.d.ts +17 -0
- package/generated/openapi/model/spoortakFragment.d.ts +26 -0
- package/generated/openapi/model/svgInfoDto.d.ts +16 -0
- package/generated/openapi/model/svgTopology.d.ts +21 -0
- package/generated/openapi/model/topologyElement.d.ts +18 -0
- package/generated/openapi/model/wissel.d.ts +31 -0
- package/generated/openapi/param.d.ts +37 -0
- package/generated/openapi/variables.d.ts +8 -0
- package/lib/atomic-components/message/message.component.d.ts +2 -2
- package/lib/atomic-components/progress-indicator/progress-indicator.entity.d.ts +1 -1
- package/lib/components/carousel-controls/carousel-controls.component.d.ts +1 -3
- package/lib/components/mstviewer/mstviewer.component.d.ts +2 -2
- package/lib/components/ritdelen-lijst/ritdelen-lijst.component.d.ts +2 -2
- package/lib/components/rpe/rpe.component.d.ts +1 -1
- package/lib/components/svg-visualisatie/svg-visualisatie.component.d.ts +2 -1
- package/lib/components/viewer-controls/viewer-controls.component.d.ts +3 -4
- package/lib/model/km-range.d.ts +1 -1
- package/lib/model/nieuwe-route.d.ts +2 -2
- package/lib/model/ritdeel.d.ts +11 -10
- package/lib/resources/mstlogging.resource.d.ts +6 -95
- package/lib/resources/signaleringsbeeldinfo.resource.d.ts +10 -15
- package/lib/services/editor.service.d.ts +2 -2
- package/lib/services/print-beweging.service.d.ts +4 -6
- package/lib/services/rit-lezer.service.d.ts +1 -1
- package/lib/services/signalerings-beeld-manager.service.d.ts +2 -2
- package/lib/services/viewer-control.service.d.ts +0 -5
- package/lib/state/actions/actions.d.ts +26 -25
- package/lib/state/actions/ritdelen.actions.d.ts +3 -7
- package/lib/state/effect/bepaal-ongeplande-acties.effect.d.ts +2 -1
- package/lib/state/effect/delete-ongeplande-actie.effect.d.ts +1 -1
- package/lib/state/effect/laad-route-files.effect.d.ts +4 -5
- package/lib/state/effect/laad-signaleringsbeelden.effect.d.ts +13 -13
- package/lib/state/effect/ritdelen.effect.d.ts +7 -6
- package/lib/state/effect/svg-view.effect.d.ts +12 -6
- package/lib/state/mst-editor-state.d.ts +30 -92
- package/lib/util/actie-helper.d.ts +4 -4
- package/lib/util/logging-helper.d.ts +5 -6
- package/lib/util/utils.d.ts +0 -1
- package/package.json +7 -1
- package/src/generated/openapi/README.md +226 -0
- package/src/generated/openapi/api/api.d.ts +25 -0
- package/src/generated/openapi/api/appConfigController.service.d.ts +38 -0
- package/src/generated/openapi/api/appConfigController.serviceInterface.d.ts +24 -0
- package/src/generated/openapi/api/bewegingController.service.d.ts +40 -0
- package/src/generated/openapi/api/bewegingController.serviceInterface.d.ts +27 -0
- package/src/generated/openapi/api/class0BuildProperties.service.d.ts +36 -0
- package/src/generated/openapi/api/class0BuildProperties.serviceInterface.d.ts +23 -0
- package/src/generated/openapi/api/connectorController.service.d.ts +38 -0
- package/src/generated/openapi/api/connectorController.serviceInterface.d.ts +25 -0
- package/src/generated/openapi/api/logController.service.d.ts +38 -0
- package/src/generated/openapi/api/logController.serviceInterface.d.ts +25 -0
- package/src/generated/openapi/api/p21Controller.service.d.ts +62 -0
- package/src/generated/openapi/api/p21Controller.serviceInterface.d.ts +30 -0
- package/src/generated/openapi/api/sbController.service.d.ts +60 -0
- package/src/generated/openapi/api/sbController.serviceInterface.d.ts +32 -0
- package/src/generated/openapi/api/svgController.service.d.ts +40 -0
- package/src/generated/openapi/api/svgController.serviceInterface.d.ts +27 -0
- package/src/generated/openapi/api.module.d.ts +11 -0
- package/src/generated/openapi/configuration.d.ts +104 -0
- package/src/generated/openapi/encoder.d.ts +11 -0
- package/src/generated/openapi/index.d.ts +6 -0
- package/src/generated/openapi/model/actieDto.d.ts +35 -0
- package/src/generated/openapi/model/algemeneRitDto.d.ts +20 -0
- package/src/generated/openapi/model/bewegingDto.d.ts +37 -0
- package/src/generated/openapi/model/frontendKeycloakConfig.d.ts +16 -0
- package/src/generated/openapi/model/frontendProperties.d.ts +15 -0
- package/src/generated/openapi/model/kilometrering.d.ts +15 -0
- package/src/generated/openapi/model/logDto.d.ts +22 -0
- package/src/generated/openapi/model/models.d.ts +17 -0
- package/src/generated/openapi/model/ritRequestDto.d.ts +17 -0
- package/src/generated/openapi/model/sein.d.ts +46 -0
- package/src/generated/openapi/model/signaleringsElement.d.ts +16 -0
- package/src/generated/openapi/model/signaleringsbeeldDto.d.ts +16 -0
- package/src/generated/openapi/model/spoornummer.d.ts +17 -0
- package/src/generated/openapi/model/spoortakFragment.d.ts +26 -0
- package/src/generated/openapi/model/svgInfoDto.d.ts +16 -0
- package/src/generated/openapi/model/svgTopology.d.ts +21 -0
- package/src/generated/openapi/model/topologyElement.d.ts +18 -0
- package/src/generated/openapi/model/wissel.d.ts +31 -0
- package/src/generated/openapi/param.d.ts +37 -0
- package/src/generated/openapi/variables.d.ts +8 -0
- package/tailwind.scss +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import { JsJavaUtil } from '@loxia/rijwegen';
|
|
3
3
|
import { combineLatest } from 'rxjs';
|
|
4
|
-
import { filter } from 'rxjs/operators';
|
|
5
4
|
import { OngeplandeActie } from '../../model/ongeplande-actie';
|
|
6
5
|
import * as MstActions from '../../state/actions/actions';
|
|
7
6
|
import * as RitdelenActions from '../../state/actions/ritdelen.actions';
|
|
8
7
|
import { ActieHelper } from '../../util/actie-helper';
|
|
8
|
+
import { ArrayMultimap } from '../../util/multi-map';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@ngrx/store";
|
|
11
11
|
import * as i2 from "../../services/signalerings-beeld-manager.service";
|
|
@@ -14,10 +14,16 @@ export class RitdelenLijstComponent {
|
|
|
14
14
|
constructor(store, sbmService) {
|
|
15
15
|
this.store = store;
|
|
16
16
|
this.sbmService = sbmService;
|
|
17
|
+
this.nietGeplandeActies = [];
|
|
17
18
|
this.focusEmitter = new EventEmitter();
|
|
18
19
|
this.keurAlleActiesGoed = new EventEmitter();
|
|
20
|
+
this.ritdeelViewModels = [];
|
|
19
21
|
this.selectedRitdeelActies = [];
|
|
20
22
|
this.selectedRitdeelOngeplandeActies = [];
|
|
23
|
+
this.disableActieKnoppenVanRitdeel = true;
|
|
24
|
+
this.editable = false;
|
|
25
|
+
this.ongeplandeActiesMap = new ArrayMultimap();
|
|
26
|
+
this.geplandeActies = new ArrayMultimap();
|
|
21
27
|
this.NG_ACTIE_PREFIX = '* ';
|
|
22
28
|
this.subscriptions = [];
|
|
23
29
|
this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {
|
|
@@ -28,9 +34,6 @@ export class RitdelenLijstComponent {
|
|
|
28
34
|
this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));
|
|
29
35
|
this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));
|
|
30
36
|
this.subscriptions.push(store.select('editable').subscribe(editable => this.editable = editable));
|
|
31
|
-
// listen to changes from svg-viewer-component, saving ritdeel in store isn't cool because of all the gwt in it. This is
|
|
32
|
-
// just to make changes within the angular lifecycle.
|
|
33
|
-
this.subscriptions.push(store.select('selectedRitdeelId').pipe(filter(id => !id)).subscribe(this.deselectRitdeel));
|
|
34
37
|
this.subscriptions.push(combineLatest([
|
|
35
38
|
this.store.select('ritDelen'),
|
|
36
39
|
this.store.select('ongeplandeActies')
|
|
@@ -67,12 +70,14 @@ export class RitdelenLijstComponent {
|
|
|
67
70
|
this.store.dispatch(RitdelenActions.deleteRitdeel(ritdeel));
|
|
68
71
|
}
|
|
69
72
|
deleteActiesUitRit() {
|
|
70
|
-
this.selectedRitdeel
|
|
73
|
+
this.selectedRitdeel?.acties.slice().forEach(actie => {
|
|
71
74
|
this.deleteActieUitRit(actie);
|
|
72
75
|
});
|
|
73
76
|
}
|
|
74
77
|
deleteActieUitRit(actie) {
|
|
75
|
-
|
|
78
|
+
if (!this.selectedRitdeel)
|
|
79
|
+
return;
|
|
80
|
+
const acties = this.selectedRitdeel.acties ?? [];
|
|
76
81
|
const idx = acties.indexOf(actie);
|
|
77
82
|
if (idx >= 0) {
|
|
78
83
|
this.verhuisActieNaarOngepland(actie);
|
|
@@ -98,7 +103,7 @@ export class RitdelenLijstComponent {
|
|
|
98
103
|
}
|
|
99
104
|
voegActieToeAanRit(ongeplandeActie) {
|
|
100
105
|
const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);
|
|
101
|
-
if (idx >= 0) {
|
|
106
|
+
if (idx >= 0 && this.selectedRitdeel) {
|
|
102
107
|
this.store.dispatch(RitdelenActions.addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));
|
|
103
108
|
this.store.dispatch(MstActions.AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));
|
|
104
109
|
this.store.dispatch(MstActions.DeleteOngeplandeActie(ongeplandeActie));
|
|
@@ -200,13 +205,13 @@ export class RitdelenLijstComponent {
|
|
|
200
205
|
return `${prefix}${ActieHelper.getVSTActieOmschrijving(actie)}`;
|
|
201
206
|
}
|
|
202
207
|
bepaalPrefixVoorActieOmschrijving(actie) {
|
|
203
|
-
const
|
|
204
|
-
if (this.selectedRitdeel
|
|
208
|
+
const noPrefix = '';
|
|
209
|
+
if (this.selectedRitdeel?.acties.includes(actie)) {
|
|
205
210
|
// Afwijkende naam bij niet gevisualiseerde actie in rit
|
|
206
211
|
const puics = this.geplandeActies.get(actie);
|
|
207
|
-
return puics.length > 0 ?
|
|
212
|
+
return puics.length > 0 ? noPrefix : this.NG_ACTIE_PREFIX;
|
|
208
213
|
}
|
|
209
|
-
return
|
|
214
|
+
return noPrefix;
|
|
210
215
|
}
|
|
211
216
|
actieVanKmTekst(actie) {
|
|
212
217
|
if (ActieHelper.isWisselSlijpenActie(actie)) {
|
|
@@ -227,6 +232,7 @@ export class RitdelenLijstComponent {
|
|
|
227
232
|
return ritdeel.getPplgString();
|
|
228
233
|
}
|
|
229
234
|
getKantCode(stand) {
|
|
235
|
+
// @ts-ignore
|
|
230
236
|
if (stand === window['domein'].Stand.LINKS) {
|
|
231
237
|
return 'L';
|
|
232
238
|
}
|
|
@@ -236,10 +242,10 @@ export class RitdelenLijstComponent {
|
|
|
236
242
|
this.keurAlleActiesGoed.emit();
|
|
237
243
|
this.deselectRitdeel();
|
|
238
244
|
}
|
|
239
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
240
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
245
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenLijstComponent, deps: [{ token: i1.Store }, { token: i2.SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
246
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: { nietGeplandeActies: "nietGeplandeActies" }, outputs: { focusEmitter: "focusEmitter", keurAlleActiesGoed: "keurAlleActiesGoed" }, ngImport: i0, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3 [attr.data-test-id]=\"'title-rit-details'\">Ritdetails</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\" [attr.data-test-id]=\"'table-rit-details'\">\n <thead>\n <tr>\n <th scope=\"col\">\n <input #input\n type=\"checkbox\"\n checked\n class=\"checkbox col-visibility\"\n (change)=\"toggleZichtbaarheidAlleRitdelen(input.checked)\"\n id=\"ritdetails-selecteerAlles\"\n title=\"Selecteer alles\"\n [attr.data-test-id]=\"'checkbox-alle-bewegingen'\">\n </th>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">PPLG(s)</th>\n <th scope=\"col\">Treinnr.</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td>\n <input id=\"ritdetails-r{{i}}-zichtbaar\"\n [attr.data-test-id]=\"'checkbox-r'+i\"\n type=\"checkbox\"\n class=\"checkbox col-visibility\"\n [checked]=\"ritdeelViewModel.isZichtbaar\"\n [title]=\"ritdeelViewModel.title\"\n (change)=\"toggleRitdeelZichtbaarheid(ritdeelViewModel.ritdeel)\"\n [hidden]=\"ritdeelViewModel.isNietBeschikbaar\"/>\n </td>\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.isNieuw}}</td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-pplgs\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.pplgString}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-r{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteRitdeel(ritdeelViewModel.ritdeel)\">X\n </button>\n </td>\n </tr>\n\n </table>\n </div>\n <div class=\"actie-pane\">\n <div *ngIf=\"selectedRitdeel && (selectedRitdeelActies.length > 0 || selectedRitdeelOngeplandeActies.length > 0) \"\n id=\"actie-pane\">\n <h4>Geplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelActies.length===0\"\n id=\"bulkSetOngeplandButton\"\n [attr.data-test-id]=\"'unplan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActiesUitRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let actie of selectedRitdeelActies; let i = index\" id=\"ritdetails-a{{i}}\">\n <td id=\"ritdetails-a{{i}}-omschrijving\" class=\"nowrap\">{{ actieOmschrijvingTekst(actie) }}</td>\n <td id=\"ritdetails-a{{i}}-vanKmLint\">{{ actieVanKmTekst(actie)}}</td>\n <td id=\"ritdetails-a{{i}}-totKmLint\">{{ actieTotKmTekst(actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-a{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActieUitRit(actie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </td>\n </tr>\n </table>\n <h4>Ongeplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelOngeplandeActies.length===0\"\n id=\"bulkSetGeplandButton\"\n [attr.data-test-id]=\"'plan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActiesToeAanRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let ongeplandeActie of selectedRitdeelOngeplandeActies; let i = index\"\n id=\"ritdetails-oa{{i}}\">\n <td id=\"ritdetails-oa{{i}}-omschrijving\" class=\"nowrap\">{{actieOmschrijvingTekst(ongeplandeActie.actie) }}</td>\n <td id=\"ritdetails-oa{{i}}-vanKmLint\">{{ actieVanKmTekst(ongeplandeActie.actie)}}</td>\n <td id=\"ritdetails-oa{{i}}-totKmLint\">{{ actieTotKmTekst(ongeplandeActie.actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-oa{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActieToeAanRit(ongeplandeActie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"knop-pane\">\n <button type=\"button\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm\"\n [attr.data-test-id]=\"'plan-all-actions-for-file'\"\n [innerText]=\"'Plan acties hele rit'\"\n (click)=\"planAlleRitActies()\">\n </button>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%;border:1px solid black}table{width:100%}th{padding:5px;z-index:1000}td{padding:4px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:45vh;overflow:auto}.actie-pane{height:35vh;overflow:auto}.knop-pane{height:5vh;justify-content:center;display:flex;align-items:center}.panes-container,.panes-separator,.top-pane,.actie-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
241
247
|
}
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenLijstComponent, decorators: [{
|
|
243
249
|
type: Component,
|
|
244
250
|
args: [{ selector: 'ritdelen-lijst', changeDetection: ChangeDetectionStrategy.Default, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3 [attr.data-test-id]=\"'title-rit-details'\">Ritdetails</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\" [attr.data-test-id]=\"'table-rit-details'\">\n <thead>\n <tr>\n <th scope=\"col\">\n <input #input\n type=\"checkbox\"\n checked\n class=\"checkbox col-visibility\"\n (change)=\"toggleZichtbaarheidAlleRitdelen(input.checked)\"\n id=\"ritdetails-selecteerAlles\"\n title=\"Selecteer alles\"\n [attr.data-test-id]=\"'checkbox-alle-bewegingen'\">\n </th>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">PPLG(s)</th>\n <th scope=\"col\">Treinnr.</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td>\n <input id=\"ritdetails-r{{i}}-zichtbaar\"\n [attr.data-test-id]=\"'checkbox-r'+i\"\n type=\"checkbox\"\n class=\"checkbox col-visibility\"\n [checked]=\"ritdeelViewModel.isZichtbaar\"\n [title]=\"ritdeelViewModel.title\"\n (change)=\"toggleRitdeelZichtbaarheid(ritdeelViewModel.ritdeel)\"\n [hidden]=\"ritdeelViewModel.isNietBeschikbaar\"/>\n </td>\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.isNieuw}}</td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-pplgs\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.pplgString}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-r{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteRitdeel(ritdeelViewModel.ritdeel)\">X\n </button>\n </td>\n </tr>\n\n </table>\n </div>\n <div class=\"actie-pane\">\n <div *ngIf=\"selectedRitdeel && (selectedRitdeelActies.length > 0 || selectedRitdeelOngeplandeActies.length > 0) \"\n id=\"actie-pane\">\n <h4>Geplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelActies.length===0\"\n id=\"bulkSetOngeplandButton\"\n [attr.data-test-id]=\"'unplan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActiesUitRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let actie of selectedRitdeelActies; let i = index\" id=\"ritdetails-a{{i}}\">\n <td id=\"ritdetails-a{{i}}-omschrijving\" class=\"nowrap\">{{ actieOmschrijvingTekst(actie) }}</td>\n <td id=\"ritdetails-a{{i}}-vanKmLint\">{{ actieVanKmTekst(actie)}}</td>\n <td id=\"ritdetails-a{{i}}-totKmLint\">{{ actieTotKmTekst(actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-a{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActieUitRit(actie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </td>\n </tr>\n </table>\n <h4>Ongeplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelOngeplandeActies.length===0\"\n id=\"bulkSetGeplandButton\"\n [attr.data-test-id]=\"'plan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActiesToeAanRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let ongeplandeActie of selectedRitdeelOngeplandeActies; let i = index\"\n id=\"ritdetails-oa{{i}}\">\n <td id=\"ritdetails-oa{{i}}-omschrijving\" class=\"nowrap\">{{actieOmschrijvingTekst(ongeplandeActie.actie) }}</td>\n <td id=\"ritdetails-oa{{i}}-vanKmLint\">{{ actieVanKmTekst(ongeplandeActie.actie)}}</td>\n <td id=\"ritdetails-oa{{i}}-totKmLint\">{{ actieTotKmTekst(ongeplandeActie.actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-oa{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActieToeAanRit(ongeplandeActie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"knop-pane\">\n <button type=\"button\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm\"\n [attr.data-test-id]=\"'plan-all-actions-for-file'\"\n [innerText]=\"'Plan acties hele rit'\"\n (click)=\"planAlleRitActies()\">\n </button>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%;border:1px solid black}table{width:100%}th{padding:5px;z-index:1000}td{padding:4px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:45vh;overflow:auto}.actie-pane{height:35vh;overflow:auto}.knop-pane{height:5vh;justify-content:center;display:flex;align-items:center}.panes-container,.panes-separator,.top-pane,.actie-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"] }]
|
|
245
251
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.SignaleringsBeeldManagerService }], propDecorators: { nietGeplandeActies: [{
|
|
@@ -264,4 +270,4 @@ class RitdeelViewModel {
|
|
|
264
270
|
this.treinNummer = treinNummer;
|
|
265
271
|
}
|
|
266
272
|
}
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml0ZGVsZW4tbGlqc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL2NvbXBvbmVudHMvcml0ZGVsZW4tbGlqc3Qvcml0ZGVsZW4tbGlqc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL2NvbXBvbmVudHMvcml0ZGVsZW4tbGlqc3Qvcml0ZGVsZW4tbGlqc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQVMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGFBQWEsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBSTdELE9BQU8sS0FBSyxVQUFVLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxLQUFLLGVBQWUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBU3BELE1BQU0sT0FBTyxzQkFBc0I7SUFrQi9CLFlBQTZCLEtBQTRCLEVBQW1CLFVBQTJDO1FBQTFGLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBQW1CLGVBQVUsR0FBVixVQUFVLENBQWlDO1FBZjdHLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMzQyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSWxELDBCQUFxQixHQUFZLEVBQUUsQ0FBQztRQUNwQyxv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dHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZG9tZWluLCBKc0phdmFVdGlsfSBmcm9tICdAbG94aWEvcmlqd2VnZW4nO1xuaW1wb3J0IHtTdG9yZX0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T25nZXBsYW5kZUFjdGllfSBmcm9tICcuLi8uLi9tb2RlbC9vbmdlcGxhbmRlLWFjdGllJztcbmltcG9ydCB7Uml0ZGVlbH0gZnJvbSAnLi4vLi4vbW9kZWwvcml0ZGVlbCc7XG5pbXBvcnQge0FjdGllfSBmcm9tICcuLi8uLi9vcHRpbW8nO1xuaW1wb3J0IHtTaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaWduYWxlcmluZ3MtYmVlbGQtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIE1zdEFjdGlvbnMgZnJvbSAnLi4vLi4vc3RhdGUvYWN0aW9ucy9hY3Rpb25zJztcbmltcG9ydCAqIGFzIFJpdGRlbGVuQWN0aW9ucyBmcm9tICcuLi8uLi9zdGF0ZS9hY3Rpb25zL3JpdGRlbGVuLmFjdGlvbnMnO1xuaW1wb3J0IHtNc3RFZGl0b3JTdGF0ZX0gZnJvbSAnLi4vLi4vc3RhdGUvbXN0LWVkaXRvci1zdGF0ZSc7XG5pbXBvcnQge0FjdGllSGVscGVyfSBmcm9tICcuLi8uLi91dGlsL2FjdGllLWhlbHBlcic7XG5pbXBvcnQge0FycmF5TXVsdGltYXB9IGZyb20gJy4uLy4uL3V0aWwvbXVsdGktbWFwJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdyaXRkZWxlbi1saWpzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JpdGRlbGVuLWxpanN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yaXRkZWxlbi1saWpzdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxufSlcbmV4cG9ydCBjbGFzcyBSaXRkZWxlbkxpanN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBuaWV0R2VwbGFuZGVBY3RpZXM6IEFjdGllW107XG5cbiAgICBAT3V0cHV0KCkgZm9jdXNFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxSaXRkZWVsPigpO1xuICAgIEBPdXRwdXQoKSBrZXVyQWxsZUFjdGllc0dvZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICByaXRkZWVsVmlld01vZGVsczogUml0ZGVlbFZpZXdNb2RlbFtdO1xuICAgIHNlbGVjdGVkUml0ZGVlbDogUml0ZGVlbDtcbiAgICBzZWxlY3RlZFJpdGRlZWxBY3RpZXM6IEFjdGllW10gPSBbXTtcbiAgICBzZWxlY3RlZFJpdGRlZWxPbmdlcGxhbmRlQWN0aWVzOiBPbmdlcGxhbmRlQWN0aWVbXSA9IFtdO1xuICAgIGRpc2FibGVBY3RpZUtub3BwZW5WYW5SaXRkZWVsOiBib29sZWFuO1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBvbmdlcGxhbmRlQWN0aWVzTWFwOiBBcnJheU11bHRpbWFwPHN0cmluZywgT25nZXBsYW5kZUFjdGllPjtcbiAgICBwcml2YXRlIGdlcGxhbmRlQWN0aWVzOiBBcnJheU11bHRpbWFwPEFjdGllLCBzdHJpbmc+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgTkdfQUNUSUVfUFJFRklYID0gJyogJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0b3JlOiBTdG9yZTxNc3RFZGl0b3JTdGF0ZT4sIHByaXZhdGUgcmVhZG9ubHkgc2JtU2VydmljZTogU2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdG9yZS5zZWxlY3QoJ3JpdERlbGVuJykuc3Vic2NyaWJlKChyaXRkZWxlbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5yaXRkZWVsVmlld01vZGVscyA9IHJpdGRlbGVuPy5tYXAocml0ZGVlbCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSaXRkZWVsVmlld01vZGVsKFxuICAgICAgICAgICAgICAgICAgICByaXRkZWVsLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUml0ZGVlbENsYXNzKHJpdGRlZWwpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUml0ZGVlbFppY2h0YmFhcihyaXRkZWVsKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUaXRsZShyaXRkZWVsKSxcbiAgICAgICAgICAgICAgICAgICAgcml0ZGVlbC5pc05pZXRCZXNjaGlrYmFhcigpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUml0ZGVlbE5pZXV3KHJpdGRlZWwpLFxuICAgICAgICAgICAgICAgICAgICByaXRkZWVsLmdldFZhblBybFNwb29yKCksXG4gICAgICAgICAgICAgICAgICAgIHJpdGRlZWwuZ2V0TmFhclBybFNwb29yVGV4dCgpLFxuICAgICAgICAgICAgICAgICAgICByaXRkZWVsLmdldER3YW5nTnVtbWVyKCksXG4gICAgICAgICAgICAgICAgICAgIHJpdGRlZWwuZ2V0UHBsZ1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRyZWluTnVtbWVyKHJpdGRlZWwpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3RvcmUuc2VsZWN0KCdvbmdlcGxhbmRlQWN0aWVzJykuc3Vic2NyaWJlKGFjdGllcyA9PiB0aGlzLm9uZ2VwbGFuZGVBY3RpZXNNYXAgPSBhY3RpZXMpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3RvcmUuc2VsZWN0KCdnZXBsYW5kZUFjdGllcycpLnN1YnNjcmliZShhY3RpZXMgPT4gdGhpcy5nZXBsYW5kZUFjdGllcyA9IGFjdGllcykpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdG9yZS5zZWxlY3QoJ2VkaXRhYmxlJykuc3Vic2NyaWJlKGVkaXRhYmxlID0+IHRoaXMuZWRpdGFibGUgPSBlZGl0YWJsZSkpO1xuXG4gICAgICAgIC8vIGxpc3RlbiB0byBjaGFuZ2VzIGZyb20gc3ZnLXZpZXdlci1jb21wb25lbnQsIHNhdmluZyByaXRkZWVsIGluIHN0b3JlIGlzbid0IGNvb2wgYmVjYXVzZSBvZiBhbGwgdGhlIGd3dCBpbiBpdC4gVGhpcyBpc1xuICAgICAgICAvLyBqdXN0IHRvIG1ha2UgY2hhbmdlcyB3aXRoaW4gdGhlIGFuZ3VsYXIgbGlmZWN5Y2xlLlxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdG9yZS5zZWxlY3QoJ3NlbGVjdGVkUml0ZGVlbElkJykucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihpZCA9PiAhaWQpKS5zdWJzY3JpYmUodGhpcy5kZXNlbGVjdFJpdGRlZWxcbiAgICAgICAgKSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KCdyaXREZWxlbicpLFxuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoJ29uZ2VwbGFuZGVBY3RpZXMnKV1cbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVPbmdlcGxhbmRlQWN0aWVzTGlzdCgpKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICBpc1JpdGRlZWxaaWNodGJhYXIocml0ZGVlbDogUml0ZGVlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcml0ZGVlbC5pc1ppY2h0YmFhcigpO1xuICAgIH1cblxuICAgIHRvZ2dsZVJpdGRlZWxaaWNodGJhYXJoZWlkKHJpdGRlZWw6IFJpdGRlZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdFJpdGRlZWwoKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChSaXRkZWxlbkFjdGlvbnMudG9nZ2xlUml0ZGVlbFppY2h0YmFhcihyaXRkZWVsKSk7XG4gICAgfVxuXG4gICAgdG9nZ2xlWmljaHRiYWFyaGVpZEFsbGVSaXRkZWxlbihjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RSaXRkZWVsKCk7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUml0ZGVsZW5BY3Rpb25zLnNldFppY2h0YmFhcmhlaWRBbGxlUml0ZGVsZW4oY2hlY2tlZCkpO1xuICAgIH1cblxuICAgIGlzUml0ZGVlbE5pZXV3KHJpdGRlZWw6IFJpdGRlZWwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcml0ZGVlbC5pc05pZXV3KCkgPyAnKycgOiAnJztcbiAgICB9XG5cbiAgICBnZXRUaXRsZShyaXRkZWVsOiBSaXRkZWVsKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHJpdGRlZWwuZ2V0QmV3ZWdpbmdJZCgpO1xuICAgIH1cblxuICAgIGdldFRyZWluTnVtbWVyKHJpdGRlZWw6IFJpdGRlZWwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcml0ZGVlbC5nZXRUcmVpbk51bW1lcigpO1xuICAgIH1cblxuICAgIGRlbGV0ZVJpdGRlZWwocml0ZGVlbDogUml0ZGVlbCk6IHZvaWQge1xuICAgICAgICByaXRkZWVsLmFjdGllcy5mb3JFYWNoKGFjdGllID0+IHtcbiAgICAgICAgICAgIHRoaXMudmVyaHVpc0FjdGllTmFhck9uZ2VwbGFuZChhY3RpZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRlc2VsZWN0Uml0ZGVlbCgpO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFJpdGRlbGVuQWN0aW9ucy5kZWxldGVSaXRkZWVsKHJpdGRlZWwpKTtcbiAgICB9XG5cbiAgICBkZWxldGVBY3RpZXNVaXRSaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsLmFjdGllcy5zbGljZSgpLmZvckVhY2goYWN0aWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZWxldGVBY3RpZVVpdFJpdChhY3RpZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlbGV0ZUFjdGllVWl0Uml0KGFjdGllKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFjdGllcyA9IHRoaXMuc2VsZWN0ZWRSaXRkZWVsLmFjdGllcztcbiAgICAgICAgY29uc3QgaWR4ID0gYWN0aWVzLmluZGV4T2YoYWN0aWUpO1xuICAgICAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMudmVyaHVpc0FjdGllTmFhck9uZ2VwbGFuZChhY3RpZSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFJpdGRlbGVuQWN0aW9ucy5kZWxldGVSaXRkZWVsQWN0aWUodGhpcy5zZWxlY3RlZFJpdGRlZWwsIGFjdGllc1tpZHhdKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm5pZXRHZXBsYW5kZUFjdGllcy5pbmRleE9mKGFjdGllKTtcbiAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgdGhpcy5uaWV0R2VwbGFuZGVBY3RpZXMucHVzaChhY3RpZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZlcmh1aXNBY3RpZU5hYXJPbmdlcGxhbmQoYWN0aWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHVpY3MgPSB0aGlzLmdlcGxhbmRlQWN0aWVzLmdldChhY3RpZSk7XG5cbiAgICAgICAgaWYgKHB1aWNzICYmIHB1aWNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTXN0QWN0aW9ucy5BZGRPbmdlcGxhbmRlQWN0aWUobmV3IE9uZ2VwbGFuZGVBY3RpZShhY3RpZSwgcHVpY3MpKSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1zdEFjdGlvbnMuRGVsZXRlR2VwbGFuZGVBY3RpZShhY3RpZSwgcHVpY3MpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZvZWdBY3RpZXNUb2VBYW5SaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFjdGllcyA9IHRoaXMuc2VsZWN0ZWRSaXRkZWVsT25nZXBsYW5kZUFjdGllcztcbiAgICAgICAgYWN0aWVzLnNsaWNlKCkuZm9yRWFjaChhY3RpZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZvZWdBY3RpZVRvZUFhblJpdChhY3RpZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZvZWdBY3RpZVRvZUFhblJpdChvbmdlcGxhbmRlQWN0aWU6IE9uZ2VwbGFuZGVBY3RpZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLnNlbGVjdGVkUml0ZGVlbE9uZ2VwbGFuZGVBY3RpZXMuaW5kZXhPZihvbmdlcGxhbmRlQWN0aWUpO1xuICAgICAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUml0ZGVsZW5BY3Rpb25zLmFkZFJpdGRlZWxBY3RpZSh0aGlzLnNlbGVjdGVkUml0ZGVlbCwgdGhpcy5zZWxlY3RlZFJpdGRlZWxPbmdlcGxhbmRlQWN0aWVzW2lkeF0uYWN0aWUpKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTXN0QWN0aW9ucy5BZGRHZXBsYW5kZUFjdGllKG9uZ2VwbGFuZGVBY3RpZS5hY3RpZSwgb25nZXBsYW5kZUFjdGllLnB1aWNzKSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1zdEFjdGlvbnMuRGVsZXRlT25nZXBsYW5kZUFjdGllKG9uZ2VwbGFuZGVBY3RpZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlT25nZXBsYW5kZUFjdGllc0xpc3QoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUml0ZGVlbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJpdGRlZWxPbmdlcGxhbmRlQWN0aWVzID0gW107XG4gICAgICAgICAgICBjb25zdCByaXRQdWljczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IHJpdGRlZWxUb3BvRWxlbWVudHMgPSBBY3RpZUhlbHBlci5nZXRBY3RpZVRvcG9FbGVtZW50cyh0aGlzLnNlbGVjdGVkUml0ZGVlbCwgdGhpcy5zYm1TZXJ2aWNlKTtcbiAgICAgICAgICAgIGNvbnN0IHdpc3NlbE9iamVjdGVuOiBkb21laW4uV2lzc2VsW10gPSBKc0phdmFVdGlsLmxpc3RUb0FycmF5KHRoaXMuc2VsZWN0ZWRSaXRkZWVsLmdldFJvdXRlKCkuZ2V0V2lzc2VsT2JqZWN0ZW5JbkRlUm91dGUoKSk7XG5cbiAgICAgICAgICAgIHJpdGRlZWxUb3BvRWxlbWVudHMuZm9yRWFjaChlbGVtID0+IHJpdFB1aWNzLnB1c2goZWxlbS5nZXRQdWljKCkpKTtcbiAgICAgICAgICAgIGNvbnN0IG9uZ2VwbGFuZGVBY3RpZXNBcnJheSA9IHRoaXMub25nZXBsYW5kZUFjdGllc01hcC52YWx1ZXMoKTtcbiAgICAgICAgICAgIG9uZ2VwbGFuZGVBY3RpZXNBcnJheS5mb3JFYWNoKG9hID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpZXMgPSB0aGlzLnJpdGRlZWxWaWV3TW9kZWxzLmZsYXRNYXAocmQgPT4gcmQucml0ZGVlbC5hY3RpZXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFscmVhZHlBZGRlZCA9IGFjdGllcy5maWx0ZXIoYSA9PiBhLmlkID09PSBvYS5hY3RpZS5pZCkubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICBpZiAoIWFscmVhZHlBZGRlZCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgb2FNYXRjaDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFjdGllSGVscGVyLmlzVlNUQWN0aWUob2EuYWN0aWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYU1hdGNoID0gdGhpcy5tYXRjaGVkV2lzc2VsTWV0S2FudENvZGVJblZTVEFjdGllKG9hLCB3aXNzZWxPYmplY3RlbikgPyBvYSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvYS5wdWljcy5maWx0ZXIocCA9PiByaXRQdWljcy5pbmNsdWRlcyhwKSB8fCB0aGlzLmJldmF0V2lzc2VsUHVpYyhyaXRQdWljcywgcCkpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9hTWF0Y2ggPSBvYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFscmVhZHlBZGRlZEFzT25nZXBsYW5kID0gdGhpcy5zZWxlY3RlZFJpdGRlZWxPbmdlcGxhbmRlQWN0aWVzLmZpbHRlcihhID0+IGEuYWN0aWUuaWQgPT09IG9hLmFjdGllLmlkKS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgICAgICBpZiAob2FNYXRjaCAmJiAhYWxyZWFkeUFkZGVkQXNPbmdlcGxhbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsT25nZXBsYW5kZUFjdGllcy5wdXNoKG9hTWF0Y2gpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtYXRjaGVkV2lzc2VsTWV0S2FudENvZGVJblZTVEFjdGllKG9uZ2VwbGFuZGVBY3RpZTogT25nZXBsYW5kZUFjdGllLCB3aXNzZWxzOiBkb21laW4uV2lzc2VsW10pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcHBsZyA9IG9uZ2VwbGFuZGVBY3RpZS5hY3RpZS5wcGxnTmFhbTtcbiAgICAgICAgY29uc3Qgd2lzc2VsS2FudENvZGVzID0gQWN0aWVIZWxwZXIuZ2V0V2lzc2VsS2FudENvZGVzKG9uZ2VwbGFuZGVBY3RpZS5hY3RpZSk7XG5cbiAgICAgICAgbGV0IGdldm9uZGVuV2lzc2VscyA9IDA7XG4gICAgICAgIGxldCBnZXZvbmRlbldpc3NlbEthbnRDb2RlcyA9IDA7XG5cbiAgICAgICAgd2lzc2VsS2FudENvZGVzLmZvckVhY2goKHdpc3NlbEthbnRDb2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBnZXZvbmRlbldpc3NlbCA9IHRoaXMuZmluZFdpc3NlbE9wTmFhbUVuUHBsZyh3aXNzZWxzLCB3aXNzZWxLYW50Q29kZS5uYWFtLCBwcGxnKTtcblxuICAgICAgICAgICAgaWYgKGdldm9uZGVuV2lzc2VsKSB7XG4gICAgICAgICAgICAgICAgZ2V2b25kZW5XaXNzZWxzKys7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2V0S2FudENvZGUoZ2V2b25kZW5XaXNzZWwuZ2V0U3RhbmQoKSkgPT09IHdpc3NlbEthbnRDb2RlLmthbnRDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGdldm9uZGVuV2lzc2VsS2FudENvZGVzKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZ2V2b25kZW5XaXNzZWxzID4gMCAmJiBnZXZvbmRlbldpc3NlbHMgPT09IGdldm9uZGVuV2lzc2VsS2FudENvZGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZFdpc3NlbE9wTmFhbUVuUHBsZyh3aXNzZWxzOiBkb21laW4uV2lzc2VsW10sIHdpc3NlbE5hYW06IHN0cmluZywgcHBsZ05hYW06IHN0cmluZyk6IGRvbWVpbi5XaXNzZWwge1xuICAgICAgICByZXR1cm4gd2lzc2Vscy5maW5kKHdvID0+IHdvLmdldE5hbWUoKSA9PT0gd2lzc2VsTmFhbSAmJiB3by5nZXRQUExHKCkgPT09IHBwbGdOYWFtKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJldmF0V2lzc2VsUHVpYyhyaXRQdWljczogc3RyaW5nW10sIHApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHJpdFB1aWNzLmluY2x1ZGVzKHRoaXMuc2JtU2VydmljZS5nZXRXaXNzZWxNZXRTdG9yaW5nc2thZGVyUHVpYyhwKT8uZ2V0UHVpYygpKTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZFJpdGRlZWxDbGFzcyhyaXRkZWVsOiBSaXRkZWVsKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHJpdGRlZWwuZ2V0WmljaHRiYWFyaGVpZEJ1aXRlblBhZ2luYXRpZSgpKSB7XG4gICAgICAgICAgICBpZiAocml0ZGVlbC5lcXVhbHModGhpcy5zZWxlY3RlZFJpdGRlZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZWxlY3RlZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJ3Zpc2libGUtb3V0c2lkZS13aW5kb3cnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyaXRkZWVsLmlzTmlldEJlc2NoaWtiYWFyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnZGlzYWJsZWQnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyaXRkZWVsLmVxdWFscyh0aGlzLnNlbGVjdGVkUml0ZGVlbCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnc2VsZWN0ZWQnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBzZWxlY3RSaXRkZWVsKGV2ZW50OiBNb3VzZUV2ZW50LCByaXRkZWVsOiBSaXRkZWVsKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudD8uY3RybEtleSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0VtaXR0ZXIuZW1pdChyaXRkZWVsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChyaXRkZWVsPy5lcXVhbHModGhpcy5zZWxlY3RlZFJpdGRlZWwpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNlbGVjdFJpdGRlZWwoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsID0gcml0ZGVlbDtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUFjdGllS25vcHBlblZhblJpdGRlZWwgPSAhdGhpcy5zZWxlY3RlZFJpdGRlZWwuaXNaaWNodGJhYXIoKTtcblxuICAgICAgICAgICAgaWYgKHJpdGRlZWwuYWN0aWVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJpdGRlZWxBY3RpZXMgPSByaXRkZWVsLmFjdGllcztcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU9uZ2VwbGFuZGVBY3RpZXNMaXN0KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsQWN0aWVzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJpdGRlZWxPbmdlcGxhbmRlQWN0aWVzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhY3RpZU9tc2NocmlqdmluZ1Rla3N0KGFjdGllOiBBY3RpZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuYmVwYWFsUHJlZml4Vm9vckFjdGllT21zY2hyaWp2aW5nKGFjdGllKTtcbiAgICAgICAgaWYgKEFjdGllSGVscGVyLmlzVlNUQWN0aWUoYWN0aWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYWFrVnN0QWN0aWVPbXNjaHJpanZpbmcoYWN0aWUsIHByZWZpeCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZWZpeCArIGFjdGllLnJpdEFjdGllVHlwZU9tc2NocmlqdmluZztcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hYWtWc3RBY3RpZU9tc2NocmlqdmluZyhhY3RpZTogQWN0aWUsIHByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAkeyBwcmVmaXggfSR7IEFjdGllSGVscGVyLmdldFZTVEFjdGllT21zY2hyaWp2aW5nKGFjdGllKSB9YDtcbiAgICB9XG5cbiAgICBiZXBhYWxQcmVmaXhWb29yQWN0aWVPbXNjaHJpanZpbmcoYWN0aWU6IEFjdGllKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gJyc7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUml0ZGVlbC5hY3RpZXMuaW5jbHVkZXMoYWN0aWUpKSB7XG4gICAgICAgICAgICAvLyBBZndpamtlbmRlIG5hYW0gYmlqIG5pZXQgZ2V2aXN1YWxpc2VlcmRlIGFjdGllIGluIHJpdFxuICAgICAgICAgICAgY29uc3QgcHVpY3MgPSB0aGlzLmdlcGxhbmRlQWN0aWVzLmdldChhY3RpZSk7XG4gICAgICAgICAgICByZXR1cm4gcHVpY3MubGVuZ3RoID4gMCA/IHByZWZpeCA6IHRoaXMuTkdfQUNUSUVfUFJFRklYO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmVmaXg7XG4gICAgfVxuXG4gICAgYWN0aWVWYW5LbVRla3N0KGFjdGllOiBBY3RpZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChBY3RpZUhlbHBlci5pc1dpc3NlbFNsaWpwZW5BY3RpZShhY3RpZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBhY3RpZS53aXNzZWxOYWFtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY3RpZS52YW5LaWxvbWV0ZXJsaW50ID8gYWN0aWUudmFuS2lsb21ldGVybGludCArICcgJyArIGFjdGllLnZhbktpbG9tZXRyZXJpbmcgOiAnLSc7XG4gICAgfVxuXG4gICAgYWN0aWVUb3RLbVRla3N0KGFjdGllOiBBY3RpZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBhY3RpZS50b3RLaWxvbWV0ZXJsaW50ID8gYWN0aWUudG90S2lsb21ldGVybGludCArICcgJyArIGFjdGllLnRvdEtpbG9tZXRyZXJpbmcgOiAnLSc7XG4gICAgfVxuXG4gICAgZGVzZWxlY3RSaXRkZWVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVBY3RpZUtub3BwZW5WYW5SaXRkZWVsID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUml0ZGVlbEFjdGllcyA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUml0ZGVlbE9uZ2VwbGFuZGVBY3RpZXMgPSBbXTtcbiAgICB9XG5cbiAgICBnZXRQcGxnU3RyaW5nKHJpdGRlZWw6IFJpdGRlZWwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcml0ZGVlbC5nZXRQcGxnU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRLYW50Q29kZShzdGFuZDogZG9tZWluLlN0YW5kKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHN0YW5kID09PSB3aW5kb3dbJ2RvbWVpbiddLlN0YW5kLkxJTktTKSB7XG4gICAgICAgICAgICByZXR1cm4gJ0wnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnUic7XG4gICAgfVxuXG4gICAgcGxhbkFsbGVSaXRBY3RpZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V1ckFsbGVBY3RpZXNHb2VkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdFJpdGRlZWwoKTtcbiAgICB9XG59XG5cbmNsYXNzIFJpdGRlZWxWaWV3TW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSByaXRkZWVsOiBSaXRkZWVsLFxuICAgICAgICByZWFkb25seSBzZWxlY3RlZFJpdGRlZWxDbGFzczogc3RyaW5nLFxuICAgICAgICByZWFkb25seSBpc1ppY2h0YmFhcjogYm9vbGVhbixcbiAgICAgICAgcmVhZG9ubHkgdGl0bGU6IHN0cmluZyxcbiAgICAgICAgcmVhZG9ubHkgaXNOaWV0QmVzY2hpa2JhYXI6IGJvb2xlYW4sXG4gICAgICAgIHJlYWRvbmx5IGlzTmlldXc6IHN0cmluZyxcbiAgICAgICAgcmVhZG9ubHkgdmFuUHJsU3Bvb3I6IHN0cmluZyxcbiAgICAgICAgcmVhZG9ubHkgbmFhclBybFNwb29yOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IGR3YW5nTnVtbWVyOiBudW1iZXIsXG4gICAgICAgIHJlYWRvbmx5IHBwbGdTdHJpbmc6IHN0cmluZyxcbiAgICAgICAgcmVhZG9ubHkgdHJlaW5OdW1tZXI6IHN0cmluZ1xuICAgICkge1xuICAgIH1cbn1cbiIsIjxkaXYgaWQ9XCJyaXRkZWxlbi1saWpzdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLWhlYWRlclwiPlxuICAgICAgICA8aDMgW2F0dHIuZGF0YS10ZXN0LWlkXT1cIid0aXRsZS1yaXQtZGV0YWlscydcIj5SaXRkZXRhaWxzPC9oMz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicGFuZXMtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b3AtcGFuZSB0YWJsZUZpeEhlYWRcIiBpZD1cInRvcC1wYW5lXCI+XG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFthdHRyLmRhdGEtdGVzdC1pZF09XCIndGFibGUtcml0LWRldGFpbHMnXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgI2lucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja2JveCBjb2wtdmlzaWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVaaWNodGJhYXJoZWlkQWxsZVJpdGRlbGVuKGlucHV0LmNoZWNrZWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJpdGRldGFpbHMtc2VsZWN0ZWVyQWxsZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiU2VsZWN0ZWVyIGFsbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3QtaWRdPVwiJ2NoZWNrYm94LWFsbGUtYmV3ZWdpbmdlbidcIj5cbiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+VmFuPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+TmFhcjwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkRXPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+UFBMRyhzKTwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlRyZWlubnIuPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PC90aD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG5cbiAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHJpdGRlZWxWaWV3TW9kZWwgb2Ygcml0ZGVlbFZpZXdNb2RlbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IHNlbGVjdGVkUml0ZGVlbENsYXNzKHJpdGRlZWxWaWV3TW9kZWwucml0ZGVlbCkgfX1cIiBpZD1cInJpdGRldGFpbHMtcnt7aX19XCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInJpdGRldGFpbHMtcnt7aX19LXppY2h0YmFhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cIidjaGVja2JveC1yJytpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tib3ggY29sLXZpc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJpdGRlZWxWaWV3TW9kZWwuaXNaaWNodGJhYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJyaXRkZWVsVmlld01vZGVsLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVJpdGRlZWxaaWNodGJhYXJoZWlkKHJpdGRlZWxWaWV3TW9kZWwucml0ZGVlbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwicml0ZGVlbFZpZXdNb2RlbC5pc05pZXRCZXNjaGlrYmFhclwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tZ2V3aWp6aWdkXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoJGV2ZW50LCByaXRkZWVsVmlld01vZGVsLnJpdGRlZWwpXCI+e3tyaXRkZWVsVmlld01vZGVsLmlzTmlldXd9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LXZhblNwb29yXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoJGV2ZW50LCByaXRkZWVsVmlld01vZGVsLnJpdGRlZWwpXCI+e3tyaXRkZWVsVmlld01vZGVsLnZhblBybFNwb29yfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgaWQ9XCJyaXRkZXRhaWxzLXJ7e2l9fS1uYWFyU3Bvb3JcIiAoY2xpY2spPVwic2VsZWN0Uml0ZGVlbCgkZXZlbnQsIHJpdGRlZWxWaWV3TW9kZWwucml0ZGVlbClcIj57e3JpdGRlZWxWaWV3TW9kZWwubmFhclBybFNwb29yfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgaWQ9XCJyaXRkZXRhaWxzLXJ7e2l9fS1kd2FuZ051bW1lclwiIChjbGljayk9XCJzZWxlY3RSaXRkZWVsKCRldmVudCwgcml0ZGVlbFZpZXdNb2RlbC5yaXRkZWVsKVwiPnt7cml0ZGVlbFZpZXdNb2RlbC5kd2FuZ051bW1lcn19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tcHBsZ3NcIiAoY2xpY2spPVwic2VsZWN0Uml0ZGVlbCgkZXZlbnQsIHJpdGRlZWxWaWV3TW9kZWwucml0ZGVlbClcIj57e3JpdGRlZWxWaWV3TW9kZWwucHBsZ1N0cmluZ319PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tdHJlaW5OdW1tZXJcIiAoY2xpY2spPVwic2VsZWN0Uml0ZGVlbCgkZXZlbnQsIHJpdGRlZWxWaWV3TW9kZWwucml0ZGVlbClcIj57e3JpdGRlZWxWaWV3TW9kZWwudHJlaW5OdW1tZXJ9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246cmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tZGVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibG94aWEtYnRuIGxveGlhLWJ0bi1kYW5nZXIgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVJpdGRlZWwocml0ZGVlbFZpZXdNb2RlbC5yaXRkZWVsKVwiPlhcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aWUtcGFuZVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkUml0ZGVlbCAgJiYgKHNlbGVjdGVkUml0ZGVlbEFjdGllcy5sZW5ndGggPiAwIHx8IHNlbGVjdGVkUml0ZGVlbE9uZ2VwbGFuZGVBY3RpZXMubGVuZ3RoID4gMCkgXCJcbiAgICAgICAgICAgICAgICAgaWQ9XCJhY3RpZS1wYW5lXCI+XG4gICAgICAgICAgICAgICAgPGg0PkdlcGxhbmRlIGFjdGllczwvaDQ+XG4gICAgICAgICAgICAgICAgPHRhYmxlIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5BY3RpZTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5WYW48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+VG90PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cInNlbGVjdGVkUml0ZGVlbEFjdGllcy5sZW5ndGg9PT0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYnVsa1NldE9uZ2VwbGFuZEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3QtaWRdPVwiJ3VucGxhbi1hbGwtYWN0aW9ucydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxveGlhLWJ0biBsb3hpYS1idG4tZGFuZ2VyIGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlQWN0aWVzVWl0Uml0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVBY3RpZUtub3BwZW5WYW5SaXRkZWVsXCI+WFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cblxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGFjdGllIG9mIHNlbGVjdGVkUml0ZGVlbEFjdGllczsgbGV0IGkgPSBpbmRleFwiIGlkPVwicml0ZGV0YWlscy1he3tpfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtYXt7aX19LW9tc2NocmlqdmluZ1wiIGNsYXNzPVwibm93cmFwXCI+e3sgYWN0aWVPbXNjaHJpanZpbmdUZWtzdChhY3RpZSkgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1he3tpfX0tdmFuS21MaW50XCI+e3sgYWN0aWVWYW5LbVRla3N0KGFjdGllKX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtYXt7aX19LXRvdEttTGludFwiPnt7IGFjdGllVG90S21UZWtzdChhY3RpZSl9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOnJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImVkaXRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicml0ZGV0YWlscy1he3tpfX0tZGVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsb3hpYS1idG4gbG94aWEtYnRuLWRhbmdlciBidG4tc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUFjdGllVWl0Uml0KGFjdGllKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUFjdGllS25vcHBlblZhblJpdGRlZWxcIj5YXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgPGg0Pk9uZ2VwbGFuZGUgYWN0aWVzPC9oND5cbiAgICAgICAgICAgICAgICA8dGFibGUgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkFjdGllPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlZhbjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5Ub3Q8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImVkaXRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwic2VsZWN0ZWRSaXRkZWVsT25nZXBsYW5kZUFjdGllcy5sZW5ndGg9PT0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYnVsa1NldEdlcGxhbmRCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cIidwbGFuLWFsbC1hY3Rpb25zJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibG94aWEtYnRuIGxveGlhLWJ0bi1zdWNjZXNzIGxveGlhLWJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidm9lZ0FjdGllc1RvZUFhblJpdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQWN0aWVLbm9wcGVuVmFuUml0ZGVlbFwiPl5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBvbmdlcGxhbmRlQWN0aWUgb2Ygc2VsZWN0ZWRSaXRkZWVsT25nZXBsYW5kZUFjdGllczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJpdGRldGFpbHMtb2F7e2l9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1vYXt7aX19LW9tc2NocmlqdmluZ1wiIGNsYXNzPVwibm93cmFwXCI+e3thY3RpZU9tc2NocmlqdmluZ1Rla3N0KG9uZ2VwbGFuZGVBY3RpZS5hY3RpZSkgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1vYXt7aX19LXZhbkttTGludFwiPnt7IGFjdGllVmFuS21UZWtzdChvbmdlcGxhbmRlQWN0aWUuYWN0aWUpfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1vYXt7aX19LXRvdEttTGludFwiPnt7IGFjdGllVG90S21UZWtzdChvbmdlcGxhbmRlQWN0aWUuYWN0aWUpfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwidGV4dC1hbGlnbjpyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJpdGRldGFpbHMtb2F7e2l9fS1kZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxveGlhLWJ0biBsb3hpYS1idG4tc3VjY2VzcyBsb3hpYS1idG4tc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInZvZWdBY3RpZVRvZUFhblJpdChvbmdlcGxhbmRlQWN0aWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQWN0aWVLbm9wcGVuVmFuUml0ZGVlbFwiPl5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImtub3AtcGFuZVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsb3hpYS1idG4gbG94aWEtYnRuLXByaW1hcnkgbG94aWEtYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cIidwbGFuLWFsbC1hY3Rpb25zLWZvci1maWxlJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpbm5lclRleHRdPVwiJ1BsYW4gYWN0aWVzIGhlbGUgcml0J1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGFuQWxsZVJpdEFjdGllcygpXCI+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml0ZGVsZW4tbGlqc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL2NvbXBvbmVudHMvcml0ZGVsZW4tbGlqc3Qvcml0ZGVsZW4tbGlqc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL2NvbXBvbmVudHMvcml0ZGVsZW4tbGlqc3Qvcml0ZGVsZW4tbGlqc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSS9ELE9BQU8sS0FBSyxVQUFVLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxLQUFLLGVBQWUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQVFyRCxNQUFNLE9BQU8sc0JBQXNCO0lBa0IvQixZQUE2QixLQUE0QixFQUFtQixVQUEyQztRQUExRixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUFtQixlQUFVLEdBQVYsVUFBVSxDQUFpQztRQWpCOUcsdUJBQWtCLEdBQVksRUFBRSxDQUFDO1FBRWhDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMzQyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxE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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZG9tZWluLCBKc0phdmFVdGlsIH0gZnJvbSAnQGxveGlhL3JpandlZ2VuJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPbmdlcGxhbmRlQWN0aWUgfSBmcm9tICcuLi8uLi9tb2RlbC9vbmdlcGxhbmRlLWFjdGllJztcbmltcG9ydCB7IFJpdGRlZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9yaXRkZWVsJztcbmltcG9ydCB7IEFjdGllIH0gZnJvbSAnLi4vLi4vb3B0aW1vJztcbmltcG9ydCB7IFNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaWduYWxlcmluZ3MtYmVlbGQtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIE1zdEFjdGlvbnMgZnJvbSAnLi4vLi4vc3RhdGUvYWN0aW9ucy9hY3Rpb25zJztcbmltcG9ydCAqIGFzIFJpdGRlbGVuQWN0aW9ucyBmcm9tICcuLi8uLi9zdGF0ZS9hY3Rpb25zL3JpdGRlbGVuLmFjdGlvbnMnO1xuaW1wb3J0IHsgTXN0RWRpdG9yU3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9tc3QtZWRpdG9yLXN0YXRlJztcbmltcG9ydCB7IEFjdGllSGVscGVyIH0gZnJvbSAnLi4vLi4vdXRpbC9hY3RpZS1oZWxwZXInO1xuaW1wb3J0IHsgQXJyYXlNdWx0aW1hcCB9IGZyb20gJy4uLy4uL3V0aWwvbXVsdGktbWFwJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdyaXRkZWxlbi1saWpzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JpdGRlbGVuLWxpanN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yaXRkZWxlbi1saWpzdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxufSlcbmV4cG9ydCBjbGFzcyBSaXRkZWxlbkxpanN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBuaWV0R2VwbGFuZGVBY3RpZXM6IEFjdGllW10gPSBbXTtcblxuICAgIEBPdXRwdXQoKSBmb2N1c0VtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJpdGRlZWw+KCk7XG4gICAgQE91dHB1dCgpIGtldXJBbGxlQWN0aWVzR29lZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHJpdGRlZWxWaWV3TW9kZWxzOiBSaXRkZWVsVmlld01vZGVsW10gPSBbXTtcbiAgICBzZWxlY3RlZFJpdGRlZWw6IFJpdGRlZWwgfCB1bmRlZmluZWQ7XG4gICAgc2VsZWN0ZWRSaXRkZWVsQWN0aWVzOiBBY3RpZVtdID0gW107XG4gICAgc2VsZWN0ZWRSaXRkZWVsT25nZXBsYW5kZUFjdGllczogT25nZXBsYW5kZUFjdGllW10gPSBbXTtcbiAgICBkaXNhYmxlQWN0aWVLbm9wcGVuVmFuUml0ZGVlbCA9IHRydWU7XG4gICAgZWRpdGFibGUgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgb25nZXBsYW5kZUFjdGllc01hcDogQXJyYXlNdWx0aW1hcDxzdHJpbmcsIE9uZ2VwbGFuZGVBY3RpZT4gPSBuZXcgQXJyYXlNdWx0aW1hcCgpO1xuICAgIHByaXZhdGUgZ2VwbGFuZGVBY3RpZXM6IEFycmF5TXVsdGltYXA8QWN0aWUsIHN0cmluZz4gPSBuZXcgQXJyYXlNdWx0aW1hcCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgTkdfQUNUSUVfUFJFRklYID0gJyogJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0b3JlOiBTdG9yZTxNc3RFZGl0b3JTdGF0ZT4sIHByaXZhdGUgcmVhZG9ubHkgc2JtU2VydmljZTogU2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdG9yZS5zZWxlY3QoJ3JpdERlbGVuJykuc3Vic2NyaWJlKChyaXRkZWxlbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5yaXRkZWVsVmlld01vZGVscyA9IHJpdGRlbGVuPy5tYXAocml0ZGVlbCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSaXRkZWVsVmlld01vZGVsKFxuICAgICAgICAgICAgICAgICAgICByaXRkZWVsLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUml0ZGVlbENsYXNzKHJpdGRlZWwpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUml0ZGVlbFppY2h0YmFhcihyaXRkZWVsKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUaXRsZShyaXRkZWVsKSxcbiAgICAgICAgICAgICAgICAgICAgcml0ZGVlbC5pc05pZXRCZXNjaGlrYmFhcigpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUml0ZGVlbE5pZXV3KHJpdGRlZWwpLFxuICAgICAgICAgICAgICAgICAgICByaXRkZWVsLmdldFZhblBybFNwb29yKCksXG4gICAgICAgICAgICAgICAgICAgIHJpdGRlZWwuZ2V0TmFhclBybFNwb29yVGV4dCgpLFxuICAgICAgICAgICAgICAgICAgICByaXRkZWVsLmdldER3YW5nTnVtbWVyKCksXG4gICAgICAgICAgICAgICAgICAgIHJpdGRlZWwuZ2V0UHBsZ1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRyZWluTnVtbWVyKHJpdGRlZWwpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3RvcmUuc2VsZWN0KCdvbmdlcGxhbmRlQWN0aWVzJykuc3Vic2NyaWJlKGFjdGllcyA9PiB0aGlzLm9uZ2VwbGFuZGVBY3RpZXNNYXAgPSBhY3RpZXMpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3RvcmUuc2VsZWN0KCdnZXBsYW5kZUFjdGllcycpLnN1YnNjcmliZShhY3RpZXMgPT4gdGhpcy5nZXBsYW5kZUFjdGllcyA9IGFjdGllcykpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdG9yZS5zZWxlY3QoJ2VkaXRhYmxlJykuc3Vic2NyaWJlKGVkaXRhYmxlID0+IHRoaXMuZWRpdGFibGUgPSBlZGl0YWJsZSkpO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdCgncml0RGVsZW4nKSxcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KCdvbmdlcGxhbmRlQWN0aWVzJyldXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlT25nZXBsYW5kZUFjdGllc0xpc3QoKSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgaXNSaXRkZWVsWmljaHRiYWFyKHJpdGRlZWw6IFJpdGRlZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHJpdGRlZWwuaXNaaWNodGJhYXIoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVSaXRkZWVsWmljaHRiYWFyaGVpZChyaXRkZWVsOiBSaXRkZWVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RSaXRkZWVsKCk7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUml0ZGVsZW5BY3Rpb25zLnRvZ2dsZVJpdGRlZWxaaWNodGJhYXIocml0ZGVlbCkpO1xuICAgIH1cblxuICAgIHRvZ2dsZVppY2h0YmFhcmhlaWRBbGxlUml0ZGVsZW4oY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2VsZWN0Uml0ZGVlbCgpO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFJpdGRlbGVuQWN0aW9ucy5zZXRaaWNodGJhYXJoZWlkQWxsZVJpdGRlbGVuKGNoZWNrZWQpKTtcbiAgICB9XG5cbiAgICBpc1JpdGRlZWxOaWV1dyhyaXRkZWVsOiBSaXRkZWVsKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHJpdGRlZWwuaXNOaWV1dygpID8gJysnIDogJyc7XG4gICAgfVxuXG4gICAgZ2V0VGl0bGUocml0ZGVlbDogUml0ZGVlbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiByaXRkZWVsLmdldEJld2VnaW5nSWQoKTtcbiAgICB9XG5cbiAgICBnZXRUcmVpbk51bW1lcihyaXRkZWVsOiBSaXRkZWVsKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHJpdGRlZWwuZ2V0VHJlaW5OdW1tZXIoKTtcbiAgICB9XG5cbiAgICBkZWxldGVSaXRkZWVsKHJpdGRlZWw6IFJpdGRlZWwpOiB2b2lkIHtcbiAgICAgICAgcml0ZGVlbC5hY3RpZXMuZm9yRWFjaChhY3RpZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZlcmh1aXNBY3RpZU5hYXJPbmdlcGxhbmQoYWN0aWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdFJpdGRlZWwoKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChSaXRkZWxlbkFjdGlvbnMuZGVsZXRlUml0ZGVlbChyaXRkZWVsKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlQWN0aWVzVWl0Uml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUml0ZGVlbD8uYWN0aWVzLnNsaWNlKCkuZm9yRWFjaChhY3RpZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUFjdGllVWl0Uml0KGFjdGllKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZGVsZXRlQWN0aWVVaXRSaXQoYWN0aWU6IEFjdGllKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZFJpdGRlZWwpIHJldHVybjtcblxuICAgICAgICBjb25zdCBhY3RpZXMgPSB0aGlzLnNlbGVjdGVkUml0ZGVlbC5hY3RpZXMgPz8gW107XG4gICAgICAgIGNvbnN0IGlkeCA9IGFjdGllcy5pbmRleE9mKGFjdGllKTtcbiAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnZlcmh1aXNBY3RpZU5hYXJPbmdlcGxhbmQoYWN0aWUpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChSaXRkZWxlbkFjdGlvbnMuZGVsZXRlUml0ZGVlbEFjdGllKHRoaXMuc2VsZWN0ZWRSaXRkZWVsLCBhY3RpZXNbaWR4XSkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5uaWV0R2VwbGFuZGVBY3RpZXMuaW5kZXhPZihhY3RpZSk7XG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIHRoaXMubmlldEdlcGxhbmRlQWN0aWVzLnB1c2goYWN0aWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2ZXJodWlzQWN0aWVOYWFyT25nZXBsYW5kKGFjdGllOiBBY3RpZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBwdWljcyA9IHRoaXMuZ2VwbGFuZGVBY3RpZXMuZ2V0KGFjdGllKTtcblxuICAgICAgICBpZiAocHVpY3MgJiYgcHVpY3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNc3RBY3Rpb25zLkFkZE9uZ2VwbGFuZGVBY3RpZShuZXcgT25nZXBsYW5kZUFjdGllKGFjdGllLCBwdWljcykpKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTXN0QWN0aW9ucy5EZWxldGVHZXBsYW5kZUFjdGllKGFjdGllLCBwdWljcykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdm9lZ0FjdGllc1RvZUFhblJpdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWN0aWVzID0gdGhpcy5zZWxlY3RlZFJpdGRlZWxPbmdlcGxhbmRlQWN0aWVzO1xuICAgICAgICBhY3RpZXMuc2xpY2UoKS5mb3JFYWNoKGFjdGllID0+IHtcbiAgICAgICAgICAgIHRoaXMudm9lZ0FjdGllVG9lQWFuUml0KGFjdGllKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdm9lZ0FjdGllVG9lQWFuUml0KG9uZ2VwbGFuZGVBY3RpZTogT25nZXBsYW5kZUFjdGllKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuc2VsZWN0ZWRSaXRkZWVsT25nZXBsYW5kZUFjdGllcy5pbmRleE9mKG9uZ2VwbGFuZGVBY3RpZSk7XG4gICAgICAgIGlmIChpZHggPj0gMCAmJiB0aGlzLnNlbGVjdGVkUml0ZGVlbCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChSaXRkZWxlbkFjdGlvbnMuYWRkUml0ZGVlbEFjdGllKHRoaXMuc2VsZWN0ZWRSaXRkZWVsLCB0aGlzLnNlbGVjdGVkUml0ZGVlbE9uZ2VwbGFuZGVBY3RpZXNbaWR4XS5hY3RpZSkpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNc3RBY3Rpb25zLkFkZEdlcGxhbmRlQWN0aWUob25nZXBsYW5kZUFjdGllLmFjdGllLCBvbmdlcGxhbmRlQWN0aWUucHVpY3MpKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTXN0QWN0aW9ucy5EZWxldGVPbmdlcGxhbmRlQWN0aWUob25nZXBsYW5kZUFjdGllKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVPbmdlcGxhbmRlQWN0aWVzTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRSaXRkZWVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUml0ZGVlbE9uZ2VwbGFuZGVBY3RpZXMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IHJpdFB1aWNzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAgICAgY29uc3Qgcml0ZGVlbFRvcG9FbGVtZW50cyA9IEFjdGllSGVscGVyLmdldEFjdGllVG9wb0VsZW1lbnRzKHRoaXMuc2VsZWN0ZWRSaXRkZWVsLCB0aGlzLnNibVNlcnZpY2UpO1xuICAgICAgICAgICAgY29uc3Qgd2lzc2VsT2JqZWN0ZW46IGRvbWVpbi5XaXNzZWxbXSA9IEpzSmF2YVV0aWwubGlzdFRvQXJyYXkodGhpcy5zZWxlY3RlZFJpdGRlZWwuZ2V0Um91dGUoKS5nZXRXaXNzZWxPYmplY3RlbkluRGVSb3V0ZSgpKTtcblxuICAgICAgICAgICAgcml0ZGVlbFRvcG9FbGVtZW50cy5mb3JFYWNoKGVsZW0gPT4gcml0UHVpY3MucHVzaChlbGVtLmdldFB1aWMoKSkpO1xuICAgICAgICAgICAgY29uc3Qgb25nZXBsYW5kZUFjdGllc0FycmF5ID0gdGhpcy5vbmdlcGxhbmRlQWN0aWVzTWFwLnZhbHVlcygpO1xuICAgICAgICAgICAgb25nZXBsYW5kZUFjdGllc0FycmF5LmZvckVhY2gob2EgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGllcyA9IHRoaXMucml0ZGVlbFZpZXdNb2RlbHMuZmxhdE1hcChyZCA9PiByZC5yaXRkZWVsLmFjdGllcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWxyZWFkeUFkZGVkID0gYWN0aWVzLmZpbHRlcihhID0+IGEuaWQgPT09IG9hLmFjdGllLmlkKS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgIGlmICghYWxyZWFkeUFkZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBvYU1hdGNoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQWN0aWVIZWxwZXIuaXNWU1RBY3RpZShvYS5hY3RpZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9hTWF0Y2ggPSB0aGlzLm1hdGNoZWRXaXNzZWxNZXRLYW50Q29kZUluVlNUQWN0aWUob2EsIHdpc3NlbE9iamVjdGVuKSA/IG9hIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9hLnB1aWNzLmZpbHRlcihwID0+IHJpdFB1aWNzLmluY2x1ZGVzKHApIHx8IHRoaXMuYmV2YXRXaXNzZWxQdWljKHJpdFB1aWNzLCBwKSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2FNYXRjaCA9IG9hO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWxyZWFkeUFkZGVkQXNPbmdlcGxhbmQgPSB0aGlzLnNlbGVjdGVkUml0ZGVlbE9uZ2VwbGFuZGVBY3RpZXMuZmlsdGVyKGEgPT4gYS5hY3RpZS5pZCA9PT0gb2EuYWN0aWUuaWQpLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvYU1hdGNoICYmICFhbHJlYWR5QWRkZWRBc09uZ2VwbGFuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJpdGRlZWxPbmdlcGxhbmRlQWN0aWVzLnB1c2gob2FNYXRjaCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1hdGNoZWRXaXNzZWxNZXRLYW50Q29kZUluVlNUQWN0aWUob25nZXBsYW5kZUFjdGllOiBPbmdlcGxhbmRlQWN0aWUsIHdpc3NlbHM6IGRvbWVpbi5XaXNzZWxbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBwcGxnID0gb25nZXBsYW5kZUFjdGllLmFjdGllLnBwbGdOYWFtO1xuICAgICAgICBjb25zdCB3aXNzZWxLYW50Q29kZXMgPSBBY3RpZUhlbHBlci5nZXRXaXNzZWxLYW50Q29kZXMob25nZXBsYW5kZUFjdGllLmFjdGllKTtcblxuICAgICAgICBsZXQgZ2V2b25kZW5XaXNzZWxzID0gMDtcbiAgICAgICAgbGV0IGdldm9uZGVuV2lzc2VsS2FudENvZGVzID0gMDtcblxuICAgICAgICB3aXNzZWxLYW50Q29kZXMuZm9yRWFjaCgod2lzc2VsS2FudENvZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdldm9uZGVuV2lzc2VsID0gdGhpcy5maW5kV2lzc2VsT3BOYWFtRW5QcGxnKHdpc3NlbHMsIHdpc3NlbEthbnRDb2RlLm5hYW0sIHBwbGcpO1xuXG4gICAgICAgICAgICBpZiAoZ2V2b25kZW5XaXNzZWwpIHtcbiAgICAgICAgICAgICAgICBnZXZvbmRlbldpc3NlbHMrKztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5nZXRLYW50Q29kZShnZXZvbmRlbldpc3NlbC5nZXRTdGFuZCgpKSA9PT0gd2lzc2VsS2FudENvZGUua2FudENvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V2b25kZW5XaXNzZWxLYW50Q29kZXMrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBnZXZvbmRlbldpc3NlbHMgPiAwICYmIGdldm9uZGVuV2lzc2VscyA9PT0gZ2V2b25kZW5XaXNzZWxLYW50Q29kZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kV2lzc2VsT3BOYWFtRW5QcGxnKHdpc3NlbHM6IGRvbWVpbi5XaXNzZWxbXSwgd2lzc2VsTmFhbTogc3RyaW5nLCBwcGxnTmFhbTogc3RyaW5nKTogZG9tZWluLldpc3NlbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB3aXNzZWxzLmZpbmQod28gPT4gd28uZ2V0TmFtZSgpID09PSB3aXNzZWxOYWFtICYmIHdvLmdldFBQTEcoKSA9PT0gcHBsZ05hYW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmV2YXRXaXNzZWxQdWljKHJpdFB1aWNzOiBzdHJpbmdbXSwgcDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiByaXRQdWljcy5pbmNsdWRlcyh0aGlzLnNibVNlcnZpY2UuZ2V0V2lzc2VsTWV0U3RvcmluZ3NrYWRlclB1aWMocCk/LmdldFB1aWMoKSk7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRSaXRkZWVsQ2xhc3Mocml0ZGVlbDogUml0ZGVlbCk6IHN0cmluZyB7XG4gICAgICAgIGlmIChyaXRkZWVsLmdldFppY2h0YmFhcmhlaWRCdWl0ZW5QYWdpbmF0aWUoKSkge1xuICAgICAgICAgICAgaWYgKHJpdGRlZWwuZXF1YWxzKHRoaXMuc2VsZWN0ZWRSaXRkZWVsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc2VsZWN0ZWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICd2aXNpYmxlLW91dHNpZGUtd2luZG93JztcbiAgICAgICAgfVxuICAgICAgICBpZiAocml0ZGVlbC5pc05pZXRCZXNjaGlrYmFhcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Rpc2FibGVkJztcbiAgICAgICAgfVxuICAgICAgICBpZiAocml0ZGVlbC5lcXVhbHModGhpcy5zZWxlY3RlZFJpdGRlZWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NlbGVjdGVkJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgc2VsZWN0Uml0ZGVlbChldmVudDogTW91c2VFdmVudCwgcml0ZGVlbDogUml0ZGVlbCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQ/LmN0cmxLZXkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNFbWl0dGVyLmVtaXQocml0ZGVlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocml0ZGVlbD8uZXF1YWxzKHRoaXMuc2VsZWN0ZWRSaXRkZWVsKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RSaXRkZWVsKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUml0ZGVlbCA9IHJpdGRlZWw7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVBY3RpZUtub3BwZW5WYW5SaXRkZWVsID0gIXRoaXMuc2VsZWN0ZWRSaXRkZWVsLmlzWmljaHRiYWFyKCk7XG5cbiAgICAgICAgICAgIGlmIChyaXRkZWVsLmFjdGllcykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsQWN0aWVzID0gcml0ZGVlbC5hY3RpZXM7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPbmdlcGxhbmRlQWN0aWVzTGlzdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUml0ZGVlbEFjdGllcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsT25nZXBsYW5kZUFjdGllcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWN0aWVPbXNjaHJpanZpbmdUZWtzdChhY3RpZTogQWN0aWUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwcmVmaXggPSB0aGlzLmJlcGFhbFByZWZpeFZvb3JBY3RpZU9tc2NocmlqdmluZyhhY3RpZSk7XG4gICAgICAgIGlmIChBY3RpZUhlbHBlci5pc1ZTVEFjdGllKGFjdGllKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFha1ZzdEFjdGllT21zY2hyaWp2aW5nKGFjdGllLCBwcmVmaXgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmVmaXggKyBhY3RpZS5yaXRBY3RpZVR5cGVPbXNjaHJpanZpbmc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYWFrVnN0QWN0aWVPbXNjaHJpanZpbmcoYWN0aWU6IEFjdGllLCBwcmVmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHsgcHJlZml4IH0keyBBY3RpZUhlbHBlci5nZXRWU1RBY3RpZU9tc2NocmlqdmluZyhhY3RpZSkgfWA7XG4gICAgfVxuXG4gICAgYmVwYWFsUHJlZml4Vm9vckFjdGllT21zY2hyaWp2aW5nKGFjdGllOiBBY3RpZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG5vUHJlZml4ID0gJyc7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUml0ZGVlbD8uYWN0aWVzLmluY2x1ZGVzKGFjdGllKSkge1xuICAgICAgICAgICAgLy8gQWZ3aWprZW5kZSBuYWFtIGJpaiBuaWV0IGdldmlzdWFsaXNlZXJkZSBhY3RpZSBpbiByaXRcbiAgICAgICAgICAgIGNvbnN0IHB1aWNzID0gdGhpcy5nZXBsYW5kZUFjdGllcy5nZXQoYWN0aWUpO1xuICAgICAgICAgICAgcmV0dXJuIHB1aWNzLmxlbmd0aCA+IDAgPyBub1ByZWZpeCA6IHRoaXMuTkdfQUNUSUVfUFJFRklYO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub1ByZWZpeDtcbiAgICB9XG5cbiAgICBhY3RpZVZhbkttVGVrc3QoYWN0aWU6IEFjdGllKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKEFjdGllSGVscGVyLmlzV2lzc2VsU2xpanBlbkFjdGllKGFjdGllKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFjdGllLndpc3NlbE5hYW07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGllLnZhbktpbG9tZXRlcmxpbnQgPyBhY3RpZS52YW5LaWxvbWV0ZXJsaW50ICsgJyAnICsgYWN0aWUudmFuS2lsb21ldHJlcmluZyA6ICctJztcbiAgICB9XG5cbiAgICBhY3RpZVRvdEttVGVrc3QoYWN0aWU6IEFjdGllKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGFjdGllLnRvdEtpbG9tZXRlcmxpbnQgPyBhY3RpZS50b3RLaWxvbWV0ZXJsaW50ICsgJyAnICsgYWN0aWUudG90S2lsb21ldHJlcmluZyA6ICctJztcbiAgICB9XG5cbiAgICBkZXNlbGVjdFJpdGRlZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZUFjdGllS25vcHBlblZhblJpdGRlZWwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJpdGRlZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsQWN0aWVzID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsT25nZXBsYW5kZUFjdGllcyA9IFtdO1xuICAgIH1cblxuICAgIGdldFBwbGdTdHJpbmcocml0ZGVlbDogUml0ZGVlbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiByaXRkZWVsLmdldFBwbGdTdHJpbmcoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEthbnRDb2RlKHN0YW5kOiBkb21laW4uU3RhbmQpOiBzdHJpbmcge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmIChzdGFuZCA9PT0gd2luZG93Wydkb21laW4nXS5TdGFuZC5MSU5LUykge1xuICAgICAgICAgICAgcmV0dXJuICdMJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ1InO1xuICAgIH1cblxuICAgIHBsYW5BbGxlUml0QWN0aWVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtldXJBbGxlQWN0aWVzR29lZC5lbWl0KCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RSaXRkZWVsKCk7XG4gICAgfVxufVxuXG5jbGFzcyBSaXRkZWVsVmlld01vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgcml0ZGVlbDogUml0ZGVlbCxcbiAgICAgICAgcmVhZG9ubHkgc2VsZWN0ZWRSaXRkZWVsQ2xhc3M6IHN0cmluZyxcbiAgICAgICAgcmVhZG9ubHkgaXNaaWNodGJhYXI6IGJvb2xlYW4sXG4gICAgICAgIHJlYWRvbmx5IHRpdGxlOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IGlzTmlldEJlc2NoaWtiYWFyOiBib29sZWFuLFxuICAgICAgICByZWFkb25seSBpc05pZXV3OiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IHZhblBybFNwb29yOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IG5hYXJQcmxTcG9vcjogc3RyaW5nLFxuICAgICAgICByZWFkb25seSBkd2FuZ051bW1lcjogbnVtYmVyLFxuICAgICAgICByZWFkb25seSBwcGxnU3RyaW5nOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IHRyZWluTnVtbWVyOiBzdHJpbmdcbiAgICApIHtcbiAgICB9XG59XG4iLCI8ZGl2IGlkPVwicml0ZGVsZW4tbGlqc3RcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1oZWFkZXJcIj5cbiAgICAgICAgPGgzIFthdHRyLmRhdGEtdGVzdC1pZF09XCIndGl0bGUtcml0LWRldGFpbHMnXCI+Uml0ZGV0YWlsczwvaDM+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBhbmVzLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLXBhbmUgdGFibGVGaXhIZWFkXCIgaWQ9XCJ0b3AtcGFuZVwiPlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbYXR0ci5kYXRhLXRlc3QtaWRdPVwiJ3RhYmxlLXJpdC1kZXRhaWxzJ1wiPlxuICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0ICNpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tib3ggY29sLXZpc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlWmljaHRiYWFyaGVpZEFsbGVSaXRkZWxlbihpbnB1dC5jaGVja2VkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyaXRkZXRhaWxzLXNlbGVjdGVlckFsbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlNlbGVjdGVlciBhbGxlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cIidjaGVja2JveC1hbGxlLWJld2VnaW5nZW4nXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPjwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlZhbjwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPk5hYXI8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5EVzwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlBQTEcocyk8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5UcmVpbm5yLjwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPjwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxuXG4gICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByaXRkZWVsVmlld01vZGVsIG9mIHJpdGRlZWxWaWV3TW9kZWxzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBzZWxlY3RlZFJpdGRlZWxDbGFzcyhyaXRkZWVsVmlld01vZGVsLnJpdGRlZWwpIH19XCIgaWQ9XCJyaXRkZXRhaWxzLXJ7e2l9fVwiPlxuICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJyaXRkZXRhaWxzLXJ7e2l9fS16aWNodGJhYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCInY2hlY2tib3gtcicraVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrYm94IGNvbC12aXNpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJyaXRkZWVsVmlld01vZGVsLmlzWmljaHRiYWFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwicml0ZGVlbFZpZXdNb2RlbC50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVSaXRkZWVsWmljaHRiYWFyaGVpZChyaXRkZWVsVmlld01vZGVsLnJpdGRlZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cInJpdGRlZWxWaWV3TW9kZWwuaXNOaWV0QmVzY2hpa2JhYXJcIi8+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LWdld2lqemlnZFwiIChjbGljayk9XCJzZWxlY3RSaXRkZWVsKCRldmVudCwgcml0ZGVlbFZpZXdNb2RlbC5yaXRkZWVsKVwiPnt7cml0ZGVlbFZpZXdNb2RlbC5pc05pZXV3fX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgaWQ9XCJyaXRkZXRhaWxzLXJ7e2l9fS12YW5TcG9vclwiIChjbGljayk9XCJzZWxlY3RSaXRkZWVsKCRldmVudCwgcml0ZGVlbFZpZXdNb2RlbC5yaXRkZWVsKVwiPnt7cml0ZGVlbFZpZXdNb2RlbC52YW5QcmxTcG9vcn19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tbmFhclNwb29yXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoJGV2ZW50LCByaXRkZWVsVmlld01vZGVsLnJpdGRlZWwpXCI+e3tyaXRkZWVsVmlld01vZGVsLm5hYXJQcmxTcG9vcn19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tZHdhbmdOdW1tZXJcIiAoY2xpY2spPVwic2VsZWN0Uml0ZGVlbCgkZXZlbnQsIHJpdGRlZWxWaWV3TW9kZWwucml0ZGVlbClcIj57e3JpdGRlZWxWaWV3TW9kZWwuZHdhbmdOdW1tZXJ9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LXBwbGdzXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoJGV2ZW50LCByaXRkZWVsVmlld01vZGVsLnJpdGRlZWwpXCI+e3tyaXRkZWVsVmlld01vZGVsLnBwbGdTdHJpbmd9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LXRyZWluTnVtbWVyXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoJGV2ZW50LCByaXRkZWVsVmlld01vZGVsLnJpdGRlZWwpXCI+e3tyaXRkZWVsVmlld01vZGVsLnRyZWluTnVtbWVyfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOnJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJpdGRldGFpbHMtcnt7aX19LWRlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxveGlhLWJ0biBsb3hpYS1idG4tZGFuZ2VyIGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVSaXRkZWVsKHJpdGRlZWxWaWV3TW9kZWwucml0ZGVlbClcIj5YXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGllLXBhbmVcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFJpdGRlZWwgICYmIChzZWxlY3RlZFJpdGRlZWxBY3RpZXMubGVuZ3RoID4gMCB8fCBzZWxlY3RlZFJpdGRlZWxPbmdlcGxhbmRlQWN0aWVzLmxlbmd0aCA+IDApIFwiXG4gICAgICAgICAgICAgICAgIGlkPVwiYWN0aWUtcGFuZVwiPlxuICAgICAgICAgICAgICAgIDxoND5HZXBsYW5kZSBhY3RpZXM8L2g0PlxuICAgICAgICAgICAgICAgIDx0YWJsZSBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+QWN0aWU8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+VmFuPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlRvdDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJzZWxlY3RlZFJpdGRlZWxBY3RpZXMubGVuZ3RoPT09MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImJ1bGtTZXRPbmdlcGxhbmRCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cIid1bnBsYW4tYWxsLWFjdGlvbnMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsb3hpYS1idG4gbG94aWEtYnRuLWRhbmdlciBidG4tc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUFjdGllc1VpdFJpdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQWN0aWVLbm9wcGVuVmFuUml0ZGVlbFwiPlhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBhY3RpZSBvZiBzZWxlY3RlZFJpdGRlZWxBY3RpZXM7IGxldCBpID0gaW5kZXhcIiBpZD1cInJpdGRldGFpbHMtYXt7aX19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgaWQ9XCJyaXRkZXRhaWxzLWF7e2l9fS1vbXNjaHJpanZpbmdcIiBjbGFzcz1cIm5vd3JhcFwiPnt7IGFjdGllT21zY2hyaWp2aW5nVGVrc3QoYWN0aWUpIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtYXt7aX19LXZhbkttTGludFwiPnt7IGFjdGllVmFuS21UZWtzdChhY3RpZSl9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgaWQ9XCJyaXRkZXRhaWxzLWF7e2l9fS10b3RLbUxpbnRcIj57eyBhY3RpZVRvdEttVGVrc3QoYWN0aWUpfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwidGV4dC1hbGlnbjpyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJpdGRldGFpbHMtYXt7aX19LWRlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibG94aWEtYnRuIGxveGlhLWJ0bi1kYW5nZXIgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVBY3RpZVVpdFJpdChhY3RpZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVBY3RpZUtub3BwZW5WYW5SaXRkZWVsXCI+WFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgICAgIDxoND5PbmdlcGxhbmRlIGFjdGllczwvaDQ+XG4gICAgICAgICAgICAgICAgPHRhYmxlIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5BY3RpZTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5WYW48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+VG90PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cInNlbGVjdGVkUml0ZGVlbE9uZ2VwbGFuZGVBY3RpZXMubGVuZ3RoPT09MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImJ1bGtTZXRHZXBsYW5kQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCIncGxhbi1hbGwtYWN0aW9ucydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxveGlhLWJ0biBsb3hpYS1idG4tc3VjY2VzcyBsb3hpYS1idG4tc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInZvZWdBY3RpZXNUb2VBYW5SaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUFjdGllS25vcHBlblZhblJpdGRlZWxcIj5eXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgb25nZXBsYW5kZUFjdGllIG9mIHNlbGVjdGVkUml0ZGVlbE9uZ2VwbGFuZGVBY3RpZXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyaXRkZXRhaWxzLW9he3tpfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtb2F7e2l9fS1vbXNjaHJpanZpbmdcIiBjbGFzcz1cIm5vd3JhcFwiPnt7YWN0aWVPbXNjaHJpanZpbmdUZWtzdChvbmdlcGxhbmRlQWN0aWUuYWN0aWUpIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtb2F7e2l9fS12YW5LbUxpbnRcIj57eyBhY3RpZVZhbkttVGVrc3Qob25nZXBsYW5kZUFjdGllLmFjdGllKX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtb2F7e2l9fS10b3RLbUxpbnRcIj57eyBhY3RpZVRvdEttVGVrc3Qob25nZXBsYW5kZUFjdGllLmFjdGllKX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246cmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyaXRkZXRhaWxzLW9he3tpfX0tZGVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsb3hpYS1idG4gbG94aWEtYnRuLXN1Y2Nlc3MgbG94aWEtYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ2b2VnQWN0aWVUb2VBYW5SaXQob25nZXBsYW5kZUFjdGllKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUFjdGllS25vcHBlblZhblJpdGRlZWxcIj5eXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrbm9wLXBhbmVcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibG94aWEtYnRuIGxveGlhLWJ0bi1wcmltYXJ5IGxveGlhLWJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCIncGxhbi1hbGwtYWN0aW9ucy1mb3ItZmlsZSdcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJUZXh0XT1cIidQbGFuIGFjdGllcyBoZWxlIHJpdCdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicGxhbkFsbGVSaXRBY3RpZXMoKVwiPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -77,10 +77,10 @@ export class RitdelenViewComponent {
|
|
|
77
77
|
}
|
|
78
78
|
return false;
|
|
79
79
|
}
|
|
80
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenViewComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: { focusEmitter: "focusEmitter" }, host: { listeners: { "window:keyup": "keyEvent($event)" } }, ngImport: i0, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3>Ritdetails view</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Spoor</th>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Sein</th>\n <th scope=\"col\"></th>\n <th scope=\"col\"></th>\n </tr>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">Treinnummer</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel(i)\"></td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-vanSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-naarSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n </td>\n </tr>\n </table>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%}table{width:100%}th,td{padding:5px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:90vh;overflow:auto}.panes-container,.panes-separator,.top-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
82
82
|
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenViewComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
85
|
args: [{ selector: 'ritdelen-view', template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3>Ritdetails view</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Spoor</th>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Sein</th>\n <th scope=\"col\"></th>\n <th scope=\"col\"></th>\n </tr>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">Treinnummer</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel(i)\"></td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-vanSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-naarSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n </td>\n </tr>\n </table>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%}table{width:100%}th,td{padding:5px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:90vh;overflow:auto}.panes-container,.panes-separator,.top-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"] }]
|
|
86
86
|
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { focusEmitter: [{
|
|
@@ -100,4 +100,4 @@ class RitdeelViewModel {
|
|
|
100
100
|
this.treinNummer = treinNummer;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml0ZGVsZW4tdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9saWIvY29tcG9uZW50cy9yaXRkZWxlbi12aWV3L3JpdGRlbGVuLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL2NvbXBvbmVudHMvcml0ZGVsZW4tdmlldy9yaXRkZWxlbi12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJdkYsT0FBTyxFQUFDLG1CQUFtQixFQUFFLDRCQUE0QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFRdkcsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QixRQUFRLENBQUMsS0FBb0I7UUFDekIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0wsQ0FBQztJQVFELFlBQTZCLEtBQTRCO1FBQTVCLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBakIvQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFXckQs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Q0FBUTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUNoQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3RvcmV9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Uml0ZGVlbH0gZnJvbSAnLi4vLi4vbW9kZWwvcml0ZGVlbCc7XG5pbXBvcnQge3NldFJpdGRlZWxaaWNodGJhYXIsIHNldFppY2h0YmFhcmhlaWRBbGxlUml0ZGVsZW59IGZyb20gJy4uLy4uL3N0YXRlL2FjdGlvbnMvcml0ZGVsZW4uYWN0aW9ucyc7XG5pbXBvcnQge01zdEVkaXRvclN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9tc3QtZWRpdG9yLXN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdyaXRkZWxlbi12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcml0ZGVsZW4tdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcml0ZGVsZW4tdmlldy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJpdGRlbGVuVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQE91dHB1dCgpIGZvY3VzRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Uml0ZGVlbD4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cCcsIFsnJGV2ZW50J10pXG4gICAga2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgJiYgdGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Uml0ZGVlbCh0aGlzLnNlbGVjdGVkUml0ZGVlbEluZGV4IC0gMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgJiYgdGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCA8IHRoaXMucml0ZGVlbFZpZXdNb2RlbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdFJpdGRlZWwodGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCArIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcml0ZGVlbFZpZXdNb2RlbHM6IFJpdGRlZWxWaWV3TW9kZWxbXSA9IFtdO1xuICAgIHNlbGVjdGVkUml0ZGVlbEluZGV4ID0gLTE7XG5cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RvcmU6IFN0b3JlPE1zdEVkaXRvclN0YXRlPikge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdG9yZS5zZWxlY3QoJ3JpdERlbGVuJykuc3Vic2NyaWJlKHJpdGRlbGVuID0+IHRoaXMuaGFuZGxlUml0RGVsZW5VcGRhdGUocml0ZGVsZW4pKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZFJpdGRlZWxDbGFzcyhyaXRkZWVsOiBSaXRkZWVsKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgcml0ZGVlbEluZGV4ID0gdGhpcy5yaXRkZWVsVmlld01vZGVscy5maW5kSW5kZXgociA9PiByLnJpdGRlZWwgPT09IHJpdGRlZWwpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCAhPT0gLTEgJiYgdGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCA9PT0gcml0ZGVlbEluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NlbGVjdGVkJztcbiAgICAgICAgfVxuICAgICAgICBpZiAocml0ZGVlbC5nZXRaaWNodGJhYXJoZWlkQnVpdGVuUGFnaW5hdGllKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAndmlzaWJsZS1vdXRzaWRlLXdpbmRvdyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJpdGRlZWwuaXNOaWV0QmVzY2hpa2JhYXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuICdkaXNhYmxlZCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHNlbGVjdFJpdGRlZWwoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNldFJpdGRlZWxaaWNodGJhYXIodGhpcy5yaXRkZWVsVmlld01vZGVsc1t0aGlzLnNlbGVjdGVkUml0ZGVlbEluZGV4XS5yaXRkZWVsLCBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsSW5kZXggPSBpbmRleDtcbiAgICAgICAgY29uc3Qgcml0ZGVlbCA9IHRoaXMucml0ZGVlbFZpZXdNb2RlbHNbaW5kZXhdLnJpdGRlZWw7XG4gICAgICAgIHRoaXMuZm9jdXNFbWl0dGVyLmVtaXQocml0ZGVlbCk7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2V0Uml0ZGVlbFppY2h0YmFhcihyaXRkZWVsLCB0cnVlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVSaXREZWxlblVwZGF0ZShyaXRkZWxlbjogUml0ZGVlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucml0ZGVlbFZpZXdNb2RlbHMgPSByaXRkZWxlbi5tYXAocml0ZGVlbCA9PiBuZXcgUml0ZGVlbFZpZXdNb2RlbChcbiAgICAgICAgICAgIHJpdGRlZWwsXG4gICAgICAgICAgICByaXRkZWVsLmdldFZhblBybFNwb29yKCksXG4gICAgICAgICAgICByaXRkZWVsLmdldE5hYXJQcmxTcG9vcigpLFxuICAgICAgICAgICAgcml0ZGVlbC5nZXREd2FuZ051bW1lcigpLFxuICAgICAgICAgICAgcml0ZGVlbC5nZXRWYW5TZWluTmFtZSgpLFxuICAgICAgICAgICAgcml0ZGVlbC5nZXROYWFyU2Vpbk5hbWUoKSxcbiAgICAgICAgICAgIHJpdGRlZWwuZ2V0VHJlaW5OdW1tZXIoKVxuICAgICAgICApKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1lZXJkZXJlUml0RGVsZW5aaWNodGJhYXIoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2V0WmljaHRiYWFyaGVpZEFsbGVSaXRkZWxlbihmYWxzZSkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJpdGRlbGVuQmVzY2hpa2JhYXJNYWFyWm9uZGVyU2VsZWN0aWUoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFJpdGRlZWwoMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJpdGRlZWxWaWV3TW9kZWxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RSaXRkZWVsKHRoaXMuc2VsZWN0ZWRSaXRkZWVsSW5kZXgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByaXRkZWxlbkJlc2NoaWtiYWFyTWFhclpvbmRlclNlbGVjdGllKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yaXRkZWVsVmlld01vZGVscy5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRSaXRkZWVsSW5kZXggPCAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWVlcmRlcmVSaXREZWxlblppY2h0YmFhcigpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCByaXRkZWVsVmlld01vZGVsIG9mIHRoaXMucml0ZGVlbFZpZXdNb2RlbHMpIHtcbiAgICAgICAgICAgIGlmIChyaXRkZWVsVmlld01vZGVsLnJpdGRlZWwuaXNOaWV0QmVzY2hpa2JhYXIoKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJpdGRlZWxWaWV3TW9kZWwucml0ZGVlbC5pc1ppY2h0YmFhcigpKSB7XG4gICAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgICAgICBpZiAoY291bnQgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5jbGFzcyBSaXRkZWVsVmlld01vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgcml0ZGVlbDogUml0ZGVlbCxcbiAgICAgICAgcmVhZG9ubHkgdmFuUHJsU3Bvb3I6IHN0cmluZyxcbiAgICAgICAgcmVhZG9ubHkgbmFhclBybFNwb29yOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IGR3YW5nTnVtbWVyOiBudW1iZXIsXG4gICAgICAgIHJlYWRvbmx5IHZhblNlaW5OYW1lOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IG5hYXJTZWluTmFtZTogc3RyaW5nLFxuICAgICAgICByZWFkb25seSB0cmVpbk51bW1lcjogc3RyaW5nKSB7XG4gICAgfVxufVxuIiwiPGRpdiBpZD1cInJpdGRlbGVuLWxpanN0XCI+XG4gICAgPGRpdiBjbGFzcz1cInNpZGViYXItaGVhZGVyXCI+XG4gICAgICAgIDxoMz5SaXRkZXRhaWxzIHZpZXc8L2gzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwYW5lcy1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvcC1wYW5lIHRhYmxlRml4SGVhZFwiIGlkPVwidG9wLXBhbmVcIj5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY29sc3Bhbj1cIjJcIiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPlNwb29yPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY29sc3Bhbj1cIjJcIiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPlNlaW48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5WYW48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5OYWFyPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+RFc8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5WYW48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5OYWFyPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+VHJlaW5udW1tZXI8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cblxuICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcml0ZGVlbFZpZXdNb2RlbCBvZiByaXRkZWVsVmlld01vZGVsczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgc2VsZWN0ZWRSaXRkZWVsQ2xhc3Mocml0ZGVlbFZpZXdNb2RlbC5yaXRkZWVsKSB9fVwiIGlkPVwicml0ZGV0YWlscy1ye3tpfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tZ2V3aWp6aWdkXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoaSlcIj48L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgaWQ9XCJyaXRkZXRhaWxzLXJ7e2l9fS12YW5TcG9vclwiIChjbGljayk9XCJzZWxlY3RSaXRkZWVsKGkpXCI+e3tyaXRkZWVsVmlld01vZGVsLnZhblBybFNwb29yfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgaWQ9XCJyaXRkZXRhaWxzLXJ7e2l9fS1uYWFyU3Bvb3JcIiAoY2xpY2spPVwic2VsZWN0Uml0ZGVlbChpKVwiPnt7cml0ZGVlbFZpZXdNb2RlbC5uYWFyUHJsU3Bvb3J9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LWR3YW5nTnVtbWVyXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoaSlcIj57e3JpdGRlZWxWaWV3TW9kZWwuZHdhbmdOdW1tZXJ9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LXZhblNlaW5OYW1lXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoaSlcIj57e3JpdGRlZWxWaWV3TW9kZWwudmFuU2Vpbk5hbWV9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LW5hYXJTZWluTmFtZVwiIChjbGljayk9XCJzZWxlY3RSaXRkZWVsKGkpXCI+e3tyaXRkZWVsVmlld01vZGVsLm5hYXJTZWluTmFtZX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tdHJlaW5OdW1tZXJcIiAoY2xpY2spPVwic2VsZWN0Uml0ZGVlbChpKVwiPnt7cml0ZGVlbFZpZXdNb2RlbC50cmVpbk51bW1lcn19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwidGV4dC1hbGlnbjpyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml0ZGVsZW4tdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9saWIvY29tcG9uZW50cy9yaXRkZWxlbi12aWV3L3JpdGRlbGVuLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL2NvbXBvbmVudHMvcml0ZGVsZW4tdmlldy9yaXRkZWxlbi12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJdkYsT0FBTyxFQUFDLG1CQUFtQixFQUFFLDRCQUE0QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFRdkcsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QixRQUFRLENBQUMsS0FBb0I7UUFDekIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0wsQ0FBQztJQVFELFlBQTZCLEtBQTRCO1FBQTVCLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBakIvQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFXckQs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Q0FBUTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUNoQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3RvcmV9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Uml0ZGVlbH0gZnJvbSAnLi4vLi4vbW9kZWwvcml0ZGVlbCc7XG5pbXBvcnQge3NldFJpdGRlZWxaaWNodGJhYXIsIHNldFppY2h0YmFhcmhlaWRBbGxlUml0ZGVsZW59IGZyb20gJy4uLy4uL3N0YXRlL2FjdGlvbnMvcml0ZGVsZW4uYWN0aW9ucyc7XG5pbXBvcnQge01zdEVkaXRvclN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9tc3QtZWRpdG9yLXN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdyaXRkZWxlbi12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcml0ZGVsZW4tdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcml0ZGVsZW4tdmlldy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJpdGRlbGVuVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQE91dHB1dCgpIGZvY3VzRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Uml0ZGVlbD4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cCcsIFsnJGV2ZW50J10pXG4gICAga2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgJiYgdGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Uml0ZGVlbCh0aGlzLnNlbGVjdGVkUml0ZGVlbEluZGV4IC0gMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgJiYgdGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCA8IHRoaXMucml0ZGVlbFZpZXdNb2RlbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdFJpdGRlZWwodGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCArIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcml0ZGVlbFZpZXdNb2RlbHM6IFJpdGRlZWxWaWV3TW9kZWxbXSA9IFtdO1xuICAgIHNlbGVjdGVkUml0ZGVlbEluZGV4ID0gLTE7XG5cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RvcmU6IFN0b3JlPE1zdEVkaXRvclN0YXRlPikge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdG9yZS5zZWxlY3QoJ3JpdERlbGVuJykuc3Vic2NyaWJlKHJpdGRlbGVuID0+IHRoaXMuaGFuZGxlUml0RGVsZW5VcGRhdGUocml0ZGVsZW4pKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZFJpdGRlZWxDbGFzcyhyaXRkZWVsOiBSaXRkZWVsKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgcml0ZGVlbEluZGV4ID0gdGhpcy5yaXRkZWVsVmlld01vZGVscy5maW5kSW5kZXgociA9PiByLnJpdGRlZWwgPT09IHJpdGRlZWwpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCAhPT0gLTEgJiYgdGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCA9PT0gcml0ZGVlbEluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NlbGVjdGVkJztcbiAgICAgICAgfVxuICAgICAgICBpZiAocml0ZGVlbC5nZXRaaWNodGJhYXJoZWlkQnVpdGVuUGFnaW5hdGllKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAndmlzaWJsZS1vdXRzaWRlLXdpbmRvdyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJpdGRlZWwuaXNOaWV0QmVzY2hpa2JhYXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuICdkaXNhYmxlZCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHNlbGVjdFJpdGRlZWwoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFJpdGRlZWxJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNldFJpdGRlZWxaaWNodGJhYXIodGhpcy5yaXRkZWVsVmlld01vZGVsc1t0aGlzLnNlbGVjdGVkUml0ZGVlbEluZGV4XS5yaXRkZWVsLCBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSaXRkZWVsSW5kZXggPSBpbmRleDtcbiAgICAgICAgY29uc3Qgcml0ZGVlbCA9IHRoaXMucml0ZGVlbFZpZXdNb2RlbHNbaW5kZXhdLnJpdGRlZWw7XG4gICAgICAgIHRoaXMuZm9jdXNFbWl0dGVyLmVtaXQocml0ZGVlbCk7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2V0Uml0ZGVlbFppY2h0YmFhcihyaXRkZWVsLCB0cnVlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVSaXREZWxlblVwZGF0ZShyaXRkZWxlbjogUml0ZGVlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucml0ZGVlbFZpZXdNb2RlbHMgPSByaXRkZWxlbi5tYXAocml0ZGVlbCA9PiBuZXcgUml0ZGVlbFZpZXdNb2RlbChcbiAgICAgICAgICAgIHJpdGRlZWwsXG4gICAgICAgICAgICByaXRkZWVsLmdldFZhblBybFNwb29yKCksXG4gICAgICAgICAgICByaXRkZWVsLmdldE5hYXJQcmxTcG9vcigpLFxuICAgICAgICAgICAgcml0ZGVlbC5nZXREd2FuZ051bW1lcigpLFxuICAgICAgICAgICAgcml0ZGVlbC5nZXRWYW5TZWluTmFtZSgpLFxuICAgICAgICAgICAgcml0ZGVlbC5nZXROYWFyU2Vpbk5hbWUoKSxcbiAgICAgICAgICAgIHJpdGRlZWwuZ2V0VHJlaW5OdW1tZXIoKVxuICAgICAgICApKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1lZXJkZXJlUml0RGVsZW5aaWNodGJhYXIoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2V0WmljaHRiYWFyaGVpZEFsbGVSaXRkZWxlbihmYWxzZSkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJpdGRlbGVuQmVzY2hpa2JhYXJNYWFyWm9uZGVyU2VsZWN0aWUoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFJpdGRlZWwoMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJpdGRlZWxWaWV3TW9kZWxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RSaXRkZWVsKHRoaXMuc2VsZWN0ZWRSaXRkZWVsSW5kZXgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByaXRkZWxlbkJlc2NoaWtiYWFyTWFhclpvbmRlclNlbGVjdGllKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yaXRkZWVsVmlld01vZGVscy5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRSaXRkZWVsSW5kZXggPCAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWVlcmRlcmVSaXREZWxlblppY2h0YmFhcigpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCByaXRkZWVsVmlld01vZGVsIG9mIHRoaXMucml0ZGVlbFZpZXdNb2RlbHMpIHtcbiAgICAgICAgICAgIGlmIChyaXRkZWVsVmlld01vZGVsLnJpdGRlZWwuaXNOaWV0QmVzY2hpa2JhYXIoKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJpdGRlZWxWaWV3TW9kZWwucml0ZGVlbC5pc1ppY2h0YmFhcigpKSB7XG4gICAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgICAgICBpZiAoY291bnQgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5jbGFzcyBSaXRkZWVsVmlld01vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgcml0ZGVlbDogUml0ZGVlbCxcbiAgICAgICAgcmVhZG9ubHkgdmFuUHJsU3Bvb3I6IHN0cmluZyxcbiAgICAgICAgcmVhZG9ubHkgbmFhclBybFNwb29yOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IGR3YW5nTnVtbWVyOiBudW1iZXIsXG4gICAgICAgIHJlYWRvbmx5IHZhblNlaW5OYW1lOiBzdHJpbmcsXG4gICAgICAgIHJlYWRvbmx5IG5hYXJTZWluTmFtZTogc3RyaW5nLFxuICAgICAgICByZWFkb25seSB0cmVpbk51bW1lcjogc3RyaW5nKSB7XG4gICAgfVxufVxuIiwiPGRpdiBpZD1cInJpdGRlbGVuLWxpanN0XCI+XG4gICAgPGRpdiBjbGFzcz1cInNpZGViYXItaGVhZGVyXCI+XG4gICAgICAgIDxoMz5SaXRkZXRhaWxzIHZpZXc8L2gzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwYW5lcy1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvcC1wYW5lIHRhYmxlRml4SGVhZFwiIGlkPVwidG9wLXBhbmVcIj5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY29sc3Bhbj1cIjJcIiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPlNwb29yPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY29sc3Bhbj1cIjJcIiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPlNlaW48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5WYW48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5OYWFyPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+RFc8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5WYW48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5OYWFyPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+VHJlaW5udW1tZXI8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cblxuICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcml0ZGVlbFZpZXdNb2RlbCBvZiByaXRkZWVsVmlld01vZGVsczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgc2VsZWN0ZWRSaXRkZWVsQ2xhc3Mocml0ZGVlbFZpZXdNb2RlbC5yaXRkZWVsKSB9fVwiIGlkPVwicml0ZGV0YWlscy1ye3tpfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tZ2V3aWp6aWdkXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoaSlcIj48L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgaWQ9XCJyaXRkZXRhaWxzLXJ7e2l9fS12YW5TcG9vclwiIChjbGljayk9XCJzZWxlY3RSaXRkZWVsKGkpXCI+e3tyaXRkZWVsVmlld01vZGVsLnZhblBybFNwb29yfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgaWQ9XCJyaXRkZXRhaWxzLXJ7e2l9fS1uYWFyU3Bvb3JcIiAoY2xpY2spPVwic2VsZWN0Uml0ZGVlbChpKVwiPnt7cml0ZGVlbFZpZXdNb2RlbC5uYWFyUHJsU3Bvb3J9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LWR3YW5nTnVtbWVyXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoaSlcIj57e3JpdGRlZWxWaWV3TW9kZWwuZHdhbmdOdW1tZXJ9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LXZhblNlaW5OYW1lXCIgKGNsaWNrKT1cInNlbGVjdFJpdGRlZWwoaSlcIj57e3JpdGRlZWxWaWV3TW9kZWwudmFuU2Vpbk5hbWV9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBpZD1cInJpdGRldGFpbHMtcnt7aX19LW5hYXJTZWluTmFtZVwiIChjbGljayk9XCJzZWxlY3RSaXRkZWVsKGkpXCI+e3tyaXRkZWVsVmlld01vZGVsLm5hYXJTZWluTmFtZX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGlkPVwicml0ZGV0YWlscy1ye3tpfX0tdHJlaW5OdW1tZXJcIiAoY2xpY2spPVwic2VsZWN0Uml0ZGVlbChpKVwiPnt7cml0ZGVlbFZpZXdNb2RlbC50cmVpbk51bW1lcn19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwidGV4dC1hbGlnbjpyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class RpeComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.baseurl = '';
|
|
6
|
+
this.path = '';
|
|
7
|
+
}
|
|
4
8
|
convertToScript() {
|
|
5
|
-
const element = this.script
|
|
9
|
+
const element = this.script?.nativeElement;
|
|
6
10
|
const script = document.createElement('script');
|
|
7
11
|
script.type = 'text/javascript';
|
|
8
12
|
if (this.baseurl && this.path) {
|
|
@@ -16,10 +20,10 @@ export class RpeComponent {
|
|
|
16
20
|
ngAfterViewInit() {
|
|
17
21
|
this.convertToScript();
|
|
18
22
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RpeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RpeComponent, selector: "rpe-component", inputs: { baseurl: "baseurl", path: "path" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["rpescript"], descendants: true }], ngImport: i0, template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }); }
|
|
21
25
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RpeComponent, decorators: [{
|
|
23
27
|
type: Component,
|
|
24
28
|
args: [{ selector: 'rpe-component', template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
25
29
|
}], propDecorators: { baseurl: [{
|
|
@@ -30,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
30
34
|
type: ViewChild,
|
|
31
35
|
args: ['rpescript']
|
|
32
36
|
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9jb21wb25lbnRzL3JwZS9ycGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL2NvbXBvbmVudHMvcnBlL3JwZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU12RixNQUFNLE9BQU8sWUFBWTtJQUp6QjtRQUthLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixTQUFJLEdBQUcsRUFBRSxDQUFDO0tBb0J0QjtJQWhCRyxlQUFlO1FBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEMsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMseUNBQXlDO1FBQzdGLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQXJCUSxZQUFZO21HQUFaLFlBQVksd01DTnpCLGtGQUdBOzs0RkRHYSxZQUFZO2tCQUp4QixTQUFTOytCQUNJLGVBQWU7OEJBSWhCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRWtCLE1BQU07c0JBQTdCLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3JwZS1jb21wb25lbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ycGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJwZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIGJhc2V1cmwgPSAnJztcbiAgICBASW5wdXQoKSBwYXRoID0gJyc7XG5cbiAgICBAVmlld0NoaWxkKCdycGVzY3JpcHQnKSBzY3JpcHQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgICBjb252ZXJ0VG9TY3JpcHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnNjcmlwdD8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICAgIGlmICh0aGlzLmJhc2V1cmwgJiYgdGhpcy5wYXRoKSB7XG4gICAgICAgICAgICBzY3JpcHQuc3JjID0gdGhpcy5iYXNldXJsICsgdGhpcy5wYXRoO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb2RlIGdlbGFkZW4gdmFuOiAnICsgc2NyaXB0LnNyYyk7IC8vdXNlZnVsIGZvciBkZWJ1Z2dpbmcgaW4gR1dUIGVudmlyb25tZW50XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICBwYXJlbnQucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQoc2NyaXB0LCBwYXJlbnQpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb252ZXJ0VG9TY3JpcHQoKTtcbiAgICB9XG59XG4iLCI8ZGl2ICNycGVzY3JpcHQgc3R5bGUuZGlzcGxheT1cIm5vbmVcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|