@sbb-esta/lyne-elements 2.0.3 → 2.2.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 (266) hide show
  1. package/accordion/accordion.d.ts.map +1 -1
  2. package/accordion.js +6 -6
  3. package/action-group.js +3 -3
  4. package/alert/alert.js +8 -8
  5. package/autocomplete/autocomplete-base-element.d.ts +4 -0
  6. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  7. package/autocomplete-grid/autocomplete-grid-button.js +4 -4
  8. package/autocomplete-grid/autocomplete-grid-cell.js +3 -3
  9. package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -4
  10. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
  11. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  12. package/autocomplete-grid/autocomplete-grid-option.js +10 -10
  13. package/autocomplete-grid/autocomplete-grid-row.js +5 -5
  14. package/autocomplete.js +99 -90
  15. package/breadcrumb/breadcrumb-group.js +5 -5
  16. package/button/accent-button-link.js +9 -9
  17. package/button/accent-button-static.js +6 -6
  18. package/button/accent-button.js +6 -6
  19. package/button/button-link.js +7 -7
  20. package/button/button-static.js +7 -7
  21. package/button/button.js +8 -8
  22. package/button/common.js +15 -15
  23. package/button/mini-button-group.js +8 -8
  24. package/button/secondary-button-link.js +7 -7
  25. package/button/secondary-button-static.js +7 -7
  26. package/button/secondary-button.js +3 -3
  27. package/button/transparent-button-link.js +6 -6
  28. package/button/transparent-button-static.js +5 -5
  29. package/button/transparent-button.js +6 -6
  30. package/card/card-badge.js +11 -11
  31. package/card/card-button.js +5 -5
  32. package/card/card-link.js +7 -7
  33. package/card/card.js +3 -3
  34. package/checkbox/checkbox-panel.js +16 -16
  35. package/checkbox/checkbox.js +15 -15
  36. package/checkbox/common.js +3 -3
  37. package/chip-label.js +3 -3
  38. package/clock.js +10 -10
  39. package/container/container/container.d.ts +1 -1
  40. package/container/container/container.d.ts.map +1 -1
  41. package/container/container.js +23 -23
  42. package/container/sticky-bar/sticky-bar.d.ts +1 -1
  43. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  44. package/container/sticky-bar.js +4 -4
  45. package/core/a11y/focus.d.ts.map +1 -1
  46. package/core/a11y.js +8 -8
  47. package/core/base-elements/link-base-element.d.ts +2 -0
  48. package/core/base-elements/link-base-element.d.ts.map +1 -1
  49. package/core/base-elements.js +125 -114
  50. package/core/controllers.js +4 -4
  51. package/core/datetime/date-adapter.d.ts +1 -1
  52. package/core/datetime/date-adapter.d.ts.map +1 -1
  53. package/core/datetime/native-date-adapter.d.ts +1 -1
  54. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  55. package/core/datetime.js +6 -6
  56. package/core/dom/scroll.d.ts +1 -0
  57. package/core/dom/scroll.d.ts.map +1 -1
  58. package/core/dom.js +35 -35
  59. package/core/eventing.js +4 -4
  60. package/core/images.d.ts.map +1 -1
  61. package/core/mixins.js +18 -18
  62. package/core/styles/core.scss +23 -2
  63. package/core/testing.js +14 -14
  64. package/core.css +20 -2
  65. package/custom-elements.json +828 -431
  66. package/datepicker/common/datepicker-association-controllers.d.ts +21 -0
  67. package/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
  68. package/datepicker/common/datepicker-button.d.ts +17 -9
  69. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  70. package/datepicker/common.d.ts +1 -0
  71. package/datepicker/common.d.ts.map +1 -1
  72. package/datepicker/common.js +130 -92
  73. package/datepicker/datepicker/datepicker.d.ts +19 -4
  74. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  75. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
  76. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  77. package/datepicker/datepicker-toggle.js +106 -113
  78. package/datepicker/datepicker.js +95 -80
  79. package/development/accordion/accordion.d.ts.map +1 -1
  80. package/development/accordion.js +1 -1
  81. package/development/action-group.js +1 -1
  82. package/development/autocomplete/autocomplete-base-element.d.ts +4 -0
  83. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  84. package/development/autocomplete-grid/autocomplete-grid-cell.js +1 -1
  85. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
  86. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  87. package/development/autocomplete-grid/autocomplete-grid-option.js +3 -3
  88. package/development/autocomplete-grid/autocomplete-grid-row.js +1 -1
  89. package/development/autocomplete.js +37 -8
  90. package/development/breadcrumb/breadcrumb-group.js +3 -3
  91. package/development/button/common.js +69 -70
  92. package/development/calendar.js +1 -1
  93. package/development/card/card-badge.js +1 -1
  94. package/development/card/card.js +1 -1
  95. package/development/chip-label.js +1 -1
  96. package/development/clock.js +1 -1
  97. package/development/container/container/container.d.ts +1 -1
  98. package/development/container/container/container.d.ts.map +1 -1
  99. package/development/container/container.js +18 -2
  100. package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
  101. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  102. package/development/container/sticky-bar.js +9 -1
  103. package/development/core/a11y/focus.d.ts.map +1 -1
  104. package/development/core/a11y.js +3 -3
  105. package/development/core/base-elements/link-base-element.d.ts +2 -0
  106. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  107. package/development/core/base-elements.js +22 -5
  108. package/development/core/controllers.js +1 -1
  109. package/development/core/datetime/date-adapter.d.ts +1 -1
  110. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  111. package/development/core/datetime/native-date-adapter.d.ts +1 -1
  112. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  113. package/development/core/datetime.js +1 -1
  114. package/development/core/dom/scroll.d.ts +1 -0
  115. package/development/core/dom/scroll.d.ts.map +1 -1
  116. package/development/core/dom.js +4 -1
  117. package/development/core/images.d.ts.map +1 -1
  118. package/development/core/mixins.js +1 -1
  119. package/development/datepicker/common/datepicker-association-controllers.d.ts +21 -0
  120. package/development/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
  121. package/development/datepicker/common/datepicker-button.d.ts +17 -9
  122. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  123. package/development/datepicker/common.d.ts +1 -0
  124. package/development/datepicker/common.d.ts.map +1 -1
  125. package/development/datepicker/common.js +139 -90
  126. package/development/datepicker/datepicker/datepicker.d.ts +19 -4
  127. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  128. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
  129. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  130. package/development/datepicker/datepicker-toggle.js +76 -73
  131. package/development/datepicker/datepicker.js +55 -37
  132. package/development/dialog/dialog/dialog.d.ts +2 -0
  133. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  134. package/development/dialog/dialog-content.js +1 -1
  135. package/development/dialog/dialog.js +38 -12
  136. package/development/expansion-panel/expansion-panel-content.js +1 -1
  137. package/development/flip-card/flip-card-details.js +1 -1
  138. package/development/flip-card/flip-card-summary.js +1 -1
  139. package/development/icon.js +1 -1
  140. package/development/image.js +2 -2
  141. package/development/lead-container.js +1 -1
  142. package/development/link-list/link-list-anchor.js +1 -1
  143. package/development/link-list/link-list.js +1 -1
  144. package/development/loading-indicator-circle.js +1 -1
  145. package/development/loading-indicator.js +1 -1
  146. package/development/map-container.js +1 -1
  147. package/development/menu/menu/menu.d.ts.map +1 -1
  148. package/development/menu/menu.js +35 -12
  149. package/development/message.js +1 -1
  150. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  151. package/development/navigation/navigation.js +15 -8
  152. package/development/notification.js +1 -1
  153. package/development/option/optgroup.js +1 -1
  154. package/development/option/option/option-base-element.d.ts +3 -2
  155. package/development/option/option/option-base-element.d.ts.map +1 -1
  156. package/development/option/option.js +16 -9
  157. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  158. package/development/overlay/overlay.d.ts.map +1 -1
  159. package/development/overlay.js +29 -13
  160. package/development/paginator/paginator.js +1 -1
  161. package/development/popover/popover/popover.d.ts.map +1 -1
  162. package/development/popover/popover.js +16 -13
  163. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  164. package/development/radio-button/radio-button-group.js +2 -2
  165. package/development/{sbb-tokens-BdGhUJjM.js → sbb-tokens-CSAKTXUi.js} +15 -15
  166. package/development/screen-reader-only.js +1 -1
  167. package/development/select/select.d.ts +11 -0
  168. package/development/select/select.d.ts.map +1 -1
  169. package/development/select.js +60 -9
  170. package/development/signet.js +1 -1
  171. package/development/stepper/step.js +1 -1
  172. package/development/tabs/tab.js +1 -1
  173. package/development/time-input.js +1 -1
  174. package/development/title/title-base.d.ts.map +1 -1
  175. package/development/title.js +4 -5
  176. package/development/toast/toast.d.ts.map +1 -1
  177. package/development/toast.js +14 -8
  178. package/development/toggle/toggle.js +2 -2
  179. package/development/train/train-blocked-passage.js +1 -1
  180. package/development/train/train-wagon.js +1 -1
  181. package/dialog/dialog/dialog.d.ts +2 -0
  182. package/dialog/dialog/dialog.d.ts.map +1 -1
  183. package/dialog/dialog-content.js +4 -4
  184. package/dialog/dialog-title.js +8 -8
  185. package/dialog/dialog.js +59 -49
  186. package/divider.js +12 -12
  187. package/expansion-panel/expansion-panel-content.js +3 -3
  188. package/file-selector/file-selector-dropzone.js +5 -5
  189. package/file-selector/file-selector.js +6 -6
  190. package/flip-card/flip-card-details.js +7 -7
  191. package/flip-card/flip-card-summary.js +12 -12
  192. package/header/header-button.js +5 -5
  193. package/header/header-link.js +5 -5
  194. package/icon.js +37 -37
  195. package/image.js +16 -16
  196. package/lead-container.js +3 -3
  197. package/link/block-link-button.js +4 -4
  198. package/link/block-link-static.js +9 -9
  199. package/link/block-link.js +4 -4
  200. package/link/common.js +16 -16
  201. package/link/link-button.js +7 -7
  202. package/link/link-static.js +7 -7
  203. package/link/link.js +4 -4
  204. package/link-list/common.js +12 -12
  205. package/link-list/link-list-anchor.js +3 -3
  206. package/link-list/link-list.js +3 -3
  207. package/loading-indicator-circle.js +14 -14
  208. package/loading-indicator.js +3 -3
  209. package/map-container.js +6 -6
  210. package/menu/common.js +7 -7
  211. package/menu/menu/menu.d.ts.map +1 -1
  212. package/menu/menu-button.js +8 -8
  213. package/menu/menu-link.js +6 -6
  214. package/menu/menu.js +64 -42
  215. package/message.js +3 -3
  216. package/navigation/navigation/navigation.d.ts.map +1 -1
  217. package/navigation/navigation-button.js +4 -4
  218. package/navigation/navigation-link.js +7 -7
  219. package/navigation/navigation-list.js +4 -4
  220. package/navigation/navigation-marker.js +3 -3
  221. package/navigation/navigation.js +21 -20
  222. package/notification.js +19 -19
  223. package/option/optgroup.js +14 -14
  224. package/option/option/option-base-element.d.ts +3 -2
  225. package/option/option/option-base-element.d.ts.map +1 -1
  226. package/option/option.js +115 -103
  227. package/overlay/overlay-base-element.d.ts.map +1 -1
  228. package/overlay/overlay.d.ts.map +1 -1
  229. package/overlay.js +87 -84
  230. package/package.json +1 -1
  231. package/paginator/common.js +6 -6
  232. package/paginator/paginator.js +1 -1
  233. package/popover/popover/popover.d.ts.map +1 -1
  234. package/popover/popover.js +73 -73
  235. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  236. package/radio-button/radio-button-group.js +1 -1
  237. package/radio-button/radio-button-panel.js +5 -5
  238. package/{sbb-tokens-Dx20OtVg.js → sbb-tokens-BgDF8jIh.js} +14 -14
  239. package/screen-reader-only.js +8 -8
  240. package/select/select.d.ts +11 -0
  241. package/select/select.d.ts.map +1 -1
  242. package/select.js +111 -83
  243. package/signet.js +1 -1
  244. package/slider.js +8 -8
  245. package/standard-theme.css +20 -2
  246. package/status.js +3 -3
  247. package/stepper/step-label.js +4 -4
  248. package/stepper/step.js +3 -3
  249. package/table/table-wrapper.js +4 -4
  250. package/tabs/tab-group.js +24 -24
  251. package/tabs/tab.js +4 -4
  252. package/tag/tag-group.js +7 -7
  253. package/teaser-product/common.js +5 -5
  254. package/teaser-product/teaser-product-static.js +2 -2
  255. package/time-input.js +3 -3
  256. package/timetable-occupancy-icon.js +3 -3
  257. package/timetable-occupancy.js +6 -6
  258. package/title/title-base.d.ts.map +1 -1
  259. package/title.js +41 -42
  260. package/toast/toast.d.ts.map +1 -1
  261. package/toast.js +58 -54
  262. package/toggle/toggle-option.js +11 -11
  263. package/toggle/toggle.js +3 -3
  264. package/toggle-check.js +5 -5
  265. package/train/train-blocked-passage.js +3 -3
  266. package/train/train.js +28 -28
