@sbb-esta/lyne-elements 4.5.0 → 4.6.0

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/autocomplete/autocomplete-base-element.js +5 -5
  2. package/calendar/{calendar.component.js → calendar/calendar.component.js} +413 -401
  3. package/calendar/calendar-day/calendar-day.component.js +98 -0
  4. package/calendar/calendar-day.js +4 -0
  5. package/calendar/calendar.js +5 -0
  6. package/calendar.js +5 -2
  7. package/chip-label/chip-label.component.js +13 -13
  8. package/container/container/container.component.js +9 -9
  9. package/container/sticky-bar/sticky-bar.component.js +12 -12
  10. package/core/datetime/temporal-date-adapter.js +12 -6
  11. package/core/datetime.js +12 -13
  12. package/core/styles/core.scss +14 -12
  13. package/core/styles/mixins/chip.scss +6 -6
  14. package/core.css +22 -8
  15. package/custom-elements.json +18264 -17381
  16. package/datepicker/datepicker/datepicker.component.js +1 -1
  17. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  18. package/development/autocomplete/autocomplete-base-element.js +8 -6
  19. package/development/calendar/{calendar.component.d.ts → calendar/calendar.component.d.ts} +23 -3
  20. package/development/calendar/calendar/calendar.component.d.ts.map +1 -0
  21. package/development/calendar/calendar/calendar.component.js +1990 -0
  22. package/development/calendar/calendar-day/calendar-day.component.d.ts +49 -0
  23. package/development/calendar/calendar-day/calendar-day.component.d.ts.map +1 -0
  24. package/development/calendar/calendar-day/calendar-day.component.js +255 -0
  25. package/development/calendar/calendar-day.d.ts +5 -0
  26. package/development/calendar/calendar-day.d.ts.map +1 -0
  27. package/development/calendar/calendar-day.js +5 -0
  28. package/development/calendar/calendar.d.ts +5 -0
  29. package/development/calendar/calendar.d.ts.map +1 -0
  30. package/development/calendar/calendar.js +6 -0
  31. package/development/calendar.d.ts +2 -1
  32. package/development/calendar.d.ts.map +1 -1
  33. package/development/calendar.js +6 -3
  34. package/development/chip-label/chip-label.component.js +6 -15
  35. package/development/container/container/container.component.js +1 -3
  36. package/development/container/sticky-bar/sticky-bar.component.js +9 -14
  37. package/development/core/datetime/native-date-adapter.js +1 -1
  38. package/development/core/datetime/temporal-date-adapter.d.ts +7 -1
  39. package/development/core/datetime/temporal-date-adapter.d.ts.map +1 -1
  40. package/development/core/datetime/temporal-date-adapter.js +14 -7
  41. package/development/core/datetime.js +2 -3
  42. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  43. package/development/datepicker/datepicker/datepicker.component.js +2 -1
  44. package/development/dialog/dialog-title/dialog-title.component.js +2 -1
  45. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +6 -5
  46. package/development/form-field/form-field/form-field.component.js +7 -5
  47. package/development/radio-button/radio-button-group/radio-button-group.component.js +2 -2
  48. package/development/tabs/tab/tab.component.js +5 -4
  49. package/development/tabs/tab-group/tab-group.component.d.ts +1 -0
  50. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  51. package/development/tabs/tab-group/tab-group.component.js +7 -1
  52. package/dialog/dialog-title/dialog-title.component.js +7 -7
  53. package/expansion-panel/expansion-panel/expansion-panel.component.js +9 -9
  54. package/form-field/form-field/form-field.component.js +11 -11
  55. package/index.d.ts +3 -1
  56. package/index.js +3 -1
  57. package/off-brand-theme.css +22 -8
  58. package/package.json +11 -1
  59. package/radio-button/radio-button-group/radio-button-group.component.js +1 -1
  60. package/safety-theme.css +22 -8
  61. package/standard-theme.css +22 -8
  62. package/tabs/tab/tab.component.js +1 -1
  63. package/tabs/tab-group/tab-group.component.js +21 -18
  64. package/development/calendar/calendar.component.d.ts.map +0 -1
  65. package/development/calendar/calendar.component.js +0 -1957
@@ -13,10 +13,6 @@ import { isLean, isZeroAnimationDuration } from "../../core/dom.js";
13
13
  import { SbbUpdateSchedulerMixin, SbbElementInternalsMixin } from "../../core/mixins.js";
14
14
  import { boxSizingStyles } from "../../core/styles.js";
15
15
  const style = css`:host {
16
- --sbb-sticky-bar-position: sticky;
17
- --sbb-sticky-bar-padding-block: var(--sbb-spacing-responsive-xs);
18
- --sbb-sticky-bar-border-radius: var(--sbb-border-radius-8x);
19
- --sbb-sticky-bar-animation-easing: var(--sbb-animation-easing);
20
16
  --sbb-sticky-bar-fade-in-animation-duration: var(
21
17
  --sbb-disable-animation-duration,
22
18
  var(--sbb-animation-duration-5x)
@@ -29,14 +25,9 @@ const style = css`:host {
29
25
  --sbb-disable-animation-duration,
30
26
  var(--sbb-animation-duration-4x)
31
27
  );
32
- --sbb-sticky-bar-slide-vertically-animation-easing: ease-out;
33
- --sbb-sticky-bar-slide-vertically-animation-delay: 0s;
34
- --sbb-sticky-bar-slide-vertically-animation-name: unset;
35
28
  --_sbb-sticky-bar-background-animation-duration: var(
36
29
  --sbb-sticky-bar-fade-out-animation-duration
37
30
  );
38
- --_sbb-sticky-bar-intersector-background-color: transparent;
39
- --_sbb-sticky-bar-forced-colors-border: none;
40
31
  display: contents;
41
32
  }
42
33
 
@@ -44,6 +35,10 @@ const style = css`:host {
44
35
  --sbb-sticky-bar-padding-block: var(--sbb-spacing-responsive-xxxs);
45
36
  }
46
37
 
38
+ :host([size=m]) {
39
+ --sbb-sticky-bar-padding-block: var(--sbb-spacing-responsive-xs);
40
+ }
41
+
47
42
  :host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))) {
48
43
  --sbb-sticky-bar-sticky-background-color: var(
49
44
  --sbb-container-background-color,
@@ -97,10 +92,10 @@ const style = css`:host {
97
92
  inset-block-end: 0;
98
93
  display: block;
99
94
  z-index: var(--sbb-sticky-bar-z-index);
100
- animation-name: var(--sbb-sticky-bar-slide-vertically-animation-name);
95
+ animation-name: var(--sbb-sticky-bar-slide-vertically-animation-name, unset);
101
96
  animation-duration: var(--sbb-sticky-bar-slide-vertically-animation-duration);
102
97
  animation-timing-function: var(--sbb-sticky-bar-slide-vertically-animation-easing);
103
- animation-delay: var(--sbb-sticky-bar-slide-vertically-animation-delay);
98
+ animation-delay: 0s;
104
99
  animation-fill-mode: backwards;
105
100
  }
