ca-components 1.0.25 → 1.0.26

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.
Files changed (65) hide show
  1. package/esm2022/lib/ca-components.module.mjs +12 -6
  2. package/esm2022/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.mjs +3 -3
  3. package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.mjs +2 -2
  4. package/esm2022/lib/components/ca-input/ca-input.component.mjs +3 -3
  5. package/esm2022/lib/components/ca-input/pipes/input-clear-class.pipe.mjs +4 -3
  6. package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +2 -2
  7. package/esm2022/lib/components/ca-logo-change/ca-logo-change.component.mjs +1 -1
  8. package/esm2022/lib/components/ca-map/ca-map.component.mjs +8 -2
  9. package/esm2022/lib/components/ca-map/enums/index.mjs +4 -0
  10. package/esm2022/lib/components/ca-map/enums/map-marker-string.enum.mjs +9 -0
  11. package/esm2022/lib/components/ca-map/models/map.model.mjs +1 -1
  12. package/esm2022/lib/components/ca-map/utils/constants/map-options.constants.mjs +24 -1
  13. package/esm2022/lib/components/ca-map/utils/helpers/index.mjs +3 -0
  14. package/esm2022/lib/components/ca-map/utils/helpers/map-marker-icon.helper.mjs +51 -0
  15. package/esm2022/lib/components/ca-map/utils/svg-routes/index.mjs +2 -0
  16. package/esm2022/lib/components/ca-map/utils/svg-routes/map-svg-routes.mjs +8 -0
  17. package/esm2022/lib/components/ca-progress-bar/ca-progress-bar.component.mjs +7 -6
  18. package/esm2022/lib/components/ca-progress-bar/utils/constants/progress-bar.constants.mjs +1 -11
  19. package/esm2022/lib/components/ca-progress-bar/utils/helpers/index.mjs +1 -2
  20. package/esm2022/lib/components/ca-progress-bar/utils/svg-routes/progress-bar-svg-routes.mjs +1 -4
  21. package/esm2022/lib/components/ca-progress-range/ca-progress-range.component.mjs +64 -0
  22. package/esm2022/lib/components/ca-progress-range/enums/index.mjs +3 -0
  23. package/esm2022/lib/components/ca-progress-range/enums/progress-range-price.enum.mjs +11 -0
  24. package/esm2022/lib/components/ca-progress-range/enums/progress-range-unit.enum.mjs +5 -0
  25. package/esm2022/lib/components/ca-progress-range/models/index.mjs +2 -0
  26. package/esm2022/lib/components/ca-progress-range/models/progress-range-last-price-item.model.mjs +2 -0
  27. package/esm2022/lib/components/ca-progress-range/utils/constants/ca-progress-range.constants.mjs +43 -0
  28. package/esm2022/lib/components/ca-progress-range/utils/constants/index.mjs +2 -0
  29. package/esm2022/lib/components/ca-progress-range/utils/svg-routes/ca-progress-range-svg-routes.mjs +5 -0
  30. package/esm2022/lib/components/ca-progress-range/utils/svg-routes/index.mjs +2 -0
  31. package/esm2022/public-api.mjs +3 -1
  32. package/fesm2022/ca-components.mjs +218 -66
  33. package/fesm2022/ca-components.mjs.map +1 -1
  34. package/lib/ca-components.module.d.ts +2 -1
  35. package/lib/components/ca-map/enums/index.d.ts +3 -0
  36. package/lib/components/ca-map/enums/map-marker-string.enum.d.ts +6 -0
  37. package/lib/components/ca-map/models/map.model.d.ts +14 -1
  38. package/lib/components/ca-map/utils/constants/map-options.constants.d.ts +26 -0
  39. package/lib/components/ca-map/utils/helpers/index.d.ts +2 -0
  40. package/lib/components/ca-map/utils/helpers/map-marker-icon.helper.d.ts +4 -0
  41. package/lib/components/ca-map/utils/svg-routes/index.d.ts +1 -0
  42. package/lib/components/ca-map/utils/svg-routes/map-svg-routes.d.ts +7 -0
  43. package/lib/components/ca-progress-bar/ca-progress-bar.component.d.ts +0 -10
  44. package/lib/components/ca-progress-bar/utils/constants/progress-bar.constants.d.ts +0 -10
  45. package/lib/components/ca-progress-bar/utils/helpers/index.d.ts +0 -1
  46. package/lib/components/ca-progress-bar/utils/svg-routes/progress-bar-svg-routes.d.ts +0 -3
  47. package/lib/components/ca-progress-range/ca-progress-range.component.d.ts +19 -0
  48. package/lib/components/ca-progress-range/enums/index.d.ts +2 -0
  49. package/lib/components/ca-progress-range/enums/progress-range-price.enum.d.ts +9 -0
  50. package/lib/components/ca-progress-range/enums/progress-range-unit.enum.d.ts +3 -0
  51. package/lib/components/ca-progress-range/models/index.d.ts +1 -0
  52. package/lib/components/ca-progress-range/models/progress-range-last-price-item.model.d.ts +6 -0
  53. package/lib/components/ca-progress-range/utils/constants/ca-progress-range.constants.d.ts +15 -0
  54. package/lib/components/ca-progress-range/utils/constants/index.d.ts +1 -0
  55. package/lib/components/ca-progress-range/utils/svg-routes/ca-progress-range-svg-routes.d.ts +4 -0
  56. package/lib/components/ca-progress-range/utils/svg-routes/index.d.ts +1 -0
  57. package/package.json +1 -1
  58. package/public-api.d.ts +2 -0
  59. package/src/assets/ca-components/svg/common/ic_department.svg +5 -0
  60. package/src/assets/ca-components/svg/progress-range/progress-range-last-price-bar.svg +7 -0
  61. package/src/assets/ca-components/svg/progress-range/progress-range-last-price-cursor.svg +4 -0
  62. package/esm2022/lib/components/ca-map/utils/map-svg-routes/map-svg-routes.mjs +0 -5
  63. package/esm2022/lib/components/ca-progress-bar/utils/helpers/progress-map-marker.helper.mjs +0 -51
  64. package/lib/components/ca-map/utils/map-svg-routes/map-svg-routes.d.ts +0 -4
  65. package/lib/components/ca-progress-bar/utils/helpers/progress-map-marker.helper.d.ts +0 -4
@@ -120,8 +120,14 @@ export class CaMapComponent {
120
120
  preserveViewport: true,
121
121
  polylineOptions: {
122
122
  strokeColor: route.strokeColor || GoogleMapEnum.STROKE_COLOR,
123
- strokeOpacity: route.strokeOpacity || GoogleMapEnum.STROKE_OPACITY,
123
+ strokeOpacity: !route.isDashed
124
+ ? route.strokeOpacity || GoogleMapEnum.STROKE_OPACITY
125
+ : 0,
124
126
  strokeWeight: route.strokeWeight || GoogleMapEnum.STROKE_WEIGHT,
127
+ icons: route.isDashed
128
+ ? route.dashedLineStyle ??
129
+ MapOptionsConstants.routingDashedLineIcon
130
+ : null,
125
131
  },
126
132
  });
127
133
  directionsRenderer.setDirections(result);
@@ -465,4 +471,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
465
471
  type: ViewChild,
466
472
  args: [MapInfoWindow]
467
473
  }] } });