@@ -11,10 +11,9 @@ import { customElement, property, state } from "lit/decorators.js";
11
11
  import { ref } from "lit/directives/ref.js";
12
12
  import { sbbInputModalityDetector } from "../core/a11y.js";
13
13
  import { SbbLanguageController } from "../core/controllers.js";
14
- import { hostAttributes } from "../core/decorators.js";
15
14
  import { i18nShowCalendar } from "../core/i18n.js";
16
15
  import { SbbNegativeMixin, SbbHydrationMixin } from "../core/mixins.js";
17
- import { getDatePicker, datepickerControlRegisteredEventFactory } from "./datepicker.js";
16
+ import { SbbDatepickerAssociationControlController } from "./common.js";
18
17
  import "../calendar.js";
19
18
  import "../popover/popover.js";
20
19
  import "../button/mini-button.js";
@@ -37,19 +36,26 @@ const style = css`*,
37
36
 
38
37
  sbb-icon {
39
38
  color: var(--sbb-color-graphite);
39
+ }
40
+
41
+ sbb-popover {
42
+ margin: 0;
43
+ padding: 0;
44
+ border: none;
45
+ width: auto;
46
+ height: auto;
47
+ background-color: transparent;
40
48
  }`;
41
49
  let SbbDatepickerToggleElement = (() => {
42
- var _datePicker_accessor_storage, _view_accessor_storage, __disabled_accessor_storage, __min_accessor_storage, __max_accessor_storage, __renderCalendar_accessor_storage, _a;
43
- let _classDecorators = [customElement("sbb-datepicker-toggle"), hostAttributes({
44
- slot: "prefix"
45
- })];
50
+ var _view_accessor_storage, __disabled_accessor_storage, __min_accessor_storage, __max_accessor_storage, __renderCalendar_accessor_storage, _a;
51
+ let _classDecorators = [customElement("sbb-datepicker-toggle")];
46
52
  let _classDescriptor;
47
53
  let _classExtraInitializers = [];
48
54
  let _classThis;
49
55
  let _classSuper = SbbNegativeMixin(SbbHydrationMixin(LitElement));
50
- let _datePicker_decorators;
51
- let _datePicker_initializers = [];
52
- let _datePicker_extraInitializers = [];
56
+ let _instanceExtraInitializers = [];
57
+ let _set_datePicker_decorators;
58
+ let _set_datepicker_decorators;
53
59
  let _view_decorators;
54
60
  let _view_initializers = [];
55
61
  let _view_extraInitializers = [];
@@ -69,20 +75,20 @@ let SbbDatepickerToggleElement = (() => {
69
75
  constructor() {
70
76
  var _a2;
71
77
  super();
72
- __privateAdd(this, _datePicker_accessor_storage);
73
78
  __privateAdd(this, _view_accessor_storage);
74
79
  __privateAdd(this, __disabled_accessor_storage);
75
80
  __privateAdd(this, __min_accessor_storage);
76
81
  __privateAdd(this, __max_accessor_storage);
77
82
  __privateAdd(this, __renderCalendar_accessor_storage);
78
- __privateSet(this, _datePicker_accessor_storage, __runInitializers(this, _datePicker_initializers, null));
79
- __privateSet(this, _view_accessor_storage, (__runInitializers(this, _datePicker_extraInitializers), __runInitializers(this, _view_initializers, "day")));
83
+ this._datepicker = __runInitializers(this, _instanceExtraInitializers);
84
+ __privateSet(this, _view_accessor_storage, __runInitializers(this, _view_initializers, "day"));
80
85
  __privateSet(this, __disabled_accessor_storage, (__runInitializers(this, _view_extraInitializers), __runInitializers(this, __disabled_initializers, false)));
81
86
  __privateSet(this, __min_accessor_storage, (__runInitializers(this, __disabled_extraInitializers), __runInitializers(this, __min_initializers, null)));
82
87
  __privateSet(this, __max_accessor_storage, (__runInitializers(this, __min_extraInitializers), __runInitializers(this, __max_initializers, null)));
83
88
  __privateSet(this, __renderCalendar_accessor_storage, (__runInitializers(this, __max_extraInitializers), __runInitializers(this, __renderCalendar_initializers, false)));
84
- this._datePickerElement = __runInitializers(this, __renderCalendar_extraInitializers);
89
+ this._calendarElement = __runInitializers(this, __renderCalendar_extraInitializers);
85
90
  this._language = new SbbLanguageController(this);
91
+ this.addController(new SbbDatepickerAssociationControlController(this));
86
92
  (_a2 = this.addEventListener) == null ? void 0 : _a2.call(this, "click", (event) => {
87
93
  if (event.composedPath()[0] === this) {
88
94
  this.open();
@@ -92,12 +98,28 @@ let SbbDatepickerToggleElement = (() => {
92
98
  this.hydrationComplete.then(() => this._renderCalendar = true);
93
99
  }
94
100
  }
95
- /** Datepicker reference. */
101
+ /**
102
+ * Datepicker reference.
103
+ * @internal
104
+ * @deprecated Use property/attribute `datepicker` instead.
105
+ */
106
+ set datePicker(value) {
107
+ {
108
+ console.warn(`Property datePicker/Attribute date-picker is deprecated. Use 'datepicker' instead.`);
109
+ }
110
+ this.datepicker = value;
111
+ }
112
+ /** @internal */
96
113
  get datePicker() {
97
- return __privateGet(this, _datePicker_accessor_storage);
114
+ return this.datepicker;
98
115
  }
99
- set datePicker(value) {
100
- __privateSet(this, _datePicker_accessor_storage, value);
116
+ /** Datepicker reference. */
117
+ set datepicker(value) {
118
+ var _a2, _b, _c;
119
+ this._datepicker = typeof value === "string" ? ((_c = (_b = (_a2 = this.getRootNode) == null ? void 0 : _a2.call(this)) == null ? void 0 : _b.querySelector) == null ? void 0 : _c.call(_b, `#${value}`)) ?? null : value;
120
+ }
121
+ get datepicker() {
122
+ return this._datepicker ?? null;
101
123
  }
102
124
  /** The initial view of calendar which should be displayed on opening. */
103
125
  get view() {
@@ -142,59 +164,36 @@ let SbbDatepickerToggleElement = (() => {
142
164
  connectedCallback() {
143
165
  var _a2, _b;
144
166
  super.connectedCallback();
145
- if (!this.datePicker) {
146
- this._init();
147
- }
167
+ this.slot || (this.slot = "prefix");
148
168
  const formField = ((_a2 = this.closest) == null ? void 0 : _a2.call(this, "sbb-form-field")) ?? ((_b = this.closest) == null ? void 0 : _b.call(this, "[data-form-field]"));
149
169
  if (formField) {
150
170
  this.negative = formField.hasAttribute("negative");
151
171
  }
152
172
  }
153
173
  willUpdate(changedProperties) {
174
+ var _a2, _b, _c, _d;
154
175
  super.willUpdate(changedProperties);
155
- if (changedProperties.has("datePicker")) {
156
- this._init(this.datePicker);
157
- }
158
- }
159
- disconnectedCallback() {
160
- var _a2;
161
- super.disconnectedCallback();
162
- (_a2 = this._datePickerController) == null ? void 0 : _a2.abort();
163
- }
164
- _init(datePicker) {
165
- var _a2, _b, _c, _d, _e;
166
- (_a2 = this._datePickerController) == null ? void 0 : _a2.abort();
167
- this._datePickerController = new AbortController();
168
- this._datePickerElement = getDatePicker(this, datePicker);
169
- if (!this._datePickerElement) {
170
- (_b = this.parentElement) == null ? void 0 : _b.addEventListener("inputUpdated", (e) => this._init(e.target), { once: true, signal: this._datePickerController.signal });
171
- return;
176
+ if (this.datepicker) {
177
+ this._disabled = (((_a2 = this.datepicker.inputElement) == null ? void 0 : _a2.disabled) || ((_b = this.datepicker.inputElement) == null ? void 0 : _b.readOnly)) ?? true;
178
+ this._min = (_c = this.datepicker.inputElement) == null ? void 0 : _c.min;
179
+ this._max = (_d = this.datepicker.inputElement) == null ? void 0 : _d.max;
180
+ this._configureCalendar();
181
+ if (this._calendarElement) {
182
+ this._calendarElement.selected = this.datepicker.valueAsDate ?? null;
183
+ }
184
+ } else {
185
+ this._disabled = true;
186
+ this._min = null;
187
+ this._max = null;
172
188
  }
173
- (_c = this._datePickerElement) == null ? void 0 : _c.addEventListener("inputUpdated", (event) => {
174
- this._datePickerElement = event.target;
175
- this._disabled = !!(event.detail.disabled || event.detail.readonly);
176
- this._min = event.detail.min;
177
- this._max = event.detail.max;
178
- }, { signal: this._datePickerController.signal });
179
- (_d = this._datePickerElement) == null ? void 0 : _d.addEventListener("change", (event) => this._datePickerChanged(event), {
180
- signal: this._datePickerController.signal
181
- });
182
- (_e = this._datePickerElement) == null ? void 0 : _e.addEventListener("datePickerUpdated", (event) => this._configureCalendar(this._calendarElement, event.target), { signal: this._datePickerController.signal });
183
- this._datePickerElement.dispatchEvent(datepickerControlRegisteredEventFactory());
184
189
  }
185
- _configureCalendar(calendar, datepicker) {
186
- if (!calendar || !datepicker) {
190
+ _configureCalendar() {
191
+ if (!this._calendarElement || !this.datepicker) {
187
192
  return;
188
193
  }
189
- calendar.wide = datepicker.wide;
190
- calendar.now = this._nowOrNull();
191
- calendar.dateFilter = datepicker.dateFilter;
192
- }
193
- _datePickerChanged(event) {
194
- this._datePickerElement = event.target;
195
- if (this._calendarElement) {
196
- this._calendarElement.selected = this._datePickerElement.valueAsDate ?? null;
197
- }
194
+ this._calendarElement.wide = this.datepicker.wide;
195
+ this._calendarElement.now = this._nowOrNull();
196
+ this._calendarElement.dateFilter = this.datepicker.dateFilter;
198
197
  }
199
198
  _assignCalendar(calendar) {
200
199
  var _a2;
@@ -202,11 +201,11 @@ let SbbDatepickerToggleElement = (() => {
202
201
  return;
203
202
  }
204
203
  this._calendarElement = calendar;
205
- if (!("valueAsDate" in (this._datePickerElement ?? {})) || !((_a2 = this._calendarElement) == null ? void 0 : _a2.resetPosition)) {
204
+ if (!("valueAsDate" in (this.datepicker ?? {})) || !((_a2 = this._calendarElement) == null ? void 0 : _a2.resetPosition)) {
206
205
  return;
207
206
  }
208
- this._calendarElement.selected = this._datePickerElement.valueAsDate ?? null;
209
- this._configureCalendar(this._calendarElement, this._datePickerElement);
207
+ this._calendarElement.selected = this.datepicker.valueAsDate ?? null;
208
+ this._configureCalendar();
210
209
  this._calendarElement.resetPosition();
211
210
  }
212
211
  updated(changedProperties) {
@@ -215,7 +214,7 @@ let SbbDatepickerToggleElement = (() => {
215
214
  }
216
215
  _nowOrNull() {
217
216
  var _a2;
218
- return ((_a2 = this._datePickerElement) == null ? void 0 : _a2.hasCustomNow()) ? this._datePickerElement.now : null;
217
+ return ((_a2 = this.datepicker) == null ? void 0 : _a2.hasCustomNow()) ? this.datepicker.now : null;
219
218
  }
220
219
  render() {
221
220
  var _a2, _b;
@@ -224,7 +223,7 @@ let SbbDatepickerToggleElement = (() => {
224
223
  class="sbb-datepicker-toggle__trigger"
225
224
  icon-name="calendar-small"
226
225
  aria-label=${i18nShowCalendar[this._language.current]}
227
- ?disabled=${!isServer && (!this._datePickerElement || this._disabled)}
226
+ ?disabled=${!isServer && (!this.datepicker || this._disabled)}
228
227
  ?negative=${this.negative}
229
228
  ${ref((el) => this._triggerElement = el)}
230
229
  ></sbb-mini-button>
@@ -244,12 +243,12 @@ let SbbDatepickerToggleElement = (() => {
244
243
  .min=${this._min}
245
244
  .max=${this._max}
246
245
  .now=${this._nowOrNull()}
247
- ?wide=${(_a2 = this._datePickerElement) == null ? void 0 : _a2.wide}
248
- .dateFilter=${(_b = this._datePickerElement) == null ? void 0 : _b.dateFilter}
246
+ ?wide=${(_a2 = this.datepicker) == null ? void 0 : _a2.wide}
247
+ .dateFilter=${(_b = this.datepicker) == null ? void 0 : _b.dateFilter}
249
248
  @dateSelected=${(d) => {
250
249
  this._calendarElement.selected = d.detail;
251
- if (this._datePickerElement) {
252
- this._datePickerElement.valueAsDate = d.detail;
250
+ if (this.datepicker) {
251
+ this.datepicker.valueAsDate = d.detail;
253
252
  }
254
253
  }}
255
254
  ${ref((calendar) => this._assignCalendar(calendar))}
@@ -257,17 +256,21 @@ let SbbDatepickerToggleElement = (() => {
257
256
  </sbb-popover>
258
257
  `;
259
258
  }
260
- }, _datePicker_accessor_storage = new WeakMap(), _view_accessor_storage = new WeakMap(), __disabled_accessor_storage = new WeakMap(), __min_accessor_storage = new WeakMap(), __max_accessor_storage = new WeakMap(), __renderCalendar_accessor_storage = new WeakMap(), _classThis = _a, (() => {
259
+ }, _view_accessor_storage = new WeakMap(), __disabled_accessor_storage = new WeakMap(), __min_accessor_storage = new WeakMap(), __max_accessor_storage = new WeakMap(), __renderCalendar_accessor_storage = new WeakMap(), _classThis = _a, (() => {
261
260
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
262
- _datePicker_decorators = [property({ attribute: "date-picker" })];
261
+ _set_datePicker_decorators = [property({ attribute: "date-picker" })];
262
+ _set_datepicker_decorators = [property({ attribute: "datepicker" })];
263
263
  _view_decorators = [property()];
264
264
  __disabled_decorators = [state()];
265
265
  __min_decorators = [state()];
266
266
  __max_decorators = [state()];
267
267
  __renderCalendar_decorators = [state()];
268
- __esDecorate(_a, null, _datePicker_decorators, { kind: "accessor", name: "datePicker", static: false, private: false, access: { has: (obj) => "datePicker" in obj, get: (obj) => obj.datePicker, set: (obj, value) => {
268
+ __esDecorate(_a, null, _set_datePicker_decorators, { kind: "setter", name: "datePicker", static: false, private: false, access: { has: (obj) => "datePicker" in obj, set: (obj, value) => {
269
269
  obj.datePicker = value;
270
- } }, metadata: _metadata }, _datePicker_initializers, _datePicker_extraInitializers);
270
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
271
+ __esDecorate(_a, null, _set_datepicker_decorators, { kind: "setter", name: "datepicker", static: false, private: false, access: { has: (obj) => "datepicker" in obj, set: (obj, value) => {
272
+ obj.datepicker = value;
273
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
271
274
  __esDecorate(_a, null, _view_decorators, { kind: "accessor", name: "view", static: false, private: false, access: { has: (obj) => "view" in obj, get: (obj) => obj.view, set: (obj, value) => {
272
275
  obj.view = value;
273
276
  } }, metadata: _metadata }, _view_initializers, _view_extraInitializers);
@@ -292,4 +295,4 @@ let SbbDatepickerToggleElement = (() => {
292
295
  export {
293
296
  SbbDatepickerToggleElement
294
297
  };
295
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXItdG9nZ2xlL2RhdGVwaWNrZXItdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYk1pbmlCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL21pbmktYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgQ2FsZW5kYXJWaWV3LCBTYmJDYWxlbmRhckVsZW1lbnQgfSBmcm9tICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuU2hvd0NhbGVuZGFyIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJQb3BvdmVyRWxlbWVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50LCBTYmJJbnB1dFVwZGF0ZUV2ZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWRFdmVudEZhY3RvcnksIGdldERhdGVQaWNrZXIgfSBmcm9tICcuLi9kYXRlcGlja2VyLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZGF0ZXBpY2tlci10b2dnbGUuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci5qcyc7XG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9taW5pLWJ1dHRvbi5qcyc7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIGBzYmItZGF0ZXBpY2tlcmAsIGl0IGNhbiBiZSB1c2VkIHRvIHNlbGVjdCBhIGRhdGUgZnJvbSBhIGBzYmItY2FsZW5kYXJgLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZXBpY2tlci10b2dnbGUnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ3ByZWZpeCcsXG59KVxuY2xhc3MgU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ8VCA9IERhdGU+IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogRGF0ZXBpY2tlciByZWZlcmVuY2UuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RhdGUtcGlja2VyJyB9KSBwdWJsaWMgYWNjZXNzb3IgZGF0ZVBpY2tlcjpcbiAgICB8IHN0cmluZ1xuICAgIHwgU2JiRGF0ZXBpY2tlckVsZW1lbnRcbiAgICB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9tYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX3JlbmRlckNhbGVuZGFyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlckVsZW1lbnQ6IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfY2FsZW5kYXJFbGVtZW50ITogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudCE6IFNiYk1pbmlCdXR0b25FbGVtZW50O1xuICBwcml2YXRlIF9wb3BvdmVyRWxlbWVudCE6IFNiYlBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9kYXRlUGlja2VyQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmNvbXBvc2VkUGF0aCgpWzBdID09PSB0aGlzKSB7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiAodGhpcy5fcmVuZGVyQ2FsZW5kYXIgPSB0cnVlKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCdzYmItbWluaS1idXR0b24nKSE7XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAoIXRoaXMuZGF0ZVBpY2tlcikge1xuICAgICAgdGhpcy5faW5pdCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpID8/IHRoaXMuY2xvc2VzdD8uKCdbZGF0YS1mb3JtLWZpZWxkXScpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSBmb3JtRmllbGQuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGF0ZVBpY2tlcicpKSB7XG4gICAgICB0aGlzLl9pbml0KHRoaXMuZGF0ZVBpY2tlciEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdChkYXRlUGlja2VyPzogc3RyaW5nIHwgU2JiRGF0ZXBpY2tlckVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudCA9IGdldERhdGVQaWNrZXI8VD4odGhpcywgZGF0ZVBpY2tlcik7XG4gICAgaWYgKCF0aGlzLl9kYXRlUGlja2VyRWxlbWVudCkge1xuICAgICAgLy8gSWYgdGhlIGNvbXBvbmVudCBpcyBhdHRhY2hlZCB0byB0aGUgRE9NIGJlZm9yZSB0aGUgZGF0ZXBpY2tlciwgaXQgaGFzIHRvIGxpc3RlbiBmb3IgdGhlIGRhdGVwaWNrZXIgaW5pdCxcbiAgICAgIC8vIGFzc3VtaW5nIHRoYXQgdGhlIHR3byBjb21wb25lbnRzIHNoYXJlIHRoZSBzYW1lIHBhcmVudCBlbGVtZW50LlxuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnaW5wdXRVcGRhdGVkJyxcbiAgICAgICAgKGU6IEV2ZW50KSA9PiB0aGlzLl9pbml0KGUudGFyZ2V0IGFzIFNiYkRhdGVwaWNrZXJFbGVtZW50KSxcbiAgICAgICAgeyBvbmNlOiB0cnVlLCBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdpbnB1dFVwZGF0ZWQnLFxuICAgICAgKGV2ZW50OiBDdXN0b21FdmVudDxTYmJJbnB1dFVwZGF0ZUV2ZW50PikgPT4ge1xuICAgICAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUPjtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSAhIShldmVudC5kZXRhaWwuZGlzYWJsZWQgfHwgZXZlbnQuZGV0YWlsLnJlYWRvbmx5KTtcbiAgICAgICAgdGhpcy5fbWluID0gZXZlbnQuZGV0YWlsLm1pbjtcbiAgICAgICAgdGhpcy5fbWF4ID0gZXZlbnQuZGV0YWlsLm1heDtcbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjaGFuZ2UnLFxuICAgICAgKGV2ZW50OiBFdmVudCkgPT4gdGhpcy5fZGF0ZVBpY2tlckNoYW5nZWQoZXZlbnQpLFxuICAgICAge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdkYXRlUGlja2VyVXBkYXRlZCcsXG4gICAgICAoZXZlbnQ6IEV2ZW50KSA9PlxuICAgICAgICB0aGlzLl9jb25maWd1cmVDYWxlbmRhcih0aGlzLl9jYWxlbmRhckVsZW1lbnQsIGV2ZW50LnRhcmdldCBhcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUPiksXG4gICAgICB7IHNpZ25hbDogdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KGRhdGVwaWNrZXJDb250cm9sUmVnaXN0ZXJlZEV2ZW50RmFjdG9yeSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZUNhbGVuZGFyKFxuICAgIGNhbGVuZGFyOiBTYmJDYWxlbmRhckVsZW1lbnQ8VD4sXG4gICAgZGF0ZXBpY2tlcjogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4sXG4gICk6IHZvaWQge1xuICAgIGlmICghY2FsZW5kYXIgfHwgIWRhdGVwaWNrZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2FsZW5kYXIud2lkZSA9IGRhdGVwaWNrZXIud2lkZTtcbiAgICBjYWxlbmRhci5ub3cgPSB0aGlzLl9ub3dPck51bGwoKTtcbiAgICBjYWxlbmRhci5kYXRlRmlsdGVyID0gZGF0ZXBpY2tlci5kYXRlRmlsdGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlckNoYW5nZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD47XG4gICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCkge1xuICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnNlbGVjdGVkID0gdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQudmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hc3NpZ25DYWxlbmRhcihjYWxlbmRhcjogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCAmJiB0aGlzLl9jYWxlbmRhckVsZW1lbnQgPT09IGNhbGVuZGFyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudCA9IGNhbGVuZGFyO1xuICAgIGlmIChcbiAgICAgICEoJ3ZhbHVlQXNEYXRlJyBpbiAodGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPz8ge30pKSB8fFxuICAgICAgIXRoaXMuX2NhbGVuZGFyRWxlbWVudD8ucmVzZXRQb3NpdGlvblxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQuc2VsZWN0ZWQgPSB0aGlzLl9kYXRlUGlja2VyRWxlbWVudCEudmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgICB0aGlzLl9jb25maWd1cmVDYWxlbmRhcih0aGlzLl9jYWxlbmRhckVsZW1lbnQsIHRoaXMuX2RhdGVQaWNrZXJFbGVtZW50ISk7XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnJlc2V0UG9zaXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fcG9wb3ZlckVsZW1lbnQudHJpZ2dlciA9IHRoaXMuX3RyaWdnZXJFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfbm93T3JOdWxsKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/Lmhhc0N1c3RvbU5vdygpID8gdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQubm93IDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1taW5pLWJ1dHRvblxuICAgICAgICBjbGFzcz1cInNiYi1kYXRlcGlja2VyLXRvZ2dsZV9fdHJpZ2dlclwiXG4gICAgICAgIGljb24tbmFtZT1cImNhbGVuZGFyLXNtYWxsXCJcbiAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5TaG93Q2FsZW5kYXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9kaXNhYmxlZD0keyFpc1NlcnZlciAmJiAoIXRoaXMuX2RhdGVQaWNrZXJFbGVtZW50IHx8IHRoaXMuX2Rpc2FibGVkKX1cbiAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gZWwgYXMgU2JiTWluaUJ1dHRvbkVsZW1lbnQpKX1cbiAgICAgID48L3NiYi1taW5pLWJ1dHRvbj5cbiAgICAgIDxzYmItcG9wb3ZlclxuICAgICAgICBAd2lsbE9wZW49JHsoKSA9PiB0aGlzLl9jYWxlbmRhckVsZW1lbnQucmVzZXRQb3NpdGlvbigpfVxuICAgICAgICBAZGlkT3Blbj0keygpID0+IHtcbiAgICAgICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAudHJpZ2dlcj0ke3RoaXMuX3RyaWdnZXJFbGVtZW50fVxuICAgICAgICBoaWRlLWNsb3NlLWJ1dHRvblxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fcG9wb3ZlckVsZW1lbnQgPSBlbCBhcyBTYmJQb3BvdmVyRWxlbWVudCkpfVxuICAgICAgPlxuICAgICAgICAke3RoaXMuX3JlbmRlckNhbGVuZGFyXG4gICAgICAgICAgPyBodG1sYDxzYmItY2FsZW5kYXJcbiAgICAgICAgICAgICAgLnZpZXc9JHt0aGlzLnZpZXd9XG4gICAgICAgICAgICAgIC5taW49JHt0aGlzLl9taW59XG4gICAgICAgICAgICAgIC5tYXg9JHt0aGlzLl9tYXh9XG4gICAgICAgICAgICAgIC5ub3c9JHt0aGlzLl9ub3dPck51bGwoKX1cbiAgICAgICAgICAgICAgP3dpZGU9JHt0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8ud2lkZX1cbiAgICAgICAgICAgICAgLmRhdGVGaWx0ZXI9JHt0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uZGF0ZUZpbHRlcn1cbiAgICAgICAgICAgICAgQGRhdGVTZWxlY3RlZD0keyhkOiBDdXN0b21FdmVudDxUPikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IGQuZGV0YWlsO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kYXRlUGlja2VyRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQudmFsdWVBc0RhdGUgPSBkLmRldGFpbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICR7cmVmKChjYWxlbmRhcj86IEVsZW1lbnQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fYXNzaWduQ2FsZW5kYXIoY2FsZW5kYXIgYXMgU2JiQ2FsZW5kYXJFbGVtZW50PFQ+KSxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgID48L3NiYi1jYWxlbmRhcj5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9zYmItcG9wb3Zlcj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlci10b2dnbGUnOiBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBOEJNLDhCQUEwQixNQUFBOztBQUovQixNQUFBLG1CQUFBLENBQUEsY0FBYyx1QkFBdUIsR0FDckMsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLEVBQUEsQ0FDUCxDQUFDOzs7O0FBQ2lELE1BQUEsY0FBQSxpQkFB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
298
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXItdG9nZ2xlL2RhdGVwaWNrZXItdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYk1pbmlCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL21pbmktYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgQ2FsZW5kYXJWaWV3LCBTYmJDYWxlbmRhckVsZW1lbnQgfSBmcm9tICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBpMThuU2hvd0NhbGVuZGFyIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJQb3BvdmVyRWxlbWVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci5qcyc7XG5pbXBvcnQgeyBTYmJEYXRlcGlja2VyQXNzb2NpYXRpb25Db250cm9sQ29udHJvbGxlciwgdHlwZSBTYmJEYXRlcGlja2VyQ29udHJvbCB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGVwaWNrZXItdG9nZ2xlLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vY2FsZW5kYXIuanMnO1xuaW1wb3J0ICcuLi8uLi9wb3BvdmVyL3BvcG92ZXIuanMnO1xuaW1wb3J0ICcuLi8uLi9idXR0b24vbWluaS1idXR0b24uanMnO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLWRhdGVwaWNrZXJgLCBpdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSBkYXRlIGZyb20gYSBgc2JiLWNhbGVuZGFyYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWRhdGVwaWNrZXItdG9nZ2xlJylcbmNsYXNzIFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50PFQgPSBEYXRlPlxuICBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkpXG4gIGltcGxlbWVudHMgU2JiRGF0ZXBpY2tlckNvbnRyb2w8VD5cbntcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIERhdGVwaWNrZXIgcmVmZXJlbmNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHByb3BlcnR5L2F0dHJpYnV0ZSBgZGF0ZXBpY2tlcmAgaW5zdGVhZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RhdGUtcGlja2VyJyB9KVxuICBwdWJsaWMgc2V0IGRhdGVQaWNrZXIodmFsdWU6IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCkge1xuICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBQcm9wZXJ0eSBkYXRlUGlja2VyL0F0dHJpYnV0ZSBkYXRlLXBpY2tlciBpcyBkZXByZWNhdGVkLiBVc2UgJ2RhdGVwaWNrZXInIGluc3RlYWQuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuZGF0ZXBpY2tlciA9IHZhbHVlIGFzIHVua25vd24gYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsO1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIGdldCBkYXRlUGlja2VyKCk6IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlcjtcbiAgfVxuXG4gIC8qKiBEYXRlcGlja2VyIHJlZmVyZW5jZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGF0ZXBpY2tlcicgfSlcbiAgcHVibGljIHNldCBkYXRlcGlja2VyKHZhbHVlOiBTYmJEYXRlcGlja2VyRWxlbWVudDxUPiB8IG51bGwpIHtcbiAgICB0aGlzLl9kYXRlcGlja2VyID1cbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyAoKHRoaXMuZ2V0Um9vdE5vZGU/LigpIGFzIFBhcmVudE5vZGUpPy5xdWVyeVNlbGVjdG9yPy4oYCMke3ZhbHVlfWApID8/IG51bGwpXG4gICAgICAgIDogdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBkYXRlcGlja2VyKCk6IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVwaWNrZXIgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIF9kYXRlcGlja2VyPzogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9tYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX3JlbmRlckNhbGVuZGFyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfY2FsZW5kYXJFbGVtZW50ITogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudCE6IFNiYk1pbmlCdXR0b25FbGVtZW50O1xuICBwcml2YXRlIF9wb3BvdmVyRWxlbWVudCE6IFNiYlBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJEYXRlcGlja2VyQXNzb2NpYXRpb25Db250cm9sQ29udHJvbGxlcih0aGlzKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQuY29tcG9zZWRQYXRoKClbMF0gPT09IHRoaXMpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9yZW5kZXJDYWxlbmRhciA9IHRydWUpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1taW5pLWJ1dHRvbicpITtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ3ByZWZpeCc7XG4gICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJykgPz8gdGhpcy5jbG9zZXN0Py4oJ1tkYXRhLWZvcm0tZmllbGRdJyk7XG4gICAgaWYgKGZvcm1GaWVsZCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IGZvcm1GaWVsZC5oYXNBdHRyaWJ1dGUoJ25lZ2F0aXZlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPVxuICAgICAgICAodGhpcy5kYXRlcGlja2VyLmlucHV0RWxlbWVudD8uZGlzYWJsZWQgfHwgdGhpcy5kYXRlcGlja2VyLmlucHV0RWxlbWVudD8ucmVhZE9ubHkpID8/IHRydWU7XG4gICAgICB0aGlzLl9taW4gPSB0aGlzLmRhdGVwaWNrZXIuaW5wdXRFbGVtZW50Py5taW47XG4gICAgICB0aGlzLl9tYXggPSB0aGlzLmRhdGVwaWNrZXIuaW5wdXRFbGVtZW50Py5tYXg7XG5cbiAgICAgIHRoaXMuX2NvbmZpZ3VyZUNhbGVuZGFyKCk7XG4gICAgICBpZiAodGhpcy5fY2FsZW5kYXJFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IHRoaXMuZGF0ZXBpY2tlci52YWx1ZUFzRGF0ZSA/PyBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLl9taW4gPSBudWxsO1xuICAgICAgdGhpcy5fbWF4ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVDYWxlbmRhcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NhbGVuZGFyRWxlbWVudCB8fCAhdGhpcy5kYXRlcGlja2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC53aWRlID0gdGhpcy5kYXRlcGlja2VyLndpZGU7XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50Lm5vdyA9IHRoaXMuX25vd09yTnVsbCgpO1xuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5kYXRlRmlsdGVyID0gdGhpcy5kYXRlcGlja2VyLmRhdGVGaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIF9hc3NpZ25DYWxlbmRhcihjYWxlbmRhcjogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCAmJiB0aGlzLl9jYWxlbmRhckVsZW1lbnQgPT09IGNhbGVuZGFyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudCA9IGNhbGVuZGFyO1xuICAgIGlmICghKCd2YWx1ZUFzRGF0ZScgaW4gKHRoaXMuZGF0ZXBpY2tlciA/PyB7fSkpIHx8ICF0aGlzLl9jYWxlbmRhckVsZW1lbnQ/LnJlc2V0UG9zaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnNlbGVjdGVkID0gdGhpcy5kYXRlcGlja2VyIS52YWx1ZUFzRGF0ZSA/PyBudWxsO1xuICAgIHRoaXMuX2NvbmZpZ3VyZUNhbGVuZGFyKCk7XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnJlc2V0UG9zaXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fcG9wb3ZlckVsZW1lbnQudHJpZ2dlciA9IHRoaXMuX3RyaWdnZXJFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfbm93T3JOdWxsKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlcGlja2VyPy5oYXNDdXN0b21Ob3coKSA/IHRoaXMuZGF0ZXBpY2tlci5ub3cgOiBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLW1pbmktYnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2JiLWRhdGVwaWNrZXItdG9nZ2xlX190cmlnZ2VyXCJcbiAgICAgICAgaWNvbi1uYW1lPVwiY2FsZW5kYXItc21hbGxcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7aTE4blNob3dDYWxlbmRhclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgP2Rpc2FibGVkPSR7IWlzU2VydmVyICYmICghdGhpcy5kYXRlcGlja2VyIHx8IHRoaXMuX2Rpc2FibGVkKX1cbiAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gZWwgYXMgU2JiTWluaUJ1dHRvbkVsZW1lbnQpKX1cbiAgICAgID48L3NiYi1taW5pLWJ1dHRvbj5cbiAgICAgIDxzYmItcG9wb3ZlclxuICAgICAgICBAd2lsbE9wZW49JHsoKSA9PiB0aGlzLl9jYWxlbmRhckVsZW1lbnQucmVzZXRQb3NpdGlvbigpfVxuICAgICAgICBAZGlkT3Blbj0keygpID0+IHtcbiAgICAgICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAudHJpZ2dlcj0ke3RoaXMuX3RyaWdnZXJFbGVtZW50fVxuICAgICAgICBoaWRlLWNsb3NlLWJ1dHRvblxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fcG9wb3ZlckVsZW1lbnQgPSBlbCBhcyBTYmJQb3BvdmVyRWxlbWVudCkpfVxuICAgICAgPlxuICAgICAgICAke3RoaXMuX3JlbmRlckNhbGVuZGFyXG4gICAgICAgICAgPyBodG1sYDxzYmItY2FsZW5kYXJcbiAgICAgICAgICAgICAgLnZpZXc9JHt0aGlzLnZpZXd9XG4gICAgICAgICAgICAgIC5taW49JHt0aGlzLl9taW59XG4gICAgICAgICAgICAgIC5tYXg9JHt0aGlzLl9tYXh9XG4gICAgICAgICAgICAgIC5ub3c9JHt0aGlzLl9ub3dPck51bGwoKX1cbiAgICAgICAgICAgICAgP3dpZGU9JHt0aGlzLmRhdGVwaWNrZXI/LndpZGV9XG4gICAgICAgICAgICAgIC5kYXRlRmlsdGVyPSR7dGhpcy5kYXRlcGlja2VyPy5kYXRlRmlsdGVyfVxuICAgICAgICAgICAgICBAZGF0ZVNlbGVjdGVkPSR7KGQ6IEN1c3RvbUV2ZW50PFQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnNlbGVjdGVkID0gZC5kZXRhaWw7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyLnZhbHVlQXNEYXRlID0gZC5kZXRhaWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAke3JlZigoY2FsZW5kYXI/OiBFbGVtZW50KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuX2Fzc2lnbkNhbGVuZGFyKGNhbGVuZGFyIGFzIFNiYkNhbGVuZGFyRWxlbWVudDxUPiksXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA+PC9zYmItY2FsZW5kYXI+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvc2JiLXBvcG92ZXI+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRhdGVwaWNrZXItdG9nZ2xlJzogU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBMEJNLDhCQUEwQixNQUFBOzswQkFEL0IsY0FBYyx1QkFBdUIsQ0FBQzs7OztBQUU3QixNQUFBLGNBQUEsaUJBQWlCLGtCQUFrQixVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdEQsRUFBQSxtQkFBUSxZQUErQztBQUFBLElBcUR2RCxjQUFBOzs7QUFmWTtBQUVIO0FBRUE7QUFFQTtBQUVBO0FBWFUsV0FBQSxjQXBDZjtBQXVDd0IseUJBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFBcUIsS0FBSztBQUU1Qix5QkFBQSw4QkFBQSxrQkFBQSxNQUFBLHVCQUFBLEdBQUEsa0JBQUEsTUFBQSx5QkFBWSxLQUFLO0FBRWpCLHlCQUFBLHlCQUFBLGtCQUFBLE1BQUEsNEJBQUEsR0FBQSxrQkFBQSxNQUFBLG9CQUEyQyxJQUFJO0FBRS9DLHlCQUFBLHlCQUFBLGtCQUFBLE1BQUEsdUJBQUEsR0FBQSxrQkFBQSxNQUFBLG9CQUEyQyxJQUFJO0FBRS9DLHlCQUFBLG9DQUFBLGtCQUFBLE1BQUEsdUJBQUEsR0FBQSxrQkFBQSxNQUFBLCtCQUFrQixLQUFLO0FBRXpDLFdBQUEsbUJBQXlDLGtCQUFBLE1BQUEsa0NBQUE7QUFHekMsV0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFJaEQsV0FBSyxjQUFjLElBQUksMENBQTBDLElBQUksQ0FBQztBQUNqRSxPQUFBQSxNQUFBLEtBQUEscUJBQUEsZ0JBQUFBLElBQUEsV0FBbUIsU0FBUyxDQUFDLFVBQVM7QUFDekMsWUFBSSxNQUFNLGFBQUEsRUFBZSxDQUFDLE1BQU0sTUFBTTtBQUNwQyxlQUFLLEtBQUk7QUFBQSxRQUFBO0FBQUEsTUFDWDtBQUVGLFVBQUksQ0FBQyxVQUFVO0FBQ2IsYUFBSyxrQkFBa0IsS0FBSyxNQUFPLEtBQUssa0JBQWtCLElBQUs7QUFBQSxNQUFBO0FBQUEsSUFDakU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFwREYsSUFBVyxXQUFXLE9BQThDO0FBQ3pDO0FBQ3ZCLGdCQUFRLEtBQ04sb0ZBQW9GO0FBQUEsTUFBQTtBQUd4RixXQUFLLGFBQWE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUdwQixJQUFXLGFBQVU7QUFDbkIsYUFBTyxLQUFLO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLZCxJQUFXLFdBQVcsT0FBcUM7O0FBQ3pELFdBQUssY0FDSCxPQUFPLFVBQVUsYUFDWCxZQUFBQSxNQUFBLEtBQUssZ0JBQUwsZ0JBQUFBLElBQUEsa0NBQXFDLGtCQUFyQyw0QkFBcUQsSUFBSSxLQUFLLFFBQU8sT0FDdkU7QUFBQSxJQUFBO0FBQUEsSUFFUixJQUFXLGFBQVU7QUFDbkIsYUFBTyxLQUFLLGVBQWU7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUtqQixJQUFnQixPQUEyQjtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBM0MsSUFBZ0IsS0FBMkIsT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBLElBRTlDLElBQWlCLFlBQWtCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFuQyxJQUFpQixVQUFrQixPQUFBO0FBQUEseUJBQUEsNkJBQUE7QUFBQSxJQUFBO0FBQUEsSUFFbkMsSUFBaUIsT0FBZ0Q7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQWpFLElBQWlCLEtBQWdELE9BQUE7QUFBQSx5QkFBQSx3QkFBQTtBQUFBLElBQUE7QUFBQSxJQUVqRSxJQUFpQixPQUFnRDtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBakUsSUFBaUIsS0FBZ0QsT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBLElBRWpFLElBQWlCLGtCQUF3QjtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBekMsSUFBaUIsZ0JBQXdCLE9BQUE7QUFBQSx5QkFBQSxtQ0FBQTtBQUFBLElBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQXVCM0MsT0FBSTtBQUNMLFVBQUEsQ0FBQyxLQUFLLGlCQUFpQjtBQUN6QixhQUFLLGtCQUFrQixLQUFLLFdBQVksY0FBYyxpQkFBaUI7QUFBQSxNQUFBO0FBRXpFLFdBQUssZ0JBQWdCOztJQUdQLG9CQUFpQjs7QUFDL0IsWUFBTSxrQkFBaUI7QUFDdkIsV0FBSyxTQUFMLEtBQUssT0FBUztBQUNkLFlBQU0sY0FBWUEsTUFBQSxLQUFLLFlBQUwsZ0JBQUFBLElBQUEsV0FBZSx3QkFBcUIsVUFBSyxZQUFMLDhCQUFlO0FBQ3JFLFVBQUksV0FBVztBQUNSLGFBQUEsV0FBVyxVQUFVLGFBQWEsVUFBVTtBQUFBLE1BQUE7QUFBQSxJQUNuRDtBQUFBLElBR2lCLFdBQVcsbUJBQXVDOztBQUNuRSxZQUFNLFdBQVcsaUJBQWlCO0FBQ2xDLFVBQUksS0FBSyxZQUFZO0FBQ2QsYUFBQSxlQUNGQSxNQUFBLEtBQUssV0FBVyxpQkFBaEIsZ0JBQUFBLElBQThCLGVBQVksVUFBSyxXQUFXLGlCQUFoQixtQkFBOEIsY0FBYTtBQUNuRixhQUFBLFFBQU8sVUFBSyxXQUFXLGlCQUFoQixtQkFBOEI7QUFDckMsYUFBQSxRQUFPLFVBQUssV0FBVyxpQkFBaEIsbUJBQThCO0FBRTFDLGFBQUssbUJBQWtCO0FBQ3ZCLFlBQUksS0FBSyxrQkFBa0I7QUFDekIsZUFBSyxpQkFBaUIsV0FBVyxLQUFLLFdBQVcsZUFBZTtBQUFBLFFBQUE7QUFBQSxNQUNsRSxPQUNLO0FBQ0wsYUFBSyxZQUFZO0FBQ2pCLGFBQUssT0FBTztBQUNaLGFBQUssT0FBTztBQUFBLE1BQUE7QUFBQSxJQUNkO0FBQUEsSUFHTSxxQkFBa0I7QUFDeEIsVUFBSSxDQUFDLEtBQUssb0JBQW9CLENBQUMsS0FBSyxZQUFZO0FBQzlDO0FBQUEsTUFBQTtBQUVHLFdBQUEsaUJBQWlCLE9BQU8sS0FBSyxXQUFXO0FBQ3hDLFdBQUEsaUJBQWlCLE1BQU0sS0FBSyxXQUFVO0FBQ3RDLFdBQUEsaUJBQWlCLGFBQWEsS0FBSyxXQUFXO0FBQUEsSUFBQTtBQUFBLElBRzdDLGdCQUFnQixVQUErQjs7QUFDckQsVUFBSSxLQUFLLG9CQUFvQixLQUFLLHFCQUFxQixVQUFVO0FBQy9EO0FBQUEsTUFBQTtBQUVGLFdBQUssbUJBQW1CO0FBQ3BCLFVBQUEsRUFBRSxrQkFBa0IsS0FBSyxjQUFjLENBQUEsT0FBUSxHQUFDQSxNQUFBLEtBQUsscUJBQUwsZ0JBQUFBLElBQXVCLGdCQUFlO0FBQ3hGO0FBQUEsTUFBQTtBQUVGLFdBQUssaUJBQWlCLFdBQVcsS0FBSyxXQUFZLGVBQWU7QUFDakUsV0FBSyxtQkFBa0I7QUFDdkIsV0FBSyxpQkFBaUI7O0lBR0wsUUFBUSxtQkFBdUM7QUFDaEUsWUFBTSxRQUFRLGlCQUFpQjtBQUUxQixXQUFBLGdCQUFnQixVQUFVLEtBQUs7QUFBQSxJQUFBO0FBQUEsSUFHOUIsYUFBVTs7QUFDaEIsZUFBT0EsTUFBQSxLQUFLLGVBQUwsZ0JBQUFBLElBQWlCLGtCQUFpQixLQUFLLFdBQVcsTUFBTTtBQUFBLElBQUE7QUFBQSxJQUc5QyxTQUFNOztBQUNoQixhQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBSVUsaUJBQWlCLEtBQUssVUFBVSxPQUFPLENBQUM7QUFBQSxvQkFDekMsQ0FBQyxhQUFhLENBQUMsS0FBSyxjQUFjLEtBQUssVUFBVTtBQUFBLG9CQUNqRCxLQUFLLFFBQVE7QUFBQSxVQUN2QixJQUFJLENBQUMsT0FBa0IsS0FBSyxrQkFBa0IsRUFBMkIsQ0FBQztBQUFBO0FBQUE7QUFBQSxvQkFHaEUsTUFBTSxLQUFLLGlCQUFpQixjQUFlLENBQUE7QUFBQSxtQkFDNUMsTUFBSztBQUNWLFlBQUEseUJBQXlCLHVCQUF1QixZQUFZO0FBQzlELGVBQUssaUJBQWlCOztNQUV6QixDQUFBO0FBQUEsbUJBQ1UsS0FBSyxlQUFlO0FBQUE7QUFBQSxVQUU3QixJQUFJLENBQUMsT0FBa0IsS0FBSyxrQkFBa0IsRUFBd0IsQ0FBQztBQUFBO0FBQUEsVUFFdkUsS0FBSyxrQkFDSDtBQUFBLHNCQUNVLEtBQUssSUFBSTtBQUFBLHFCQUNWLEtBQUssSUFBSTtBQUFBLHFCQUNULEtBQUssSUFBSTtBQUFBLHFCQUNULEtBQUssV0FBWSxDQUFBO0FBQUEsdUJBQ2hCQSxNQUFBLEtBQUssZUFBTCxnQkFBQUEsSUFBaUIsSUFBSTtBQUFBLDZCQUNmLFVBQUssZUFBTCxtQkFBaUIsVUFBVTtBQUFBLDhCQUN6QixDQUFDLE1BQXFCO0FBQy9CLGFBQUEsaUJBQWlCLFdBQVcsRUFBRTtBQUNuQyxZQUFJLEtBQUssWUFBWTtBQUNkLGVBQUEsV0FBVyxjQUFjLEVBQUU7QUFBQSxRQUFBO0FBQUEsTUFFbkMsQ0FBQTtBQUFBLGdCQUNDLElBQUksQ0FBQyxhQUNMLEtBQUssZ0JBQWdCLFFBQWlDLENBQUMsQ0FDeEQ7QUFBQSxnQ0FFSCxPQUFPO0FBQUE7QUFBQTtBQUFBLElBQUE7QUFBQSxLQXpJTCx3Q0FFSCw2Q0FFQSx3Q0FFQSx3Q0FFQTs7QUFwQ1IsaUNBQUEsQ0FBQSxTQUFTLEVBQUUsV0FBVyxjQUFlLENBQUEsQ0FBQztBQWV0QyxpQ0FBQSxDQUFBLFNBQVMsRUFBRSxXQUFXLGFBQWMsQ0FBQSxDQUFDO0FBYXJDLHVCQUFBLENBQUEsVUFBVTtBQUVWLDRCQUFBLENBQUEsT0FBTztBQUVQLHVCQUFBLENBQUEsT0FBTztBQUVQLHVCQUFBLENBQUEsT0FBTztBQUVQLGtDQUFBLENBQUEsT0FBTztBQW5DUixpQkFBQSxJQUFBLE1BQUEsNEJBQUEsRUFBQSxNQUFBLFVBQUEsTUFBQSxjQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGdCQUFBLEtBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVcsYUFPVjtBQUFBLFNBQUEsVUFBQSxhQUFBLE1BQUEsMEJBQUE7QUFRRCxpQkFBQSxJQUFBLE1BQUEsNEJBQUEsRUFBQSxNQUFBLFVBQUEsTUFBQSxjQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGdCQUFBLEtBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVcsYUFLVjtBQUFBLFNBQUEsVUFBQSxhQUFBLE1BQUEsMEJBQUE7QUFPMkIsaUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxNQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLE9BQTJCO0FBQUEsU0FBQSxVQUFBLGFBQUEsb0JBQUEsdUJBQUE7QUFFN0IsaUJBQUEsSUFBQSxNQUFBLHVCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsYUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxlQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxXQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLFlBQWtCO0FBQUEsU0FBQSxVQUFBLGFBQUEseUJBQUEsNEJBQUE7QUFFbEIsaUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxNQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLE9BQWdEO0FBQUEsU0FBQSxVQUFBLGFBQUEsb0JBQUEsdUJBQUE7QUFFaEQsaUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxNQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLE9BQWdEO0FBQUEsU0FBQSxVQUFBLGFBQUEsb0JBQUEsdUJBQUE7QUFFaEQsaUJBQUEsSUFBQSxNQUFBLDZCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsbUJBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEscUJBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLGlCQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLGtCQUF3QjtBQUFBLFNBQUEsVUFBQSxhQUFBLCtCQUFBLGtDQUFBO0FBL0NwRCxpQkFvTEMsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQWhMd0IsR0FBTSxTQUFtQixPQUo1QyxrQkFBMEIsWUFBQSx1QkFBQSxHQUM5Qjs7OyJ9