106
101
  .sbb-sticky-bar__wrapper::after, .sbb-sticky-bar__wrapper::before {
@@ -129,7 +124,7 @@ const style = css`:host {
129
124
  border-start-start-radius: var(--sbb-sticky-bar-border-radius);
130
125
  border-start-end-radius: var(--sbb-sticky-bar-border-radius);
131
126
  transition: background-color var(--_sbb-sticky-bar-background-animation-duration) var(--sbb-sticky-bar-animation-easing);
132
- border: var(--_sbb-sticky-bar-forced-colors-border);
127
+ border: var(--_sbb-sticky-bar-forced-colors-border, none);
133
128
  }
134
129
 
135
130
  .sbb-sticky-bar {
@@ -173,7 +168,7 @@ const style = css`:host {
173
168
  position: absolute;
174
169
  width: 100%;
175
170
  height: calc(var(--sbb-sticky-bar-bottom-overlapping-height, 0) + 1px);
176
- background-color: var(--_sbb-sticky-bar-intersector-background-color);
171
+ background-color: var(--_sbb-sticky-bar-intersector-background-color, transparent);
177
172
  pointer-events: none;
178
173
  transition: background-color var(--_sbb-sticky-bar-background-animation-duration) var(--sbb-sticky-bar-animation-easing);
179
174
  }
@@ -365,4 +360,4 @@ let SbbStickyBarElement = (() => {
365
360
  export {
366
361
  SbbStickyBarElement
367
362
  };
368
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb250YWluZXIvc3RpY2t5LWJhci9zdGlja3ktYmFyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcnNlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9pbnRlcnNlY3Rpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGlzTGVhbiwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS50cyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zdGlja3ktYmFyLnNjc3M/bGl0JmlubGluZSc7XG5cbnR5cGUgU3RpY2t5U3RhdGUgPSAnc3RpY2tpbmcnIHwgJ3N0aWNreScgfCAndW5zdGlja2luZycgfCAndW5zdGlja3knO1xuXG4vKipcbiAqIEEgY29udGFpbmVyIHRoYXQgc3RpY2tzIHRvIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgaWYgc2xvdHRlZCBpbnRvIGBzYmItY29udGFpbmVyYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBzdGlja3kgYmFyLlxuICogQGNzc3Byb3AgWy0tc2JiLXN0aWNreS1iYXItcGFkZGluZy1ibG9jaz12YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKV0gLSBCbG9jayBwYWRkaW5nIG9mIHRoZSBzdGlja3kgYmFyLlxuICogQGNzc3Byb3AgWy0tc2JiLXN0aWNreS1iYXItYm90dG9tLW92ZXJsYXBwaW5nLWhlaWdodD0wcHhdIC0gRGVmaW5lIGFuIGFkZGl0aW9uYWwgYXJlYSB3aGVyZVxuICogdGhlIHN0aWNreSBiYXIgb3ZlcmxhcHMgdGhlIGZvbGxvd2luZyBjb250ZW50IG9uIHRoZSBib3R0b20uXG4gKiBUaGlzIGFyZWEgYmVjb21lcyB2aXNpYmxlIHdoZW4gdGhlIHN0aWNreSBiYXIgdHJhbnNpdGlvbnMgZnJvbSBzdGlja3kgdG8gdGhlIG5vcm1hbCBkb2N1bWVudCBmbG93LlxuICogQGNzc3Byb3AgWy0tc2JiLXN0aWNreS1iYXItei1pbmRleF0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXN0aWNreS1iYXInKVxuY2xhc3MgU2JiU3RpY2t5QmFyRWxlbWVudCBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgYmVmb3Jlc3RpY2s6ICdiZWZvcmVzdGljaycsXG4gICAgc3RpY2s6ICdzdGljaycsXG4gICAgYmVmb3JldW5zdGljazogJ2JlZm9yZXVuc3RpY2snLFxuICAgIHVuc3RpY2s6ICd1bnN0aWNrJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogQ29sb3Igb2YgdGhlIGNvbnRhaW5lciwgbGlrZSB0cmFuc3BhcmVudCwgd2hpdGUgZXRjLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBjb2xvcjpcbiAgICB8ICd3aGl0ZSdcbiAgICB8ICdtaWxrJ1xuICAgIHwgJ21pZG5pZ2h0J1xuICAgIHwgJ2NoYXJjb2FsJ1xuICAgIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ20nIHwgJ3MnID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFN0aWNreVN0YXRlKSB7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gICAgdGhpcy5fc3RhdGVJbnRlcm5hbCA9IHN0YXRlO1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTdGlja3lTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlSW50ZXJuYWw7XG4gIH1cbiAgcHJpdmF0ZSBfc3RhdGVJbnRlcm5hbCE6IFN0aWNreVN0YXRlO1xuXG4gIHByaXZhdGUgX2ludGVyc2VjdG9yPzogSFRNTFNwYW5FbGVtZW50O1xuICBwcml2YXRlIF9vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25Db250cm9sbGVyKHRoaXMsIHtcbiAgICAvLyBBbHRob3VnaCBgdGhpc2AgaXMgb2JzZXJ2ZWQsIHdlIGhhdmUgdG8gcG9zdHBvbmUgb2JzZXJ2aW5nXG4gICAgLy8gaW50byBmaXJzdFVwZGF0ZWQoKSB0byBhY2hpZXZlIGEgY29ycmVjdCBpbml0aWFsIHN0YXRlLlxuICAgIHRhcmdldDogbnVsbCxcbiAgICBjYWxsYmFjazogKGVudHJpZXMpID0+IHRoaXMuX2RldGVjdFN0aWNreVN0YXRlKGVudHJpZXNbMF0pLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX3N0YXRlID0gJ3N0aWNreSc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNsb3QgfHw9ICdzdGlja3ktYmFyJztcblxuICAgIC8vIFN0aWNreSBiYXIgbmVlZHMgdG8gYmUgaGlkZGVuIHVudGlsIGZpcnN0IG9ic2VydmVyIGNhbGxiYWNrXG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jbG9zZXN0KCdzYmItY29udGFpbmVyJyk7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnZXhwYW5kZWQnLCBjb250YWluZXIuZXhwYW5kZWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5faW50ZXJzZWN0b3IpIHtcbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5faW50ZXJzZWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2luaXRpYWxpemVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoIXRoaXMuX2ludGVyc2VjdG9yKSB7XG4gICAgICB0aGlzLl9pbnRlcnNlY3RvciA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1zdGlja3ktYmFyX19pbnRlcnNlY3RvcicpITtcbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5faW50ZXJzZWN0b3IpO1xuICAgIH1cbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RTdGlja3lTdGF0ZShlbnRyeTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2luaXRpYWxpemVkJyk7XG5cbiAgICBjb25zdCBpc1N0aWNreSA9ICFlbnRyeS5pc0ludGVyc2VjdGluZyAmJiBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QudG9wID4gMDtcblxuICAgIC8vIFRvIG9wdGltaXplIHRoZSB2aXN1YWwgcGVyY2VwdGlvbiBvZiB0aGUgc3RpY2t5IGJhciwgd2UgaGF2ZSBjZXJ0YWluIGNhc2VzIChlLmcuIG9uIHBhZ2UgbG9hZClcbiAgICAvLyB3aGVyZSB3ZSB3YW50IHRoZSBzdGlja3kgYmFyIHRvIHNsaWRlIGluIGZyb20gdGhlIGJvdHRvbS5cbiAgICAvLyBUbyBkZWNpZGUgd2hldGhlciB0byBzbGlkZSBpbiBmcm9tIHRoZSBib3R0b20gdXAsXG4gICAgLy8gd2UgY2hlY2sgaG93IGZhciBhd2F5IHRoZSBzdGlja3kgYmFyIGlzIGZyb20gdGhlIGludGVyc2VjdG9yIGVsZW1lbnQuIFdoZW4gc2Nyb2xsaW5nIGZhc3QsIHRoZVxuICAgIC8vIGRpZmZlcmVuY2UgY2FuIHZhcnkgc2xpZ2h0bHkuIFRvIGFjY291bnQgZm9yIHRoaXMgd2UgYWRkIGEgaGVpZ2h0IHRvbGVyYW5jZS5cbiAgICAvLyBUaGlzIHZhbHVlIHdhcyBmb3VuZCBieSB0cmlhbCBhbmQgZXJyb3IuXG4gICAgY29uc3QgaW50ZXJzZWN0b3JSZWN0ID0gdGhpcy5faW50ZXJzZWN0b3I/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHN0aWNreUJhclJlY3QgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnLnNiYi1zdGlja3ktYmFyX193cmFwcGVyJyxcbiAgICApIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBIRUlHSFRfVE9MRVJBTkNFID0gMzA7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ3NsaWRlLXZlcnRpY2FsbHknLFxuICAgICAgaXNTdGlja3kgJiZcbiAgICAgICAgdGhpcy5faW50ZXJzZWN0b3IgJiZcbiAgICAgICAgTWF0aC5hYnMoaW50ZXJzZWN0b3JSZWN0IS5ib3R0b20gLSBzdGlja3lCYXJSZWN0LmJvdHRvbSkgPiBIRUlHSFRfVE9MRVJBTkNFLFxuICAgICk7XG5cbiAgICAvLyBUb2dnbGluZyBzdGlja2luZyBoYXMgdG8gYmUgYWZ0ZXIgc2xpZGUtdmVydGljYWxseSAocHJldmVudHMgYmFja2dyb3VuZCBjb2xvciB0cmFuc2l0aW9uKVxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ3N0aWNraW5nJywgaXNTdGlja3kpO1xuXG4gICAgLy8gU3RpY2t5IGJhciBuZWVkcyB0byBiZSBoaWRkZW4gdW50aWwgZmlyc3Qgb2JzZXJ2ZXIgY2FsbGJhY2tcbiAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gIH1cblxuICAvKiogQW5pbWF0ZXMgZnJvbSBub3JtYWwgY29udGVudCBmbG93IHBvc2l0aW9uIHRvIGBwb3NpdGlvbjogc3RpY2t5YC4gKi9cbiAgcHVibGljIHN0aWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ3Vuc3RpY2t5JyB8fCAhdGhpcy5fZGlzcGF0Y2hCZWZvcmVTdGlja0V2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdzdGlja2luZyc7XG4gICAgaWYgKCF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKCdzdGlja2luZycpIHx8IHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX3N0aWNreUNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFuaW1hdGVzIGBwb3NpdGlvbjogc3RpY2t5YCB0byBub3JtYWwgY29udGVudCBmbG93IHBvc2l0aW9uLiAqL1xuICBwdWJsaWMgdW5zdGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdzdGlja3knIHx8ICF0aGlzLl9kaXNwYXRjaEJlZm9yZVVuU3RpY2tFdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUgPSAndW5zdGlja2luZyc7XG5cbiAgICBpZiAoIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ3N0aWNraW5nJykgfHwgdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5fdW5zdGlja3lDYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N0aWNreUNhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ3N0aWNreSc7XG5cbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gbm9ybWFsIGNvbnRlbnQgZmxvdyB0byBgcG9zaXRpb246IHN0aWNreWAgZW5kcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzdGljaycpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Vuc3RpY2t5Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgLyoqIEVtaXRzIHdoZW4gdGhlIGFuaW1hdGlvbiBmcm9tIGBwb3NpdGlvbjogc3RpY2t5YCB0byBub3JtYWwgY29udGVudCBmbG93IGVuZHMuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndW5zdGljaycpKTtcbiAgICB0aGlzLl9zdGF0ZSA9ICd1bnN0aWNreSc7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAodGhpcy5fc3RhdGUgPT09ICdzdGlja2luZycgfHwgdGhpcy5fc3RhdGUgPT09ICdzdGlja3knKSAmJlxuICAgICAgZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ3NsaWRlLWluJ1xuICAgICkge1xuICAgICAgdGhpcy5fc3RpY2t5Q2FsbGJhY2soKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N0YXRlID09PSAndW5zdGlja2luZycgJiYgZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ3NsaWRlLW91dCcpIHtcbiAgICAgIHRoaXMuX3Vuc3RpY2t5Q2FsbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kaXNwYXRjaEJlZm9yZVN0aWNrRXZlbnQoKTogYm9vbGVhbiB7XG4gICAgLyoqIEVtaXRzIHdoZW4gdGhlIGFuaW1hdGlvbiBmcm9tIG5vcm1hbCBjb250ZW50IGZsb3cgdG8gYHBvc2l0aW9uOiBzdGlja3lgIHN0YXJ0cy4gQ2FuIGJlIGNhbmNlbGVkLiAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVzdGljaycsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNwYXRjaEJlZm9yZVVuU3RpY2tFdmVudCgpOiBib29sZWFuIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgc3RhcnRzLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZXVuc3RpY2snLCB7IGNhbmNlbGFibGU6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0aWNreS1iYXJfX3dyYXBwZXJcIiBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0aWNreS1iYXJcIj5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0aWNreS1iYXJfX2ludGVyc2VjdG9yXCI+PC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXN0aWNreS1iYXInOiBTYmJTdGlja3lCYXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
363
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb250YWluZXIvc3RpY2t5LWJhci9zdGlja3ktYmFyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcnNlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9pbnRlcnNlY3Rpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGlzTGVhbiwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS50cyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zdGlja3ktYmFyLnNjc3M/bGl0JmlubGluZSc7XG5cbnR5cGUgU3RpY2t5U3RhdGUgPSAnc3RpY2tpbmcnIHwgJ3N0aWNreScgfCAndW5zdGlja2luZycgfCAndW5zdGlja3knO1xuXG4vKipcbiAqIEEgY29udGFpbmVyIHRoYXQgc3RpY2tzIHRvIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgaWYgc2xvdHRlZCBpbnRvIGBzYmItY29udGFpbmVyYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBzdGlja3kgYmFyLlxuICogQGNzc3Byb3AgWy0tc2JiLXN0aWNreS1iYXItcGFkZGluZy1ibG9jaz12YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKV0gLSBCbG9jayBwYWRkaW5nIG9mIHRoZSBzdGlja3kgYmFyLlxuICogQGNzc3Byb3AgWy0tc2JiLXN0aWNreS1iYXItYm90dG9tLW92ZXJsYXBwaW5nLWhlaWdodD0wcHhdIC0gRGVmaW5lIGFuIGFkZGl0aW9uYWwgYXJlYSB3aGVyZVxuICogdGhlIHN0aWNreSBiYXIgb3ZlcmxhcHMgdGhlIGZvbGxvd2luZyBjb250ZW50IG9uIHRoZSBib3R0b20uXG4gKiBUaGlzIGFyZWEgYmVjb21lcyB2aXNpYmxlIHdoZW4gdGhlIHN0aWNreSBiYXIgdHJhbnNpdGlvbnMgZnJvbSBzdGlja3kgdG8gdGhlIG5vcm1hbCBkb2N1bWVudCBmbG93LlxuICogQGNzc3Byb3AgWy0tc2JiLXN0aWNreS1iYXItei1pbmRleF0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXN0aWNreS1iYXInKVxuY2xhc3MgU2JiU3RpY2t5QmFyRWxlbWVudCBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgYmVmb3Jlc3RpY2s6ICdiZWZvcmVzdGljaycsXG4gICAgc3RpY2s6ICdzdGljaycsXG4gICAgYmVmb3JldW5zdGljazogJ2JlZm9yZXVuc3RpY2snLFxuICAgIHVuc3RpY2s6ICd1bnN0aWNrJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogQ29sb3Igb2YgdGhlIGNvbnRhaW5lciwgbGlrZSB0cmFuc3BhcmVudCwgd2hpdGUgZXRjLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBjb2xvcjpcbiAgICB8ICd3aGl0ZSdcbiAgICB8ICdtaWxrJ1xuICAgIHwgJ21pZG5pZ2h0J1xuICAgIHwgJ2NoYXJjb2FsJ1xuICAgIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ20nIHwgJ3MnID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFN0aWNreVN0YXRlKSB7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gICAgdGhpcy5fc3RhdGVJbnRlcm5hbCA9IHN0YXRlO1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTdGlja3lTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlSW50ZXJuYWw7XG4gIH1cbiAgcHJpdmF0ZSBfc3RhdGVJbnRlcm5hbCE6IFN0aWNreVN0YXRlO1xuXG4gIHByaXZhdGUgX2ludGVyc2VjdG9yPzogSFRNTFNwYW5FbGVtZW50O1xuICBwcml2YXRlIF9vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25Db250cm9sbGVyKHRoaXMsIHtcbiAgICAvLyBBbHRob3VnaCBgdGhpc2AgaXMgb2JzZXJ2ZWQsIHdlIGhhdmUgdG8gcG9zdHBvbmUgb2JzZXJ2aW5nXG4gICAgLy8gaW50byBmaXJzdFVwZGF0ZWQoKSB0byBhY2hpZXZlIGEgY29ycmVjdCBpbml0aWFsIHN0YXRlLlxuICAgIHRhcmdldDogbnVsbCxcbiAgICBjYWxsYmFjazogKGVudHJpZXMpID0+IHRoaXMuX2RldGVjdFN0aWNreVN0YXRlKGVudHJpZXNbMF0pLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX3N0YXRlID0gJ3N0aWNreSc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNsb3QgfHw9ICdzdGlja3ktYmFyJztcblxuICAgIC8vIFN0aWNreSBiYXIgbmVlZHMgdG8gYmUgaGlkZGVuIHVudGlsIGZpcnN0IG9ic2VydmVyIGNhbGxiYWNrXG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jbG9zZXN0KCdzYmItY29udGFpbmVyJyk7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnZXhwYW5kZWQnLCBjb250YWluZXIuZXhwYW5kZWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5faW50ZXJzZWN0b3IpIHtcbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5faW50ZXJzZWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2luaXRpYWxpemVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoIXRoaXMuX2ludGVyc2VjdG9yKSB7XG4gICAgICB0aGlzLl9pbnRlcnNlY3RvciA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1zdGlja3ktYmFyX19pbnRlcnNlY3RvcicpITtcbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5faW50ZXJzZWN0b3IpO1xuICAgIH1cbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RTdGlja3lTdGF0ZShlbnRyeTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2luaXRpYWxpemVkJyk7XG5cbiAgICBjb25zdCBpc1N0aWNreSA9ICFlbnRyeS5pc0ludGVyc2VjdGluZyAmJiBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QudG9wID4gMDtcblxuICAgIC8vIFRvIG9wdGltaXplIHRoZSB2aXN1YWwgcGVyY2VwdGlvbiBvZiB0aGUgc3RpY2t5IGJhciwgd2UgaGF2ZSBjZXJ0YWluIGNhc2VzIChlLmcuIG9uIHBhZ2UgbG9hZClcbiAgICAvLyB3aGVyZSB3ZSB3YW50IHRoZSBzdGlja3kgYmFyIHRvIHNsaWRlIGluIGZyb20gdGhlIGJvdHRvbS5cbiAgICAvLyBUbyBkZWNpZGUgd2hldGhlciB0byBzbGlkZSBpbiBmcm9tIHRoZSBib3R0b20gdXAsXG4gICAgLy8gd2UgY2hlY2sgaG93IGZhciBhd2F5IHRoZSBzdGlja3kgYmFyIGlzIGZyb20gdGhlIGludGVyc2VjdG9yIGVsZW1lbnQuIFdoZW4gc2Nyb2xsaW5nIGZhc3QsIHRoZVxuICAgIC8vIGRpZmZlcmVuY2UgY2FuIHZhcnkgc2xpZ2h0bHkuIFRvIGFjY291bnQgZm9yIHRoaXMgd2UgYWRkIGEgaGVpZ2h0IHRvbGVyYW5jZS5cbiAgICAvLyBUaGlzIHZhbHVlIHdhcyBmb3VuZCBieSB0cmlhbCBhbmQgZXJyb3IuXG4gICAgY29uc3QgaW50ZXJzZWN0b3JSZWN0ID0gdGhpcy5faW50ZXJzZWN0b3I/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHN0aWNreUJhclJlY3QgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnLnNiYi1zdGlja3ktYmFyX193cmFwcGVyJyxcbiAgICApIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBIRUlHSFRfVE9MRVJBTkNFID0gMzA7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ3NsaWRlLXZlcnRpY2FsbHknLFxuICAgICAgaXNTdGlja3kgJiZcbiAgICAgICAgdGhpcy5faW50ZXJzZWN0b3IgJiZcbiAgICAgICAgTWF0aC5hYnMoaW50ZXJzZWN0b3JSZWN0IS5ib3R0b20gLSBzdGlja3lCYXJSZWN0LmJvdHRvbSkgPiBIRUlHSFRfVE9MRVJBTkNFLFxuICAgICk7XG5cbiAgICAvLyBUb2dnbGluZyBzdGlja2luZyBoYXMgdG8gYmUgYWZ0ZXIgc2xpZGUtdmVydGljYWxseSAocHJldmVudHMgYmFja2dyb3VuZCBjb2xvciB0cmFuc2l0aW9uKVxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ3N0aWNraW5nJywgaXNTdGlja3kpO1xuXG4gICAgLy8gU3RpY2t5IGJhciBuZWVkcyB0byBiZSBoaWRkZW4gdW50aWwgZmlyc3Qgb2JzZXJ2ZXIgY2FsbGJhY2tcbiAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gIH1cblxuICAvKiogQW5pbWF0ZXMgZnJvbSBub3JtYWwgY29udGVudCBmbG93IHBvc2l0aW9uIHRvIGBwb3NpdGlvbjogc3RpY2t5YC4gKi9cbiAgcHVibGljIHN0aWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ3Vuc3RpY2t5JyB8fCAhdGhpcy5fZGlzcGF0Y2hCZWZvcmVTdGlja0V2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdzdGlja2luZyc7XG4gICAgaWYgKCF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKCdzdGlja2luZycpIHx8IHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX3N0aWNreUNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFuaW1hdGVzIGBwb3NpdGlvbjogc3RpY2t5YCB0byBub3JtYWwgY29udGVudCBmbG93IHBvc2l0aW9uLiAqL1xuICBwdWJsaWMgdW5zdGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdzdGlja3knIHx8ICF0aGlzLl9kaXNwYXRjaEJlZm9yZVVuU3RpY2tFdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUgPSAndW5zdGlja2luZyc7XG5cbiAgICBpZiAoIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ3N0aWNraW5nJykgfHwgdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5fdW5zdGlja3lDYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N0aWNreUNhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ3N0aWNreSc7XG5cbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gbm9ybWFsIGNvbnRlbnQgZmxvdyB0byBgcG9zaXRpb246IHN0aWNreWAgZW5kcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzdGljaycpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Vuc3RpY2t5Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgLyoqIEVtaXRzIHdoZW4gdGhlIGFuaW1hdGlvbiBmcm9tIGBwb3NpdGlvbjogc3RpY2t5YCB0byBub3JtYWwgY29udGVudCBmbG93IGVuZHMuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndW5zdGljaycpKTtcbiAgICB0aGlzLl9zdGF0ZSA9ICd1bnN0aWNreSc7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAodGhpcy5fc3RhdGUgPT09ICdzdGlja2luZycgfHwgdGhpcy5fc3RhdGUgPT09ICdzdGlja3knKSAmJlxuICAgICAgZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ3NsaWRlLWluJ1xuICAgICkge1xuICAgICAgdGhpcy5fc3RpY2t5Q2FsbGJhY2soKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N0YXRlID09PSAndW5zdGlja2luZycgJiYgZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ3NsaWRlLW91dCcpIHtcbiAgICAgIHRoaXMuX3Vuc3RpY2t5Q2FsbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kaXNwYXRjaEJlZm9yZVN0aWNrRXZlbnQoKTogYm9vbGVhbiB7XG4gICAgLyoqIEVtaXRzIHdoZW4gdGhlIGFuaW1hdGlvbiBmcm9tIG5vcm1hbCBjb250ZW50IGZsb3cgdG8gYHBvc2l0aW9uOiBzdGlja3lgIHN0YXJ0cy4gQ2FuIGJlIGNhbmNlbGVkLiAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVzdGljaycsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNwYXRjaEJlZm9yZVVuU3RpY2tFdmVudCgpOiBib29sZWFuIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgc3RhcnRzLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZXVuc3RpY2snLCB7IGNhbmNlbGFibGU6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0aWNreS1iYXJfX3dyYXBwZXJcIiBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0aWNreS1iYXJcIj5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0aWNreS1iYXJfX2ludGVyc2VjdG9yXCI+PC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXN0aWNreS1iYXInOiBTYmJTdGlja3lCYXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -147,4 +147,4 @@ export {
147
147
  NativeDateAdapter,
148
148
  defaultDateAdapter
149
149
  };
150
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGF0ZXRpbWUvbmF0aXZlLWRhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy50cyc7XG5cbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnLi9kYXRlLWFkYXB0ZXIudHMnO1xuXG4vKipcbiAqIE1hdGNoZXMgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIGZvcm0gb2YgYSB2YWxpZCBSRkMgMzMzOSBzdHJpbmdcbiAqIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSkuIE5vdGUgdGhhdCB0aGUgc3RyaW5nIG1heSBub3QgYWN0dWFsbHkgYmUgYSB2YWxpZCBkYXRlXG4gKiBiZWNhdXNlIHRoZSByZWdleCB3aWxsIG1hdGNoIHN0cmluZ3MgYW4gd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmVzIHdoaWNoIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvKiogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBnaXZlbiB0aGUgeWVhciBhbmQgdGhlIG1vbnRoLiAqL1xuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcihkYXRlKSwgdGhpcy5nZXRNb250aChkYXRlKSwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIgZm9yIG1vbnRoIFwiJHttb250aH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuICovXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBEYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGRhdGUgaXMgRGF0ZSB7XG4gICAgcmV0dXJuICEhZGF0ZSAmJiAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIHllYXJzICogMTIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgbW9udGhzO1xuICAgIGNvbnN0IGRhdGVXaXRoQ29ycmVjdE1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCB0YXJnZXRNb250aCwgMSwgMCwgMCwgMCwgMCk7XG4gICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmdldE51bURheXNJbk1vbnRoKGRhdGVXaXRoQ29ycmVjdE1vbnRoKTtcbiAgICAvLyBBZGFwdCB0aGUgbGFzdCBkYXkgb2YgbW9udGggZm9yIHNob3J0ZXIgbW9udGhzXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2xvbmUoZGF0ZSkuc2V0TW9udGgodGFyZ2V0TW9udGgsIE1hdGgubWluKGRheXNJbk1vbnRoLCBkYXRlLmdldERhdGUoKSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0RGF5ID0gZGF0ZS5nZXREYXRlKCkgKyBkYXlzO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgdGFyZ2V0RGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKERhdGUgb3IgSVNPIHN0cmluZykuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgLy8gVGhlIGBEYXRlYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGZvcm1hdHMgb3RoZXIgdGhhbiBJU08gODYwMSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlXG4gICAgICAgIC8vIHN0cmluZyBpcyB0aGUgcmlnaHQgZm9ybWF0IGZpcnN0LlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoZGF0ZS5pbmNsdWRlcygnVCcpID8gZGF0ZSA6IGRhdGUgKyAnVDAwOjAwOjAwJykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBkYXRlIGJ1dCBhbGxvd3MgdGhlIG1vbnRoIGFuZCBkYXRlIHRvIG92ZXJmbG93LiAqL1xuICBwcml2YXRlIF9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIC8vIFdlIG5lZWQgdG8gY29ycmVjdCBmb3IgdGhlIGZhY3QgdGhhdCBKUyBuYXRpdmUgRGF0ZSB0cmVhdHMgeWVhcnMgaW4gcmFuZ2UgWzAsIDk5XSBhc1xuICAgIC8vIGFiYnJldmlhdGlvbnMgZm9yIDE5eHguXG4gICAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgICByZXN1bHQuc2V0RnVsbFllYXIodGhpcy5nZXRZZWFyKHJlc3VsdCkgLSAxOTAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVBZGFwdGVyID0gbmV3IE5hdGl2ZURhdGVBZGFwdGVyKCk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxNQUFNLGlCQUNKO0FBRUksTUFBTywwQkFBMEIsWUFBaUI7QUFBQTtBQUFBLEVBRS9DLFFBQVEsTUFBVTtBQUN2QixXQUFPLEtBQUssWUFBQTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBR08sU0FBUyxNQUFVO0FBQ3hCLFdBQU8sS0FBSyxhQUFhO0FBQUEsRUFDM0I7QUFBQTtBQUFBLEVBR08sUUFB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
150
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGF0ZXRpbWUvbmF0aXZlLWRhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy50cyc7XG5cbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnLi9kYXRlLWFkYXB0ZXIudHMnO1xuXG4vKipcbiAqIE1hdGNoZXMgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIGZvcm0gb2YgYSB2YWxpZCBSRkMgMzMzOSBzdHJpbmdcbiAqIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSkuIE5vdGUgdGhhdCB0aGUgc3RyaW5nIG1heSBub3QgYWN0dWFsbHkgYmUgYSB2YWxpZCBkYXRlXG4gKiBiZWNhdXNlIHRoZSByZWdleCB3aWxsIG1hdGNoIHN0cmluZ3MgYW5kIHdpdGhvdXQgb2YgYm91bmRzIG1vbnRoLCBkYXRlLCBldGMuXG4gKi9cbmNvbnN0IElTT184NjAxX1JFR0VYID1cbiAgL15cXGR7NH0tXFxkezJ9LVxcZHsyfSg/OlRcXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZCspPyg/Olp8KD86KD86XFwrfC0pXFxkezJ9OlxcZHsyfSkpPyk/JC87XG5cbmV4cG9ydCBjbGFzcyBOYXRpdmVEYXRlQWRhcHRlciBleHRlbmRzIERhdGVBZGFwdGVyPERhdGU+IHtcbiAgLyoqIEdldHMgdGhlIHllYXIgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXRZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgbW9udGggb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXRNb250aChkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRNb250aCgpICsgMTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXkgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXREYXRlKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldERhdGUoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWsoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF5KCk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF0ZSBpbiB0aGUgbG9jYWwgZm9ybWF0LiAqL1xuICBwdWJsaWMgZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZTogRGF0ZSB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgb3B0aW9uczogSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMgPSB7XG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ2xvbmcnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgfTtcbiAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIG9wdGlvbnMpLmZvcm1hdChuZXcgRGF0ZShkYXRlKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBzdHJpbmdzIHdpdGggbGVuZ3RoID0gMTIsIGZpbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBtb250aHMgc3RhcnRpbmcgZnJvbSBKYW51YXJ5LCBpbiB0aGUgZG9jdW1lbnQgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBzdHlsZSBTZWUgYG1vbnRoYCBpbiBgRGF0ZVRpbWVGb3JtYXRPcHRpb25zYDogYGxvbmdgIGZvciBmdWxsIG5hbWUsIGBzaG9ydGAgZm9yIHNob3J0IG5hbWUsIGBuYXJyb3dgIGZvciBzaW5nbGUgbGV0dGVyLFxuICAgKiBFLmcuLCB3aXRoIEphbnVhcnkgaW4gZW4tZ2I6IGBsb25nYCByZXR1cm5zIFwiSmFudWFyeVwiLCBgc2hvcnRgIHJldHVybnMgXCJKYW5cIiwgYG5hcnJvd2AgcmV0dXJucyBcIkpcIi5cbiAgICovXG4gIHB1YmxpYyBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgbW9udGg6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSgxMiwgKGkpID0+IGZvcm1hdHRlci5mb3JtYXQobmV3IERhdGUoMjAxNywgaSwgMSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gMzEsIGZpbGxlZCB3aXRoIHRoZSBkYXlzIGluIGEgbW9udGgsIHN0YXJ0aW5nIGZyb20gMS4gKi9cbiAgcHVibGljIGdldERhdGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgZGF5OiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDMxLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gNywgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIGRheXMgaW4gYSB3ZWVrIHN0YXJ0aW5nIGZyb20gU3VuZGF5LCBpbiB0aGUgZG9jdW1lbnQgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBzdHlsZSBTZWUgYHdlZWtkYXlgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgIC0gJ2xvbmcnIGZvciBmdWxsIG5hbWUsICdzaG9ydCcgZm9yIHNob3J0IG5hbWUsICduYXJyb3cnIGZvciBzaW5nbGUgbGV0dGVyO1xuICAgKiBFLmcuLCB3aXRoIE1vbmRheSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJNb25kYXlcIiwgYHNob3J0YCByZXR1cm5zIFwiTW9uXCIsIGBuYXJyb3dgIHJldHVybnMgXCJNXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyB3ZWVrZGF5OiBzdHlsZSB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoNywgKGkpID0+IGZvcm1hdHRlci5mb3JtYXQobmV3IERhdGUoMjAxNywgMCwgaSArIDEpKSk7XG4gIH1cblxuICAvKiogRGVmaW5lcyB3aGljaCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggZ2l2ZW4gdGhlIHllYXIgYW5kIHRoZSBtb250aC4gKi9cbiAgcHVibGljIGdldE51bURheXNJbk1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldERhdGUodGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIHRvZGF5KCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldEhvdXJzKDAsIDAsIDAsIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUsIGdpdmVuIGRheSwgbW9udGggYW5kIHllYXI7IHRoZSBtZXRob2QgZG9lc24ndCBhbGxvdyBkYXRlJ3Mgb3ZlcmZsb3cuICovXG4gIHB1YmxpYyBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF5OiBudW1iZXIpOiBEYXRlIHtcbiAgICAvLyBDaGVjayBmb3IgaW52YWxpZCBtb250aCBhbmQgZGF0ZSAoZXhjZXB0IHVwcGVyIGJvdW5kIG9uIGRhdGUgd2hpY2ggd2UgaGF2ZSB0byBjaGVjayBhZnRlciBjcmVhdGluZyB0aGUgRGF0ZSkuXG4gICAgaWYgKG1vbnRoIDwgMSB8fCBtb250aCA+IDEyKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBcIiR7bW9udGh9XCIuIE1vbnRoIGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIDEyLmApO1xuICAgIH0gZWxzZSBpZiAoZGF5IDwgMSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIuIERheSBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh5ZWFyLCBtb250aCAtIDEsIGRheSk7XG4gICAgLy8gQ2hlY2sgdGhhdCB0aGUgZGF0ZSB3YXNuJ3QgYWJvdmUgdGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgbW9udGgsIGNhdXNpbmcgdGhlIG1vbnRoIHRvIG92ZXJmbG93XG4gICAgaWYgKHJlc3VsdC5nZXRNb250aCgpICsgMSAhPT0gbW9udGgpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRheSBcIiR7ZGF5fVwiIGZvciBtb250aCBcIiR7bW9udGh9XCIuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYG9iamAgaXMgYSBEYXRlLiAqL1xuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGF0ZTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYGRhdGVgIGlzIGEgdmFsaWQgRGF0ZS4gKi9cbiAgcHVibGljIGlzVmFsaWQoZGF0ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIERhdGUge1xuICAgIHJldHVybiAhIWRhdGUgJiYgIWlzTmFOKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgY2xvbmluZyB0aGUgZ2l2ZW4gb25lLiAqL1xuICBwdWJsaWMgY2xvbmUoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGB5ZWFyc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSB5ZWFycyBUaGUgbnVtYmVyIG9mIHllYXJzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhclllYXJzKGRhdGU6IERhdGUsIHllYXJzOiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDYWxlbmRhck1vbnRocyhkYXRlLCB5ZWFycyAqIDEyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYG1vbnRoc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogSWYgdGhlIGNhbGN1bGF0ZWQgbW9udGggaGFzIGZld2VyIGRheXMgdGhhbiB0aGUgb3JpZ2luYWwgb25lLCB0aGUgZGF0ZSBpcyBzZXQgdG8gdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aC5cbiAgICogRS5nLiwgd2l0aCBgZGF0ZWAgPSBuZXcgRGF0ZSgyMDIyLCAwLCAzMSkgYW5kIGBtb250aHNgID0gMSwgaXQgcmV0dXJucyBuZXcgRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogRGF0ZSwgbW9udGhzOiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCB0YXJnZXRNb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIG1vbnRocztcbiAgICBjb25zdCBkYXRlV2l0aENvcnJlY3RNb250aCA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgdGFyZ2V0TW9udGgsIDEsIDAsIDAsIDAsIDApO1xuICAgIGNvbnN0IGRheXNJbk1vbnRoID0gdGhpcy5nZXROdW1EYXlzSW5Nb250aChkYXRlV2l0aENvcnJlY3RNb250aCk7XG4gICAgLy8gQWRhcHQgdGhlIGxhc3QgZGF5IG9mIG1vbnRoIGZvciBzaG9ydGVyIG1vbnRoc1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmNsb25lKGRhdGUpLnNldE1vbnRoKHRhcmdldE1vbnRoLCBNYXRoLm1pbihkYXlzSW5Nb250aCwgZGF0ZS5nZXREYXRlKCkpKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBkYXlzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLiAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IERhdGUsIGRheXM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldERheSA9IGRhdGUuZ2V0RGF0ZSgpICsgZGF5cztcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIHRhcmdldERheSwgMCwgMCwgMCwgMCk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIERhdGUgZnJvbSBhIHZhbGlkIGlucHV0IChEYXRlIG9yIElTTyBzdHJpbmcpLiAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZGVzZXJpYWxpemUoZGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIGlmIChJU09fODYwMV9SRUdFWC50ZXN0KGRhdGUpKSB7XG4gICAgICAgIC8vIFRoZSBgRGF0ZWAgY29uc3RydWN0b3IgYWNjZXB0cyBmb3JtYXRzIG90aGVyIHRoYW4gSVNPIDg2MDEsIHNvIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZVxuICAgICAgICAvLyBzdHJpbmcgaXMgdGhlIHJpZ2h0IGZvcm1hdCBmaXJzdC5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUuaW5jbHVkZXMoJ1QnKSA/IGRhdGUgOiBkYXRlICsgJ1QwMDowMDowMCcpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKGRhdGUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGludmFsaWQoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSB3aXRoIHRoZSBnaXZlbiBsZW5ndGggYW5kIGZpbGxzIGl0IGJ5IG1hcHBpbmcgd2l0aCB0aGUgcHJvdmlkZWQgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgdG8gYmUgY3JlYXRlZC5cbiAgICogQHBhcmFtIHZhbHVlRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIG9mIGFycmF5J3MgaW5kZXggdXNlZCB0byBmaWxsIHRoZSBhcnJheS5cbiAgICovXG4gIHByaXZhdGUgX3JhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCB2YWx1ZUZ1bmN0aW9uOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSkubWFwKChfLCBpKSA9PiB2YWx1ZUZ1bmN0aW9uKGkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgZGF0ZSBidXQgYWxsb3dzIHRoZSBtb250aCBhbmQgZGF0ZSB0byBvdmVyZmxvdy4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXRlKTtcbiAgICAvLyBXZSBuZWVkIHRvIGNvcnJlY3QgZm9yIHRoZSBmYWN0IHRoYXQgSlMgbmF0aXZlIERhdGUgdHJlYXRzIHllYXJzIGluIHJhbmdlIFswLCA5OV0gYXNcbiAgICAvLyBhYmJyZXZpYXRpb25zIGZvciAxOXh4LlxuICAgIGlmICh5ZWFyID49IDAgJiYgeWVhciA8IDEwMCkge1xuICAgICAgcmVzdWx0LnNldEZ1bGxZZWFyKHRoaXMuZ2V0WWVhcihyZXN1bHQpIC0gMTkwMCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHREYXRlQWRhcHRlciA9IG5ldyBOYXRpdmVEYXRlQWRhcHRlcigpO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0EsTUFBTSxpQkFDSjtBQUVJLE1BQU8sMEJBQTBCLFlBQWlCO0FBQUE7QUFBQSxFQUUvQyxRQUFRLE1BQVU7QUFDdkIsV0FBTyxLQUFLLFlBQUE7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUdPLFNBQVMsTUFBVTtBQUN4QixXQUFPLEtBQUssYUFBYTtBQUFBLEVBQzNCO0FBQUE7QUFBQSxFQUdPLFFB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
@@ -1,5 +1,12 @@
1
1
  import { DateAdapter } from './date-adapter.ts';
2
2
  export declare class TemporalDateAdapter extends DateAdapter<Temporal.PlainDate> {
3
+ /**
4
+ * @param cutoffYearOffset The threshold on whether a two-digit year
5
+ * should be treated as belonging to 2000 or 1900. e.g. with 15 (default)
6
+ * the current year plus 15 will be treated as belonging to 2000, and the rest to 1900.
7
+ * So e.g. with the current year 2025, 40 will be treated as 2040, while 41 will be treated as 1941.
8
+ */
9
+ constructor(cutoffYearOffset?: number);
3
10
  /** Gets the year of the input date. */
4
11
  getYear(date: Temporal.PlainDate): number;
5
12
  /** Gets the month of the input date. */
@@ -63,5 +70,4 @@ export declare class TemporalDateAdapter extends DateAdapter<Temporal.PlainDate>
63
70
  */
64
71
  private _range;
65
72
  }
66
- export declare const temporalDateAdapter: TemporalDateAdapter;
67
73
  //# sourceMappingURL=temporal-date-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"temporal-date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/temporal-date-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBhD,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;IACtE,uCAAuC;IAChC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAIhD,wCAAwC;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAIjD,sCAAsC;IAC/B,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAIhD,kDAAkD;IAC3C,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAMrD,yCAAyC;IAClC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM;IAS5E;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAOlE,iGAAiG;IAC1F,YAAY,IAAI,MAAM,EAAE;IAO/B;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAOtE,+EAA+E;IACxE,iBAAiB,IAAI,MAAM;IAIlC,6EAA6E;IACtE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAI1D,4BAA4B;IACrB,KAAK,IAAI,QAAQ,CAAC,SAAS;IAIlC,+FAA+F;IACxF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS;IAe/E,8DAA8D;IACvD,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAIxC,qEAAqE;IAC9D,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAAC,SAAS;IAIvF,mDAAmD;IAC5C,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS;IAI1D;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS;IAIpF;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS;IAItF,yFAAyF;IAClF,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS;IAIlF,0FAA0F;IAC1E,WAAW,CACzB,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GACnD,QAAQ,CAAC,SAAS,GAAG,IAAI;IAYZ,OAAO,IAAI,QAAQ,CAAC,SAAS;IAK7B,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAI3D;;;;OAIG;IACH,OAAO,CAAC,MAAM;CAGf;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
1
+ {"version":3,"file":"temporal-date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/temporal-date-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUhD,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;IACtE;;;;;OAKG;gBACgB,gBAAgB,CAAC,EAAE,MAAM;IAS5C,uCAAuC;IAChC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAIhD,wCAAwC;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAIjD,sCAAsC;IAC/B,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAIhD,kDAAkD;IAC3C,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAMrD,yCAAyC;IAClC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM;IAS5E;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAOlE,iGAAiG;IAC1F,YAAY,IAAI,MAAM,EAAE;IAO/B;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAOtE,+EAA+E;IACxE,iBAAiB,IAAI,MAAM;IAIlC,6EAA6E;IACtE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAI1D,4BAA4B;IACrB,KAAK,IAAI,QAAQ,CAAC,SAAS;IAIlC,+FAA+F;IACxF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS;IAe/E,8DAA8D;IACvD,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAIxC,qEAAqE;IAC9D,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAAC,SAAS;IAIvF,mDAAmD;IAC5C,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS;IAI1D;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS;IAIpF;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS;IAItF,yFAAyF;IAClF,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS;IAIlF,0FAA0F;IAC1E,WAAW,CACzB,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GACnD,QAAQ,CAAC,SAAS,GAAG,IAAI;IAYZ,OAAO,IAAI,QAAQ,CAAC,SAAS;IAK7B,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM;IAI3D;;;;OAIG;IACH,OAAO,CAAC,MAAM;CAGf"}
@@ -1,10 +1,19 @@
1
1
  import { SbbLanguageController } from "../controllers.js";
2
2
  import { DateAdapter } from "./date-adapter.js";
3
3
  const ISO_8601_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;
4
- if (typeof Temporal !== "object") {
5
- throw new Error("Temporal is not available in the current environment. Please make sure to include the temporal polyfill.");
6
- }
7
4
  class TemporalDateAdapter extends DateAdapter {
5
+ /**
6
+ * @param cutoffYearOffset The threshold on whether a two-digit year
7
+ * should be treated as belonging to 2000 or 1900. e.g. with 15 (default)
8
+ * the current year plus 15 will be treated as belonging to 2000, and the rest to 1900.
9
+ * So e.g. with the current year 2025, 40 will be treated as 2040, while 41 will be treated as 1941.
10
+ */
11
+ constructor(cutoffYearOffset) {
12
+ super(cutoffYearOffset);
13
+ if (typeof Temporal !== "object") {
14
+ throw new Error("Temporal is not available in the current environment. Please make sure to include the temporal polyfill.");
15
+ }
16
+ }
8
17
  /** Gets the year of the input date. */
9
18
  getYear(date) {
10
19
  return date.year;
@@ -136,9 +145,7 @@ class TemporalDateAdapter extends DateAdapter {
136
145
  return Array.from({ length }).map((_, i) => valueFunction(i));
137
146
  }
138
147
  }
139
- const temporalDateAdapter = new TemporalDateAdapter();
140
148
  export {
141
- TemporalDateAdapter,
142
- temporalDateAdapter
149
+ TemporalDateAdapter
143
150
  };
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS90ZW1wb3JhbC1kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ0ZW1wb3JhbC1wb2x5ZmlsbC9nbG9iYWxcIiAvPlxuXG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy50cyc7XG5cbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnLi9kYXRlLWFkYXB0ZXIudHMnO1xuXG4vKipcbiAqIE1hdGNoZXMgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIGZvcm0gb2YgYSB2YWxpZCBSRkMgMzMzOSBzdHJpbmdcbiAqIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSkuIE5vdGUgdGhhdCB0aGUgc3RyaW5nIG1heSBub3QgYWN0dWFsbHkgYmUgYSB2YWxpZCBkYXRlXG4gKiBiZWNhdXNlIHRoZSByZWdleCB3aWxsIG1hdGNoIHN0cmluZ3MgYW4gd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuaWYgKHR5cGVvZiBUZW1wb3JhbCAhPT0gJ29iamVjdCcpIHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdUZW1wb3JhbCBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LiBQbGVhc2UgbWFrZSBzdXJlIHRvIGluY2x1ZGUgdGhlIHRlbXBvcmFsIHBvbHlmaWxsLicsXG4gICk7XG59XG5cbmV4cG9ydCBjbGFzcyBUZW1wb3JhbERhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8VGVtcG9yYWwuUGxhaW5EYXRlPiB7XG4gIC8qKiBHZXRzIHRoZSB5ZWFyIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0WWVhcihkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLnllYXI7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgbW9udGggb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXRNb250aChkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLm1vbnRoO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5kYXk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgLy8gT3VyIGV4cGVjdGF0aW9uIGlzIDAgPSBTdW5kYXkgYnV0IFRlbXBvcmFsLlBsYWluRGF0ZS5kYXlPZldlZWsgcmV0dXJucyA3ID0gU3VuZGF5XG4gICAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgd2l0aCBhIGZ1dHVyZSByZWxlYXNlLlxuICAgIHJldHVybiBkYXRlLmRheU9mV2VlayAlIDc7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF0ZSBpbiB0aGUgbG9jYWwgZm9ybWF0LiAqL1xuICBwdWJsaWMgZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplKGRhdGUpIS50b0xvY2FsZVN0cmluZyhTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBzdHJpbmdzIHdpdGggbGVuZ3RoID0gMTIsIGZpbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBtb250aHMgc3RhcnRpbmcgZnJvbSBKYW51YXJ5LCBpbiB0aGUgZG9jdW1lbnQgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBzdHlsZSBTZWUgYG1vbnRoYCBpbiBgRGF0ZVRpbWVGb3JtYXRPcHRpb25zYDogYGxvbmdgIGZvciBmdWxsIG5hbWUsIGBzaG9ydGAgZm9yIHNob3J0IG5hbWUsIGBuYXJyb3dgIGZvciBzaW5nbGUgbGV0dGVyLFxuICAgKiBFLmcuLCB3aXRoIEphbnVhcnkgaW4gZW4tZ2I6IGBsb25nYCByZXR1cm5zIFwiSmFudWFyeVwiLCBgc2hvcnRgIHJldHVybnMgXCJKYW5cIiwgYG5hcnJvd2AgcmV0dXJucyBcIkpcIi5cbiAgICovXG4gIHB1YmxpYyBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgbW9udGg6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSgxMiwgKGkpID0+XG4gICAgICBmb3JtYXR0ZXIuZm9ybWF0KFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhcjogMjAxNywgbW9udGg6IGkgKyAxLCBkYXk6IDEgfSkpLFxuICAgICk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IGRheTogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSgzMSwgKGkpID0+XG4gICAgICBmb3JtYXR0ZXIuZm9ybWF0KFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhcjogMjAxNywgbW9udGg6IDEsIGRheTogaSArIDEgfSkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDcsIGZpbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBkYXlzIGluIGEgd2VlayBzdGFydGluZyBmcm9tIFN1bmRheSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGB3ZWVrZGF5YCBpbiBgRGF0ZVRpbWVGb3JtYXRPcHRpb25zYCAtICdsb25nJyBmb3IgZnVsbCBuYW1lLCAnc2hvcnQnIGZvciBzaG9ydCBuYW1lLCAnbmFycm93JyBmb3Igc2luZ2xlIGxldHRlcjtcbiAgICogRS5nLiwgd2l0aCBNb25kYXkgaW4gZW4tZ2I6IGBsb25nYCByZXR1cm5zIFwiTW9uZGF5XCIsIGBzaG9ydGAgcmV0dXJucyBcIk1vblwiLCBgbmFycm93YCByZXR1cm5zIFwiTVwiLlxuICAgKi9cbiAgcHVibGljIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgd2Vla2RheTogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDcsIChpKSA9PlxuICAgICAgZm9ybWF0dGVyLmZvcm1hdChUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbSh7IHllYXI6IDIwMTcsIG1vbnRoOiAxLCBkYXk6IGkgKyAxIH0pKSxcbiAgICApO1xuICB9XG5cbiAgLyoqIERlZmluZXMgd2hpY2ggaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMDogc3VuZGF5OyAxOiBtb25kYXk7IGV0Yy4pLiAqL1xuICBwdWJsaWMgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhdGVzIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoIGdpdmVuIHRoZSB5ZWFyIGFuZCB0aGUgbW9udGguICovXG4gIHB1YmxpYyBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmRheXNJbk1vbnRoO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICByZXR1cm4gVGVtcG9yYWwuTm93LnBsYWluRGF0ZUlTTygpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgbW9udGggYW5kIGRhdGUgKGV4Y2VwdCB1cHBlciBib3VuZCBvbiBkYXRlIHdoaWNoIHdlIGhhdmUgdG8gY2hlY2sgYWZ0ZXIgY3JlYXRpbmcgdGhlIFRlbXBvcmFsLlBsYWluRGF0ZSkuXG4gICAgaWYgKG1vbnRoIDwgMSB8fCBtb250aCA+IDEyKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBcIiR7bW9udGh9XCIuIE1vbnRoIGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIDEyLmApO1xuICAgIH0gZWxzZSBpZiAoZGF5IDwgMSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIuIERheSBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuYCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbSh7IHllYXIsIG1vbnRoLCBkYXk6IGRheSB9LCB7IG92ZXJmbG93OiAncmVqZWN0JyB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RheX1cIiBmb3IgbW9udGggd2l0aCBpbmRleCBcIiR7bW9udGh9XCIuYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIFRlbXBvcmFsLlBsYWluRGF0ZS4gKi9cbiAgcHVibGljIGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIFRlbXBvcmFsLlBsYWluRGF0ZTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYGRhdGVgIGlzIGEgdmFsaWQgVGVtcG9yYWwuUGxhaW5EYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogZGF0ZSBpcyBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKGRhdGUpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbShkYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlLCB5ZWFyczogbnVtYmVyKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICByZXR1cm4gZGF0ZS5hZGQoeyB5ZWFycyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYG1vbnRoc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogSWYgdGhlIGNhbGN1bGF0ZWQgbW9udGggaGFzIGZld2VyIGRheXMgdGhhbiB0aGUgb3JpZ2luYWwgb25lLCB0aGUgZGF0ZSBpcyBzZXQgdG8gdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aC5cbiAgICogRS5nLiwgd2l0aCBgZGF0ZWAgPSBuZXcgVGVtcG9yYWwuUGxhaW5EYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBUZW1wb3JhbC5QbGFpbkRhdGUoMjAyMiwgMSwgMjgpLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSwgbW9udGhzOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBkYXRlLmFkZCh7IG1vbnRocyB9KTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlLCBkYXlzOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBkYXRlLmFkZCh7IGRheXMgfSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIFRlbXBvcmFsLlBsYWluRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKFRlbXBvcmFsLlBsYWluRGF0ZSBvciBJU08gc3RyaW5nKS4gKi9cbiAgcHVibGljIG92ZXJyaWRlIGRlc2VyaWFsaXplKFxuICAgIGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gICk6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoSVNPXzg2MDFfUkVHRVgudGVzdChkYXRlKSkge1xuICAgICAgICAvLyBgVGVtcG9yYWwuUGxhaW5EYXRlLmZyb21gIG9ubHkgYWNjZXB0cyBJU08gODYwMSBkYXRlIHN0cmluZ3Mgd2l0aG91dCB0aW1lIGNvbXBvbmVudHMuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkRGF0ZU9yTnVsbChUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbShkYXRlLnNwbGl0KCdUJylbMF0pKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKGRhdGUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGludmFsaWQoKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gY3JlYXRlIGFuIGludmFsaWQgVGVtcG9yYWwuUGxhaW5EYXRlLCBzbyB3ZSByZXR1cm4gbnVsbC5cbiAgICByZXR1cm4gbnVsbCE7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9Jc284NjAxKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGUudG9KU09OKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSB3aXRoIHRoZSBnaXZlbiBsZW5ndGggYW5kIGZpbGxzIGl0IGJ5IG1hcHBpbmcgd2l0aCB0aGUgcHJvdmlkZWQgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgdG8gYmUgY3JlYXRlZC5cbiAgICogQHBhcmFtIHZhbHVlRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIG9mIGFycmF5J3MgaW5kZXggdXNlZCB0byBmaWxsIHRoZSBhcnJheS5cbiAgICovXG4gIHByaXZhdGUgX3JhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCB2YWx1ZUZ1bmN0aW9uOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSkubWFwKChfLCBpKSA9PiB2YWx1ZUZ1bmN0aW9uKGkpKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdGVtcG9yYWxEYXRlQWRhcHRlciA9IG5ldyBUZW1wb3JhbERhdGVBZGFwdGVyKCk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxNQUFNLGlCQUNKO0FBRUYsSUFBSSxPQUFPLGFBQWEsVUFBVTtBQUNoQyxRQUFNLElBQUksTUFDUiwwR0FBMEc7QUFFOUc7QUFFTSxNQUFPLDRCQUE0QixZQUErQjtBQUFBO0FBQUEsRUFFL0QsUUFBUSxNQUF3QjtBQUNyQyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUdPLFNBQVMsTUFBd0I7QUFDdEMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUEs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
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS90ZW1wb3JhbC1kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ0ZW1wb3JhbC1wb2x5ZmlsbC9nbG9iYWxcIiAvPlxuXG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy50cyc7XG5cbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnLi9kYXRlLWFkYXB0ZXIudHMnO1xuXG4vKipcbiAqIE1hdGNoZXMgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIGZvcm0gb2YgYSB2YWxpZCBSRkMgMzMzOSBzdHJpbmdcbiAqIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSkuIE5vdGUgdGhhdCB0aGUgc3RyaW5nIG1heSBub3QgYWN0dWFsbHkgYmUgYSB2YWxpZCBkYXRlXG4gKiBiZWNhdXNlIHRoZSByZWdleCB3aWxsIG1hdGNoIHN0cmluZ3MgYW5kIHdpdGhvdXQgb2YgYm91bmRzIG1vbnRoLCBkYXRlLCBldGMuXG4gKi9cbmNvbnN0IElTT184NjAxX1JFR0VYID1cbiAgL15cXGR7NH0tXFxkezJ9LVxcZHsyfSg/OlRcXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZCspPyg/Olp8KD86KD86XFwrfC0pXFxkezJ9OlxcZHsyfSkpPyk/JC87XG5cbmV4cG9ydCBjbGFzcyBUZW1wb3JhbERhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8VGVtcG9yYWwuUGxhaW5EYXRlPiB7XG4gIC8qKlxuICAgKiBAcGFyYW0gY3V0b2ZmWWVhck9mZnNldCBUaGUgdGhyZXNob2xkIG9uIHdoZXRoZXIgYSB0d28tZGlnaXQgeWVhclxuICAgKiBzaG91bGQgYmUgdHJlYXRlZCBhcyBiZWxvbmdpbmcgdG8gMjAwMCBvciAxOTAwLiBlLmcuIHdpdGggMTUgKGRlZmF1bHQpXG4gICAqIHRoZSBjdXJyZW50IHllYXIgcGx1cyAxNSB3aWxsIGJlIHRyZWF0ZWQgYXMgYmVsb25naW5nIHRvIDIwMDAsIGFuZCB0aGUgcmVzdCB0byAxOTAwLlxuICAgKiBTbyBlLmcuIHdpdGggdGhlIGN1cnJlbnQgeWVhciAyMDI1LCA0MCB3aWxsIGJlIHRyZWF0ZWQgYXMgMjA0MCwgd2hpbGUgNDEgd2lsbCBiZSB0cmVhdGVkIGFzIDE5NDEuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoY3V0b2ZmWWVhck9mZnNldD86IG51bWJlcikge1xuICAgIHN1cGVyKGN1dG9mZlllYXJPZmZzZXQpO1xuICAgIGlmICh0eXBlb2YgVGVtcG9yYWwgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdUZW1wb3JhbCBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LiBQbGVhc2UgbWFrZSBzdXJlIHRvIGluY2x1ZGUgdGhlIHRlbXBvcmFsIHBvbHlmaWxsLicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSB5ZWFyIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0WWVhcihkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLnllYXI7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgbW9udGggb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXRNb250aChkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLm1vbnRoO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5kYXk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgLy8gT3VyIGV4cGVjdGF0aW9uIGlzIDAgPSBTdW5kYXkgYnV0IFRlbXBvcmFsLlBsYWluRGF0ZS5kYXlPZldlZWsgcmV0dXJucyA3ID0gU3VuZGF5XG4gICAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgd2l0aCBhIGZ1dHVyZSByZWxlYXNlLlxuICAgIHJldHVybiBkYXRlLmRheU9mV2VlayAlIDc7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF0ZSBpbiB0aGUgbG9jYWwgZm9ybWF0LiAqL1xuICBwdWJsaWMgZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplKGRhdGUpIS50b0xvY2FsZVN0cmluZyhTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBzdHJpbmdzIHdpdGggbGVuZ3RoID0gMTIsIGZpbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBtb250aHMgc3RhcnRpbmcgZnJvbSBKYW51YXJ5LCBpbiB0aGUgZG9jdW1lbnQgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBzdHlsZSBTZWUgYG1vbnRoYCBpbiBgRGF0ZVRpbWVGb3JtYXRPcHRpb25zYDogYGxvbmdgIGZvciBmdWxsIG5hbWUsIGBzaG9ydGAgZm9yIHNob3J0IG5hbWUsIGBuYXJyb3dgIGZvciBzaW5nbGUgbGV0dGVyLFxuICAgKiBFLmcuLCB3aXRoIEphbnVhcnkgaW4gZW4tZ2I6IGBsb25nYCByZXR1cm5zIFwiSmFudWFyeVwiLCBgc2hvcnRgIHJldHVybnMgXCJKYW5cIiwgYG5hcnJvd2AgcmV0dXJucyBcIkpcIi5cbiAgICovXG4gIHB1YmxpYyBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgbW9udGg6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSgxMiwgKGkpID0+XG4gICAgICBmb3JtYXR0ZXIuZm9ybWF0KFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhcjogMjAxNywgbW9udGg6IGkgKyAxLCBkYXk6IDEgfSkpLFxuICAgICk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IGRheTogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSgzMSwgKGkpID0+XG4gICAgICBmb3JtYXR0ZXIuZm9ybWF0KFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhcjogMjAxNywgbW9udGg6IDEsIGRheTogaSArIDEgfSkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDcsIGZpbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBkYXlzIGluIGEgd2VlayBzdGFydGluZyBmcm9tIFN1bmRheSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGB3ZWVrZGF5YCBpbiBgRGF0ZVRpbWVGb3JtYXRPcHRpb25zYCAtICdsb25nJyBmb3IgZnVsbCBuYW1lLCAnc2hvcnQnIGZvciBzaG9ydCBuYW1lLCAnbmFycm93JyBmb3Igc2luZ2xlIGxldHRlcjtcbiAgICogRS5nLiwgd2l0aCBNb25kYXkgaW4gZW4tZ2I6IGBsb25nYCByZXR1cm5zIFwiTW9uZGF5XCIsIGBzaG9ydGAgcmV0dXJucyBcIk1vblwiLCBgbmFycm93YCByZXR1cm5zIFwiTVwiLlxuICAgKi9cbiAgcHVibGljIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgd2Vla2RheTogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDcsIChpKSA9PlxuICAgICAgZm9ybWF0dGVyLmZvcm1hdChUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbSh7IHllYXI6IDIwMTcsIG1vbnRoOiAxLCBkYXk6IGkgKyAxIH0pKSxcbiAgICApO1xuICB9XG5cbiAgLyoqIERlZmluZXMgd2hpY2ggaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMDogc3VuZGF5OyAxOiBtb25kYXk7IGV0Yy4pLiAqL1xuICBwdWJsaWMgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhdGVzIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoIGdpdmVuIHRoZSB5ZWFyIGFuZCB0aGUgbW9udGguICovXG4gIHB1YmxpYyBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmRheXNJbk1vbnRoO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICByZXR1cm4gVGVtcG9yYWwuTm93LnBsYWluRGF0ZUlTTygpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgbW9udGggYW5kIGRhdGUgKGV4Y2VwdCB1cHBlciBib3VuZCBvbiBkYXRlIHdoaWNoIHdlIGhhdmUgdG8gY2hlY2sgYWZ0ZXIgY3JlYXRpbmcgdGhlIFRlbXBvcmFsLlBsYWluRGF0ZSkuXG4gICAgaWYgKG1vbnRoIDwgMSB8fCBtb250aCA+IDEyKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBcIiR7bW9udGh9XCIuIE1vbnRoIGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIDEyLmApO1xuICAgIH0gZWxzZSBpZiAoZGF5IDwgMSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIuIERheSBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuYCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbSh7IHllYXIsIG1vbnRoLCBkYXk6IGRheSB9LCB7IG92ZXJmbG93OiAncmVqZWN0JyB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RheX1cIiBmb3IgbW9udGggd2l0aCBpbmRleCBcIiR7bW9udGh9XCIuYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIFRlbXBvcmFsLlBsYWluRGF0ZS4gKi9cbiAgcHVibGljIGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIFRlbXBvcmFsLlBsYWluRGF0ZTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYGRhdGVgIGlzIGEgdmFsaWQgVGVtcG9yYWwuUGxhaW5EYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogZGF0ZSBpcyBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKGRhdGUpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbShkYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlLCB5ZWFyczogbnVtYmVyKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICByZXR1cm4gZGF0ZS5hZGQoeyB5ZWFycyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYG1vbnRoc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogSWYgdGhlIGNhbGN1bGF0ZWQgbW9udGggaGFzIGZld2VyIGRheXMgdGhhbiB0aGUgb3JpZ2luYWwgb25lLCB0aGUgZGF0ZSBpcyBzZXQgdG8gdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aC5cbiAgICogRS5nLiwgd2l0aCBgZGF0ZWAgPSBuZXcgVGVtcG9yYWwuUGxhaW5EYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBUZW1wb3JhbC5QbGFpbkRhdGUoMjAyMiwgMSwgMjgpLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSwgbW9udGhzOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBkYXRlLmFkZCh7IG1vbnRocyB9KTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlLCBkYXlzOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBkYXRlLmFkZCh7IGRheXMgfSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIFRlbXBvcmFsLlBsYWluRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKFRlbXBvcmFsLlBsYWluRGF0ZSBvciBJU08gc3RyaW5nKS4gKi9cbiAgcHVibGljIG92ZXJyaWRlIGRlc2VyaWFsaXplKFxuICAgIGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gICk6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoSVNPXzg2MDFfUkVHRVgudGVzdChkYXRlKSkge1xuICAgICAgICAvLyBgVGVtcG9yYWwuUGxhaW5EYXRlLmZyb21gIG9ubHkgYWNjZXB0cyBJU08gODYwMSBkYXRlIHN0cmluZ3Mgd2l0aG91dCB0aW1lIGNvbXBvbmVudHMuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkRGF0ZU9yTnVsbChUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbShkYXRlLnNwbGl0KCdUJylbMF0pKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKGRhdGUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGludmFsaWQoKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gY3JlYXRlIGFuIGludmFsaWQgVGVtcG9yYWwuUGxhaW5EYXRlLCBzbyB3ZSByZXR1cm4gbnVsbC5cbiAgICByZXR1cm4gbnVsbCE7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9Jc284NjAxKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGUudG9KU09OKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSB3aXRoIHRoZSBnaXZlbiBsZW5ndGggYW5kIGZpbGxzIGl0IGJ5IG1hcHBpbmcgd2l0aCB0aGUgcHJvdmlkZWQgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgdG8gYmUgY3JlYXRlZC5cbiAgICogQHBhcmFtIHZhbHVlRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIG9mIGFycmF5J3MgaW5kZXggdXNlZCB0byBmaWxsIHRoZSBhcnJheS5cbiAgICovXG4gIHByaXZhdGUgX3JhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCB2YWx1ZUZ1bmN0aW9uOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSkubWFwKChfLCBpKSA9PiB2YWx1ZUZ1bmN0aW9uKGkpKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0EsTUFBTSxpQkFDSjtBQUVJLE1BQU8sNEJBQTRCLFlBQStCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPdEUsWUFBbUIsa0JBQXlCO0FBQzFDLFVBQU0sZ0JBQWdCO0FBQ3RCLFFBQUksT0FBTyxhQUFhLFVBQVU7QUFDaEMsWUFBTSxJQUFJLE1BQ1IsMEdBQTBHO0FBQUEsSUFFOUc7QUFBQSxFQUNGO0FBQUE7QUFBQSxFQUdPLFFBQVEsTUFBd0I7QUFDckMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFHTyxTQUFTLE1BQXdCO0FBQ3RDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBR08sUUFBUSxNQUF3QjtBQUNyQyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUdPLGFBQWEsTUFBd0I7QUFHMUMsV0FBTyxLQUFLLFlBQVk7QUFBQSxFQUMxQjtBQUFBO0FBQUEsRUFHTywyQkFBMkIsTUFBaUM7QUFDakUsVUFBTSxVQUFzQztBQUFBLE1BQzFDLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxNQUNQLEtBQUs7QUFBQSxJQUFBO0FBRVAsV0FBTyxLQUFLLFlBQVksSUFBSSxFQUFHLGVBQWUsc0JBQXNCLFNBQVMsT0FBTztBQUFBLEVBQ3RGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sY0FBYyxPQUFrQztBQUNyRCxVQUFNLFlBQVksSUFBSSxLQUFLLGVBQWUsc0JBQXNCLFNBQVMsRUFBRSxPQUFPLE9BQU87QUFDekYsV0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQ3RCLFVBQVUsT0FBTyxTQUFTLFVBQVUsS0FBSyxFQUFFLE1BQU0sTUFBTSxPQUFPLElBQUksR0FBRyxLQUFLLEVBQUEsQ0FBRyxDQUFDLENBQUM7QUFBQSxFQUVuRjtBQUFBO0FBQUEsRUFHTyxlQUFZO0FBQ2pCLFVBQU0sWUFBWSxJQUFJLEtBQUssZUFBZSxzQkFBc0IsU0FBUyxFQUFFLEtBQUssV0FBVztBQUMzRixXQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsTUFDdEIsVUFBVSxPQUFPLFNBQVMsVUFBVSxLQUFLLEVBQUUsTUFBTSxNQUFNLE9BQU8sR0FBRyxLQUFLLElBQUksRUFBQSxDQUFHLENBQUMsQ0FBQztBQUFBLEVBRW5GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sa0JBQWtCLE9BQWtDO0FBQ3pELFVBQU0sWUFBWSxJQUFJLEtBQUssZUFBZSxzQkFBc0IsU0FBUyxFQUFFLFNBQVMsT0FBTztBQUMzRixXQUFPLEtBQUssT0FBTyxHQUFHLENBQUMsTUFDckIsVUFBVSxPQUFPLFNBQVMsVUFBVSxLQUFLLEVBQUUsTUFBTSxNQUFNLE9BQU8sR0FBRyxLQUFLLElBQUksRUFBQSxDQUFHLENBQUMsQ0FBQztBQUFBLEVBRW5GO0FBQUE7QUFBQSxFQUdPLG9CQUFpQjtBQUN0QixXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUEsRUFHTyxrQkFBa0IsTUFBd0I7QUFDL0MsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFHTyxRQUFLO0FBQ1YsV0FBTyxTQUFTLElBQUksYUFBQTtBQUFBLEVBQ3RCO0FBQUE7QUFBQSxFQUdPLFdBQVcsTUFBYyxPQUFlLEtBQVc7QUFFeEQsUUFBSSxRQUFRLEtBQUssUUFBUSxJQUFJO0FBQzNCLFlBQU0sTUFBTSxrQkFBa0IsS0FBSyxzQ0FBc0M7QUFBQSxJQUMzRSxXQUFXLE1BQU0sR0FBRztBQUNsQixZQUFNLE1BQU0sZ0JBQWdCLEdBQUcsa0NBQWtDO0FBQUEsSUFDbkU7QUFFQSxRQUFJO0FBQ0YsYUFBTyxTQUFTLFVBQVUsS0FBSyxFQUFFLE1BQU0sT0FBTyxPQUFZLEVBQUUsVUFBVSxVQUFVO0FBQUEsSUFDbEYsUUFBUTtBQUNOLFlBQU0sTUFBTSxpQkFBaUIsR0FBRywyQkFBMkIsS0FBSyxJQUFJO0FBQUEsSUFDdEU7QUFBQSxFQUNGO0FBQUE7QUFBQSxFQUdPLGVBQWUsS0FBUTtBQUM1QixXQUFPLGVBQWUsU0FBUztBQUFBLEVBQ2pDO0FBQUE7QUFBQSxFQUdPLFFBQVEsTUFBMkM7QUFDeEQsV0FBTyxLQUFLLGVBQWUsSUFBSTtBQUFBLEVBQ2pDO0FBQUE7QUFBQSxFQUdPLE1BQU0sTUFBd0I7QUFDbkMsV0FBTyxTQUFTLFVBQVUsS0FBSyxJQUFJO0FBQUEsRUFDckM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxpQkFBaUIsTUFBMEIsT0FBYTtBQUM3RCxXQUFPLEtBQUssSUFBSSxFQUFFLE9BQU87QUFBQSxFQUMzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLGtCQUFrQixNQUEwQixRQUFjO0FBQy9ELFdBQU8sS0FBSyxJQUFJLEVBQUUsUUFBUTtBQUFBLEVBQzVCO0FBQUE7QUFBQSxFQUdPLGdCQUFnQixNQUEwQixNQUFZO0FBQzNELFdBQU8sS0FBSyxJQUFJLEVBQUUsTUFBTTtBQUFBLEVBQzFCO0FBQUE7QUFBQSxFQUdnQixZQUNkLE1BQW9EO0FBRXBELFFBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsVUFBSSxDQUFDLE1BQU07QUFDVCxlQUFPO0FBQUEsTUFDVCxXQUFXLGVBQWUsS0FBSyxJQUFJLEdBQUc7QUFFcEMsZUFBTyxLQUFLLG1CQUFtQixTQUFTLFVBQVUsS0FBSyxLQUFLLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsTUFDNUU7QUFBQSxJQUNGO0FBQ0EsV0FBTyxNQUFNLFlBQVksSUFBSTtBQUFBLEVBQy9CO0FBQUEsRUFFZ0IsVUFBTztBQUVyQixXQUFPO0FBQUEsRUFDVDtBQUFBLEVBRWdCLFVBQVUsTUFBd0I7QUFDaEQsV0FBTyxLQUFLLE9BQUE7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1EsT0FBVSxRQUFnQixlQUFtQztBQUNuRSxXQUFPLE1BQU0sS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLGNBQWMsQ0FBQyxDQUFDO0FBQUEsRUFDOUQ7QUFDRDsifQ==
@@ -1,6 +1,6 @@
1
1
  import { DAYS_PER_ROW, DateAdapter, FORMAT_DATE, ISO8601_FORMAT_DATE, MONTHS_PER_PAGE, MONTHS_PER_ROW, YEARS_PER_PAGE, YEARS_PER_ROW } from "./datetime/date-adapter.js";
2
2
  import { NativeDateAdapter, defaultDateAdapter } from "./datetime/native-date-adapter.js";
3
- import { TemporalDateAdapter, temporalDateAdapter } from "./datetime/temporal-date-adapter.js";
3
+ import { TemporalDateAdapter } from "./datetime/temporal-date-adapter.js";
4
4
  export {
5
5
  DAYS_PER_ROW,
6
6
  DateAdapter,
@@ -12,7 +12,6 @@ export {
12
12
  TemporalDateAdapter,
13
13
  YEARS_PER_PAGE,
14
14
  YEARS_PER_ROW,
15
- defaultDateAdapter,
16
- temporalDateAdapter
15
+ defaultDateAdapter
17
16
  };
18
17
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7In0=
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker/datepicker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,OAAO,EAAE,KAAK,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAKzD,OAAO,mBAAmB,CAAC;;AAI3B;;;GAGG;AACH,qBAEM,oBAAoB,CAAC,CAAC,GAAG,IAAI,CACjC,SAAQ,yBACR,YAAW,sBAAsB,CAAC,CAAC,CAAC;IAEpC,OAAuB,MAAM,EAAE,cAAc,CAAyC;IACtF,gBAAuB,sBAAsB,QAAQ;IAErD,gDAAgD;IAChD,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC;;;;OAIG;IACH,SAEgB,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE5D,yEAAyE;IACzE,SAA4B,IAAI,EAAE,YAAY,CAAS;IAEvD,OAAO,CAAC,qBAAqB,CAAC,CAAkB;IAChD,OAAO,CAAC,YAAY,CAA4E;IAChG,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAAS;;IAaP,iBAAiB,IAAI,IAAI;IAezB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAkBY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW9E,OAAO,CAAC,aAAa;cAmBF,aAAa,IAAI,cAAc;cAwB/B,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
1
+ {"version":3,"file":"datepicker.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker/datepicker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,OAAO,EAAE,KAAK,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAKzD,OAAO,mBAAmB,CAAC;;AAI3B;;;GAGG;AACH,qBAEM,oBAAoB,CAAC,CAAC,GAAG,IAAI,CACjC,SAAQ,yBACR,YAAW,sBAAsB,CAAC,CAAC,CAAC;IAEpC,OAAuB,MAAM,EAAE,cAAc,CAAyC;IACtF,gBAAuB,sBAAsB,QAAQ;IAErD,gDAAgD;IAChD,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC;;;;OAIG;IACH,SAEgB,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE5D,yEAAyE;IACzE,SAA4B,IAAI,EAAE,YAAY,CAAS;IAEvD,OAAO,CAAC,qBAAqB,CAAC,CAAkB;IAChD,OAAO,CAAC,YAAY,CAA4E;IAChG,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAAS;;IAaP,iBAAiB,IAAI,IAAI;IAezB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAkBY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW9E,OAAO,CAAC,aAAa;cAmBF,aAAa,IAAI,cAAc;cAyB/B,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
@@ -152,6 +152,7 @@ let SbbDatepickerElement = (() => {
152
152
  this.input.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true }));
153
153
  this.input.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
154
154
  this.input.dispatchEvent(new Event("blur", { composed: true }));
155
+ this.close();
155
156
  }
156
157
  }}
157
158
  ></sbb-calendar>
@@ -183,4 +184,4 @@ let SbbDatepickerElement = (() => {
183
184
  export {
184
185
  SbbDatepickerElement
185
186
  };
186
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IENhbGVuZGFyVmlldyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLnRzJztcbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZy50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLnRzJztcbmltcG9ydCB7IHR5cGUgRGF0ZUFkYXB0ZXIsIGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZXRpbWUudHMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBpZFJlZmVyZW5jZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy50cyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbyB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi50cyc7XG5pbXBvcnQgeyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLnRzJztcbmltcG9ydCB7IHR5cGUgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZCwgU2JiRGF0ZUlucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2RhdGUtaW5wdXQudHMnO1xuaW1wb3J0IHsgU2JiUG9wb3ZlckJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vcG9wb3Zlci50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci10b2dnbGUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kYXRlcGlja2VyLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vY2FsZW5kYXIudHMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBBIGRhdGVwaWNrZXIgY29tcG9uZW50IHRoYXQgYWxsb3dzIHVzZXJzIHRvIHNlbGVjdCBhIGRhdGUgZnJvbSBhIGNhbGVuZGFyIHZpZXcuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFQ+fSBkYXRlc2VsZWN0ZWQgLSBFdmVudCBlbWl0dGVkIG9uIGRhdGUgc2VsZWN0aW9uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZXBpY2tlcicpXG5jbGFzcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUID0gRGF0ZT5cbiAgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJQb3BvdmVyQmFzZUVsZW1lbnQpXG4gIGltcGxlbWVudHMgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZDxUPlxue1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbU2JiUG9wb3ZlckJhc2VFbGVtZW50LnN0eWxlcywgc3R5bGVdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNiYkRhdGVJbnB1dEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdHdvIG1vbnRocyBhcmUgZGlzcGxheWVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igd2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIHNiYi1kYXRlLWlucHV0IGluc3RhbmNlIG9yIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciBpbnB1dDogU2JiRGF0ZUlucHV0RWxlbWVudDxUPiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIHByaXZhdGUgX2lucHV0QWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9yZWFkeSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoU2JiUG9wb3ZlckJhc2VFbGVtZW50LmV2ZW50cy5iZWZvcmVvcGVuLCAoKSA9PiB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jYWxlbmRhcicpPy5yZXNldFBvc2l0aW9uPy4oKTtcbiAgICB9KTtcbiAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaWQgfHw9IGBzYmItZGF0ZXBpY2tlci0keysrbmV4dElkfWA7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIFNiYkRhdGVJbnB1dEVsZW1lbnQucmVzb2x2ZUFzc29jaWF0aW9uKHRoaXMpO1xuICAgICAgY29uc3QgdG9nZ2xlID1cbiAgICAgICAgZm9ybUZpZWxkLnF1ZXJ5U2VsZWN0b3I8U2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ8VD4+KCdzYmItZGF0ZXBpY2tlci10b2dnbGUnKTtcbiAgICAgIGlmICh0b2dnbGUgJiYgIXRvZ2dsZS5oYXNBdHRyaWJ1dGUoJ2RhdGVwaWNrZXInKSkge1xuICAgICAgICB0b2dnbGUuZGF0ZXBpY2tlciA/Pz0gdGhpcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAobmFtZSA9PT0gJ2lucHV0JyAmJiB0aGlzLmlucHV0ICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICBjb25zdCB7IHNpZ25hbCB9ID0gKHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpKTtcbiAgICAgICAgdGhpcy5pbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAnybVjaGFuZ2UnLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXR1cygpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBzaWduYWwgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBXZSB3YW50IHRvIGRlbGF5IHRoZSByZW5kZXJpbmcgb2YgdGhlIGNhbGVuZGFyIHRvIGF2b2lkIGEgc2xvdyBpbml0aWFsIHJlbmRlci5cbiAgICAgIC8vIFRoZSBzbG93IHJlbmRlciBjYW4gYmUgYSBwcm9ibGVtIGlmIGEgbGFyZ2UgYW1vdW50IG9mIGRhdGVwaWNrZXJzIGFyZSByZW5kZXJlZCBhdCBvbmNlLlxuICAgICAgdGhpcy5fcmVhZHkgPSB0cnVlO1xuICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTdGF0dXMoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc3RhdHVzLWNvbnRhaW5lcicpO1xuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5pbnB1dD8udmFsdWVBc0RhdGUpXG4gICAgICA/IGAke2kxOG5EYXRlQ2hhbmdlZFRvW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdChcbiAgICAgICAgICB0aGlzLmlucHV0IS52YWx1ZUFzRGF0ZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3ZWVrZGF5U3R5bGU6ICdsb25nJyxcbiAgICAgICAgICB9LFxuICAgICAgICApfWBcbiAgICAgIDogJyc7XG4gICAgaWYgKHN0YXR1cy50ZXh0Q29udGVudCAhPT0gdGV4dCkge1xuICAgICAgc3RhdHVzLnRleHRDb250ZW50ID0gdGV4dDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyQ29udGVudCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cCBpZD1cInN0YXR1cy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCI+PC9wPlxuICAgICAgPHNiYi1jYWxlbmRhclxuICAgICAgICAudmlldz0ke3RoaXMudmlld31cbiAgICAgICAgLm1pbj0ke3RoaXMuaW5wdXQ/Lm1pbiA/PyBudWxsfVxuICAgICAgICAubWF4PSR7dGhpcy5pbnB1dD8ubWF4ID8/IG51bGx9XG4gICAgICAgIC5kYXRlRmlsdGVyPSR7dGhpcy5pbnB1dD8uZGF0ZUZpbHRlciA/PyBudWxsfVxuICAgICAgICAuc2VsZWN0ZWQ9JHt0aGlzLmlucHV0Py52YWx1ZUFzRGF0ZSA/PyBudWxsfVxuICAgICAgICA/d2lkZT0ke3RoaXMud2lkZX1cbiAgICAgICAgQGRhdGVzZWxlY3RlZD0keyhkOiBDdXN0b21FdmVudDxUPikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlQXNEYXRlID0gZC5kZXRhaWw7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIC8vIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAgICAgICAgIC8vIGZyYW1ld29ya3MgdGhhdCByZWx5IG9uIHRoYXQgZXZlbnQgdG8gdXBkYXRlIGZvcm0gc3RhdHVzLlxuICAgICAgICAgICAgdGhpcy5pbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgID48L3NiYi1jYWxlbmRhcj5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGlzU2VydmVyIHx8IHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQgfHwgIXRoaXMuX3JlYWR5ID8gaHRtbGAke25vdGhpbmd9YCA6IHN1cGVyLnJlbmRlcigpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlcic6IFNiYkRhdGVwaWNrZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLElBQUksU0FBUztJQVFQLHdCQUFvQixNQUFBOzswQkFEekIs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
187
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IENhbGVuZGFyVmlldyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLnRzJztcbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZy50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLnRzJztcbmltcG9ydCB7IHR5cGUgRGF0ZUFkYXB0ZXIsIGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZXRpbWUudHMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBpZFJlZmVyZW5jZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy50cyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbyB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi50cyc7XG5pbXBvcnQgeyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLnRzJztcbmltcG9ydCB7IHR5cGUgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZCwgU2JiRGF0ZUlucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2RhdGUtaW5wdXQudHMnO1xuaW1wb3J0IHsgU2JiUG9wb3ZlckJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vcG9wb3Zlci50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci10b2dnbGUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kYXRlcGlja2VyLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vY2FsZW5kYXIudHMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBBIGRhdGVwaWNrZXIgY29tcG9uZW50IHRoYXQgYWxsb3dzIHVzZXJzIHRvIHNlbGVjdCBhIGRhdGUgZnJvbSBhIGNhbGVuZGFyIHZpZXcuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFQ+fSBkYXRlc2VsZWN0ZWQgLSBFdmVudCBlbWl0dGVkIG9uIGRhdGUgc2VsZWN0aW9uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZXBpY2tlcicpXG5jbGFzcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUID0gRGF0ZT5cbiAgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJQb3BvdmVyQmFzZUVsZW1lbnQpXG4gIGltcGxlbWVudHMgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZDxUPlxue1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbU2JiUG9wb3ZlckJhc2VFbGVtZW50LnN0eWxlcywgc3R5bGVdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNiYkRhdGVJbnB1dEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdHdvIG1vbnRocyBhcmUgZGlzcGxheWVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igd2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIHNiYi1kYXRlLWlucHV0IGluc3RhbmNlIG9yIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciBpbnB1dDogU2JiRGF0ZUlucHV0RWxlbWVudDxUPiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIHByaXZhdGUgX2lucHV0QWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9yZWFkeSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoU2JiUG9wb3ZlckJhc2VFbGVtZW50LmV2ZW50cy5iZWZvcmVvcGVuLCAoKSA9PiB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jYWxlbmRhcicpPy5yZXNldFBvc2l0aW9uPy4oKTtcbiAgICB9KTtcbiAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaWQgfHw9IGBzYmItZGF0ZXBpY2tlci0keysrbmV4dElkfWA7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIFNiYkRhdGVJbnB1dEVsZW1lbnQucmVzb2x2ZUFzc29jaWF0aW9uKHRoaXMpO1xuICAgICAgY29uc3QgdG9nZ2xlID1cbiAgICAgICAgZm9ybUZpZWxkLnF1ZXJ5U2VsZWN0b3I8U2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ8VD4+KCdzYmItZGF0ZXBpY2tlci10b2dnbGUnKTtcbiAgICAgIGlmICh0b2dnbGUgJiYgIXRvZ2dsZS5oYXNBdHRyaWJ1dGUoJ2RhdGVwaWNrZXInKSkge1xuICAgICAgICB0b2dnbGUuZGF0ZXBpY2tlciA/Pz0gdGhpcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAobmFtZSA9PT0gJ2lucHV0JyAmJiB0aGlzLmlucHV0ICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICBjb25zdCB7IHNpZ25hbCB9ID0gKHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpKTtcbiAgICAgICAgdGhpcy5pbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAnybVjaGFuZ2UnLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXR1cygpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBzaWduYWwgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBXZSB3YW50IHRvIGRlbGF5IHRoZSByZW5kZXJpbmcgb2YgdGhlIGNhbGVuZGFyIHRvIGF2b2lkIGEgc2xvdyBpbml0aWFsIHJlbmRlci5cbiAgICAgIC8vIFRoZSBzbG93IHJlbmRlciBjYW4gYmUgYSBwcm9ibGVtIGlmIGEgbGFyZ2UgYW1vdW50IG9mIGRhdGVwaWNrZXJzIGFyZSByZW5kZXJlZCBhdCBvbmNlLlxuICAgICAgdGhpcy5fcmVhZHkgPSB0cnVlO1xuICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTdGF0dXMoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc3RhdHVzLWNvbnRhaW5lcicpO1xuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5pbnB1dD8udmFsdWVBc0RhdGUpXG4gICAgICA/IGAke2kxOG5EYXRlQ2hhbmdlZFRvW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdChcbiAgICAgICAgICB0aGlzLmlucHV0IS52YWx1ZUFzRGF0ZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3ZWVrZGF5U3R5bGU6ICdsb25nJyxcbiAgICAgICAgICB9LFxuICAgICAgICApfWBcbiAgICAgIDogJyc7XG4gICAgaWYgKHN0YXR1cy50ZXh0Q29udGVudCAhPT0gdGV4dCkge1xuICAgICAgc3RhdHVzLnRleHRDb250ZW50ID0gdGV4dDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyQ29udGVudCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cCBpZD1cInN0YXR1cy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCI+PC9wPlxuICAgICAgPHNiYi1jYWxlbmRhclxuICAgICAgICAudmlldz0ke3RoaXMudmlld31cbiAgICAgICAgLm1pbj0ke3RoaXMuaW5wdXQ/Lm1pbiA/PyBudWxsfVxuICAgICAgICAubWF4PSR7dGhpcy5pbnB1dD8ubWF4ID8/IG51bGx9XG4gICAgICAgIC5kYXRlRmlsdGVyPSR7dGhpcy5pbnB1dD8uZGF0ZUZpbHRlciA/PyBudWxsfVxuICAgICAgICAuc2VsZWN0ZWQ9JHt0aGlzLmlucHV0Py52YWx1ZUFzRGF0ZSA/PyBudWxsfVxuICAgICAgICA/d2lkZT0ke3RoaXMud2lkZX1cbiAgICAgICAgQGRhdGVzZWxlY3RlZD0keyhkOiBDdXN0b21FdmVudDxUPikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlQXNEYXRlID0gZC5kZXRhaWw7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIC8vIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAgICAgICAgIC8vIGZyYW1ld29ya3MgdGhhdCByZWx5IG9uIHRoYXQgZXZlbnQgdG8gdXBkYXRlIGZvcm0gc3RhdHVzLlxuICAgICAgICAgICAgdGhpcy5pbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgID48L3NiYi1jYWxlbmRhcj5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGlzU2VydmVyIHx8IHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQgfHwgIXRoaXMuX3JlYWR5ID8gaHRtbGAke25vdGhpbmd9YCA6IHN1cGVyLnJlbmRlcigpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlcic6IFNiYkRhdGVwaWNrZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLElBQUksU0FBUztJQVFQLHdCQUFvQixNQUFBOzswQkFEekIsY0FBYyxnQkFBZ0IsQ0FBQzs7OztvQkFFdEIsd0JBQXdCLHFCQUFxQjs7Ozs7Ozs7OztBQUFyRCxFQUFBLG1CQUFRLFlBQThDO0FBQUEsSUE0QnRELGNBQUE7QUFDRSxZQUFBO0FBcEJGO0FBU0E7QUFHWTtBQVpJLHlCQUFBLHdCQUFBLGtCQUFBLE1BQUEsb0JBQWdCLEtBQUs7QUFTckIseUJBQUEsMEJBQUEsa0JBQUEsTUFBQSx1QkFBQSxHQUFBLGtCQUFBLE1BQUEscUJBQXVDLElBQUk7QUFHL0IseUJBQUEseUJBQUEsa0JBQUEsTUFBQSx3QkFBQSxHQUFBLGtCQUFBLE1BQUEsb0JBQXFCLEtBQUs7QUFFOUMsV0FBQSx3QkFBcUIsa0JBQUEsTUFBQSx1QkFBQTtBQUNyQixXQUFBLGVBQStCLFdBQUEsRUFBYSxVQUFVLGVBQWU7QUFDckUsV0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFDMUMsV0FBQSxTQUFTO0FBSWYsV0FBSyxZQUFBO0FBQ0wsV0FBSyxpQkFBaUIsc0JBQXNCLE9BQU8sWUFBWSxNQUFLO0FBQ2xFLGFBQUssWUFBWSxjQUFjLGNBQWMsR0FBRyxnQkFBQTtBQUFBLE1BQ2xELENBQUM7QUFDRCxVQUFJLENBQUMsWUFBWSxLQUFLLG1CQUFtQjtBQUN2QyxhQUFLLGtCQUFrQixLQUFLLE1BQU0sS0FBSyxlQUFlO0FBQUEsTUFDeEQ7QUFBQSxJQUNGO0FBQUE7QUFBQSxJQTVCQSxJQUFnQixPQUFJO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSx5QkFBQSx3QkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFTcEIsSUFBZ0IsUUFBSztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBckIsSUFBZ0IsTUFBSyxPQUFBO0FBQUEseUJBQUEseUJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUdULElBQWdCLE9BQUk7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBLElBa0JoQixvQkFBaUI7QUFDL0IsV0FBSyxPQUFPLGtCQUFrQixFQUFFLE1BQU07QUFDdEMsWUFBTSxrQkFBQTtBQUVOLFlBQU0sWUFBWSxLQUFLLFVBQVUsZ0JBQWdCO0FBQ2pELFVBQUksV0FBVztBQUNiLDRCQUFvQixtQkFBbUIsSUFBSTtBQUMzQyxjQUFNLFNBQ0osVUFBVSxjQUE2Qyx1QkFBdUI7QUFDaEYsWUFBSSxVQUFVLENBQUMsT0FBTyxhQUFhLFlBQVksR0FBRztBQUNoRCxpQkFBTyxlQUFlO0FBQUEsUUFDeEI7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBRWdCLGNBQ2QsTUFDQSxVQUNBLFNBQTZCO0FBRTdCLFlBQU0sY0FBYyxNQUFNLFVBQVUsT0FBTztBQUMzQyxVQUFJLFNBQVMsV0FBVyxLQUFLLFVBQVUsVUFBVTtBQUMvQyxhQUFLLHVCQUF1QixNQUFBO0FBQzVCLFlBQUksS0FBSyxPQUFPO0FBQ2QsZ0JBQU0sRUFBRSxPQUFBLElBQVksS0FBSyx3QkFBd0IsSUFBSSxnQkFBQTtBQUNyRCxlQUFLLE9BQU8saUJBQ1YsV0FDQSxNQUFLO0FBQ0gsa0JBQU0sY0FBQTtBQUNOLGlCQUFLLGNBQUE7QUFBQSxVQUNQLEdBQ0EsRUFBRSxRQUFRO0FBQUEsUUFFZDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFFbUIsYUFBYSxtQkFBdUM7QUFDckUsWUFBTSxhQUFhLGlCQUFpQjtBQUNwQyxpQkFBVyxNQUFLO0FBR2QsYUFBSyxTQUFTO0FBQ2QsYUFBSyxjQUFBO0FBQ0wsYUFBSyxlQUFBO0FBQUEsTUFDUCxDQUFDO0FBQUEsSUFDSDtBQUFBLElBRVEsZ0JBQWE7QUFDbkIsWUFBTSxTQUFTLEtBQUssWUFBWSxlQUFlLGtCQUFrQjtBQUNqRSxVQUFJLENBQUMsUUFBUTtBQUNYO0FBQUEsTUFDRjtBQUVBLFlBQU0sT0FBTyxLQUFLLGFBQWEsUUFBUSxLQUFLLE9BQU8sV0FBVyxJQUMxRCxHQUFHLGtCQUFrQixLQUFLLFVBQVUsT0FBTyxDQUFDLElBQUksS0FBSyxhQUFhLE9BQ2hFLEtBQUssTUFBTyxhQUNaO0FBQUEsUUFDRSxjQUFjO0FBQUEsTUFBQSxDQUNmLENBQ0YsS0FDRDtBQUNKLFVBQUksT0FBTyxnQkFBZ0IsTUFBTTtBQUMvQixlQUFPLGNBQWM7QUFBQSxNQUN2QjtBQUFBLElBQ0Y7QUFBQSxJQUVtQixnQkFBYTtBQUM5QixhQUFPO0FBQUE7QUFBQTtBQUFBLGdCQUdLLEtBQUssSUFBSTtBQUFBLGVBQ1YsS0FBSyxPQUFPLE9BQU8sSUFBSTtBQUFBLGVBQ3ZCLEtBQUssT0FBTyxPQUFPLElBQUk7QUFBQSxzQkFDaEIsS0FBSyxPQUFPLGNBQWMsSUFBSTtBQUFBLG9CQUNoQyxLQUFLLE9BQU8sZUFBZSxJQUFJO0FBQUEsZ0JBQ25DLEtBQUssSUFBSTtBQUFBLHdCQUNELENBQUMsTUFBcUI7QUFDcEMsWUFBSSxLQUFLLE9BQU87QUFDZCxlQUFLLE1BQU0sY0FBYyxFQUFFO0FBQzNCLGVBQUssTUFBTSxjQUFjLElBQUksV0FBVyxTQUFTLEVBQUUsU0FBUyxNQUFNLFVBQVUsS0FBQSxDQUFNLENBQUM7QUFDbkYsZUFBSyxNQUFNLGNBQWMsSUFBSSxNQUFNLFVBQVUsRUFBRSxTQUFTLE1BQU0sVUFBVSxLQUFBLENBQU0sQ0FBQztBQUcvRSxlQUFLLE1BQU0sY0FBYyxJQUFJLE1BQU0sUUFBUSxFQUFFLFVBQVUsS0FBQSxDQUFNLENBQUM7QUFDOUQsZUFBSyxNQUFBO0FBQUEsUUFDUDtBQUFBLE1BQ0YsQ0FBQztBQUFBO0FBQUE7QUFBQSxJQUdQO0FBQUEsSUFFbUIsU0FBTTtBQUN2QixhQUFPLFlBQVksS0FBSyxxQkFBcUIsQ0FBQyxLQUFLLFNBQVMsT0FBTyxPQUFPLEtBQUssTUFBTSxPQUFBO0FBQUEsSUFDdkY7QUFBQSxLQTVIQSx3Q0FTQSx5Q0FHWTs7d0JBZFgsYUFDQSxTQUFTLEVBQUUsTUFBTSxRQUFBLENBQVMsQ0FBQzt5QkFRM0IsZUFDQSxVQUFVO0FBSVYsdUJBQUEsQ0FBQSxVQUFVO0FBWlgsaUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsTUFBSSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLG9CQUFBLHVCQUFBO0FBU3BCLGlCQUFBLElBQUEsTUFBQSxtQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsV0FBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLE9BQUssS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUwsUUFBSztBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxxQkFBQSx3QkFBQTtBQUdULGlCQUFBLElBQUEsTUFBQSxrQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFFBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsVUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLE1BQUksS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUosT0FBSTtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxvQkFBQSx1QkFBQTtBQXRCbEMsaUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQUl5QixHQUFBLFNBQXlCLENBQUMsc0JBQXNCLFFBQVEsS0FBSyxHQUM3RCxHQUFBLHlCQUF5QixNQUw1QyxrQkFBQSxZQUFBLHVCQUFBLEdBQ0o7OzsifQ==
@@ -20,6 +20,7 @@ const style = css`:host {
20
20
  content: "";
21
21
  display: block;
22
22
  position: absolute;
23
+ pointer-events: none;
23
24
  inset: 0 -10rem 0 0;
24
25
  transition: box-shadow var(--sbb-animation-easing) var(--sbb-dialog-shadow-animation-duration);
25
26
  box-shadow: var(--sbb-dialog-block-start-box-shadow, none);
@@ -48,4 +49,4 @@ let SbbDialogTitleElement = (() => {
48
49
  export {
49
50
  SbbDialogTitleElement
50
51
  };
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RpYWxvZy9kaWFsb2ctdGl0bGUvZGlhbG9nLXRpdGxlLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBTYmJUaXRsZUJhc2UgfSBmcm9tICcuLi8uLi90aXRsZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RpYWxvZy10aXRsZS5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdGl0bGUgaW5zaWRlIGEgZGlhbG9nIGhlYWRlci5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IGZvciB0aGUgY29udGVudCBvZiB0aGUgZGlhbG9nLXRpdGxlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGlhbG9nLXRpdGxlJylcbmNsYXNzIFNiYkRpYWxvZ1RpdGxlRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiVGl0bGVCYXNlKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtTYmJUaXRsZUJhc2Uuc3R5bGVzLCBzdHlsZV07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sZXZlbCA9ICcyJyBhcyB0aGlzWydsZXZlbCddO1xuICAgIHRoaXMudmlzdWFsTGV2ZWwgPSAnNCcgYXMgdGhpc1sndmlzdWFsTGV2ZWwnXTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZy10aXRsZSc6IFNiYkRpYWxvZ1RpdGxlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZU0seUJBQXFCLE1BQUE7OzBCQUQxQixjQUFjLGtCQUFrQixDQUFDOzs7O29CQUNFLGlCQUFpQixZQUFZO0FBQXJDLEVBQUEsbUJBQVEsWUFBOEI7QUFBQSxJQUdoRSxjQUFBO0FBQ0UsWUFBQTtBQUNBLFdBQUssUUFBUTtBQUNiLFdBQUssY0FBYztBQUFBLElBQ3JCO0FBQUE7O0FBUEYsaUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQUN5QixHQUFBLFNBQXlCLENBQUMsYUFBYSxRQUFRLEtBQUssR0FEdkUsa0JBQUEsWUFBQSx1QkFBQSxHQUFzQjs7OyJ9
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RpYWxvZy9kaWFsb2ctdGl0bGUvZGlhbG9nLXRpdGxlLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBTYmJUaXRsZUJhc2UgfSBmcm9tICcuLi8uLi90aXRsZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RpYWxvZy10aXRsZS5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdGl0bGUgaW5zaWRlIGEgZGlhbG9nIGhlYWRlci5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IGZvciB0aGUgY29udGVudCBvZiB0aGUgZGlhbG9nLXRpdGxlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGlhbG9nLXRpdGxlJylcbmNsYXNzIFNiYkRpYWxvZ1RpdGxlRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiVGl0bGVCYXNlKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtTYmJUaXRsZUJhc2Uuc3R5bGVzLCBzdHlsZV07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sZXZlbCA9ICcyJyBhcyB0aGlzWydsZXZlbCddO1xuICAgIHRoaXMudmlzdWFsTGV2ZWwgPSAnNCcgYXMgdGhpc1sndmlzdWFsTGV2ZWwnXTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZy10aXRsZSc6IFNiYkRpYWxvZ1RpdGxlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWVNLHlCQUFxQixNQUFBOzswQkFEMUIsY0FBYyxrQkFBa0IsQ0FBQzs7OztvQkFDRSxpQkFBaUIsWUFBWTtBQUFyQyxFQUFBLG1CQUFRLFlBQThCO0FBQUEsSUFHaEUsY0FBQTtBQUNFLFlBQUE7QUFDQSxXQUFLLFFBQVE7QUFDYixXQUFLLGNBQWM7QUFBQSxJQUNyQjtBQUFBOztBQVBGLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixDQUFDLGFBQWEsUUFBUSxLQUFLLEdBRHZFLGtCQUFBLFlBQUEsdUJBQUEsR0FBc0I7OzsifQ==
@@ -22,11 +22,11 @@ const style = css`:host {
22
22
  --sbb-expansion-panel-border-width: var(--sbb-border-width-1x);
23
23
  --sbb-expansion-panel-border-block-start-color: var(--sbb-expansion-panel-border-color);
24
24
  --sbb-expansion-panel-border-block-start-width: var(--sbb-expansion-panel-border-width);
25
- --sbb-expansion-panel-content-visibility: hidden;
26
25
  --sbb-expansion-panel-start-end-radius: var(--sbb-expansion-panel-border-radius);
27
26
  --sbb-expansion-panel-start-start-radius: var(--sbb-expansion-panel-border-radius);
28
27
  --sbb-expansion-panel-end-end-radius: var(--sbb-expansion-panel-border-radius);
29
28
  --sbb-expansion-panel-end-start-radius: var(--sbb-expansion-panel-border-radius);
29
+ --_sbb-expansion-panel-display: grid;
30
30
  display: block;
31
31
  background-color: var(--sbb-expansion-panel-background-color);
32
32
  border: var(--sbb-expansion-panel-border-width) solid var(--sbb-expansion-panel-border-color);
@@ -56,7 +56,7 @@ const style = css`:host {
56
56
  }
57
57
 
58
58
  :host([expanded]) {
59
- --sbb-expansion-panel-content-visibility: visible;
59
+ --_sbb-expansion-panel-display-expanded: var(--_sbb-expansion-panel-display);
60
60
  }
61
61
 
62
62
  :host(:is(:state(accordion),[state--accordion]):is(:state(accordion-first),[state--accordion-first])) {
@@ -128,8 +128,7 @@ const style = css`:host {
128
128
  }
129
129
 
130
130
  .sbb-expansion-panel__content-wrapper {
131
- display: grid;
132
- visibility: var(--sbb-expansion-panel-content-visibility);
131
+ display: var(--_sbb-expansion-panel-display-expanded, none);
133
132
  grid-template-rows: 0fr;
134
133
  opacity: 0;
135
134
  }
@@ -145,6 +144,8 @@ const style = css`:host {
145
144
  animation-delay: 0s, var(--sbb-expansion-panel-animation-duration);
146
145
  }
147
146
  :host(:is(:state(state-closing),[state--state-closing])) .sbb-expansion-panel__content-wrapper {
147
+ display: var(--_sbb-expansion-panel-display);
148
+ visibility: hidden;
148
149
  animation-name: close;
149
150
  animation-duration: var(--sbb-expansion-panel-animation-duration);
150
151
  animation-timing-function: var(--sbb-animation-easing);
@@ -419,4 +420,4 @@ let SbbExpansionPanelElement = (() => {
419
420
  export {
420
421
  SbbExpansionPanelElement
421
422
  };
422
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCwgdW5zYWZlU3RhdGljIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLnRzJztcbmltcG9ydCB7IGlzTGVhbiwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wZW5lZENsb3NlZFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzLnRzJztcbmltcG9ydCB7XG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiSHlkcmF0aW9uTWl4aW4sXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3N0eWxlcy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICcuLi8uLi90aXRsZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkV4cGFuc2lvblBhbmVsQ29udGVudEVsZW1lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwtY29udGVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9leHBhbnNpb24tcGFuZWwuc2Nzcz9saXQmaW5saW5lJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gZXhwYW5kYWJsZSBzdW1tYXJ5LWRldGFpbHMgd2lkZ2V0LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYCBhbmQgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50YCBlbGVtZW50LlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZXhwYW5zaW9uLXBhbmVsJylcbmNsYXNzIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGJlZm9yZW9wZW46ICdiZWZvcmVvcGVuJyxcbiAgICBvcGVuOiAnb3BlbicsXG4gICAgYmVmb3JlY2xvc2U6ICdiZWZvcmVjbG9zZScsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIEhlYWRpbmcgbGV2ZWw7IGlmIHVuc2V0LCBhIGBkaXZgIHdpbGwgYmUgcmVuZGVyZWQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWxldmVsJyB9KSBwdWJsaWMgYWNjZXNzb3IgdGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgcGFuZWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGNvbG9yOiAnd2hpdGUnIHwgJ21pbGsnID0gJ3doaXRlJztcblxuICAvKiogV2hldGhlciB0aGUgcGFuZWwgaXMgZXhwYW5kZWQuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2V4cGFuZGVkID0gdmFsdWU7XG4gICAgdGhpcy5fb25FeHBhbmRlZENoYW5nZSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkO1xuICB9XG4gIHByaXZhdGUgX2V4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHBhbmVsIGlzIGRpc2FibGVkLCBzbyBpdHMgZXhwYW5kZWQgc3RhdGUgY2FuJ3QgYmUgY2hhbmdlZC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLl91cGRhdGVEaXNhYmxlZE9uSGVhZGVyKHRoaXMuX2Rpc2FibGVkKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwYW5lbCBoYXMgbm8gYm9yZGVyLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYm9yZGVybGVzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsIG9yIHMuXG4gICAqIEBkZWZhdWx0ICdsJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdsJyA9IGlzTGVhbigpID8gJ3MnIDogJ2wnO1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJpdmF0ZSBzZXQgX3N0YXRlKHN0YXRlOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSkge1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICAgIHRoaXMuX3N0YXRlSW50ZXJuYWwgPSBzdGF0ZTtcbiAgICBpZiAodGhpcy5fc3RhdGVJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgc3RhdGUtJHt0aGlzLl9zdGF0ZUludGVybmFsfWApO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldCBfc3RhdGUoKTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZUludGVybmFsO1xuICB9XG4gIHByaXZhdGUgX3N0YXRlSW50ZXJuYWwhOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcblxuICBwcml2YXRlIF9wcm9ncmVzc2l2ZUlkID0gYC0keysrbmV4dElkfWA7XG4gIHByaXZhdGUgX2hlYWRlclJlZj86IFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudDtcbiAgcHJpdmF0ZSBfY29udGVudFJlZj86IFNiYkV4cGFuc2lvblBhbmVsQ29udGVudEVsZW1lbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0b2dnbGVleHBhbmRlZCcsIChldjogRXZlbnQpID0+IHtcbiAgICAgIGlmIChldi50YXJnZXQgPT09IHRoaXMuX2hlYWRlclJlZikge1xuICAgICAgICB0aGlzLl90b2dnbGVFeHBhbmRlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnYWNjb3JkaW9uJywgISF0aGlzLmNsb3Nlc3Q/Lignc2JiLWFjY29yZGlvbicpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2FjY29yZGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25FeHBhbmRlZENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9oZWFkZXJSZWY/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsIFN0cmluZyh0aGlzLmV4cGFuZGVkKSk7XG4gICAgdGhpcy5fY29udGVudFJlZj8uc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsIFN0cmluZyghdGhpcy5leHBhbmRlZCkpO1xuXG4gICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuX29wZW4oKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N0YXRlID09PSAnb3BlbmVkJykge1xuICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ29wZW5pbmcnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZW9wZW4nKSk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCB8fCB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3JlY2xvc2UnKSk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIG9wZW5lZC4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdvcGVuJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIGNsb3NlZC4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjbG9zZScpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZURpc2FibGVkT25IZWFkZXIobmV3RGlzYWJsZWRWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9oZWFkZXJSZWYpIHtcbiAgICAgIHRoaXMuX2hlYWRlclJlZi5kaXNhYmxlZCA9IG5ld0Rpc2FibGVkVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSk7XG4gICAgY29uc3QgaGVhZGVyID0gY2hpbGRyZW4uZmluZChcbiAgICAgIChlKTogZSBpcyBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQgPT4gZS5sb2NhbE5hbWUgPT09ICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcicsXG4gICAgKTtcbiAgICBjb25zdCBjb250ZW50ID0gY2hpbGRyZW4uZmluZChcbiAgICAgIChlKTogZSBpcyBTYmJFeHBhbnNpb25QYW5lbENvbnRlbnRFbGVtZW50ID0+IGUubG9jYWxOYW1lID09PSAnc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50JyxcbiAgICApO1xuICAgIGlmICh0aGlzLl9oZWFkZXJSZWYgPT09IGhlYWRlciAmJiB0aGlzLl9jb250ZW50UmVmID09PSBjb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChoZWFkZXIgJiYgdGhpcy5faGVhZGVyUmVmICE9PSBoZWFkZXIpIHtcbiAgICAgIGhlYWRlci5pZCB8fD0gYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyJHt0aGlzLl9wcm9ncmVzc2l2ZUlkfWA7XG4gICAgICBoZWFkZXIuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgU3RyaW5nKHRoaXMuZXhwYW5kZWQpKTtcbiAgICAgIGhlYWRlci50b2dnbGVBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuICAgIGlmIChjb250ZW50ICYmIHRoaXMuX2NvbnRlbnRSZWYgIT09IGNvbnRlbnQpIHtcbiAgICAgIGNvbnRlbnQuaWQgfHw9IGBzYmItZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQke3RoaXMuX3Byb2dyZXNzaXZlSWR9YDtcbiAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsIFN0cmluZyghdGhpcy5leHBhbmRlZCkpO1xuICAgIH1cblxuICAgIHRoaXMuX2hlYWRlclJlZiA9IGhlYWRlcjtcbiAgICB0aGlzLl9jb250ZW50UmVmID0gY29udGVudDtcbiAgICBpZiAodGhpcy5faGVhZGVyUmVmICYmIHRoaXMuX2NvbnRlbnRSZWYpIHtcbiAgICAgIHRoaXMuX2hlYWRlclJlZi5zZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnLCB0aGlzLl9jb250ZW50UmVmLmlkKTtcbiAgICAgIHRoaXMuX2NvbnRlbnRSZWYuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknLCB0aGlzLl9oZWFkZXJSZWYuaWQpO1xuICAgICAgybVzdGF0ZUNvbnRyb2xsZXIodGhpcy5fY29udGVudFJlZikudG9nZ2xlKFxuICAgICAgICAnaWNvbi1zcGFjZScsXG4gICAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMuX2hlYWRlclJlZikuaGFzKCdpY29uJyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3Blbi1vcGFjaXR5JyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuX3N0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUQUdOQU1FID0gdGhpcy50aXRsZUxldmVsID8gYGgke3RoaXMudGl0bGVMZXZlbH1gIDogJ2Rpdic7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdOQU1FKX0gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsX19oZWFkZXJcIj5cbiAgICAgICAgPHNsb3QgbmFtZT1cImhlYWRlclwiIEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdGNoYW5nZX0+PC9zbG90PlxuICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdOQU1FKX0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbF9fY29udGVudC13cmFwcGVyXCIgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsX19jb250ZW50XCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZXhwYW5zaW9uLXBhbmVsJzogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiybVzdGF0ZUNvbnRyb2xsZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUksU0FBUztJQVNQLDRCQUF3QixNQUFBOzswQkFEN0IsY0FBYyxxQkFBcUIsQ0FBQzs7OztBQUNFLE1BQUEsY0FBQSxrQkFBa0IseUJBQXlCLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQUE5RCxFQUFBLG1CQUFRLFlBQXVEO0FBQUEsSUFtRTVGLGNBQUE7QUFDRSxZQUFBO0FBMURzQztBQUdYO0FBMkI3QjtBQU02QjtBQXBDMkIs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
423
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCwgdW5zYWZlU3RhdGljIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLnRzJztcbmltcG9ydCB7IGlzTGVhbiwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wZW5lZENsb3NlZFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzLnRzJztcbmltcG9ydCB7XG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiSHlkcmF0aW9uTWl4aW4sXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3N0eWxlcy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICcuLi8uLi90aXRsZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkV4cGFuc2lvblBhbmVsQ29udGVudEVsZW1lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwtY29udGVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9leHBhbnNpb24tcGFuZWwuc2Nzcz9saXQmaW5saW5lJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gZXhwYW5kYWJsZSBzdW1tYXJ5LWRldGFpbHMgd2lkZ2V0LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYCBhbmQgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50YCBlbGVtZW50LlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZXhwYW5zaW9uLXBhbmVsJylcbmNsYXNzIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGJlZm9yZW9wZW46ICdiZWZvcmVvcGVuJyxcbiAgICBvcGVuOiAnb3BlbicsXG4gICAgYmVmb3JlY2xvc2U6ICdiZWZvcmVjbG9zZScsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIEhlYWRpbmcgbGV2ZWw7IGlmIHVuc2V0LCBhIGBkaXZgIHdpbGwgYmUgcmVuZGVyZWQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWxldmVsJyB9KSBwdWJsaWMgYWNjZXNzb3IgdGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgcGFuZWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGNvbG9yOiAnd2hpdGUnIHwgJ21pbGsnID0gJ3doaXRlJztcblxuICAvKiogV2hldGhlciB0aGUgcGFuZWwgaXMgZXhwYW5kZWQuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2V4cGFuZGVkID0gdmFsdWU7XG4gICAgdGhpcy5fb25FeHBhbmRlZENoYW5nZSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkO1xuICB9XG4gIHByaXZhdGUgX2V4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHBhbmVsIGlzIGRpc2FibGVkLCBzbyBpdHMgZXhwYW5kZWQgc3RhdGUgY2FuJ3QgYmUgY2hhbmdlZC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLl91cGRhdGVEaXNhYmxlZE9uSGVhZGVyKHRoaXMuX2Rpc2FibGVkKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwYW5lbCBoYXMgbm8gYm9yZGVyLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYm9yZGVybGVzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsIG9yIHMuXG4gICAqIEBkZWZhdWx0ICdsJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdsJyA9IGlzTGVhbigpID8gJ3MnIDogJ2wnO1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJpdmF0ZSBzZXQgX3N0YXRlKHN0YXRlOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSkge1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICAgIHRoaXMuX3N0YXRlSW50ZXJuYWwgPSBzdGF0ZTtcbiAgICBpZiAodGhpcy5fc3RhdGVJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgc3RhdGUtJHt0aGlzLl9zdGF0ZUludGVybmFsfWApO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldCBfc3RhdGUoKTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZUludGVybmFsO1xuICB9XG4gIHByaXZhdGUgX3N0YXRlSW50ZXJuYWwhOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcblxuICBwcml2YXRlIF9wcm9ncmVzc2l2ZUlkID0gYC0keysrbmV4dElkfWA7XG4gIHByaXZhdGUgX2hlYWRlclJlZj86IFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudDtcbiAgcHJpdmF0ZSBfY29udGVudFJlZj86IFNiYkV4cGFuc2lvblBhbmVsQ29udGVudEVsZW1lbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0b2dnbGVleHBhbmRlZCcsIChldjogRXZlbnQpID0+IHtcbiAgICAgIGlmIChldi50YXJnZXQgPT09IHRoaXMuX2hlYWRlclJlZikge1xuICAgICAgICB0aGlzLl90b2dnbGVFeHBhbmRlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnYWNjb3JkaW9uJywgISF0aGlzLmNsb3Nlc3Q/Lignc2JiLWFjY29yZGlvbicpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2FjY29yZGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25FeHBhbmRlZENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9oZWFkZXJSZWY/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsIFN0cmluZyh0aGlzLmV4cGFuZGVkKSk7XG4gICAgdGhpcy5fY29udGVudFJlZj8uc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsIFN0cmluZyghdGhpcy5leHBhbmRlZCkpO1xuXG4gICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuX29wZW4oKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N0YXRlID09PSAnb3BlbmVkJykge1xuICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ29wZW5pbmcnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZW9wZW4nKSk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCB8fCB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3JlY2xvc2UnKSk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIG9wZW5lZC4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdvcGVuJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIGNsb3NlZC4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjbG9zZScpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZURpc2FibGVkT25IZWFkZXIobmV3RGlzYWJsZWRWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9oZWFkZXJSZWYpIHtcbiAgICAgIHRoaXMuX2hlYWRlclJlZi5kaXNhYmxlZCA9IG5ld0Rpc2FibGVkVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSk7XG4gICAgY29uc3QgaGVhZGVyID0gY2hpbGRyZW4uZmluZChcbiAgICAgIChlKTogZSBpcyBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQgPT4gZS5sb2NhbE5hbWUgPT09ICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcicsXG4gICAgKTtcbiAgICBjb25zdCBjb250ZW50ID0gY2hpbGRyZW4uZmluZChcbiAgICAgIChlKTogZSBpcyBTYmJFeHBhbnNpb25QYW5lbENvbnRlbnRFbGVtZW50ID0+IGUubG9jYWxOYW1lID09PSAnc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50JyxcbiAgICApO1xuICAgIGlmICh0aGlzLl9oZWFkZXJSZWYgPT09IGhlYWRlciAmJiB0aGlzLl9jb250ZW50UmVmID09PSBjb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChoZWFkZXIgJiYgdGhpcy5faGVhZGVyUmVmICE9PSBoZWFkZXIpIHtcbiAgICAgIGhlYWRlci5pZCB8fD0gYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyJHt0aGlzLl9wcm9ncmVzc2l2ZUlkfWA7XG4gICAgICBoZWFkZXIuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgU3RyaW5nKHRoaXMuZXhwYW5kZWQpKTtcbiAgICAgIGhlYWRlci50b2dnbGVBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuICAgIGlmIChjb250ZW50ICYmIHRoaXMuX2NvbnRlbnRSZWYgIT09IGNvbnRlbnQpIHtcbiAgICAgIGNvbnRlbnQuaWQgfHw9IGBzYmItZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQke3RoaXMuX3Byb2dyZXNzaXZlSWR9YDtcbiAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsIFN0cmluZyghdGhpcy5leHBhbmRlZCkpO1xuICAgIH1cblxuICAgIHRoaXMuX2hlYWRlclJlZiA9IGhlYWRlcjtcbiAgICB0aGlzLl9jb250ZW50UmVmID0gY29udGVudDtcbiAgICBpZiAodGhpcy5faGVhZGVyUmVmICYmIHRoaXMuX2NvbnRlbnRSZWYpIHtcbiAgICAgIHRoaXMuX2hlYWRlclJlZi5zZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnLCB0aGlzLl9jb250ZW50UmVmLmlkKTtcbiAgICAgIHRoaXMuX2NvbnRlbnRSZWYuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknLCB0aGlzLl9oZWFkZXJSZWYuaWQpO1xuICAgICAgybVzdGF0ZUNvbnRyb2xsZXIodGhpcy5fY29udGVudFJlZikudG9nZ2xlKFxuICAgICAgICAnaWNvbi1zcGFjZScsXG4gICAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMuX2hlYWRlclJlZikuaGFzKCdpY29uJyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3Blbi1vcGFjaXR5JyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuX3N0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUQUdOQU1FID0gdGhpcy50aXRsZUxldmVsID8gYGgke3RoaXMudGl0bGVMZXZlbH1gIDogJ2Rpdic7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdOQU1FKX0gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsX19oZWFkZXJcIj5cbiAgICAgICAgPHNsb3QgbmFtZT1cImhlYWRlclwiIEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdGNoYW5nZX0+PC9zbG90PlxuICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdOQU1FKX0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbF9fY29udGVudC13cmFwcGVyXCIgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsX19jb250ZW50XCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZXhwYW5zaW9uLXBhbmVsJzogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiybVzdGF0ZUNvbnRyb2xsZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFJLFNBQVM7SUFTUCw0QkFBd0IsTUFBQTs7MEJBRDdCLGNBQWMscUJBQXFCLENBQUM7Ozs7QUFDRSxNQUFBLGNBQUEsa0JBQWtCLHlCQUF5QixVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBOUQsRUFBQSxtQkFBUSxZQUF1RDtBQUFBLElBbUU1RixjQUFBO0FBQ0UsWUFBQTtBQTFEc0M7QUFHWDtBQTJCN0I7QUFNNkI7QUFwQzJC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