@sbb-esta/lyne-elements-dev 4.8.1-dev.1774270807 → 4.8.1-dev.1774274028

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.
@@ -45,7 +45,7 @@ var t = class {
45
45
  }
46
46
  _getFirstTabbableElement(t) {
47
47
  if (t !== this._host && e.isFocusable(t) && e.isTabbable(t)) return t;
48
- let n = t.shadowRoot ? t.shadowRoot.children : t.localName === "slot" ? t.assignedElements() : t.children;
48
+ let n = t.shadowRoot?.children ?? (t.localName === "slot" && t.assignedElements().length > 0 ? t.assignedElements() : t.children);
49
49
  for (let e = 0; e < n.length; e++) {
50
50
  let t = n[e].nodeType === document.ELEMENT_NODE ? this._getFirstTabbableElement(n[e]) : null;
51
51
  if (t) return t;
@@ -55,7 +55,7 @@ var t = class {
55
55
  _getLastTabbableElement(t) {
56
56
  let n = null;
57
57
  t !== this._host && e.isFocusable(t) && e.isTabbable(t) && (n = t);
58
- let r = t.shadowRoot ? t.shadowRoot.children : t.localName === "slot" ? t.assignedElements() : t.children;
58
+ let r = t.shadowRoot?.children ?? (t.localName === "slot" && t.assignedElements().length > 0 ? t.assignedElements() : t.children);
59
59
  for (let e = r.length - 1; e >= 0; e--) {
60
60
  let t = r[e].nodeType === document.ELEMENT_NODE ? this._getLastTabbableElement(r[e]) : null;
61
61
  if (t) return t;
@@ -77,7 +77,7 @@ var SbbFocusTrapController = class {
77
77
  /** Get the first tabbable element from a DOM subtree (inclusive). */
78
78
  _getFirstTabbableElement(root) {
79
79
  if (root !== this._host && interactivityChecker.isFocusable(root) && interactivityChecker.isTabbable(root)) return root;
80
- const children = root.shadowRoot ? root.shadowRoot.children : root.localName === "slot" ? root.assignedElements() : root.children;
80
+ const children = root.shadowRoot?.children ?? (root.localName === "slot" && root.assignedElements().length > 0 ? root.assignedElements() : root.children);
81
81
  for (let i = 0; i < children.length; i++) {
82
82
  const tabbableChild = children[i].nodeType === document.ELEMENT_NODE ? this._getFirstTabbableElement(children[i]) : null;
83
83
  if (tabbableChild) return tabbableChild;
@@ -88,7 +88,7 @@ var SbbFocusTrapController = class {
88
88
  _getLastTabbableElement(root) {
89
89
  let result = null;
90
90
  if (root !== this._host && interactivityChecker.isFocusable(root) && interactivityChecker.isTabbable(root)) result = root;
91
- const children = root.shadowRoot ? root.shadowRoot.children : root.localName === "slot" ? root.assignedElements() : root.children;
91
+ const children = root.shadowRoot?.children ?? (root.localName === "slot" && root.assignedElements().length > 0 ? root.assignedElements() : root.children);
92
92
  for (let i = children.length - 1; i >= 0; i--) {
93
93
  const tabbableChild = children[i].nodeType === document.ELEMENT_NODE ? this._getLastTabbableElement(children[i]) : null;
94
94
  if (tabbableChild) return tabbableChild;
@@ -103,4 +103,4 @@ var SbbFocusTrapController = class {
103
103
  //#endregion
104
104
  export { SbbFocusTrapController };
105
105
 
106
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvZm9jdXMtdHJhcC1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgaW50ZXJhY3Rpdml0eUNoZWNrZXIgfSBmcm9tICcuL2ludGVyYWN0aXZpdHktY2hlY2tlci50cyc7XG5cbmV4cG9ydCBjbGFzcyBTYmJGb2N1c1RyYXBDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZvY3VzIGlzIHRyYXAgaXMgZW5hYmxlZC5cbiAgICogQHBhcmFtIGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyBzZXQgZW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG4gICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgIHRoaXMuX3RyYXAoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdW50cmFwKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9hYm9ydENvbnRyb2xsZXI7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydENvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlciB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXI/Lih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX3VudHJhcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIGVsZW1lbnQgdGhhdCBzaG91bGQgYmUgZm9jdXNlZCB3aGVuIHRoZSBmb2N1cyB0cmFwIGlzIGluaXRpYWxpemVkLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIGZvY3VzIHdhcyBtb3ZlZCBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBwdWJsaWMgZm9jdXNJbml0aWFsRWxlbWVudChvcHRpb25zPzogRm9jdXNPcHRpb25zKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVkaXJlY3RUb0VsZW1lbnQgPSB0aGlzLl9ob3N0LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdbc2JiLWZvY3VzLWluaXRpYWxdJyk7XG5cbiAgICBpZiAocmVkaXJlY3RUb0VsZW1lbnQpIHtcbiAgICAgIC8vIFdhcm4gdGhlIGNvbnN1bWVyIGlmIHRoZSBlbGVtZW50IHRoZXkndmUgcG9pbnRlZCB0b1xuICAgICAgLy8gaXNuJ3QgZm9jdXNhYmxlLCB3aGVuIG5vdCBpbiBwcm9kdWN0aW9uIG1vZGUuXG4gICAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiAhaW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNGb2N1c2FibGUocmVkaXJlY3RUb0VsZW1lbnQpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgRWxlbWVudCBtYXRjaGluZyAnW3NiYi1mb2N1cy1pbml0aWFsXScgaXMgbm90IGZvY3VzYWJsZS5gLCByZWRpcmVjdFRvRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghaW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNGb2N1c2FibGUocmVkaXJlY3RUb0VsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkID0gdGhpcy5fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQocmVkaXJlY3RUb0VsZW1lbnQpO1xuICAgICAgICBmb2N1c2FibGVDaGlsZD8uZm9jdXMob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiAhIWZvY3VzYWJsZUNoaWxkO1xuICAgICAgfVxuXG4gICAgICByZWRpcmVjdFRvRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgZmlyc3QgdGFiYmFibGUgZWxlbWVudCB3aXRoaW4gdGhlIGZvY3VzIHRyYXAgcmVnaW9uLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIGZvY3VzIHdhcyBtb3ZlZCBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBwdWJsaWMgZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudChvcHRpb25zPzogRm9jdXNPcHRpb25zKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVkaXJlY3RUb0VsZW1lbnQgPSB0aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudCh0aGlzLl9ob3N0KTtcblxuICAgIGlmIChyZWRpcmVjdFRvRWxlbWVudCkge1xuICAgICAgcmVkaXJlY3RUb0VsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcmVkaXJlY3RUb0VsZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgbGFzdCB0YWJiYWJsZSBlbGVtZW50IHdpdGhpbiB0aGUgZm9jdXMgdHJhcCByZWdpb24uXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgZm9jdXMgd2FzIG1vdmVkIHN1Y2Nlc3NmdWxseS5cbiAgICovXG4gIHB1YmxpYyBmb2N1c0xhc3RUYWJiYWJsZUVsZW1lbnQob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZGlyZWN0VG9FbGVtZW50ID0gdGhpcy5fZ2V0TGFzdFRhYmJhYmxlRWxlbWVudCh0aGlzLl9ob3N0KTtcblxuICAgIGlmIChyZWRpcmVjdFRvRWxlbWVudCkge1xuICAgICAgcmVkaXJlY3RUb0VsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcmVkaXJlY3RUb0VsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIF90cmFwKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9ob3N0LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2hvc3QpO1xuICAgICAgICAgIGlmIChsYXN0Rm9jdXNhYmxlRWxlbWVudCAmJiBldmVudC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhsYXN0Rm9jdXNhYmxlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2dldEZpcnN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2hvc3QpPy5mb2N1cygpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gdGhpcy5fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQodGhpcy5faG9zdCk7XG4gICAgICAgICAgaWYgKGZpcnN0Rm9jdXNhYmxlRWxlbWVudCAmJiBldmVudC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhmaXJzdEZvY3VzYWJsZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2hvc3QpPy5mb2N1cygpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gIH1cblxuICAvKiogR2V0IHRoZSBmaXJzdCB0YWJiYWJsZSBlbGVtZW50IGZyb20gYSBET00gc3VidHJlZSAoaW5jbHVzaXZlKS4gKi9cbiAgcHJpdmF0ZSBfZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQocm9vdDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmIChcbiAgICAgIHJvb3QgIT09IHRoaXMuX2hvc3QgJiZcbiAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzRm9jdXNhYmxlKHJvb3QpICYmXG4gICAgICBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1RhYmJhYmxlKHJvb3QpXG4gICAgKSB7XG4gICAgICByZXR1cm4gcm9vdDtcbiAgICB9XG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IHJvb3Quc2hhZG93Um9vdFxuICAgICAgPyByb290LnNoYWRvd1Jvb3QuY2hpbGRyZW5cbiAgICAgIDogcm9vdC5sb2NhbE5hbWUgPT09ICdzbG90J1xuICAgICAgICA/IChyb290IGFzIEhUTUxTbG90RWxlbWVudCkuYXNzaWduZWRFbGVtZW50cygpXG4gICAgICAgIDogcm9vdC5jaGlsZHJlbjtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhYmJhYmxlQ2hpbGQgPVxuICAgICAgICBjaGlsZHJlbltpXS5ub2RlVHlwZSA9PT0gZG9jdW1lbnQuRUxFTUVOVF9OT0RFXG4gICAgICAgICAgPyB0aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudChjaGlsZHJlbltpXSBhcyBIVE1MRWxlbWVudClcbiAgICAgICAgICA6IG51bGw7XG5cbiAgICAgIGlmICh0YWJiYWJsZUNoaWxkKSB7XG4gICAgICAgIHJldHVybiB0YWJiYWJsZUNoaWxkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbGFzdCB0YWJiYWJsZSBlbGVtZW50IGZyb20gYSBET00gc3VidHJlZSAoaW5jbHVzaXZlKS4gKi9cbiAgcHJpdmF0ZSBfZ2V0TGFzdFRhYmJhYmxlRWxlbWVudChyb290OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgbGV0IHJlc3VsdDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGlmIChcbiAgICAgIHJvb3QgIT09IHRoaXMuX2hvc3QgJiZcbiAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzRm9jdXNhYmxlKHJvb3QpICYmXG4gICAgICBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1RhYmJhYmxlKHJvb3QpXG4gICAgKSB7XG4gICAgICByZXN1bHQgPSByb290O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkcmVuID0gcm9vdC5zaGFkb3dSb290XG4gICAgICA/IHJvb3Quc2hhZG93Um9vdC5jaGlsZHJlblxuICAgICAgOiByb290LmxvY2FsTmFtZSA9PT0gJ3Nsb3QnXG4gICAgICAgID8gKHJvb3QgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZEVsZW1lbnRzKClcbiAgICAgICAgOiByb290LmNoaWxkcmVuO1xuXG4gICAgLy8gSXRlcmF0ZSBpbiByZXZlcnNlIERPTSBvcmRlci5cbiAgICBmb3IgKGxldCBpID0gY2hpbGRyZW4ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHRhYmJhYmxlQ2hpbGQgPVxuICAgICAgICBjaGlsZHJlbltpXS5ub2RlVHlwZSA9PT0gZG9jdW1lbnQuRUxFTUVOVF9OT0RFXG4gICAgICAgICAgPyB0aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KGNoaWxkcmVuW2ldIGFzIEhUTUxFbGVtZW50KVxuICAgICAgICAgIDogbnVsbDtcblxuICAgICAgaWYgKHRhYmJhYmxlQ2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIHRhYmJhYmxlQ2hpbGQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgX3VudHJhcCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUlBLElBQWEseUJBQWIsTUFBbUM7Ozs7O0NBS2pDLElBQVcsUUFBUSxTQUFnQjtBQUNqQyxNQUFJLFFBQ0YsTUFBSyxPQUFPO01BRVosTUFBSyxTQUFTOztDQUdsQixJQUFXLFVBQU87QUFDaEIsU0FBTyxDQUFDLENBQUMsS0FBSzs7Q0FLaEIsWUFBMkIsT0FBMkM7QUFBM0MsT0FBQSxRQUFBO0FBRm5CLE9BQUEsbUJBQTJDO0FBR2pELE9BQUssTUFBTSxnQkFBZ0IsS0FBSzs7Q0FHM0IsbUJBQWdCO0FBQ3JCLE9BQUssU0FBUzs7Ozs7O0NBT1Qsb0JBQW9CLFNBQXNCO0VBQy9DLE1BQU0sb0JBQW9CLEtBQUssTUFBTSxjQUEyQixzQkFBc0I7QUFFdEYsTUFBSSxtQkFBbUI7QUFPckIsT0FBSSxDQUFDLHFCQUFxQixZQUFZLGtCQUFrQixFQUFFO0lBQ3hELE1BQU0saUJBQWlCLEtBQUsseUJBQXlCLGtCQUFrQjtBQUN2RSxvQkFBZ0IsTUFBTSxRQUFRO0FBQzlCLFdBQU8sQ0FBQyxDQUFDOztBQUdYLHFCQUFrQixNQUFNLFFBQVE7QUFDaEMsVUFBTzs7QUFHVCxTQUFPLEtBQUssMEJBQTBCLFFBQVE7Ozs7OztDQU96QywwQkFBMEIsU0FBc0I7RUFDckQsTUFBTSxvQkFBb0IsS0FBSyx5QkFBeUIsS0FBSyxNQUFNO0FBRW5FLE1BQUksa0JBQ0YsbUJBQWtCLE1BQU0sUUFBUTtBQUdsQyxTQUFPLENBQUMsQ0FBQzs7Ozs7O0NBT0oseUJBQXlCLFNBQXNCO0VBQ3BELE1BQU0sb0JBQW9CLEtBQUssd0JBQXdCLEtBQUssTUFBTTtBQUVsRSxNQUFJLGtCQUNGLG1CQUFrQixNQUFNLFFBQVE7QUFHbEMsU0FBTyxDQUFDLENBQUM7O0NBR0gsUUFBSztBQUNYLE9BQUssbUJBQW1CLElBQUksaUJBQWlCO0FBQzdDLE9BQUssTUFBTSxpQkFDVCxZQUNDLFVBQVM7QUFDUixPQUFJLE1BQU0sUUFBUSxNQUNoQjtBQUdGLE9BQUksQ0FBQyxNQUFNLFVBQVU7SUFDbkIsTUFBTSx1QkFBdUIsS0FBSyx3QkFBd0IsS0FBSyxNQUFNO0FBQ3JFLFFBQUksd0JBQXdCLE1BQU0sY0FBYyxDQUFDLFNBQVMscUJBQXFCLEVBQUU7QUFDL0UsVUFBSyx5QkFBeUIsS0FBSyxNQUFNLEVBQUUsT0FBTztBQUNsRCxXQUFNLGdCQUFnQjs7VUFFbkI7SUFDTCxNQUFNLHdCQUF3QixLQUFLLHlCQUF5QixLQUFLLE1BQU07QUFDdkUsUUFBSSx5QkFBeUIsTUFBTSxjQUFjLENBQUMsU0FBUyxzQkFBc0IsRUFBRTtBQUNqRixVQUFLLHdCQUF3QixLQUFLLE1BQU0sRUFBRSxPQUFPO0FBQ2pELFdBQU0sZ0JBQWdCOzs7S0FJNUIsRUFBRSxRQUFRLEtBQUssaUJBQWlCLFFBQVEsQ0FDekM7OztDQUlLLHlCQUF5QixNQUFpQjtBQUNoRCxNQUNFLFNBQVMsS0FBSyxTQUNkLHFCQUFxQixZQUFZLEtBQUssSUFDdEMscUJBQXFCLFdBQVcsS0FBSyxDQUVyQyxRQUFPO0VBR1QsTUFBTSxXQUFXLEtBQUssYUFDbEIsS0FBSyxXQUFXLFdBQ2hCLEtBQUssY0FBYyxTQUNoQixLQUF5QixrQkFBa0IsR0FDNUMsS0FBSztBQUVYLE9BQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxTQUFTLFFBQVEsS0FBSztHQUN4QyxNQUFNLGdCQUNKLFNBQVMsR0FBRyxhQUFhLFNBQVMsZUFDOUIsS0FBSyx5QkFBeUIsU0FBUyxHQUFrQixHQUN6RDtBQUVOLE9BQUksY0FDRixRQUFPOztBQUlYLFNBQU87OztDQUlELHdCQUF3QixNQUFpQjtFQUMvQyxJQUFJLFNBQTZCO0FBRWpDLE1BQ0UsU0FBUyxLQUFLLFNBQ2QscUJBQXFCLFlBQVksS0FBSyxJQUN0QyxxQkFBcUIsV0FBVyxLQUFLLENBRXJDLFVBQVM7RUFHWCxNQUFNLFdBQVcsS0FBSyxhQUNsQixLQUFLLFdBQVcsV0FDaEIsS0FBSyxjQUFjLFNBQ2hCLEtBQXlCLGtCQUFrQixHQUM1QyxLQUFLO0FBR1gsT0FBSyxJQUFJLElBQUksU0FBUyxTQUFTLEdBQUcsS0FBSyxHQUFHLEtBQUs7R0FDN0MsTUFBTSxnQkFDSixTQUFTLEdBQUcsYUFBYSxTQUFTLGVBQzlCLEtBQUssd0JBQXdCLFNBQVMsR0FBa0IsR0FDeEQ7QUFFTixPQUFJLGNBQ0YsUUFBTzs7QUFJWCxTQUFPOztDQUdELFVBQU87QUFDYixPQUFLLGtCQUFrQixPQUFPO0FBQzlCLE9BQUssbUJBQW1CIn0=
106
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvZm9jdXMtdHJhcC1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgaW50ZXJhY3Rpdml0eUNoZWNrZXIgfSBmcm9tICcuL2ludGVyYWN0aXZpdHktY2hlY2tlci50cyc7XG5cbmV4cG9ydCBjbGFzcyBTYmJGb2N1c1RyYXBDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZvY3VzIGlzIHRyYXAgaXMgZW5hYmxlZC5cbiAgICogQHBhcmFtIGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyBzZXQgZW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG4gICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgIHRoaXMuX3RyYXAoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdW50cmFwKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9hYm9ydENvbnRyb2xsZXI7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydENvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlciB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXI/Lih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX3VudHJhcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIGVsZW1lbnQgdGhhdCBzaG91bGQgYmUgZm9jdXNlZCB3aGVuIHRoZSBmb2N1cyB0cmFwIGlzIGluaXRpYWxpemVkLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIGZvY3VzIHdhcyBtb3ZlZCBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBwdWJsaWMgZm9jdXNJbml0aWFsRWxlbWVudChvcHRpb25zPzogRm9jdXNPcHRpb25zKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVkaXJlY3RUb0VsZW1lbnQgPSB0aGlzLl9ob3N0LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdbc2JiLWZvY3VzLWluaXRpYWxdJyk7XG5cbiAgICBpZiAocmVkaXJlY3RUb0VsZW1lbnQpIHtcbiAgICAgIC8vIFdhcm4gdGhlIGNvbnN1bWVyIGlmIHRoZSBlbGVtZW50IHRoZXkndmUgcG9pbnRlZCB0b1xuICAgICAgLy8gaXNuJ3QgZm9jdXNhYmxlLCB3aGVuIG5vdCBpbiBwcm9kdWN0aW9uIG1vZGUuXG4gICAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiAhaW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNGb2N1c2FibGUocmVkaXJlY3RUb0VsZW1lbnQpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgRWxlbWVudCBtYXRjaGluZyAnW3NiYi1mb2N1cy1pbml0aWFsXScgaXMgbm90IGZvY3VzYWJsZS5gLCByZWRpcmVjdFRvRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghaW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNGb2N1c2FibGUocmVkaXJlY3RUb0VsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkID0gdGhpcy5fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQocmVkaXJlY3RUb0VsZW1lbnQpO1xuICAgICAgICBmb2N1c2FibGVDaGlsZD8uZm9jdXMob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiAhIWZvY3VzYWJsZUNoaWxkO1xuICAgICAgfVxuXG4gICAgICByZWRpcmVjdFRvRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgZmlyc3QgdGFiYmFibGUgZWxlbWVudCB3aXRoaW4gdGhlIGZvY3VzIHRyYXAgcmVnaW9uLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIGZvY3VzIHdhcyBtb3ZlZCBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBwdWJsaWMgZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudChvcHRpb25zPzogRm9jdXNPcHRpb25zKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVkaXJlY3RUb0VsZW1lbnQgPSB0aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudCh0aGlzLl9ob3N0KTtcblxuICAgIGlmIChyZWRpcmVjdFRvRWxlbWVudCkge1xuICAgICAgcmVkaXJlY3RUb0VsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcmVkaXJlY3RUb0VsZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgbGFzdCB0YWJiYWJsZSBlbGVtZW50IHdpdGhpbiB0aGUgZm9jdXMgdHJhcCByZWdpb24uXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgZm9jdXMgd2FzIG1vdmVkIHN1Y2Nlc3NmdWxseS5cbiAgICovXG4gIHB1YmxpYyBmb2N1c0xhc3RUYWJiYWJsZUVsZW1lbnQob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZGlyZWN0VG9FbGVtZW50ID0gdGhpcy5fZ2V0TGFzdFRhYmJhYmxlRWxlbWVudCh0aGlzLl9ob3N0KTtcblxuICAgIGlmIChyZWRpcmVjdFRvRWxlbWVudCkge1xuICAgICAgcmVkaXJlY3RUb0VsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcmVkaXJlY3RUb0VsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIF90cmFwKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9ob3N0LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2hvc3QpO1xuICAgICAgICAgIGlmIChsYXN0Rm9jdXNhYmxlRWxlbWVudCAmJiBldmVudC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhsYXN0Rm9jdXNhYmxlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2dldEZpcnN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2hvc3QpPy5mb2N1cygpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gdGhpcy5fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQodGhpcy5faG9zdCk7XG4gICAgICAgICAgaWYgKGZpcnN0Rm9jdXNhYmxlRWxlbWVudCAmJiBldmVudC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhmaXJzdEZvY3VzYWJsZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2hvc3QpPy5mb2N1cygpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gIH1cblxuICAvKiogR2V0IHRoZSBmaXJzdCB0YWJiYWJsZSBlbGVtZW50IGZyb20gYSBET00gc3VidHJlZSAoaW5jbHVzaXZlKS4gKi9cbiAgcHJpdmF0ZSBfZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQocm9vdDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmIChcbiAgICAgIHJvb3QgIT09IHRoaXMuX2hvc3QgJiZcbiAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzRm9jdXNhYmxlKHJvb3QpICYmXG4gICAgICBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1RhYmJhYmxlKHJvb3QpXG4gICAgKSB7XG4gICAgICByZXR1cm4gcm9vdDtcbiAgICB9XG5cbiAgICBjb25zdCBjaGlsZHJlbiA9XG4gICAgICByb290LnNoYWRvd1Jvb3Q/LmNoaWxkcmVuID8/XG4gICAgICAocm9vdC5sb2NhbE5hbWUgPT09ICdzbG90JyAmJiAocm9vdCBhcyBIVE1MU2xvdEVsZW1lbnQpLmFzc2lnbmVkRWxlbWVudHMoKS5sZW5ndGggPiAwXG4gICAgICAgID8gKHJvb3QgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZEVsZW1lbnRzKClcbiAgICAgICAgOiByb290LmNoaWxkcmVuKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhYmJhYmxlQ2hpbGQgPVxuICAgICAgICBjaGlsZHJlbltpXS5ub2RlVHlwZSA9PT0gZG9jdW1lbnQuRUxFTUVOVF9OT0RFXG4gICAgICAgICAgPyB0aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudChjaGlsZHJlbltpXSBhcyBIVE1MRWxlbWVudClcbiAgICAgICAgICA6IG51bGw7XG5cbiAgICAgIGlmICh0YWJiYWJsZUNoaWxkKSB7XG4gICAgICAgIHJldHVybiB0YWJiYWJsZUNoaWxkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbGFzdCB0YWJiYWJsZSBlbGVtZW50IGZyb20gYSBET00gc3VidHJlZSAoaW5jbHVzaXZlKS4gKi9cbiAgcHJpdmF0ZSBfZ2V0TGFzdFRhYmJhYmxlRWxlbWVudChyb290OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgbGV0IHJlc3VsdDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGlmIChcbiAgICAgIHJvb3QgIT09IHRoaXMuX2hvc3QgJiZcbiAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzRm9jdXNhYmxlKHJvb3QpICYmXG4gICAgICBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1RhYmJhYmxlKHJvb3QpXG4gICAgKSB7XG4gICAgICByZXN1bHQgPSByb290O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkcmVuID1cbiAgICAgIHJvb3Quc2hhZG93Um9vdD8uY2hpbGRyZW4gPz9cbiAgICAgIChyb290LmxvY2FsTmFtZSA9PT0gJ3Nsb3QnICYmIChyb290IGFzIEhUTUxTbG90RWxlbWVudCkuYXNzaWduZWRFbGVtZW50cygpLmxlbmd0aCA+IDBcbiAgICAgICAgPyAocm9vdCBhcyBIVE1MU2xvdEVsZW1lbnQpLmFzc2lnbmVkRWxlbWVudHMoKVxuICAgICAgICA6IHJvb3QuY2hpbGRyZW4pO1xuXG4gICAgLy8gSXRlcmF0ZSBpbiByZXZlcnNlIERPTSBvcmRlci5cbiAgICBmb3IgKGxldCBpID0gY2hpbGRyZW4ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHRhYmJhYmxlQ2hpbGQgPVxuICAgICAgICBjaGlsZHJlbltpXS5ub2RlVHlwZSA9PT0gZG9jdW1lbnQuRUxFTUVOVF9OT0RFXG4gICAgICAgICAgPyB0aGlzLl9nZXRMYXN0VGFiYmFibGVFbGVtZW50KGNoaWxkcmVuW2ldIGFzIEhUTUxFbGVtZW50KVxuICAgICAgICAgIDogbnVsbDtcblxuICAgICAgaWYgKHRhYmJhYmxlQ2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIHRhYmJhYmxlQ2hpbGQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgX3VudHJhcCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUlBLElBQWEseUJBQWIsTUFBbUM7Ozs7O0NBS2pDLElBQVcsUUFBUSxTQUFnQjtBQUNqQyxNQUFJLFFBQ0YsTUFBSyxPQUFPO01BRVosTUFBSyxTQUFTOztDQUdsQixJQUFXLFVBQU87QUFDaEIsU0FBTyxDQUFDLENBQUMsS0FBSzs7Q0FLaEIsWUFBMkIsT0FBMkM7QUFBM0MsT0FBQSxRQUFBO0FBRm5CLE9BQUEsbUJBQTJDO0FBR2pELE9BQUssTUFBTSxnQkFBZ0IsS0FBSzs7Q0FHM0IsbUJBQWdCO0FBQ3JCLE9BQUssU0FBUzs7Ozs7O0NBT1Qsb0JBQW9CLFNBQXNCO0VBQy9DLE1BQU0sb0JBQW9CLEtBQUssTUFBTSxjQUEyQixzQkFBc0I7QUFFdEYsTUFBSSxtQkFBbUI7QUFPckIsT0FBSSxDQUFDLHFCQUFxQixZQUFZLGtCQUFrQixFQUFFO0lBQ3hELE1BQU0saUJBQWlCLEtBQUsseUJBQXlCLGtCQUFrQjtBQUN2RSxvQkFBZ0IsTUFBTSxRQUFRO0FBQzlCLFdBQU8sQ0FBQyxDQUFDOztBQUdYLHFCQUFrQixNQUFNLFFBQVE7QUFDaEMsVUFBTzs7QUFHVCxTQUFPLEtBQUssMEJBQTBCLFFBQVE7Ozs7OztDQU96QywwQkFBMEIsU0FBc0I7RUFDckQsTUFBTSxvQkFBb0IsS0FBSyx5QkFBeUIsS0FBSyxNQUFNO0FBRW5FLE1BQUksa0JBQ0YsbUJBQWtCLE1BQU0sUUFBUTtBQUdsQyxTQUFPLENBQUMsQ0FBQzs7Ozs7O0NBT0oseUJBQXlCLFNBQXNCO0VBQ3BELE1BQU0sb0JBQW9CLEtBQUssd0JBQXdCLEtBQUssTUFBTTtBQUVsRSxNQUFJLGtCQUNGLG1CQUFrQixNQUFNLFFBQVE7QUFHbEMsU0FBTyxDQUFDLENBQUM7O0NBR0gsUUFBSztBQUNYLE9BQUssbUJBQW1CLElBQUksaUJBQWlCO0FBQzdDLE9BQUssTUFBTSxpQkFDVCxZQUNDLFVBQVM7QUFDUixPQUFJLE1BQU0sUUFBUSxNQUNoQjtBQUdGLE9BQUksQ0FBQyxNQUFNLFVBQVU7SUFDbkIsTUFBTSx1QkFBdUIsS0FBSyx3QkFBd0IsS0FBSyxNQUFNO0FBQ3JFLFFBQUksd0JBQXdCLE1BQU0sY0FBYyxDQUFDLFNBQVMscUJBQXFCLEVBQUU7QUFDL0UsVUFBSyx5QkFBeUIsS0FBSyxNQUFNLEVBQUUsT0FBTztBQUNsRCxXQUFNLGdCQUFnQjs7VUFFbkI7SUFDTCxNQUFNLHdCQUF3QixLQUFLLHlCQUF5QixLQUFLLE1BQU07QUFDdkUsUUFBSSx5QkFBeUIsTUFBTSxjQUFjLENBQUMsU0FBUyxzQkFBc0IsRUFBRTtBQUNqRixVQUFLLHdCQUF3QixLQUFLLE1BQU0sRUFBRSxPQUFPO0FBQ2pELFdBQU0sZ0JBQWdCOzs7S0FJNUIsRUFBRSxRQUFRLEtBQUssaUJBQWlCLFFBQVEsQ0FDekM7OztDQUlLLHlCQUF5QixNQUFpQjtBQUNoRCxNQUNFLFNBQVMsS0FBSyxTQUNkLHFCQUFxQixZQUFZLEtBQUssSUFDdEMscUJBQXFCLFdBQVcsS0FBSyxDQUVyQyxRQUFPO0VBR1QsTUFBTSxXQUNKLEtBQUssWUFBWSxhQUNoQixLQUFLLGNBQWMsVUFBVyxLQUF5QixrQkFBa0IsQ0FBQyxTQUFTLElBQy9FLEtBQXlCLGtCQUFrQixHQUM1QyxLQUFLO0FBRVgsT0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLFNBQVMsUUFBUSxLQUFLO0dBQ3hDLE1BQU0sZ0JBQ0osU0FBUyxHQUFHLGFBQWEsU0FBUyxlQUM5QixLQUFLLHlCQUF5QixTQUFTLEdBQWtCLEdBQ3pEO0FBRU4sT0FBSSxjQUNGLFFBQU87O0FBSVgsU0FBTzs7O0NBSUQsd0JBQXdCLE1BQWlCO0VBQy9DLElBQUksU0FBNkI7QUFFakMsTUFDRSxTQUFTLEtBQUssU0FDZCxxQkFBcUIsWUFBWSxLQUFLLElBQ3RDLHFCQUFxQixXQUFXLEtBQUssQ0FFckMsVUFBUztFQUdYLE1BQU0sV0FDSixLQUFLLFlBQVksYUFDaEIsS0FBSyxjQUFjLFVBQVcsS0FBeUIsa0JBQWtCLENBQUMsU0FBUyxJQUMvRSxLQUF5QixrQkFBa0IsR0FDNUMsS0FBSztBQUdYLE9BQUssSUFBSSxJQUFJLFNBQVMsU0FBUyxHQUFHLEtBQUssR0FBRyxLQUFLO0dBQzdDLE1BQU0sZ0JBQ0osU0FBUyxHQUFHLGFBQWEsU0FBUyxlQUM5QixLQUFLLHdCQUF3QixTQUFTLEdBQWtCLEdBQ3hEO0FBRU4sT0FBSSxjQUNGLFFBQU87O0FBSVgsU0FBTzs7Q0FHRCxVQUFPO0FBQ2IsT0FBSyxrQkFBa0IsT0FBTztBQUM5QixPQUFLLG1CQUFtQiJ9
@@ -1,2 +1,2 @@
1
- import { t as SbbHeaderElement } from "../../header.component-CxLTkL_g.js";
1
+ import { t as SbbHeaderElement } from "../../header.component-C9JGj-z6.js";
2
2
  export { SbbHeaderElement };
@@ -1,4 +1,4 @@
1
- import { t as SbbHeaderElement } from "../header.component-CxLTkL_g.js";
1
+ import { t as SbbHeaderElement } from "../header.component-C9JGj-z6.js";
2
2
  //#region src/elements/header/header.ts
3
3
  /** @entrypoint */
4
4
  SbbHeaderElement.define();
@@ -372,7 +372,7 @@ var SbbHeaderElement = (() => {
372
372
  root.querySelectorAll("[sbb-header-scroll-origin]").forEach((e) => this._handleScrollOriginElement(e));
373
373
  }
374
374
  static _handleScrollOriginElement(element) {
375
- if (element.hasAttribute("sbb-header-scroll-origin")) this._headerScrollOrigins.add(element);
375
+ if (element.isConnected && element.hasAttribute("sbb-header-scroll-origin")) this._headerScrollOrigins.add(element);
376
376
  else this._headerScrollOrigins.delete(element);
377
377
  }
378
378
  static _updateHeaderElements() {
@@ -486,4 +486,4 @@ var SbbHeaderElement = (() => {
486
486
  //#endregion
487
487
  export { SbbHeaderElement as t };
488
488
 
489
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC1DeExUa0xfZy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvaGVhZGVyL2hlYWRlci9oZWFkZXIuc2Nzcz9saXQmaW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2hlYWRlci9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLWxvZ28taGVpZ2h0OiAje3NiYi5weC10by1yZW0tYnVpbGQoMTYpfTtcbiAgLS1zYmItc2lnbmV0LWhlaWdodDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDE2KX07XG4gIC0tc2JiLWhlYWRlci10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eClcbiAgKTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgLS1zYmItbG9nby1oZWlnaHQ6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgyMCl9O1xuICAgIC0tc2JiLXNpZ25ldC1oZWlnaHQ6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgyMCl9O1xuICB9XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy8gU2V0dGluZyB0aGUgaGVpZ2h0IGhlcmUgcmVzZXJ2ZXMgdGhlIHNwYWNlIGZvciB0aGUgaGVhZGVyIHdoaWNoIHdpbGwgZWxzZSBiZSBsb3N0IHdpdGggZml4ZWQgcG9zaXRpb24uXG4gIGhlaWdodDogdmFyKC0tc2JiLWhlYWRlci1oZWlnaHQpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIDo6c2xvdHRlZCg6aXMoc2JiLWhlYWRlci1idXR0b24sIHNiYi1oZWFkZXItbGluaykpIHtcbiAgICAtLXNiYi1oZWFkZXItYWN0aW9uLW1pbi1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHMpO1xuICAgIC0tc2JiLWhlYWRlci1hY3Rpb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgfVxufVxuXG46aG9zdChbaGlkZS1vbi1zY3JvbGxdKSB7XG4gIC0tc2JiLWhlYWRlci1wb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbjpob3N0KFtoaWRlLW9uLXNjcm9sbF06c3RhdGUoZml4ZWQpKSB7XG4gIC0tc2JiLWhlYWRlci1wb3NpdGlvbjogZml4ZWQ7XG4gIC0tc2JiLWhlYWRlci1hbmltYXRpb24tbmFtZTogaGlkZTtcbiAgLS1zYmItaGVhZGVyLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAtLXNiYi1oZWFkZXItaW5zZXQtaW5saW5lLWVuZDogdmFyKC0tc2JiLXNjcm9sbGJhci13aWR0aCwgMCk7XG59XG5cbjpob3N0KFtoaWRlLW9uLXNjcm9sbF06c3RhdGUoZml4ZWQpOnN0YXRlKGFuaW1hdGVkKSkge1xuICAvLyBIaWRlIHRyYW5zaXRpb25cbiAgLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tdGltaW5nOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcbn1cblxuOmhvc3QoW2hpZGUtb24tc2Nyb2xsXTpzdGF0ZShmaXhlZCk6c3RhdGUodmlzaWJsZSkpIHtcbiAgLS1zYmItaGVhZGVyLWFuaW1hdGlvbi1uYW1lOiBzaG93O1xuICAtLXNiYi1oZWFkZXItdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblxuICAvLyBTaG93IHRyYW5zaXRpb25cbiAgLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tdGltaW5nOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuOmhvc3QoW2hpZGUtb24tc2Nyb2xsXTpzdGF0ZShmaXhlZCk6c3RhdGUoaGFzLXZpc2libGUtZm9jdXMtd2l0aGluKSkge1xuICAtLXNiYi1oZWFkZXItdHJhbnNpdGlvbi1kdXJhdGlvbjogMDtcbiAgLS1zYmItaGVhZGVyLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zYmItaGVhZGVyIHtcbiAgcG9zaXRpb246IHZhcigtLXNiYi1oZWFkZXItcG9zaXRpb24pO1xuICBpbnNldDogMCB2YXIoLS1zYmItaGVhZGVyLWluc2V0LWlubGluZS1lbmQpIGF1dG8gMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2JiLWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgei1pbmRleDogdmFyKC0tc2JiLWhlYWRlci16LWluZGV4LCAxMCk7XG4gIHRyYW5zZm9ybTogdmFyKC0tc2JiLWhlYWRlci10cmFuc2Zvcm0pO1xuICB0cmFuc2l0aW9uOiB7XG4gICAgcHJvcGVydHk6IGJveC1zaGFkb3c7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1oZWFkZXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tdGltaW5nKTtcbiAgfVxuICBhbmltYXRpb246IHtcbiAgICBuYW1lOiB2YXIoLS1zYmItaGVhZGVyLWFuaW1hdGlvbi1uYW1lKTtcbiAgICBkdXJhdGlvbjogdmFyKC0tc2JiLWhlYWRlci10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1oZWFkZXItdHJhbnNpdGlvbi10aW1pbmcpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzaGFkb3cpLCA6c3RhdGUoaGFzLXZpc2libGUtZm9jdXMtd2l0aGluKTpzdGF0ZShmaXhlZCkpKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItaGVhZGVyLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cbn1cblxuLnNiYi1oZWFkZXJfX3dyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGhlaWdodDogdmFyKC0tc2JiLWhlYWRlci1oZWlnaHQpO1xuXG4gIDpob3N0KDpub3QoW2V4cGFuZGVkXSkpICYge1xuICAgIEBpbmNsdWRlIHNiYi5wYWdlLXNwYWNpbmc7XG4gIH1cblxuICA6aG9zdChbZXhwYW5kZWRdKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIucGFnZS1zcGFjaW5nLWV4cGFuZGVkO1xuICB9XG59XG5cbi8vIEZpeCBsZWZ0IG9mZnNldCBpZiBmaXJzdCBlbGVtZW50IG9mIHRoZSBoZWFkZXIgaXMgYSBzYmItaGVhZGVyLWJ1dHRvbi9zYmItaGVhZGVyLWxpbmsuXG4vLyBUaGUgdmFsdWUgb2YgdGhlIG9mZnNldCBpcyBjYWxjdWxhdGVkIGluc2lkZSBzYmItaGVhZGVyLWJ1dHRvbi9zYmItaGVhZGVyLWxpbmsgc3R5bGVzLlxuOjpzbG90dGVkKDppcyhzYmItaGVhZGVyLWJ1dHRvbiwgc2JiLWhlYWRlci1saW5rKTpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItaGVhZGVyLWZpcnN0LWl0ZW0tbWFyZ2luLWlubGluZS1zdGFydCk7XG59XG5cbjo6c2xvdHRlZCgqKSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG46OnNsb3R0ZWQoLnNiYi1oZWFkZXItc2hyaW5rYWJsZSkge1xuICBmbGV4LXNocmluazogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG46OnNsb3R0ZWQoLnNiYi1oZWFkZXItc3BhY2VyKSB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuOjpzbG90dGVkKC5zYmItaGVhZGVyLWxvZ28pIHtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS1zKTtcbn1cblxuLy8gQXBwbHkgcGFkZGluZyBhbmQgb3V0bGluZSB0byBwb3NzaWJsZSBzbG90dGVkIGxpbmsgaW4gbG9nbyBzbG90XG46OnNsb3R0ZWQoYS5zYmItaGVhZGVyLWxvZ28pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIFVzZSAhaW1wb3J0YW50IGhlcmUgdG8gbm90IGludGVyZmVyZSB3aXRoIEZpcmVmb3ggZm9jdXMgcmluZyBkZWZpbml0aW9uXG4gIC8vIHdoaWNoIGFwcGVhcnMgaW4gbm9ybWFsaXplIENTUyBvZiBzZXZlcmFsIGZyYW1ld29ya3MuXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy8gVG8gc2hvdyB0aGUgY29ycmVjdCBvdXRsaW5lLCB3ZSBuZWVkIHRvIHNwYW4gYSBoaWRkZW4gZWxlbWVudCBmaWxsaW5nIHRoZSBsaW5rIGJ1dCB3aXRob3V0IHRoZSBvdXRsaW5lLW9mZnNldC5cbjo6c2xvdHRlZChhLnNiYi1oZWFkZXItbG9nbyk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtM3gpIDA7XG59XG5cbjo6c2xvdHRlZChhLnNiYi1oZWFkZXItbG9nbzpmb2N1cy12aXNpYmxlKTo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG5cbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcblxuICAvLyBBcyBpZiB0aGUgb3V0bGluZSBoYXMgYW4gb2Zmc2V0LCB0aGUgYm9yZGVyIHJhZGl1cyBpbmNyZWFzZXMsIHdlIHNldCBpdCB0byB0aGUgc21hbGxlc3QgcG9zc2libGUgYm9yZGVyLXJhZGl1cy5cbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuXG5Aa2V5ZnJhbWVzIHNob3cge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaGlkZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkudHMnO1xuaW1wb3J0IHsgU2JiRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIGlkUmVmZXJlbmNlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLnRzJztcbmltcG9ydCB7IGlzTGVhbiwgcXVldWVEb21Db250ZW50TG9hZGVkIH0gZnJvbSAnLi4vLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9oZWFkZXIuc2Nzcz9saXQmaW5saW5lJztcblxuY29uc3QgSVNfTUVOVV9PUEVORURfUVVFUlkgPSBcIlthcmlhLWNvbnRyb2xzXVthcmlhLWV4cGFuZGVkPSd0cnVlJ11cIjtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGhlYWRlciBzZWN0aW9uIGZvciB0aGUgcGFnZS5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBhY3Rpb25zLCBjb250ZW50IGFuZCBsb2dvIHRvIHRoZSBoZWFkZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItaGVhZGVyLXotaW5kZXg9MTBdIC0gQ2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSB6LWluZGV4IG9mIHRoZSBoZWFkZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItaGVhZGVyLWhlaWdodD16ZXJvLXNtYWxsOnZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTE0eCk7bGFyZ2UtdWx0cmE6dmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMjR4KV0gLSBDYW4gYmUgdXNlZCB0byBtb2RpZnkgaGVpZ2h0IG9mIHRoZSBoZWFkZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJIZWFkZXJFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItaGVhZGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgc3R5bGVdO1xuXG4gIHByaXZhdGUgc3RhdGljIF9oZWFkZXJTY3JvbGxPcmlnaW5zID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbiAgcHJpdmF0ZSBzdGF0aWMgX2hlYWRlckVsZW1lbnRzID0gbmV3IFNldDxTYmJIZWFkZXJFbGVtZW50PigpO1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplU2Nyb2xsT3JpZ2luT2JzZXJ2ZXIoKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIGhlYWRlciBjb250ZW50IHRvIHN0cmV0Y2ggdG8gZnVsbCB3aWR0aC5cbiAgICogQnkgZGVmYXVsdCwgdGhlIGNvbnRlbnQgaGFzIHRoZSBhcHByb3ByaWF0ZSBwYWdlIHNpemUuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQncyBpZCBvciB0aGUgZWxlbWVudCBvbiB3aGljaCB0aGUgc2Nyb2xsIGxpc3RlbmVyIGlzIGF0dGFjaGVkLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3Njcm9sbC1vcmlnaW4nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzY3JvbGxPcmlnaW46IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGhlYWRlciBzaG91bGQgaGlkZSBhbmQgc2hvdyBvbiBzY3JvbGwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLW9uLXNjcm9sbCcsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGVPblNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBoZWFkZXIsIGVpdGhlciBtIG9yIHMuXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdtJyB8ICdzJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2hlYWRlck9uVG9wID0gdHJ1ZTtcblxuICBwcml2YXRlIF9zY3JvbGxFbGVtZW50OiBIVE1MRWxlbWVudCB8IERvY3VtZW50IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfc2Nyb2xsRXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfc2Nyb2xsRnVuY3Rpb246ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfbGFzdFNjcm9sbCA9IDA7XG4gIHByaXZhdGUgX3Njcm9sbE9yaWdpbkZyb21PYnNlcnZlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIobmV3IFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIodGhpcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luaXRpYWxpemVTY3JvbGxPcmlnaW5PYnNlcnZlcigpOiB2b2lkIHtcbiAgICAvLyBXZSBhcmUgdXNpbmcgTXV0YXRpb25PYnNlcnZlciBkaXJlY3RseSBoZXJlLCBhcyBpdCB3aWxsIG9ubHkgYmUgY2FsbGVkIG9uIGNsaWVudCBzaWRlLFxuICAgIC8vIGFuZCB3ZSBkbyBub3QgbmVlZCB0byBkaXNjb25uZWN0IGl0LCBhcyB3ZSB3YW50IGl0IHRvIHdvcmsgZHVyaW5nIHRoZSBmdWxsIGxpZmV0aW1lXG4gICAgLy8gb2YgdGhlIHBhZ2UuXG4gICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnMpIHtcbiAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJykge1xuICAgICAgICAgIHRoaXMuX2hhbmRsZVNjcm9sbE9yaWdpbkVsZW1lbnQobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0Jykge1xuICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBbLi4ubXV0YXRpb24uYWRkZWROb2RlcywgLi4ubXV0YXRpb24ucmVtb3ZlZE5vZGVzXS5maWx0ZXIoXG4gICAgICAgICAgICAobik6IG4gaXMgSFRNTEVsZW1lbnQgPT4gbi5ub2RlVHlwZSA9PT0gbi5FTEVNRU5UX05PREUsXG4gICAgICAgICAgKSkge1xuICAgICAgICAgICAgdGhpcy5faGFuZGxlU2Nyb2xsT3JpZ2luRWxlbWVudChub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVTY3JvbGxPcmlnaW5zKG5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5fdXBkYXRlSGVhZGVyRWxlbWVudHMoKTtcbiAgICB9KS5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ3NiYi1oZWFkZXItc2Nyb2xsLW9yaWdpbiddLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlU2Nyb2xsT3JpZ2lucyhkb2N1bWVudC5ib2R5KTtcbiAgICB0aGlzLl91cGRhdGVIZWFkZXJFbGVtZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVTY3JvbGxPcmlnaW5zKHJvb3Q6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgcm9vdFxuICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCdbc2JiLWhlYWRlci1zY3JvbGwtb3JpZ2luXScpXG4gICAgICAuZm9yRWFjaCgoZSkgPT4gdGhpcy5faGFuZGxlU2Nyb2xsT3JpZ2luRWxlbWVudChlKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfaGFuZGxlU2Nyb2xsT3JpZ2luRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLWhlYWRlci1zY3JvbGwtb3JpZ2luJykpIHtcbiAgICAgIHRoaXMuX2hlYWRlclNjcm9sbE9yaWdpbnMuYWRkKGVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9oZWFkZXJTY3JvbGxPcmlnaW5zLmRlbGV0ZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfdXBkYXRlSGVhZGVyRWxlbWVudHMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBoZWFkZXIgb2YgdGhpcy5faGVhZGVyRWxlbWVudHMpIHtcbiAgICAgIGlmICh0aGlzLl9oZWFkZXJTY3JvbGxPcmlnaW5zLnNpemUgPT09IDApIHtcbiAgICAgICAgaGVhZGVyLl9zY3JvbGxPcmlnaW5Gcm9tT2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9oZWFkZXJTY3JvbGxPcmlnaW5zLnNpemUgPT09IDEpIHtcbiAgICAgICAgaGVhZGVyLl9zY3JvbGxPcmlnaW5Gcm9tT2JzZXJ2ZXIgPSB0aGlzLl9oZWFkZXJTY3JvbGxPcmlnaW5zLnZhbHVlcygpLm5leHQoKS52YWx1ZSA/PyBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGVhZGVyLl9zY3JvbGxPcmlnaW5Gcm9tT2JzZXJ2ZXIgPVxuICAgICAgICAgIEFycmF5LmZyb20odGhpcy5faGVhZGVyU2Nyb2xsT3JpZ2lucylcbiAgICAgICAgICAgIC5zb3J0KChjMSwgYzIpID0+IGMxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGMyKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlMpXG4gICAgICAgICAgICAuYXQoLTEpID8/IG51bGw7XG4gICAgICB9XG4gICAgICBoZWFkZXIuX3VwZGF0ZVNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIElmIGBoaWRlT25TY3JvbGxgIGlzIHNldCwgY2hlY2tzIHRoZSBlbGVtZW50IHRvIGhvb2sgdGhlIGxpc3RlbmVyIG9uLCBhbmQgcG9zc2libHkgYWRkIGl0LiovXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIFNiYkhlYWRlckVsZW1lbnQuX2hlYWRlckVsZW1lbnRzLmFkZCh0aGlzKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl91cGRhdGVTY3JvbGxMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZW1vdmVzIHRoZSBzY3JvbGwgbGlzdGVuZXIsIGlmIHByZXZpb3VzbHkgYXR0YWNoZWQuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgU2JiSGVhZGVyRWxlbWVudC5faGVhZGVyRWxlbWVudHMuZGVsZXRlKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICghbmFtZSB8fCBuYW1lID09PSAnc2Nyb2xsT3JpZ2luJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl91cGRhdGVTY3JvbGxMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl91cGRhdGVTY3JvbGxMaXN0ZW5lcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2Nyb2xsTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsT3JpZ2luID8/IHRoaXMuX3Njcm9sbE9yaWdpbkZyb21PYnNlcnZlciA/PyBkb2N1bWVudDtcbiAgICBpZiAoc2Nyb2xsRWxlbWVudCA9PT0gdGhpcy5fc2Nyb2xsRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fc2Nyb2xsRWxlbWVudCA9IHNjcm9sbEVsZW1lbnQ7XG4gICAgaWYgKCF0aGlzLl9zY3JvbGxFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fc2Nyb2xsRnVuY3Rpb24gPSB0aGlzLl9nZXRTY3JvbGxGdW5jdGlvbi5iaW5kKHRoaXMpO1xuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5fc2Nyb2xsRnVuY3Rpb24sIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY3VycmVudFNjcm9sbCA9IHRoaXMuX2dldEN1cnJlbnRTY3JvbGxQcm9wZXJ0eSgnc2Nyb2xsVG9wJyk7XG4gICAgLy8gYGN1cnJlbnRTY3JvbGxgIGNhbiBiZSBuZWdhdGl2ZSwgZS5nLiBvbiBtb2JpbGU7IHRoaXMgaXMgbm90IGFsbG93ZWQuXG4gICAgdGhpcy5fbGFzdFNjcm9sbCA9IGN1cnJlbnRTY3JvbGwgPD0gMCA/IDAgOiBjdXJyZW50U2Nyb2xsO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGNvcnJlY3QgZnVuY3Rpb24gdG8gYXR0YWNoIG9uIHNjcm9sbC4gKi9cbiAgcHJpdmF0ZSBfZ2V0U2Nyb2xsRnVuY3Rpb24oKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaGlkZU9uU2Nyb2xsID8gdGhpcy5fc2Nyb2xsTGlzdGVuZXIoKSA6IHRoaXMuX3Njcm9sbFNoYWRvd0xpc3RlbmVyKCk7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgcmVxdWVzdGVkIHByb3BlcnR5IG9mIHRoZSBzY3JvbGxDb250ZXh0LiAqL1xuICBwcml2YXRlIF9nZXRDdXJyZW50U2Nyb2xsUHJvcGVydHkocHJvcGVydHk6ICdzY3JvbGxUb3AnIHwgJ3Njcm9sbEhlaWdodCcpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLl9zY3JvbGxFbGVtZW50IGluc3RhbmNlb2YgRG9jdW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50LmRvY3VtZW50RWxlbWVudFtwcm9wZXJ0eV0gfHwgdGhpcy5fc2Nyb2xsRWxlbWVudC5ib2R5W3Byb3BlcnR5XTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ/Lltwcm9wZXJ0eV0gfHwgMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBgc2Nyb2xsVG9wYCwgdGhlbjpcbiAgICogLSBhcHBseSB0aGUgc2hhZG93IGlmIHRoZSBlbGVtZW50L2RvY3VtZW50IGhhcyBiZWVuIHNjcm9sbGVkIGRvd247XG4gICAqIC0gaGlkZXMgdGhlIGhlYWRlciwgcmVtb3ZlIHRoZSBzaGFkb3cgYW5kIHBvc3NpYmx5IGNsb3NlIGFueSBvcGVuIG1lbnUgb24gdGhlIGhlYWRlciBpZiBpdCBpcyBub3QgdmlzaWJsZSBhbnltb3JlO1xuICAgKiAtIHNob3dzIHRoZSBoZWFkZXIgYW5kIHJlLWFwcGx5IHRoZSBzaGFkb3cgaWYgdGhlIGVsZW1lbnQvZG9jdW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQgdXAuXG4gICAqL1xuICBwcml2YXRlIF9zY3JvbGxMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gdGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxUb3AnKTtcblxuICAgIC8vIFdoZXRoZXIgdGhlIHNjcm9sbCB2aWV3IGlzIGJvdW5jaW5nIHBhc3QgdGhlIGVkZ2Ugb2YgY29udGVudCBhbmQgYmFjayBhZ2Fpbi5cbiAgICBpZiAodGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxIZWlnaHQnKSAtIHdpbmRvdy5pbm5lckhlaWdodCAtIGN1cnJlbnRTY3JvbGwgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ3NoYWRvdycsIGN1cnJlbnRTY3JvbGwgIT09IDApO1xuXG4gICAgLy8gQ2xvc2Ugb3BlbiBvdmVybGF5cyB3aGVuIHNjcm9sbGluZyBkb3duIGlmIHRoZSBoZWFkZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHNpZ2h0LlxuICAgIGlmIChcbiAgICAgIGN1cnJlbnRTY3JvbGwgPiB0aGlzLm9mZnNldEhlaWdodCAmJlxuICAgICAgY3VycmVudFNjcm9sbCA+IDAgJiZcbiAgICAgIHRoaXMuX2xhc3RTY3JvbGwgPCBjdXJyZW50U2Nyb2xsXG4gICAgKSB7XG4gICAgICB0aGlzLl9jbG9zZU9wZW5PdmVybGF5cygpO1xuICAgIH1cbiAgICAvLyBDaGVjayBpZiB0aGUgaGVhZGVyIGlzIHNjcm9sbGVkIG91dCBvZiBzaWdodCwgc2Nyb2xsIHBvc2l0aW9uID4gaGVhZGVyIGhlaWdodCAqIDIuXG4gICAgaWYgKGN1cnJlbnRTY3JvbGwgPiB0aGlzLm9mZnNldEhlaWdodCAqIDIpIHtcbiAgICAgIHRoaXMuX2hlYWRlck9uVG9wID0gZmFsc2U7XG4gICAgICBpZiAoY3VycmVudFNjcm9sbCA+IDAgJiYgdGhpcy5fbGFzdFNjcm9sbCA8IGN1cnJlbnRTY3JvbGwpIHtcbiAgICAgICAgLy8gU2Nyb2xsaW5nIGRvd25cbiAgICAgICAgWydzaGFkb3cnLCAndmlzaWJsZSddLmZvckVhY2goKG5hbWUpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUobmFtZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2Nyb2xsaW5nIHVwXG4gICAgICAgIFsnZml4ZWQnLCAnc2hhZG93JywgJ2FuaW1hdGVkJywgJ3Zpc2libGUnXS5mb3JFYWNoKChuYW1lKSA9PlxuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQobmFtZSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENoZWNrIGlmIGhlYWRlciBpbiBpdHMgb3JpZ2luYWwgcG9zaXRpb24sIHNjcm9sbCBwb3NpdGlvbiA8IGhlYWRlciBoZWlnaHQuXG4gICAgICAvLyBSZXNldCBoZWFkZXIgYmVoYXZpb3Igd2hlbiBzY3JvbGwgaGl0cyB0b3Agb2YgdGhlIHBhZ2UsIG9uIHNjcm9sbCBwb3NpdGlvbiA9IDAuXG4gICAgICBpZiAoY3VycmVudFNjcm9sbCA9PT0gMCkge1xuICAgICAgICB0aGlzLl9oZWFkZXJPblRvcCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5faGVhZGVyT25Ub3ApIHtcbiAgICAgICAgWydzaGFkb3cnLCAnYW5pbWF0ZWQnLCAnZml4ZWQnLCAndmlzaWJsZSddLmZvckVhY2goKG5hbWUpID0+XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShuYW1lKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gYGN1cnJlbnRTY3JvbGxgIGNhbiBiZSBuZWdhdGl2ZSwgZS5nLiBvbiBtb2JpbGU7IHRoaXMgaXMgbm90IGFsbG93ZWQuXG4gICAgdGhpcy5fbGFzdFNjcm9sbCA9IGN1cnJlbnRTY3JvbGwgPD0gMCA/IDAgOiBjdXJyZW50U2Nyb2xsO1xuICB9XG5cbiAgLyoqIEFwcGx5IHRoZSBzaGFkb3cgaWYgdGhlIGVsZW1lbnQvZG9jdW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQgZG93bi4gKi9cbiAgcHJpdmF0ZSBfc2Nyb2xsU2hhZG93TGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnc2hhZG93JywgdGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxUb3AnKSAhPT0gMCk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU9wZW5PdmVybGF5cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXRjaGVzKCc6c3RhdGUoaGFzLXZpc2libGUtZm9jdXMtd2l0aGluKScpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG92ZXJsYXlUcmlnZ2VyczogSFRNTEVsZW1lbnRbXSA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoSVNfTUVOVV9PUEVORURfUVVFUlkpIGFzIE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+LFxuICAgICk7XG4gICAgZm9yIChjb25zdCBvdmVybGF5VHJpZ2dlciBvZiBvdmVybGF5VHJpZ2dlcnMpIHtcbiAgICAgIGNvbnN0IG92ZXJsYXlJZDogc3RyaW5nID0gb3ZlcmxheVRyaWdnZXIuZ2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJykhO1xuICAgICAgY29uc3Qgb3ZlcmxheSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG92ZXJsYXlJZCkgYXMgSFRNTEVsZW1lbnQgJiB7IGNsb3NlOiAoKSA9PiB2b2lkIH07XG4gICAgICBpZiAodHlwZW9mIG92ZXJsYXk/LmNsb3NlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG92ZXJsYXkuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJzYmItaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItaGVhZGVyX193cmFwcGVyXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaGVhZGVyPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1oZWFkZXInOiBTYmJIZWFkZXJFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDa0JBLElBQU0sdUJBQXVCOzs7Ozs7OztJQVNoQiwwQkFBZ0I7bUJBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Y0FBekIseUJBQXlCLFlBQVU7OzsyQkFtQjdDLFdBQVcsRUFDWCxTQUFTO0lBQUUsU0FBUztJQUFNLE1BQU07SUFBUyxDQUFDLENBQUE7K0JBUTFDLGFBQWEsRUFDYixTQUFTLEVBQUUsV0FBVyxpQkFBaUIsQ0FBQyxDQUFBOytCQUl4QyxXQUFXLEVBQ1gsU0FBUztJQUFF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
489
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC1DOUpHai16Ni5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvaGVhZGVyL2hlYWRlci9oZWFkZXIuc2Nzcz9saXQmaW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2hlYWRlci9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLWxvZ28taGVpZ2h0OiAje3NiYi5weC10by1yZW0tYnVpbGQoMTYpfTtcbiAgLS1zYmItc2lnbmV0LWhlaWdodDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDE2KX07XG4gIC0tc2JiLWhlYWRlci10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eClcbiAgKTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgLS1zYmItbG9nby1oZWlnaHQ6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgyMCl9O1xuICAgIC0tc2JiLXNpZ25ldC1oZWlnaHQ6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgyMCl9O1xuICB9XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy8gU2V0dGluZyB0aGUgaGVpZ2h0IGhlcmUgcmVzZXJ2ZXMgdGhlIHNwYWNlIGZvciB0aGUgaGVhZGVyIHdoaWNoIHdpbGwgZWxzZSBiZSBsb3N0IHdpdGggZml4ZWQgcG9zaXRpb24uXG4gIGhlaWdodDogdmFyKC0tc2JiLWhlYWRlci1oZWlnaHQpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIDo6c2xvdHRlZCg6aXMoc2JiLWhlYWRlci1idXR0b24sIHNiYi1oZWFkZXItbGluaykpIHtcbiAgICAtLXNiYi1oZWFkZXItYWN0aW9uLW1pbi1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHMpO1xuICAgIC0tc2JiLWhlYWRlci1hY3Rpb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgfVxufVxuXG46aG9zdChbaGlkZS1vbi1zY3JvbGxdKSB7XG4gIC0tc2JiLWhlYWRlci1wb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbjpob3N0KFtoaWRlLW9uLXNjcm9sbF06c3RhdGUoZml4ZWQpKSB7XG4gIC0tc2JiLWhlYWRlci1wb3NpdGlvbjogZml4ZWQ7XG4gIC0tc2JiLWhlYWRlci1hbmltYXRpb24tbmFtZTogaGlkZTtcbiAgLS1zYmItaGVhZGVyLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAtLXNiYi1oZWFkZXItaW5zZXQtaW5saW5lLWVuZDogdmFyKC0tc2JiLXNjcm9sbGJhci13aWR0aCwgMCk7XG59XG5cbjpob3N0KFtoaWRlLW9uLXNjcm9sbF06c3RhdGUoZml4ZWQpOnN0YXRlKGFuaW1hdGVkKSkge1xuICAvLyBIaWRlIHRyYW5zaXRpb25cbiAgLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tdGltaW5nOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcbn1cblxuOmhvc3QoW2hpZGUtb24tc2Nyb2xsXTpzdGF0ZShmaXhlZCk6c3RhdGUodmlzaWJsZSkpIHtcbiAgLS1zYmItaGVhZGVyLWFuaW1hdGlvbi1uYW1lOiBzaG93O1xuICAtLXNiYi1oZWFkZXItdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblxuICAvLyBTaG93IHRyYW5zaXRpb25cbiAgLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tdGltaW5nOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuOmhvc3QoW2hpZGUtb24tc2Nyb2xsXTpzdGF0ZShmaXhlZCk6c3RhdGUoaGFzLXZpc2libGUtZm9jdXMtd2l0aGluKSkge1xuICAtLXNiYi1oZWFkZXItdHJhbnNpdGlvbi1kdXJhdGlvbjogMDtcbiAgLS1zYmItaGVhZGVyLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zYmItaGVhZGVyIHtcbiAgcG9zaXRpb246IHZhcigtLXNiYi1oZWFkZXItcG9zaXRpb24pO1xuICBpbnNldDogMCB2YXIoLS1zYmItaGVhZGVyLWluc2V0LWlubGluZS1lbmQpIGF1dG8gMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2JiLWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgei1pbmRleDogdmFyKC0tc2JiLWhlYWRlci16LWluZGV4LCAxMCk7XG4gIHRyYW5zZm9ybTogdmFyKC0tc2JiLWhlYWRlci10cmFuc2Zvcm0pO1xuICB0cmFuc2l0aW9uOiB7XG4gICAgcHJvcGVydHk6IGJveC1zaGFkb3c7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1oZWFkZXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tdGltaW5nKTtcbiAgfVxuICBhbmltYXRpb246IHtcbiAgICBuYW1lOiB2YXIoLS1zYmItaGVhZGVyLWFuaW1hdGlvbi1uYW1lKTtcbiAgICBkdXJhdGlvbjogdmFyKC0tc2JiLWhlYWRlci10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1oZWFkZXItdHJhbnNpdGlvbi10aW1pbmcpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzaGFkb3cpLCA6c3RhdGUoaGFzLXZpc2libGUtZm9jdXMtd2l0aGluKTpzdGF0ZShmaXhlZCkpKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItaGVhZGVyLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cbn1cblxuLnNiYi1oZWFkZXJfX3dyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGhlaWdodDogdmFyKC0tc2JiLWhlYWRlci1oZWlnaHQpO1xuXG4gIDpob3N0KDpub3QoW2V4cGFuZGVkXSkpICYge1xuICAgIEBpbmNsdWRlIHNiYi5wYWdlLXNwYWNpbmc7XG4gIH1cblxuICA6aG9zdChbZXhwYW5kZWRdKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIucGFnZS1zcGFjaW5nLWV4cGFuZGVkO1xuICB9XG59XG5cbi8vIEZpeCBsZWZ0IG9mZnNldCBpZiBmaXJzdCBlbGVtZW50IG9mIHRoZSBoZWFkZXIgaXMgYSBzYmItaGVhZGVyLWJ1dHRvbi9zYmItaGVhZGVyLWxpbmsuXG4vLyBUaGUgdmFsdWUgb2YgdGhlIG9mZnNldCBpcyBjYWxjdWxhdGVkIGluc2lkZSBzYmItaGVhZGVyLWJ1dHRvbi9zYmItaGVhZGVyLWxpbmsgc3R5bGVzLlxuOjpzbG90dGVkKDppcyhzYmItaGVhZGVyLWJ1dHRvbiwgc2JiLWhlYWRlci1saW5rKTpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItaGVhZGVyLWZpcnN0LWl0ZW0tbWFyZ2luLWlubGluZS1zdGFydCk7XG59XG5cbjo6c2xvdHRlZCgqKSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG46OnNsb3R0ZWQoLnNiYi1oZWFkZXItc2hyaW5rYWJsZSkge1xuICBmbGV4LXNocmluazogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG46OnNsb3R0ZWQoLnNiYi1oZWFkZXItc3BhY2VyKSB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuOjpzbG90dGVkKC5zYmItaGVhZGVyLWxvZ28pIHtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS1zKTtcbn1cblxuLy8gQXBwbHkgcGFkZGluZyBhbmQgb3V0bGluZSB0byBwb3NzaWJsZSBzbG90dGVkIGxpbmsgaW4gbG9nbyBzbG90XG46OnNsb3R0ZWQoYS5zYmItaGVhZGVyLWxvZ28pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIFVzZSAhaW1wb3J0YW50IGhlcmUgdG8gbm90IGludGVyZmVyZSB3aXRoIEZpcmVmb3ggZm9jdXMgcmluZyBkZWZpbml0aW9uXG4gIC8vIHdoaWNoIGFwcGVhcnMgaW4gbm9ybWFsaXplIENTUyBvZiBzZXZlcmFsIGZyYW1ld29ya3MuXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy8gVG8gc2hvdyB0aGUgY29ycmVjdCBvdXRsaW5lLCB3ZSBuZWVkIHRvIHNwYW4gYSBoaWRkZW4gZWxlbWVudCBmaWxsaW5nIHRoZSBsaW5rIGJ1dCB3aXRob3V0IHRoZSBvdXRsaW5lLW9mZnNldC5cbjo6c2xvdHRlZChhLnNiYi1oZWFkZXItbG9nbyk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtM3gpIDA7XG59XG5cbjo6c2xvdHRlZChhLnNiYi1oZWFkZXItbG9nbzpmb2N1cy12aXNpYmxlKTo6YmVmb3JlIHtcbiAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG5cbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcblxuICAvLyBBcyBpZiB0aGUgb3V0bGluZSBoYXMgYW4gb2Zmc2V0LCB0aGUgYm9yZGVyIHJhZGl1cyBpbmNyZWFzZXMsIHdlIHNldCBpdCB0byB0aGUgc21hbGxlc3QgcG9zc2libGUgYm9yZGVyLXJhZGl1cy5cbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuXG5Aa2V5ZnJhbWVzIHNob3cge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaGlkZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkudHMnO1xuaW1wb3J0IHsgU2JiRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIGlkUmVmZXJlbmNlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLnRzJztcbmltcG9ydCB7IGlzTGVhbiwgcXVldWVEb21Db250ZW50TG9hZGVkIH0gZnJvbSAnLi4vLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9oZWFkZXIuc2Nzcz9saXQmaW5saW5lJztcblxuY29uc3QgSVNfTUVOVV9PUEVORURfUVVFUlkgPSBcIlthcmlhLWNvbnRyb2xzXVthcmlhLWV4cGFuZGVkPSd0cnVlJ11cIjtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGhlYWRlciBzZWN0aW9uIGZvciB0aGUgcGFnZS5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBhY3Rpb25zLCBjb250ZW50IGFuZCBsb2dvIHRvIHRoZSBoZWFkZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItaGVhZGVyLXotaW5kZXg9MTBdIC0gQ2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSB6LWluZGV4IG9mIHRoZSBoZWFkZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItaGVhZGVyLWhlaWdodD16ZXJvLXNtYWxsOnZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTE0eCk7bGFyZ2UtdWx0cmE6dmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMjR4KV0gLSBDYW4gYmUgdXNlZCB0byBtb2RpZnkgaGVpZ2h0IG9mIHRoZSBoZWFkZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJIZWFkZXJFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItaGVhZGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgc3R5bGVdO1xuXG4gIHByaXZhdGUgc3RhdGljIF9oZWFkZXJTY3JvbGxPcmlnaW5zID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbiAgcHJpdmF0ZSBzdGF0aWMgX2hlYWRlckVsZW1lbnRzID0gbmV3IFNldDxTYmJIZWFkZXJFbGVtZW50PigpO1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplU2Nyb2xsT3JpZ2luT2JzZXJ2ZXIoKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIGhlYWRlciBjb250ZW50IHRvIHN0cmV0Y2ggdG8gZnVsbCB3aWR0aC5cbiAgICogQnkgZGVmYXVsdCwgdGhlIGNvbnRlbnQgaGFzIHRoZSBhcHByb3ByaWF0ZSBwYWdlIHNpemUuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQncyBpZCBvciB0aGUgZWxlbWVudCBvbiB3aGljaCB0aGUgc2Nyb2xsIGxpc3RlbmVyIGlzIGF0dGFjaGVkLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3Njcm9sbC1vcmlnaW4nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzY3JvbGxPcmlnaW46IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGhlYWRlciBzaG91bGQgaGlkZSBhbmQgc2hvdyBvbiBzY3JvbGwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLW9uLXNjcm9sbCcsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGVPblNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBoZWFkZXIsIGVpdGhlciBtIG9yIHMuXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdtJyB8ICdzJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2hlYWRlck9uVG9wID0gdHJ1ZTtcblxuICBwcml2YXRlIF9zY3JvbGxFbGVtZW50OiBIVE1MRWxlbWVudCB8IERvY3VtZW50IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfc2Nyb2xsRXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfc2Nyb2xsRnVuY3Rpb246ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfbGFzdFNjcm9sbCA9IDA7XG4gIHByaXZhdGUgX3Njcm9sbE9yaWdpbkZyb21PYnNlcnZlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIobmV3IFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIodGhpcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luaXRpYWxpemVTY3JvbGxPcmlnaW5PYnNlcnZlcigpOiB2b2lkIHtcbiAgICAvLyBXZSBhcmUgdXNpbmcgTXV0YXRpb25PYnNlcnZlciBkaXJlY3RseSBoZXJlLCBhcyBpdCB3aWxsIG9ubHkgYmUgY2FsbGVkIG9uIGNsaWVudCBzaWRlLFxuICAgIC8vIGFuZCB3ZSBkbyBub3QgbmVlZCB0byBkaXNjb25uZWN0IGl0LCBhcyB3ZSB3YW50IGl0IHRvIHdvcmsgZHVyaW5nIHRoZSBmdWxsIGxpZmV0aW1lXG4gICAgLy8gb2YgdGhlIHBhZ2UuXG4gICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnMpIHtcbiAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJykge1xuICAgICAgICAgIHRoaXMuX2hhbmRsZVNjcm9sbE9yaWdpbkVsZW1lbnQobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0Jykge1xuICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBbLi4ubXV0YXRpb24uYWRkZWROb2RlcywgLi4ubXV0YXRpb24ucmVtb3ZlZE5vZGVzXS5maWx0ZXIoXG4gICAgICAgICAgICAobik6IG4gaXMgSFRNTEVsZW1lbnQgPT4gbi5ub2RlVHlwZSA9PT0gbi5FTEVNRU5UX05PREUsXG4gICAgICAgICAgKSkge1xuICAgICAgICAgICAgdGhpcy5faGFuZGxlU2Nyb2xsT3JpZ2luRWxlbWVudChub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVTY3JvbGxPcmlnaW5zKG5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5fdXBkYXRlSGVhZGVyRWxlbWVudHMoKTtcbiAgICB9KS5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ3NiYi1oZWFkZXItc2Nyb2xsLW9yaWdpbiddLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlU2Nyb2xsT3JpZ2lucyhkb2N1bWVudC5ib2R5KTtcbiAgICB0aGlzLl91cGRhdGVIZWFkZXJFbGVtZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVTY3JvbGxPcmlnaW5zKHJvb3Q6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgcm9vdFxuICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCdbc2JiLWhlYWRlci1zY3JvbGwtb3JpZ2luXScpXG4gICAgICAuZm9yRWFjaCgoZSkgPT4gdGhpcy5faGFuZGxlU2Nyb2xsT3JpZ2luRWxlbWVudChlKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfaGFuZGxlU2Nyb2xsT3JpZ2luRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChlbGVtZW50LmlzQ29ubmVjdGVkICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItaGVhZGVyLXNjcm9sbC1vcmlnaW4nKSkge1xuICAgICAgdGhpcy5faGVhZGVyU2Nyb2xsT3JpZ2lucy5hZGQoZWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2hlYWRlclNjcm9sbE9yaWdpbnMuZGVsZXRlKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF91cGRhdGVIZWFkZXJFbGVtZW50cygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGhlYWRlciBvZiB0aGlzLl9oZWFkZXJFbGVtZW50cykge1xuICAgICAgaWYgKHRoaXMuX2hlYWRlclNjcm9sbE9yaWdpbnMuc2l6ZSA9PT0gMCkge1xuICAgICAgICBoZWFkZXIuX3Njcm9sbE9yaWdpbkZyb21PYnNlcnZlciA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2hlYWRlclNjcm9sbE9yaWdpbnMuc2l6ZSA9PT0gMSkge1xuICAgICAgICBoZWFkZXIuX3Njcm9sbE9yaWdpbkZyb21PYnNlcnZlciA9IHRoaXMuX2hlYWRlclNjcm9sbE9yaWdpbnMudmFsdWVzKCkubmV4dCgpLnZhbHVlID8/IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXIuX3Njcm9sbE9yaWdpbkZyb21PYnNlcnZlciA9XG4gICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLl9oZWFkZXJTY3JvbGxPcmlnaW5zKVxuICAgICAgICAgICAgLnNvcnQoKGMxLCBjMikgPT4gYzEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYzIpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlOUylcbiAgICAgICAgICAgIC5hdCgtMSkgPz8gbnVsbDtcbiAgICAgIH1cbiAgICAgIGhlYWRlci5fdXBkYXRlU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKiogSWYgYGhpZGVPblNjcm9sbGAgaXMgc2V0LCBjaGVja3MgdGhlIGVsZW1lbnQgdG8gaG9vayB0aGUgbGlzdGVuZXIgb24sIGFuZCBwb3NzaWJseSBhZGQgaXQuKi9cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgU2JiSGVhZGVyRWxlbWVudC5faGVhZGVyRWxlbWVudHMuYWRkKHRoaXMpO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlbW92ZXMgdGhlIHNjcm9sbCBsaXN0ZW5lciwgaWYgcHJldmlvdXNseSBhdHRhY2hlZC4gKi9cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fc2Nyb2xsRWxlbWVudCA9IG51bGw7XG4gICAgdGhpcy5fc2Nyb2xsRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICBTYmJIZWFkZXJFbGVtZW50Ll9oZWFkZXJFbGVtZW50cy5kZWxldGUodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICdzY3JvbGxPcmlnaW4nKSAmJiB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX3VwZGF0ZVNjcm9sbExpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTY3JvbGxMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gdGhpcy5zY3JvbGxPcmlnaW4gPz8gdGhpcy5fc2Nyb2xsT3JpZ2luRnJvbU9ic2VydmVyID8/IGRvY3VtZW50O1xuICAgIGlmIChzY3JvbGxFbGVtZW50ID09PSB0aGlzLl9zY3JvbGxFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc2Nyb2xsRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9zY3JvbGxFbGVtZW50ID0gc2Nyb2xsRWxlbWVudDtcbiAgICBpZiAoIXRoaXMuX3Njcm9sbEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2Nyb2xsRXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9zY3JvbGxGdW5jdGlvbiA9IHRoaXMuX2dldFNjcm9sbEZ1bmN0aW9uLmJpbmQodGhpcyk7XG4gICAgdGhpcy5fc2Nyb2xsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLl9zY3JvbGxGdW5jdGlvbiwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fc2Nyb2xsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gdGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxUb3AnKTtcbiAgICAvLyBgY3VycmVudFNjcm9sbGAgY2FuIGJlIG5lZ2F0aXZlLCBlLmcuIG9uIG1vYmlsZTsgdGhpcyBpcyBub3QgYWxsb3dlZC5cbiAgICB0aGlzLl9sYXN0U2Nyb2xsID0gY3VycmVudFNjcm9sbCA8PSAwID8gMCA6IGN1cnJlbnRTY3JvbGw7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgY29ycmVjdCBmdW5jdGlvbiB0byBhdHRhY2ggb24gc2Nyb2xsLiAqL1xuICBwcml2YXRlIF9nZXRTY3JvbGxGdW5jdGlvbigpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5oaWRlT25TY3JvbGwgPyB0aGlzLl9zY3JvbGxMaXN0ZW5lcigpIDogdGhpcy5fc2Nyb2xsU2hhZG93TGlzdGVuZXIoKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgcHJvcGVydHkgb2YgdGhlIHNjcm9sbENvbnRleHQuICovXG4gIHByaXZhdGUgX2dldEN1cnJlbnRTY3JvbGxQcm9wZXJ0eShwcm9wZXJ0eTogJ3Njcm9sbFRvcCcgfCAnc2Nyb2xsSGVpZ2h0Jyk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuX3Njcm9sbEVsZW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQuZG9jdW1lbnRFbGVtZW50W3Byb3BlcnR5XSB8fCB0aGlzLl9zY3JvbGxFbGVtZW50LmJvZHlbcHJvcGVydHldO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc2Nyb2xsRWxlbWVudD8uW3Byb3BlcnR5XSB8fCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvcnJlY3QgdmFsdWUgZm9yIGBzY3JvbGxUb3BgLCB0aGVuOlxuICAgKiAtIGFwcGx5IHRoZSBzaGFkb3cgaWYgdGhlIGVsZW1lbnQvZG9jdW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQgZG93bjtcbiAgICogLSBoaWRlcyB0aGUgaGVhZGVyLCByZW1vdmUgdGhlIHNoYWRvdyBhbmQgcG9zc2libHkgY2xvc2UgYW55IG9wZW4gbWVudSBvbiB0aGUgaGVhZGVyIGlmIGl0IGlzIG5vdCB2aXNpYmxlIGFueW1vcmU7XG4gICAqIC0gc2hvd3MgdGhlIGhlYWRlciBhbmQgcmUtYXBwbHkgdGhlIHNoYWRvdyBpZiB0aGUgZWxlbWVudC9kb2N1bWVudCBoYXMgYmVlbiBzY3JvbGxlZCB1cC5cbiAgICovXG4gIHByaXZhdGUgX3Njcm9sbExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSB0aGlzLl9nZXRDdXJyZW50U2Nyb2xsUHJvcGVydHkoJ3Njcm9sbFRvcCcpO1xuXG4gICAgLy8gV2hldGhlciB0aGUgc2Nyb2xsIHZpZXcgaXMgYm91bmNpbmcgcGFzdCB0aGUgZWRnZSBvZiBjb250ZW50IGFuZCBiYWNrIGFnYWluLlxuICAgIGlmICh0aGlzLl9nZXRDdXJyZW50U2Nyb2xsUHJvcGVydHkoJ3Njcm9sbEhlaWdodCcpIC0gd2luZG93LmlubmVySGVpZ2h0IC0gY3VycmVudFNjcm9sbCA8PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnc2hhZG93JywgY3VycmVudFNjcm9sbCAhPT0gMCk7XG5cbiAgICAvLyBDbG9zZSBvcGVuIG92ZXJsYXlzIHdoZW4gc2Nyb2xsaW5nIGRvd24gaWYgdGhlIGhlYWRlciBpcyBzY3JvbGxlZCBvdXQgb2Ygc2lnaHQuXG4gICAgaWYgKFxuICAgICAgY3VycmVudFNjcm9sbCA+IHRoaXMub2Zmc2V0SGVpZ2h0ICYmXG4gICAgICBjdXJyZW50U2Nyb2xsID4gMCAmJlxuICAgICAgdGhpcy5fbGFzdFNjcm9sbCA8IGN1cnJlbnRTY3JvbGxcbiAgICApIHtcbiAgICAgIHRoaXMuX2Nsb3NlT3Blbk92ZXJsYXlzKCk7XG4gICAgfVxuICAgIC8vIENoZWNrIGlmIHRoZSBoZWFkZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHNpZ2h0LCBzY3JvbGwgcG9zaXRpb24gPiBoZWFkZXIgaGVpZ2h0ICogMi5cbiAgICBpZiAoY3VycmVudFNjcm9sbCA+IHRoaXMub2Zmc2V0SGVpZ2h0ICogMikge1xuICAgICAgdGhpcy5faGVhZGVyT25Ub3AgPSBmYWxzZTtcbiAgICAgIGlmIChjdXJyZW50U2Nyb2xsID4gMCAmJiB0aGlzLl9sYXN0U2Nyb2xsIDwgY3VycmVudFNjcm9sbCkge1xuICAgICAgICAvLyBTY3JvbGxpbmcgZG93blxuICAgICAgICBbJ3NoYWRvdycsICd2aXNpYmxlJ10uZm9yRWFjaCgobmFtZSkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShuYW1lKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTY3JvbGxpbmcgdXBcbiAgICAgICAgWydmaXhlZCcsICdzaGFkb3cnLCAnYW5pbWF0ZWQnLCAndmlzaWJsZSddLmZvckVhY2goKG5hbWUpID0+XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChuYW1lKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2hlY2sgaWYgaGVhZGVyIGluIGl0cyBvcmlnaW5hbCBwb3NpdGlvbiwgc2Nyb2xsIHBvc2l0aW9uIDwgaGVhZGVyIGhlaWdodC5cbiAgICAgIC8vIFJlc2V0IGhlYWRlciBiZWhhdmlvciB3aGVuIHNjcm9sbCBoaXRzIHRvcCBvZiB0aGUgcGFnZSwgb24gc2Nyb2xsIHBvc2l0aW9uID0gMC5cbiAgICAgIGlmIChjdXJyZW50U2Nyb2xsID09PSAwKSB7XG4gICAgICAgIHRoaXMuX2hlYWRlck9uVG9wID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9oZWFkZXJPblRvcCkge1xuICAgICAgICBbJ3NoYWRvdycsICdhbmltYXRlZCcsICdmaXhlZCcsICd2aXNpYmxlJ10uZm9yRWFjaCgobmFtZSkgPT5cbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKG5hbWUpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBgY3VycmVudFNjcm9sbGAgY2FuIGJlIG5lZ2F0aXZlLCBlLmcuIG9uIG1vYmlsZTsgdGhpcyBpcyBub3QgYWxsb3dlZC5cbiAgICB0aGlzLl9sYXN0U2Nyb2xsID0gY3VycmVudFNjcm9sbCA8PSAwID8gMCA6IGN1cnJlbnRTY3JvbGw7XG4gIH1cblxuICAvKiogQXBwbHkgdGhlIHNoYWRvdyBpZiB0aGUgZWxlbWVudC9kb2N1bWVudCBoYXMgYmVlbiBzY3JvbGxlZCBkb3duLiAqL1xuICBwcml2YXRlIF9zY3JvbGxTaGFkb3dMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdzaGFkb3cnLCB0aGlzLl9nZXRDdXJyZW50U2Nyb2xsUHJvcGVydHkoJ3Njcm9sbFRvcCcpICE9PSAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlT3Blbk92ZXJsYXlzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hdGNoZXMoJzpzdGF0ZShoYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4pJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb3ZlcmxheVRyaWdnZXJzOiBIVE1MRWxlbWVudFtdID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbChJU19NRU5VX09QRU5FRF9RVUVSWSkgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD4sXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IG92ZXJsYXlUcmlnZ2VyIG9mIG92ZXJsYXlUcmlnZ2Vycykge1xuICAgICAgY29uc3Qgb3ZlcmxheUlkOiBzdHJpbmcgPSBvdmVybGF5VHJpZ2dlci5nZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnKSE7XG4gICAgICBjb25zdCBvdmVybGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3ZlcmxheUlkKSBhcyBIVE1MRWxlbWVudCAmIHsgY2xvc2U6ICgpID0+IHZvaWQgfTtcbiAgICAgIGlmICh0eXBlb2Ygb3ZlcmxheT8uY2xvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb3ZlcmxheS5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGhlYWRlciBjbGFzcz1cInNiYi1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1oZWFkZXJfX3dyYXBwZXJcIj5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWhlYWRlcic6IFNiYkhlYWRlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNrQkEsSUFBTSx1QkFBdUI7Ozs7Ozs7O0lBU2hCLDBCQUFnQjttQkFBUzs7Ozs7Ozs7Ozs7Ozs7OztjQUF6Qix5QkFBeUIsWUFBVTs7OzJCQW1CN0MsV0FBVyxFQUNYLFNBQVM7SUFBRSxTQUFTO0lBQU0sTUFBTTtJQUFTLENBQUMsQ0FBQTsrQkFRMUMsYUFBYSxFQUNiLFNBQVMsRUFBRSxXQUFXLGlCQUFpQixDQUFDLENBQUE7K0JB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
@@ -2,7 +2,7 @@ import { t as SbbHeaderActionCommonElementMixin } from "./header-action-common-B
2
2
  import { SbbHeaderButtonElement } from "./header/header-button/header-button.component.js";
3
3
  import { t as SbbHeaderEnvironmentElement } from "./header-environment.component-JltjpGKu.js";
4
4
  import { SbbHeaderLinkElement } from "./header/header-link/header-link.component.js";
5
- import { t as SbbHeaderElement } from "./header.component-CxLTkL_g.js";
5
+ import { t as SbbHeaderElement } from "./header.component-C9JGj-z6.js";
6
6
  import "./header.pure.js";
7
7
  //#region src/elements/header.ts
8
8
  /** @entrypoint */
@@ -2,5 +2,5 @@ import { t as SbbHeaderActionCommonElementMixin } from "./header-action-common-B
2
2
  import { SbbHeaderButtonElement } from "./header/header-button/header-button.component.js";
3
3
  import { t as SbbHeaderEnvironmentElement } from "./header-environment.component-JltjpGKu.js";
4
4
  import { SbbHeaderLinkElement } from "./header/header-link/header-link.component.js";
5
- import { t as SbbHeaderElement } from "./header.component-CxLTkL_g.js";
5
+ import { t as SbbHeaderElement } from "./header.component-C9JGj-z6.js";
6
6
  export { SbbHeaderActionCommonElementMixin, SbbHeaderButtonElement, SbbHeaderElement, SbbHeaderEnvironmentElement, SbbHeaderLinkElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../header.component-BpevKe1F.js";
1
+ import { t as e } from "../../header.component-BPkEKqnQ.js";
2
2
  export { e as SbbHeaderElement };
package/header/header.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "../header.component-BpevKe1F.js";
1
+ import { t as e } from "../header.component-BPkEKqnQ.js";
2
2
  e.define(), console.warn("The entrypoint '@sbb-esta/elements/header/header.js' has been deprecated.\nUse either '@sbb-esta/elements/header.js' or '@sbb-esta/elements/header.pure.js' instead.");
3
3
  //#endregion
4
4
  export { e as SbbHeaderElement };
@@ -159,7 +159,7 @@ var m = n`:host{--sbb-logo-height: 1rem;--sbb-signet-height: 1rem;--sbb-header-t
159
159
  e.querySelectorAll("[sbb-header-scroll-origin]").forEach((e) => this._handleScrollOriginElement(e));
160
160
  }
161
161
  static _handleScrollOriginElement(e) {
162
- e.hasAttribute("sbb-header-scroll-origin") ? this._headerScrollOrigins.add(e) : this._headerScrollOrigins.delete(e);
162
+ e.isConnected && e.hasAttribute("sbb-header-scroll-origin") ? this._headerScrollOrigins.add(e) : this._headerScrollOrigins.delete(e);
163
163
  }
164
164
  static _updateHeaderElements() {
165
165
  for (let e of this._headerElements) this._headerScrollOrigins.size === 0 ? e._scrollOriginFromObserver = null : this._headerScrollOrigins.size === 1 ? e._scrollOriginFromObserver = this._headerScrollOrigins.values().next().value ?? null : e._scrollOriginFromObserver = Array.from(this._headerScrollOrigins).sort((e, t) => e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_CONTAINS).at(-1) ?? null, e._updateScrollListener();
package/header.js CHANGED
@@ -2,7 +2,7 @@ import { t as e } from "./header-action-common-D9CO0Jax.js";
2
2
  import { SbbHeaderButtonElement as t } from "./header/header-button/header-button.component.js";
3
3
  import { t as n } from "./header-environment.component-DDZ9fcZd.js";
4
4
  import { SbbHeaderLinkElement as r } from "./header/header-link/header-link.component.js";
5
- import { t as i } from "./header.component-BpevKe1F.js";
5
+ import { t as i } from "./header.component-BPkEKqnQ.js";
6
6
  import "./header.pure.js";
7
7
  i.define(), t.define(), n.define(), r.define();
8
8
  //#endregion
package/header.pure.js CHANGED
@@ -2,5 +2,5 @@ import { t as e } from "./header-action-common-D9CO0Jax.js";
2
2
  import { SbbHeaderButtonElement as t } from "./header/header-button/header-button.component.js";
3
3
  import { t as n } from "./header-environment.component-DDZ9fcZd.js";
4
4
  import { SbbHeaderLinkElement as r } from "./header/header-link/header-link.component.js";
5
- import { t as i } from "./header.component-BpevKe1F.js";
5
+ import { t as i } from "./header.component-BPkEKqnQ.js";
6
6
  export { e as SbbHeaderActionCommonElementMixin, t as SbbHeaderButtonElement, i as SbbHeaderElement, n as SbbHeaderEnvironmentElement, r as SbbHeaderLinkElement };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-dev",
3
- "version": "4.8.1-dev.1774270807",
3
+ "version": "4.8.1-dev.1774274028",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
- "https://github.com/sbb-design-systems/lyne-components/commit/600dc27e36fd41e13c778fab662c373247d76f07"
9
+ "https://github.com/sbb-design-systems/lyne-components/commit/895267098af9aa23055879c8ac2dbae845ff5d14"
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {