@sbb-esta/lyne-elements 3.12.0 → 3.12.1

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.
@@ -2,8 +2,8 @@ import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { isServer, html } from "lit";
3
3
  import { property, eventOptions } from "lit/decorators.js";
4
4
  import { sbbInputModalityDetector } from "../a11y.js";
5
- import { SbbLanguageController } from "../controllers.js";
6
- import { isWebkit } from "../dom.js";
5
+ import { SbbLanguageController, SbbMediaQueryPointerCoarse } from "../controllers.js";
6
+ import { isWebkit, isBlink } from "../dom.js";
7
7
  import { i18nInputRequired } from "../i18n.js";
8
8
  import { SbbDisabledMixin } from "./disabled-mixin.js";
9
9
  import { SbbElementInternalsMixin } from "./element-internals-mixin.js";
@@ -41,7 +41,7 @@ const SbbFormAssociatedInputMixin = (superClass) => {
41
41
  set value(value) {
42
42
  this._value = this._cleanText(value);
43
43
  if (this.hasUpdated) {
44
- this.innerHTML = this._value;
44
+ this._assignValue(this._value);
45
45
  }
46
46
  this.dispatchEvent(new Event("displayvaluechange", { bubbles: true, composed: true }));
47
47
  }
@@ -74,6 +74,9 @@ const SbbFormAssociatedInputMixin = (superClass) => {
74
74
  }, { capture: true });
75
75
  this.addEventListener?.("change", () => this._shouldEmitChange = false, { capture: true });
76
76
  this.addEventListener?.("keydown", (event) => {
77
+ if (this._requiresEmptyPatch()) {
78
+ this._assignValue("");
79
+ }
77
80
  if ((event.key === "Enter" || event.key === "\n") && event.isTrusted) {
78
81
  event.preventDefault();
79
82
  event.stopImmediatePropagation();
@@ -109,10 +112,15 @@ const SbbFormAssociatedInputMixin = (superClass) => {
109
112
  this._shouldTriggerSubmit = false;
110
113
  this.form?.requestSubmit();
111
114
  }
115
+ } else if (this._requiresEmptyPatch()) {
116
+ this._setCursorAt(0);
112
117
  }
113
118
  }, { capture: true });