468
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC9jYS1tYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwL2NhLW1hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FHZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELGFBQWE7QUFDYixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixRQUFRO0FBQ1IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBYWhFLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFLL0QsWUFBWTtBQUNaLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFvQjVELE1BQU0s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QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7K0dBcGdCVSxjQUFjO21HQUFkLGNBQWMsNllBV2QsU0FBUyxrRkFDVCxhQUFhLGdEQ2pGMUIsOGtKQStJQTtnQkR0RkksVUFBVTtnQkFDVixnQkFBZ0IsMG1EQUNoQixZQUFZLDZWQUNaLG9CQUFvQixnT0FDcEIsZ0JBQWdCO2dCQUVoQixhQUFhO2dCQUNiLHNCQUFzQiw4TUFDdEIsdUJBQXVCOzs0RkFJZCxjQUFjO2tCQWxCMUIsU0FBUzsrQkFDRSxZQUFZLGNBR1YsSUFBSSxXQUNQO3dCQUNQLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUVoQixhQUFhO3dCQUNiLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3FCQUN4QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO3dHQUl4QixJQUFJO3NCQUFoQixLQUFLO2dCQUdJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ2tDLElBQUk7c0JBQTVDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDYixlQUFlO3NCQUF4QyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEdvb2dsZU1hcCxcbiAgR29vZ2xlTWFwc01vZHVsZSxcbiAgTWFwSW5mb1dpbmRvdyxcbiAgTWFwTWFya2VyLFxuICBNYXBDaXJjbGUsXG59IGZyb20gJ0Bhbmd1bGFyL2dvb2dsZS1tYXBzJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JUb29sdGlwTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG4vLyBDb21wb25lbnRzXG5pbXBvcnQgeyBDYU1hcERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtbWFwLWRyb3Bkb3duL2NhLW1hcC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuXG4vLyBFbnVtc1xuaW1wb3J0IHsgR29vZ2xlTWFwRW51bSB9IGZyb20gJy4uL2NhLW1hcC9lbnVtcy9nb29nbGUtbWFwLmVudW0nO1xuXG4vLyBNb2RlbHNcbmltcG9ydCB7XG4gIElNYXBNYXJrZXJzLFxuICBJTWFwUm91dGVQYXRoLFxuICBJQ2FNYXBQcm9wcyxcbiAgSU1hcE9wdGlvbnMsXG4gIElSb3V0ZVBhdGgsXG4gIElNYXBCb3VuZHNab29tLFxuICBJTWFwU2VsZWN0ZWRNYXJrZXJEYXRhLFxufSBmcm9tICcuLi9jYS1tYXAvbW9kZWxzL21hcC5tb2RlbCc7XG5cbi8vIEhlbHBlcnNcbmltcG9ydCB7IE1hcEhlbHBlciB9IGZyb20gJy4uL2NhLW1hcC91dGlscy9oZWxwZXJzL21hcC5oZWxwZXInO1xuXG4vLyBTdmctcm91dGVzXG5pbXBvcnQgeyBNYXBTdmdSb3V0ZXMgfSBmcm9tICcuLi9jYS1tYXAvdXRpbHMvbWFwLXN2Zy1yb3V0ZXMvbWFwLXN2Zy1yb3V0ZXMnO1xuXG4vLyBDb25zdGFudHNcbmltcG9ydCB7XG4gIE1hcEluZm9XaW5kb3dPcHRpb25zQ29uc3RhbnRzLFxuICBNYXBPcHRpb25zQ29uc3RhbnRzLFxufSBmcm9tICcuL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBNYXBDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbWFwLmNvbnN0YW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhLW1hcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1tYXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYS1tYXAuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIC8vIE1vZHVsZXNcbiAgICBHb29nbGVNYXBzTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICBOZ2JUb29sdGlwTW9kdWxlLFxuXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIENhTWFwRHJvcGRvd25Db21wb25lbnQsXG4gICAgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIENhTWFwQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbiAgQElucHV0KCkgc2V0IGRhdGEodmFsdWVzOiBJQ2FNYXBQcm9wcykge1xuICAgIHRoaXMuaGFuZGxlTWFwRGF0YSh2YWx1ZXMpO1xuICB9XG4gIEBPdXRwdXQoKSByZXNldFNlbGVjdGVkTWFya2VySXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGNsdXN0ZXJNYXJrZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SU1hcE1hcmtlcnM+KCk7XG4gIEBPdXRwdXQoKSBjbHVzdGVyTGlzdFNjcm9sbEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxJTWFwTWFya2Vycz4oKTtcbiAgQE91dHB1dCgpIGdldEluZm9XaW5kb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBib3VuZHNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJTWFwQm91bmRzWm9vbT4oKTtcbiAgQE91dHB1dCgpIG9wZW5Jbk1hcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAVmlld0NoaWxkKEdvb2dsZU1hcCwgeyBzdGF0aWM6IGZhbHNlIH0pIG1hcHMhOiBHb29nbGVNYXA7XG4gIEBWaWV3Q2hpbGQoTWFwSW5mb1dpbmRvdykgaW5mb1dpbmRvd3NWaWV3ITogTWFwSW5mb1dpbmRvdztcbiAgcHVibGljIGN1cnJlbnRseU9wZW5XaW5kb3chOiBNYXBJbmZvV2luZG93IHwgbnVsbDtcbiAgcHVibGljIGN1cnJlbnRseU9wZW5XaW5kb3dSb3V0aW5nITogTWFwSW5mb1dpbmRvdyB8IG51bGw7XG4gIHB1YmxpYyBwcmV2aW91c0ljb25VcmwhOiBzdHJpbmc7XG4gIHB1YmxpYyBwcmV2aW91c0ljb25VcmxSb3V0aW5nITogc3RyaW5nO1xuICBwdWJsaWMgZm9jdXNlZEljb25Sb3V0aW5nITogbnVtYmVyO1xuICBwcml2YXRlIGRpcmVjdGlvblNlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMuRGlyZWN0aW9uc1NlcnZpY2UoKTtcbiAgcHVibGljIGRpcmVjdGlvbnNSZW5kZXJlcnM6IGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNSZW5kZXJlcltdID0gW107XG4gIHB1YmxpYyBpbml0aWFsSWNvbnM6IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBsYWJlbE9yaWdpbj86IGdvb2dsZS5tYXBzLlBvaW50O1xuICB9W10gPSBbXTtcbiAgcHVibGljIGluaXRpYWxNYXJrZXJJY29uczoge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGxhYmVsT3JpZ2luPzogZ29vZ2xlLm1hcHMuUG9pbnQ7XG4gICAgekluZGV4PzogbnVtYmVyO1xuICB9W10gPSBbXTtcbiAgcHVibGljIGluZm9XaW5kb3dPcHRpb25zOiBnb29nbGUubWFwcy5JbmZvV2luZG93T3B0aW9ucyA9XG4gICAgTWFwSW5mb1dpbmRvd09wdGlvbnNDb25zdGFudHMubWFwSW5mb1dpbmRvd09wdGlvbnM7XG4gIHB1YmxpYyBtYXBPcHRpb25zOiBJTWFwT3B0aW9ucyA9IE1hcE9wdGlvbnNDb25zdGFudHMuZGVmYXVsdE1hcE9wdGlvbnM7XG4gIHB1YmxpYyBtYXBab29tOiBudW1iZXIgPSBNYXBPcHRpb25zQ29uc3RhbnRzLmRlZmF1bHRNYXBab29tO1xuICBwdWJsaWMgbWFwQ2VudGVyOiBJUm91dGVQYXRoID0gTWFwT3B0aW9uc0NvbnN0YW50cy5kZWZhdWx0TWFwQ2VudGVyO1xuICBwdWJsaWMgbWFwOiBnb29nbGUubWFwcy5NYXAgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGlzTWFwQ2VudGVyU2V0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjbHVzdGVyTWFya2Vyc0RhdGE6IElNYXBNYXJrZXJzW10gPSBbXTtcbiAgcHVibGljIG1hcmtlcnNEYXRhOiBJTWFwTWFya2Vyc1tdID0gW107XG4gIHB1YmxpYyBtYXBEYXRhOiBJQ2FNYXBQcm9wcyA9IHt9O1xuICBwdWJsaWMgb3BlbmVkSW5mb1dpbmRvd0RhdGE6IElNYXBNYXJrZXJzIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBhcmVhRmlsdGVyRGF0YSA9IE1hcE9wdGlvbnNDb25zdGFudHMuYXJlYUZpbHRlckRhdGE7XG4gIHB1YmxpYyBpc0FyZWFGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGhvdmVyZWRNYXJrZXJJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdG9yZUluaXRpYWxJY29uRm9yTWFya2VyKCk7XG4gICAgdGhpcy5zdG9yZUluaXRpYWxJY29uRm9yUm91dGluZ01hcmtlcigpO1xuICAgIC8vIFJlc2V0IGFsbCBpY29ucyB0byB0aGVpciBpbml0aWFsIHN0YXRlIG9uIHBhZ2UgbG9hZFxuICAgIHRoaXMucmVzZXRNYXJrZXJzSWNvbnMoKTtcbiAgICB0aGlzLnJlc2V0Um91dGluZ01hcmtlcnMoKTtcbiAgICAvL0Rpc3BsYXkgcm91dGVzIGZvciByb3V0aW5nTWFya2Vyc1xuICAgIHRoaXMuY2FsY3VsYXRlQW5kRGlzcGxheVJvdXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc3RvcmVJbml0aWFsSWNvbkZvck1hcmtlcigpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxNYXJrZXJJY29ucyA9IFtdO1xuXG4gICAgdGhpcy5tYXBEYXRhIS5tYXJrZXJzPy5mb3JFYWNoKChtYXJrZXI6IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLmluaXRpYWxNYXJrZXJJY29uc1tpbmRleF0gPSB7XG4gICAgICAgIHVybDogbWFya2VyLmljb24hLnVybCxcbiAgICAgICAgbGFiZWxPcmlnaW46IG1hcmtlci5pY29uIS5sYWJlbE9yaWdpbixcbiAgICAgICAgekluZGV4OiBtYXJrZXIub3B0aW9ucz8uekluZGV4ID8/IDEsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0b3JlSW5pdGlhbEljb25Gb3JSb3V0aW5nTWFya2VyKCk6IHZvaWQge1xuICAgIHRoaXMubWFwRGF0YS5yb3V0aW5nTWFya2Vycz8uZm9yRWFjaChcbiAgICAgIChtYXJrZXI6IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdGlhbEljb25zW2luZGV4XSA9IHtcbiAgICAgICAgICB1cmw6IG1hcmtlci5pY29uIS51cmwsXG4gICAgICAgICAgbGFiZWxPcmlnaW46IG1hcmtlci5pY29uIS5sYWJlbE9yaWdpbixcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uQ2x1c3Rlck1hcmtlckNsaWNrKG1hcmtlckl0ZW06IElNYXBNYXJrZXJzKTogdm9pZCB7XG4gICAgY29uc3QgaXNJbmZvV2luZG93T3BlbmVkID0gdGhpcy5jaGVja0luZm9XaW5kb3dQb3NpdGlvbihcbiAgICAgIG1hcmtlckl0ZW0sXG4gICAgICB0aGlzLm9wZW5lZEluZm9XaW5kb3dEYXRhXG4gICAgKTtcblxuICAgIGlmICghaXNJbmZvV2luZG93T3BlbmVkKSB0aGlzLmNsdXN0ZXJNYXJrZXJDbGljay5lbWl0KG1hcmtlckl0ZW0pO1xuICAgIGVsc2UgdGhpcy5jbG9zZUluZm9XaW5kb3coKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNYXJrZXJJbmZvV2luZG93KG1hcmtlcklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAobWFya2VySWQpIHRoaXMuZ2V0SW5mb1dpbmRvd0RhdGEuZW1pdChtYXJrZXJJZCk7XG4gIH1cblxuICBwdWJsaWMgb25NYXJrZXJDbGljayhtYXJrZXJJdGVtOiBJTWFwTWFya2Vycyk6IHZvaWQge1xuICAgIGNvbnN0IGlzSW5mb1dpbmRvd09wZW5lZCA9IHRoaXMuY2hlY2tJbmZvV2luZG93UG9zaXRpb24oXG4gICAgICBtYXJrZXJJdGVtLFxuICAgICAgdGhpcy5vcGVuZWRJbmZvV2luZG93RGF0YVxuICAgICk7XG5cbiAgICBpZiAoIWlzSW5mb1dpbmRvd09wZW5lZCkgdGhpcy5nZXRNYXJrZXJJbmZvV2luZG93KG1hcmtlckl0ZW0uZGF0YS5pZCk7XG4gICAgZWxzZSB0aGlzLmNsb3NlSW5mb1dpbmRvdygpO1xuICB9XG5cbiAgcHVibGljIHNldERpcmVjdGlvbnNPbk1hcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXBzPy5nb29nbGVNYXApIHtcbiAgICAgIHRoaXMuZGlyZWN0aW9uc1JlbmRlcmVycy5mb3JFYWNoKChyZW5kZXJlcikgPT5cbiAgICAgICAgcmVuZGVyZXIuc2V0TWFwKHRoaXMubWFwcz8uZ29vZ2xlTWFwISlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNhbGN1bGF0ZUFuZERpc3BsYXlSb3V0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXBEYXRhLnJvdXRlUGF0aHMpIHtcbiAgICAgIC8vIENsZWFyIHByZXZpb3VzIGRpcmVjdGlvbnMgcmVuZGVyZXJzXG4gICAgICB0aGlzLmRpcmVjdGlvbnNSZW5kZXJlcnMuZm9yRWFjaCgocmVuZGVyZXIpID0+IHJlbmRlcmVyLnNldE1hcChudWxsKSk7XG4gICAgICB0aGlzLmRpcmVjdGlvbnNSZW5kZXJlcnMgPSBbXTtcblxuICAgICAgdGhpcy5tYXBEYXRhLnJvdXRlUGF0aHMhLmZvckVhY2goKHJvdXRlOiBJTWFwUm91dGVQYXRoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3Q6IGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNSZXF1ZXN0ID0ge1xuICAgICAgICAgIG9yaWdpbjogcm91dGUucGF0aFswXSxcbiAgICAgICAgICBkZXN0aW5hdGlvbjogcm91dGUucGF0aFtyb3V0ZS5wYXRoLmxlbmd0aCAtIDFdLFxuICAgICAgICAgIHdheXBvaW50czogcm91dGUucGF0aFxuICAgICAgICAgICAgLnNsaWNlKDEsIHJvdXRlLnBhdGgubGVuZ3RoIC0gMSlcbiAgICAgICAgICAgIC5tYXAoKHBvc2l0aW9uKSA9PiAoeyBsb2NhdGlvbjogcG9zaXRpb24gfSkpLFxuICAgICAgICAgIHRyYXZlbE1vZGU6IGdvb2dsZS5tYXBzLlRyYXZlbE1vZGUuQklDWUNMSU5HLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uU2VydmljZS5yb3V0ZShyZXF1ZXN0LCAocmVzdWx0LCBzdGF0dXMpID0+IHtcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSBnb29nbGUubWFwcy5EaXJlY3Rpb25zU3RhdHVzLk9LICYmIHJlc3VsdD8ucm91dGVzWzBdKSB7XG4gICAgICAgICAgICBjb25zdCBkaXJlY3Rpb25zUmVuZGVyZXIgPSBuZXcgZ29vZ2xlLm1hcHMuRGlyZWN0aW9uc1JlbmRlcmVyKHtcbiAgICAgICAgICAgICAgc3VwcHJlc3NJbmZvV2luZG93czogdHJ1ZSxcbiAgICAgICAgICAgICAgc3VwcHJlc3NNYXJrZXJzOiB0cnVlLFxuICAgICAgICAgICAgICBwcmVzZXJ2ZVZpZXdwb3J0OiB0cnVlLFxuICAgICAgICAgICAgICBwb2x5bGluZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjogcm91dGUuc3Ryb2tlQ29sb3IgfHwgR29vZ2xlTWFwRW51bS5TVFJPS0VfQ09MT1IsXG4gICAgICAgICAgICAgICAgc3Ryb2tlT3BhY2l0eTpcbiAgICAgICAgICAgICAgICAgIHJvdXRlLnN0cm9rZU9wYWNpdHkgfHwgR29vZ2xlTWFwRW51bS5TVFJPS0VfT1BBQ0lUWSxcbiAgICAgICAgICAgICAgICBzdHJva2VXZWlnaHQ6IHJvdXRlLnN0cm9rZVdlaWdodCB8fCBHb29nbGVNYXBFbnVtLlNUUk9LRV9XRUlHSFQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGRpcmVjdGlvbnNSZW5kZXJlci5zZXREaXJlY3Rpb25zKHJlc3VsdCk7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbnNSZW5kZXJlcnMucHVzaChkaXJlY3Rpb25zUmVuZGVyZXIpO1xuICAgICAgICAgICAgdGhpcy5zZXREaXJlY3Rpb25zT25NYXAoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Sb3V0aW5nTWFya2VyQ2xpY2soXG4gICAgaTogbnVtYmVyLFxuICAgIGV2ZW50OiBnb29nbGUubWFwcy5NYXBNb3VzZUV2ZW50LFxuICAgIG1hcmtlcml0ZW06IElNYXBNYXJrZXJzXG4gICk6IHZvaWQge1xuICAgIC8vIGlmIChtYXJrZXJpdGVtPy5pbmZvV2luZG93Q29udGVudCkge1xuICAgIC8vICAgaWYgKFxuICAgIC8vICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dJbmRleFJvdXRpbmcgPT09IGkgJiZcbiAgICAvLyAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93Um91dGluZ1xuICAgIC8vICAgKSB7XG4gICAgLy8gICAgIGNvbnN0IGluZm9XaW5kb3cgPSB0aGlzLmluZm9XaW5kb3dzVmlld1JvdXRpbmcudG9BcnJheSgpW2ldO1xuICAgIC8vICAgICAvLyBDbG9zZSB0aGUgY3VycmVudGx5IG9wZW4gaW5mbyB3aW5kb3cgYW5kIHJlc2V0IHRoZSBpbmRleFxuICAgIC8vICAgICB0aGlzLm1hcERhdGEucm91dGluZ01hcmtlcnMhLm1hcCgoaXRlbTogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAvLyAgICAgICBpZiAoaW5kZXggPT09IGkpIHtcbiAgICAvLyAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAvLyAgICAgICAgICAgdXJsOiB0aGlzLmluaXRpYWxJY29uc1tpbmRleF0hLnVybCxcbiAgICAvLyAgICAgICAgICAgbGFiZWxPcmlnaW46IHRoaXMuaW5pdGlhbEljb25zW2luZGV4XSEubGFiZWxPcmlnaW4sXG4gICAgLy8gICAgICAgICB9O1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfSk7XG4gICAgLy8gICAgIGluZm9XaW5kb3cuY2xvc2UoKTtcbiAgICAvLyAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nID0gbnVsbDtcbiAgICAvLyAgIH0gZWxzZSB7XG4gICAgLy8gICAgIGNvbnN0IG1hcmtlckluZGV4ID0gdGhpcy5tYXJrZXJSb3V0aW5nLnRvQXJyYXkoKVtpXTtcbiAgICAvLyAgICAgY29uc3QgaW5mb1dpbmRvdyA9IHRoaXMuaW5mb1dpbmRvd3NWaWV3Um91dGluZy50b0FycmF5KClbaV07XG4gICAgLy8gICAgIGlmICh0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dSb3V0aW5nKSB7XG4gICAgLy8gICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93Um91dGluZy5jbG9zZSgpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGlmIChpbmZvV2luZG93KSB7XG4gICAgLy8gICAgICAgLy8gUmVzdG9yZSB0aGUgcHJldmlvdXMgaWNvbiBmb3IgdGhlIHByZXZpb3VzbHkgZm9jdXNlZCByb3V0aW5nIG1hcmtlclxuICAgIC8vICAgICAgIGlmIChcbiAgICAvLyAgICAgICAgIHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nICE9PSB1bmRlZmluZWQgJiZcbiAgICAvLyAgICAgICAgIHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nICE9PSBpXG4gICAgLy8gICAgICAgKSB7XG4gICAgLy8gICAgICAgICBjb25zdCBwcmV2aW91c0ZvY3VzZWRJdGVtID1cbiAgICAvLyAgICAgICAgICAgdGhpcy5tYXBEYXRhLnJvdXRpbmdNYXJrZXJzIVt0aGlzLmZvY3VzZWRJY29uUm91dGluZ107XG4gICAgLy8gICAgICAgICBpZiAocHJldmlvdXNGb2N1c2VkSXRlbSkge1xuICAgIC8vICAgICAgICAgICBwcmV2aW91c0ZvY3VzZWRJdGVtLmljb24gPSB7XG4gICAgLy8gICAgICAgICAgICAgdXJsOiB0aGlzLmluaXRpYWxJY29uc1t0aGlzLmZvY3VzZWRJY29uUm91dGluZ10udXJsLFxuICAgIC8vICAgICAgICAgICAgIGxhYmVsT3JpZ2luOlxuICAgIC8vICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsSWNvbnNbdGhpcy5mb2N1c2VkSWNvblJvdXRpbmddLmxhYmVsT3JpZ2luLFxuICAgIC8vICAgICAgICAgICB9O1xuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgICAvLyBVcGRhdGUgdGhlIGN1cnJlbnQgbWFya2VyXG4gICAgLy8gICAgICAgdGhpcy5tYXBEYXRhLnJvdXRpbmdNYXJrZXJzIS5tYXAoXG4gICAgLy8gICAgICAgICAoaXRlbTogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAvLyAgICAgICAgICAgaWYgKGluZGV4ID09PSBpKSB7XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5wcmV2aW91c0ljb25VcmxSb3V0aW5nID0gaXRlbS5pY29uID8gaXRlbS5pY29uLnVybCA6ICcnO1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nID0gaTtcbiAgICAvLyAgICAgICAgICAgICB0aGlzLnNob3dMYWJlbCA9IGZhbHNlO1xuICAgIC8vICAgICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAvLyAgICAgICAgICAgICAgIHVybDpcbiAgICAvLyAgICAgICAgICAgICAgICAgdGhpcy5tYXBEYXRhLmlzVW5pdFZpZXdTdG9wcyB8fCB0aGlzLm1hcERhdGEuaXNEcml2ZXJNaWxlc1xuICAgIC8vICAgICAgICAgICAgICAgICAgID8gaXRlbS5pY29uIS51cmxcbiAgICAvLyAgICAgICAgICAgICAgICAgICA6IE1hcFN2Z1JvdXRlcy5tYXJrZXJTdmdSb3V0ZSxcbiAgICAvLyAgICAgICAgICAgICB9O1xuICAgIC8vICAgICAgICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuc2hvd0xhYmVsID0gdHJ1ZTtcbiAgICAvLyAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgICk7XG4gICAgLy8gICAgICAgaW5mb1dpbmRvdy5vcGVuKG1hcmtlckluZGV4KTtcbiAgICAvLyAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dSb3V0aW5nID0gaW5mb1dpbmRvdztcbiAgICAvLyAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dJbmRleFJvdXRpbmcgPSBpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9XG4gICAgLy8gICB0aGlzLm1hcmtlckNsaWNrLmVtaXQobWFya2VyaXRlbSk7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgIHJldHVybjtcbiAgICAvLyB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5tYXBzLmdvb2dsZU1hcD8uYWRkTGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZUluZm9XaW5kb3coKTtcblxuICAgICAgdGhpcy5tYXBEYXRhLnJvdXRpbmdNYXJrZXJzPy5tYXAoKGl0ZW06IElNYXBNYXJrZXJzLCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGkgPT09IHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nKSB7XG4gICAgICAgICAgaXRlbS5pY29uID0ge1xuICAgICAgICAgICAgdXJsOiB0aGlzLmluaXRpYWxJY29uc1tpXS51cmwsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRNYXJrZXJzSWNvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5tYXBEYXRhLm1hcmtlcnM/Lm1hcCgobWFya2VyOiBJTWFwTWFya2VycywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubWFya2VyLFxuICAgICAgICBpY29uOiB7XG4gICAgICAgICAgLi4ubWFya2VyLmljb24sXG4gICAgICAgICAgc2NhbGVkU2l6ZTogbWFya2VyLmlzTGFyZ2VNYXJrZXJcbiAgICAgICAgICAgID8gTWFwT3B0aW9uc0NvbnN0YW50cy5sYXJnZU1hcmtlclNpemVcbiAgICAgICAgICAgIDogTWFwT3B0aW9uc0NvbnN0YW50cy5kZWZhdWx0TWFya2VyU2l6ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczogeyB6SW5kZXg6IGluZGV4ICsgMSB9LFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0Um91dGluZ01hcmtlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5tYXBEYXRhLnJvdXRpbmdNYXJrZXJzPy5mb3JFYWNoKFxuICAgICAgKG1hcmtlcjogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgbWFya2VyLmljb24gPSB7XG4gICAgICAgICAgdXJsOiBtYXJrZXIuaWNvbiEudXJsLFxuICAgICAgICAgIGxhYmVsT3JpZ2luOiBtYXJrZXIuaWNvbiEubGFiZWxPcmlnaW4sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1hcFJlYWR5KG1hcEluc3RhbmNlOiBnb29nbGUubWFwcy5NYXApOiB7XG4gICAgZmlsbENvbG9yPzogc3RyaW5nO1xuICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICAgIHN0cm9rZVdlaWdodD86IG51bWJlcjtcbiAgICBmaWxsT3BhY2l0eT86IG51bWJlcjtcbiAgfSB8IHZvaWQge1xuICAgIHRoaXMubWFwID0gbWFwSW5zdGFuY2U7XG5cbiAgICBpZiAodGhpcy5tYXBEYXRhLnN0YXRlQm91bmRhcmllc1VybCkge1xuICAgICAgY29uc3Qgc3RhdGVCb3VuZGFyaWVzVXJsID0gdGhpcy5tYXBEYXRhLnN0YXRlQm91bmRhcmllc1VybC51cmw7XG4gICAgICB0aGlzLm1hcHMuZ29vZ2xlTWFwPy5kYXRhLmxvYWRHZW9Kc29uKHN0YXRlQm91bmRhcmllc1VybCk7XG5cbiAgICAgIHRoaXMubWFwcy5nb29nbGVNYXA/LmRhdGEuc2V0U3R5bGUoKGZlYXR1cmUpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGVEZW5zaXR5ID0gZmVhdHVyZS5nZXRQcm9wZXJ0eSgnZGVuc2l0eScpO1xuICAgICAgICBjb25zdCB7IGZpbGxDb2xvciwgZmlsbE9wYWNpdHkgfSA9IE1hcEhlbHBlci5nZXRGaWxsQ29sb3JGb3JTdGF0ZShcbiAgICAgICAgICBzdGF0ZURlbnNpdHkgYXMgbnVtYmVyLFxuICAgICAgICAgIHRoaXMubWFwRGF0YS52aWV3IHx8ICcnXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZmlsbENvbG9yOiBmaWxsQ29sb3IsXG4gICAgICAgICAgc3Ryb2tlQ29sb3I6ICcjRUVFRUVFJyxcbiAgICAgICAgICBzdHJva2VXZWlnaHQ6IDAuNixcbiAgICAgICAgICBmaWxsT3BhY2l0eTogZmlsbE9wYWNpdHksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbmRCb3VuZHNDaGFuZ2VkRXZlbnQoKTtcbiAgICB0aGlzLnNldE1hcFN0eWxlcygpO1xuICAgIHRoaXMuZ2V0TWFwSWRsZUV2ZW50KG1hcEluc3RhbmNlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXBTdHlsZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFwRGF0YT8uZGFya01vZGUpXG4gICAgICB0aGlzLm1hcE9wdGlvbnMgPSB7XG4gICAgICAgIC4uLnRoaXMubWFwT3B0aW9ucyxcbiAgICAgICAgc3R5bGVzOiBNYXBDb25zdGFudHMuR09PR0xFX01BUF9EQVJLX1NUWUxFUyxcbiAgICAgIH07XG5cbiAgICBjb25zdCBhbGxNYXJrZXJzQ29tYmluZWQgPSBbXG4gICAgICAuLi4odGhpcy5tYXBEYXRhLnJvdXRpbmdNYXJrZXJzID8/IFtdKSxcbiAgICAgIC4uLih0aGlzLm1hcERhdGEuY2x1c3Rlck1hcmtlcnMgPz8gW10pLFxuICAgICAgLi4uKHRoaXMubWFwRGF0YS5tYXJrZXJzID8/IFtdKSxcbiAgICBdO1xuXG4gICAgaWYgKGFsbE1hcmtlcnNDb21iaW5lZD8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCBtYXBDZW50ZXJBbmRCb3VuZHMgPVxuICAgICAgICBNYXBIZWxwZXIuZ2V0TWFwQ2VudGVyQW5kWm9vbShhbGxNYXJrZXJzQ29tYmluZWQpO1xuXG4gICAgICB0aGlzLm1hcCEucGFuVG8obWFwQ2VudGVyQW5kQm91bmRzLm1hcENlbnRlcik7XG4gICAgICBpZiAobWFwQ2VudGVyQW5kQm91bmRzLmJvdW5kcylcbiAgICAgICAgdGhpcy5tYXA/LmZpdEJvdW5kcyhtYXBDZW50ZXJBbmRCb3VuZHMuYm91bmRzKTtcbiAgICAgIGlmIChtYXBDZW50ZXJBbmRCb3VuZHMubWFwWm9vbSlcbiAgICAgICAgdGhpcy5tYXA/LnNldFpvb20obWFwQ2VudGVyQW5kQm91bmRzLm1hcFpvb20pO1xuXG4gICAgICB0aGlzLmlzTWFwQ2VudGVyU2V0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TWFwSWRsZUV2ZW50KG1hcDogZ29vZ2xlLm1hcHMuTWFwKTogdm9pZCB7XG4gICAgbWFwLmFkZExpc3RlbmVyKCdpZGxlJywgKCkgPT4ge1xuICAgICAgdGhpcy5zZW5kQm91bmRzQ2hhbmdlZEV2ZW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VuZEJvdW5kc0NoYW5nZWRFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXApIHtcbiAgICAgIGNvbnN0IG1hcEJvdW5kcyA9IHRoaXMubWFwLmdldEJvdW5kcygpO1xuICAgICAgY29uc3QgbWFwWm9vbSA9IHRoaXMubWFwLmdldFpvb20oKTtcblxuICAgICAgaWYgKG1hcEJvdW5kcyAmJiBtYXBab29tKSB7XG4gICAgICAgIGNvbnN0IGJvdW5kc09iamVjdCA9IHsgYm91bmRzOiBtYXBCb3VuZHMsIHpvb206IG1hcFpvb20gfTtcbiAgICAgICAgdGhpcy5ib3VuZHNDaGFuZ2VkLmVtaXQoYm91bmRzT2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25DbHVzdGVyQmFja0J1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTZWxlY3RlZE1hcmtlckl0ZW0uZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmV3RGF0YShkYXRhOiBJQ2FNYXBQcm9wcyk6IElDYU1hcFByb3BzIHtcbiAgICBjb25zdCBuZXdNYXJrZXJzID0gZGF0YT8ubWFya2Vycz8ubWFwKChtYXJrZXI6IElNYXBNYXJrZXJzKSA9PiB7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkTWFya2VyID0gdGhpcy5jaGVja0luZm9XaW5kb3dQb3NpdGlvbihcbiAgICAgICAgbWFya2VyLFxuICAgICAgICB0aGlzLm9wZW5lZEluZm9XaW5kb3dEYXRhXG4gICAgICApO1xuXG4gICAgICBpZiAoaXNTZWxlY3RlZE1hcmtlcikge1xuICAgICAgICBjb25zdCBuZXdNYXJrZXJEYXRhID0ge1xuICAgICAgICAgIC4uLm1hcmtlcixcbiAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAuLi5tYXJrZXIuaWNvbixcbiAgICAgICAgICAgIHNjYWxlZFNpemU6IE1hcE9wdGlvbnNDb25zdGFudHMubGFyZ2VNYXJrZXJTaXplLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3B0aW9uczogeyB6SW5kZXg6IDk5OSB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXdNYXJrZXJEYXRhO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbWFya2VyO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRhdGEsXG4gICAgICBtYXJrZXJzOiBuZXdNYXJrZXJzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgb3Blbk1hcmtlckluZm9XaW5kb3cobWFya2VySXRlbTogSU1hcFNlbGVjdGVkTWFya2VyRGF0YSk6IHZvaWQge1xuICAgIGNvbnN0IGlzSW5mb1dpbmRvd09wZW5lZCA9IHRoaXMuY2hlY2tJbmZvV2luZG93UG9zaXRpb24oXG4gICAgICBtYXJrZXJJdGVtLFxuICAgICAgdGhpcy5vcGVuZWRJbmZvV2luZG93RGF0YVxuICAgICk7XG5cbiAgICBjb25zdCBpc0NsdXN0ZXJJdGVtQ2hhbmdlZCA9IHRoaXMuY2hlY2tDbHVzdGVyRGF0YUNoYW5nZXMoXG4gICAgICBtYXJrZXJJdGVtLFxuICAgICAgdGhpcy5vcGVuZWRJbmZvV2luZG93RGF0YVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5pbmZvV2luZG93c1ZpZXcgJiYgKCFpc0luZm9XaW5kb3dPcGVuZWQgfHwgaXNDbHVzdGVySXRlbUNoYW5nZWQpKSB7XG4gICAgICB0aGlzLm1hcERhdGEubWFya2VycyEubWFwKChpdGVtOiBJTWFwTWFya2VycywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBpc1NlbGVjdGVkTWFya2VyID0gdGhpcy5jaGVja0luZm9XaW5kb3dQb3NpdGlvbihpdGVtLCBtYXJrZXJJdGVtKTtcbiAgICAgICAgaWYgKGlzU2VsZWN0ZWRNYXJrZXIpIHtcbiAgICAgICAgICBpdGVtLmljb24gPSB7XG4gICAgICAgICAgICAuLi5pdGVtLmljb24sXG4gICAgICAgICAgICBzY2FsZWRTaXplOiBNYXBPcHRpb25zQ29uc3RhbnRzLmxhcmdlTWFya2VyU2l6ZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGl0ZW0ub3B0aW9ucyA9IHsgekluZGV4OiA5OTkgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtLmljb24gPSB7XG4gICAgICAgICAgICAuLi5pdGVtLmljb24sXG4gICAgICAgICAgICBzY2FsZWRTaXplOiBpdGVtLmlzTGFyZ2VNYXJrZXJcbiAgICAgICAgICAgICAgPyBNYXBPcHRpb25zQ29uc3RhbnRzLmxhcmdlTWFya2VyU2l6ZVxuICAgICAgICAgICAgICA6IE1hcE9wdGlvbnNDb25zdGFudHMuZGVmYXVsdE1hcmtlclNpemUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpdGVtLm9wdGlvbnMgPSB7IHpJbmRleDogaW5kZXggKyAxIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cgPSB0aGlzLmluZm9XaW5kb3dzVmlldztcbiAgICAgIHRoaXMub3BlbmVkSW5mb1dpbmRvd0RhdGEgPSBtYXJrZXJJdGVtO1xuXG4gICAgICBpZiAoIWlzSW5mb1dpbmRvd09wZW5lZCkge1xuICAgICAgICB0aGlzLm1hcCEucGFuVG8obWFya2VySXRlbS5wb3NpdGlvbik7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbmZvV2luZG93T3B0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuaW5mb1dpbmRvd09wdGlvbnMsXG4gICAgICAgICAgICBwb3NpdGlvbjogbWFya2VySXRlbS5wb3NpdGlvbixcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuaW5mb1dpbmRvd3NWaWV3Lm9wZW4oKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNoZWNrSW5mb1dpbmRvd1Bvc2l0aW9uKFxuICAgIG1hcmtlckl0ZW06IElNYXBNYXJrZXJzLFxuICAgIG1hcmtlckl0ZW0yPzogSU1hcE1hcmtlcnMgfCBudWxsXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBtYXJrZXJJdGVtLnBvc2l0aW9uLmxhdCA9PT0gbWFya2VySXRlbTI/LnBvc2l0aW9uPy5sYXQgJiZcbiAgICAgIG1hcmtlckl0ZW0ucG9zaXRpb24ubG5nID09PSBtYXJrZXJJdGVtMj8ucG9zaXRpb24/LmxuZ1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VJbmZvV2luZG93KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRNYXJrZXJzSWNvbnMoKTtcblxuICAgIHRoaXMub3BlbmVkSW5mb1dpbmRvd0RhdGEgPSBudWxsO1xuICAgIHRoaXMuY3VycmVudGx5T3BlbldpbmRvdyA9IG51bGw7XG4gICAgdGhpcy5pbmZvV2luZG93c1ZpZXcuY2xvc2UoKTtcbiAgICB0aGlzLnJlc2V0U2VsZWN0ZWRNYXJrZXJJdGVtLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVNYXBEYXRhKG5ld0RhdGE6IElDYU1hcFByb3BzKTogdm9pZCB7XG4gICAgdGhpcy5tYXBEYXRhID0gdGhpcy5nZXROZXdEYXRhKG5ld0RhdGEpO1xuXG4gICAgaWYgKHRoaXMubWFwRGF0YS5zZWxlY3RlZE1hcmtlckRhdGEpXG4gICAgICB0aGlzLm9wZW5NYXJrZXJJbmZvV2luZG93KHRoaXMubWFwRGF0YS5zZWxlY3RlZE1hcmtlckRhdGEpO1xuICAgIGVsc2UgaWYgKHRoaXMuY3VycmVudGx5T3BlbldpbmRvdykgdGhpcy5jbG9zZUluZm9XaW5kb3coKTtcblxuICAgIGlmIChuZXdEYXRhICYmICF0aGlzLmlzTWFwQ2VudGVyU2V0ICYmIHRoaXMubWFwKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG5ld0RhdGEubWFya2Vycz8ubGVuZ3RoIHx8XG4gICAgICAgIG5ld0RhdGEuY2x1c3Rlck1hcmtlcnM/Lmxlbmd0aCB8fFxuICAgICAgICBuZXdEYXRhLnJvdXRpbmdNYXJrZXJzPy5sZW5ndGhcbiAgICAgIClcbiAgICAgICAgdGhpcy5zZXRNYXBTdHlsZXMoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsdXN0ZXJMaXN0U2Nyb2xsVG9FbmQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3BlbmVkSW5mb1dpbmRvd0RhdGEpXG4gICAgICB0aGlzLmNsdXN0ZXJMaXN0U2Nyb2xsRXZlbnQuZW1pdCh0aGlzLm9wZW5lZEluZm9XaW5kb3dEYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0NsdXN0ZXJEYXRhQ2hhbmdlcyhcbiAgICBuZXdEYXRhOiBJTWFwTWFya2VycyxcbiAgICBwcmV2aW91c0RhdGE/OiBJTWFwTWFya2VycyB8IG51bGxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5ld0RhdGEuaW5mb1dpbmRvd0NvbnRlbnQ/LmNsdXN0ZXJEYXRhXG4gICAgICA/IG5ld0RhdGEuaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhPy5kYXRhPy5pZCAhPT1cbiAgICAgICAgICBwcmV2aW91c0RhdGE/LmluZm9XaW5kb3dDb250ZW50Py5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YT8uZGF0YT8uaWQgfHxcbiAgICAgICAgICBuZXdEYXRhLmluZm9XaW5kb3dDb250ZW50Py5jbHVzdGVyRGF0YT8ubGVuZ3RoICE9PVxuICAgICAgICAgICAgcHJldmlvdXNEYXRhPy5pbmZvV2luZG93Q29udGVudD8uY2x1c3RlckRhdGE/Lmxlbmd0aFxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1hcmtlck1vdXNlb3ZlcihtYXJrZXJJdGVtOiBJTWFwTWFya2Vycyk6IHZvaWQge1xuICAgIGlmIChtYXJrZXJJdGVtPy5sYWJlbD8uaXNTaG93T25Ib3ZlcilcbiAgICAgIHRoaXMuaG92ZXJlZE1hcmtlcklkID0gbWFya2VySXRlbT8uZGF0YT8uaWQ7XG4gIH1cblxuICBwdWJsaWMgb25NYXJrZXJNb3VzZW91dChtYXJrZXJJdGVtOiBJTWFwTWFya2Vycyk6IHZvaWQge1xuICAgIGlmIChtYXJrZXJJdGVtPy5sYWJlbD8uaXNTaG93T25Ib3ZlcikgdGhpcy5ob3ZlcmVkTWFya2VySWQgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIG9uWm9vbUNoYW5nZShpc01pbnVzQ2xpY2s/OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFpvb21MZXZlbCA9IHRoaXMubWFwPy5nZXRab29tKCk7XG5cbiAgICBpZiAoY3VycmVudFpvb21MZXZlbCkge1xuICAgICAgY29uc3QgbmV4dFpvb21MZXZlbCA9IGlzTWludXNDbGlja1xuICAgICAgICA/IGN1cnJlbnRab29tTGV2ZWwgLSAxXG4gICAgICAgIDogY3VycmVudFpvb21MZXZlbCArIDE7XG4gICAgICB0aGlzLm1hcD8uc2V0Wm9vbShuZXh0Wm9vbUxldmVsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25PcGVuSW5NYXAoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuSW5NYXBFdmVudC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIG1hcmtlcjogSU1hcE1hcmtlcnMpOiBudW1iZXIge1xuICAgIHJldHVybiBtYXJrZXIuZGF0YS5pZDtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5UG9zaXRpb24oaW5kZXg6IG51bWJlciwgbWFya2VyOiBJTWFwTWFya2Vycyk6IG51bWJlciB7XG4gICAgcmV0dXJuIG1hcmtlci5wb3NpdGlvbi5sYXQgKyBtYXJrZXIucG9zaXRpb24ubG5nO1xuICB9XG5cbiAgcHVibGljIGlkZW50aXR5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGlyZWN0aW9uc1JlbmRlcmVycy5mb3JFYWNoKChyZW5kZXJlcikgPT4gcmVuZGVyZXIuc2V0TWFwKG51bGwpKTtcbiAgfVxufVxuIiwiPGdvb2dsZS1tYXBcbiAgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gIFtjbGFzcy5kYXJrLW1vZGUtbWFwXT1cIm1hcERhdGEuZGFya01vZGVcIlxuICBoZWlnaHQ9XCIxMDAlXCJcbiAgd2lkdGg9XCIxMDAlXCJcbiAgW3pvb21dPVwibWFwWm9vbVwiXG4gIFtjZW50ZXJdPVwibWFwQ2VudGVyXCJcbiAgW29wdGlvbnNdPVwibWFwT3B0aW9uc1wiXG4gIChtYXBJbml0aWFsaXplZCk9XCJvbk1hcFJlYWR5KCRldmVudClcIlxuPlxuICA8bWFwLW1hcmtlclxuICAgICNtYXJrZXI9XCJtYXBNYXJrZXJcIlxuICAgICpuZ0Zvcj1cIlxuICAgICAgbGV0IG1hcmtlcml0ZW0gb2YgbWFwRGF0YS5tYXJrZXJzO1xuICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgIHRyYWNrQnk6IHRyYWNrQnlJZFxuICAgIFwiXG4gICAgW3Bvc2l0aW9uXT1cIm1hcmtlcml0ZW0ucG9zaXRpb25cIlxuICAgIFtpY29uXT1cIm1hcmtlcml0ZW0uaWNvbiFcIlxuICAgIFtsYWJlbF09XCJcbiAgICAgIChvcGVuZWRJbmZvV2luZG93RGF0YT8ucG9zaXRpb24/LmxhdCA9PT0gbWFya2VyaXRlbT8ucG9zaXRpb24/LmxhdCAmJlxuICAgICAgICBvcGVuZWRJbmZvV2luZG93RGF0YT8ucG9zaXRpb24/LmxuZyA9PT0gbWFya2VyaXRlbT8ucG9zaXRpb24/LmxuZykgfHxcbiAgICAgIChtYXJrZXJpdGVtLmxhYmVsPy5pc1Nob3dPbkhvdmVyICYmXG4gICAgICAgIGhvdmVyZWRNYXJrZXJJZCAhPT0gbWFya2VyaXRlbS5kYXRhLmlkKVxuICAgICAgICA/ICcnXG4gICAgICAgIDogbWFya2VyaXRlbS5sYWJlbCFcbiAgICBcIlxuICAgIFtvcHRpb25zXT1cIm1hcmtlcml0ZW0ub3B0aW9ucyFcIlxuICAgIChtYXBDbGljayk9XCJvbk1hcmtlckNsaWNrKG1hcmtlcml0ZW0pXCJcbiAgICAobWFwTW91c2VvdmVyKT1cIm9uTWFya2VyTW91c2VvdmVyKG1hcmtlcml0ZW0pXCJcbiAgICAobWFwTW91c2VvdXQpPVwib25NYXJrZXJNb3VzZW91dChtYXJrZXJpdGVtKVwiXG4gID5cbiAgPC9tYXAtbWFya2VyPlxuXG4gIDxtYXAtaW5mby13aW5kb3dcbiAgICAjaW5mb1dpbmRvd3NWaWV3PVwibWFwSW5mb1dpbmRvd1wiXG4gICAgW29wdGlvbnNdPVwiaW5mb1dpbmRvd09wdGlvbnNcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wZW5lZEluZm9XaW5kb3dEYXRhICE9PSBudWxsXCI+XG4gICAgICA8YXBwLWNhLW1hcC1kcm9wZG93blxuICAgICAgICBbaW5mb1dpbmRvd0NvbnRlbnRdPVwib3BlbmVkSW5mb1dpbmRvd0RhdGEuaW5mb1dpbmRvd0NvbnRlbnRcIlxuICAgICAgICBbbWFya2VyRGF0YV09XCJvcGVuZWRJbmZvV2luZG93RGF0YS5kYXRhXCJcbiAgICAgICAgKG9uQ2x1c3Rlckl0ZW1DbGljayk9XCJnZXRNYXJrZXJJbmZvV2luZG93KCRldmVudClcIlxuICAgICAgICAob25DbHVzdGVyTGlzdFNjcm9sbFRvRW5kKT1cIm9uQ2x1c3Rlckxpc3RTY3JvbGxUb0VuZCgpXCJcbiAgICAgICAgKG9uQmFja0J1dHRvbkNsaWNrKT1cIm9uQ2x1c3RlckJhY2tCdXR0b25DbGljaygpXCJcbiAgICAgID48L2FwcC1jYS1tYXAtZHJvcGRvd24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWFwLWluZm8td2luZG93PlxuXG4gIDxtYXAtbWFya2VyXG4gICAgI21hcmtlckNsdXN0ZXI9XCJtYXBNYXJrZXJcIlxuICAgICpuZ0Zvcj1cIlxuICAgICAgbGV0IG1hcmtlciBvZiBtYXBEYXRhLmNsdXN0ZXJNYXJrZXJzO1xuICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgIHRyYWNrQnk6IHRyYWNrQnlQb3NpdGlvblxuICAgIFwiXG4gICAgW3Bvc2l0aW9uXT1cIm1hcmtlci5wb3NpdGlvblwiXG4gICAgW2ljb25dPVwibWFya2VyLmljb25cIlxuICAgIChtYXBDbGljayk9XCJvbkNsdXN0ZXJNYXJrZXJDbGljayhtYXJrZXIpXCJcbiAgPlxuICA8L21hcC1tYXJrZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQXJlYUZpbHRlckFjdGl2ZVwiPlxuICAgIDxtYXAtY2lyY2xlXG4gICAgICBbb3B0aW9uc109XCJhcmVhRmlsdGVyRGF0YS5vcHRpb25zXCJcbiAgICAgIFtjZW50ZXJdPVwiYXJlYUZpbHRlckRhdGEuY2VudGVyXCJcbiAgICAgIFtyYWRpdXNdPVwiYXJlYUZpbHRlckRhdGEucmFkaXVzXCJcbiAgICA+PC9tYXAtY2lyY2xlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bWFwLW1hcmtlclxuICAgICNtYXJrZXJSb3V0aW5nPVwibWFwTWFya2VyXCJcbiAgICAqbmdGb3I9XCJcbiAgICAgIGxldCBtYXJrZXJpdGVtIG9mIG1hcERhdGEucm91dGluZ01hcmtlcnM7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuICAgICAgdHJhY2tCeTogaWRlbnRpdHlcbiAgICBcIlxuICAgIFtwb3NpdGlvbl09XCJtYXJrZXJpdGVtLnBvc2l0aW9uXCJcbiAgICBbaWNvbl09XCJtYXJrZXJpdGVtLmljb24hXCJcbiAgICBbbGFiZWxdPVwiZm9jdXNlZEljb25Sb3V0aW5nICE9PSBpID8gbWFya2VyaXRlbS5sYWJlbCEgOiAnJ1wiXG4gICAgW29wdGlvbnNdPVwibWFya2VyaXRlbS5vcHRpb25zIVwiXG4gICAgKG1hcENsaWNrKT1cIm9uUm91dGluZ01hcmtlckNsaWNrKGksICRldmVudCwgbWFya2VyaXRlbSlcIlxuICA+XG4gICAgPG1hcC1pbmZvLXdpbmRvdyAjaW5mb1dpbmRvd3NWaWV3Um91dGluZz1cIm1hcEluZm9XaW5kb3dcIj5cbiAgICAgIDxhcHAtY2EtbWFwLWRyb3Bkb3duPjwvYXBwLWNhLW1hcC1kcm9wZG93bj5cbiAgICA8L21hcC1pbmZvLXdpbmRvdz5cbiAgPC9tYXAtbWFya2VyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtYXBEYXRhLmlzT3BlbkluTWFwU2hvd25cIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm9wZW4taW4tbWFwLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgbmdiVG9vbHRpcFxuICAgICAgbWFpbkNhVG9vbHRpcD1cIk9wZW4gaW4gTWFwXCJcbiAgICAgIHRvb2x0aXBCYWNrZ3JvdW5kPVwiIzQyNDI0MlwiXG4gICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAoY2xpY2spPVwib25PcGVuSW5NYXAoKVwiXG4gICAgPlxuICAgICAgPHN2Zy1pY29uXG4gICAgICAgIGNsYXNzPVwiZC1mbGV4XCJcbiAgICAgICAgc3JjPVwiYXNzZXRzL2NhLWNvbXBvbmVudHMvc3ZnL2NvbW1vbi9pY19sb2NhdGlvbl9tYXAuc3ZnXCJcbiAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTgsICdoZWlnaHQucHgnOiAxOCB9XCJcbiAgICAgID48L3N2Zy1pY29uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibWFwRGF0YS5pc1pvb21TaG93blwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibWFwLXpvb20tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1lbmQgZ2FwLTFcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZmxleC1jb2x1bW4nOiAhbWFwRGF0YS5pc1ZlcnRpY2FsWm9vbSxcbiAgICAgICAgJ3ZlcnRpY2FsLXpvb20tYnV0dG9ucyc6IG1hcERhdGEuaXNWZXJ0aWNhbFpvb21cbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXAtem9vbS1idXR0b25zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBbY2xhc3MuZmxleC1jb2x1bW5dPVwibWFwRGF0YS5pc1ZlcnRpY2FsWm9vbVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ6b29tLWJ1dHRvbi1jb250YWluZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtMVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uWm9vbUNoYW5nZSh0cnVlKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4XCJcbiAgICAgICAgICAgIHNyYz1cImFzc2V0cy9jYS1jb21wb25lbnRzL3N2Zy9wb3B1cC9NaW51cy5zdmdcIlxuICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTQsICdoZWlnaHQucHgnOiAxNCB9XCJcbiAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInpvb20tYnV0dG9uLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC0xXCJcbiAgICAgICAgICAoY2xpY2spPVwib25ab29tQ2hhbmdlKGZhbHNlKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4XCJcbiAgICAgICAgICAgIHNyYz1cImFzc2V0cy9jYS1jb21wb25lbnRzL3N2Zy9jb21tb24vaWNfcGx1cy5zdmdcIlxuICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTQsICdoZWlnaHQucHgnOiAxNCB9XCJcbiAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXAtem9vbS1yYW5nZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1saW5lXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZS10ZXh0IGNhLWZvbnQtbWVkaXVtXCI+NTAgbWk8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJhbmdlLWxpbmVcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZ29vZ2xlLW1hcD5cbiJdfQ==
474
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC9jYS1tYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwL2NhLW1hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FHZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELGFBQWE7QUFDYixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixRQUFRO0FBQ1IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBYWhFLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFLL0QsWUFBWTtBQUNaLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFvQjVELE1BQU0s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QUU7Z0JBQ2IsZUFBZTtzQkFBeEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHb29nbGVNYXAsXG4gIEdvb2dsZU1hcHNNb2R1bGUsXG4gIE1hcEluZm9XaW5kb3csXG4gIE1hcE1hcmtlcixcbiAgTWFwQ2lyY2xlLFxufSBmcm9tICdAYW5ndWxhci9nb29nbGUtbWFwcyc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuaW1wb3J0IHsgTmdiVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuLy8gQ29tcG9uZW50c1xuaW1wb3J0IHsgQ2FNYXBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2NhLW1hcC1kcm9wZG93bi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENhQXBwVG9vbHRpcFYyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtYXBwLXRvb2x0aXAtdjIvY2EtYXBwLXRvb2x0aXAtdjIuY29tcG9uZW50JztcblxuLy8gRW51bXNcbmltcG9ydCB7IEdvb2dsZU1hcEVudW0gfSBmcm9tICcuLi9jYS1tYXAvZW51bXMvZ29vZ2xlLW1hcC5lbnVtJztcblxuLy8gTW9kZWxzXG5pbXBvcnQge1xuICBJTWFwTWFya2VycyxcbiAgSU1hcFJvdXRlUGF0aCxcbiAgSUNhTWFwUHJvcHMsXG4gIElNYXBPcHRpb25zLFxuICBJUm91dGVQYXRoLFxuICBJTWFwQm91bmRzWm9vbSxcbiAgSU1hcFNlbGVjdGVkTWFya2VyRGF0YSxcbn0gZnJvbSAnLi4vY2EtbWFwL21vZGVscy9tYXAubW9kZWwnO1xuXG4vLyBIZWxwZXJzXG5pbXBvcnQgeyBNYXBIZWxwZXIgfSBmcm9tICcuLi9jYS1tYXAvdXRpbHMvaGVscGVycy9tYXAuaGVscGVyJztcblxuLy8gU3ZnLXJvdXRlc1xuaW1wb3J0IHsgTWFwU3ZnUm91dGVzIH0gZnJvbSAnLi91dGlscy9zdmctcm91dGVzJztcblxuLy8gQ29uc3RhbnRzXG5pbXBvcnQge1xuICBNYXBJbmZvV2luZG93T3B0aW9uc0NvbnN0YW50cyxcbiAgTWFwT3B0aW9uc0NvbnN0YW50cyxcbn0gZnJvbSAnLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWFwQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL21hcC5jb25zdGFudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYS1tYXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2EtbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtbWFwLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICAvLyBNb2R1bGVzXG4gICAgR29vZ2xlTWFwc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgTmdiVG9vbHRpcE1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBDYU1hcERyb3Bkb3duQ29tcG9uZW50LFxuICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBDYU1hcENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG4gIEBJbnB1dCgpIHNldCBkYXRhKHZhbHVlczogSUNhTWFwUHJvcHMpIHtcbiAgICB0aGlzLmhhbmRsZU1hcERhdGEodmFsdWVzKTtcbiAgfVxuICBAT3V0cHV0KCkgcmVzZXRTZWxlY3RlZE1hcmtlckl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBjbHVzdGVyTWFya2VyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPElNYXBNYXJrZXJzPigpO1xuICBAT3V0cHV0KCkgY2x1c3Rlckxpc3RTY3JvbGxFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8SU1hcE1hcmtlcnM+KCk7XG4gIEBPdXRwdXQoKSBnZXRJbmZvV2luZG93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgYm91bmRzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SU1hcEJvdW5kc1pvb20+KCk7XG4gIEBPdXRwdXQoKSBvcGVuSW5NYXBFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZChHb29nbGVNYXAsIHsgc3RhdGljOiBmYWxzZSB9KSBtYXBzITogR29vZ2xlTWFwO1xuICBAVmlld0NoaWxkKE1hcEluZm9XaW5kb3cpIGluZm9XaW5kb3dzVmlldyE6IE1hcEluZm9XaW5kb3c7XG4gIHB1YmxpYyBjdXJyZW50bHlPcGVuV2luZG93ITogTWFwSW5mb1dpbmRvdyB8IG51bGw7XG4gIHB1YmxpYyBjdXJyZW50bHlPcGVuV2luZG93Um91dGluZyE6IE1hcEluZm9XaW5kb3cgfCBudWxsO1xuICBwdWJsaWMgcHJldmlvdXNJY29uVXJsITogc3RyaW5nO1xuICBwdWJsaWMgcHJldmlvdXNJY29uVXJsUm91dGluZyE6IHN0cmluZztcbiAgcHVibGljIGZvY3VzZWRJY29uUm91dGluZyE6IG51bWJlcjtcbiAgcHJpdmF0ZSBkaXJlY3Rpb25TZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNTZXJ2aWNlKCk7XG4gIHB1YmxpYyBkaXJlY3Rpb25zUmVuZGVyZXJzOiBnb29nbGUubWFwcy5EaXJlY3Rpb25zUmVuZGVyZXJbXSA9IFtdO1xuICBwdWJsaWMgaW5pdGlhbEljb25zOiB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgbGFiZWxPcmlnaW4/OiBnb29nbGUubWFwcy5Qb2ludDtcbiAgfVtdID0gW107XG4gIHB1YmxpYyBpbml0aWFsTWFya2VySWNvbnM6IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBsYWJlbE9yaWdpbj86IGdvb2dsZS5tYXBzLlBvaW50O1xuICAgIHpJbmRleD86IG51bWJlcjtcbiAgfVtdID0gW107XG4gIHB1YmxpYyBpbmZvV2luZG93T3B0aW9uczogZ29vZ2xlLm1hcHMuSW5mb1dpbmRvd09wdGlvbnMgPVxuICAgIE1hcEluZm9XaW5kb3dPcHRpb25zQ29uc3RhbnRzLm1hcEluZm9XaW5kb3dPcHRpb25zO1xuICBwdWJsaWMgbWFwT3B0aW9uczogSU1hcE9wdGlvbnMgPSBNYXBPcHRpb25zQ29uc3RhbnRzLmRlZmF1bHRNYXBPcHRpb25zO1xuICBwdWJsaWMgbWFwWm9vbTogbnVtYmVyID0gTWFwT3B0aW9uc0NvbnN0YW50cy5kZWZhdWx0TWFwWm9vbTtcbiAgcHVibGljIG1hcENlbnRlcjogSVJvdXRlUGF0aCA9IE1hcE9wdGlvbnNDb25zdGFudHMuZGVmYXVsdE1hcENlbnRlcjtcbiAgcHVibGljIG1hcDogZ29vZ2xlLm1hcHMuTWFwIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBpc01hcENlbnRlclNldDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY2x1c3Rlck1hcmtlcnNEYXRhOiBJTWFwTWFya2Vyc1tdID0gW107XG4gIHB1YmxpYyBtYXJrZXJzRGF0YTogSU1hcE1hcmtlcnNbXSA9IFtdO1xuICBwdWJsaWMgbWFwRGF0YTogSUNhTWFwUHJvcHMgPSB7fTtcbiAgcHVibGljIG9wZW5lZEluZm9XaW5kb3dEYXRhOiBJTWFwTWFya2VycyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgYXJlYUZpbHRlckRhdGEgPSBNYXBPcHRpb25zQ29uc3RhbnRzLmFyZWFGaWx0ZXJEYXRhO1xuICBwdWJsaWMgaXNBcmVhRmlsdGVyQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBob3ZlcmVkTWFya2VySWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3RvcmVJbml0aWFsSWNvbkZvck1hcmtlcigpO1xuICAgIHRoaXMuc3RvcmVJbml0aWFsSWNvbkZvclJvdXRpbmdNYXJrZXIoKTtcbiAgICAvLyBSZXNldCBhbGwgaWNvbnMgdG8gdGhlaXIgaW5pdGlhbCBzdGF0ZSBvbiBwYWdlIGxvYWRcbiAgICB0aGlzLnJlc2V0TWFya2Vyc0ljb25zKCk7XG4gICAgdGhpcy5yZXNldFJvdXRpbmdNYXJrZXJzKCk7XG4gICAgLy9EaXNwbGF5IHJvdXRlcyBmb3Igcm91dGluZ01hcmtlcnNcbiAgICB0aGlzLmNhbGN1bGF0ZUFuZERpc3BsYXlSb3V0ZSgpO1xuICB9XG5cbiAgcHVibGljIHN0b3JlSW5pdGlhbEljb25Gb3JNYXJrZXIoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsTWFya2VySWNvbnMgPSBbXTtcblxuICAgIHRoaXMubWFwRGF0YSEubWFya2Vycz8uZm9yRWFjaCgobWFya2VyOiBJTWFwTWFya2VycywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy5pbml0aWFsTWFya2VySWNvbnNbaW5kZXhdID0ge1xuICAgICAgICB1cmw6IG1hcmtlci5pY29uIS51cmwsXG4gICAgICAgIGxhYmVsT3JpZ2luOiBtYXJrZXIuaWNvbiEubGFiZWxPcmlnaW4sXG4gICAgICAgIHpJbmRleDogbWFya2VyLm9wdGlvbnM/LnpJbmRleCA/PyAxLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9yZUluaXRpYWxJY29uRm9yUm91dGluZ01hcmtlcigpOiB2b2lkIHtcbiAgICB0aGlzLm1hcERhdGEucm91dGluZ01hcmtlcnM/LmZvckVhY2goXG4gICAgICAobWFya2VyOiBJTWFwTWFya2VycywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICB0aGlzLmluaXRpYWxJY29uc1tpbmRleF0gPSB7XG4gICAgICAgICAgdXJsOiBtYXJrZXIuaWNvbiEudXJsLFxuICAgICAgICAgIGxhYmVsT3JpZ2luOiBtYXJrZXIuaWNvbiEubGFiZWxPcmlnaW4sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsdXN0ZXJNYXJrZXJDbGljayhtYXJrZXJJdGVtOiBJTWFwTWFya2Vycyk6IHZvaWQge1xuICAgIGNvbnN0IGlzSW5mb1dpbmRvd09wZW5lZCA9IHRoaXMuY2hlY2tJbmZvV2luZG93UG9zaXRpb24oXG4gICAgICBtYXJrZXJJdGVtLFxuICAgICAgdGhpcy5vcGVuZWRJbmZvV2luZG93RGF0YVxuICAgICk7XG5cbiAgICBpZiAoIWlzSW5mb1dpbmRvd09wZW5lZCkgdGhpcy5jbHVzdGVyTWFya2VyQ2xpY2suZW1pdChtYXJrZXJJdGVtKTtcbiAgICBlbHNlIHRoaXMuY2xvc2VJbmZvV2luZG93KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWFya2VySW5mb1dpbmRvdyhtYXJrZXJJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKG1hcmtlcklkKSB0aGlzLmdldEluZm9XaW5kb3dEYXRhLmVtaXQobWFya2VySWQpO1xuICB9XG5cbiAgcHVibGljIG9uTWFya2VyQ2xpY2sobWFya2VySXRlbTogSU1hcE1hcmtlcnMpOiB2b2lkIHtcbiAgICBjb25zdCBpc0luZm9XaW5kb3dPcGVuZWQgPSB0aGlzLmNoZWNrSW5mb1dpbmRvd1Bvc2l0aW9uKFxuICAgICAgbWFya2VySXRlbSxcbiAgICAgIHRoaXMub3BlbmVkSW5mb1dpbmRvd0RhdGFcbiAgICApO1xuXG4gICAgaWYgKCFpc0luZm9XaW5kb3dPcGVuZWQpIHRoaXMuZ2V0TWFya2VySW5mb1dpbmRvdyhtYXJrZXJJdGVtLmRhdGEuaWQpO1xuICAgIGVsc2UgdGhpcy5jbG9zZUluZm9XaW5kb3coKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXJlY3Rpb25zT25NYXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFwcz8uZ29vZ2xlTWFwKSB7XG4gICAgICB0aGlzLmRpcmVjdGlvbnNSZW5kZXJlcnMuZm9yRWFjaCgocmVuZGVyZXIpID0+XG4gICAgICAgIHJlbmRlcmVyLnNldE1hcCh0aGlzLm1hcHM/Lmdvb2dsZU1hcCEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjYWxjdWxhdGVBbmREaXNwbGF5Um91dGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFwRGF0YS5yb3V0ZVBhdGhzKSB7XG4gICAgICAvLyBDbGVhciBwcmV2aW91cyBkaXJlY3Rpb25zIHJlbmRlcmVyc1xuICAgICAgdGhpcy5kaXJlY3Rpb25zUmVuZGVyZXJzLmZvckVhY2goKHJlbmRlcmVyKSA9PiByZW5kZXJlci5zZXRNYXAobnVsbCkpO1xuICAgICAgdGhpcy5kaXJlY3Rpb25zUmVuZGVyZXJzID0gW107XG5cbiAgICAgIHRoaXMubWFwRGF0YS5yb3V0ZVBhdGhzIS5mb3JFYWNoKChyb3V0ZTogSU1hcFJvdXRlUGF0aCkgPT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0OiBnb29nbGUubWFwcy5EaXJlY3Rpb25zUmVxdWVzdCA9IHtcbiAgICAgICAgICBvcmlnaW46IHJvdXRlLnBhdGhbMF0sXG4gICAgICAgICAgZGVzdGluYXRpb246IHJvdXRlLnBhdGhbcm91dGUucGF0aC5sZW5ndGggLSAxXSxcbiAgICAgICAgICB3YXlwb2ludHM6IHJvdXRlLnBhdGhcbiAgICAgICAgICAgIC5zbGljZSgxLCByb3V0ZS5wYXRoLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAubWFwKChwb3NpdGlvbikgPT4gKHsgbG9jYXRpb246IHBvc2l0aW9uIH0pKSxcbiAgICAgICAgICB0cmF2ZWxNb2RlOiBnb29nbGUubWFwcy5UcmF2ZWxNb2RlLkJJQ1lDTElORyxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmRpcmVjdGlvblNlcnZpY2Uucm91dGUocmVxdWVzdCwgKHJlc3VsdCwgc3RhdHVzKSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gZ29vZ2xlLm1hcHMuRGlyZWN0aW9uc1N0YXR1cy5PSyAmJiByZXN1bHQ/LnJvdXRlc1swXSkge1xuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uc1JlbmRlcmVyID0gbmV3IGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNSZW5kZXJlcih7XG4gICAgICAgICAgICAgIHN1cHByZXNzSW5mb1dpbmRvd3M6IHRydWUsXG4gICAgICAgICAgICAgIHN1cHByZXNzTWFya2VyczogdHJ1ZSxcbiAgICAgICAgICAgICAgcHJlc2VydmVWaWV3cG9ydDogdHJ1ZSxcbiAgICAgICAgICAgICAgcG9seWxpbmVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlQ29sb3I6IHJvdXRlLnN0cm9rZUNvbG9yIHx8IEdvb2dsZU1hcEVudW0uU1RST0tFX0NPTE9SLFxuICAgICAgICAgICAgICAgIHN0cm9rZU9wYWNpdHk6ICFyb3V0ZS5pc0Rhc2hlZFxuICAgICAgICAgICAgICAgICAgPyByb3V0ZS5zdHJva2VPcGFjaXR5IHx8IEdvb2dsZU1hcEVudW0uU1RST0tFX09QQUNJVFlcbiAgICAgICAgICAgICAgICAgIDogMCxcbiAgICAgICAgICAgICAgICBzdHJva2VXZWlnaHQ6IHJvdXRlLnN0cm9rZVdlaWdodCB8fCBHb29nbGVNYXBFbnVtLlNUUk9LRV9XRUlHSFQsXG4gICAgICAgICAgICAgICAgaWNvbnM6IHJvdXRlLmlzRGFzaGVkXG4gICAgICAgICAgICAgICAgICA/IHJvdXRlLmRhc2hlZExpbmVTdHlsZSA/P1xuICAgICAgICAgICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdEYXNoZWRMaW5lSWNvblxuICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkaXJlY3Rpb25zUmVuZGVyZXIuc2V0RGlyZWN0aW9ucyhyZXN1bHQpO1xuICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25zUmVuZGVyZXJzLnB1c2goZGlyZWN0aW9uc1JlbmRlcmVyKTtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlyZWN0aW9uc09uTWFwKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUm91dGluZ01hcmtlckNsaWNrKFxuICAgIGk6IG51bWJlcixcbiAgICBldmVudDogZ29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudCxcbiAgICBtYXJrZXJpdGVtOiBJTWFwTWFya2Vyc1xuICApOiB2b2lkIHtcbiAgICAvLyBpZiAobWFya2VyaXRlbT8uaW5mb1dpbmRvd0NvbnRlbnQpIHtcbiAgICAvLyAgIGlmIChcbiAgICAvLyAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nID09PSBpICYmXG4gICAgLy8gICAgIHRoaXMuY3VycmVudGx5T3BlbldpbmRvd1JvdXRpbmdcbiAgICAvLyAgICkge1xuICAgIC8vICAgICBjb25zdCBpbmZvV2luZG93ID0gdGhpcy5pbmZvV2luZG93c1ZpZXdSb3V0aW5nLnRvQXJyYXkoKVtpXTtcbiAgICAvLyAgICAgLy8gQ2xvc2UgdGhlIGN1cnJlbnRseSBvcGVuIGluZm8gd2luZG93IGFuZCByZXNldCB0aGUgaW5kZXhcbiAgICAvLyAgICAgdGhpcy5tYXBEYXRhLnJvdXRpbmdNYXJrZXJzIS5tYXAoKGl0ZW06IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgLy8gICAgICAgaWYgKGluZGV4ID09PSBpKSB7XG4gICAgLy8gICAgICAgICBpdGVtLmljb24gPSB7XG4gICAgLy8gICAgICAgICAgIHVybDogdGhpcy5pbml0aWFsSWNvbnNbaW5kZXhdIS51cmwsXG4gICAgLy8gICAgICAgICAgIGxhYmVsT3JpZ2luOiB0aGlzLmluaXRpYWxJY29uc1tpbmRleF0hLmxhYmVsT3JpZ2luLFxuICAgIC8vICAgICAgICAgfTtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0pO1xuICAgIC8vICAgICBpbmZvV2luZG93LmNsb3NlKCk7XG4gICAgLy8gICAgIHRoaXMuY3VycmVudGx5T3BlbldpbmRvd0luZGV4Um91dGluZyA9IG51bGw7XG4gICAgLy8gICB9IGVsc2Uge1xuICAgIC8vICAgICBjb25zdCBtYXJrZXJJbmRleCA9IHRoaXMubWFya2VyUm91dGluZy50b0FycmF5KClbaV07XG4gICAgLy8gICAgIGNvbnN0IGluZm9XaW5kb3cgPSB0aGlzLmluZm9XaW5kb3dzVmlld1JvdXRpbmcudG9BcnJheSgpW2ldO1xuICAgIC8vICAgICBpZiAodGhpcy5jdXJyZW50bHlPcGVuV2luZG93Um91dGluZykge1xuICAgIC8vICAgICAgIHRoaXMuY3VycmVudGx5T3BlbldpbmRvd1JvdXRpbmcuY2xvc2UoKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICBpZiAoaW5mb1dpbmRvdykge1xuICAgIC8vICAgICAgIC8vIFJlc3RvcmUgdGhlIHByZXZpb3VzIGljb24gZm9yIHRoZSBwcmV2aW91c2x5IGZvY3VzZWQgcm91dGluZyBtYXJrZXJcbiAgICAvLyAgICAgICBpZiAoXG4gICAgLy8gICAgICAgICB0aGlzLmZvY3VzZWRJY29uUm91dGluZyAhPT0gdW5kZWZpbmVkICYmXG4gICAgLy8gICAgICAgICB0aGlzLmZvY3VzZWRJY29uUm91dGluZyAhPT0gaVxuICAgIC8vICAgICAgICkge1xuICAgIC8vICAgICAgICAgY29uc3QgcHJldmlvdXNGb2N1c2VkSXRlbSA9XG4gICAgLy8gICAgICAgICAgIHRoaXMubWFwRGF0YS5yb3V0aW5nTWFya2VycyFbdGhpcy5mb2N1c2VkSWNvblJvdXRpbmddO1xuICAgIC8vICAgICAgICAgaWYgKHByZXZpb3VzRm9jdXNlZEl0ZW0pIHtcbiAgICAvLyAgICAgICAgICAgcHJldmlvdXNGb2N1c2VkSXRlbS5pY29uID0ge1xuICAgIC8vICAgICAgICAgICAgIHVybDogdGhpcy5pbml0aWFsSWNvbnNbdGhpcy5mb2N1c2VkSWNvblJvdXRpbmddLnVybCxcbiAgICAvLyAgICAgICAgICAgICBsYWJlbE9yaWdpbjpcbiAgICAvLyAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbEljb25zW3RoaXMuZm9jdXNlZEljb25Sb3V0aW5nXS5sYWJlbE9yaWdpbixcbiAgICAvLyAgICAgICAgICAgfTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgLy8gVXBkYXRlIHRoZSBjdXJyZW50IG1hcmtlclxuICAgIC8vICAgICAgIHRoaXMubWFwRGF0YS5yb3V0aW5nTWFya2VycyEubWFwKFxuICAgIC8vICAgICAgICAgKGl0ZW06IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgLy8gICAgICAgICAgIGlmIChpbmRleCA9PT0gaSkge1xuICAgIC8vICAgICAgICAgICAgIHRoaXMucHJldmlvdXNJY29uVXJsUm91dGluZyA9IGl0ZW0uaWNvbiA/IGl0ZW0uaWNvbi51cmwgOiAnJztcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmZvY3VzZWRJY29uUm91dGluZyA9IGk7XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5zaG93TGFiZWwgPSBmYWxzZTtcbiAgICAvLyAgICAgICAgICAgICBpdGVtLmljb24gPSB7XG4gICAgLy8gICAgICAgICAgICAgICB1cmw6XG4gICAgLy8gICAgICAgICAgICAgICAgIHRoaXMubWFwRGF0YS5pc1VuaXRWaWV3U3RvcHMgfHwgdGhpcy5tYXBEYXRhLmlzRHJpdmVyTWlsZXNcbiAgICAvLyAgICAgICAgICAgICAgICAgICA/IGl0ZW0uaWNvbiEudXJsXG4gICAgLy8gICAgICAgICAgICAgICAgICAgOiBNYXBTdmdSb3V0ZXMubWFya2VyU3ZnUm91dGUsXG4gICAgLy8gICAgICAgICAgICAgfTtcbiAgICAvLyAgICAgICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgICAgICB0aGlzLnNob3dMYWJlbCA9IHRydWU7XG4gICAgLy8gICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICApO1xuICAgIC8vICAgICAgIGluZm9XaW5kb3cub3BlbihtYXJrZXJJbmRleCk7XG4gICAgLy8gICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93Um91dGluZyA9IGluZm9XaW5kb3c7XG4gICAgLy8gICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nID0gaTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vICAgdGhpcy5tYXJrZXJDbGljay5lbWl0KG1hcmtlcml0ZW0pO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICByZXR1cm47XG4gICAgLy8gfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubWFwcy5nb29nbGVNYXA/LmFkZExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2VJbmZvV2luZG93KCk7XG5cbiAgICAgIHRoaXMubWFwRGF0YS5yb3V0aW5nTWFya2Vycz8ubWFwKChpdGVtOiBJTWFwTWFya2VycywgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChpID09PSB0aGlzLmZvY3VzZWRJY29uUm91dGluZykge1xuICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAgICAgICAgIHVybDogdGhpcy5pbml0aWFsSWNvbnNbaV0udXJsLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc2V0TWFya2Vyc0ljb25zKCk6IHZvaWQge1xuICAgIHRoaXMubWFwRGF0YS5tYXJrZXJzPy5tYXAoKG1hcmtlcjogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm1hcmtlcixcbiAgICAgICAgaWNvbjoge1xuICAgICAgICAgIC4uLm1hcmtlci5pY29uLFxuICAgICAgICAgIHNjYWxlZFNpemU6IG1hcmtlci5pc0xhcmdlTWFya2VyXG4gICAgICAgICAgICA/IE1hcE9wdGlvbnNDb25zdGFudHMubGFyZ2VNYXJrZXJTaXplXG4gICAgICAgICAgICA6IE1hcE9wdGlvbnNDb25zdGFudHMuZGVmYXVsdE1hcmtlclNpemUsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHsgekluZGV4OiBpbmRleCArIDEgfSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFJvdXRpbmdNYXJrZXJzKCk6IHZvaWQge1xuICAgIHRoaXMubWFwRGF0YS5yb3V0aW5nTWFya2Vycz8uZm9yRWFjaChcbiAgICAgIChtYXJrZXI6IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIG1hcmtlci5pY29uID0ge1xuICAgICAgICAgIHVybDogbWFya2VyLmljb24hLnVybCxcbiAgICAgICAgICBsYWJlbE9yaWdpbjogbWFya2VyLmljb24hLmxhYmVsT3JpZ2luLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25NYXBSZWFkeShtYXBJbnN0YW5jZTogZ29vZ2xlLm1hcHMuTWFwKToge1xuICAgIGZpbGxDb2xvcj86IHN0cmluZztcbiAgICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG4gICAgZmlsbE9wYWNpdHk/OiBudW1iZXI7XG4gIH0gfCB2b2lkIHtcbiAgICB0aGlzLm1hcCA9IG1hcEluc3RhbmNlO1xuXG4gICAgaWYgKHRoaXMubWFwRGF0YS5zdGF0ZUJvdW5kYXJpZXNVcmwpIHtcbiAgICAgIGNvbnN0IHN0YXRlQm91bmRhcmllc1VybCA9IHRoaXMubWFwRGF0YS5zdGF0ZUJvdW5kYXJpZXNVcmwudXJsO1xuICAgICAgdGhpcy5tYXBzLmdvb2dsZU1hcD8uZGF0YS5sb2FkR2VvSnNvbihzdGF0ZUJvdW5kYXJpZXNVcmwpO1xuXG4gICAgICB0aGlzLm1hcHMuZ29vZ2xlTWFwPy5kYXRhLnNldFN0eWxlKChmZWF0dXJlKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlRGVuc2l0eSA9IGZlYXR1cmUuZ2V0UHJvcGVydHkoJ2RlbnNpdHknKTtcbiAgICAgICAgY29uc3QgeyBmaWxsQ29sb3IsIGZpbGxPcGFjaXR5IH0gPSBNYXBIZWxwZXIuZ2V0RmlsbENvbG9yRm9yU3RhdGUoXG4gICAgICAgICAgc3RhdGVEZW5zaXR5IGFzIG51bWJlcixcbiAgICAgICAgICB0aGlzLm1hcERhdGEudmlldyB8fCAnJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGZpbGxDb2xvcjogZmlsbENvbG9yLFxuICAgICAgICAgIHN0cm9rZUNvbG9yOiAnI0VFRUVFRScsXG4gICAgICAgICAgc3Ryb2tlV2VpZ2h0OiAwLjYsXG4gICAgICAgICAgZmlsbE9wYWNpdHk6IGZpbGxPcGFjaXR5LFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZW5kQm91bmRzQ2hhbmdlZEV2ZW50KCk7XG4gICAgdGhpcy5zZXRNYXBTdHlsZXMoKTtcbiAgICB0aGlzLmdldE1hcElkbGVFdmVudChtYXBJbnN0YW5jZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0TWFwU3R5bGVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcERhdGE/LmRhcmtNb2RlKVxuICAgICAgdGhpcy5tYXBPcHRpb25zID0ge1xuICAgICAgICAuLi50aGlzLm1hcE9wdGlvbnMsXG4gICAgICAgIHN0eWxlczogTWFwQ29uc3RhbnRzLkdPT0dMRV9NQVBfREFSS19TVFlMRVMsXG4gICAgICB9O1xuXG4gICAgY29uc3QgYWxsTWFya2Vyc0NvbWJpbmVkID0gW1xuICAgICAgLi4uKHRoaXMubWFwRGF0YS5yb3V0aW5nTWFya2VycyA/PyBbXSksXG4gICAgICAuLi4odGhpcy5tYXBEYXRhLmNsdXN0ZXJNYXJrZXJzID8/IFtdKSxcbiAgICAgIC4uLih0aGlzLm1hcERhdGEubWFya2VycyA/PyBbXSksXG4gICAgXTtcblxuICAgIGlmIChhbGxNYXJrZXJzQ29tYmluZWQ/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgbWFwQ2VudGVyQW5kQm91bmRzID1cbiAgICAgICAgTWFwSGVscGVyLmdldE1hcENlbnRlckFuZFpvb20oYWxsTWFya2Vyc0NvbWJpbmVkKTtcblxuICAgICAgdGhpcy5tYXAhLnBhblRvKG1hcENlbnRlckFuZEJvdW5kcy5tYXBDZW50ZXIpO1xuICAgICAgaWYgKG1hcENlbnRlckFuZEJvdW5kcy5ib3VuZHMpXG4gICAgICAgIHRoaXMubWFwPy5maXRCb3VuZHMobWFwQ2VudGVyQW5kQm91bmRzLmJvdW5kcyk7XG4gICAgICBpZiAobWFwQ2VudGVyQW5kQm91bmRzLm1hcFpvb20pXG4gICAgICAgIHRoaXMubWFwPy5zZXRab29tKG1hcENlbnRlckFuZEJvdW5kcy5tYXBab29tKTtcblxuICAgICAgdGhpcy5pc01hcENlbnRlclNldCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE1hcElkbGVFdmVudChtYXA6IGdvb2dsZS5tYXBzLk1hcCk6IHZvaWQge1xuICAgIG1hcC5hZGRMaXN0ZW5lcignaWRsZScsICgpID0+IHtcbiAgICAgIHRoaXMuc2VuZEJvdW5kc0NoYW5nZWRFdmVudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbmRCb3VuZHNDaGFuZ2VkRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFwKSB7XG4gICAgICBjb25zdCBtYXBCb3VuZHMgPSB0aGlzLm1hcC5nZXRCb3VuZHMoKTtcbiAgICAgIGNvbnN0IG1hcFpvb20gPSB0aGlzLm1hcC5nZXRab29tKCk7XG5cbiAgICAgIGlmIChtYXBCb3VuZHMgJiYgbWFwWm9vbSkge1xuICAgICAgICBjb25zdCBib3VuZHNPYmplY3QgPSB7IGJvdW5kczogbWFwQm91bmRzLCB6b29tOiBtYXBab29tIH07XG4gICAgICAgIHRoaXMuYm91bmRzQ2hhbmdlZC5lbWl0KGJvdW5kc09iamVjdCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2x1c3RlckJhY2tCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0U2VsZWN0ZWRNYXJrZXJJdGVtLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldE5ld0RhdGEoZGF0YTogSUNhTWFwUHJvcHMpOiBJQ2FNYXBQcm9wcyB7XG4gICAgY29uc3QgbmV3TWFya2VycyA9IGRhdGE/Lm1hcmtlcnM/Lm1hcCgobWFya2VyOiBJTWFwTWFya2VycykgPT4ge1xuICAgICAgY29uc3QgaXNTZWxlY3RlZE1hcmtlciA9IHRoaXMuY2hlY2tJbmZvV2luZG93UG9zaXRpb24oXG4gICAgICAgIG1hcmtlcixcbiAgICAgICAgdGhpcy5vcGVuZWRJbmZvV2luZG93RGF0YVxuICAgICAgKTtcblxuICAgICAgaWYgKGlzU2VsZWN0ZWRNYXJrZXIpIHtcbiAgICAgICAgY29uc3QgbmV3TWFya2VyRGF0YSA9IHtcbiAgICAgICAgICAuLi5tYXJrZXIsXG4gICAgICAgICAgaWNvbjoge1xuICAgICAgICAgICAgLi4ubWFya2VyLmljb24sXG4gICAgICAgICAgICBzY2FsZWRTaXplOiBNYXBPcHRpb25zQ29uc3RhbnRzLmxhcmdlTWFya2VyU2l6ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9wdGlvbnM6IHsgekluZGV4OiA5OTkgfSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbmV3TWFya2VyRGF0YTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1hcmtlcjtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5kYXRhLFxuICAgICAgbWFya2VyczogbmV3TWFya2VycyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG9wZW5NYXJrZXJJbmZvV2luZG93KG1hcmtlckl0ZW06IElNYXBTZWxlY3RlZE1hcmtlckRhdGEpOiB2b2lkIHtcbiAgICBjb25zdCBpc0luZm9XaW5kb3dPcGVuZWQgPSB0aGlzLmNoZWNrSW5mb1dpbmRvd1Bvc2l0aW9uKFxuICAgICAgbWFya2VySXRlbSxcbiAgICAgIHRoaXMub3BlbmVkSW5mb1dpbmRvd0RhdGFcbiAgICApO1xuXG4gICAgY29uc3QgaXNDbHVzdGVySXRlbUNoYW5nZWQgPSB0aGlzLmNoZWNrQ2x1c3RlckRhdGFDaGFuZ2VzKFxuICAgICAgbWFya2VySXRlbSxcbiAgICAgIHRoaXMub3BlbmVkSW5mb1dpbmRvd0RhdGFcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuaW5mb1dpbmRvd3NWaWV3ICYmICghaXNJbmZvV2luZG93T3BlbmVkIHx8IGlzQ2x1c3Rlckl0ZW1DaGFuZ2VkKSkge1xuICAgICAgdGhpcy5tYXBEYXRhLm1hcmtlcnMhLm1hcCgoaXRlbTogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZE1hcmtlciA9IHRoaXMuY2hlY2tJbmZvV2luZG93UG9zaXRpb24oaXRlbSwgbWFya2VySXRlbSk7XG4gICAgICAgIGlmIChpc1NlbGVjdGVkTWFya2VyKSB7XG4gICAgICAgICAgaXRlbS5pY29uID0ge1xuICAgICAgICAgICAgLi4uaXRlbS5pY29uLFxuICAgICAgICAgICAgc2NhbGVkU2l6ZTogTWFwT3B0aW9uc0NvbnN0YW50cy5sYXJnZU1hcmtlclNpemUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpdGVtLm9wdGlvbnMgPSB7IHpJbmRleDogOTk5IH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbS5pY29uID0ge1xuICAgICAgICAgICAgLi4uaXRlbS5pY29uLFxuICAgICAgICAgICAgc2NhbGVkU2l6ZTogaXRlbS5pc0xhcmdlTWFya2VyXG4gICAgICAgICAgICAgID8gTWFwT3B0aW9uc0NvbnN0YW50cy5sYXJnZU1hcmtlclNpemVcbiAgICAgICAgICAgICAgOiBNYXBPcHRpb25zQ29uc3RhbnRzLmRlZmF1bHRNYXJrZXJTaXplLFxuICAgICAgICAgIH07XG4gICAgICAgICAgaXRlbS5vcHRpb25zID0geyB6SW5kZXg6IGluZGV4ICsgMSB9O1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93ID0gdGhpcy5pbmZvV2luZG93c1ZpZXc7XG4gICAgICB0aGlzLm9wZW5lZEluZm9XaW5kb3dEYXRhID0gbWFya2VySXRlbTtcblxuICAgICAgaWYgKCFpc0luZm9XaW5kb3dPcGVuZWQpIHtcbiAgICAgICAgdGhpcy5tYXAhLnBhblRvKG1hcmtlckl0ZW0ucG9zaXRpb24pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5mb1dpbmRvd09wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmluZm9XaW5kb3dPcHRpb25zLFxuICAgICAgICAgICAgcG9zaXRpb246IG1hcmtlckl0ZW0ucG9zaXRpb24sXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmluZm9XaW5kb3dzVmlldy5vcGVuKCk7XG4gICAgICAgIH0sIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGVja0luZm9XaW5kb3dQb3NpdGlvbihcbiAgICBtYXJrZXJJdGVtOiBJTWFwTWFya2VycyxcbiAgICBtYXJrZXJJdGVtMj86IElNYXBNYXJrZXJzIHwgbnVsbFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgbWFya2VySXRlbS5wb3NpdGlvbi5sYXQgPT09IG1hcmtlckl0ZW0yPy5wb3NpdGlvbj8ubGF0ICYmXG4gICAgICBtYXJrZXJJdGVtLnBvc2l0aW9uLmxuZyA9PT0gbWFya2VySXRlbTI/LnBvc2l0aW9uPy5sbmdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNsb3NlSW5mb1dpbmRvdygpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0TWFya2Vyc0ljb25zKCk7XG5cbiAgICB0aGlzLm9wZW5lZEluZm9XaW5kb3dEYXRhID0gbnVsbDtcbiAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cgPSBudWxsO1xuICAgIHRoaXMuaW5mb1dpbmRvd3NWaWV3LmNsb3NlKCk7XG4gICAgdGhpcy5yZXNldFNlbGVjdGVkTWFya2VySXRlbS5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlTWFwRGF0YShuZXdEYXRhOiBJQ2FNYXBQcm9wcyk6IHZvaWQge1xuICAgIHRoaXMubWFwRGF0YSA9IHRoaXMuZ2V0TmV3RGF0YShuZXdEYXRhKTtcblxuICAgIGlmICh0aGlzLm1hcERhdGEuc2VsZWN0ZWRNYXJrZXJEYXRhKVxuICAgICAgdGhpcy5vcGVuTWFya2VySW5mb1dpbmRvdyh0aGlzLm1hcERhdGEuc2VsZWN0ZWRNYXJrZXJEYXRhKTtcbiAgICBlbHNlIGlmICh0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cpIHRoaXMuY2xvc2VJbmZvV2luZG93KCk7XG5cbiAgICBpZiAobmV3RGF0YSAmJiAhdGhpcy5pc01hcENlbnRlclNldCAmJiB0aGlzLm1hcCkge1xuICAgICAgaWYgKFxuICAgICAgICBuZXdEYXRhLm1hcmtlcnM/Lmxlbmd0aCB8fFxuICAgICAgICBuZXdEYXRhLmNsdXN0ZXJNYXJrZXJzPy5sZW5ndGggfHxcbiAgICAgICAgbmV3RGF0YS5yb3V0aW5nTWFya2Vycz8ubGVuZ3RoXG4gICAgICApXG4gICAgICAgIHRoaXMuc2V0TWFwU3R5bGVzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbHVzdGVyTGlzdFNjcm9sbFRvRW5kKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZW5lZEluZm9XaW5kb3dEYXRhKVxuICAgICAgdGhpcy5jbHVzdGVyTGlzdFNjcm9sbEV2ZW50LmVtaXQodGhpcy5vcGVuZWRJbmZvV2luZG93RGF0YSk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tDbHVzdGVyRGF0YUNoYW5nZXMoXG4gICAgbmV3RGF0YTogSU1hcE1hcmtlcnMsXG4gICAgcHJldmlvdXNEYXRhPzogSU1hcE1hcmtlcnMgfCBudWxsXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuZXdEYXRhLmluZm9XaW5kb3dDb250ZW50Py5jbHVzdGVyRGF0YVxuICAgICAgPyBuZXdEYXRhLmluZm9XaW5kb3dDb250ZW50Py5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YT8uZGF0YT8uaWQgIT09XG4gICAgICAgICAgcHJldmlvdXNEYXRhPy5pbmZvV2luZG93Q29udGVudD8uc2VsZWN0ZWRDbHVzdGVySXRlbURhdGE/LmRhdGE/LmlkIHx8XG4gICAgICAgICAgbmV3RGF0YS5pbmZvV2luZG93Q29udGVudD8uY2x1c3RlckRhdGE/Lmxlbmd0aCAhPT1cbiAgICAgICAgICAgIHByZXZpb3VzRGF0YT8uaW5mb1dpbmRvd0NvbnRlbnQ/LmNsdXN0ZXJEYXRhPy5sZW5ndGhcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgb25NYXJrZXJNb3VzZW92ZXIobWFya2VySXRlbTogSU1hcE1hcmtlcnMpOiB2b2lkIHtcbiAgICBpZiAobWFya2VySXRlbT8ubGFiZWw/LmlzU2hvd09uSG92ZXIpXG4gICAgICB0aGlzLmhvdmVyZWRNYXJrZXJJZCA9IG1hcmtlckl0ZW0/LmRhdGE/LmlkO1xuICB9XG5cbiAgcHVibGljIG9uTWFya2VyTW91c2VvdXQobWFya2VySXRlbTogSU1hcE1hcmtlcnMpOiB2b2lkIHtcbiAgICBpZiAobWFya2VySXRlbT8ubGFiZWw/LmlzU2hvd09uSG92ZXIpIHRoaXMuaG92ZXJlZE1hcmtlcklkID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBvblpvb21DaGFuZ2UoaXNNaW51c0NsaWNrPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRab29tTGV2ZWwgPSB0aGlzLm1hcD8uZ2V0Wm9vbSgpO1xuXG4gICAgaWYgKGN1cnJlbnRab29tTGV2ZWwpIHtcbiAgICAgIGNvbnN0IG5leHRab29tTGV2ZWwgPSBpc01pbnVzQ2xpY2tcbiAgICAgICAgPyBjdXJyZW50Wm9vbUxldmVsIC0gMVxuICAgICAgICA6IGN1cnJlbnRab29tTGV2ZWwgKyAxO1xuICAgICAgdGhpcy5tYXA/LnNldFpvb20obmV4dFpvb21MZXZlbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uT3BlbkluTWFwKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkluTWFwRXZlbnQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJZChpbmRleDogbnVtYmVyLCBtYXJrZXI6IElNYXBNYXJrZXJzKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbWFya2VyLmRhdGEuaWQ7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeVBvc2l0aW9uKGluZGV4OiBudW1iZXIsIG1hcmtlcjogSU1hcE1hcmtlcnMpOiBudW1iZXIge1xuICAgIHJldHVybiBtYXJrZXIucG9zaXRpb24ubGF0ICsgbWFya2VyLnBvc2l0aW9uLmxuZztcbiAgfVxuXG4gIHB1YmxpYyBpZGVudGl0eShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRpcmVjdGlvbnNSZW5kZXJlcnMuZm9yRWFjaCgocmVuZGVyZXIpID0+IHJlbmRlcmVyLnNldE1hcChudWxsKSk7XG4gIH1cbn1cbiIsIjxnb29nbGUtbWFwXG4gIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIlxuICBbY2xhc3MuZGFyay1tb2RlLW1hcF09XCJtYXBEYXRhLmRhcmtNb2RlXCJcbiAgaGVpZ2h0PVwiMTAwJVwiXG4gIHdpZHRoPVwiMTAwJVwiXG4gIFt6b29tXT1cIm1hcFpvb21cIlxuICBbY2VudGVyXT1cIm1hcENlbnRlclwiXG4gIFtvcHRpb25zXT1cIm1hcE9wdGlvbnNcIlxuICAobWFwSW5pdGlhbGl6ZWQpPVwib25NYXBSZWFkeSgkZXZlbnQpXCJcbj5cbiAgPG1hcC1tYXJrZXJcbiAgICAjbWFya2VyPVwibWFwTWFya2VyXCJcbiAgICAqbmdGb3I9XCJcbiAgICAgIGxldCBtYXJrZXJpdGVtIG9mIG1hcERhdGEubWFya2VycztcbiAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICB0cmFja0J5OiB0cmFja0J5SWRcbiAgICBcIlxuICAgIFtwb3NpdGlvbl09XCJtYXJrZXJpdGVtLnBvc2l0aW9uXCJcbiAgICBbaWNvbl09XCJtYXJrZXJpdGVtLmljb24hXCJcbiAgICBbbGFiZWxdPVwiXG4gICAgICAob3BlbmVkSW5mb1dpbmRvd0RhdGE/LnBvc2l0aW9uPy5sYXQgPT09IG1hcmtlcml0ZW0/LnBvc2l0aW9uPy5sYXQgJiZcbiAgICAgICAgb3BlbmVkSW5mb1dpbmRvd0RhdGE/LnBvc2l0aW9uPy5sbmcgPT09IG1hcmtlcml0ZW0/LnBvc2l0aW9uPy5sbmcpIHx8XG4gICAgICAobWFya2VyaXRlbS5sYWJlbD8uaXNTaG93T25Ib3ZlciAmJlxuICAgICAgICBob3ZlcmVkTWFya2VySWQgIT09IG1hcmtlcml0ZW0uZGF0YS5pZClcbiAgICAgICAgPyAnJ1xuICAgICAgICA6IG1hcmtlcml0ZW0ubGFiZWwhXG4gICAgXCJcbiAgICBbb3B0aW9uc109XCJtYXJrZXJpdGVtLm9wdGlvbnMhXCJcbiAgICAobWFwQ2xpY2spPVwib25NYXJrZXJDbGljayhtYXJrZXJpdGVtKVwiXG4gICAgKG1hcE1vdXNlb3Zlcik9XCJvbk1hcmtlck1vdXNlb3ZlcihtYXJrZXJpdGVtKVwiXG4gICAgKG1hcE1vdXNlb3V0KT1cIm9uTWFya2VyTW91c2VvdXQobWFya2VyaXRlbSlcIlxuICA+XG4gIDwvbWFwLW1hcmtlcj5cblxuICA8bWFwLWluZm8td2luZG93XG4gICAgI2luZm9XaW5kb3dzVmlldz1cIm1hcEluZm9XaW5kb3dcIlxuICAgIFtvcHRpb25zXT1cImluZm9XaW5kb3dPcHRpb25zXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcGVuZWRJbmZvV2luZG93RGF0YSAhPT0gbnVsbFwiPlxuICAgICAgPGFwcC1jYS1tYXAtZHJvcGRvd25cbiAgICAgICAgW2luZm9XaW5kb3dDb250ZW50XT1cIm9wZW5lZEluZm9XaW5kb3dEYXRhLmluZm9XaW5kb3dDb250ZW50XCJcbiAgICAgICAgW21hcmtlckRhdGFdPVwib3BlbmVkSW5mb1dpbmRvd0RhdGEuZGF0YVwiXG4gICAgICAgIChvbkNsdXN0ZXJJdGVtQ2xpY2spPVwiZ2V0TWFya2VySW5mb1dpbmRvdygkZXZlbnQpXCJcbiAgICAgICAgKG9uQ2x1c3Rlckxpc3RTY3JvbGxUb0VuZCk9XCJvbkNsdXN0ZXJMaXN0U2Nyb2xsVG9FbmQoKVwiXG4gICAgICAgIChvbkJhY2tCdXR0b25DbGljayk9XCJvbkNsdXN0ZXJCYWNrQnV0dG9uQ2xpY2soKVwiXG4gICAgICA+PC9hcHAtY2EtbWFwLWRyb3Bkb3duPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L21hcC1pbmZvLXdpbmRvdz5cblxuICA8bWFwLW1hcmtlclxuICAgICNtYXJrZXJDbHVzdGVyPVwibWFwTWFya2VyXCJcbiAgICAqbmdGb3I9XCJcbiAgICAgIGxldCBtYXJrZXIgb2YgbWFwRGF0YS5jbHVzdGVyTWFya2VycztcbiAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICB0cmFja0J5OiB0cmFja0J5UG9zaXRpb25cbiAgICBcIlxuICAgIFtwb3NpdGlvbl09XCJtYXJrZXIucG9zaXRpb25cIlxuICAgIFtpY29uXT1cIm1hcmtlci5pY29uXCJcbiAgICAobWFwQ2xpY2spPVwib25DbHVzdGVyTWFya2VyQ2xpY2sobWFya2VyKVwiXG4gID5cbiAgPC9tYXAtbWFya2VyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FyZWFGaWx0ZXJBY3RpdmVcIj5cbiAgICA8bWFwLWNpcmNsZVxuICAgICAgW29wdGlvbnNdPVwiYXJlYUZpbHRlckRhdGEub3B0aW9uc1wiXG4gICAgICBbY2VudGVyXT1cImFyZWFGaWx0ZXJEYXRhLmNlbnRlclwiXG4gICAgICBbcmFkaXVzXT1cImFyZWFGaWx0ZXJEYXRhLnJhZGl1c1wiXG4gICAgPjwvbWFwLWNpcmNsZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG1hcC1tYXJrZXJcbiAgICAjbWFya2VyUm91dGluZz1cIm1hcE1hcmtlclwiXG4gICAgKm5nRm9yPVwiXG4gICAgICBsZXQgbWFya2VyaXRlbSBvZiBtYXBEYXRhLnJvdXRpbmdNYXJrZXJzO1xuICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgIHRyYWNrQnk6IGlkZW50aXR5XG4gICAgXCJcbiAgICBbcG9zaXRpb25dPVwibWFya2VyaXRlbS5wb3NpdGlvblwiXG4gICAgW2ljb25dPVwibWFya2VyaXRlbS5pY29uIVwiXG4gICAgW2xhYmVsXT1cImZvY3VzZWRJY29uUm91dGluZyAhPT0gaSA/IG1hcmtlcml0ZW0ubGFiZWwhIDogJydcIlxuICAgIFtvcHRpb25zXT1cIm1hcmtlcml0ZW0ub3B0aW9ucyFcIlxuICAgIChtYXBDbGljayk9XCJvblJvdXRpbmdNYXJrZXJDbGljayhpLCAkZXZlbnQsIG1hcmtlcml0ZW0pXCJcbiAgPlxuICAgIDxtYXAtaW5mby13aW5kb3cgI2luZm9XaW5kb3dzVmlld1JvdXRpbmc9XCJtYXBJbmZvV2luZG93XCI+XG4gICAgICA8YXBwLWNhLW1hcC1kcm9wZG93bj48L2FwcC1jYS1tYXAtZHJvcGRvd24+XG4gICAgPC9tYXAtaW5mby13aW5kb3c+XG4gIDwvbWFwLW1hcmtlcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibWFwRGF0YS5pc09wZW5Jbk1hcFNob3duXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJvcGVuLWluLW1hcC1jb250YWluZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgIG5nYlRvb2x0aXBcbiAgICAgIG1haW5DYVRvb2x0aXA9XCJPcGVuIGluIE1hcFwiXG4gICAgICB0b29sdGlwQmFja2dyb3VuZD1cIiM0MjQyNDJcIlxuICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgKGNsaWNrKT1cIm9uT3BlbkluTWFwKClcIlxuICAgID5cbiAgICAgIDxzdmctaWNvblxuICAgICAgICBjbGFzcz1cImQtZmxleFwiXG4gICAgICAgIHNyYz1cImFzc2V0cy9jYS1jb21wb25lbnRzL3N2Zy9jb21tb24vaWNfbG9jYXRpb25fbWFwLnN2Z1wiXG4gICAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDE4LCAnaGVpZ2h0LnB4JzogMTggfVwiXG4gICAgICA+PC9zdmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1hcERhdGEuaXNab29tU2hvd25cIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm1hcC16b29tLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtZW5kIGdhcC0xXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2ZsZXgtY29sdW1uJzogIW1hcERhdGEuaXNWZXJ0aWNhbFpvb20sXG4gICAgICAgICd2ZXJ0aWNhbC16b29tLWJ1dHRvbnMnOiBtYXBEYXRhLmlzVmVydGljYWxab29tXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFwLXpvb20tYnV0dG9ucyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgW2NsYXNzLmZsZXgtY29sdW1uXT1cIm1hcERhdGEuaXNWZXJ0aWNhbFpvb21cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiem9vbS1idXR0b24tY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LTFcIlxuICAgICAgICAgIChjbGljayk9XCJvblpvb21DaGFuZ2UodHJ1ZSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleFwiXG4gICAgICAgICAgICBzcmM9XCJhc3NldHMvY2EtY29tcG9uZW50cy9zdmcvcG9wdXAvTWludXMuc3ZnXCJcbiAgICAgICAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDE0LCAnaGVpZ2h0LnB4JzogMTQgfVwiXG4gICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ6b29tLWJ1dHRvbi1jb250YWluZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtMVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uWm9vbUNoYW5nZShmYWxzZSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleFwiXG4gICAgICAgICAgICBzcmM9XCJhc3NldHMvY2EtY29tcG9uZW50cy9zdmcvY29tbW9uL2ljX3BsdXMuc3ZnXCJcbiAgICAgICAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDE0LCAnaGVpZ2h0LnB4JzogMTQgfVwiXG4gICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFwLXpvb20tcmFuZ2UgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtbGluZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtdGV4dCBjYS1mb250LW1lZGl1bVwiPjUwIG1pPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1saW5lXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2dvb2dsZS1tYXA+XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './google-map.enum';
2
+ export * from './map-marker-string.enum';
3
+ export * from './toolbar-filter-string.enum';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1tYXAvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dvb2dsZS1tYXAuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL21hcC1tYXJrZXItc3RyaW5nLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi90b29sYmFyLWZpbHRlci1zdHJpbmcuZW51bSc7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export var MapMarkerStringEnum;
2
+ (function (MapMarkerStringEnum) {
3
+ // Routing marker types
4
+ MapMarkerStringEnum["PICKUP"] = "pickup";
5
+ MapMarkerStringEnum["DELIVERY"] = "delivery";
6
+ MapMarkerStringEnum["DEADHEAD"] = "deadhead";
7
+ MapMarkerStringEnum["CURRENT_LOCATION"] = "Current Location";
8
+ })(MapMarkerStringEnum || (MapMarkerStringEnum = {}));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hcmtlci1zdHJpbmcuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC9lbnVtcy9tYXAtbWFya2VyLXN0cmluZy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG1CQU9YO0FBUEQsV0FBWSxtQkFBbUI7SUFDN0IsdUJBQXVCO0lBQ3ZCLHdDQUFpQixDQUFBO0lBQ2pCLDRDQUFxQixDQUFBO0lBQ3JCLDRDQUFxQixDQUFBO0lBRXJCLDREQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFQVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBTzlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTWFwTWFya2VyU3RyaW5nRW51bSB7XG4gIC8vIFJvdXRpbmcgbWFya2VyIHR5cGVzXG4gIFBJQ0tVUCA9ICdwaWNrdXAnLFxuICBERUxJVkVSWSA9ICdkZWxpdmVyeScsXG4gIERFQURIRUFEID0gJ2RlYWRoZWFkJyxcblxuICBDVVJSRU5UX0xPQ0FUSU9OID0gJ0N1cnJlbnQgTG9jYXRpb24nLFxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwL21vZGVscy9tYXAubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcERyb3Bkb3duQ29udGVudCB9IGZyb20gJy4uLy4uL2NhLW1hcC1kcm9wZG93bi9tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElSb3V0ZVBhdGgge1xuICBsYXQ6IG51bWJlcjtcbiAgbG5nOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhTWFwUHJvcHMge1xuICBjbHVzdGVyTWFya2Vycz86IElNYXBNYXJrZXJzW107XG4gIHJvdXRpbmdNYXJrZXJzPzogSU1hcE1hcmtlcnNbXTtcbiAgcm91dGVQYXRocz86IElNYXBSb3V0ZVBhdGhbXTtcbiAgc2VsZWN0ZWRNYXJrZXJEYXRhPzogSU1hcFNlbGVjdGVkTWFya2VyRGF0YTtcbiAgaXNBY2NpZGVudE1hcD86IGJvb2xlYW47XG4gIHN0YXRlQm91bmRhcmllc1VybD86IHsgdXJsOiBzdHJpbmcgfTtcbiAgbWFya2Vycz86IElNYXBNYXJrZXJzW107XG4gIHZpZXc/OiBzdHJpbmc7XG4gIGlzVW5pdFZpZXdTdG9wcz86IGJvb2xlYW47XG4gIGlzRHJpdmVyTWlsZXM/OiBib29sZWFuO1xuICBtYXBUeXBlPzogc3RyaW5nO1xuICBkYXJrTW9kZT86IGJvb2xlYW47XG4gIGlzWm9vbVNob3duPzogYm9vbGVhbjtcbiAgaXNWZXJ0aWNhbFpvb20/OiBib29sZWFuO1xuICBpc09wZW5Jbk1hcFNob3duPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFwT3B0aW9ucyB7XG4gIGZ1bGxzY3JlZW5Db250cm9sOiBib29sZWFuO1xuICBkaXNhYmxlRGVmYXVsdFVJOiBib29sZWFuO1xuICByZXN0cmljdGlvbjoge1xuICAgIGxhdExuZ0JvdW5kczoge1xuICAgICAgbm9ydGg6IG51bWJlcjtcbiAgICAgIHNvdXRoOiBudW1iZXI7XG4gICAgICBlYXN0OiBudW1iZXI7XG4gICAgICB3ZXN0OiBudW1iZXI7XG4gICAgfTtcbiAgICBzdHJpY3RCb3VuZHM6IGJvb2xlYW47XG4gIH07XG4gIHN0cmVldFZpZXdDb250cm9sOiBib29sZWFuO1xuICBzdHlsZXM6IElNYXBTdHlsZXNbXTtcbiAga2V5Ym9hcmRTaG9ydGN1dHM6IGJvb2xlYW47XG4gIHBhbkNvbnRyb2w6IGJvb2xlYW47XG4gIGdlc3R1cmVIYW5kbGluZzogc3RyaW5nO1xuICBtYXBUeXBlQ29udHJvbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcFN0eWxlcyB7XG4gIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgZmVhdHVyZVR5cGU/OiBzdHJpbmcgfCBudWxsO1xuICBzdHlsZXJzOiBJTWFwQ29sb3JbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFwQ29sb3Ige1xuICBjb2xvcj86IHN0cmluZztcbiAgdmlzaWJpbGl0eT86IHN0cmluZztcbiAgd2VpZ2h0PzogbnVtYmVyO1xuICBzYXR1cmF0aW9uPzogbnVtYmVyO1xuICBsaWdodG5lc3M/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcE1hcmtlcnMge1xuICBwb3NpdGlvbjogSVJvdXRlUGF0aDtcbiAgaWNvbjogSU1hcE1hcmtlcnNJY29uO1xuICBpbmZvV2luZG93Q29udGVudD86IE1hcERyb3Bkb3duQ29udGVudDtcbiAgbGFiZWw/OiBJTWFya2VyTGFiZWw7XG4gIGxhYmVsT3JpZ2luPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICBkYXRhPzogYW55O1xuICBvcHRpb25zPzogeyB6SW5kZXg/OiBudW1iZXIgfTtcbiAgaXNMYXJnZU1hcmtlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcE1hcmtlcnNJY29uIHtcbiAgdXJsOiBzdHJpbmc7XG4gIGxhYmVsT3JpZ2luPzogZ29vZ2xlLm1hcHMuUG9pbnQ7XG4gIHNjYWxlZFNpemU/OiBnb29nbGUubWFwcy5TaXplO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXJrZXJMYWJlbCB7XG4gIHRleHQ6IHN0cmluZztcbiAgZm9udFNpemU/OiBzdHJpbmc7XG4gIGNvbG9yPzogc3RyaW5nO1xuICBmb250V2VpZ2h0Pzogc3RyaW5nO1xuICBpc1Nob3dPbkhvdmVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFwUm91dGVQYXRoIHtcbiAgcGF0aDogSVJvdXRlUGF0aFtdO1xuICBzdHJva2VDb2xvcjogc3RyaW5nO1xuICBzdHJva2VPcGFjaXR5PzogbnVtYmVyO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcEJvdW5kc1pvb20ge1xuICBib3VuZHM6IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcztcbiAgem9vbTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXBTZWxlY3RlZE1hcmtlckRhdGEgZXh0ZW5kcyBJTWFwTWFya2VycyB7XG4gIGlzQ2x1c3Rlck1hcmtlcj86IGJvb2xlYW47XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwL21vZGVscy9tYXAubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcERyb3Bkb3duQ29udGVudCB9IGZyb20gJy4uLy4uL2NhLW1hcC1kcm9wZG93bi9tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElSb3V0ZVBhdGgge1xuICBsYXQ6IG51bWJlcjtcbiAgbG5nOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhTWFwUHJvcHMge1xuICBjbHVzdGVyTWFya2Vycz86IElNYXBNYXJrZXJzW107XG4gIHJvdXRpbmdNYXJrZXJzPzogSU1hcE1hcmtlcnNbXTtcbiAgcm91dGVQYXRocz86IElNYXBSb3V0ZVBhdGhbXTtcbiAgc2VsZWN0ZWRNYXJrZXJEYXRhPzogSU1hcFNlbGVjdGVkTWFya2VyRGF0YTtcbiAgaXNBY2NpZGVudE1hcD86IGJvb2xlYW47XG4gIHN0YXRlQm91bmRhcmllc1VybD86IHsgdXJsOiBzdHJpbmcgfTtcbiAgbWFya2Vycz86IElNYXBNYXJrZXJzW107XG4gIHZpZXc/OiBzdHJpbmc7XG4gIGlzVW5pdFZpZXdTdG9wcz86IGJvb2xlYW47XG4gIGlzRHJpdmVyTWlsZXM/OiBib29sZWFuO1xuICBtYXBUeXBlPzogc3RyaW5nO1xuICBkYXJrTW9kZT86IGJvb2xlYW47XG4gIGlzWm9vbVNob3duPzogYm9vbGVhbjtcbiAgaXNWZXJ0aWNhbFpvb20/OiBib29sZWFuO1xuICBpc09wZW5Jbk1hcFNob3duPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFwT3B0aW9ucyB7XG4gIGZ1bGxzY3JlZW5Db250cm9sOiBib29sZWFuO1xuICBkaXNhYmxlRGVmYXVsdFVJOiBib29sZWFuO1xuICByZXN0cmljdGlvbjoge1xuICAgIGxhdExuZ0JvdW5kczoge1xuICAgICAgbm9ydGg6IG51bWJlcjtcbiAgICAgIHNvdXRoOiBudW1iZXI7XG4gICAgICBlYXN0OiBudW1iZXI7XG4gICAgICB3ZXN0OiBudW1iZXI7XG4gICAgfTtcbiAgICBzdHJpY3RCb3VuZHM6IGJvb2xlYW47XG4gIH07XG4gIHN0cmVldFZpZXdDb250cm9sOiBib29sZWFuO1xuICBzdHlsZXM6IElNYXBTdHlsZXNbXTtcbiAga2V5Ym9hcmRTaG9ydGN1dHM6IGJvb2xlYW47XG4gIHBhbkNvbnRyb2w6IGJvb2xlYW47XG4gIGdlc3R1cmVIYW5kbGluZzogc3RyaW5nO1xuICBtYXBUeXBlQ29udHJvbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcFN0eWxlcyB7XG4gIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgZmVhdHVyZVR5cGU/OiBzdHJpbmcgfCBudWxsO1xuICBzdHlsZXJzOiBJTWFwQ29sb3JbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFwQ29sb3Ige1xuICBjb2xvcj86IHN0cmluZztcbiAgdmlzaWJpbGl0eT86IHN0cmluZztcbiAgd2VpZ2h0PzogbnVtYmVyO1xuICBzYXR1cmF0aW9uPzogbnVtYmVyO1xuICBsaWdodG5lc3M/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcE1hcmtlcnMge1xuICBwb3NpdGlvbjogSVJvdXRlUGF0aDtcbiAgaWNvbjogSU1hcE1hcmtlcnNJY29uO1xuICBpbmZvV2luZG93Q29udGVudD86IE1hcERyb3Bkb3duQ29udGVudDtcbiAgbGFiZWw/OiBJTWFya2VyTGFiZWwgfCBudWxsO1xuICBsYWJlbE9yaWdpbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgZGF0YT86IGFueTtcbiAgb3B0aW9ucz86IHsgekluZGV4PzogbnVtYmVyIH07XG4gIGlzTGFyZ2VNYXJrZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXBNYXJrZXJzSWNvbiB7XG4gIHVybDogc3RyaW5nO1xuICBsYWJlbE9yaWdpbj86IGdvb2dsZS5tYXBzLlBvaW50O1xuICBzY2FsZWRTaXplPzogZ29vZ2xlLm1hcHMuU2l6ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFya2VyTGFiZWwge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGZvbnRTaXplPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgZm9udFdlaWdodD86IHN0cmluZztcbiAgaXNTaG93T25Ib3Zlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcFJvdXRlUGF0aCB7XG4gIHBhdGg6IElSb3V0ZVBhdGhbXTtcbiAgc3Ryb2tlQ29sb3I6IHN0cmluZztcbiAgc3Ryb2tlT3BhY2l0eT86IG51bWJlcjtcbiAgc3Ryb2tlV2VpZ2h0PzogbnVtYmVyO1xuICBpc0Rhc2hlZD86IGJvb2xlYW47XG4gIGRhc2hlZExpbmVTdHlsZT86IElNYXBEYXNoZWRSb3V0ZVN0eWxlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcEJvdW5kc1pvb20ge1xuICBib3VuZHM6IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcztcbiAgem9vbTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXBTZWxlY3RlZE1hcmtlckRhdGEgZXh0ZW5kcyBJTWFwTWFya2VycyB7XG4gIGlzQ2x1c3Rlck1hcmtlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcERhc2hlZFJvdXRlU3R5bGUge1xuICBpY29uOiBJTWFwRGFzaGVkUm91dGVJY29uO1xuICBvZmZzZXQ6IHN0cmluZztcbiAgcmVwZWF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcERhc2hlZFJvdXRlSWNvbiB7XG4gIHBhdGg6IHN0cmluZztcbiAgc3Ryb2tlT3BhY2l0eTogbnVtYmVyO1xuICBzdHJva2VDb2xvcjogc3RyaW5nO1xuICBzY2FsZTogbnVtYmVyO1xufVxuIl19
@@ -31,5 +31,28 @@ export class MapOptionsConstants {
31
31
  center: { lat: 41.860119, lng: -87.660156 },
32
32
  radius: 124000,
33
33
  }; }
