@loxia/mst-viewer 8.1.3-202511181036 → 8.1.3-202511181116

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.
@@ -15,7 +15,7 @@ export class BewegingUtils {
15
15
  const retval = [];
16
16
  retval.length = ritDelen.length;
17
17
  const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
18
- let vorigeBeweging = null;
18
+ let vorigeBeweging = undefined;
19
19
  for (let i = 0; i < ritDelen.length; i++) {
20
20
  const ritdeel = ritDelen[i];
21
21
  if (ritdeel.beweging) {
@@ -45,7 +45,7 @@ export class BewegingUtils {
45
45
  }
46
46
  static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
47
47
  const ritDelenArray = ritDelen
48
- .filter(r => r.beweging)
48
+ .filter(r => r.beweging?.id)
49
49
  .map(r => r.beweging.id)
50
50
  .sort((a, b) => a - b);
51
51
  const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
@@ -61,9 +61,9 @@ export class BewegingUtils {
61
61
  return stringToCheck.indexOf(match) !== -1;
62
62
  }
63
63
  static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
64
- const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;
64
+ const dwangGewijzigd = ritdeel.beweging?.dwangNummer !== nieuwDwangNummer;
65
65
  let gewijzigd = false;
66
- if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {
66
+ if (ritdeel.beweging?.wijzigStatus === this.NORMAAL) {
67
67
  const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
68
68
  const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
69
69
  gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
@@ -87,7 +87,7 @@ export class BewegingUtils {
87
87
  let naarSeinPplg;
88
88
  let naarSpoor = newRitdeel.getNaarPrlSpoor();
89
89
  if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
90
- if (newRitdeel.heeftVrijebaanInfo()) {
90
+ if (newRitdeel.heeftVrijebaanInfo() && newRitdeel.getVrijebaanRijweg()) {
91
91
  const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
92
92
  naarSeinNaam = vbEindSein.getName();
93
93
  naarSeinPplg = vbEindSein.getPPLG();
@@ -136,4 +136,4 @@ export class BewegingUtils {
136
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils, decorators: [{
137
137
  type: Injectable
138
138
  }], ctorParameters: () => [{ type: i1.EditorService }] });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV3ZWdpbmctdXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zZXJ2aWNlcy9iZXdlZ2luZy11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7YUFDTixjQUFTLEdBQUcsV0FBVyxBQUFkLENBQWU7YUFDeEIsZUFBVSxHQUFHLFlBQVksQUFBZixDQUFnQjthQUMxQixZQUFPLEdBQUcsU0FBUyxBQUFaLENBQWE7YUFDWixzQkFBaUIsR0FBRyxTQUFTLEFBQVosQ0FBYTthQUM5QixpQ0FBNEIsR0FBRyxJQUFJLEFBQVAsQ0FBUTtJQUU1RCxZQUE2QixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUN6RCxDQUFDO0lBRU0sNEJBQTRCLENBQUMsUUFBbUIsRUFBRSxtQkFBK0I7UUFDcEYsTUFBTSxNQUFNLEdBQWUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVoQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWxGLElBQUksY0FBYyxHQUFhLElBQUksQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQzdCLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RixJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztvQkFDN0UsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO29CQUNqRCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDO29CQUN6QyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUM1QyxhQUFhLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdEQsQ0FBQztxQkFBTSxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxhQUFhLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztvQkFDM0csYUFBYSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO3FCQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQzdELGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdEQsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsUUFBbUIsRUFBRSxtQkFBK0I7UUFDdkYsTUFBTSxhQUFhLEdBQUcsUUFBUTthQUN6QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUzQixNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQWtCO1FBQ2pELElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDOUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLGFBQXFCO1FBQ3hELE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFnQixFQUFFLGdCQUFnQixFQUFFLHNCQUFxRDtRQUNoSCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQztRQUN6RSxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakQsTUFBTSx1QkFBdUIsR0FBRyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25FLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsT0FBTyxjQUFjLElBQUksU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxtQkFBK0I7UUFDOUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxhQUFhLEVBQWtCLENBQUM7UUFDeEQsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUVPLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFlO1FBQ2xELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLFlBQVksQ0FBQyxVQUFtQjtRQUNuQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFckQsSUFBSSxZQUFZLENBQUM7UUFDakIsSUFBSSxZQUFZLENBQUM7UUFDakIsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLElBQUksUUFBUSxDQUFDLGdCQUFnQixFQUFFLEtBQUssYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbEUsSUFBSSxVQUFVLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakUsWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEMsU0FBUyxJQUFJLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQztZQUM1RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQzFFLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztnQkFDcEgsTUFBTSx5QkFBeUIsR0FBRyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEUsWUFBWSxHQUFHLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuRCxZQUFZLEdBQUcseUJBQXlCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkQsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxZQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLGFBQWEsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVPLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBbUIsRUFBRSxZQUFvQixFQUFFLFlBQW9CLEVBQUUsU0FBaUI7UUFDekcsT0FBTztZQUNILEVBQUUsRUFBRSxDQUFDO1lBQ0wsS0FBSyxFQUFFLENBQUM7WUFDUixtQkFBbUIsRUFBRSxDQUFDLENBQUM7WUFDdkIsV0FBVyxFQUFFLFVBQVU7WUFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDM0QsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDM0QsWUFBWSxFQUFFLFVBQVU7WUFDeEIsWUFBWTtZQUNaLFlBQVk7WUFDWixXQUFXLEVBQUUsYUFBYSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM5RSxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUM3QixRQUFRLEVBQUUsVUFBVSxDQUFDLGNBQWMsRUFBRTtZQUNyQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUM5QixTQUFTO1lBQ1QsU0FBUyxFQUFFLEVBQUU7WUFDYixZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDaEMsQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsc0JBQXNCLENBQUMsV0FBbUI7UUFDckQsT0FBTyxDQUFDLFdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDOzhHQXhJUSxhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSaXRkZWVsIH0gZnJvbSAnLi4vbW9kZWwvcml0ZGVlbCc7XG5pbXBvcnQgeyBBY3RpZSwgQmV3ZWdpbmcgfSBmcm9tICcuLi9vcHRpbW8nO1xuaW1wb3J0IHsgQXJyYXlNdWx0aW1hcCB9IGZyb20gJy4uL3V0aWwvbXVsdGktbWFwJztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuL2VkaXRvci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJld2VnaW5nVXRpbHMge1xuICAgIHN0YXRpYyByZWFkb25seSBHRVdJSlpJR0QgPSAnR2V3aWp6aWdkJztcbiAgICBzdGF0aWMgcmVhZG9ubHkgVE9FR0VWT0VHRCA9ICdUb2VnZXZvZWdkJztcbiAgICBzdGF0aWMgcmVhZG9ubHkgTk9STUFBTCA9ICdOb3JtYWFsJztcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTRUlOX1RZUEVfRklDVElFRiA9ICdGSUNUSUVGJztcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTUE9PUl9OQUFSX1ZSSUpFQkFBTl9QT1NURklYID0gJ19lJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBleHRyYWN0QmV3ZWdpbmdlblVpdFJpdGRlbGVuKHJpdERlbGVuOiBSaXRkZWVsW10sIG9yaWdpbmVsZUJld2VnaW5nZW46IEJld2VnaW5nW10pOiBCZXdlZ2luZ1tdIHtcbiAgICAgICAgY29uc3QgcmV0dmFsOiBCZXdlZ2luZ1tdID0gW107XG4gICAgICAgIHJldHZhbC5sZW5ndGggPSByaXREZWxlbi5sZW5ndGg7XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luZWxlQmV3ZWdpbmdNYXAgPSB0aGlzLmJlcGFhbE9yaWdpbmVsZUJld2VnaW5nTWFwKG9yaWdpbmVsZUJld2VnaW5nZW4pO1xuXG4gICAgICAgIGxldCB2b3JpZ2VCZXdlZ2luZzogQmV3ZWdpbmcgPSBudWxsO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJpdERlbGVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByaXRkZWVsID0gcml0RGVsZW5baV07XG4gICAgICAgICAgICBpZiAocml0ZGVlbC5iZXdlZ2luZykge1xuICAgICAgICAgICAgICAgIHJldHZhbFtpXSA9IHJpdGRlZWwuYmV3ZWdpbmc7XG4gICAgICAgICAgICAgICAgY29uc3QgbmlldXdEd2FuZ051bW1lciA9IEJld2VnaW5nVXRpbHMudG9Sb3V0ZUZpbGVEd2FuZ051bW1lcihyaXRkZWVsLmdldER3YW5nTnVtbWVyKCkpO1xuICAgICAgICAgICAgICAgIGlmIChCZXdlZ2luZ1V0aWxzLmlzR2V3aWp6aWdkKHJpdGRlZWwsIG5pZXV3RHdhbmdOdW1tZXIsIG9yaWdpbmVsZUJld2VnaW5nTWFwKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR2YWxbaV0ud2lqemlnU3RhdHVzID0gQmV3ZWdpbmdVdGlscy5HRVdJSlpJR0Q7XG4gICAgICAgICAgICAgICAgICAgIHJldHZhbFtpXS5kd2FuZ051bW1lciA9IG5pZXV3RHdhbmdOdW1tZXI7XG4gICAgICAgICAgICAgICAgICAgIHJpdGRlZWwuYmV3ZWdpbmcucml0QWN0aWVzID0gcml0ZGVlbC5hY3RpZXM7XG4gICAgICAgICAgICAgICAgICAgIEJld2VnaW5nVXRpbHMucmVtb3ZlS2VyZW5FeHRlbnNpZShyZXR2YWxbaV0pO1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUodm9yaWdlQmV3ZWdpbmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gcml0RGVsZW4ubGVuZ3RoIC0gMSAmJiBCZXdlZ2luZ1V0aWxzLmJld2VnaW5nZW5aaWpuR2V3aWp6aWdkKHJpdERlbGVuLCBvcmlnaW5lbGVCZXdlZ2luZ2VuKSkge1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUocmV0dmFsW2ldKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJldHZhbFtpXS53aWp6aWdTdGF0dXMgPT09IEJld2VnaW5nVXRpbHMuVE9FR0VWT0VHRCkge1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUodm9yaWdlQmV3ZWdpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dmFsW2ldID0gdGhpcy5tYWFrQmV3ZWdpbmcocml0ZGVlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR2YWxbaV0udm9sZ251bW1lckJpbm5lblJpdCA9IGkgKyAxO1xuICAgICAgICAgICAgdm9yaWdlQmV3ZWdpbmcgPSByaXRkZWVsLmJld2VnaW5nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXR2YWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYmV3ZWdpbmdlblppam5HZXdpanppZ2Qocml0RGVsZW46IFJpdGRlZWxbXSwgb3JpZ2luZWxlQmV3ZWdpbmdlbjogQmV3ZWdpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByaXREZWxlbkFycmF5ID0gcml0RGVsZW5cbiAgICAgICAgICAgIC5maWx0ZXIociA9PiByLmJld2VnaW5nKVxuICAgICAgICAgICAgLm1hcChyID0+IHIuYmV3ZWdpbmcuaWQpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuXG4gICAgICAgIGNvbnN0IGJld2VnaW5nZW5JZEFycmF5ID0gb3JpZ2luZWxlQmV3ZWdpbmdlbi5tYXAoYiA9PiBiLmlkKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyaXREZWxlbkFycmF5KSAhPT0gSlNPTi5zdHJpbmdpZnkoYmV3ZWdpbmdlbklkQXJyYXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJlbW92ZUtlcmVuRXh0ZW5zaWUoYmV3ZWdpbmc6IEJld2VnaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChiZXdlZ2luZyAmJiB0aGlzLmNvbnRhaW5zRXh0ZW5zaWUoJ19rJywgYmV3ZWdpbmcubmFhclNwb29yKSkge1xuICAgICAgICAgICAgYmV3ZWdpbmcubmFhclNwb29yID0gYmV3ZWdpbmcubmFhclNwb29yLnNwbGl0KCdfaycpWzBdO1xuICAgICAgICAgICAgYmV3ZWdpbmcud2lqemlnU3RhdHVzID0gdGhpcy5HRVdJSlpJR0Q7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgY29udGFpbnNFeHRlbnNpZShtYXRjaDogc3RyaW5nLCBzdHJpbmdUb0NoZWNrOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZ1RvQ2hlY2suaW5kZXhPZihtYXRjaCkgIT09IC0xO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGlzR2V3aWp6aWdkKHJpdGRlZWw6IFJpdGRlZWwsIG5pZXV3RHdhbmdOdW1tZXIsIG9yaWdpbmVsZUJld2VnaW5nZW5NYXA6IEFycmF5TXVsdGltYXA8bnVtYmVyLCBudW1iZXI+KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGR3YW5nR2V3aWp6aWdkID0gcml0ZGVlbC5iZXdlZ2luZy5kd2FuZ051bW1lciAhPT0gbmlldXdEd2FuZ051bW1lcjtcbiAgICAgICAgbGV0IGdld2lqemlnZCA9IGZhbHNlO1xuICAgICAgICBpZiAocml0ZGVlbC5iZXdlZ2luZy53aWp6aWdTdGF0dXMgPT09IHRoaXMuTk9STUFBTCkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luZWxlQmV3ZWdpbmdBY3RpZXMgPSBvcmlnaW5lbGVCZXdlZ2luZ2VuTWFwLmdldChyaXRkZWVsLmJld2VnaW5nLmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGh1aWRpZ2VBY3RpZXMgPSB0aGlzLmNyZWF0ZVNvcnRlZEFjdGllSWRMaXN0KHJpdGRlZWwuYWN0aWVzKTtcbiAgICAgICAgICAgIGdld2lqemlnZCA9IEpTT04uc3RyaW5naWZ5KGh1aWRpZ2VBY3RpZXMpICE9PSBKU09OLnN0cmluZ2lmeShvcmlnaW5lbGVCZXdlZ2luZ0FjdGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGR3YW5nR2V3aWp6aWdkIHx8IGdld2lqemlnZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlcGFhbE9yaWdpbmVsZUJld2VnaW5nTWFwKG9yaWdpbmVsZUJld2VnaW5nZW46IEJld2VnaW5nW10pOiBBcnJheU11bHRpbWFwPG51bWJlciwgbnVtYmVyPiB7XG4gICAgICAgIGNvbnN0IGJld2VnaW5nTWFwID0gbmV3IEFycmF5TXVsdGltYXA8bnVtYmVyLCBudW1iZXI+KCk7XG4gICAgICAgIG9yaWdpbmVsZUJld2VnaW5nZW4uZm9yRWFjaChiID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGllSWRzID0gQmV3ZWdpbmdVdGlscy5jcmVhdGVTb3J0ZWRBY3RpZUlkTGlzdChiLnJpdEFjdGllcyk7XG4gICAgICAgICAgICBiZXdlZ2luZ01hcC5wdXRBbGwoYi5pZCwgYWN0aWVJZHMpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGJld2VnaW5nTWFwO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNyZWF0ZVNvcnRlZEFjdGllSWRMaXN0KGFjdGllczogQWN0aWVbXSk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIGFjdGllcy5tYXAoYWN0aWUgPT4gYWN0aWUuaWQpLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFha0Jld2VnaW5nKG5ld1JpdGRlZWw6IFJpdGRlZWwpOiBCZXdlZ2luZyB7XG4gICAgICAgIGNvbnN0IGVpbmRTZWluID0gbmV3Uml0ZGVlbC5nZXRSb3V0ZSgpLmdldEVpbmRTZWluKCk7XG5cbiAgICAgICAgbGV0IG5hYXJTZWluTmFhbTtcbiAgICAgICAgbGV0IG5hYXJTZWluUHBsZztcbiAgICAgICAgbGV0IG5hYXJTcG9vciA9IG5ld1JpdGRlZWwuZ2V0TmFhclBybFNwb29yKCk7XG4gICAgICAgIGlmIChlaW5kU2Vpbi5nZXRUeXBlQWxzU3RyaW5nKCkgPT09IEJld2VnaW5nVXRpbHMuU0VJTl9UWVBFX0ZJQ1RJRUYpIHtcbiAgICAgICAgICAgIGlmIChuZXdSaXRkZWVsLmhlZWZ0VnJpamViYWFuSW5mbygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmJFaW5kU2VpbiA9IG5ld1JpdGRlZWwuZ2V0VnJpamViYWFuUmlqd2VnKCkuZ2V0RWluZFNlaW4oKTtcbiAgICAgICAgICAgICAgICBuYWFyU2Vpbk5hYW0gPSB2YkVpbmRTZWluLmdldE5hbWUoKTtcbiAgICAgICAgICAgICAgICBuYWFyU2VpblBwbGcgPSB2YkVpbmRTZWluLmdldFBQTEcoKTtcbiAgICAgICAgICAgICAgICBuYWFyU3Bvb3IgKz0gQmV3ZWdpbmdVdGlscy5TUE9PUl9OQUFSX1ZSSUpFQkFBTl9QT1NURklYO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByaWp3ZWdwbGFuID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmdldFJpandlZ3BsYW4obmV3Uml0ZGVlbC5nZXRQcGxnKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpandlZ0FuZGVyZVJpY2h0aW5nID0gcmlqd2VncGxhbi5nZXRSaWp3ZWcobmV3Uml0ZGVlbC5nZXRWaXN1ZWVsTmFhclBybFNwb29yKCksIG5ld1JpdGRlZWwuZ2V0VmFuUHJsU3Bvb3IoKSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRTZWluSW5BbmRlcmVSaWNodGluZyA9IHJpandlZ0FuZGVyZVJpY2h0aW5nLmdldEJlZ2luU2VpbigpO1xuICAgICAgICAgICAgICAgIG5hYXJTZWluTmFhbSA9IHN0YXJ0U2VpbkluQW5kZXJlUmljaHRpbmcuZ2V0TmFtZSgpO1xuICAgICAgICAgICAgICAgIG5hYXJTZWluUHBsZyA9IHN0YXJ0U2VpbkluQW5kZXJlUmljaHRpbmcuZ2V0UFBMRygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmFhclNlaW5OYWFtID0gZWluZFNlaW4uZ2V0TmFtZSgpO1xuICAgICAgICAgICAgbmFhclNlaW5QcGxnID0gZWluZFNlaW4uZ2V0UFBMRygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBCZXdlZ2luZ1V0aWxzLnZ1bEJld2VnaW5nKG5ld1JpdGRlZWwsIG5hYXJTZWluTmFhbSwgbmFhclNlaW5QcGxnLCBuYWFyU3Bvb3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHZ1bEJld2VnaW5nKG5ld1JpdGRlZWw6IFJpdGRlZWwsIG5hYXJTZWluTmFhbTogc3RyaW5nLCBuYWFyU2VpblBwbGc6IHN0cmluZywgbmFhclNwb29yOiBzdHJpbmcpOiBCZXdlZ2luZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogMCxcbiAgICAgICAgICAgIHJpdElkOiAwLFxuICAgICAgICAgICAgdm9sZ251bW1lckJpbm5lblJpdDogLTEsXG4gICAgICAgICAgICB2YW5TZWluVHlwZTogJ0JFRF9TRUlOJyxcbiAgICAgICAgICAgIHZhblNlaW5OYWFtOiBuZXdSaXRkZWVsLmdldFJvdXRlKCkuZ2V0QmVnaW5TZWluKCkuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgdmFuU2VpblBwbGc6IG5ld1JpdGRlZWwuZ2V0Um91dGUoKS5nZXRCZWdpblNlaW4oKS5nZXRQUExHKCksXG4gICAgICAgICAgICBuYWFyU2VpblR5cGU6ICdCRURfU0VJTicsXG4gICAgICAgICAgICBuYWFyU2Vpbk5hYW0sXG4gICAgICAgICAgICBuYWFyU2VpblBwbGcsXG4gICAgICAgICAgICBkd2FuZ051bW1lcjogQmV3ZWdpbmdVdGlscy50b1JvdXRlRmlsZUR3YW5nTnVtbWVyKG5ld1JpdGRlZWwuZ2V0RHdhbmdOdW1tZXIoKSksXG4gICAgICAgICAgICB2YW5QcGxnOiBuZXdSaXRkZWVsLmdldFBwbGcoKSxcbiAgICAgICAgICAgIHZhblNwb29yOiBuZXdSaXRkZWVsLmdldFZhblBybFNwb29yKCksXG4gICAgICAgICAgICBuYWFyUHBsZzogbmV3Uml0ZGVlbC5nZXRQcGxnKCksXG4gICAgICAgICAgICBuYWFyU3Bvb3IsXG4gICAgICAgICAgICByaXRBY3RpZXM6IFtdLFxuICAgICAgICAgICAgd2lqemlnU3RhdHVzOiB0aGlzLlRPRUdFVk9FR0RcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB0b1JvdXRlRmlsZUR3YW5nTnVtbWVyKGR3YW5nTnVtbWVyOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKGR3YW5nTnVtbWVyID09PSAwKSA/IC0xIDogZHdhbmdOdW1tZXI7XG4gICAgfVxufVxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV3ZWdpbmctdXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zZXJ2aWNlcy9iZXdlZ2luZy11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7YUFDTixjQUFTLEdBQUcsV0FBVyxBQUFkLENBQWU7YUFDeEIsZUFBVSxHQUFHLFlBQVksQUFBZixDQUFnQjthQUMxQixZQUFPLEdBQUcsU0FBUyxBQUFaLENBQWE7YUFDWixzQkFBaUIsR0FBRyxTQUFTLEFBQVosQ0FBYTthQUM5QixpQ0FBNEIsR0FBRyxJQUFJLEFBQVAsQ0FBUTtJQUU1RCxZQUE2QixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUN6RCxDQUFDO0lBRU0sNEJBQTRCLENBQUMsUUFBbUIsRUFBRSxtQkFBK0I7UUFDcEYsTUFBTSxNQUFNLEdBQWUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVoQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWxGLElBQUksY0FBYyxHQUF5QixTQUFTLENBQUM7UUFDckQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN2QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sQ0FBQyxDQUFDLENBQUMs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RSxJQUFJLENBQUMsVUFBVTtTQUNoQyxDQUFDO0lBQ04sQ0FBQztJQUVPLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxXQUFtQjtRQUNyRCxPQUFPLENBQUMsV0FBVyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ2xELENBQUM7OEdBeElRLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdGRlZWwgfSBmcm9tICcuLi9tb2RlbC9yaXRkZWVsJztcbmltcG9ydCB7IEFjdGllLCBCZXdlZ2luZyB9IGZyb20gJy4uL29wdGltbyc7XG5pbXBvcnQgeyBBcnJheU11bHRpbWFwIH0gZnJvbSAnLi4vdXRpbC9tdWx0aS1tYXAnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4vZWRpdG9yLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmV3ZWdpbmdVdGlscyB7XG4gICAgc3RhdGljIHJlYWRvbmx5IEdFV0lKWklHRCA9ICdHZXdpanppZ2QnO1xuICAgIHN0YXRpYyByZWFkb25seSBUT0VHRVZPRUdEID0gJ1RvZWdldm9lZ2QnO1xuICAgIHN0YXRpYyByZWFkb25seSBOT1JNQUFMID0gJ05vcm1hYWwnO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNFSU5fVFlQRV9GSUNUSUVGID0gJ0ZJQ1RJRUYnO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNQT09SX05BQVJfVlJJSkVCQUFOX1BPU1RGSVggPSAnX2UnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGV4dHJhY3RCZXdlZ2luZ2VuVWl0Uml0ZGVsZW4ocml0RGVsZW46IFJpdGRlZWxbXSwgb3JpZ2luZWxlQmV3ZWdpbmdlbjogQmV3ZWdpbmdbXSk6IEJld2VnaW5nW10ge1xuICAgICAgICBjb25zdCByZXR2YWw6IEJld2VnaW5nW10gPSBbXTtcbiAgICAgICAgcmV0dmFsLmxlbmd0aCA9IHJpdERlbGVuLmxlbmd0aDtcblxuICAgICAgICBjb25zdCBvcmlnaW5lbGVCZXdlZ2luZ01hcCA9IHRoaXMuYmVwYWFsT3JpZ2luZWxlQmV3ZWdpbmdNYXAob3JpZ2luZWxlQmV3ZWdpbmdlbik7XG5cbiAgICAgICAgbGV0IHZvcmlnZUJld2VnaW5nOiBCZXdlZ2luZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByaXREZWxlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgcml0ZGVlbCA9IHJpdERlbGVuW2ldO1xuICAgICAgICAgICAgaWYgKHJpdGRlZWwuYmV3ZWdpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR2YWxbaV0gPSByaXRkZWVsLmJld2VnaW5nO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5pZXV3RHdhbmdOdW1tZXIgPSBCZXdlZ2luZ1V0aWxzLnRvUm91dGVGaWxlRHdhbmdOdW1tZXIocml0ZGVlbC5nZXREd2FuZ051bW1lcigpKTtcbiAgICAgICAgICAgICAgICBpZiAoQmV3ZWdpbmdVdGlscy5pc0dld2lqemlnZChyaXRkZWVsLCBuaWV1d0R3YW5nTnVtbWVyLCBvcmlnaW5lbGVCZXdlZ2luZ01hcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dmFsW2ldLndpanppZ1N0YXR1cyA9IEJld2VnaW5nVXRpbHMuR0VXSUpaSUdEO1xuICAgICAgICAgICAgICAgICAgICByZXR2YWxbaV0uZHdhbmdOdW1tZXIgPSBuaWV1d0R3YW5nTnVtbWVyO1xuICAgICAgICAgICAgICAgICAgICByaXRkZWVsLmJld2VnaW5nLnJpdEFjdGllcyA9IHJpdGRlZWwuYWN0aWVzO1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUocmV0dmFsW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgQmV3ZWdpbmdVdGlscy5yZW1vdmVLZXJlbkV4dGVuc2llKHZvcmlnZUJld2VnaW5nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPT09IHJpdERlbGVuLmxlbmd0aCAtIDEgJiYgQmV3ZWdpbmdVdGlscy5iZXdlZ2luZ2VuWmlqbkdld2lqemlnZChyaXREZWxlbiwgb3JpZ2luZWxlQmV3ZWdpbmdlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgQmV3ZWdpbmdVdGlscy5yZW1vdmVLZXJlbkV4dGVuc2llKHJldHZhbFtpXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXR2YWxbaV0ud2lqemlnU3RhdHVzID09PSBCZXdlZ2luZ1V0aWxzLlRPRUdFVk9FR0QpIHtcbiAgICAgICAgICAgICAgICAgICAgQmV3ZWdpbmdVdGlscy5yZW1vdmVLZXJlbkV4dGVuc2llKHZvcmlnZUJld2VnaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHZhbFtpXSA9IHRoaXMubWFha0Jld2VnaW5nKHJpdGRlZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dmFsW2ldLnZvbGdudW1tZXJCaW5uZW5SaXQgPSBpICsgMTtcbiAgICAgICAgICAgIHZvcmlnZUJld2VnaW5nID0gcml0ZGVlbC5iZXdlZ2luZztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0dmFsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGJld2VnaW5nZW5aaWpuR2V3aWp6aWdkKHJpdERlbGVuOiBSaXRkZWVsW10sIG9yaWdpbmVsZUJld2VnaW5nZW46IEJld2VnaW5nW10pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgcml0RGVsZW5BcnJheSA9IHJpdERlbGVuXG4gICAgICAgICAgICAuZmlsdGVyKHIgPT4gci5iZXdlZ2luZz8uaWQpXG4gICAgICAgICAgICAubWFwKHIgPT4gci5iZXdlZ2luZyEuaWQpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuXG4gICAgICAgIGNvbnN0IGJld2VnaW5nZW5JZEFycmF5ID0gb3JpZ2luZWxlQmV3ZWdpbmdlbi5tYXAoYiA9PiBiLmlkKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyaXREZWxlbkFycmF5KSAhPT0gSlNPTi5zdHJpbmdpZnkoYmV3ZWdpbmdlbklkQXJyYXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJlbW92ZUtlcmVuRXh0ZW5zaWUoYmV3ZWdpbmc6IEJld2VnaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmIChiZXdlZ2luZyAmJiB0aGlzLmNvbnRhaW5zRXh0ZW5zaWUoJ19rJywgYmV3ZWdpbmcubmFhclNwb29yKSkge1xuICAgICAgICAgICAgYmV3ZWdpbmcubmFhclNwb29yID0gYmV3ZWdpbmcubmFhclNwb29yLnNwbGl0KCdfaycpWzBdO1xuICAgICAgICAgICAgYmV3ZWdpbmcud2lqemlnU3RhdHVzID0gdGhpcy5HRVdJSlpJR0Q7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgY29udGFpbnNFeHRlbnNpZShtYXRjaDogc3RyaW5nLCBzdHJpbmdUb0NoZWNrOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZ1RvQ2hlY2suaW5kZXhPZihtYXRjaCkgIT09IC0xO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGlzR2V3aWp6aWdkKHJpdGRlZWw6IFJpdGRlZWwsIG5pZXV3RHdhbmdOdW1tZXI6IG51bWJlciwgb3JpZ2luZWxlQmV3ZWdpbmdlbk1hcDogQXJyYXlNdWx0aW1hcDxudW1iZXIsIG51bWJlcj4pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZHdhbmdHZXdpanppZ2QgPSByaXRkZWVsLmJld2VnaW5nPy5kd2FuZ051bW1lciAhPT0gbmlldXdEd2FuZ051bW1lcjtcbiAgICAgICAgbGV0IGdld2lqemlnZCA9IGZhbHNlO1xuICAgICAgICBpZiAocml0ZGVlbC5iZXdlZ2luZz8ud2lqemlnU3RhdHVzID09PSB0aGlzLk5PUk1BQUwpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmVsZUJld2VnaW5nQWN0aWVzID0gb3JpZ2luZWxlQmV3ZWdpbmdlbk1hcC5nZXQocml0ZGVlbC5iZXdlZ2luZy5pZCk7XG4gICAgICAgICAgICBjb25zdCBodWlkaWdlQWN0aWVzID0gdGhpcy5jcmVhdGVTb3J0ZWRBY3RpZUlkTGlzdChyaXRkZWVsLmFjdGllcyk7XG4gICAgICAgICAgICBnZXdpanppZ2QgPSBKU09OLnN0cmluZ2lmeShodWlkaWdlQWN0aWVzKSAhPT0gSlNPTi5zdHJpbmdpZnkob3JpZ2luZWxlQmV3ZWdpbmdBY3RpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkd2FuZ0dld2lqemlnZCB8fCBnZXdpanppZ2Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiZXBhYWxPcmlnaW5lbGVCZXdlZ2luZ01hcChvcmlnaW5lbGVCZXdlZ2luZ2VuOiBCZXdlZ2luZ1tdKTogQXJyYXlNdWx0aW1hcDxudW1iZXIsIG51bWJlcj4ge1xuICAgICAgICBjb25zdCBiZXdlZ2luZ01hcCA9IG5ldyBBcnJheU11bHRpbWFwPG51bWJlciwgbnVtYmVyPigpO1xuICAgICAgICBvcmlnaW5lbGVCZXdlZ2luZ2VuLmZvckVhY2goYiA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY3RpZUlkcyA9IEJld2VnaW5nVXRpbHMuY3JlYXRlU29ydGVkQWN0aWVJZExpc3QoYi5yaXRBY3RpZXMpO1xuICAgICAgICAgICAgYmV3ZWdpbmdNYXAucHV0QWxsKGIuaWQsIGFjdGllSWRzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBiZXdlZ2luZ01hcDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjcmVhdGVTb3J0ZWRBY3RpZUlkTGlzdChhY3RpZXM6IEFjdGllW10pOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiBhY3RpZXMubWFwKGFjdGllID0+IGFjdGllLmlkKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgfVxuXG4gICAgcHVibGljIG1hYWtCZXdlZ2luZyhuZXdSaXRkZWVsOiBSaXRkZWVsKTogQmV3ZWdpbmcge1xuICAgICAgICBjb25zdCBlaW5kU2VpbiA9IG5ld1JpdGRlZWwuZ2V0Um91dGUoKS5nZXRFaW5kU2VpbigpO1xuXG4gICAgICAgIGxldCBuYWFyU2Vpbk5hYW07XG4gICAgICAgIGxldCBuYWFyU2VpblBwbGc7XG4gICAgICAgIGxldCBuYWFyU3Bvb3IgPSBuZXdSaXRkZWVsLmdldE5hYXJQcmxTcG9vcigpO1xuICAgICAgICBpZiAoZWluZFNlaW4uZ2V0VHlwZUFsc1N0cmluZygpID09PSBCZXdlZ2luZ1V0aWxzLlNFSU5fVFlQRV9GSUNUSUVGKSB7XG4gICAgICAgICAgICBpZiAobmV3Uml0ZGVlbC5oZWVmdFZyaWplYmFhbkluZm8oKSAmJiBuZXdSaXRkZWVsLmdldFZyaWplYmFhblJpandlZygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmJFaW5kU2VpbiA9IG5ld1JpdGRlZWwuZ2V0VnJpamViYWFuUmlqd2VnKCkhLmdldEVpbmRTZWluKCk7XG4gICAgICAgICAgICAgICAgbmFhclNlaW5OYWFtID0gdmJFaW5kU2Vpbi5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgbmFhclNlaW5QcGxnID0gdmJFaW5kU2Vpbi5nZXRQUExHKCk7XG4gICAgICAgICAgICAgICAgbmFhclNwb29yICs9IEJld2VnaW5nVXRpbHMuU1BPT1JfTkFBUl9WUklKRUJBQU5fUE9TVEZJWDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcmlqd2VncGxhbiA9IHRoaXMuZWRpdG9yU2VydmljZS5nZXRSaWp3ZWdwbGFuKG5ld1JpdGRlZWwuZ2V0UHBsZygpKTtcbiAgICAgICAgICAgICAgICBjb25zdCByaWp3ZWdBbmRlcmVSaWNodGluZyA9IHJpandlZ3BsYW4uZ2V0Umlqd2VnKG5ld1JpdGRlZWwuZ2V0VmlzdWVlbE5hYXJQcmxTcG9vcigpLCBuZXdSaXRkZWVsLmdldFZhblBybFNwb29yKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0U2VpbkluQW5kZXJlUmljaHRpbmcgPSByaWp3ZWdBbmRlcmVSaWNodGluZy5nZXRCZWdpblNlaW4oKTtcbiAgICAgICAgICAgICAgICBuYWFyU2Vpbk5hYW0gPSBzdGFydFNlaW5JbkFuZGVyZVJpY2h0aW5nLmdldE5hbWUoKTtcbiAgICAgICAgICAgICAgICBuYWFyU2VpblBwbGcgPSBzdGFydFNlaW5JbkFuZGVyZVJpY2h0aW5nLmdldFBQTEcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5hYXJTZWluTmFhbSA9IGVpbmRTZWluLmdldE5hbWUoKTtcbiAgICAgICAgICAgIG5hYXJTZWluUHBsZyA9IGVpbmRTZWluLmdldFBQTEcoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQmV3ZWdpbmdVdGlscy52dWxCZXdlZ2luZyhuZXdSaXRkZWVsLCBuYWFyU2Vpbk5hYW0sIG5hYXJTZWluUHBsZywgbmFhclNwb29yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB2dWxCZXdlZ2luZyhuZXdSaXRkZWVsOiBSaXRkZWVsLCBuYWFyU2Vpbk5hYW06IHN0cmluZywgbmFhclNlaW5QcGxnOiBzdHJpbmcsIG5hYXJTcG9vcjogc3RyaW5nKTogQmV3ZWdpbmcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IDAsXG4gICAgICAgICAgICByaXRJZDogMCxcbiAgICAgICAgICAgIHZvbGdudW1tZXJCaW5uZW5SaXQ6IC0xLFxuICAgICAgICAgICAgdmFuU2VpblR5cGU6ICdCRURfU0VJTicsXG4gICAgICAgICAgICB2YW5TZWluTmFhbTogbmV3Uml0ZGVlbC5nZXRSb3V0ZSgpLmdldEJlZ2luU2VpbigpLmdldE5hbWUoKSxcbiAgICAgICAgICAgIHZhblNlaW5QcGxnOiBuZXdSaXRkZWVsLmdldFJvdXRlKCkuZ2V0QmVnaW5TZWluKCkuZ2V0UFBMRygpLFxuICAgICAgICAgICAgbmFhclNlaW5UeXBlOiAnQkVEX1NFSU4nLFxuICAgICAgICAgICAgbmFhclNlaW5OYWFtLFxuICAgICAgICAgICAgbmFhclNlaW5QcGxnLFxuICAgICAgICAgICAgZHdhbmdOdW1tZXI6IEJld2VnaW5nVXRpbHMudG9Sb3V0ZUZpbGVEd2FuZ051bW1lcihuZXdSaXRkZWVsLmdldER3YW5nTnVtbWVyKCkpLFxuICAgICAgICAgICAgdmFuUHBsZzogbmV3Uml0ZGVlbC5nZXRQcGxnKCksXG4gICAgICAgICAgICB2YW5TcG9vcjogbmV3Uml0ZGVlbC5nZXRWYW5QcmxTcG9vcigpLFxuICAgICAgICAgICAgbmFhclBwbGc6IG5ld1JpdGRlZWwuZ2V0UHBsZygpLFxuICAgICAgICAgICAgbmFhclNwb29yLFxuICAgICAgICAgICAgcml0QWN0aWVzOiBbXSxcbiAgICAgICAgICAgIHdpanppZ1N0YXR1czogdGhpcy5UT0VHRVZPRUdEXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdG9Sb3V0ZUZpbGVEd2FuZ051bW1lcihkd2FuZ051bW1lcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChkd2FuZ051bW1lciA9PT0gMCkgPyAtMSA6IGR3YW5nTnVtbWVyO1xuICAgIH1cbn1cbiJdfQ==
@@ -45,7 +45,7 @@ export const alternatievenClickableIdsReducer = createIdsReducer(MstActions.SetA
45
45
  export const eindSeinenClickableIdsReducer = createIdsReducer(MstActions.SetEindSeinenClickableIds);
46
46
  export const connectorClickableIdsReducer = createIdsReducer(MstActions.SetConnectorenClickableIds);
47
47
  export const beginSeinRightClickableIdsReducer = createIdsReducer(MstActions.SetBeginSeinRightClickableIds);
48
- export const nieuweRouteReducer = createReducer(undefined, on(MstActions.SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, undefined)), on(MstActions.SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein)), on(MstActions.ResetNieuweRoute, () => undefined));
48
+ export const nieuweRouteReducer = createReducer(undefined, on(MstActions.SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, undefined)), on(MstActions.SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => nieuweRoute ? new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein) : undefined), on(MstActions.ResetNieuweRoute, () => undefined));
49
49
  export const signaleringsbeeldInfoDtosReducer = createReducer([], on(MstActions.SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(MstActions.UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
50
50
  export const visibleSbInfoDtosReducer = createReducer([], on(MstActions.SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(MstActions.UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
51
51
  export const iaVersieReducer = createReducer({ versie: 'unknown', ingangsDatum: new Date() }, on(MstActions.SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
@@ -83,4 +83,4 @@ export const storeReducers = {
83
83
  baseUrl: baseUrlReducer,
84
84
  focusIds: focusIdsReducer,
85
85
  };
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXN0LWVkaXRvci1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zdGF0ZS9tc3QtZWRpdG9yLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBa0MsYUFBYSxFQUFFLEVBQUUsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUUvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxVQUFVLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBZ0Q5RCxNQUFNLGtCQUFrQixHQUFHLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuRyxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFXLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBRS9HLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFdkgsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsYUFBYSxDQUNqRCxFQUFvQixFQUNwQixFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUs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Q1EsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN2Z0luZm8gfSBmcm9tICdAbG94aWEvaW14LXZpZXdlcic7XG5pbXBvcnQge0FjdGlvbkNyZWF0b3IsIEFjdGlvblJlZHVjZXJNYXAsIGNyZWF0ZVJlZHVjZXIsIG9ufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBBbGdlbWVuZVJpdER0byB9IGZyb20gJy4uLy4uL2dlbmVyYXRlZC9vcGVuYXBpJztcbmltcG9ydCB7IFByb2dyZXNzSW5kaWNhdG9yIH0gZnJvbSAnLi4vYXRvbWljLWNvbXBvbmVudHMvcHJvZ3Jlc3MtaW5kaWNhdG9yL3Byb2dyZXNzLWluZGljYXRvci5lbnRpdHknO1xuaW1wb3J0IHsgTmlldXdlUm91dGUgfSBmcm9tICcuLi9tb2RlbC9uaWV1d2Utcm91dGUnO1xuaW1wb3J0IHsgT25nZXBsYW5kZUFjdGllIH0gZnJvbSAnLi4vbW9kZWwvb25nZXBsYW5kZS1hY3RpZSc7XG5pbXBvcnQgeyBSaXRkZWVsIH0gZnJvbSAnLi4vbW9kZWwvcml0ZGVlbCc7XG5pbXBvcnQgeyBBY3RpZSwgQmV3ZWdpbmcsIEluZnJhTW9kZWwgfSBmcm9tICcuLi9vcHRpbW8nO1xuaW1wb3J0IHsgSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0byB9IGZyb20gJy4uL3Jlc291cmNlcy9zaWduYWxlcmluZ3NiZWVsZGluZm8ucmVzb3VyY2UnO1xuaW1wb3J0IHsgQXJyYXlNdWx0aW1hcCB9IGZyb20gJy4uL3V0aWwvbXVsdGktbWFwJztcbmltcG9ydCAqIGFzIE1zdEFjdGlvbnMgZnJvbSAnLi9hY3Rpb25zL2FjdGlvbnMnO1xuaW1wb3J0IHsgcml0ZGVsZW5SZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL3JpdC1kZWxlbi5yZWR1Y2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBNc3RFZGl0b3JTdGF0ZSB7XG4gICAgcml0RGVsZW46IFJpdGRlZWxbXTsgLy8gb25zIG1vZGVsIHZhbiB0cmVpbnBhZFxuXG4gICAgLy8gcHVpY3Mgdm9vciBTZWxlY3RpZUluZm9zXG4gICAgcml0U2VsZWN0aWVJZHM6IHN0cmluZ1tdO1xuICAgIGFjdGllT3BSaXRTZWxlY3RpZUlkczogc3RyaW5nW107XG4gICAgZ2Vicm9rZW5SaXRTZWxlY3RpZUlkczogc3RyaW5nW107XG4gICAgYWx0ZXJuYXRpZXZlblNlbGVjdGllSWRzOiBzdHJpbmdbXTtcbiAgICBiZWdpblNlaW5TZWxlY3RpZUlkczogc3RyaW5nW107XG4gICAgZWluZFNlaW5TZWxlY3RpZUlkczogc3RyaW5nW107XG4gICAgb25nZXBsYW5kZUFjdGllU2VsZWN0aWVJZHM6IHN0cmluZ1tdO1xuICAgIG9uZ2VwbGFuZGVBY3RpZXM6IEFycmF5TXVsdGltYXA8c3RyaW5nLCBPbmdlcGxhbmRlQWN0aWU+O1xuICAgIGdlcGxhbmRlQWN0aWVzOiBBcnJheU11bHRpbWFwPEFjdGllLCBzdHJpbmc+O1xuXG4gICAgLy8gcHVpY3Mgdm9vciBjbGlja3NcbiAgICBhbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzOiBzdHJpbmdbXTtcbiAgICBlaW5kU2VpbmVuQ2xpY2thYmxlSWRzOiBzdHJpbmdbXTtcbiAgICBjb25uZWN0b3JDbGlja2FibGVJZHM6IHN0cmluZ1tdO1xuXG4gICAgLy8gcHVpY3Mgdm9vciByaWdodGNsaWNrc1xuICAgIGJlZ2luU2VpblJpZ2h0Q2xpY2thYmxlSWRzOiBzdHJpbmdbXTtcblxuICAgIG5pZXV3ZVJvdXRlPzogTmlldXdlUm91dGU7XG5cbiAgICBzaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW107XG4gICAgdmlzaWJsZVNiSW5mb0R0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXTtcbiAgICBhbGdlbWVuZVJpdEluZm9EdG86IEFsZ2VtZW5lUml0RHRvO1xuICAgIGlhVmVyc2llOiBJbmZyYU1vZGVsO1xuICAgIHN2Z0luZm9zOiBTdmdJbmZvW107XG4gICAgZGVidWc6IGJvb2xlYW47XG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgb25nZXBsYW5kZUFjdGllc0JlcGFhbGQ6IGJvb2xlYW47XG4gICAgcHJvZ3Jlc3NTdGF0ZTogUHJvZ3Jlc3NTdGF0ZTtcbiAgICBuaWV1d2VCZXdlZ2luZ2VuOiBCZXdlZ2luZ1tdO1xuICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICBmb2N1c0lkczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBQcm9ncmVzc1N0YXRlIHtcbiAgICBwcm9ncmVzc0luZGljYXRvcj86IFByb2dyZXNzSW5kaWNhdG9yO1xufVxuXG50eXBlIElkc0FjdGlvbkNyZWF0b3IgPSBBY3Rpb25DcmVhdG9yPFxuICAgIHN0cmluZyxcbiAgICAoaWRzOiBzdHJpbmdbXSkgPT4geyBpZHM6IHN0cmluZ1tdIH0gJiB7IHR5cGU6IHN0cmluZyB9PjtcblxuY29uc3Qgb25JZHNBY3Rpb25IYW5kbGVyID0gKGFjdGlvbjogSWRzQWN0aW9uQ3JlYXRvcikgPT4gb24oYWN0aW9uLCAoXzogc3RyaW5nW10sIHsgaWRzIH0pID0+IGlkcyk7XG5jb25zdCBjcmVhdGVJZHNSZWR1Y2VyID0gKGFjdGlvbjogSWRzQWN0aW9uQ3JlYXRvcikgPT4gY3JlYXRlUmVkdWNlcjxzdHJpbmdbXT4oW10sIG9uSWRzQWN0aW9uSGFuZGxlcihhY3Rpb24pKTtcblxuZXhwb3J0IGNvbnN0IGVkaXRhYmxlUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8Ym9vbGVhbj4odHJ1ZSwgb24oTXN0QWN0aW9ucy5zZXRFZGl0YWJsZSwgKF8sIHsgZWRpdGFibGUgfSkgPT4gZWRpdGFibGUpKTtcblxuZXhwb3J0IGNvbnN0IHByb2dyZXNzSW5kaWNhdG9yUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8UHJvZ3Jlc3NTdGF0ZT4oXG4gICAgeyB9IGFzIFByb2dyZXNzU3RhdGUsXG4gICAgb24oTXN0QWN0aW9ucy5TaG93UHJvZ3Jlc3MsICgpID0+ICh7IHByb2dyZXNzSW5kaWNhdG9yOiBuZXcgUHJvZ3Jlc3NJbmRpY2F0b3IoKSB9IGFzIFByb2dyZXNzU3RhdGUpKSxcbiAgICBvbihNc3RBY3Rpb25zLkNsZWFyUHJvZ3Jlc3MsICgpID0+ICh7IH0pKVxuKTtcblxuZXhwb3J0IGNvbnN0IHN2Z0luZm9SZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxTdmdJbmZvW10+KFtdLCBvbihNc3RBY3Rpb25zLlNldFN2Z0luZm9zLCAoXywgeyBzdmdJbmZvcyB9KSA9PiBzdmdJbmZvcykpO1xuZXhwb3J0IGNvbnN0IGRlYnVnUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8Ym9vbGVhbj4oZmFsc2UsIG9uKE1zdEFjdGlvbnMuU2V0RGVidWcsIChfLCB7IGRlYnVnIH0pID0+IGRlYnVnKSk7XG5leHBvcnQgY29uc3Qgcml0U2VsZWN0aWVJZHNSZWR1Y2VyID0gY3JlYXRlSWRzUmVkdWNlcihNc3RBY3Rpb25zLlNldFJpdFNlbGVjdGllSWRzKTtcblxuZXhwb3J0IGNvbnN0IGFjdGllT3BSaXRSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxBcnJheU11bHRpbWFwPEFjdGllLCBzdHJpbmc+PihcbiAgICBuZXcgQXJyYXlNdWx0aW1hcDxBY3RpZSwgc3RyaW5nPigpLFxuICAgIG9uKE1zdEFjdGlvbnMuU2V0R2VwbGFuZGVBY3RpZXMsIChfLCB7IGdlcGxhbmRlQWN0aWVzTWFwIH0pID0+IGdlcGxhbmRlQWN0aWVzTWFwKSxcbiAgICBvbihNc3RBY3Rpb25zLkFkZEdlcGxhbmRlQWN0aWUsIChnZXBsYW5kZUFjdGllcywgeyBhY3RpZSwgcHVpY3MgfSkgPT4ge1xuICAgICAgICBnZXBsYW5kZUFjdGllcy5wdXRBbGwoYWN0aWUsIHB1aWNzKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheU11bHRpbWFwKGdlcGxhbmRlQWN0aWVzKTtcbiAgICB9KSxcbiAgICBvbihNc3RBY3Rpb25zLkRlbGV0ZUdlcGxhbmRlQWN0aWUsIChnZXBsYW5kZUFjdGllcywgeyBhY3RpZSB9KSA9PiB7XG4gICAgICAgIGdlcGxhbmRlQWN0aWVzLmRlbGV0ZShhY3RpZSk7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXlNdWx0aW1hcChnZXBsYW5kZUFjdGllcyk7XG4gICAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBhY3RpZU9wUml0U2VsZWN0aWVJZHNSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxzdHJpbmdbXT4oXG4gICAgW10sXG4gICAgb25JZHNBY3Rpb25IYW5kbGVyKE1zdEFjdGlvbnMuU2V0QWN0aWVPcFJpdFNlbGVjdGllSWRzKSxcbiAgICBvbihNc3RBY3Rpb25zLkFkZEdlcGxhbmRlQWN0aWUsIChpZHM6IHN0cmluZ1tdLCB7IHB1aWNzIH0pID0+IHtcbiAgICAgICAgcHVpY3MuZmlsdGVyKHB1aWMgPT4gIWlkcy5pbmNsdWRlcyhwdWljKSkuZm9yRWFjaChwdWljID0+IGlkcy5wdXNoKHB1aWMpKTtcbiAgICAgICAgcmV0dXJuIFsuLi5pZHNdO1xuICAgIH0pLFxuICAgIG9uKE1zdEFjdGlvbnMuRGVsZXRlR2VwbGFuZGVBY3RpZSwgKGlkczogc3RyaW5nW10sIHsgcHVpY3MgfSkgPT4ge1xuICAgICAgICBwdWljcy5maWx0ZXIocHVpYyA9PiBpZHMuaW5jbHVkZXMocHVpYykpLmZvckVhY2gocHVpYyA9PiBpZHMgPSBpZHMuZmlsdGVyKHAgPT4gcCAhPT0gcHVpYykpO1xuICAgICAgICByZXR1cm4gWy4uLmlkc107XG4gICAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBvbmdlcGxhbmRlQWN0aWVSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxBcnJheU11bHRpbWFwPHN0cmluZywgT25nZXBsYW5kZUFjdGllPj4oXG4gICAgbmV3IEFycmF5TXVsdGltYXA8c3RyaW5nLCBPbmdlcGxhbmRlQWN0aWU+KCksXG4gICAgb24oTXN0QWN0aW9ucy5TZXRPbmdlcGxhbmRlQWN0aWVzLCAoXywgeyBvbmdlcGxhbmRlQWN0aWVzTWFwIH0pID0+IG9uZ2VwbGFuZGVBY3RpZXNNYXApLFxuICAgIG9uKE1zdEFjdGlvbnMuQWRkT25nZXBsYW5kZUFjdGllLCAob25nZXBsYW5kZUFjdGllcywgeyBvbmdlcGxhbmRlQWN0aWUgfSkgPT4ge1xuICAgICAgICBvbmdlcGxhbmRlQWN0aWUucHVpY3MuZmlsdGVyKHB1aWMgPT4gIW9uZ2VwbGFuZGVBY3RpZXMuY29udGFpbnNFbnRyeShwdWljLCBvbmdlcGxhbmRlQWN0aWUpKVxuICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaChwdWljID0+IG9uZ2VwbGFuZGVBY3RpZXMucHV0KHB1aWMsIG9uZ2VwbGFuZGVBY3RpZSkpO1xuICAgICAgICByZXR1cm4gbmV3IEFycmF5TXVsdGltYXAob25nZXBsYW5kZUFjdGllcyk7XG4gICAgfSksXG4gICAgb24oTXN0QWN0aW9ucy5EZWxldGVPbmdlcGxhbmRlQWN0aWUsIChvbmdlcGxhbmRlQWN0aWVzLCB7IG9uZ2VwbGFuZGVBY3RpZSB9KSA9PiB7XG4gICAgICAgIG9uZ2VwbGFuZGVBY3RpZS5wdWljcy5mb3JFYWNoKHB1aWMgPT4gb25nZXBsYW5kZUFjdGllcy5kZWxldGUocHVpYywgb25nZXBsYW5kZUFjdGllKSk7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXlNdWx0aW1hcChvbmdlcGxhbmRlQWN0aWVzKTtcbiAgICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IG9uZ2VwbGFuZGVBY3RpZVNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8c3RyaW5nW10+KFxuICAgIFtdLFxuICAgIG9uSWRzQWN0aW9uSGFuZGxlcihNc3RBY3Rpb25zLlNldE9uZ2VwbGFuZGVBY3RpZVNlbGVjdGllSWRzKSxcbiAgICBvbihNc3RBY3Rpb25zLkFkZE9uZ2VwbGFuZGVBY3RpZSwgKGlkczogc3RyaW5nW10sIHsgb25nZXBsYW5kZUFjdGllIH0pID0+IHtcbiAgICAgICAgb25nZXBsYW5kZUFjdGllLnB1aWNzLmZpbHRlcihwdWljID0+ICFpZHMuaW5jbHVkZXMocHVpYykpLmZvckVhY2gocHVpYyA9PiBpZHMucHVzaChwdWljKSk7XG4gICAgICAgIHJldHVybiBbLi4uaWRzXTtcbiAgICB9KSxcbiAgICBvbihNc3RBY3Rpb25zLkRlbGV0ZU9uZ2VwbGFuZGVBY3RpZVNlbGVjdGllSWQsIChpZHM6IHN0cmluZ1tdLCB7IGlkIH0pID0+IGlkcy5pbmNsdWRlcyhpZCkgPyBpZHMuZmlsdGVyKF9pZCA9PiBfaWQgIT09IGlkKSA6IGlkcylcbik7XG5cbmV4cG9ydCBjb25zdCBnZWJyb2tlblJpdFNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRHZWJyb2tlblJpdFNlbGVjdGllSWRzKTtcbmV4cG9ydCBjb25zdCBhbHRlcm5hdGlldmVuU2VsZWN0aWVJZHNSZWR1Y2VyID0gY3JlYXRlSWRzUmVkdWNlcihNc3RBY3Rpb25zLlNldEFsdGVybmF0aWV2ZW5TZWxlY3RpZUlkcyk7XG5leHBvcnQgY29uc3QgYmVnaW5TZWluU2VsZWN0aWVJZHNSZWR1Y2VyID0gY3JlYXRlSWRzUmVkdWNlcihNc3RBY3Rpb25zLlNldEJlZ2luU2VpblNlbGVjdGllSWRzKTtcbmV4cG9ydCBjb25zdCBlaW5kU2VpblNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRFaW5kU2VpblNlbGVjdGllSWRzKTtcbmV4cG9ydCBjb25zdCBhbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRBbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzKTtcbmV4cG9ydCBjb25zdCBlaW5kU2VpbmVuQ2xpY2thYmxlSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRFaW5kU2VpbmVuQ2xpY2thYmxlSWRzKTtcbmV4cG9ydCBjb25zdCBjb25uZWN0b3JDbGlja2FibGVJZHNSZWR1Y2VyID0gY3JlYXRlSWRzUmVkdWNlcihNc3RBY3Rpb25zLlNldENvbm5lY3RvcmVuQ2xpY2thYmxlSWRzKTtcbmV4cG9ydCBjb25zdCBiZWdpblNlaW5SaWdodENsaWNrYWJsZUlkc1JlZHVjZXIgPSBjcmVhdGVJZHNSZWR1Y2VyKE1zdEFjdGlvbnMuU2V0QmVnaW5TZWluUmlnaHRDbGlja2FibGVJZHMpO1xuXG5leHBvcnQgY29uc3QgbmlldXdlUm91dGVSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxOaWV1d2VSb3V0ZSB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkLFxuICAgIG9uKE1zdEFjdGlvbnMuU2V0TmlldXdSb3V0ZUJlZ2luU2VpbiwgKF8sIHsgc3RhcnRTZWluT3BSaXRkZWVsIH0pID0+IG5ldyBOaWV1d2VSb3V0ZShzdGFydFNlaW5PcFJpdGRlZWwsIHVuZGVmaW5lZCkpLFxuICAgIG9uKE1zdEFjdGlvbnMuU2V0TmlldXdSb3V0ZUVpbmRTZWluLCAobmlldXdlUm91dGUsIHsgY29tYmluYXRpZVZvb3JFaW5kc2VpbiB9KSA9PiBuZXcgTmlldXdlUm91dGUobmlldXdlUm91dGUuYmVnaW5TZWluT3BSaXRkZWVsLCBjb21iaW5hdGllVm9vckVpbmRzZWluKSksXG4gICAgb24oTXN0QWN0aW9ucy5SZXNldE5pZXV3ZVJvdXRlLCAoKSA9PiB1bmRlZmluZWQpXG4pO1xuXG5leHBvcnQgY29uc3Qgc2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvc1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXT4oXG4gICAgW10sXG4gICAgb24oTXN0QWN0aW9ucy5TZXRTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zLCAoXywgeyBkdG9zIH0pID0+IGR0b3MpLFxuICAgIG9uKE1zdEFjdGlvbnMuVXBkYXRlU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcywgKF8sIHsgZHRvcyB9KSA9PiBbLi4uZHRvc10pXG4pO1xuXG5leHBvcnQgY29uc3QgdmlzaWJsZVNiSW5mb0R0b3NSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW10+KFxuICAgIFtdLFxuICAgIG9uKE1zdEFjdGlvbnMuU2V0VmlzaWJsZVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3MsIChfLCB7IGR0b3MgfSkgPT4gZHRvcyksXG4gICAgb24oTXN0QWN0aW9ucy5VcGRhdGVWaXNpYmxlU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcywgKF8sIHsgZHRvcyB9KSA9PiBbLi4uZHRvc10pXG4pO1xuXG5leHBvcnQgY29uc3QgaWFWZXJzaWVSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxJbmZyYU1vZGVsPih7dmVyc2llOiAndW5rbm93bicsIGluZ2FuZ3NEYXR1bTogbmV3IERhdGUoKX0gYXMgSW5mcmFNb2RlbCxcbiAgICBvbihNc3RBY3Rpb25zLlNldElhVmVyc2llLFxuICAgICAgICAoXywgeyBpYVZlcnNpZSB9KSA9PiBPYmplY3QuYXNzaWduKHt9LCBpYVZlcnNpZSwgeyB2ZXJzaWU6IGlhVmVyc2llLnZlcnNpZS50b1VwcGVyQ2FzZSgpIH0pKSk7XG5leHBvcnQgY29uc3QgYWxnZW1lbmVSaXRJbmZvRHRvUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8QWxnZW1lbmVSaXREdG8+KHsgfSBhcyBBbGdlbWVuZVJpdER0bywgb24oTXN0QWN0aW9ucy5TZXRBbGdlbWVuZVJpdEluZm8sIChfLCB7IGFsZ2VtZW5lUml0SW5mb0R0byB9KSA9PiBhbGdlbWVuZVJpdEluZm9EdG8pKTtcbmV4cG9ydCBjb25zdCBvbmdlcGxhbmRlQWN0aWVzQmVwYWFsZFJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPGJvb2xlYW4+KGZhbHNlLCBvbihNc3RBY3Rpb25zLlNldE9uZ2VwbGFuZGVBY3RpZXNCZXBhYWxkLCAoXywgeyBiZXBhYWxkIH0pID0+IGJlcGFhbGQpKTtcblxuZXhwb3J0IGNvbnN0IG5pZXV3ZUJld2VnaW5nUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8QmV3ZWdpbmdbXT4oW10sIG9uKE1zdEFjdGlvbnMuVXBkYXRlUml0LCAoXywgeyBiZXdlZ2luZ2VuIH0pID0+IGJld2VnaW5nZW4pKTtcblxuZXhwb3J0IGNvbnN0IGJhc2VVcmxSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxzdHJpbmc+KCcnLCBvbihNc3RBY3Rpb25zLlNldEJhc2VVcmwsIChfLCB7IGJhc2VVcmwgfSkgPT4gYmFzZVVybCkpO1xuXG5leHBvcnQgY29uc3QgZm9jdXNJZHNSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxzdHJpbmdbXT4oW10sIG9uKE1zdEFjdGlvbnMuZm9jdXNPcElkcywgKF8sIHsgcHVpY3MgfSkgPT4gcHVpY3MpKTtcblxuXG5leHBvcnQgY29uc3Qgc3RvcmVSZWR1Y2VycyA9IHtcbiAgICByaXREZWxlbjogcml0ZGVsZW5SZWR1Y2VyLFxuICAgIHJpdFNlbGVjdGllSWRzOiByaXRTZWxlY3RpZUlkc1JlZHVjZXIsXG4gICAgYWN0aWVPcFJpdFNlbGVjdGllSWRzOiBhY3RpZU9wUml0U2VsZWN0aWVJZHNSZWR1Y2VyLFxuICAgIG9uZ2VwbGFuZGVBY3RpZVNlbGVjdGllSWRzOiBvbmdlcGxhbmRlQWN0aWVTZWxlY3RpZUlkc1JlZHVjZXIsXG4gICAgb25nZXBsYW5kZUFjdGllczogb25nZXBsYW5kZUFjdGllUmVkdWNlcixcbiAgICBnZWJyb2tlblJpdFNlbGVjdGllSWRzOiBnZWJyb2tlblJpdFNlbGVjdGllSWRzUmVkdWNlcixcbiAgICBhbHRlcm5hdGlldmVuU2VsZWN0aWVJZHM6IGFsdGVybmF0aWV2ZW5TZWxlY3RpZUlkc1JlZHVjZXIsXG4gICAgYmVnaW5TZWluU2VsZWN0aWVJZHM6IGJlZ2luU2VpblNlbGVjdGllSWRzUmVkdWNlcixcbiAgICBlaW5kU2VpblNlbGVjdGllSWRzOiBlaW5kU2VpblNlbGVjdGllSWRzUmVkdWNlcixcbiAgICBhbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzOiBhbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzUmVkdWNlcixcbiAgICBlaW5kU2VpbmVuQ2xpY2thYmxlSWRzOiBlaW5kU2VpbmVuQ2xpY2thYmxlSWRzUmVkdWNlcixcbiAgICBjb25uZWN0b3JDbGlja2FibGVJZHM6IGNvbm5lY3RvckNsaWNrYWJsZUlkc1JlZHVjZXIsXG4gICAgYmVnaW5TZWluUmlnaHRDbGlja2FibGVJZHM6IGJlZ2luU2VpblJpZ2h0Q2xpY2thYmxlSWRzUmVkdWNlcixcbiAgICBuaWV1d2VSb3V0ZTogbmlldXdlUm91dGVSZWR1Y2VyLFxuICAgIGdlcGxhbmRlQWN0aWVzOiBhY3RpZU9wUml0UmVkdWNlcixcbiAgICBzaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zOiBzaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zUmVkdWNlcixcbiAgICB2aXNpYmxlU2JJbmZvRHRvczogdmlzaWJsZVNiSW5mb0R0b3NSZWR1Y2VyLFxuICAgIGlhVmVyc2llOiBpYVZlcnNpZVJlZHVjZXIsXG4gICAgYWxnZW1lbmVSaXRJbmZvRHRvOiBhbGdlbWVuZVJpdEluZm9EdG9SZWR1Y2VyLFxuICAgIHN2Z0luZm9zOiBzdmdJbmZvUmVkdWNlcixcbiAgICBkZWJ1ZzogZGVidWdSZWR1Y2VyLFxuICAgIGVkaXRhYmxlOiBlZGl0YWJsZVJlZHVjZXIsXG4gICAgb25nZXBsYW5kZUFjdGllc0JlcGFhbGQ6IG9uZ2VwbGFuZGVBY3RpZXNCZXBhYWxkUmVkdWNlcixcbiAgICBwcm9ncmVzc1N0YXRlOiBwcm9ncmVzc0luZGljYXRvclJlZHVjZXIsXG4gICAgbmlldXdlQmV3ZWdpbmdlbjogbmlldXdlQmV3ZWdpbmdSZWR1Y2VyLFxuICAgIGJhc2VVcmw6IGJhc2VVcmxSZWR1Y2VyLFxuICAgIGZvY3VzSWRzOiBmb2N1c0lkc1JlZHVjZXIsXG59IGFzIEFjdGlvblJlZHVjZXJNYXA8TXN0RWRpdG9yU3RhdGU+O1xuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXN0LWVkaXRvci1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zdGF0ZS9tc3QtZWRpdG9yLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBa0MsYUFBYSxFQUFFLEVBQUUsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUUvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxVQUFVLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBZ0Q5RCxNQUFNLGtCQUFrQixHQUFHLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuRyxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFXLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBRS9HLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFdkgsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsYUFBYSxDQUNqRCxFQUFvQixFQUNwQixFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUs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QyxPQUFPLEVBQUUsY0FBYztJQUN2QixRQUFRLEVBQUUsZUFBZTtDQUNRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdmdJbmZvIH0gZnJvbSAnQGxveGlhL2lteC12aWV3ZXInO1xuaW1wb3J0IHtBY3Rpb25DcmVhdG9yLCBBY3Rpb25SZWR1Y2VyTWFwLCBjcmVhdGVSZWR1Y2VyLCBvbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQWxnZW1lbmVSaXREdG8gfSBmcm9tICcuLi8uLi9nZW5lcmF0ZWQvb3BlbmFwaSc7XG5pbXBvcnQgeyBQcm9ncmVzc0luZGljYXRvciB9IGZyb20gJy4uL2F0b21pYy1jb21wb25lbnRzL3Byb2dyZXNzLWluZGljYXRvci9wcm9ncmVzcy1pbmRpY2F0b3IuZW50aXR5JztcbmltcG9ydCB7IE5pZXV3ZVJvdXRlIH0gZnJvbSAnLi4vbW9kZWwvbmlldXdlLXJvdXRlJztcbmltcG9ydCB7IE9uZ2VwbGFuZGVBY3RpZSB9IGZyb20gJy4uL21vZGVsL29uZ2VwbGFuZGUtYWN0aWUnO1xuaW1wb3J0IHsgUml0ZGVlbCB9IGZyb20gJy4uL21vZGVsL3JpdGRlZWwnO1xuaW1wb3J0IHsgQWN0aWUsIEJld2VnaW5nLCBJbmZyYU1vZGVsIH0gZnJvbSAnLi4vb3B0aW1vJztcbmltcG9ydCB7IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG8gfSBmcm9tICcuLi9yZXNvdXJjZXMvc2lnbmFsZXJpbmdzYmVlbGRpbmZvLnJlc291cmNlJztcbmltcG9ydCB7IEFycmF5TXVsdGltYXAgfSBmcm9tICcuLi91dGlsL211bHRpLW1hcCc7XG5pbXBvcnQgKiBhcyBNc3RBY3Rpb25zIGZyb20gJy4vYWN0aW9ucy9hY3Rpb25zJztcbmltcG9ydCB7IHJpdGRlbGVuUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlci9yaXQtZGVsZW4ucmVkdWNlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXN0RWRpdG9yU3RhdGUge1xuICAgIHJpdERlbGVuOiBSaXRkZWVsW107IC8vIG9ucyBtb2RlbCB2YW4gdHJlaW5wYWRcblxuICAgIC8vIHB1aWNzIHZvb3IgU2VsZWN0aWVJbmZvc1xuICAgIHJpdFNlbGVjdGllSWRzOiBzdHJpbmdbXTtcbiAgICBhY3RpZU9wUml0U2VsZWN0aWVJZHM6IHN0cmluZ1tdO1xuICAgIGdlYnJva2VuUml0U2VsZWN0aWVJZHM6IHN0cmluZ1tdO1xuICAgIGFsdGVybmF0aWV2ZW5TZWxlY3RpZUlkczogc3RyaW5nW107XG4gICAgYmVnaW5TZWluU2VsZWN0aWVJZHM6IHN0cmluZ1tdO1xuICAgIGVpbmRTZWluU2VsZWN0aWVJZHM6IHN0cmluZ1tdO1xuICAgIG9uZ2VwbGFuZGVBY3RpZVNlbGVjdGllSWRzOiBzdHJpbmdbXTtcbiAgICBvbmdlcGxhbmRlQWN0aWVzOiBBcnJheU11bHRpbWFwPHN0cmluZywgT25nZXBsYW5kZUFjdGllPjtcbiAgICBnZXBsYW5kZUFjdGllczogQXJyYXlNdWx0aW1hcDxBY3RpZSwgc3RyaW5nPjtcblxuICAgIC8vIHB1aWNzIHZvb3IgY2xpY2tzXG4gICAgYWx0ZXJuYXRpZXZlbkNsaWNrYWJsZUlkczogc3RyaW5nW107XG4gICAgZWluZFNlaW5lbkNsaWNrYWJsZUlkczogc3RyaW5nW107XG4gICAgY29ubmVjdG9yQ2xpY2thYmxlSWRzOiBzdHJpbmdbXTtcblxuICAgIC8vIHB1aWNzIHZvb3IgcmlnaHRjbGlja3NcbiAgICBiZWdpblNlaW5SaWdodENsaWNrYWJsZUlkczogc3RyaW5nW107XG5cbiAgICBuaWV1d2VSb3V0ZT86IE5pZXV3ZVJvdXRlO1xuXG4gICAgc2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdO1xuICAgIHZpc2libGVTYkluZm9EdG9zOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvW107XG4gICAgYWxnZW1lbmVSaXRJbmZvRHRvOiBBbGdlbWVuZVJpdER0bztcbiAgICBpYVZlcnNpZTogSW5mcmFNb2RlbDtcbiAgICBzdmdJbmZvczogU3ZnSW5mb1tdO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIG9uZ2VwbGFuZGVBY3RpZXNCZXBhYWxkOiBib29sZWFuO1xuICAgIHByb2dyZXNzU3RhdGU6IFByb2dyZXNzU3RhdGU7XG4gICAgbmlldXdlQmV3ZWdpbmdlbjogQmV3ZWdpbmdbXTtcbiAgICBiYXNlVXJsOiBzdHJpbmc7XG4gICAgZm9jdXNJZHM6IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUHJvZ3Jlc3NTdGF0ZSB7XG4gICAgcHJvZ3Jlc3NJbmRpY2F0b3I/OiBQcm9ncmVzc0luZGljYXRvcjtcbn1cblxudHlwZSBJZHNBY3Rpb25DcmVhdG9yID0gQWN0aW9uQ3JlYXRvcjxcbiAgICBzdHJpbmcsXG4gICAgKGlkczogc3RyaW5nW10pID0+IHsgaWRzOiBzdHJpbmdbXSB9ICYgeyB0eXBlOiBzdHJpbmcgfT47XG5cbmNvbnN0IG9uSWRzQWN0aW9uSGFuZGxlciA9IChhY3Rpb246IElkc0FjdGlvbkNyZWF0b3IpID0+IG9uKGFjdGlvbiwgKF86IHN0cmluZ1tdLCB7IGlkcyB9KSA9PiBpZHMpO1xuY29uc3QgY3JlYXRlSWRzUmVkdWNlciA9IChhY3Rpb246IElkc0FjdGlvbkNyZWF0b3IpID0+IGNyZWF0ZVJlZHVjZXI8c3RyaW5nW10+KFtdLCBvbklkc0FjdGlvbkhhbmRsZXIoYWN0aW9uKSk7XG5cbmV4cG9ydCBjb25zdCBlZGl0YWJsZVJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPGJvb2xlYW4+KHRydWUsIG9uKE1zdEFjdGlvbnMuc2V0RWRpdGFibGUsIChfLCB7IGVkaXRhYmxlIH0pID0+IGVkaXRhYmxlKSk7XG5cbmV4cG9ydCBjb25zdCBwcm9ncmVzc0luZGljYXRvclJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPFByb2dyZXNzU3RhdGU+KFxuICAgIHsgfSBhcyBQcm9ncmVzc1N0YXRlLFxuICAgIG9uKE1zdEFjdGlvbnMuU2hvd1Byb2dyZXNzLCAoKSA9PiAoeyBwcm9ncmVzc0luZGljYXRvcjogbmV3IFByb2dyZXNzSW5kaWNhdG9yKCkgfSBhcyBQcm9ncmVzc1N0YXRlKSksXG4gICAgb24oTXN0QWN0aW9ucy5DbGVhclByb2dyZXNzLCAoKSA9PiAoeyB9KSlcbik7XG5cbmV4cG9ydCBjb25zdCBzdmdJbmZvUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8U3ZnSW5mb1tdPihbXSwgb24oTXN0QWN0aW9ucy5TZXRTdmdJbmZvcywgKF8sIHsgc3ZnSW5mb3MgfSkgPT4gc3ZnSW5mb3MpKTtcbmV4cG9ydCBjb25zdCBkZWJ1Z1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPGJvb2xlYW4+KGZhbHNlLCBvbihNc3RBY3Rpb25zLlNldERlYnVnLCAoXywgeyBkZWJ1ZyB9KSA9PiBkZWJ1ZykpO1xuZXhwb3J0IGNvbnN0IHJpdFNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRSaXRTZWxlY3RpZUlkcyk7XG5cbmV4cG9ydCBjb25zdCBhY3RpZU9wUml0UmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8QXJyYXlNdWx0aW1hcDxBY3RpZSwgc3RyaW5nPj4oXG4gICAgbmV3IEFycmF5TXVsdGltYXA8QWN0aWUsIHN0cmluZz4oKSxcbiAgICBvbihNc3RBY3Rpb25zLlNldEdlcGxhbmRlQWN0aWVzLCAoXywgeyBnZXBsYW5kZUFjdGllc01hcCB9KSA9PiBnZXBsYW5kZUFjdGllc01hcCksXG4gICAgb24oTXN0QWN0aW9ucy5BZGRHZXBsYW5kZUFjdGllLCAoZ2VwbGFuZGVBY3RpZXMsIHsgYWN0aWUsIHB1aWNzIH0pID0+IHtcbiAgICAgICAgZ2VwbGFuZGVBY3RpZXMucHV0QWxsKGFjdGllLCBwdWljcyk7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXlNdWx0aW1hcChnZXBsYW5kZUFjdGllcyk7XG4gICAgfSksXG4gICAgb24oTXN0QWN0aW9ucy5EZWxldGVHZXBsYW5kZUFjdGllLCAoZ2VwbGFuZGVBY3RpZXMsIHsgYWN0aWUgfSkgPT4ge1xuICAgICAgICBnZXBsYW5kZUFjdGllcy5kZWxldGUoYWN0aWUpO1xuICAgICAgICByZXR1cm4gbmV3IEFycmF5TXVsdGltYXAoZ2VwbGFuZGVBY3RpZXMpO1xuICAgIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgYWN0aWVPcFJpdFNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8c3RyaW5nW10+KFxuICAgIFtdLFxuICAgIG9uSWRzQWN0aW9uSGFuZGxlcihNc3RBY3Rpb25zLlNldEFjdGllT3BSaXRTZWxlY3RpZUlkcyksXG4gICAgb24oTXN0QWN0aW9ucy5BZGRHZXBsYW5kZUFjdGllLCAoaWRzOiBzdHJpbmdbXSwgeyBwdWljcyB9KSA9PiB7XG4gICAgICAgIHB1aWNzLmZpbHRlcihwdWljID0+ICFpZHMuaW5jbHVkZXMocHVpYykpLmZvckVhY2gocHVpYyA9PiBpZHMucHVzaChwdWljKSk7XG4gICAgICAgIHJldHVybiBbLi4uaWRzXTtcbiAgICB9KSxcbiAgICBvbihNc3RBY3Rpb25zLkRlbGV0ZUdlcGxhbmRlQWN0aWUsIChpZHM6IHN0cmluZ1tdLCB7IHB1aWNzIH0pID0+IHtcbiAgICAgICAgcHVpY3MuZmlsdGVyKHB1aWMgPT4gaWRzLmluY2x1ZGVzKHB1aWMpKS5mb3JFYWNoKHB1aWMgPT4gaWRzID0gaWRzLmZpbHRlcihwID0+IHAgIT09IHB1aWMpKTtcbiAgICAgICAgcmV0dXJuIFsuLi5pZHNdO1xuICAgIH0pXG4pO1xuXG5leHBvcnQgY29uc3Qgb25nZXBsYW5kZUFjdGllUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8QXJyYXlNdWx0aW1hcDxzdHJpbmcsIE9uZ2VwbGFuZGVBY3RpZT4+KFxuICAgIG5ldyBBcnJheU11bHRpbWFwPHN0cmluZywgT25nZXBsYW5kZUFjdGllPigpLFxuICAgIG9uKE1zdEFjdGlvbnMuU2V0T25nZXBsYW5kZUFjdGllcywgKF8sIHsgb25nZXBsYW5kZUFjdGllc01hcCB9KSA9PiBvbmdlcGxhbmRlQWN0aWVzTWFwKSxcbiAgICBvbihNc3RBY3Rpb25zLkFkZE9uZ2VwbGFuZGVBY3RpZSwgKG9uZ2VwbGFuZGVBY3RpZXMsIHsgb25nZXBsYW5kZUFjdGllIH0pID0+IHtcbiAgICAgICAgb25nZXBsYW5kZUFjdGllLnB1aWNzLmZpbHRlcihwdWljID0+ICFvbmdlcGxhbmRlQWN0aWVzLmNvbnRhaW5zRW50cnkocHVpYywgb25nZXBsYW5kZUFjdGllKSlcbiAgICAgICAgICAgICAgICAgICAgICAgLmZvckVhY2gocHVpYyA9PiBvbmdlcGxhbmRlQWN0aWVzLnB1dChwdWljLCBvbmdlcGxhbmRlQWN0aWUpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheU11bHRpbWFwKG9uZ2VwbGFuZGVBY3RpZXMpO1xuICAgIH0pLFxuICAgIG9uKE1zdEFjdGlvbnMuRGVsZXRlT25nZXBsYW5kZUFjdGllLCAob25nZXBsYW5kZUFjdGllcywgeyBvbmdlcGxhbmRlQWN0aWUgfSkgPT4ge1xuICAgICAgICBvbmdlcGxhbmRlQWN0aWUucHVpY3MuZm9yRWFjaChwdWljID0+IG9uZ2VwbGFuZGVBY3RpZXMuZGVsZXRlKHB1aWMsIG9uZ2VwbGFuZGVBY3RpZSkpO1xuICAgICAgICByZXR1cm4gbmV3IEFycmF5TXVsdGltYXAob25nZXBsYW5kZUFjdGllcyk7XG4gICAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBvbmdlcGxhbmRlQWN0aWVTZWxlY3RpZUlkc1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPHN0cmluZ1tdPihcbiAgICBbXSxcbiAgICBvbklkc0FjdGlvbkhhbmRsZXIoTXN0QWN0aW9ucy5TZXRPbmdlcGxhbmRlQWN0aWVTZWxlY3RpZUlkcyksXG4gICAgb24oTXN0QWN0aW9ucy5BZGRPbmdlcGxhbmRlQWN0aWUsIChpZHM6IHN0cmluZ1tdLCB7IG9uZ2VwbGFuZGVBY3RpZSB9KSA9PiB7XG4gICAgICAgIG9uZ2VwbGFuZGVBY3RpZS5wdWljcy5maWx0ZXIocHVpYyA9PiAhaWRzLmluY2x1ZGVzKHB1aWMpKS5mb3JFYWNoKHB1aWMgPT4gaWRzLnB1c2gocHVpYykpO1xuICAgICAgICByZXR1cm4gWy4uLmlkc107XG4gICAgfSksXG4gICAgb24oTXN0QWN0aW9ucy5EZWxldGVPbmdlcGxhbmRlQWN0aWVTZWxlY3RpZUlkLCAoaWRzOiBzdHJpbmdbXSwgeyBpZCB9KSA9PiBpZHMuaW5jbHVkZXMoaWQpID8gaWRzLmZpbHRlcihfaWQgPT4gX2lkICE9PSBpZCkgOiBpZHMpXG4pO1xuXG5leHBvcnQgY29uc3QgZ2Vicm9rZW5SaXRTZWxlY3RpZUlkc1JlZHVjZXIgPSBjcmVhdGVJZHNSZWR1Y2VyKE1zdEFjdGlvbnMuU2V0R2Vicm9rZW5SaXRTZWxlY3RpZUlkcyk7XG5leHBvcnQgY29uc3QgYWx0ZXJuYXRpZXZlblNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRBbHRlcm5hdGlldmVuU2VsZWN0aWVJZHMpO1xuZXhwb3J0IGNvbnN0IGJlZ2luU2VpblNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRCZWdpblNlaW5TZWxlY3RpZUlkcyk7XG5leHBvcnQgY29uc3QgZWluZFNlaW5TZWxlY3RpZUlkc1JlZHVjZXIgPSBjcmVhdGVJZHNSZWR1Y2VyKE1zdEFjdGlvbnMuU2V0RWluZFNlaW5TZWxlY3RpZUlkcyk7XG5leHBvcnQgY29uc3QgYWx0ZXJuYXRpZXZlbkNsaWNrYWJsZUlkc1JlZHVjZXIgPSBjcmVhdGVJZHNSZWR1Y2VyKE1zdEFjdGlvbnMuU2V0QWx0ZXJuYXRpZXZlbkNsaWNrYWJsZUlkcyk7XG5leHBvcnQgY29uc3QgZWluZFNlaW5lbkNsaWNrYWJsZUlkc1JlZHVjZXIgPSBjcmVhdGVJZHNSZWR1Y2VyKE1zdEFjdGlvbnMuU2V0RWluZFNlaW5lbkNsaWNrYWJsZUlkcyk7XG5leHBvcnQgY29uc3QgY29ubmVjdG9yQ2xpY2thYmxlSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRDb25uZWN0b3JlbkNsaWNrYWJsZUlkcyk7XG5leHBvcnQgY29uc3QgYmVnaW5TZWluUmlnaHRDbGlja2FibGVJZHNSZWR1Y2VyID0gY3JlYXRlSWRzUmVkdWNlcihNc3RBY3Rpb25zLlNldEJlZ2luU2VpblJpZ2h0Q2xpY2thYmxlSWRzKTtcblxuZXhwb3J0IGNvbnN0IG5pZXV3ZVJvdXRlUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8TmlldXdlUm91dGUgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZCxcbiAgICBvbihNc3RBY3Rpb25zLlNldE5pZXV3Um91dGVCZWdpblNlaW4sIChfLCB7IHN0YXJ0U2Vpbk9wUml0ZGVlbCB9KSA9PiBuZXcgTmlldXdlUm91dGUoc3RhcnRTZWluT3BSaXRkZWVsLCB1bmRlZmluZWQpKSxcbiAgICBvbihNc3RBY3Rpb25zLlNldE5pZXV3Um91dGVFaW5kU2VpbiwgKG5pZXV3ZVJvdXRlLCB7IGNvbWJpbmF0aWVWb29yRWluZHNlaW4gfSkgPT4gbmlldXdlUm91dGUgPyBuZXcgTmlldXdlUm91dGUobmlldXdlUm91dGUuYmVnaW5TZWluT3BSaXRkZWVsLCBjb21iaW5hdGllVm9vckVpbmRzZWluKTogdW5kZWZpbmVkKSxcbiAgICBvbihNc3RBY3Rpb25zLlJlc2V0TmlldXdlUm91dGUsICgpID0+IHVuZGVmaW5lZClcbik7XG5cbmV4cG9ydCBjb25zdCBzaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8SVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdPihcbiAgICBbXSxcbiAgICBvbihNc3RBY3Rpb25zLlNldFNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3MsIChfLCB7IGR0b3MgfSkgPT4gZHRvcyksXG4gICAgb24oTXN0QWN0aW9ucy5VcGRhdGVTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zLCAoXywgeyBkdG9zIH0pID0+IFsuLi5kdG9zXSlcbik7XG5cbmV4cG9ydCBjb25zdCB2aXNpYmxlU2JJbmZvRHRvc1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXT4oXG4gICAgW10sXG4gICAgb24oTXN0QWN0aW9ucy5TZXRWaXNpYmxlU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvcywgKF8sIHsgZHRvcyB9KSA9PiBkdG9zKSxcbiAgICBvbihNc3RBY3Rpb25zLlVwZGF0ZVZpc2libGVTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zLCAoXywgeyBkdG9zIH0pID0+IFsuLi5kdG9zXSlcbik7XG5cbmV4cG9ydCBjb25zdCBpYVZlcnNpZVJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPEluZnJhTW9kZWw+KHt2ZXJzaWU6ICd1bmtub3duJywgaW5nYW5nc0RhdHVtOiBuZXcgRGF0ZSgpfSBhcyBJbmZyYU1vZGVsLFxuICAgIG9uKE1zdEFjdGlvbnMuU2V0SWFWZXJzaWUsXG4gICAgICAgIChfLCB7IGlhVmVyc2llIH0pID0+IE9iamVjdC5hc3NpZ24oe30sIGlhVmVyc2llLCB7IHZlcnNpZTogaWFWZXJzaWUudmVyc2llLnRvVXBwZXJDYXNlKCkgfSkpKTtcbmV4cG9ydCBjb25zdCBhbGdlbWVuZVJpdEluZm9EdG9SZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxBbGdlbWVuZVJpdER0bz4oeyB9IGFzIEFsZ2VtZW5lUml0RHRvLCBvbihNc3RBY3Rpb25zLlNldEFsZ2VtZW5lUml0SW5mbywgKF8sIHsgYWxnZW1lbmVSaXRJbmZvRHRvIH0pID0+IGFsZ2VtZW5lUml0SW5mb0R0bykpO1xuZXhwb3J0IGNvbnN0IG9uZ2VwbGFuZGVBY3RpZXNCZXBhYWxkUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8Ym9vbGVhbj4oZmFsc2UsIG9uKE1zdEFjdGlvbnMuU2V0T25nZXBsYW5kZUFjdGllc0JlcGFhbGQsIChfLCB7IGJlcGFhbGQgfSkgPT4gYmVwYWFsZCkpO1xuXG5leHBvcnQgY29uc3QgbmlldXdlQmV3ZWdpbmdSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxCZXdlZ2luZ1tdPihbXSwgb24oTXN0QWN0aW9ucy5VcGRhdGVSaXQsIChfLCB7IGJld2VnaW5nZW4gfSkgPT4gYmV3ZWdpbmdlbikpO1xuXG5leHBvcnQgY29uc3QgYmFzZVVybFJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPHN0cmluZz4oJycsIG9uKE1zdEFjdGlvbnMuU2V0QmFzZVVybCwgKF8sIHsgYmFzZVVybCB9KSA9PiBiYXNlVXJsKSk7XG5cbmV4cG9ydCBjb25zdCBmb2N1c0lkc1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPHN0cmluZ1tdPihbXSwgb24oTXN0QWN0aW9ucy5mb2N1c09wSWRzLCAoXywgeyBwdWljcyB9KSA9PiBwdWljcykpO1xuXG5cbmV4cG9ydCBjb25zdCBzdG9yZVJlZHVjZXJzID0ge1xuICAgIHJpdERlbGVuOiByaXRkZWxlblJlZHVjZXIsXG4gICAgcml0U2VsZWN0aWVJZHM6IHJpdFNlbGVjdGllSWRzUmVkdWNlcixcbiAgICBhY3RpZU9wUml0U2VsZWN0aWVJZHM6IGFjdGllT3BSaXRTZWxlY3RpZUlkc1JlZHVjZXIsXG4gICAgb25nZXBsYW5kZUFjdGllU2VsZWN0aWVJZHM6IG9uZ2VwbGFuZGVBY3RpZVNlbGVjdGllSWRzUmVkdWNlcixcbiAgICBvbmdlcGxhbmRlQWN0aWVzOiBvbmdlcGxhbmRlQWN0aWVSZWR1Y2VyLFxuICAgIGdlYnJva2VuUml0U2VsZWN0aWVJZHM6IGdlYnJva2VuUml0U2VsZWN0aWVJZHNSZWR1Y2VyLFxuICAgIGFsdGVybmF0aWV2ZW5TZWxlY3RpZUlkczogYWx0ZXJuYXRpZXZlblNlbGVjdGllSWRzUmVkdWNlcixcbiAgICBiZWdpblNlaW5TZWxlY3RpZUlkczogYmVnaW5TZWluU2VsZWN0aWVJZHNSZWR1Y2VyLFxuICAgIGVpbmRTZWluU2VsZWN0aWVJZHM6IGVpbmRTZWluU2VsZWN0aWVJZHNSZWR1Y2VyLFxuICAgIGFsdGVybmF0aWV2ZW5DbGlja2FibGVJZHM6IGFsdGVybmF0aWV2ZW5DbGlja2FibGVJZHNSZWR1Y2VyLFxuICAgIGVpbmRTZWluZW5DbGlja2FibGVJZHM6IGVpbmRTZWluZW5DbGlja2FibGVJZHNSZWR1Y2VyLFxuICAgIGNvbm5lY3RvckNsaWNrYWJsZUlkczogY29ubmVjdG9yQ2xpY2thYmxlSWRzUmVkdWNlcixcbiAgICBiZWdpblNlaW5SaWdodENsaWNrYWJsZUlkczogYmVnaW5TZWluUmlnaHRDbGlja2FibGVJZHNSZWR1Y2VyLFxuICAgIG5pZXV3ZVJvdXRlOiBuaWV1d2VSb3V0ZVJlZHVjZXIsXG4gICAgZ2VwbGFuZGVBY3RpZXM6IGFjdGllT3BSaXRSZWR1Y2VyLFxuICAgIHNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3M6IHNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3NSZWR1Y2VyLFxuICAgIHZpc2libGVTYkluZm9EdG9zOiB2aXNpYmxlU2JJbmZvRHRvc1JlZHVjZXIsXG4gICAgaWFWZXJzaWU6IGlhVmVyc2llUmVkdWNlcixcbiAgICBhbGdlbWVuZVJpdEluZm9EdG86IGFsZ2VtZW5lUml0SW5mb0R0b1JlZHVjZXIsXG4gICAgc3ZnSW5mb3M6IHN2Z0luZm9SZWR1Y2VyLFxuICAgIGRlYnVnOiBkZWJ1Z1JlZHVjZXIsXG4gICAgZWRpdGFibGU6IGVkaXRhYmxlUmVkdWNlcixcbiAgICBvbmdlcGxhbmRlQWN0aWVzQmVwYWFsZDogb25nZXBsYW5kZUFjdGllc0JlcGFhbGRSZWR1Y2VyLFxuICAgIHByb2dyZXNzU3RhdGU6IHByb2dyZXNzSW5kaWNhdG9yUmVkdWNlcixcbiAgICBuaWV1d2VCZXdlZ2luZ2VuOiBuaWV1d2VCZXdlZ2luZ1JlZHVjZXIsXG4gICAgYmFzZVVybDogYmFzZVVybFJlZHVjZXIsXG4gICAgZm9jdXNJZHM6IGZvY3VzSWRzUmVkdWNlcixcbn0gYXMgQWN0aW9uUmVkdWNlck1hcDxNc3RFZGl0b3JTdGF0ZT47XG4iXX0=
@@ -554,7 +554,7 @@ class BewegingUtils {
554
554
  const retval = [];
555
555
  retval.length = ritDelen.length;
556
556
  const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
557
- let vorigeBeweging = null;
557
+ let vorigeBeweging = undefined;
558
558
  for (let i = 0; i < ritDelen.length; i++) {
559
559
  const ritdeel = ritDelen[i];
560
560
  if (ritdeel.beweging) {
@@ -584,7 +584,7 @@ class BewegingUtils {
584
584
  }
585
585
  static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
586
586
  const ritDelenArray = ritDelen
587
- .filter(r => r.beweging)
587
+ .filter(r => r.beweging?.id)
588
588
  .map(r => r.beweging.id)
589
589
  .sort((a, b) => a - b);
590
590
  const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
@@ -600,9 +600,9 @@ class BewegingUtils {
600
600
  return stringToCheck.indexOf(match) !== -1;
601
601
  }
602
602
  static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
603
- const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;
603
+ const dwangGewijzigd = ritdeel.beweging?.dwangNummer !== nieuwDwangNummer;
604
604
  let gewijzigd = false;
605
- if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {
605
+ if (ritdeel.beweging?.wijzigStatus === this.NORMAAL) {
606
606
  const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
607
607
  const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
608
608
  gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
@@ -626,7 +626,7 @@ class BewegingUtils {
626
626
  let naarSeinPplg;
627
627
  let naarSpoor = newRitdeel.getNaarPrlSpoor();
628
628
  if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
629
- if (newRitdeel.heeftVrijebaanInfo()) {
629
+ if (newRitdeel.heeftVrijebaanInfo() && newRitdeel.getVrijebaanRijweg()) {
630
630
  const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
631
631
  naarSeinNaam = vbEindSein.getName();
632
632
  naarSeinPplg = vbEindSein.getPPLG();
@@ -5106,7 +5106,7 @@ const alternatievenClickableIdsReducer = createIdsReducer(SetAlternatievenClicka
5106
5106
  const eindSeinenClickableIdsReducer = createIdsReducer(SetEindSeinenClickableIds);
5107
5107
  const connectorClickableIdsReducer = createIdsReducer(SetConnectorenClickableIds);
5108
5108
  const beginSeinRightClickableIdsReducer = createIdsReducer(SetBeginSeinRightClickableIds);
5109
- const nieuweRouteReducer = createReducer(undefined, on(SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, undefined)), on(SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein)), on(ResetNieuweRoute, () => undefined));
5109
+ const nieuweRouteReducer = createReducer(undefined, on(SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, undefined)), on(SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => nieuweRoute ? new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein) : undefined), on(ResetNieuweRoute, () => undefined));
5110
5110
  const signaleringsbeeldInfoDtosReducer = createReducer([], on(SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
5111
5111
  const visibleSbInfoDtosReducer = createReducer([], on(SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
5112
5112
  const iaVersieReducer = createReducer({ versie: 'unknown', ingangsDatum: new Date() }, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));