114
119
  this.addEventListener?.("paste", (e) => {
115
120
  e.preventDefault();
121
+ if (this._requiresEmptyPatch()) {
122
+ this._assignValue("");
123
+ }
116
124
  const text = this._cleanText(e.clipboardData?.getData("text/plain") ?? "");
117
125
  const selectedRange = window.getSelection()?.getRangeAt(0);
118
126
  if (!selectedRange || !text) {
@@ -128,8 +136,22 @@ const SbbFormAssociatedInputMixin = (superClass) => {
128
136
  window.getSelection()?.selectAllChildren(this);
129
137
  }
130
138
  });
139
+ this.addEventListener?.("touchend", () => {
140
+ if (this._requiresEmptyPatch()) {
141
+ this._assignValue(" ");
142
+ this._setCursorAt(0);
143
+ }
144
+ });
145
+ this.addEventListener?.("click", () => {
146
+ if (this._requiresEmptyPatch() && sbbInputModalityDetector.mostRecentModality === "touch") {
147
+ this._setCursorAt(0);
148
+ }
149
+ });
131
150
  this.addEventListener?.("blur", () => {
132
151
  window.getSelection()?.removeAllRanges();
152
+ if (this.value === "") {
153
+ this._assignValue("");
154
+ }
133
155
  this._emitChangeIfNecessary();
134
156
  this.scrollLeft = 0;
135
157
  }, { capture: true });
@@ -141,7 +163,7 @@ const SbbFormAssociatedInputMixin = (superClass) => {
141
163
  super.connectedCallback();
142
164
  this.internals.ariaMultiLine = "false";
143
165
  this._updateContenteditable();
144
- this.innerHTML = this.value;
166
+ this._assignValue(this.value);
145
167
  }
146
168
  focus(options) {
147
169
  super.focus(options);
@@ -150,15 +172,11 @@ const SbbFormAssociatedInputMixin = (superClass) => {
150
172
  if (!selection) {
151
173
  return;
152
174
  }
153
- let range = selection.rangeCount > 0 ? selection.getRangeAt(0) : null;
175
+ const range = selection.rangeCount > 0 ? selection.getRangeAt(0) : null;
154
176
  if (range && range.startOffset !== 0) {
155
177
  return;
156
178
  }
157
- range = document.createRange();
158
- range.setStart(this.firstChild, this.textContent.length);
159
- range.collapse(true);
160
- selection.removeAllRanges();
161
- selection.addRange(range);
179
+ this._setCursorAt(this.textContent.length);
162
180
  }
163
181
  }
164
182
  attributeChangedCallback(name, old, value) {
@@ -200,7 +218,7 @@ const SbbFormAssociatedInputMixin = (superClass) => {
200
218
  firstUpdated(changedProperties) {
201
219
  super.firstUpdated(changedProperties);
202
220
  if (this.value && !this.innerHTML.length) {
203
- this.innerHTML = this.value;
221
+ this._assignValue(this.value);
204
222
  }
205
223
  }
206
224
  requestUpdate(name, oldValue, options) {
@@ -223,6 +241,23 @@ const SbbFormAssociatedInputMixin = (superClass) => {
223
241
  preparePastedText(text) {
224
242
  return text;
225
243
  }
244
+ _requiresEmptyPatch() {
245
+ return isServer ? false : isBlink && this.value === "" && window.matchMedia(SbbMediaQueryPointerCoarse).matches;
246
+ }
247
+ _assignValue(value) {
248
+ this.innerHTML = value;
249
+ }
250
+ _setCursorAt(position) {
251
+ const selection = window.getSelection();
252
+ if (!selection) {
253
+ return;
254
+ }
255
+ const range = document.createRange();
256
+ range.setStart(this.firstChild, position);
257
+ range.collapse(true);
258
+ selection.removeAllRanges();
259
+ selection.addRange(range);
260
+ }
226
261
  _cleanText(value) {
227
262
  return value === null ? "" : `${value}`.replace(/[\n\r]+/g, "");
228
263
  }
@@ -281,4 +316,4 @@ const SbbFormAssociatedInputMixin = (superClass) => {
281
316
  export {
282
317
  SbbFormAssociatedInputMixin
283
318
  };
284
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaXNXZWJraXQgfSBmcm9tICcuLi9kb20uanMnO1xuaW1wb3J0IHsgaTE4bklucHV0UmVxdWlyZWQgfSBmcm9tICcuLi9pMThuLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi5qcyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gfSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbn0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVhZG9ubHlNaXhpbiB9IGZyb20gJy4vcmVhZG9ubHktbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVxdWlyZWRNaXhpbiB9IGZyb20gJy4vcmVxdWlyZWQtbWl4aW4uanMnO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlIGV4dGVuZHMgU2JiUmVxdWlyZWRNaXhpbihcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZm9ybUZpZWxkQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmc7XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHJlYWRPbmx5KHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCByZWFkT25seSgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZyk7XG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICpcbiAgICogW01ETiBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdClcbiAgICovXG4gIHB1YmxpYyBzZWxlY3QoKTogdm9pZDtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBsYW5ndWFnZTogU2JiTGFuZ3VhZ2VDb250cm9sbGVyO1xufVxuXG5jb25zdCBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0ID0gKCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgZGl2LnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ1BMQUlOVEVYVC1PTkxZJyk7XG5cbiAgLy8gSWYgcGxhaW50ZXh0LW9ubHkgaXMgc3VwcG9ydGVkLCB0aGUgYXR0cmlidXRlIHZhbHVlIGlzXG4gIC8vIHJldHVybmVkIGFzIGxvd2VyLWNhc2UgZnJvbSB0aGUgcHJvcGVydHkgYWNjZXNzLlxuICByZXR1cm4gZGl2LmNvbnRlbnRFZGl0YWJsZSA9PT0gJ3BsYWludGV4dC1vbmx5Jztcbn07XG5jb25zdCBwbGFpbnRleHRPbmx5U3VwcG9ydGVkID0gY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCgpO1xuXG4vKipcbiAqIFRoZSBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gZW5hYmxlcyBuYXRpdmUgZm9ybSBzdXBwb3J0IGZvciB0ZXh0IGlucHV0IGNvbnRyb2xzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oXG4gICAgICBTYmJEaXNhYmxlZE1peGluKFxuICAgICAgICBTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKHN1cGVyQ2xhc3MpKSksXG4gICAgICApLFxuICAgIClcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLmlubmVySFRNTCA9IHRoaXMuX3ZhbHVlO1xuICAgICAgfVxuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZGlzcGxheXZhbHVlY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVBsYWNlaG9sZGVyID0gdmFsdWUgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHRoaXMudGV4dENvbnRlbnQgPz8gJycpO1xuICAgICAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndmFsdWUnLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW50ZXJhY3RlZCcpO1xuICAgICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZSksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljayB0aGF0IGJ5IHJlc2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uLlxuICAgICAgLy8gV2UgYWxzbyB1bnNldCBhbnkgc2VsZWN0aW9uIHRvIGFsaWduIHdpdGggdGhlIG5hdGl2ZSB0ZXh0IGlucHV0LlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgc3VwZXIuZm9jdXMob3B0aW9ucyk7XG4gICAgICAvLyBCeSBkZWZhdWx0LCB3aGVuIGNhbGxpbmcgZm9jdXMgb24gYW4gaW5wdXQgZWxlbWVudCwgdGhlIGN1cnNvciBpcyBwbGFjZWRcbiAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0IHRleHQuIEhvd2V2ZXIsIHdpdGggY29udGVudGVkaXRhYmxlLCB0aGUgY3Vyc29yXG4gICAgICAvLyBpcyBwbGFjZWQgYXQgdGhlIGJlZ2lubmluZywgc28gd2UgbW92ZSBpdCB0byB0aGUgZW5kLCBpZiB0aGF0IGlzIHRoZSBjYXNlLlxuICAgICAgaWYgKHRoaXMuX2NhblNlbGVjdCgpKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHRoaXMudGV4dENvbnRlbnQhLmxlbmd0aCk7XG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIG9sZDogc3RyaW5nIHwgbnVsbCxcbiAgICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICAgICk6IHZvaWQge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmF0aXZlIHRleHQgaW5wdXQgY2hhbmdlcyB0aGUgdmFsdWUgcHJvcGVydHkgd2hlbiB0aGUgdmFsdWUgYXR0cmlidXRlIGlzXG4gICAgICAgKiBjaGFuZ2VkIHVuZGVyIHRoZSBjb25kaXRpb24gdGhhdCBubyBpbnB1dCBldmVudCBoYXMgb2NjdXJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ2ludGVyYWN0ZWQnKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCAmJlxuICAgICAgICAobmFtZSA9PT0gJ2Rpc2FibGVkJyB8fCBuYW1lID09PSAnZm9ybURpc2FibGVkJyB8fCBuYW1lID09PSAncmVhZE9ubHknKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYW5UZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgLy8gVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHJlbW92ZXMgYWxsIG5ld2xpbmUgY2hhcmFjdGVycyBpZiBwYXNzZWQgdG8gdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyAnJyA6IGAke3ZhbHVlfWAucmVwbGFjZSgvW1xcblxccl0rL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnQoKTogdm9pZCB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgICBwcml2YXRlIF9jbGVhbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hpbGRFbGVtZW50Q291bnQpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQ29udGVudGVkaXRhYmxlKCk6IHZvaWQge1xuICAgICAgaWYgKCFpc1NlcnZlciAmJiB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IHRoaXMucmVhZE9ubHkgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgLy8gVE9ETygyMDI2KTogRmlyZWZveCBzdXBwb3J0cyBwbGFpbnRleHQtb25seSBzaW5jZSB2ZXJzaW9uIDEzNiAoTWFyY2ggMjAyNSkuXG4gICAgICAgIC8vIFVudGlsIHRoaXMgaXMgcGFydCBvZiBvdXIgYmFzZWxpbmUsIHdlIHNob3VsZCBmZWF0dXJlIGNoZWNrIHRvIGVuYWJsZSBpdC5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyAnZmFsc2UnXG4gICAgICAgICAgICA6IHBsYWludGV4dE9ubHlTdXBwb3J0ZWRcbiAgICAgICAgICAgICAgPyAncGxhaW50ZXh0LW9ubHknXG4gICAgICAgICAgICAgIDogJ3RydWUnO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdmFsdWUpO1xuICAgICAgICAvLyBJbiB0aGUgcmVhZG9ubHkgY2FzZSwgd2UgZGlzYWJsZSBjb250ZW50ZWRpdGFibGUsIGJ1dCBpdCBzdGlsbFxuICAgICAgICAvLyBuZWVkcyB0byBiZSBmb2N1c2FibGUuIFdlIGFjaGlldmUgdGhpcyBieSBzZXR0aW5nIHRhYmluZGV4IGluIHRoYXQgY2FzZS5cbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NhblNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhaXNTZXJ2ZXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogdW5rbm93biB7XG4gICAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2NsZWFuQ2hpbGRyZW59Pjwvc2xvdD5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJGb3JtQXNzb2NpYXRlZElucHV0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQXdEQSxNQUFNLDRCQUE0QixNQUFjO0FBQzlDLE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxNQUFNLFNBQVMsY0FBYyxLQUFLO0FBQ3hDLE1BQUksYUFBYSxtQkFBbUIsZ0JBQWdCO0FBSXBELFNBQU8sSUFBSSxvQkFBb0I7QUFDakM7QUFDQSxNQUFNLHlCQUF5QiwwQkFBQTtBQU14QixNQUFNLDhCQUE4QixDQUN6QyxlQUM0RDtNQUM3QyxpQ0FBNkIsTUFBQTs7QUFDbEMsUUFBQSxjQUFBLGlCQUNOLGlCQUNFLGlCQUFpQix1QkFBdUIseUJBQXlCLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDL0U7Ozs7O0FBSlUsV0FBQSxtQkFDTCxZQUlQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQTBCRCxJQUFvQixPQUFJO0FBQ3RCLGVBQU87QUFBQSxNQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFNQSxJQUFXLE1BQU0sT0FBYTtBQUM1QixhQUFLLFNBQVMsS0FBSyxXQUFXLEtBQUs7QUFDbkMsWUFBSSxLQUFLLFlBQVk7QUFDbkIsZUFBSyxZQUFZLEtBQUs7QUFBQSxRQUN4QjtBQUVBLGFBQUssY0FBYyxJQUFJLE1BQU0sc0JBQXNCLEVBQUUsU0FBUyxNQUFNLFVBQVUsS0FBQSxDQUFNLENBQUM7QUFBQSxNQUN2RjtBQUFBLE1BQ0EsSUFBVyxRQUFLO0FBQ2QsZUFBTyxLQUFLLFVBQVU7QUFBQSxNQUN4QjtBQUFBLE1BSUEsSUFBVyxZQUFZLE9BQWE7QUFDbEMsWUFBSSxPQUFPO0FBQ1QsZUFBSyxhQUFhLGVBQWUsS0FBSztBQUFBLFFBQ3hDLE9BQU87QUFDTCxlQUFLLGdCQUFnQixhQUFhO0FBQUEsUUFDcEM7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
319
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLCBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tLmpzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiRWxlbWVudEludGVybmFsc01peGluIH0gZnJvbSAnLi9lbGVtZW50LWludGVybmFscy1taXhpbi5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyk7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZztcblxuICAvKipcbiAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAqXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3QpXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2U6IFNiYkxhbmd1YWdlQ29udHJvbGxlcjtcbn1cblxuY29uc3QgY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdQTEFJTlRFWFQtT05MWScpO1xuXG4gIC8vIElmIHBsYWludGV4dC1vbmx5IGlzIHN1cHBvcnRlZCwgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpc1xuICAvLyByZXR1cm5lZCBhcyBsb3dlci1jYXNlIGZyb20gdGhlIHByb3BlcnR5IGFjY2Vzcy5cbiAgcmV0dXJuIGRpdi5jb250ZW50RWRpdGFibGUgPT09ICdwbGFpbnRleHQtb25seSc7XG59O1xuY29uc3QgcGxhaW50ZXh0T25seVN1cHBvcnRlZCA9IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQoKTtcblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgdGV4dCBpbnB1dCBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJSZWFkb25seU1peGluKFxuICAgICAgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgICAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihzdXBlckNsYXNzKSkpLFxuICAgICAgKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAndGV4dGJveCc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEFuIGVsZW1lbnQgd2l0aCBjb250ZW50ZWRpdGFibGUgd2lsbCBub3QgZW1pdCBhIGNoYW5nZSBldmVudC4gVG8gYWNoaWV2ZSBwYXJpdHlcbiAgICAgKiB3aXRoIGEgbmF0aXZlIHRleHQgaW5wdXQsIHdlIG5lZWQgdG8gdHJhY2sgd2hldGhlciBhIGNoYW5nZSBldmVudCBzaG91bGQgYmVcbiAgICAgKiBlbWl0dGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBIG5hdGl2ZSB0ZXh0IGlucHV0IGF0dGVtcHRzIHRvIHN1Ym1pdCB0aGUgZm9ybSB3aGVuIHByZXNzaW5nIEVudGVyLlxuICAgICAqIFRoaXMgY2FuIGJlIHByZXZlbnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZhdWx0IG9uIHRoZSBrZXlkb3duIGV2ZW50LlxuICAgICAqIFdlIHRyYWNrIHdoZXRoZXIgdG8gcmVxdWVzdCBzdWJtaXQsIHdoaWNoIHNob3VsZCBvY2N1ciBiZWZvcmUgdGhlIGtleXVwXG4gICAgICogZXZlbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICd0ZXh0J1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0LiBSZWZsZWN0cyB0aGUgY3VycmVudCB0ZXh0IHZhbHVlIG9mIHRoaXMgaW5wdXQuXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZGlzcGxheXZhbHVlY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVBsYWNlaG9sZGVyID0gdmFsdWUgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHRoaXMudGV4dENvbnRlbnQgPz8gJycpO1xuICAgICAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndmFsdWUnLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW50ZXJhY3RlZCcpO1xuICAgICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZSksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBXZSBwcmV2ZW50IHJlY3Vyc2l2ZSBldmVudHMgYnkgY2hlY2tpbmcgdGhlIG9yaWdpbmFsIGV2ZW50IGZvciBpc1RydXN0ZWRcbiAgICAgICAgICAvLyB3aGljaCBpcyBmYWxzZSBmb3IgbWFudWFsbHkgZGlzcGF0Y2hlZCBldmVudHMgKHdoaWNoIHdlIGRpc3BhdGNoIGJlbG93KS5cbiAgICAgICAgICBpZiAoKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSAmJiBldmVudC5pc1RydXN0ZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBpc1dlYmtpdCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZSAmJlxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09PSAnRGVsZXRlJykgJiZcbiAgICAgICAgICAgIGV2ZW50LmlzVHJ1c3RlZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gSW4gV2Via2l0IHByZXNzaW5nIEJhY2tzcGFjZSBvciBEZWxldGUgY29tcGxldGVseSByZW1vdmVzIGFsbCB0aGUgY29udGVudFxuICAgICAgICAgICAgLy8gaWYgY29udGVudGVkaXRhYmxlIGlzIHNldCBvbiBhIHdlYiBjb21wb25lbnQgaG9zdC5cbiAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gcmVwbGljYXRlIHRoZSBub3JtYWwgZGVsZXRlIGJlaGF2aW9yLlxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgIT09IHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KSB7XG4gICAgICAgICAgICAgIC8vIElmIGEgdGV4dCByYW5nZSBpcyBzZWxlY3RlZCwgdGhlbiBkZWxldGUgdGhpcyByYW5nZVxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnICYmIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgQmFja3NwYWNlLCB3ZSBzZWxlY3QgdGhlIHByZXZpb3VzIGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2Uuc3RhcnRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgLSAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJyAmJiBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCA8IHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgRGVsZXRlLCB3ZSBzZWxlY3QgdGhlIG5leHQgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0RW5kKHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCArIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXl1cCcsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCkge1xuICAgICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybT8ucmVxdWVzdFN1Ym1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgLy8gY29udGVudGVkaXRhYmxlIGFsbG93cyBwYXN0aW5nIHJpY2ggY29udGVudCBpbnRvIGl0cyBob3N0LlxuICAgICAgLy8gV2UgcHJldmVudCB0aGlzIGJ5IGxpc3RlbmluZyB0byB0aGUgcGFzdGUgZXZlbnQgYW5kXG4gICAgICAvLyBleHRyYWN0aW5nIHRoZSBwbGFpbiB0ZXh0IGZyb20gdGhlIHBhc3RlZCBjb250ZW50XG4gICAgICAvLyBhbmQgaW5zZXJ0aW5nIGl0IGludG8gdGhlIHNlbGVjdGVkIHJhbmdlIChjdXJzb3IgcG9zaXRpb25cbiAgICAgIC8vIG9yIHNlbGVjdGlvbikuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncGFzdGUnLCAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLl9jbGVhblRleHQoZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgPz8gJycpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UgfHwgIXRleHQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuaW5zZXJ0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLnByZXBhcmVQYXN0ZWRUZXh0KHRleHQpKSk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICB9KTtcbiAgICAgIC8vIFdoZW4gZm9jdXNpbmcgYSB0ZXh0IGlucHV0IHZpYSBrZXlib2FyZCwgdGhlIHRleHQgY29udGVudCBzaG91bGQgYmUgc2VsZWN0ZWQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgIGlmIChzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgLy8gVE9ETzogVGhpcyBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gRmlyZWZveCB3aXRoIHJlYWRvbmx5LlxuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uc2VsZWN0QWxsQ2hpbGRyZW4odGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3RvdWNoZW5kJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJm5ic3A7Jyk7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkgJiYgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ3RvdWNoJykge1xuICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gT24gYmx1ciB0aGUgbmF0aXZlIHRleHQgaW5wdXQgc2Nyb2xscyB0aGUgdGV4dCB0byB0aGUgc3RhcnQgb2YgdGhlIHRleHQuXG4gICAgICAvLyBXZSBtaW1pY2sgdGhhdCBieSByZXNldHRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi5cbiAgICAgIC8vIFdlIGFsc28gdW5zZXQgYW55IHNlbGVjdGlvbiB0byBhbGlnbiB3aXRoIHRoZSBuYXRpdmUgdGV4dCBpbnB1dC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnYmx1cicsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTXVsdGlMaW5lID0gJ2ZhbHNlJztcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIHJlcGxhY2UgYW55IGNvbnRlbnQgYnkganVzdCB0aGUgdGV4dCBjb250ZW50LlxuICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZvY3VzKG9wdGlvbnMpO1xuICAgICAgLy8gQnkgZGVmYXVsdCwgd2hlbiBjYWxsaW5nIGZvY3VzIG9uIGFuIGlucHV0IGVsZW1lbnQsIHRoZSBjdXJzb3IgaXMgcGxhY2VkXG4gICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCB0ZXh0LiBIb3dldmVyLCB3aXRoIGNvbnRlbnRlZGl0YWJsZSwgdGhlIGN1cnNvclxuICAgICAgLy8gaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcsIHNvIHdlIG1vdmUgaXQgdG8gdGhlIGVuZCwgaWYgdGhhdCBpcyB0aGUgY2FzZS5cbiAgICAgIGlmICh0aGlzLl9jYW5TZWxlY3QoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCh0aGlzLnRleHRDb250ZW50IS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IGNoYW5nZXMgdGhlIHZhbHVlIHByb3BlcnR5IHdoZW4gdGhlIHZhbHVlIGF0dHJpYnV0ZSBpc1xuICAgICAgICogY2hhbmdlZCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgbm8gaW5wdXQgZXZlbnQgaGFzIG9jY3VyZWQgc2luY2UgY3JlYXRpb25cbiAgICAgICAqIG9yIHRoZSBsYXN0IGZvcm0gcmVzZXQuXG4gICAgICAgKi9cbiAgICAgIGlmIChuYW1lICE9PSAndmFsdWUnIHx8ICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKCdpbnRlcmFjdGVkJykpIHtcbiAgICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCB3aGVuZXZlciB0aGUgZm9ybSBpcyBiZWluZyByZXNldC5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2ludGVyYWN0ZWQnKTtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA/PyAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMgXCJyZXN0b3JlXCIsIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICAgKiAgSW4gdGhlIGNhc2Ugb2YgXCJyZXN0b3JlXCIsIHN0YXRlIGlzIGEgc3RyaW5nLCBGaWxlLCBvciBGb3JtRGF0YSBvYmplY3RcbiAgICAgKiAgcHJldmlvdXNseSBzZXQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBzZXRGb3JtVmFsdWUuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAoc3RhdGUgJiYgdHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnZhbHVlID0gc3RhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgLy8gSWYgdGhlIHZhbHVlIHdhcyBhc3NpZ25lZCBiZWZvcmUgZmlyc3RVcGRhdGUsIHdlIGhhdmUgdG9cbiAgICAgIC8vIHdyaXRlIGl0IHRoZSBkb2N1bWVudCB0byBiZSB2aXN1YWxseSBzZWVuXG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiAhdGhpcy5pbm5lckhUTUwubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCAmJlxuICAgICAgICAobmFtZSA9PT0gJ2Rpc2FibGVkJyB8fCBuYW1lID09PSAnZm9ybURpc2FibGVkJyB8fCBuYW1lID09PSAncmVhZE9ubHknKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWlyZXNFbXB0eVBhdGNoKCk6IGJvb2xlYW4ge1xuICAgICAgLy8gSW4gQmxpbmssIGEgY29udGVudGVkaXRhYmxlIGVsZW1lbnQgd2l0aCBlbXB0eSBjb250ZW50IHdpbGwgY3Jhc2hcbiAgICAgIC8vIHVwb24gcmVjZWl2aW5nIGZvY3VzLCB3aGVuIGluIE1vYmlsZSBtb2RlLlxuICAgICAgLy8gVG8gcHJldmVudCB0aGlzLCB3ZSBwYXRjaCB0aGUgZW1wdHkgc3RhdGUgYnkgaW5zZXJ0aW5nIGEgbm9uLWJyZWFraW5nIHNwYWNlLlxuICAgICAgcmV0dXJuIGlzU2VydmVyXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiBpc0JsaW5rICYmIHRoaXMudmFsdWUgPT09ICcnICYmIHdpbmRvdy5tYXRjaE1lZGlhKFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlKS5tYXRjaGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Fzc2lnblZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW5uZXJIVE1MID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Q3Vyc29yQXQocG9zaXRpb246IG51bWJlcik6IHZvaWQge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICByYW5nZS5zZXRTdGFydCh0aGlzLmZpcnN0Q2hpbGQhLCBwb3NpdGlvbik7XG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTtcbiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYW5UZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgLy8gVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHJlbW92ZXMgYWxsIG5ld2xpbmUgY2hhcmFjdGVycyBpZiBwYXNzZWQgdG8gdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyAnJyA6IGAke3ZhbHVlfWAucmVwbGFjZSgvW1xcblxccl0rL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnQoKTogdm9pZCB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgICBwcml2YXRlIF9jbGVhbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hpbGRFbGVtZW50Q291bnQpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQ29udGVudGVkaXRhYmxlKCk6IHZvaWQge1xuICAgICAgaWYgKCFpc1NlcnZlciAmJiB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IHRoaXMucmVhZE9ubHkgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgLy8gVE9ETygyMDI2KTogRmlyZWZveCBzdXBwb3J0cyBwbGFpbnRleHQtb25seSBzaW5jZSB2ZXJzaW9uIDEzNiAoTWFyY2ggMjAyNSkuXG4gICAgICAgIC8vIFVudGlsIHRoaXMgaXMgcGFydCBvZiBvdXIgYmFzZWxpbmUsIHdlIHNob3VsZCBmZWF0dXJlIGNoZWNrIHRvIGVuYWJsZSBpdC5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyAnZmFsc2UnXG4gICAgICAgICAgICA6IHBsYWludGV4dE9ubHlTdXBwb3J0ZWRcbiAgICAgICAgICAgICAgPyAncGxhaW50ZXh0LW9ubHknXG4gICAgICAgICAgICAgIDogJ3RydWUnO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdmFsdWUpO1xuICAgICAgICAvLyBJbiB0aGUgcmVhZG9ubHkgY2FzZSwgd2UgZGlzYWJsZSBjb250ZW50ZWRpdGFibGUsIGJ1dCBpdCBzdGlsbFxuICAgICAgICAvLyBuZWVkcyB0byBiZSBmb2N1c2FibGUuIFdlIGFjaGlldmUgdGhpcyBieSBzZXR0aW5nIHRhYmluZGV4IGluIHRoYXQgY2FzZS5cbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NhblNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhaXNTZXJ2ZXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogdW5rbm93biB7XG4gICAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2NsZWFuQ2hpbGRyZW59Pjwvc2xvdD5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJGb3JtQXNzb2NpYXRlZElucHV0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQXdEQSxNQUFNLDRCQUE0QixNQUFjO0FBQzlDLE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxNQUFNLFNBQVMsY0FBYyxLQUFLO0FBQ3hDLE1BQUksYUFBYSxtQkFBbUIsZ0JBQWdCO0FBSXBELFNBQU8sSUFBSSxvQkFBb0I7QUFDakM7QUFDQSxNQUFNLHlC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
@@ -1 +1 @@
1
- {"version":3,"file":"optgroup-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/optgroup/optgroup-base-element.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAQxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIzD,OAAO,kBAAkB,CAAC;;AAS1B,8BAAsB,sBAAuB,SAAQ,2BAEpD;IACC,gBAAgC,IAAI,gBAAqC;IACzE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,0BAA0B;IAC1B,SAEgB,KAAK,EAAE,MAAM,CAAM;IAE1B,SAAS,CAAC,QAAQ,CAAC,QAAQ,UAAS;IAEpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAEnD,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,oBAAoB,EAAE,CAAC;;IAwBzC,iBAAiB,IAAI,IAAI;cAMtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAe5E,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,IAAI;IACjD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,0BAA0B,GAAG,IAAI;IAE7E,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,yBAAyB;IAkBjC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAMxC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;cAIN,MAAM,IAAI,cAAc;CAgB5C"}
1
+ {"version":3,"file":"optgroup-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/optgroup/optgroup-base-element.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAQxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIzD,OAAO,kBAAkB,CAAC;;AAS1B,8BAAsB,sBAAuB,SAAQ,2BAEpD;IACC,gBAAgC,IAAI,gBAAqC;IACzE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,0BAA0B;IAC1B,SAEgB,KAAK,EAAE,MAAM,CAAM;IAE1B,SAAS,CAAC,QAAQ,CAAC,QAAQ,UAAS;IAEpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAEnD,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,oBAAoB,EAAE,CAAC;;IAwBzC,iBAAiB,IAAI,IAAI;cAMtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAe5E,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,IAAI;IACjD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,0BAA0B,GAAG,IAAI;IAE7E,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,yBAAyB;IAkBjC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAMxC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;cAIN,MAAM,IAAI,cAAc;CAgB5C"}
@@ -149,6 +149,7 @@ let SbbOptgroupBaseElement = (() => {
149
149
  this.proxyDisabledToOptions();
150
150
  this._proxyGroupLabelToOptions();
151
151
  this._highlightOptions();
152
+ this.dispatchEvent(new Event("ɵoptgroupslotchange"));
152
153
  }
153
154
  _proxyGroupLabelToOptions() {
154
155
  if (!this._inertAriaGroups) {
@@ -220,4 +221,4 @@ let SbbOptgroupBaseElement = (() => {
220
221
  export {
221
222
  SbbOptgroupBaseElement
222
223
  };
223
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0Z3JvdXAtYmFzZS1lbGVtZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGdyb3VwL29wdGdyb3VwLWJhc2UtZWxlbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNdXRhdGlvbkNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL211dGF0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgTGl0RWxlbWVudCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2F1dG9jb21wbGV0ZS5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNTYWZhcmkgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQge1xuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sXG4gIFNiYkh5ZHJhdGlvbk1peGluLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vb3B0Z3JvdXAtYmFzZS1lbGVtZW50LnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vZGl2aWRlci5qcyc7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgZ3JvdXBzIGxhYmVscyBhcmUgbm90IHJlYWQgYnkgVm9pY2VPdmVyLlxuICogVG8gc29sdmUgdGhlIHByb2JsZW0sIHdlIHJlbW92ZSB0aGUgcm9sZT1cImdyb3VwXCIgYW5kIGFkZCBhIGhpZGRlbiBzcGFuIGNvbnRhaW5pbmcgdGhlIGdyb3VwIG5hbWVcbiAqIFRPRE86IFdlIHNob3VsZCBwZXJpb2RpY2FsbHkgY2hlY2sgaWYgaXQgaGFzIGJlZW4gc29sdmVkIGFuZCwgaWYgc28sIHJlbW92ZSB0aGUgcHJvcGVydHkuXG4gKi9cbmNvbnN0IGluZXJ0QXJpYUdyb3VwcyA9IGlzU2FmYXJpO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3B0Z3JvdXBCYXNlRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gIWluZXJ0QXJpYUdyb3VwcyA/ICdncm91cCcgOiBudWxsO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogT3B0aW9uIGdyb3VwIGxhYmVsLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgbmVnYXRpdmUgPSBmYWxzZTtcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9pbmVydEFyaWFHcm91cHMgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IG9wdGlvbnMoKTogU2JiT3B0aW9uQmFzZUVsZW1lbnRbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBNdXRhdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydkYXRhLW5lZ2F0aXZlJ10sXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9vbk5lZ2F0aXZlQ2hhbmdlKCksXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgaWYgKGluZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZUZyb21QYXJlbnQoKTtcbiAgICB0aGlzLl9wcm94eUdyb3VwTGFiZWxUb09wdGlvbnMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgaWYgKCF0aGlzLl9pbmVydEFyaWFHcm91cHMpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJveHlEaXNhYmxlZFRvT3B0aW9ucygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsYWJlbCcpKSB7XG4gICAgICB0aGlzLl9wcm94eUdyb3VwTGFiZWxUb09wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0QXV0b2NvbXBsZXRlUGFyZW50KCk6IFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IHwgbnVsbDtcblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMucHJveHlEaXNhYmxlZFRvT3B0aW9ucygpO1xuICAgIHRoaXMuX3Byb3h5R3JvdXBMYWJlbFRvT3B0aW9ucygpO1xuICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Byb3h5R3JvdXBMYWJlbFRvT3B0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2luZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUxhYmVsID0gdGhpcy5sYWJlbDtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFMYWJlbCA9IG51bGw7XG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgnZGF0YS1ncm91cC1sYWJlbCcsIHRoaXMubGFiZWwpO1xuICAgICAgICBvcHRpb24ucmVxdWVzdFVwZGF0ZT8uKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMub3B0aW9ucykge1xuICAgICAgICBvcHRpb24ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWdyb3VwLWxhYmVsJyk7XG4gICAgICAgIG9wdGlvbi5yZXF1ZXN0VXBkYXRlPy4oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJveHlEaXNhYmxlZFRvT3B0aW9ucygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbi50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oaWdobGlnaHRPcHRpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IHRoaXMuZ2V0QXV0b2NvbXBsZXRlUGFyZW50KCk7XG4gICAgaWYgKCFhdXRvY29tcGxldGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBhdXRvY29tcGxldGUudHJpZ2dlckVsZW1lbnQ/LnZhbHVlO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdCkgPT4gb3B0LmhpZ2hsaWdodCh2YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25OZWdhdGl2ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLm5lZ2F0aXZlID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRncm91cF9fZGl2aWRlclwiPlxuICAgICAgICA8c2JiLWRpdmlkZXIgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX0+PC9zYmItZGl2aWRlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgJHt0aGlzLmxhYmVsXG4gICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3B0Z3JvdXBfX2xhYmVsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3B0Z3JvdXBfX2ljb24tc3BhY2VcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPHNwYW4+JHt0aGlzLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgYDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkEsTUFBTSxrQkFBa0I7SUFFRiwwQkFBc0IsTUFBQTs7b0JBQVMsaUJBQ25ELHlCQUF5QixrQkFBa0IsVUFBVSxDQUFDLENBQUM7Ozs7Ozs7Ozs7QUFEbkMsU0FBQSxtQkFBK0IsWUFFcEQ7QUFBQSxJQWVDLGNBQUE7QUFDRSxZQUFBO0FBVEYsa0RBQUEsa0JBQUEsTUFBQSxxQkFBZ0MsRUFBRTtBQUV6QixzREFBQSxrQkFBQSxNQUFBLHdCQUFBLEdBQUEsa0JBQUEsTUFBQSx3QkFBOEIsS0FBSztBQUVuQyw4REFBQSxrQkFBQSxNQUFBLDJCQUFBLEdBQUEsa0JBQUEsTUFBQSxnQ0FBb0MsS0FBSzs7QUFPaEQsV0FBSyxjQUNILElBQUksbUJBQW1CLE1BQU07QUFBQSxRQUMzQixRQUFRO0FBQUEsVUFDTixZQUFZO0FBQUEsVUFDWixpQkFBaUIsQ0FBQyxlQUFlO0FBQUEsUUFBQTtBQUFBLFFBRW5DLFVBQVUsTUFBTSxLQUFLLGtCQUFBO0FBQUEsTUFBaUIsQ0FDdkMsQ0FBQztBQUdKLFVBQUksaUJBQWlCO0FBQ25CLFlBQUksS0FBSyxtQkFBbUI7QUFDMUIsZUFBSyxrQkFBa0IsS0FBSyxNQUFPLEtBQUssbUJBQW1CLGVBQWdCO0FBQUEsUUFD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
224
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0Z3JvdXAtYmFzZS1lbGVtZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGdyb3VwL29wdGdyb3VwLWJhc2UtZWxlbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNdXRhdGlvbkNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL211dGF0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgTGl0RWxlbWVudCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2F1dG9jb21wbGV0ZS5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNTYWZhcmkgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQge1xuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sXG4gIFNiYkh5ZHJhdGlvbk1peGluLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vb3B0Z3JvdXAtYmFzZS1lbGVtZW50LnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vZGl2aWRlci5qcyc7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgZ3JvdXBzIGxhYmVscyBhcmUgbm90IHJlYWQgYnkgVm9pY2VPdmVyLlxuICogVG8gc29sdmUgdGhlIHByb2JsZW0sIHdlIHJlbW92ZSB0aGUgcm9sZT1cImdyb3VwXCIgYW5kIGFkZCBhIGhpZGRlbiBzcGFuIGNvbnRhaW5pbmcgdGhlIGdyb3VwIG5hbWVcbiAqIFRPRE86IFdlIHNob3VsZCBwZXJpb2RpY2FsbHkgY2hlY2sgaWYgaXQgaGFzIGJlZW4gc29sdmVkIGFuZCwgaWYgc28sIHJlbW92ZSB0aGUgcHJvcGVydHkuXG4gKi9cbmNvbnN0IGluZXJ0QXJpYUdyb3VwcyA9IGlzU2FmYXJpO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3B0Z3JvdXBCYXNlRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gIWluZXJ0QXJpYUdyb3VwcyA/ICdncm91cCcgOiBudWxsO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogT3B0aW9uIGdyb3VwIGxhYmVsLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgbmVnYXRpdmUgPSBmYWxzZTtcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9pbmVydEFyaWFHcm91cHMgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IG9wdGlvbnMoKTogU2JiT3B0aW9uQmFzZUVsZW1lbnRbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBNdXRhdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydkYXRhLW5lZ2F0aXZlJ10sXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9vbk5lZ2F0aXZlQ2hhbmdlKCksXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgaWYgKGluZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZUZyb21QYXJlbnQoKTtcbiAgICB0aGlzLl9wcm94eUdyb3VwTGFiZWxUb09wdGlvbnMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgaWYgKCF0aGlzLl9pbmVydEFyaWFHcm91cHMpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJveHlEaXNhYmxlZFRvT3B0aW9ucygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsYWJlbCcpKSB7XG4gICAgICB0aGlzLl9wcm94eUdyb3VwTGFiZWxUb09wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0QXV0b2NvbXBsZXRlUGFyZW50KCk6IFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IHwgbnVsbDtcblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMucHJveHlEaXNhYmxlZFRvT3B0aW9ucygpO1xuICAgIHRoaXMuX3Byb3h5R3JvdXBMYWJlbFRvT3B0aW9ucygpO1xuICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbnMoKTtcbiAgICAvLyBVc2VkIHRvIG5vdGlmeSBhc3NvY2lhdGVkIGNvbXBvbmVudHMgbGlrZSB0aGUgc2JiLXNlbGVjdCB0byB1cGRhdGUgc3RhdGVcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVvcHRncm91cHNsb3RjaGFuZ2UnKSk7XG4gIH1cblxuICBwcml2YXRlIF9wcm94eUdyb3VwTGFiZWxUb09wdGlvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pbmVydEFyaWFHcm91cHMpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFMYWJlbCA9IHRoaXMubGFiZWw7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTGFiZWwgPSBudWxsO1xuICAgICAgZm9yIChjb25zdCBvcHRpb24gb2YgdGhpcy5vcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtZ3JvdXAtbGFiZWwnLCB0aGlzLmxhYmVsKTtcbiAgICAgICAgb3B0aW9uLnJlcXVlc3RVcGRhdGU/LigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9uLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1ncm91cC1sYWJlbCcpO1xuICAgICAgICBvcHRpb24ucmVxdWVzdFVwZGF0ZT8uKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByb3h5RGlzYWJsZWRUb09wdGlvbnMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgdGhpcy5vcHRpb25zKSB7XG4gICAgICBvcHRpb24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJywgdGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0T3B0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBhdXRvY29tcGxldGUgPSB0aGlzLmdldEF1dG9jb21wbGV0ZVBhcmVudCgpO1xuICAgIGlmICghYXV0b2NvbXBsZXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gYXV0b2NvbXBsZXRlLnRyaWdnZXJFbGVtZW50Py52YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucy5mb3JFYWNoKChvcHQpID0+IG9wdC5oaWdobGlnaHQodmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uTmVnYXRpdmVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5uZWdhdGl2ZSA9IHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLW5lZ2F0aXZlJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3B0Z3JvdXBfX2RpdmlkZXJcIj5cbiAgICAgICAgPHNiYi1kaXZpZGVyID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9Pjwvc2JiLWRpdmlkZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgICR7dGhpcy5sYWJlbFxuICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGdyb3VwX19sYWJlbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGdyb3VwX19pY29uLXNwYWNlXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuPiR7dGhpcy5sYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgXG4gICAgICAgIDogbm90aGluZ31cbiAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdGNoYW5nZX0+PC9zbG90PlxuICAgIGA7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOEJBLE1BQU0sa0JBQWtCO0lBRUYsMEJBQXNCLE1BQUE7O29CQUFTLGlCQUNuRCx5QkFBeUIsa0JBQWtCLFVBQVUsQ0FBQyxDQUFDOzs7Ozs7Ozs7O0FBRG5DLFNBQUEsbUJBQStCLFlBRXBEO0FBQUEsSUFlQyxjQUFBO0FBQ0UsWUFBQTtBQVRGLGtEQUFBLGtCQUFBLE1BQUEscUJBQWdDLEVBQUU7QUFFekIsc0RBQUEsa0JBQUEsTUFBQSx3QkFBQSxHQUFBLGtCQUFBLE1BQUEsd0JBQThCLEtBQUs7QUFFbkMsOERBQUEsa0JBQUEsTUFBQSwyQkFBQSxHQUFBLGtCQUFBLE1BQUEsZ0NBQW9DLEtBQUs7O0FBT2hELFdBQUssY0FDSCxJQUFJLG1CQUFtQixNQUFNO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFVBQ04sWUFBWTtBQUFBLFVBQ1osaUJBQWlCLENBQUMs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
@@ -98,7 +98,7 @@ let SbbOptionBaseElement = (() => {
98
98
  }
99
99
  }
100
100
  get value() {
101
- return this._value ?? this.getAttribute("value") ?? "";
101
+ return this._value ?? this.getAttribute("value");
102
102
  }
103
103
  /** Whether the option is selected. */
104
104
  set selected(value) {
@@ -326,4 +326,4 @@ let SbbOptionBaseElement = (() => {
326
326
  export {
327
327
  SbbOptionBaseElement
328
328
  };
329
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWJhc2UtZWxlbWVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL29wdGlvbi9vcHRpb24vb3B0aW9uLWJhc2UtZWxlbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNdXRhdGlvbkNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL211dGF0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgbm90aGluZywgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0FuZHJvaWQsIGlzU2FmYXJpLCBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7XG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiSHlkcmF0aW9uTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBncm91cHMgbGFiZWxzIGFyZSBub3QgcmVhZCBieSBWb2ljZU92ZXIuXG4gKiBUbyBzb2x2ZSB0aGUgcHJvYmxlbSwgd2UgcmVtb3ZlIHRoZSByb2xlPVwiZ3JvdXBcIiBhbmQgYWRkIGFuIGhpZGRlbiBzcGFuIGNvbnRhaW5pbmcgdGhlIGdyb3VwIG5hbWVcbiAqIFRPRE86IFdlIHNob3VsZCBwZXJpb2RpY2FsbHkgY2hlY2sgaWYgaXQgaGFzIGJlZW4gc29sdmVkIGFuZCwgaWYgc28sIHJlbW92ZSB0aGUgcHJvcGVydHkuXG4gKi9cbmNvbnN0IGluZXJ0QXJpYUdyb3VwcyA9IGlzU2FmYXJpO1xuXG4vKiogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGF0dHJpYnV0ZSB0byBsb29rIGF0IGlmIGNvbXBvbmVudCBpcyBuZXN0ZWQgaW4gYW4gb3B0aW9uIGdyb3VwICovXG5jb25zdCBvcHRpb25PYnNlcnZlckNvbmZpZzogTXV0YXRpb25PYnNlcnZlckluaXQgPSB7XG4gIGF0dHJpYnV0ZUZpbHRlcjogWydkYXRhLWdyb3VwLWRpc2FibGVkJywgJ2RhdGEtbmVnYXRpdmUnXSxcbiAgYXR0cmlidXRlczogdHJ1ZSxcbiAgY2hpbGRMaXN0OiB0cnVlLFxuICBzdWJ0cmVlOiB0cnVlLFxuICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxufTtcblxuZXhwb3J0XG5Ac2xvdFN0YXRlKClcbmFic3RyYWN0IGNsYXNzIFNiYk9wdGlvbkJhc2VFbGVtZW50PFQgPSBzdHJpbmc+IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiSWNvbk5hbWVNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBvcHRpb25zZWxlY3RlZDogJ29wdGlvbnNlbGVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3B0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWUgb2YgdGhlIG9wdGlvbi5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgKiBEdWUgdG8gdGhpcywgaXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBnZXR0ZXIvc2V0dGVyIGFuZCB0aGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKCkgaGFuZGxlcyB0aGUgZGlmZiBjaGVjay5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgYCR7dmFsdWV9YCk7XG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogVCB7XG4gICAgcmV0dXJuICh0aGlzLl92YWx1ZSA/PyB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA/PyAnJykgYXMgVDtcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogVCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQuICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdzZWxlY3RlZCcsIHZhbHVlKTtcbiAgICB0aGlzLl91cGRhdGVBcmlhU2VsZWN0ZWQoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRvIGFwcGx5IHRoZSBuZWdhdGl2ZSBzdHlsaW5nICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBuZWdhdGl2ZSA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgbXVzdCBiZSBzZXQgZGlzYWJsZWQgZHVlIGRpc2FibGVkIGF0dHJpYnV0ZSBvbiBzYmItb3B0Z3JvdXAuICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBkaXNhYmxlZEZyb21Hcm91cCA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBsYWJlbCE6IHN0cmluZztcblxuICAvKiogRGlzYWJsZSB0aGUgaGlnaGxpZ2h0IG9mIHRoZSBsYWJlbC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGRpc2FibGVMYWJlbEhpZ2hsaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgcG9ydGlvbiBvZiB0aGUgaGlnaGxpZ2h0ZWQgbGFiZWwuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2hpZ2hsaWdodFN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaW5lcnRBcmlhR3JvdXBzID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGU6IE1vdXNlRXZlbnQpID0+IHRoaXMuc2VsZWN0QnlDbGljayhlKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBNdXRhdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBjb25maWc6IG9wdGlvbk9ic2VydmVyQ29uZmlnLFxuICAgICAgICBjYWxsYmFjazogKG11dGF0aW9uc0xpc3QpID0+IHRoaXMub25FeHRlcm5hbE11dGF0aW9uKG11dGF0aW9uc0xpc3QpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGlmIChpbmVydEFyaWFHcm91cHMpIHtcbiAgICAgIGlmICh0aGlzLmh5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiAodGhpcy5faW5lcnRBcmlhR3JvdXBzID0gaW5lcnRBcmlhR3JvdXBzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCBvbGQgIT09IHZhbHVlKSB7XG4gICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhpZ2hsaWdodCB0aGUgbGFiZWwgb2YgdGhlIG9wdGlvblxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIGhpZ2hsaWdodGVkIHBvcnRpb24gb2YgdGhlIGxhYmVsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGhpZ2hsaWdodCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5faGlnaGxpZ2h0U3RyaW5nID0gdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0VmlhVXNlckludGVyYWN0aW9uKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAvKiogRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdvcHRpb25zZWxlY3RlZCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaWQgfHw9IGAke3RoaXMub3B0aW9uSWR9LSR7bmV4dElkKyt9YDtcbiAgICBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+IHRoaXMuaW5pdCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZSh0aGlzLCAndGFiaW5kZXgnLCBpc0FuZHJvaWQgJiYgIXRoaXMuZGlzYWJsZWQgJiYgMCk7XG4gICAgICB0aGlzLnVwZGF0ZUFyaWFEaXNhYmxlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIC8vIEluaXQgZmlyc3Qgc2VsZWN0IHN0YXRlIGJlY2F1c2UgZmFsc2Ugd291bGQgbm90IGNhbGwgc2V0dGVyIG9mIHNlbGVjdGVkIHByb3BlcnR5LlxuICAgIHRoaXMuX3VwZGF0ZUFyaWFTZWxlY3RlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNlbGVjdEJ5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCB1cGRhdGVEaXNhYmxlSGlnaGxpZ2h0KGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlTGFiZWxIaWdobGlnaHQgPSBkaXNhYmxlZDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlLWhpZ2hsaWdodCcsIGRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgY3VycmVudGx5IGFjdGl2ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0QWN0aXZlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVGcm9tUGFyZW50KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlQXJpYURpc2FibGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXApIHtcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJywgJ3RydWUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnKTtcbiAgICB9XG5cbiAgICAvLyBMaXN0ZW5lZCBieSBhdXRvY29tcGxldGVcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVkaXNhYmxlZGNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBcmlhU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCBgJHt0aGlzLnNlbGVjdGVkfWApO1xuICB9XG5cbiAgLyoqIE9ic2VydmUgY2hhbmdlcyBvbiBkYXRhIGF0dHJpYnV0ZXMgKyBzbG90dGVkIGNvbnRlbnQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgdmFsdWVzLiAqL1xuICBwcm90ZWN0ZWQgb25FeHRlcm5hbE11dGF0aW9uKG11dGF0aW9uc0xpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICBsZXQgY29udGVudENoYW5nZWQgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHtcbiAgICAgIGlmIChtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnZGF0YS1ncm91cC1kaXNhYmxlZCcpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA9IHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyk7XG4gICAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdkYXRhLW5lZ2F0aXZlJykge1xuICAgICAgICB0aGlzLm5lZ2F0aXZlID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29udGVudENoYW5nZWQpIHtcbiAgICAgIHRoaXMuaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTtcbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbkxhYmVsQ2hhbmdlZCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUhpZ2hsaWdodFN0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IEFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzID8/IFtdKS5maWx0ZXIoXG4gICAgICAobikgPT4gbi5ub2RlVHlwZSAhPT0gTm9kZS5DT01NRU5UX05PREUgJiYgKCEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4uc2xvdCAhPT0gJ2ljb24nKSxcbiAgICApO1xuICAgIGNvbnN0IGxhYmVsTm9kZXMgPSBzbG90Tm9kZXMuZmlsdGVyKChlbCkgPT4gZWwubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSBhcyBUZXh0W107XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBoaWdobGlnaHQgaWYgdGhlIHNsb3QgY29udGFpbiBtb3JlIHRoYW4ganVzdCB0ZXh0IG5vZGVzLlxuICAgIC8vIFdlIG5lZWQgdG8gaWdub3JlIHRlbXBsYXRlIGVsZW1lbnRzLCBhcyBTU1IgYWRkcyBhIGRlY2xhcmF0aXZlIHNoYWRvdyBET01cbiAgICAvLyBpbiB0aGUgZm9ybSBvZiBhIHRlbXBsYXRlIGVsZW1lbnQuXG4gICAgaWYgKFxuICAgICAgbGFiZWxOb2Rlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHNsb3ROb2Rlcy5maWx0ZXIoKG4pID0+ICEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4ubG9jYWxOYW1lICE9PSAndGVtcGxhdGUnKS5sZW5ndGggIT09XG4gICAgICAgIGxhYmVsTm9kZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVIaWdobGlnaHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFiZWwgPSBsYWJlbE5vZGVzXG4gICAgICAubWFwKChsKSA9PiBsLndob2xlVGV4dClcbiAgICAgIC5maWx0ZXIoKGwpID0+IGwudHJpbSgpKVxuICAgICAgLmpvaW4oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRIaWdobGlnaHRlZExhYmVsKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuX2hpZ2hsaWdodFN0cmluZyB8fCAhdGhpcy5faGlnaGxpZ2h0U3RyaW5nLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIGh0bWxgJHt0aGlzLmxhYmVsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hJbmRleCA9IHRoaXMubGFiZWwhLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLl9oaWdobGlnaHRTdHJpbmcudG9Mb3dlckNhc2UoKSk7XG5cbiAgICBpZiAobWF0Y2hJbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBodG1sYCR7dGhpcy5sYWJlbH1gO1xuICAgIH1cblxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZygwLCBtYXRjaEluZGV4KTtcbiAgICBjb25zdCBoaWdobGlnaHRlZCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZyhcbiAgICAgIG1hdGNoSW5kZXgsXG4gICAgICBtYXRjaEluZGV4ICsgdGhpcy5faGlnaGxpZ2h0U3RyaW5nLmxlbmd0aCxcbiAgICApO1xuICAgIGNvbnN0IHBvc3RmaXggPSB0aGlzLmxhYmVsIS5zdWJzdHJpbmcobWF0Y2hJbmRleCArIHRoaXMuX2hpZ2hsaWdodFN0cmluZy5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2xhYmVsLS1oaWdobGlnaHRcIj4ke3ByZWZpeH08L3NwYW4+PHNwYW4+JHtoaWdobGlnaHRlZH08L3NwYW5cbiAgICAgID48c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2xhYmVsLS1oaWdobGlnaHRcIj4ke3Bvc3RmaXh9PC9zcGFuPlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVySWNvbigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9faWNvblwiPiAke3RoaXMucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPmA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWwgJiYgIXRoaXMuZGlzYWJsZUxhYmVsSGlnaGxpZ2h0ID8gdGhpcy5nZXRIaWdobGlnaHRlZExhYmVsKCkgOiBub3RoaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlclRpY2soKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIG5vdGhpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3B0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRpb25cIj5cbiAgICAgICAgICAke3RoaXMucmVuZGVySWNvbigpfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5oYW5kbGVIaWdobGlnaHRTdGF0ZX0+PC9zbG90PlxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckxhYmVsKCl9XG4gICAgICAgICAgICAke3RoaXMuX2luZXJ0QXJpYUdyb3VwcyAmJiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1ncm91cC1sYWJlbCcpXG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgICAgICAgICAgICgke3RoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWdyb3VwLWxhYmVsJyl9KTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgICAgID5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlclRpY2soKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgb3B0aW9uc2VsZWN0ZWQ6IEV2ZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLElBQUksU0FBUztBQU9iLE1BQU0sa0JBQWtCO0FBR3hCLE1BQU0sdUJBQTZDO0FBQUEsRUFDakQsaUJBQWlCLENBQUMsdUJBQXVCLGVBQWU7QUFBQSxFQUN4RCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxTQUFTO0FBQUEsRUFDVCxlQUFlOztJQUtGLHdCQUFvQixNQUFBOztBQURsQyxNQUFBLG1CQUFBLENBQUEsV0FBVzs7OztvQkFDNEMsaUJBQ3RELGlCQUFpQix5QkFBeUIsa0JBQWtCLFVBQVUsQ0FBQyxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFEM0IsRUFBQSxtQkFBUSxZQUV2RDtBQUFBLElBcURDLGNBQUE7QUFDRSxZQUFBO0FBaEJPO0FBR0E7QUFFQTtBQUdBO0FBR0E7QUFFQTtBQTFCRCxXQUFBLFVBM0JLLGtCQUFBLE1BQUEsMEJBQUEsR0EyQmM7QUFhQyx5QkFBQSw0QkFBQSxrQkFBQSxNQUFBLHdCQUFXLEtBQUs7QUFHaEIseUJBQUEsc0NBQUEsa0JBQUEsTUFBQSwyQkFBQSxHQUFBLGtCQUFBLE1BQUEsaUNBQW9CLEtBQUs7QUFFekIseUJBQUEsMEJBQUEsa0JBQUEsTUFBQSxvQ0FBQSxHQUFBLGtCQUFBLE1BQUEscUJBQUEsTUFBQTtBQUdBLHlCQUFBLDBDQUFBLGtCQUFBLE1BQUEsd0JBQUEsR0FBQSxrQkFBQSxNQUFBLHFDQUFpQyxLQUFLO0FBR3hDLHlCQUFBLHFDQUFBLGtCQUFBLE1BQUEsd0NBQUEsR0FBQSxrQkFBQSxNQUFBLGdDQUFrQyxJQUFJO0FBRXRDLHlCQUFBLHFDQUFBLGtCQUFBLE1BQUEsbUNBQUEsR0FBQSxrQkFBQSxNQUFBLGdDQUFtQixLQUFLOztBQUloRCxXQUFLLG1CQUFtQixTQUFTLENBQUMsTUFBa0IsS0FBSyxjQUFjLENBQUMsR0FBRztBQUFBLFFBQ3pFLFNB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
329
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWJhc2UtZWxlbWVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL29wdGlvbi9vcHRpb24vb3B0aW9uLWJhc2UtZWxlbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNdXRhdGlvbkNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL211dGF0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgbm90aGluZywgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0FuZHJvaWQsIGlzU2FmYXJpLCBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7XG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiSHlkcmF0aW9uTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBncm91cHMgbGFiZWxzIGFyZSBub3QgcmVhZCBieSBWb2ljZU92ZXIuXG4gKiBUbyBzb2x2ZSB0aGUgcHJvYmxlbSwgd2UgcmVtb3ZlIHRoZSByb2xlPVwiZ3JvdXBcIiBhbmQgYWRkIGFuIGhpZGRlbiBzcGFuIGNvbnRhaW5pbmcgdGhlIGdyb3VwIG5hbWVcbiAqIFRPRE86IFdlIHNob3VsZCBwZXJpb2RpY2FsbHkgY2hlY2sgaWYgaXQgaGFzIGJlZW4gc29sdmVkIGFuZCwgaWYgc28sIHJlbW92ZSB0aGUgcHJvcGVydHkuXG4gKi9cbmNvbnN0IGluZXJ0QXJpYUdyb3VwcyA9IGlzU2FmYXJpO1xuXG4vKiogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGF0dHJpYnV0ZSB0byBsb29rIGF0IGlmIGNvbXBvbmVudCBpcyBuZXN0ZWQgaW4gYW4gb3B0aW9uIGdyb3VwICovXG5jb25zdCBvcHRpb25PYnNlcnZlckNvbmZpZzogTXV0YXRpb25PYnNlcnZlckluaXQgPSB7XG4gIGF0dHJpYnV0ZUZpbHRlcjogWydkYXRhLWdyb3VwLWRpc2FibGVkJywgJ2RhdGEtbmVnYXRpdmUnXSxcbiAgYXR0cmlidXRlczogdHJ1ZSxcbiAgY2hpbGRMaXN0OiB0cnVlLFxuICBzdWJ0cmVlOiB0cnVlLFxuICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxufTtcblxuZXhwb3J0XG5Ac2xvdFN0YXRlKClcbmFic3RyYWN0IGNsYXNzIFNiYk9wdGlvbkJhc2VFbGVtZW50PFQgPSBzdHJpbmc+IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiSWNvbk5hbWVNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBvcHRpb25zZWxlY3RlZDogJ29wdGlvbnNlbGVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3B0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWUgb2YgdGhlIG9wdGlvbi5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgKiBEdWUgdG8gdGhpcywgaXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBnZXR0ZXIvc2V0dGVyIGFuZCB0aGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKCkgaGFuZGxlcyB0aGUgZGlmZiBjaGVjay5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgYCR7dmFsdWV9YCk7XG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogVCB7XG4gICAgcmV0dXJuICh0aGlzLl92YWx1ZSA/PyB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSkgYXMgVDtcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogVCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQuICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdzZWxlY3RlZCcsIHZhbHVlKTtcbiAgICB0aGlzLl91cGRhdGVBcmlhU2VsZWN0ZWQoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRvIGFwcGx5IHRoZSBuZWdhdGl2ZSBzdHlsaW5nICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBuZWdhdGl2ZSA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgbXVzdCBiZSBzZXQgZGlzYWJsZWQgZHVlIGRpc2FibGVkIGF0dHJpYnV0ZSBvbiBzYmItb3B0Z3JvdXAuICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBkaXNhYmxlZEZyb21Hcm91cCA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBsYWJlbCE6IHN0cmluZztcblxuICAvKiogRGlzYWJsZSB0aGUgaGlnaGxpZ2h0IG9mIHRoZSBsYWJlbC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGRpc2FibGVMYWJlbEhpZ2hsaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgcG9ydGlvbiBvZiB0aGUgaGlnaGxpZ2h0ZWQgbGFiZWwuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2hpZ2hsaWdodFN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaW5lcnRBcmlhR3JvdXBzID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGU6IE1vdXNlRXZlbnQpID0+IHRoaXMuc2VsZWN0QnlDbGljayhlKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBNdXRhdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBjb25maWc6IG9wdGlvbk9ic2VydmVyQ29uZmlnLFxuICAgICAgICBjYWxsYmFjazogKG11dGF0aW9uc0xpc3QpID0+IHRoaXMub25FeHRlcm5hbE11dGF0aW9uKG11dGF0aW9uc0xpc3QpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGlmIChpbmVydEFyaWFHcm91cHMpIHtcbiAgICAgIGlmICh0aGlzLmh5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiAodGhpcy5faW5lcnRBcmlhR3JvdXBzID0gaW5lcnRBcmlhR3JvdXBzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCBvbGQgIT09IHZhbHVlKSB7XG4gICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhpZ2hsaWdodCB0aGUgbGFiZWwgb2YgdGhlIG9wdGlvblxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIGhpZ2hsaWdodGVkIHBvcnRpb24gb2YgdGhlIGxhYmVsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGhpZ2hsaWdodCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5faGlnaGxpZ2h0U3RyaW5nID0gdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0VmlhVXNlckludGVyYWN0aW9uKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAvKiogRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdvcHRpb25zZWxlY3RlZCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaWQgfHw9IGAke3RoaXMub3B0aW9uSWR9LSR7bmV4dElkKyt9YDtcbiAgICBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+IHRoaXMuaW5pdCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZSh0aGlzLCAndGFiaW5kZXgnLCBpc0FuZHJvaWQgJiYgIXRoaXMuZGlzYWJsZWQgJiYgMCk7XG4gICAgICB0aGlzLnVwZGF0ZUFyaWFEaXNhYmxlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIC8vIEluaXQgZmlyc3Qgc2VsZWN0IHN0YXRlIGJlY2F1c2UgZmFsc2Ugd291bGQgbm90IGNhbGwgc2V0dGVyIG9mIHNlbGVjdGVkIHByb3BlcnR5LlxuICAgIHRoaXMuX3VwZGF0ZUFyaWFTZWxlY3RlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNlbGVjdEJ5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCB1cGRhdGVEaXNhYmxlSGlnaGxpZ2h0KGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlTGFiZWxIaWdobGlnaHQgPSBkaXNhYmxlZDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlLWhpZ2hsaWdodCcsIGRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgY3VycmVudGx5IGFjdGl2ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0QWN0aXZlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVGcm9tUGFyZW50KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlQXJpYURpc2FibGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXApIHtcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJywgJ3RydWUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnKTtcbiAgICB9XG5cbiAgICAvLyBMaXN0ZW5lZCBieSBhdXRvY29tcGxldGVcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVkaXNhYmxlZGNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBcmlhU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCBgJHt0aGlzLnNlbGVjdGVkfWApO1xuICB9XG5cbiAgLyoqIE9ic2VydmUgY2hhbmdlcyBvbiBkYXRhIGF0dHJpYnV0ZXMgKyBzbG90dGVkIGNvbnRlbnQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgdmFsdWVzLiAqL1xuICBwcm90ZWN0ZWQgb25FeHRlcm5hbE11dGF0aW9uKG11dGF0aW9uc0xpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICBsZXQgY29udGVudENoYW5nZWQgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHtcbiAgICAgIGlmIChtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnZGF0YS1ncm91cC1kaXNhYmxlZCcpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA9IHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyk7XG4gICAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdkYXRhLW5lZ2F0aXZlJykge1xuICAgICAgICB0aGlzLm5lZ2F0aXZlID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29udGVudENoYW5nZWQpIHtcbiAgICAgIHRoaXMuaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTtcbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbkxhYmVsQ2hhbmdlZCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUhpZ2hsaWdodFN0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IEFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzID8/IFtdKS5maWx0ZXIoXG4gICAgICAobikgPT4gbi5ub2RlVHlwZSAhPT0gTm9kZS5DT01NRU5UX05PREUgJiYgKCEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4uc2xvdCAhPT0gJ2ljb24nKSxcbiAgICApO1xuICAgIGNvbnN0IGxhYmVsTm9kZXMgPSBzbG90Tm9kZXMuZmlsdGVyKChlbCkgPT4gZWwubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSBhcyBUZXh0W107XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBoaWdobGlnaHQgaWYgdGhlIHNsb3QgY29udGFpbiBtb3JlIHRoYW4ganVzdCB0ZXh0IG5vZGVzLlxuICAgIC8vIFdlIG5lZWQgdG8gaWdub3JlIHRlbXBsYXRlIGVsZW1lbnRzLCBhcyBTU1IgYWRkcyBhIGRlY2xhcmF0aXZlIHNoYWRvdyBET01cbiAgICAvLyBpbiB0aGUgZm9ybSBvZiBhIHRlbXBsYXRlIGVsZW1lbnQuXG4gICAgaWYgKFxuICAgICAgbGFiZWxOb2Rlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHNsb3ROb2Rlcy5maWx0ZXIoKG4pID0+ICEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4ubG9jYWxOYW1lICE9PSAndGVtcGxhdGUnKS5sZW5ndGggIT09XG4gICAgICAgIGxhYmVsTm9kZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVIaWdobGlnaHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFiZWwgPSBsYWJlbE5vZGVzXG4gICAgICAubWFwKChsKSA9PiBsLndob2xlVGV4dClcbiAgICAgIC5maWx0ZXIoKGwpID0+IGwudHJpbSgpKVxuICAgICAgLmpvaW4oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRIaWdobGlnaHRlZExhYmVsKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuX2hpZ2hsaWdodFN0cmluZyB8fCAhdGhpcy5faGlnaGxpZ2h0U3RyaW5nLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIGh0bWxgJHt0aGlzLmxhYmVsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hJbmRleCA9IHRoaXMubGFiZWwhLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLl9oaWdobGlnaHRTdHJpbmcudG9Mb3dlckNhc2UoKSk7XG5cbiAgICBpZiAobWF0Y2hJbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBodG1sYCR7dGhpcy5sYWJlbH1gO1xuICAgIH1cblxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZygwLCBtYXRjaEluZGV4KTtcbiAgICBjb25zdCBoaWdobGlnaHRlZCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZyhcbiAgICAgIG1hdGNoSW5kZXgsXG4gICAgICBtYXRjaEluZGV4ICsgdGhpcy5faGlnaGxpZ2h0U3RyaW5nLmxlbmd0aCxcbiAgICApO1xuICAgIGNvbnN0IHBvc3RmaXggPSB0aGlzLmxhYmVsIS5zdWJzdHJpbmcobWF0Y2hJbmRleCArIHRoaXMuX2hpZ2hsaWdodFN0cmluZy5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2xhYmVsLS1oaWdobGlnaHRcIj4ke3ByZWZpeH08L3NwYW4+PHNwYW4+JHtoaWdobGlnaHRlZH08L3NwYW5cbiAgICAgID48c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2xhYmVsLS1oaWdobGlnaHRcIj4ke3Bvc3RmaXh9PC9zcGFuPlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVySWNvbigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9faWNvblwiPiAke3RoaXMucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPmA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWwgJiYgIXRoaXMuZGlzYWJsZUxhYmVsSGlnaGxpZ2h0ID8gdGhpcy5nZXRIaWdobGlnaHRlZExhYmVsKCkgOiBub3RoaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlclRpY2soKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIG5vdGhpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3B0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRpb25cIj5cbiAgICAgICAgICAke3RoaXMucmVuZGVySWNvbigpfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5oYW5kbGVIaWdobGlnaHRTdGF0ZX0+PC9zbG90PlxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckxhYmVsKCl9XG4gICAgICAgICAgICAke3RoaXMuX2luZXJ0QXJpYUdyb3VwcyAmJiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1ncm91cC1sYWJlbCcpXG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgICAgICAgICAgICgke3RoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWdyb3VwLWxhYmVsJyl9KTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgICAgID5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlclRpY2soKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1h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
@@ -1,6 +1,7 @@
1
1
  import { CSSResultGroup, PropertyDeclaration, PropertyValues, TemplateResult } from 'lit';
2
2
  import { SbbOpenCloseBaseElement } from '../core/base-elements.js';
3
3
  import { FormRestoreReason, FormRestoreState } from '../core/mixins.js';
4
+ import { SbbOptionElement } from '../option.js';
4
5
  declare const SbbSelectElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbUpdateSchedulerMixinType> & import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbDisabledMixinType> & import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbNegativeMixinType> & import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbHydrationMixinType> & import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbRequiredMixinType> & import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbReadonlyMixinType> & import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbFormAssociatedMixinType> & typeof SbbOpenCloseBaseElement;
5
6
  /**
6
7
  * It displays a panel with selectable options.
@@ -29,7 +30,9 @@ export declare class SbbSelectElement<T = string> extends SbbSelectElement_base
29
30
  accessor multiple: boolean;
30
31
  accessor disabled: boolean;
31
32
  /** Value of the form element. */
32
- accessor value: T | T[] | null;
33
+ set value(value: T[] | T);
34
+ get value(): T[] | T | null;
35
+ private _value;
33
36
  /**
34
37
  * Size variant, either m or s.
35
38
  * @default 'm' / 's' (lean)
@@ -56,14 +59,14 @@ export declare class SbbSelectElement<T = string> extends SbbSelectElement_base
56
59
  private _didLoad;
57
60
  private _isPointerDownEventOnMenu;
58
61
  private _languageController;
62
+ private _isValueManuallyAssigned;
59
63
  /**
60
64
  * The 'combobox' input element
61
65
  * @internal
62
66
  */
63
67
  get inputElement(): HTMLElement;
64
- /** Gets all the SbbOptionElement projected in the select. */
65
- private get _options();
66
- private get _filteredOptions();
68
+ /** Returns all SbbOptionElements from this sbb-select instance. */
69
+ get options(): SbbOptionElement<T>[];
67
70
  constructor();
68
71
  private _syncAriaLabels;
69
72
  /** Opens the selection panel. */
@@ -73,6 +76,7 @@ export declare class SbbSelectElement<T = string> extends SbbSelectElement_base
73
76
  private _isZeroAnimationDuration;
74
77
  /** Gets the current displayed value. */
75
78
  getDisplayValue(): string;
79
+ private _selectableOptions;
76
80
  /** Listens to option changes. */
77
81
  private _onOptionChanged;
78
82
  /** Listens to option changes. */
@@ -88,8 +92,6 @@ export declare class SbbSelectElement<T = string> extends SbbSelectElement_base
88
92
  * If the `disabled` or the `readonly` properties are set, and the panel is open, close it.
89
93
  */
90
94
  private _closeOnDisabledReadonlyChanged;
91
- /** Sets the _displayValue by checking the internal sbb-options and setting the correct `selected` value on them. */
92
- private _onValueChanged;
93
95
  protected firstUpdated(changedProperties: PropertyValues<this>): void;
94
96
  /** @internal */
95
97
  focus(): void;
@@ -115,7 +117,7 @@ export declare class SbbSelectElement<T = string> extends SbbSelectElement_base
115
117
  * @internal
116
118
  */
117
119
  formStateRestoreCallback(state: FormRestoreState | null, _reason: FormRestoreReason): void;
118
- private _readFormData;
120
+ protected formState(): FormRestoreState;
119
121
  private _syncProperties;
120
122
  protected shouldValidate(name: PropertyKey | undefined): boolean;
121
123
  protected validate(): void;
@@ -149,7 +151,9 @@ export declare class SbbSelectElement<T = string> extends SbbSelectElement_base
149
151
  private _resetActiveElement;
150
152
  private _pointerDownListener;
151
153
  private _closeOnBackdropClick;
152
- private _setValueFromSelected;
154
+ private _updateOptionsFromValue;
155
+ private _updateValueFromOptions;
156
+ private _onSlotChange;
153
157
  private _getSelected;
154
158
  private _toggleOpening;
155
159
  private _spreadDeferredDisplayValue;
@@ -1 +1 @@
1
- {"version":3,"file":"select.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/select/select.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/select/select.component.ts"],"names":[],"mappings":"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"}