34
+ static { this.routingMarkerColors = {
35
+ pickup: '#259F94',
36
+ delivery: '#DF3C3C',
37
+ deadhead: '#6C6C6C',
38
+ }; }
39
+ static { this.routingPathColors = {
40
+ currentLocation: '#E5E5E5',
41
+ deadhead: '#2F2F2F',
42
+ default: '#6C6C6C',
43
+ }; }
44
+ static { this.routingDashedLinePath = {
45
+ path: 'M 0.3,0 -0.3,0 -0.3,0.5 0.3,0.5',
46
+ strokeOpacity: 1,
47
+ strokeColor: '#919191',
48
+ scale: 4,
49
+ }; }
50
+ static { this.routingDashedLineIcon = [
51
+ {
52
+ icon: this.routingDashedLinePath,
53
+ offset: '0',
54
+ repeat: '10px',
55
+ },
56
+ ]; }
34
57
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW9wdGlvbnMuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwL3V0aWxzL2NvbnN0YW50cy9tYXAtb3B0aW9ucy5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsWUFBWTtBQUNaLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxNQUFNLE9BQU8sbUJBQW1CO2FBQ3ZCLHNCQUFpQixHQUFnQjtRQUN0QyxpQkFBaUIsRUFBRSxLQUFLO1FBQ3hCLFdBQVcsRUFBRTtZQUNYLFlBQVksRUFBRSxZQUFZLENBQUMsb0JBQW9CO1lBQy9DLFlBQVksRUFBRSxJQUFJO1NBQ25CO1FBQ0QsaUJBQWlCLEVBQUUsS0FBSztRQUN4QixNQUFNLEVBQUUsWUFBWSxDQUFDLGlCQUFpQjtRQUN0QyxpQkFBaUIsRUFBRSxLQUFLO1FBQ3hCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLGdCQUFnQixFQUFFLElBQUk7S0FDdkIsQ0FBQzthQUVLLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO2FBRTNCLHFCQUFnQixHQUFlLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUVuRSxzQkFBaUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUVqRCxvQkFBZSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBRS9DLG1CQUFjLEdBQUc7UUFDdEIsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLFNBQVM7WUFDcEIsWUFBWSxFQUFFLENBQUM7WUFDZixXQUFXLEVBQUUsR0FBRztZQUNoQixRQUFRLEVBQUUsS0FBSztZQUNmLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFNBQVMsRUFBRSxLQUFLO1NBQ2pCO1FBQ0QsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUU7UUFDM0MsTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTW9kZWxzXG5pbXBvcnQgeyBJTWFwT3B0aW9ucywgSVJvdXRlUGF0aCB9IGZyb20gJy4uLy4uL21vZGVscy9tYXAubW9kZWwnO1xuXG4vLyBDb25zdGFudHNcbmltcG9ydCB7IE1hcENvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cy9tYXAuY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgTWFwT3B0aW9uc0NvbnN0YW50cyB7XG4gIHN0YXRpYyBkZWZhdWx0TWFwT3B0aW9uczogSU1hcE9wdGlvbnMgPSB7XG4gICAgZnVsbHNjcmVlbkNvbnRyb2w6IGZhbHNlLFxuICAgIHJlc3RyaWN0aW9uOiB7XG4gICAgICBsYXRMbmdCb3VuZHM6IE1hcENvbnN0YW50cy5OT1JUSF9BTUVSSUNBX0JPVU5EUyxcbiAgICAgIHN0cmljdEJvdW5kczogdHJ1ZSxcbiAgICB9LFxuICAgIHN0cmVldFZpZXdDb250cm9sOiBmYWxzZSxcbiAgICBzdHlsZXM6IE1hcENvbnN0YW50cy5HT09HTEVfTUFQX1NUWUxFUyxcbiAgICBrZXlib2FyZFNob3J0Y3V0czogZmFsc2UsXG4gICAgcGFuQ29udHJvbDogdHJ1ZSxcbiAgICBnZXN0dXJlSGFuZGxpbmc6ICdncmVlZHknLFxuICAgIG1hcFR5cGVDb250cm9sOiBmYWxzZSxcbiAgICBkaXNhYmxlRGVmYXVsdFVJOiB0cnVlLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0TWFwWm9vbTogbnVtYmVyID0gMTtcblxuICBzdGF0aWMgZGVmYXVsdE1hcENlbnRlcjogSVJvdXRlUGF0aCA9IHsgbGF0OiA0MS44NjAxMTksIGxuZzogLTg3LjY2MDE1NiB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0TWFya2VyU2l6ZSA9IG5ldyBnb29nbGUubWFwcy5TaXplKDMwLCAzMyk7XG5cbiAgc3RhdGljIGxhcmdlTWFya2VyU2l6ZSA9IG5ldyBnb29nbGUubWFwcy5TaXplKDQ1LCA1MCk7XG5cbiAgc3RhdGljIGFyZWFGaWx0ZXJEYXRhID0ge1xuICAgIG9wdGlvbnM6IHtcbiAgICAgIGZpbGxDb2xvcjogJyMzQjczRUQnLFxuICAgICAgc3Ryb2tlV2VpZ2h0OiAwLFxuICAgICAgZmlsbE9wYWNpdHk6IDAuMixcbiAgICAgIGVkaXRhYmxlOiBmYWxzZSxcbiAgICAgIGRyYWdnYWJsZTogZmFsc2UsXG4gICAgICBjbGlja2FibGU6IGZhbHNlLFxuICAgIH0sXG4gICAgY2VudGVyOiB7IGxhdDogNDEuODYwMTE5LCBsbmc6IC04Ny42NjAxNTYgfSxcbiAgICByYWRpdXM6IDEyNDAwMCxcbiAgfTtcbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW9wdGlvbnMuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwL3V0aWxzL2NvbnN0YW50cy9tYXAtb3B0aW9ucy5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsWUFBWTtBQUNaLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxNQUFNLE9BQU8sbUJBQW1CO2FBQ3ZCLHNCQUFpQixHQUFnQjtRQUN0QyxpQkFBaUIsRUFBRSxLQUFLO1FBQ3hCLFdBQVcsRUFBRTtZQUNYLFlBQVksRUFBRSxZQUFZLENBQUMsb0JBQW9CO1lBQy9DLFlBQVksRUFBRSxJQUFJO1NBQ25CO1FBQ0QsaUJBQWlCLEVBQUUsS0FBSztRQUN4QixNQUFNLEVBQUUsWUFBWSxDQUFDLGlCQUFpQjtRQUN0QyxpQkFBaUIsRUFBRSxLQUFLO1FBQ3hCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLGdCQUFnQixFQUFFLElBQUk7S0FDdkIsQ0FBQzthQUVLLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO2FBRTNCLHFCQUFnQixHQUFlLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUVuRSxzQkFBaUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUVqRCxvQkFBZSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBRS9DLG1CQUFjLEdBQUc7UUFDdEIsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLFNBQVM7WUFDcEIsWUFBWSxFQUFFLENBQUM7WUFDZixXQUFXLEVBQUUsR0FBRztZQUNoQixRQUFRLEVBQUUsS0FBSztZQUNmLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFNBQVMsRUFBRSxLQUFLO1NBQ2pCO1FBQ0QsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUU7UUFDM0MsTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDO2FBRUssd0JBQW1CLEdBQUc7UUFDM0IsTUFBTSxFQUFFLFNBQVM7UUFDakIsUUFBUSxFQUFFLFNBQVM7UUFDbkIsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FBQzthQUVLLHNCQUFpQixHQUFHO1FBQ3pCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLE9BQU8sRUFBRSxTQUFTO0tBQ25CLENBQUM7YUFFSywwQkFBcUIsR0FBRztRQUM3QixJQUFJLEVBQUUsaUNBQWlDO1FBQ3ZDLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLEtBQUssRUFBRSxDQUFDO0tBQ1QsQ0FBQzthQUVLLDBCQUFxQixHQUFHO1FBQzdCO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUI7WUFDaEMsTUFBTSxFQUFFLEdBQUc7WUFDWCxNQUFNLEVBQUUsTUFBTTtTQUNmO0tBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE1vZGVsc1xuaW1wb3J0IHsgSU1hcE9wdGlvbnMsIElSb3V0ZVBhdGggfSBmcm9tICcuLi8uLi9tb2RlbHMvbWFwLm1vZGVsJztcblxuLy8gQ29uc3RhbnRzXG5pbXBvcnQgeyBNYXBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb25zdGFudHMvbWFwLmNvbnN0YW50JztcblxuZXhwb3J0IGNsYXNzIE1hcE9wdGlvbnNDb25zdGFudHMge1xuICBzdGF0aWMgZGVmYXVsdE1hcE9wdGlvbnM6IElNYXBPcHRpb25zID0ge1xuICAgIGZ1bGxzY3JlZW5Db250cm9sOiBmYWxzZSxcbiAgICByZXN0cmljdGlvbjoge1xuICAgICAgbGF0TG5nQm91bmRzOiBNYXBDb25zdGFudHMuTk9SVEhfQU1FUklDQV9CT1VORFMsXG4gICAgICBzdHJpY3RCb3VuZHM6IHRydWUsXG4gICAgfSxcbiAgICBzdHJlZXRWaWV3Q29udHJvbDogZmFsc2UsXG4gICAgc3R5bGVzOiBNYXBDb25zdGFudHMuR09PR0xFX01BUF9TVFlMRVMsXG4gICAga2V5Ym9hcmRTaG9ydGN1dHM6IGZhbHNlLFxuICAgIHBhbkNvbnRyb2w6IHRydWUsXG4gICAgZ2VzdHVyZUhhbmRsaW5nOiAnZ3JlZWR5JyxcbiAgICBtYXBUeXBlQ29udHJvbDogZmFsc2UsXG4gICAgZGlzYWJsZURlZmF1bHRVSTogdHJ1ZSxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdE1hcFpvb206IG51bWJlciA9IDE7XG5cbiAgc3RhdGljIGRlZmF1bHRNYXBDZW50ZXI6IElSb3V0ZVBhdGggPSB7IGxhdDogNDEuODYwMTE5LCBsbmc6IC04Ny42NjAxNTYgfTtcblxuICBzdGF0aWMgZGVmYXVsdE1hcmtlclNpemUgPSBuZXcgZ29vZ2xlLm1hcHMuU2l6ZSgzMCwgMzMpO1xuXG4gIHN0YXRpYyBsYXJnZU1hcmtlclNpemUgPSBuZXcgZ29vZ2xlLm1hcHMuU2l6ZSg0NSwgNTApO1xuXG4gIHN0YXRpYyBhcmVhRmlsdGVyRGF0YSA9IHtcbiAgICBvcHRpb25zOiB7XG4gICAgICBmaWxsQ29sb3I6ICcjM0I3M0VEJyxcbiAgICAgIHN0cm9rZVdlaWdodDogMCxcbiAgICAgIGZpbGxPcGFjaXR5OiAwLjIsXG4gICAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgY2xpY2thYmxlOiBmYWxzZSxcbiAgICB9LFxuICAgIGNlbnRlcjogeyBsYXQ6IDQxLjg2MDExOSwgbG5nOiAtODcuNjYwMTU2IH0sXG4gICAgcmFkaXVzOiAxMjQwMDAsXG4gIH07XG5cbiAgc3RhdGljIHJvdXRpbmdNYXJrZXJDb2xvcnMgPSB7XG4gICAgcGlja3VwOiAnIzI1OUY5NCcsXG4gICAgZGVsaXZlcnk6ICcjREYzQzNDJyxcbiAgICBkZWFkaGVhZDogJyM2QzZDNkMnLFxuICB9O1xuXG4gIHN0YXRpYyByb3V0aW5nUGF0aENvbG9ycyA9IHtcbiAgICBjdXJyZW50TG9jYXRpb246ICcjRTVFNUU1JyxcbiAgICBkZWFkaGVhZDogJyMyRjJGMkYnLFxuICAgIGRlZmF1bHQ6ICcjNkM2QzZDJyxcbiAgfTtcblxuICBzdGF0aWMgcm91dGluZ0Rhc2hlZExpbmVQYXRoID0ge1xuICAgIHBhdGg6ICdNIDAuMywwIC0wLjMsMCAtMC4zLDAuNSAwLjMsMC41JyxcbiAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgIHN0cm9rZUNvbG9yOiAnIzkxOTE5MScsXG4gICAgc2NhbGU6IDQsXG4gIH07XG5cbiAgc3RhdGljIHJvdXRpbmdEYXNoZWRMaW5lSWNvbiA9IFtcbiAgICB7XG4gICAgICBpY29uOiB0aGlzLnJvdXRpbmdEYXNoZWRMaW5lUGF0aCxcbiAgICAgIG9mZnNldDogJzAnLFxuICAgICAgcmVwZWF0OiAnMTBweCcsXG4gICAgfSxcbiAgXTtcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './map-marker-icon.helper';
2
+ export * from './map.helper';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1tYXAvdXRpbHMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXAtbWFya2VyLWljb24uaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwLmhlbHBlcic7XG4iXX0=
@@ -0,0 +1,51 @@
1
+ // Constants
2
+ import { MapOptionsConstants } from '../constants';
3
+ // Enums
4
+ import { MapMarkerStringEnum } from '../../enums';
5
+ // Svg Routes
6
+ import { MapSvgRoutes } from '../svg-routes';
7
+ export class MapMarkerIconHelper {
8
+ static { this.getRoutingMarkerIcon = (stopNumber, stopType, isStopChecked) => {
9
+ let markerIcon = '';
10
+ if (!isStopChecked) {
11
+ const markerSvg = this.getRoutingMarkerSvg(stopNumber, stopType);
12
+ markerIcon = 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(markerSvg);
13
+ }
14
+ else {
15
+ markerIcon =
16
+ stopType === MapMarkerStringEnum.PICKUP
17
+ ? MapSvgRoutes.routingCheckedPickupMarker
18
+ : stopType === MapMarkerStringEnum.DELIVERY
19
+ ? MapSvgRoutes.routingCheckedDeliveryMarker
20
+ : MapSvgRoutes.routingCheckedDeadheadMarker;
21
+ }
22
+ return markerIcon;
23
+ }; }
24
+ static { this.getRoutingMarkerSvg = (stopNumber, stopType) => {
25
+ const markerColor = MapOptionsConstants.routingMarkerColors[stopType];
26
+ const markerSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="30" height="33" viewBox="0 0 30 33" fill="none">
27
+ <circle cx="15" cy="29" r="3" fill="${markerColor}" stroke="#2F2F2F" stroke-width="2"/>
28
+ <g filter="url(#filter0_d_24060_59090)">
29
+ <path d="M26 14.9732C25.9991 16.7715 25.5554 18.542 24.708 20.1289C23.8606 21.7157 22.6355 23.0702 21.1405 24.0732C21.1165 24.0912 20.7609 24.3102 20.6207 24.4022C17.2485 26.5422 15.8954 27.9872 15.3505 28.8022C15.2859 28.8991 15.1854 28.9665 15.0712 28.9897C14.9569 29.0129 14.8381 28.9901 14.7406 28.9262C14.6916 28.8932 14.6494 28.8511 14.6164 28.8022C14.0716 27.9912 12.7135 26.5462 9.34626 24.4022C9.19302 24.3072 8.8515 24.0912 8.82646 24.0732C7.25656 23.0103 5.9886 21.5601 5.14572 19.8635C4.30285 18.1669 3.91368 16.2815 4.01603 14.3904C4.11837 12.4993 4.70874 10.6667 5.72981 9.0707C6.75088 7.47466 8.16796 6.16936 9.84342 5.28155C11.5189 4.39375 13.3958 3.95361 15.292 4.00387C17.1881 4.05413 19.039 4.5931 20.6649 5.56842C22.2908 6.54374 23.6365 7.92228 24.5713 9.57017C25.5062 11.2181 25.9983 13.0793 26 14.9732Z" fill="#86C9C3"/>
30
+ </g>
31
+ <circle xmlns="http://www.w3.org/2000/svg" cx="15" cy="15" r="9" fill="${markerColor}"/>
32
+ <text xmlns="http://www.w3.org/2000/svg" id="_4" data-name="4" transform="translate(15 16)" fill="#fff" font-size="11" font-family="Montserrat" font-weight="700" dominant-baseline="middle" text-anchor="middle" y="0">
33
+ <tspan>${stopNumber ?? 0}</tspan>
34
+ </text>
35
+ <defs>
36
+ <filter id="filter0_d_24060_59090" x="0" y="0" width="30" height="32.9985" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
37
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
38
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
39
+ <feOffset/>
40
+ <feGaussianBlur stdDeviation="2"/>
41
+ <feComposite in2="hardAlpha" operator="out"/>
42
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"/>
43
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_24060_59090"/>
44
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_24060_59090" result="shape"/>
45
+ </filter>
46
+ </defs>
47
+ </svg>`;
48
+ return markerSvg;
49
+ }; }
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hcmtlci1pY29uLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC91dGlscy9oZWxwZXJzL21hcC1tYXJrZXItaWNvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELGFBQWE7QUFDYixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sT0FBTyxtQkFBbUI7YUFDdkIseUJBQW9CLEdBQUcsQ0FDNUIsVUFBa0IsRUFDbEIsUUFBZ0IsRUFDaEIsYUFBdUIsRUFDZixFQUFFO1FBQ1YsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNqRSxVQUFVLEdBQUcsMENBQTBDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNFO2FBQU07WUFDTCxVQUFVO2dCQUNSLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxNQUFNO29CQUNyQyxDQUFDLENBQUMsWUFBWSxDQUFDLDBCQUEwQjtvQkFDekMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxRQUFRO3dCQUMzQyxDQUFDLENBQUMsWUFBWSxDQUFDLDRCQUE0Qjt3QkFDM0MsQ0FBQyxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQztTQUNqRDtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUMsQ0FBQzthQUVLLHdCQUFtQixHQUFHLENBQzNCLFVBQWtCLEVBQ2xCLFFBQWdCLEVBQ1IsRUFBRTtRQUNWLE1BQU0sV0FBVyxHQUNmLG1CQUFtQixDQUFDLG1CQUFtQixDQUNyQyxRQUFnRSxDQUNqRSxDQUFDO1FBRUosTUFBTSxTQUFTLEdBQUc7OERBQ3dDLFdBQVc7Ozs7aUdBSXdCLFdBQVc7O3FDQUV2RSxVQUFVLElBQUksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7NkJBY3ZCLENBQUM7UUFFMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29uc3RhbnRzXG5pbXBvcnQgeyBNYXBPcHRpb25zQ29uc3RhbnRzIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuLy8gRW51bXNcbmltcG9ydCB7IE1hcE1hcmtlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5cbi8vIFN2ZyBSb3V0ZXNcbmltcG9ydCB7IE1hcFN2Z1JvdXRlcyB9IGZyb20gJy4uL3N2Zy1yb3V0ZXMnO1xuXG5leHBvcnQgY2xhc3MgTWFwTWFya2VySWNvbkhlbHBlciB7XG4gIHN0YXRpYyBnZXRSb3V0aW5nTWFya2VySWNvbiA9IChcbiAgICBzdG9wTnVtYmVyOiBudW1iZXIsXG4gICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICBpc1N0b3BDaGVja2VkPzogYm9vbGVhblxuICApOiBzdHJpbmcgPT4ge1xuICAgIGxldCBtYXJrZXJJY29uID0gJyc7XG5cbiAgICBpZiAoIWlzU3RvcENoZWNrZWQpIHtcbiAgICAgIGNvbnN0IG1hcmtlclN2ZyA9IHRoaXMuZ2V0Um91dGluZ01hcmtlclN2ZyhzdG9wTnVtYmVyLCBzdG9wVHlwZSk7XG4gICAgICBtYXJrZXJJY29uID0gJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04O2Jhc2U2NCwnICsgYnRvYShtYXJrZXJTdmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtYXJrZXJJY29uID1cbiAgICAgICAgc3RvcFR5cGUgPT09IE1hcE1hcmtlclN0cmluZ0VudW0uUElDS1VQXG4gICAgICAgICAgPyBNYXBTdmdSb3V0ZXMucm91dGluZ0NoZWNrZWRQaWNrdXBNYXJrZXJcbiAgICAgICAgICA6IHN0b3BUeXBlID09PSBNYXBNYXJrZXJTdHJpbmdFbnVtLkRFTElWRVJZXG4gICAgICAgICAgPyBNYXBTdmdSb3V0ZXMucm91dGluZ0NoZWNrZWREZWxpdmVyeU1hcmtlclxuICAgICAgICAgIDogTWFwU3ZnUm91dGVzLnJvdXRpbmdDaGVja2VkRGVhZGhlYWRNYXJrZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcmtlckljb247XG4gIH07XG5cbiAgc3RhdGljIGdldFJvdXRpbmdNYXJrZXJTdmcgPSAoXG4gICAgc3RvcE51bWJlcjogbnVtYmVyLFxuICAgIHN0b3BUeXBlOiBzdHJpbmdcbiAgKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBtYXJrZXJDb2xvciA9XG4gICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdNYXJrZXJDb2xvcnNbXG4gICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdNYXJrZXJDb2xvcnNcbiAgICAgIF07XG5cbiAgICBjb25zdCBtYXJrZXJTdmcgPSBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMzXCIgdmlld0JveD1cIjAgMCAzMCAzM1wiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjI5XCIgcj1cIjNcIiBmaWxsPVwiJHttYXJrZXJDb2xvcn1cIiBzdHJva2U9XCIjMkYyRjJGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI0MDYwXzU5MDkwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjYgMTQuOTczMkMyNS45OTkxIDE2Ljc3MTUgMjUuNTU1NCAxOC41NDIgMjQuNzA4IDIwLjEyODlDMjMuODYwNiAyMS43MTU3IDIyLjYzNTUgMjMuMDcwMiAyMS4xNDA1IDI0LjA3MzJDMjEuMTE2NSAyNC4wOTEyIDIwLjc2MDkgMjQuMzEwMiAyMC42MjA3IDI0LjQwMjJDMTcuMjQ4NSAyNi41NDIyIDE1Ljg5NTQgMjcuOTg3MiAxNS4zNTA1IDI4LjgwMjJDMTUuMjg1OSAyOC44OTkxIDE1LjE4NTQgMjguOTY2NSAxNS4wNzEyIDI4Ljk4OTdDMTQuOTU2OSAyOS4wMTI5IDE0LjgzODEgMjguOTkwMSAxNC43NDA2IDI4LjkyNjJDMTQuNjkxNiAyOC44OTMyIDE0LjY0OTQgMjguODUxMSAxNC42MTY0IDI4LjgwMjJDMTQuMDcxNiAyNy45OTEyIDEyLjcxMzUgMjYuNTQ2MiA5LjM0NjI2IDI0LjQwMjJDOS4xOTMwMiAyNC4zMDcyIDguODUxNSAyNC4wOTEyIDguODI2NDYgMjQuMDczMkM3LjI1NjU2IDIzLjAxMDMgNS45ODg2IDIxLjU2MDEgNS4xNDU3MiAxOS44NjM1QzQuMzAyODUgMTguMTY2OSAzLjkxMzY4IDE2LjI4MTUgNC4wMTYwMyAxNC4zOTA0QzQuMTE4MzcgMTIuNDk5MyA0LjcwODc0IDEwLjY2NjcgNS43Mjk4MSA5LjA3MDdDNi43NTA4OCA3LjQ3NDY2IDguMTY3OTYgNi4xNjkzNiA5Ljg0MzQyIDUuMjgxNTVDMTEuNTE4OSA0LjM5Mzc1IDEzLjM5NTggMy45NTM2MSAxNS4yOTIgNC4wMDM4N0MxNy4xODgxIDQuMDU0MTMgMTkuMDM5IDQuNTkzMSAyMC42NjQ5IDUuNTY4NDJDMjIuMjkwOCA2LjU0Mzc0IDIzLjYzNjUgNy45MjIyOCAyNC41NzEzIDkuNTcwMTdDMjUuNTA2MiAxMS4yMTgxIDI1Ljk5ODMgMTMuMDc5MyAyNiAxNC45NzMyWlwiIGZpbGw9XCIjODZDOUMzXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY3g9XCIxNVwiIGN5PVwiMTVcIiByPVwiOVwiIGZpbGw9XCIke21hcmtlckNvbG9yfVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBpZD1cIl80XCIgZGF0YS1uYW1lPVwiNFwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxNSAxNilcIiBmaWxsPVwiI2ZmZlwiIGZvbnQtc2l6ZT1cIjExXCIgZm9udC1mYW1pbHk9XCJNb250c2VycmF0XCIgZm9udC13ZWlnaHQ9XCI3MDBcIiBkb21pbmFudC1iYXNlbGluZT1cIm1pZGRsZVwiIHRleHQtYW5jaG9yPVwibWlkZGxlXCIgeT1cIjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4+JHtzdG9wTnVtYmVyID8/IDB9PC90c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjQwNjBfNTkwOTBcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMyLjk5ODVcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMTUgMFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNDA2MF81OTA5MFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNDA2MF81OTA5MFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbiAgICByZXR1cm4gbWFya2VyU3ZnO1xuICB9O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './map-svg-routes';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1tYXAvdXRpbHMvc3ZnLXJvdXRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXAtc3ZnLXJvdXRlcyc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export class MapSvgRoutes {
2
+ static { this.markerSvgRoute = 'assets/ca-components/svg/map/routing_marker.svg'; }
3
+ static { this.phone = 'assets/ca-components/svg/map/phone.svg'; }
4
+ static { this.routingCheckedPickupMarker = 'assets/ca-components/svg/map/progress-marker-pickup.svg'; }
5
+ static { this.routingCheckedDeliveryMarker = 'assets/ca-components/svg/map/progress-marker-checked.svg'; }
6
+ static { this.routingCheckedDeadheadMarker = 'assets/ca-components/svg/map/progress_marker_reached.svg'; }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXN2Zy1yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1tYXAvdXRpbHMvc3ZnLXJvdXRlcy9tYXAtc3ZnLXJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBWTthQUNoQixtQkFBYyxHQUNuQixpREFBaUQsQ0FBQzthQUM3QyxVQUFLLEdBQVcsd0NBQXdDLENBQUM7YUFDekQsK0JBQTBCLEdBQy9CLHlEQUF5RCxDQUFDO2FBQ3JELGlDQUE0QixHQUNqQywwREFBMEQsQ0FBQzthQUN0RCxpQ0FBNEIsR0FDakMsMERBQTBELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTWFwU3ZnUm91dGVzIHtcbiAgc3RhdGljIG1hcmtlclN2Z1JvdXRlOiBzdHJpbmcgPVxuICAgICdhc3NldHMvY2EtY29tcG9uZW50cy9zdmcvbWFwL3JvdXRpbmdfbWFya2VyLnN2Zyc7XG4gIHN0YXRpYyBwaG9uZTogc3RyaW5nID0gJ2Fzc2V0cy9jYS1jb21wb25lbnRzL3N2Zy9tYXAvcGhvbmUuc3ZnJztcbiAgc3RhdGljIHJvdXRpbmdDaGVja2VkUGlja3VwTWFya2VyOiBzdHJpbmcgPVxuICAgICdhc3NldHMvY2EtY29tcG9uZW50cy9zdmcvbWFwL3Byb2dyZXNzLW1hcmtlci1waWNrdXAuc3ZnJztcbiAgc3RhdGljIHJvdXRpbmdDaGVja2VkRGVsaXZlcnlNYXJrZXI6IHN0cmluZyA9XG4gICAgJ2Fzc2V0cy9jYS1jb21wb25lbnRzL3N2Zy9tYXAvcHJvZ3Jlc3MtbWFya2VyLWNoZWNrZWQuc3ZnJztcbiAgc3RhdGljIHJvdXRpbmdDaGVja2VkRGVhZGhlYWRNYXJrZXI6IHN0cmluZyA9XG4gICAgJ2Fzc2V0cy9jYS1jb21wb25lbnRzL3N2Zy9tYXAvcHJvZ3Jlc3NfbWFya2VyX3JlYWNoZWQuc3ZnJztcbn1cbiJdfQ==