@sbb-esta/lyne-elements 4.12.0 → 4.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.
- package/container/sticky-bar/sticky-bar.component.js +1 -1
- package/container/sticky-bar.js +1 -1
- package/container.js +1 -1
- package/container.pure.js +1 -1
- package/core/mixins/element-internals-mixin.js +1 -1
- package/core/mixins/form-associated-input-mixin.js +1 -1
- package/core/overlay/position.js +4 -4
- package/custom-elements.json +247 -247
- package/development/container/sticky-bar/sticky-bar.component.js +1 -1
- package/development/container/sticky-bar.js +1 -1
- package/development/container.js +1 -1
- package/development/container.pure.js +1 -1
- package/development/core/mixins/element-internals-mixin.js +2 -2
- package/development/core/mixins/form-associated-input-mixin.js +2 -2
- package/development/core/overlay/position.d.ts.map +1 -1
- package/development/core/overlay/position.js +4 -2
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
- package/development/expansion-panel/expansion-panel-header.js +1 -1
- package/development/{expansion-panel-header.component-BEAabEE0.js → expansion-panel-header.component-C1xRGcAN.js} +2 -2
- package/development/expansion-panel.js +1 -1
- package/development/expansion-panel.pure.js +1 -1
- package/development/option/option/option.component.js +1 -1
- package/development/option/option.js +1 -1
- package/development/{option.component-CRVr0PfV.js → option.component-Bb2C7ae5.js} +2 -2
- package/development/option.js +1 -1
- package/development/option.pure.js +1 -1
- package/development/popover/popover.component.d.ts +1 -1
- package/development/popover/popover.component.d.ts.map +1 -1
- package/development/popover/popover.component.js +1 -1
- package/development/popover.component-EgOs-wsR.js +572 -0
- package/development/popover.js +1 -1
- package/development/popover.pure.js +1 -1
- package/development/{sticky-bar.component-Dzrdsnxu.js → sticky-bar.component-CysAIZTd.js} +3 -3
- package/development/{tab-group.component-DldBA45K.js → tab-group.component-D9jCK26q.js} +2 -2
- package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
- package/development/tabs/tab-group/tab-group.component.js +1 -1
- package/development/tabs/tab-group.js +1 -1
- package/development/tabs.js +1 -1
- package/development/tabs.pure.js +1 -1
- package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
- package/expansion-panel/expansion-panel-header.js +1 -1
- package/{expansion-panel-header.component-FPoEEoZR.js → expansion-panel-header.component-uhZcVE_i.js} +1 -1
- package/expansion-panel.js +1 -1
- package/expansion-panel.pure.js +1 -1
- package/option/option/option.component.js +1 -1
- package/option/option.js +1 -1
- package/{option.component-2Xf1hz7y.js → option.component-CMp8QVZT.js} +1 -1
- package/option.js +1 -1
- package/option.pure.js +1 -1
- package/package.json +1 -1
- package/popover/popover.component.js +1 -1
- package/{popover.component-DAgwBcBW.js → popover.component-CnOrQaaa.js} +78 -58
- package/popover.js +1 -1
- package/popover.pure.js +1 -1
- package/{sticky-bar.component-DDBq8uXU.js → sticky-bar.component-37iKnzVR.js} +2 -2
- package/{tab-group.component-CHQlrhUy.js → tab-group.component-BCJix5Cq.js} +1 -1
- package/tabs/tab-group/tab-group.component.js +1 -1
- package/tabs/tab-group.js +1 -1
- package/tabs.js +1 -1
- package/tabs.pure.js +1 -1
- package/development/popover.component-rZb6B9uW.js +0 -546
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isServer } from "lit";
|
|
2
2
|
import { SbbSlotStateController } from "../controllers/slot-state-controller.js";
|
|
3
3
|
//#region src/elements/core/mixins/element-internals-mixin.ts
|
|
4
|
-
var CustomStateSetPolyfill = isServer || !CSS.supports("selector(:
|
|
4
|
+
var CustomStateSetPolyfill = isServer || !CSS.supports("selector(:state(loading))") ? class CustomStateSet extends Set {
|
|
5
5
|
constructor(_host) {
|
|
6
6
|
super();
|
|
7
7
|
this._host = _host;
|
|
@@ -219,4 +219,4 @@ var SbbElementInternalsMixin = (superClass) => {
|
|
|
219
219
|
//#endregion
|
|
220
220
|
export { SbbElementInternalsMixin, appendAriaElements, removeAriaElements, ɵstateController };
|
|
221
221
|
|
|
222
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIExpdEVsZW1lbnQsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVyIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgU2JiU2xvdFN0YXRlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL3Nsb3Qtc3RhdGUtY29udHJvbGxlci50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG4vLyBNb3N0IG9mIG91ciB0YXJnZXQgYnJvd3NlcnMgc3VwcG9ydCB0aGUgOnN0YXRlKCkgcHNldWRvIGNsYXNzLCBidXQgbm90IGFsbCBvZiB0aGVtLlxuLy8gV2UgcGF0Y2ggdGhlIHN0YXRlcyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBpbnRlcm5hbHMgdG8gdXNlIGF0dHJpYnV0ZXMgaW5zdGVhZCxcbi8vIGlmIDpzdGF0ZSgpIGlzIG5vdCBzdXBwb3J0ZWQuXG4vLyBOb3RlIHRoYXQgZm9yIFNTUiwgdGhlIHN0YXRlcyBwcm9wZXJ0eSBpcyBhIHNpbXBsZSBTZXQsIGltcGxlbWVudGVkIGluIExpdCBTU1IuXG4vLyBXZWJLaXQgc2VlbXMgdG8gaGF2ZSBzdGF0ZSBkZXRlY3Rpb24gcHJvYmxlbXMsIHNvIHdlIGVuYWJsZSB0aGUgcG9seWZpbGwgZm9yIG5vdy5cbi8vIFRPRE86IFJlY2hlY2sgZW5hYmxpbmcgYnkgdGVzdGluZyBzYmItYXV0b2NvbXBsZXRlIHdoZXRoZXIgaXQgcmVsaWFibHkgb3BlbnMgaW4gU2FmYXJpXG50eXBlIEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlID0gQ3VzdG9tU3RhdGVTZXQ7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5jb25zdCBDdXN0b21TdGF0ZVNldFBvbHlmaWxsOiAobmV3IChob3N0OiBMaXRFbGVtZW50KSA9PiBDdXN0b21TdGF0ZVNldEludGVyZmFjZSkgfCBudWxsID1cbiAgaXNTZXJ2ZXIgfHwgIUNTUy5zdXBwb3J0cygnc2VsZWN0b3IoOnN0YXRlKGxvYWRpbmcpKScpXG4gICAgPyBjbGFzcyBDdXN0b21TdGF0ZVNldFxuICAgICAgICBleHRlbmRzIFNldDxzdHJpbmc+XG4gICAgICAgIGltcGxlbWVudHMgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UsIFJlYWN0aXZlQ29udHJvbGxlclxuICAgICAge1xuICAgICAgICBwcml2YXRlIF9hcHBsaWVkID0gaXNTZXJ2ZXI7XG5cbiAgICAgICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IExpdEVsZW1lbnQpIHtcbiAgICAgICAgICBzdXBlcigpO1xuICAgICAgICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgICAgICAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICAgICAgICAvLyBXZSB3YW50IHRvIGFwcGx5IHRoZSBhdHRyaWJ1dGVzIGFzIGVhcmx5IGFzIHBvc3NpYmxlIHdoaWNoIGNhblxuICAgICAgICAgICAgLy8gZWl0aGVyIGJlIHZpYSB0aGlzIFByb21pc2UucmVzb2x2ZSgpIG9yIHRoZSBjb25uZWN0ZWRDYWxsYmFjaygpLlxuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLl9hcHBseVN0YXRlcygpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYWRkKHN0YXRlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgICBpZiAodGhpcy5fYXBwbGllZCkge1xuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3VwZXIuYWRkKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBkZWxldGUoc3RhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCBmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5mb3JFYWNoKChzdGF0ZSkgPT4gdGhpcy5kZWxldGUoc3RhdGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuX2FwcGx5U3RhdGVzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF90b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3N0YXRlfWAsIGVuYWJsZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJpdmF0ZSBfYXBwbHlTdGF0ZXMoKTogdm9pZCB7XG4gICAgICAgICAgaWYgKHRoaXMuX2FwcGxpZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fYXBwbGllZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5mb3JFYWNoKChzdGF0ZSkgPT4gdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIHRydWUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIDogbnVsbDtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgQVJJQU1peGluIHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsO1xuICAgIGFyaWFDb250cm9sc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFEZXNjcmliZWRCeUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFEZXRhaWxzRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYUVycm9yTWVzc2FnZUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFMYWJlbGxlZEJ5RWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYU93bnNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgfVxufVxuXG5pZiAoIWlzU2VydmVyKSB7XG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgdGhlIGFyaWEgZWxlbWVudHMgcHJvcGVydGllcyBvbiBFbGVtZW50SW50ZXJuYWxzIGFuZCBFbGVtZW50LlxuICBsZXQgbmV4dElkID0gMDtcbiAgY29uc3QgcmVzb2x2ZUhvc3QgPSAob3JpZ2luOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgPT5cbiAgICBvcmlnaW4uc2hhZG93Um9vdD8uaG9zdCA/P1xuICAgIChvcmlnaW4gaW5zdGFuY2VvZiBFbGVtZW50XG4gICAgICA/IG9yaWdpblxuICAgICAgOiAoKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJlc29sdmUgcmVsYXRlZCBlbGVtZW50ISBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uJyk7XG4gICAgICAgIH0pKCkpO1xuICBjb25zdCBvYnNlcnZlck9wdGlvbnM6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0geyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50ID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gdGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZyb20gRWxlbWVudCBoYXMgcHJpb3JpdHkuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGVsZW1lbnRzW0VsZW1lbnQubmFtZV0gPz8gZWxlbWVudHNbRWxlbWVudEludGVybmFscy5uYW1lXTtcbiAgICBob3N0LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIChhY3RpdmVFbGVtZW50LmlkIHx8PSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSk7XG4gIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnRzID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB3ZSBjb21iaW5lIHRoZSBlbGVtZW50IHJlZmVyZW5jZXMuXG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoXG4gICAgICBhdHRyaWJ1dGUsXG4gICAgICBPYmplY3QudmFsdWVzKGVsZW1lbnRzKVxuICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAubWFwKChlKSA9PiBlLmlkIHx8IChlLmlkID0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IHR5cGUgb2YgW0VsZW1lbnRJbnRlcm5hbHMsIEVsZW1lbnRdKSB7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGU7XG4gICAgaWYgKCEoJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgaW4gcHJvdG90eXBlKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc7XG4gICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgIEVsZW1lbnQsXG4gICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICA+KCk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50Jywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgaWQgPSBob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpPy5zcGxpdCgvXFxzKy8pWzBdID8/IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGlkXG4gICAgICAgICAgICA/ICgoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkgPz8gbnVsbClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudCB8IG51bGwpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgaG9zdC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpWzBdLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpKTtcbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUodmFsdWUsIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpLmZvckVhY2goKGUpID0+XG4gICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbXG4gICAgICAnYXJpYUNvbnRyb2xzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhRGV0YWlsc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHMnLFxuICAgICAgJ2FyaWFMYWJlbGxlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFPd25zRWxlbWVudHMnLFxuICAgIF0pIHtcbiAgICAgIGlmICghKHByb3BlcnR5IGluIHByb3RvdHlwZSkpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICAgIEVsZW1lbnQsXG4gICAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgICA+KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGBhcmlhLSR7cHJvcGVydHkuc2xpY2UoNCwgLTgpLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgcHJvcGVydHksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdFxuICAgICAgICAgICAgICAuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgPy5zcGxpdCgvXFxzKy8pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBPYmplY3QuZnJlZXplKGVsZW1lbnRzKSA6IG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50W10pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5zb21lKChlbGVtZW50KSA9PiAhKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJyR7cHJvcGVydHl9JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKSA/PyBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkuZWxlbWVudHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBhdHRhY2hlZEVsZW1lbnRJbnRlcm5hbHMgPSBuZXcgV2Vha01hcDxFbGVtZW50LCBFbGVtZW50SW50ZXJuYWxzPigpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlN0YXRlQ29udHJvbGxlciB7XG4gIGFkZCh2YWx1ZTogc3RyaW5nKTogdGhpcztcbiAgZGVsZXRlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuO1xuICBoYXModmFsdWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIHRvZ2dsZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGF0ZSBjb250cm9sbGVyIGZvciB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqIE5PVCBJTlRFTkRFRCBUTyBCRSBVU0VEIEJZIENPTlNVTUVSUyFcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCk6IFNiYlN0YXRlQ29udHJvbGxlcjtcbmV4cG9ydCBmdW5jdGlvbiDJtXN0YXRlQ29udHJvbGxlcihlbGVtZW50OiBFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCk6IFNiYlN0YXRlQ29udHJvbGxlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwpOiBTYmJTdGF0ZUNvbnRyb2xsZXIgfCBudWxsIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgc3RhdGVzID0gYXR0YWNoZWRFbGVtZW50SW50ZXJuYWxzLmdldChlbGVtZW50KT8uc3RhdGVzO1xuICBjb25zdCB0b2dnbGU6IFNiYlN0YXRlQ29udHJvbGxlclsndG9nZ2xlJ10gPSBmdW5jdGlvbiAodGhpczogU2JiU3RhdGVDb250cm9sbGVyLCB2YWx1ZSwgZm9yY2UpIHtcbiAgICBpZiAoZm9yY2UgfHwgKGZvcmNlICE9PSBmYWxzZSAmJiAhdGhpcy5oYXModmFsdWUpKSkge1xuICAgICAgdGhpcy5hZGQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfVxuICB9O1xuICBpZiAoc3RhdGVzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZCh2YWx1ZSkge1xuICAgICAgICBzdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgZGVsZXRlOiAodmFsdWUpID0+IHN0YXRlcy5kZWxldGUodmFsdWUpLFxuICAgICAgaGFzOiAodmFsdWUpID0+IHN0YXRlcy5oYXModmFsdWUpLFxuICAgICAgdG9nZ2xlLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgbm8gRWxlbWVudEludGVybmFscyBpcyBhdHRhY2hlZCwgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIGF0dHJpYnV0ZXMuIEUuZy4gZm9yIHRyaWdnZXJzLlxuICAgIHJldHVybiB7XG4gICAgICBhZGQodmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICBkZWxldGU6ICh2YWx1ZSkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIGZhbHNlKSxcbiAgICAgIGhhczogKHZhbHVlKSA9PiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShgc3RhdGUtLSR7dmFsdWV9YCksXG4gICAgICB0b2dnbGUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3RvciB7XG4gIHJvbGU/OiBFbGVtZW50SW50ZXJuYWxzWydyb2xlJ107XG59XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW50ZXJuYWxzOiBFbGVtZW50SW50ZXJuYWxzO1xuICBwcm90ZWN0ZWQgdG9nZ2xlU3RhdGUodmFsdWU6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50cyB0byB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJucyB0aGVcbiAqIGNvbWJpbmVkIHZhbHVlIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIGJvdGggdmFsdWVzIHdlcmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBlbmRBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ubmV3RWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3RWxlbWVudHMuZmlsdGVyKCh2KTogdiBpcyBFbGVtZW50ID0+ICEhdik7XG4gIHJldHVybiBhcmlhVmFsdWU/Lmxlbmd0aCA/IGFyaWFWYWx1ZS5jb25jYXQoZWxlbWVudHMpIDogbmV3RWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBlbGVtZW50cyBmcm9tIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zXG4gKiB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIHRoZSByZXN1bHQgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ucmVtb3ZhYmxlRWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIHJlbW92YWJsZUVsZW1lbnRzID0gcmVtb3ZhYmxlRWxlbWVudHMuZmlsdGVyKCh2KSA9PiAhIXYpO1xuICBjb25zdCBlbGVtZW50cyA9IGFyaWFWYWx1ZT8uZmlsdGVyKCh2KSA9PiAhcmVtb3ZhYmxlRWxlbWVudHMuaW5jbHVkZXModikpID8/IG51bGw7XG4gIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBUaGUgU2JiRWxlbWVudEludGVybmFsc01peGluIGF0dGFjaGVzIEVsZW1lbnRJbnRlcm5hbHMgdG8gdGhlIGVsZW1lbnQgYW5kIHNldHNcbiAqIHRoZSByb2xlLCBpZiBkZWZpbmVkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRWxlbWVudEludGVybmFsc01peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJiBUICYgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRWxlbWVudEludGVybmFsRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpbnRlcm5hbHM6IEVsZW1lbnRJbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgIGF0dGFjaGVkRWxlbWVudEludGVybmFscy5zZXQodGhpcywgdGhpcy5pbnRlcm5hbHMpO1xuICAgICAgaWYgKEN1c3RvbVN0YXRlU2V0UG9seWZpbGwpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuaW50ZXJuYWxzLCAnc3RhdGVzJywge1xuICAgICAgICAgIHZhbHVlOiBuZXcgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbCh0aGlzKSxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSB1c2UgdGhlIEN1c3RvbVN0YXRlU2V0IHBvbHlmaWxsIGluIFNTUiwgd2hpY2ggcmVuZGVycyB0aGUgc3RhdGUgYXMgYXR0cmlidXRlc1xuICAgICAgICAvLyB3aGljaCBjYW4gYmUgdHJhbnNmZXJyZWQgdG8gY2xpZW50IHNpZGUsIHdoZXJlIHdlIGNhbiB0aGVuIGNvbnZlcnQgW3N0YXRlLS0qXVxuICAgICAgICAvLyBhdHRyaWJ1dGVzIHRvIGludGVybmFsIHN0YXRlLlxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZpbHRlcigobikgPT4gbi5zdGFydHNXaXRoKCdzdGF0ZS0tJykpKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChuYW1lLnNsaWNlKDcpKTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgcm9sZSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcikucm9sZTtcbiAgICAgIGlmIChyb2xlKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSByb2xlO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMsIHRoaXMuaW50ZXJuYWxzKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRvZ2dsZVN0YXRlKHZhbHVlOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgaWYgKGZvcmNlIHx8IChmb3JjZSAhPT0gZmFsc2UgJiYgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXModmFsdWUpKSkge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRWxlbWVudEludGVybmFsRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJlxuICAgIFQgJlxuICAgIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcjtcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQWNBLElBQU0seUJBQ0osWUFBWSxDQUFDLElBQUksU0FBUyxrREFBNEIsR0FDbEQsTUFBTSx1QkFDSSxJQUFXO0NBS25CLFlBQTJCLE9BQWlCO0FBQzFDLFNBQU87QUFEa0IsT0FBQSxRQUFBO0FBRm5CLE9BQUEsV0FBVztBQUlqQixPQUFLLE1BQU0sY0FBYyxLQUFLO0FBQzlCLE1BQUksQ0FBQyxTQUdILFNBQVEsU0FBUyxDQUFDLFdBQVcsS0FBSyxjQUFjLENBQUM7O0NBSXJDLElBQUksT0FBYTtBQUMvQixNQUFJLEtBQUssU0FDUCxNQUFLLGFBQWEsT0FBTyxLQUFLO0FBRWhDLFNBQU8sTUFBTSxJQUFJLE1BQU07O0NBR1QsT0FBTyxPQUFhO0FBQ2xDLE9BQUssYUFBYSxPQUFPLE1BQU07QUFDL0IsU0FBTyxNQUFNLE9BQU8sTUFBTTs7Q0FHWixRQUFLO0FBQ25CLE9BQUss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
|
|
222
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIExpdEVsZW1lbnQsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVyIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgU2JiU2xvdFN0YXRlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL3Nsb3Qtc3RhdGUtY29udHJvbGxlci50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG4vLyBNb3N0IG9mIG91ciB0YXJnZXQgYnJvd3NlcnMgc3VwcG9ydCB0aGUgOnN0YXRlKCkgcHNldWRvIGNsYXNzLCBidXQgbm90IGFsbCBvZiB0aGVtLlxuLy8gV2UgcGF0Y2ggdGhlIHN0YXRlcyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBpbnRlcm5hbHMgdG8gdXNlIGF0dHJpYnV0ZXMgaW5zdGVhZCxcbi8vIGlmIDpzdGF0ZSgpIGlzIG5vdCBzdXBwb3J0ZWQuXG4vLyBOb3RlIHRoYXQgZm9yIFNTUiwgdGhlIHN0YXRlcyBwcm9wZXJ0eSBpcyBhIHNpbXBsZSBTZXQsIGltcGxlbWVudGVkIGluIExpdCBTU1IuXG4vLyBXZWJLaXQgc2VlbXMgdG8gaGF2ZSBzdGF0ZSBkZXRlY3Rpb24gcHJvYmxlbXMsIHNvIHdlIGVuYWJsZSB0aGUgcG9seWZpbGwgZm9yIG5vdy5cbi8vIFRPRE86IFJlY2hlY2sgZW5hYmxpbmcgYnkgdGVzdGluZyBzYmItYXV0b2NvbXBsZXRlIHdoZXRoZXIgaXQgcmVsaWFibHkgb3BlbnMgaW4gU2FmYXJpXG50eXBlIEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlID0gQ3VzdG9tU3RhdGVTZXQ7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5jb25zdCBDdXN0b21TdGF0ZVNldFBvbHlmaWxsOiAobmV3IChob3N0OiBMaXRFbGVtZW50KSA9PiBDdXN0b21TdGF0ZVNldEludGVyZmFjZSkgfCBudWxsID1cbiAgaXNTZXJ2ZXIgfHwgIUNTUy5zdXBwb3J0cygnc2VsZWN0b3IoOnN0YXRlKGxvYWRpbmcpKScpXG4gICAgPyBjbGFzcyBDdXN0b21TdGF0ZVNldFxuICAgICAgICBleHRlbmRzIFNldDxzdHJpbmc+XG4gICAgICAgIGltcGxlbWVudHMgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UsIFJlYWN0aXZlQ29udHJvbGxlclxuICAgICAge1xuICAgICAgICBwcml2YXRlIF9hcHBsaWVkID0gaXNTZXJ2ZXI7XG5cbiAgICAgICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IExpdEVsZW1lbnQpIHtcbiAgICAgICAgICBzdXBlcigpO1xuICAgICAgICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgICAgICAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICAgICAgICAvLyBXZSB3YW50IHRvIGFwcGx5IHRoZSBhdHRyaWJ1dGVzIGFzIGVhcmx5IGFzIHBvc3NpYmxlIHdoaWNoIGNhblxuICAgICAgICAgICAgLy8gZWl0aGVyIGJlIHZpYSB0aGlzIFByb21pc2UucmVzb2x2ZSgpIG9yIHRoZSBjb25uZWN0ZWRDYWxsYmFjaygpLlxuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLl9hcHBseVN0YXRlcygpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYWRkKHN0YXRlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgICBpZiAodGhpcy5fYXBwbGllZCkge1xuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3VwZXIuYWRkKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBkZWxldGUoc3RhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCBmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5mb3JFYWNoKChzdGF0ZSkgPT4gdGhpcy5kZWxldGUoc3RhdGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuX2FwcGx5U3RhdGVzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF90b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3N0YXRlfWAsIGVuYWJsZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJpdmF0ZSBfYXBwbHlTdGF0ZXMoKTogdm9pZCB7XG4gICAgICAgICAgaWYgKHRoaXMuX2FwcGxpZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fYXBwbGllZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5mb3JFYWNoKChzdGF0ZSkgPT4gdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIHRydWUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIDogbnVsbDtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgQVJJQU1peGluIHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsO1xuICAgIGFyaWFDb250cm9sc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFEZXNjcmliZWRCeUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFEZXRhaWxzRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYUVycm9yTWVzc2FnZUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFMYWJlbGxlZEJ5RWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYU93bnNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgfVxufVxuXG5pZiAoIWlzU2VydmVyKSB7XG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgdGhlIGFyaWEgZWxlbWVudHMgcHJvcGVydGllcyBvbiBFbGVtZW50SW50ZXJuYWxzIGFuZCBFbGVtZW50LlxuICBsZXQgbmV4dElkID0gMDtcbiAgY29uc3QgcmVzb2x2ZUhvc3QgPSAob3JpZ2luOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgPT5cbiAgICBvcmlnaW4uc2hhZG93Um9vdD8uaG9zdCA/P1xuICAgIChvcmlnaW4gaW5zdGFuY2VvZiBFbGVtZW50XG4gICAgICA/IG9yaWdpblxuICAgICAgOiAoKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJlc29sdmUgcmVsYXRlZCBlbGVtZW50ISBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uJyk7XG4gICAgICAgIH0pKCkpO1xuICBjb25zdCBvYnNlcnZlck9wdGlvbnM6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0geyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50ID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gdGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZyb20gRWxlbWVudCBoYXMgcHJpb3JpdHkuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGVsZW1lbnRzW0VsZW1lbnQubmFtZV0gPz8gZWxlbWVudHNbRWxlbWVudEludGVybmFscy5uYW1lXTtcbiAgICBob3N0LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIChhY3RpdmVFbGVtZW50LmlkIHx8PSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSk7XG4gIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnRzID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB3ZSBjb21iaW5lIHRoZSBlbGVtZW50IHJlZmVyZW5jZXMuXG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoXG4gICAgICBhdHRyaWJ1dGUsXG4gICAgICBPYmplY3QudmFsdWVzKGVsZW1lbnRzKVxuICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAubWFwKChlKSA9PiBlLmlkIHx8IChlLmlkID0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IHR5cGUgb2YgW0VsZW1lbnRJbnRlcm5hbHMsIEVsZW1lbnRdKSB7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGU7XG4gICAgaWYgKCEoJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgaW4gcHJvdG90eXBlKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc7XG4gICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgIEVsZW1lbnQsXG4gICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICA+KCk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50Jywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgaWQgPSBob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpPy5zcGxpdCgvXFxzKy8pWzBdID8/IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGlkXG4gICAgICAgICAgICA/ICgoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkgPz8gbnVsbClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudCB8IG51bGwpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgaG9zdC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpWzBdLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpKTtcbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUodmFsdWUsIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpLmZvckVhY2goKGUpID0+XG4gICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbXG4gICAgICAnYXJpYUNvbnRyb2xzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhRGV0YWlsc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHMnLFxuICAgICAgJ2FyaWFMYWJlbGxlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFPd25zRWxlbWVudHMnLFxuICAgIF0pIHtcbiAgICAgIGlmICghKHByb3BlcnR5IGluIHByb3RvdHlwZSkpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICAgIEVsZW1lbnQsXG4gICAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgICA+KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGBhcmlhLSR7cHJvcGVydHkuc2xpY2UoNCwgLTgpLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgcHJvcGVydHksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdFxuICAgICAgICAgICAgICAuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgPy5zcGxpdCgvXFxzKy8pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBPYmplY3QuZnJlZXplKGVsZW1lbnRzKSA6IG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50W10pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5zb21lKChlbGVtZW50KSA9PiAhKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJyR7cHJvcGVydHl9JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKSA/PyBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkuZWxlbWVudHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBhdHRhY2hlZEVsZW1lbnRJbnRlcm5hbHMgPSBuZXcgV2Vha01hcDxFbGVtZW50LCBFbGVtZW50SW50ZXJuYWxzPigpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlN0YXRlQ29udHJvbGxlciB7XG4gIGFkZCh2YWx1ZTogc3RyaW5nKTogdGhpcztcbiAgZGVsZXRlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuO1xuICBoYXModmFsdWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIHRvZ2dsZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGF0ZSBjb250cm9sbGVyIGZvciB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqIE5PVCBJTlRFTkRFRCBUTyBCRSBVU0VEIEJZIENPTlNVTUVSUyFcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCk6IFNiYlN0YXRlQ29udHJvbGxlcjtcbmV4cG9ydCBmdW5jdGlvbiDJtXN0YXRlQ29udHJvbGxlcihlbGVtZW50OiBFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCk6IFNiYlN0YXRlQ29udHJvbGxlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwpOiBTYmJTdGF0ZUNvbnRyb2xsZXIgfCBudWxsIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgc3RhdGVzID0gYXR0YWNoZWRFbGVtZW50SW50ZXJuYWxzLmdldChlbGVtZW50KT8uc3RhdGVzO1xuICBjb25zdCB0b2dnbGU6IFNiYlN0YXRlQ29udHJvbGxlclsndG9nZ2xlJ10gPSBmdW5jdGlvbiAodGhpczogU2JiU3RhdGVDb250cm9sbGVyLCB2YWx1ZSwgZm9yY2UpIHtcbiAgICBpZiAoZm9yY2UgfHwgKGZvcmNlICE9PSBmYWxzZSAmJiAhdGhpcy5oYXModmFsdWUpKSkge1xuICAgICAgdGhpcy5hZGQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfVxuICB9O1xuICBpZiAoc3RhdGVzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZCh2YWx1ZSkge1xuICAgICAgICBzdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgZGVsZXRlOiAodmFsdWUpID0+IHN0YXRlcy5kZWxldGUodmFsdWUpLFxuICAgICAgaGFzOiAodmFsdWUpID0+IHN0YXRlcy5oYXModmFsdWUpLFxuICAgICAgdG9nZ2xlLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgbm8gRWxlbWVudEludGVybmFscyBpcyBhdHRhY2hlZCwgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIGF0dHJpYnV0ZXMuIEUuZy4gZm9yIHRyaWdnZXJzLlxuICAgIHJldHVybiB7XG4gICAgICBhZGQodmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICBkZWxldGU6ICh2YWx1ZSkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIGZhbHNlKSxcbiAgICAgIGhhczogKHZhbHVlKSA9PiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShgc3RhdGUtLSR7dmFsdWV9YCksXG4gICAgICB0b2dnbGUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3RvciB7XG4gIHJvbGU/OiBFbGVtZW50SW50ZXJuYWxzWydyb2xlJ107XG59XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW50ZXJuYWxzOiBFbGVtZW50SW50ZXJuYWxzO1xuICBwcm90ZWN0ZWQgdG9nZ2xlU3RhdGUodmFsdWU6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50cyB0byB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJucyB0aGVcbiAqIGNvbWJpbmVkIHZhbHVlIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIGJvdGggdmFsdWVzIHdlcmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBlbmRBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ubmV3RWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3RWxlbWVudHMuZmlsdGVyKCh2KTogdiBpcyBFbGVtZW50ID0+ICEhdik7XG4gIHJldHVybiBhcmlhVmFsdWU/Lmxlbmd0aCA/IGFyaWFWYWx1ZS5jb25jYXQoZWxlbWVudHMpIDogbmV3RWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBlbGVtZW50cyBmcm9tIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zXG4gKiB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIHRoZSByZXN1bHQgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ucmVtb3ZhYmxlRWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIHJlbW92YWJsZUVsZW1lbnRzID0gcmVtb3ZhYmxlRWxlbWVudHMuZmlsdGVyKCh2KSA9PiAhIXYpO1xuICBjb25zdCBlbGVtZW50cyA9IGFyaWFWYWx1ZT8uZmlsdGVyKCh2KSA9PiAhcmVtb3ZhYmxlRWxlbWVudHMuaW5jbHVkZXModikpID8/IG51bGw7XG4gIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBUaGUgU2JiRWxlbWVudEludGVybmFsc01peGluIGF0dGFjaGVzIEVsZW1lbnRJbnRlcm5hbHMgdG8gdGhlIGVsZW1lbnQgYW5kIHNldHNcbiAqIHRoZSByb2xlLCBpZiBkZWZpbmVkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRWxlbWVudEludGVybmFsc01peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJiBUICYgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRWxlbWVudEludGVybmFsRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpbnRlcm5hbHM6IEVsZW1lbnRJbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgIGF0dGFjaGVkRWxlbWVudEludGVybmFscy5zZXQodGhpcywgdGhpcy5pbnRlcm5hbHMpO1xuICAgICAgaWYgKEN1c3RvbVN0YXRlU2V0UG9seWZpbGwpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuaW50ZXJuYWxzLCAnc3RhdGVzJywge1xuICAgICAgICAgIHZhbHVlOiBuZXcgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbCh0aGlzKSxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSB1c2UgdGhlIEN1c3RvbVN0YXRlU2V0IHBvbHlmaWxsIGluIFNTUiwgd2hpY2ggcmVuZGVycyB0aGUgc3RhdGUgYXMgYXR0cmlidXRlc1xuICAgICAgICAvLyB3aGljaCBjYW4gYmUgdHJhbnNmZXJyZWQgdG8gY2xpZW50IHNpZGUsIHdoZXJlIHdlIGNhbiB0aGVuIGNvbnZlcnQgW3N0YXRlLS0qXVxuICAgICAgICAvLyBhdHRyaWJ1dGVzIHRvIGludGVybmFsIHN0YXRlLlxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZpbHRlcigobikgPT4gbi5zdGFydHNXaXRoKCdzdGF0ZS0tJykpKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChuYW1lLnNsaWNlKDcpKTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgcm9sZSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcikucm9sZTtcbiAgICAgIGlmIChyb2xlKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSByb2xlO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMsIHRoaXMuaW50ZXJuYWxzKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRvZ2dsZVN0YXRlKHZhbHVlOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgaWYgKGZvcmNlIHx8IChmb3JjZSAhPT0gZmFsc2UgJiYgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXModmFsdWUpKSkge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRWxlbWVudEludGVybmFsRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJlxuICAgIFQgJlxuICAgIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcjtcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQWNBLElBQU0seUJBQ0osWUFBWSxDQUFDLElBQUksU0FBUyw0QkFBNEIsR0FDbEQsTUFBTSx1QkFDSSxJQUFXO0NBS25CLFlBQTJCLE9BQWlCO0FBQzFDLFNBQU87QUFEa0IsT0FBQSxRQUFBO0FBRm5CLE9BQUEsV0FBVztBQUlqQixPQUFLLE1BQU0sY0FBYyxLQUFLO0FBQzlCLE1BQUksQ0FBQyxTQUdILFNBQVEsU0FBUyxDQUFDLFdBQVcsS0FBSyxjQUFjLENBQUM7O0NBSXJDLElBQUksT0FBYTtBQUMvQixNQUFJLEtBQUssU0FDUCxNQUFLLGFBQWEsT0FBTyxLQUFLO0FBRWhDLFNBQU8sTUFBTSxJQUFJLE1BQU07O0NBR1QsT0FBTyxPQUFhO0FBQ2xDLE9BQUssYUFBYSxPQUFPLE1BQU07QUFDL0IsU0FBTyxNQUFNLE9BQU8sTUFBTTs7Q0FHWixRQUFLO0FBQ25CLE9BQUss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
|
|
@@ -230,7 +230,7 @@ var SbbFormAssociatedInputMixin = (superClass) => {
|
|
|
230
230
|
* changed under the condition that no input event has occurred since creation
|
|
231
231
|
* or the last form reset.
|
|
232
232
|
*/
|
|
233
|
-
if (name !== "value" || !this.
|
|
233
|
+
if (name !== "value" || !this.matches?.(":is(:state(interacted),[state--interacted])")) super.attributeChangedCallback(name, old, value);
|
|
234
234
|
}
|
|
235
235
|
/**
|
|
236
236
|
* Is called whenever the form is being reset.
|
|
@@ -337,4 +337,4 @@ var SbbFormAssociatedInputMixin = (superClass) => {
|
|
|
337
337
|
//#endregion
|
|
338
338
|
export { SbbFormAssociatedInputMixin };
|
|
339
339
|
|
|
340
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgZXZlbnRPcHRpb25zLCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vYTExeS50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsIFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlIH0gZnJvbSAnLi4vY29udHJvbGxlcnMudHMnO1xuaW1wb3J0IHsgaXNCbGluaywgaXNXZWJraXQgfSBmcm9tICcuLi9kb20udHMnO1xuaW1wb3J0IHsgaTE4bklucHV0UmVxdWlyZWQgfSBmcm9tICcuLi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sXG4gIHR5cGUgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgdHlwZSBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IsXG59IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZWFkb25seU1peGluIH0gZnJvbSAnLi9yZWFkb25seS1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGUgZXh0ZW5kcyBTYmJSZXF1aXJlZE1peGluKFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmIFQgPT4ge1xuICAvLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IFJlbW92ZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYW5kIGRlcGVuZCBvbiBTYmJFbGVtZW50IGFzIGJhc2UgY2xhc3MgaW5zdGVhZCBvZiBMaXRFbGVtZW50XG4gIGNvbnN0IGNvbmRpdGlvbmFsU3VwZXJDbGFzcyA9IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pWydfJHNiYkVsZW1lbnQkJ11cbiAgICA/IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmXG4gICAgICAgIFQgJlxuICAgICAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IpXG4gICAgOiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcyk7XG5cbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oXG4gICAgICBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihjb25kaXRpb25hbFN1cGVyQ2xhc3MpKSksXG4gICAgKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3RleHRib3gnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZm9ybUZpZWxkQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBBbiBlbGVtZW50IHdpdGggY29udGVudGVkaXRhYmxlIHdpbGwgbm90IGVtaXQgYSBjaGFuZ2UgZXZlbnQuIFRvIGFjaGlldmUgcGFyaXR5XG4gICAgICogd2l0aCBhIG5hdGl2ZSB0ZXh0IGlucHV0LCB3ZSBuZWVkIHRvIHRyYWNrIHdoZXRoZXIgYSBjaGFuZ2UgZXZlbnQgc2hvdWxkIGJlXG4gICAgICogZW1pdHRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQSBuYXRpdmUgdGV4dCBpbnB1dCBhdHRlbXB0cyB0byBzdWJtaXQgdGhlIGZvcm0gd2hlbiBwcmVzc2luZyBFbnRlci5cbiAgICAgKiBUaGlzIGNhbiBiZSBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCBvbiB0aGUga2V5ZG93biBldmVudC5cbiAgICAgKiBXZSB0cmFjayB3aGV0aGVyIHRvIHJlcXVlc3Qgc3VibWl0LCB3aGljaCBzaG91bGQgb2NjdXIgYmVmb3JlIHRoZSBrZXl1cFxuICAgICAqIGV2ZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAndGV4dCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dC4gUmVmbGVjdHMgdGhlIGN1cnJlbnQgdGV4dCB2YWx1ZSBvZiB0aGlzIGlucHV0LlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh2YWx1ZSk7XG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWUgPz8gJyc7XG4gICAgfVxuICAgIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFQbGFjZWhvbGRlciA9IHZhbHVlID8gdmFsdWUgOiBudWxsO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgPz8gJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIC8vIFdlIHByaW1hcmlseSB1c2UgY2FwdHVyZSBldmVudCBsaXN0ZW5lcnMsIGFzIHdlIHdhbnRcbiAgICAgIC8vIG91ciBsaXN0ZW5lcnMgdG8gb2NjdXIgYmVmb3JlIGNvbnN1bWVyIGV2ZW50IGxpc3RlbmVycy5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnaW5wdXQnLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh0aGlzLnRleHRDb250ZW50ID8/ICcnKTtcbiAgICAgICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoJ3ZhbHVlJywgb2xkVmFsdWUpO1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2ludGVyYWN0ZWQnKTtcbiAgICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NoYW5nZScsICgpID0+ICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2UpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gV2UgcHJldmVudCByZWN1cnNpdmUgZXZlbnRzIGJ5IGNoZWNraW5nIHRoZSBvcmlnaW5hbCBldmVudCBmb3IgaXNUcnVzdGVkXG4gICAgICAgICAgLy8gd2hpY2ggaXMgZmFsc2UgZm9yIG1hbnVhbGx5IGRpc3BhdGNoZWQgZXZlbnRzICh3aGljaCB3ZSBkaXNwYXRjaCBiZWxvdykuXG4gICAgICAgICAgaWYgKChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykgJiYgZXZlbnQuaXNUcnVzdGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgaXNXZWJraXQgJiZcbiAgICAgICAgICAgIHRoaXMudmFsdWUgJiZcbiAgICAgICAgICAgIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnIHx8IGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpICYmXG4gICAgICAgICAgICBldmVudC5pc1RydXN0ZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEluIFdlYmtpdCBwcmVzc2luZyBCYWNrc3BhY2Ugb3IgRGVsZXRlIGNvbXBsZXRlbHkgcmVtb3ZlcyBhbGwgdGhlIGNvbnRlbnRcbiAgICAgICAgICAgIC8vIGlmIGNvbnRlbnRlZGl0YWJsZSBpcyBzZXQgb24gYSB3ZWIgY29tcG9uZW50IGhvc3QuXG4gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIHJlcGxpY2F0ZSB0aGUgbm9ybWFsIGRlbGV0ZSBiZWhhdmlvci5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRSYW5nZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCkge1xuICAgICAgICAgICAgICAvLyBJZiBhIHRleHQgcmFuZ2UgaXMgc2VsZWN0ZWQsIHRoZW4gZGVsZXRlIHRoaXMgcmFuZ2VcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyAmJiBzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0ID4gMCkge1xuICAgICAgICAgICAgICAvLyBXaGVuIHByZXNzaW5nIEJhY2tzcGFjZSwgd2Ugc2VsZWN0IHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0IC0gMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScgJiYgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQgPCB0aGlzLnZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAvLyBXaGVuIHByZXNzaW5nIERlbGV0ZSwgd2Ugc2VsZWN0IHRoZSBuZXh0IGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldEVuZChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQgKyAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5dXAnLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQpIHtcbiAgICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmZvcm0/LnJlcXVlc3RTdWJtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIC8vIGNvbnRlbnRlZGl0YWJsZSBhbGxvd3MgcGFzdGluZyByaWNoIGNvbnRlbnQgaW50byBpdHMgaG9zdC5cbiAgICAgIC8vIFdlIHByZXZlbnQgdGhpcyBieSBsaXN0ZW5pbmcgdG8gdGhlIHBhc3RlIGV2ZW50IGFuZFxuICAgICAgLy8gZXh0cmFjdGluZyB0aGUgcGxhaW4gdGV4dCBmcm9tIHRoZSBwYXN0ZWQgY29udGVudFxuICAgICAgLy8gYW5kIGluc2VydGluZyBpdCBpbnRvIHRoZSBzZWxlY3RlZCByYW5nZSAoY3Vyc29yIHBvc2l0aW9uXG4gICAgICAvLyBvciBzZWxlY3Rpb24pLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3Bhc3RlJywgKGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5fY2xlYW5UZXh0KGUuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpID8/ICcnKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSYW5nZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlIHx8ICF0ZXh0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICBzZWxlY3RlZFJhbmdlLmluc2VydE5vZGUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5wcmVwYXJlUGFzdGVkVGV4dCh0ZXh0KSkpO1xuICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCk7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgfSk7XG4gICAgICAvLyBXaGVuIGZvY3VzaW5nIGEgdGV4dCBpbnB1dCB2aWEga2V5Ym9hcmQsIHRoZSB0ZXh0IGNvbnRlbnQgc2hvdWxkIGJlIHNlbGVjdGVkLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgIC8vIFRPRE86IFRoaXMgZG9lcyBub3Qgc2VlbSB0byB3b3JrIGluIEZpcmVmb3ggd2l0aCByZWFkb25seS5cbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0b3VjaGVuZCcsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJyZuYnNwOycpO1xuICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpICYmIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICd0b3VjaCcpIHtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIE9uIGJsdXIgdGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHNjcm9sbHMgdGhlIHRleHQgdG8gdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LlxuICAgICAgLy8gV2UgbWltaWMgdGhhdCBieSByZXNldHRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi5cbiAgICAgIC8vIFdlIGFsc28gdW5zZXQgYW55IHNlbGVjdGlvbiB0byBhbGlnbiB3aXRoIHRoZSBuYXRpdmUgdGV4dCBpbnB1dC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnYmx1cicsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTXVsdGlMaW5lID0gJ2ZhbHNlJztcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIHJlcGxhY2UgYW55IGNvbnRlbnQgYnkganVzdCB0aGUgdGV4dCBjb250ZW50LlxuICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZvY3VzKG9wdGlvbnMpO1xuICAgICAgLy8gQnkgZGVmYXVsdCwgd2hlbiBjYWxsaW5nIGZvY3VzIG9uIGFuIGlucHV0IGVsZW1lbnQsIHRoZSBjdXJzb3IgaXMgcGxhY2VkXG4gICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCB0ZXh0LiBIb3dldmVyLCB3aXRoIGNvbnRlbnRlZGl0YWJsZSwgdGhlIGN1cnNvclxuICAgICAgLy8gaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcsIHNvIHdlIG1vdmUgaXQgdG8gdGhlIGVuZCwgaWYgdGhhdCBpcyB0aGUgY2FzZS5cbiAgICAgIGlmICh0aGlzLl9jYW5TZWxlY3QoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCh0aGlzLnRleHRDb250ZW50IS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IGNoYW5nZXMgdGhlIHZhbHVlIHByb3BlcnR5IHdoZW4gdGhlIHZhbHVlIGF0dHJpYnV0ZSBpc1xuICAgICAgICogY2hhbmdlZCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgbm8gaW5wdXQgZXZlbnQgaGFzIG9jY3VycmVkIHNpbmNlIGNyZWF0aW9uXG4gICAgICAgKiBvciB0aGUgbGFzdCBmb3JtIHJlc2V0LlxuICAgICAgICovXG4gICAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCAhdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcygnaW50ZXJhY3RlZCcpKSB7XG4gICAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdpbnRlcmFjdGVkJyk7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIENhbGxlZCB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byByZXN0b3JlIGVsZW1lbnTigJlzIHN0YXRlIHRvIHN0YXRlIGluIHdoaWNoIGNhc2VcbiAgICAgKiAgcmVhc29uIGlzIFwicmVzdG9yZVwiLCBvciB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byBmdWxmaWxsIGF1dG9maWxsIG9uIGJlaGFsZiBvZlxuICAgICAqICB1c2VyIGluIHdoaWNoIGNhc2UgcmVhc29uIGlzIFwiYXV0b2NvbXBsZXRlXCIuXG4gICAgICogIEluIHRoZSBjYXNlIG9mIFwicmVzdG9yZVwiLCBzdGF0ZSBpcyBhIHN0cmluZywgRmlsZSwgb3IgRm9ybURhdGEgb2JqZWN0XG4gICAgICogIHByZXZpb3VzbHkgc2V0IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gc2V0Rm9ybVZhbHVlLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQge1xuICAgICAgaWYgKHN0YXRlICYmIHR5cGVvZiBzdGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHN0YXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0XG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uc2VsZWN0QWxsQ2hpbGRyZW4odGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIC8vIElmIHRoZSB2YWx1ZSB3YXMgYXNzaWduZWQgYmVmb3JlIGZpcnN0VXBkYXRlLCB3ZSBoYXZlIHRvXG4gICAgICAvLyB3cml0ZSBpdCB0aGUgZG9jdW1lbnQgdG8gYmUgdmlzdWFsbHkgc2VlblxuICAgICAgaWYgKHRoaXMudmFsdWUgJiYgIXRoaXMuaW5uZXJIVE1MLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaXNDb25uZWN0ZWQgJiZcbiAgICAgICAgKG5hbWUgPT09ICdkaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ2Zvcm1EaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ3JlYWRPbmx5JylcbiAgICAgICkge1xuICAgICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAndmFsdWUnIHx8IG5hbWUgPT09ICdyZXF1aXJlZCc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnLCBpMThuSW5wdXRSZXF1aXJlZFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVpcmVzRW1wdHlQYXRjaCgpOiBib29sZWFuIHtcbiAgICAgIC8vIEluIEJsaW5rLCBhIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50IHdpdGggZW1wdHkgY29udGVudCB3aWxsIGNyYXNoXG4gICAgICAvLyB1cG9uIHJlY2VpdmluZyBmb2N1cywgd2hlbiBpbiBNb2JpbGUgbW9kZS5cbiAgICAgIC8vIFRvIHByZXZlbnQgdGhpcywgd2UgcGF0Y2ggdGhlIGVtcHR5IHN0YXRlIGJ5IGluc2VydGluZyBhIG5vbi1icmVha2luZyBzcGFjZS5cbiAgICAgIHJldHVybiBpc1NlcnZlclxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogaXNCbGluayAmJiB0aGlzLnZhbHVlID09PSAnJyAmJiB3aW5kb3cubWF0Y2hNZWRpYShTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSkubWF0Y2hlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hc3NpZ25WYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICB0aGlzLmlubmVySFRNTCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEN1cnNvckF0KHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgcmFuZ2Uuc2V0U3RhcnQodGhpcy5maXJzdENoaWxkISwgcG9zaXRpb24pO1xuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NsZWFuVGV4dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIC8vIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCByZW1vdmVzIGFsbCBuZXdsaW5lIGNoYXJhY3RlcnMgaWYgcGFzc2VkIHRvIHRoZSB2YWx1ZSBwcm9wZXJ0eVxuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gJycgOiBgJHt2YWx1ZX1gLnJlcGxhY2UoL1tcXG5cXHJdKy9nLCAnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hJbnB1dEV2ZW50KCk6IHZvaWQge1xuICAgICAgLyoqIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIEBldmVudE9wdGlvbnMoeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfY2xlYW5DaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkRWxlbWVudENvdW50KSB7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpOiB2b2lkIHtcbiAgICAgIGlmICghaXNTZXJ2ZXIgJiYgdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhUmVhZE9ubHkgPSB0aGlzLnJlYWRPbmx5ID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIC8vIFRPRE8oMjAyNik6IEZpcmVmb3ggc3VwcG9ydHMgcGxhaW50ZXh0LW9ubHkgc2luY2UgdmVyc2lvbiAxMzYgKE1hcmNoIDIwMjUpLlxuICAgICAgICAvLyBVbnRpbCB0aGlzIGlzIHBhcnQgb2Ygb3VyIGJhc2VsaW5lLCB3ZSBzaG91bGQgZmVhdHVyZSBjaGVjayB0byBlbmFibGUgaXQuXG4gICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZE9ubHlcbiAgICAgICAgICAgID8gJ2ZhbHNlJ1xuICAgICAgICAgICAgOiBwbGFpbnRleHRPbmx5U3VwcG9ydGVkXG4gICAgICAgICAgICAgID8gJ3BsYWludGV4dC1vbmx5J1xuICAgICAgICAgICAgICA6ICd0cnVlJztcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsIHZhbHVlKTtcbiAgICAgICAgLy8gSW4gdGhlIHJlYWRvbmx5IGNhc2UsIHdlIGRpc2FibGUgY29udGVudGVkaXRhYmxlLCBidXQgaXQgc3RpbGxcbiAgICAgICAgLy8gbmVlZHMgdG8gYmUgZm9jdXNhYmxlLiBXZSBhY2hpZXZlIHRoaXMgYnkgc2V0dGluZyB0YWJpbmRleCBpbiB0aGF0IGNhc2UuXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgLyoqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZCBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS4gKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW5TZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWlzU2VydmVyICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5ICYmICEhdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IHVua25vd24ge1xuICAgICAgcmV0dXJuIGh0bWxgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jbGVhbkNoaWxkcmVufT48L3Nsb3Q+YDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQTREQSxJQUFNLGtDQUEwQztBQUM5QyxLQUFJLFNBQ0YsUUFBTztDQUdULE1BQU0sTUFBTSxTQUFTLGNBQWMsTUFBTTtBQUN6QyxLQUFJLGFBQWEsbUJBQW1CLGlCQUFpQjtBQUlyRCxRQUFPLElBQUksb0JBQW9COztBQUVqQyxJQUFNLHlCQUF5QiwyQkFBMkI7Ozs7QUFNMUQsSUFBYSwrQkFDWCxlQUM0RDtDQUU1RCxNQUFNLHdCQUF5QixXQUFrRCxtQkFDNUUsYUFHRCx5QkFBeUIsV0FBVztBQWtheEMsZUFoYTRDO29CQUNsQyxpQkFDTixpQkFBaUIsaUJBQWlCLHVCQUF1QixzQkFBc0IsQ0FBQyxDQUFDLENBQ2xGOzs7OztlQUhZ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
|
|
340
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgZXZlbnRPcHRpb25zLCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vYTExeS50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsIFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlIH0gZnJvbSAnLi4vY29udHJvbGxlcnMudHMnO1xuaW1wb3J0IHsgaXNCbGluaywgaXNXZWJraXQgfSBmcm9tICcuLi9kb20udHMnO1xuaW1wb3J0IHsgaTE4bklucHV0UmVxdWlyZWQgfSBmcm9tICcuLi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sXG4gIHR5cGUgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgdHlwZSBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IsXG59IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZWFkb25seU1peGluIH0gZnJvbSAnLi9yZWFkb25seS1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGUgZXh0ZW5kcyBTYmJSZXF1aXJlZE1peGluKFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmIFQgPT4ge1xuICAvLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IFJlbW92ZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYW5kIGRlcGVuZCBvbiBTYmJFbGVtZW50IGFzIGJhc2UgY2xhc3MgaW5zdGVhZCBvZiBMaXRFbGVtZW50XG4gIGNvbnN0IGNvbmRpdGlvbmFsU3VwZXJDbGFzcyA9IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pWydfJHNiYkVsZW1lbnQkJ11cbiAgICA/IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmXG4gICAgICAgIFQgJlxuICAgICAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IpXG4gICAgOiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcyk7XG5cbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oXG4gICAgICBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihjb25kaXRpb25hbFN1cGVyQ2xhc3MpKSksXG4gICAgKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3RleHRib3gnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZm9ybUZpZWxkQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBBbiBlbGVtZW50IHdpdGggY29udGVudGVkaXRhYmxlIHdpbGwgbm90IGVtaXQgYSBjaGFuZ2UgZXZlbnQuIFRvIGFjaGlldmUgcGFyaXR5XG4gICAgICogd2l0aCBhIG5hdGl2ZSB0ZXh0IGlucHV0LCB3ZSBuZWVkIHRvIHRyYWNrIHdoZXRoZXIgYSBjaGFuZ2UgZXZlbnQgc2hvdWxkIGJlXG4gICAgICogZW1pdHRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQSBuYXRpdmUgdGV4dCBpbnB1dCBhdHRlbXB0cyB0byBzdWJtaXQgdGhlIGZvcm0gd2hlbiBwcmVzc2luZyBFbnRlci5cbiAgICAgKiBUaGlzIGNhbiBiZSBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCBvbiB0aGUga2V5ZG93biBldmVudC5cbiAgICAgKiBXZSB0cmFjayB3aGV0aGVyIHRvIHJlcXVlc3Qgc3VibWl0LCB3aGljaCBzaG91bGQgb2NjdXIgYmVmb3JlIHRoZSBrZXl1cFxuICAgICAqIGV2ZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAndGV4dCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dC4gUmVmbGVjdHMgdGhlIGN1cnJlbnQgdGV4dCB2YWx1ZSBvZiB0aGlzIGlucHV0LlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh2YWx1ZSk7XG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWUgPz8gJyc7XG4gICAgfVxuICAgIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFQbGFjZWhvbGRlciA9IHZhbHVlID8gdmFsdWUgOiBudWxsO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgPz8gJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIC8vIFdlIHByaW1hcmlseSB1c2UgY2FwdHVyZSBldmVudCBsaXN0ZW5lcnMsIGFzIHdlIHdhbnRcbiAgICAgIC8vIG91ciBsaXN0ZW5lcnMgdG8gb2NjdXIgYmVmb3JlIGNvbnN1bWVyIGV2ZW50IGxpc3RlbmVycy5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnaW5wdXQnLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh0aGlzLnRleHRDb250ZW50ID8/ICcnKTtcbiAgICAgICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoJ3ZhbHVlJywgb2xkVmFsdWUpO1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2ludGVyYWN0ZWQnKTtcbiAgICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NoYW5nZScsICgpID0+ICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2UpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gV2UgcHJldmVudCByZWN1cnNpdmUgZXZlbnRzIGJ5IGNoZWNraW5nIHRoZSBvcmlnaW5hbCBldmVudCBmb3IgaXNUcnVzdGVkXG4gICAgICAgICAgLy8gd2hpY2ggaXMgZmFsc2UgZm9yIG1hbnVhbGx5IGRpc3BhdGNoZWQgZXZlbnRzICh3aGljaCB3ZSBkaXNwYXRjaCBiZWxvdykuXG4gICAgICAgICAgaWYgKChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykgJiYgZXZlbnQuaXNUcnVzdGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgaXNXZWJraXQgJiZcbiAgICAgICAgICAgIHRoaXMudmFsdWUgJiZcbiAgICAgICAgICAgIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnIHx8IGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpICYmXG4gICAgICAgICAgICBldmVudC5pc1RydXN0ZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEluIFdlYmtpdCBwcmVzc2luZyBCYWNrc3BhY2Ugb3IgRGVsZXRlIGNvbXBsZXRlbHkgcmVtb3ZlcyBhbGwgdGhlIGNvbnRlbnRcbiAgICAgICAgICAgIC8vIGlmIGNvbnRlbnRlZGl0YWJsZSBpcyBzZXQgb24gYSB3ZWIgY29tcG9uZW50IGhvc3QuXG4gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIHJlcGxpY2F0ZSB0aGUgbm9ybWFsIGRlbGV0ZSBiZWhhdmlvci5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRSYW5nZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCkge1xuICAgICAgICAgICAgICAvLyBJZiBhIHRleHQgcmFuZ2UgaXMgc2VsZWN0ZWQsIHRoZW4gZGVsZXRlIHRoaXMgcmFuZ2VcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyAmJiBzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0ID4gMCkge1xuICAgICAgICAgICAgICAvLyBXaGVuIHByZXNzaW5nIEJhY2tzcGFjZSwgd2Ugc2VsZWN0IHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0IC0gMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScgJiYgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQgPCB0aGlzLnZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAvLyBXaGVuIHByZXNzaW5nIERlbGV0ZSwgd2Ugc2VsZWN0IHRoZSBuZXh0IGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldEVuZChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQgKyAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5dXAnLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQpIHtcbiAgICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmZvcm0/LnJlcXVlc3RTdWJtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIC8vIGNvbnRlbnRlZGl0YWJsZSBhbGxvd3MgcGFzdGluZyByaWNoIGNvbnRlbnQgaW50byBpdHMgaG9zdC5cbiAgICAgIC8vIFdlIHByZXZlbnQgdGhpcyBieSBsaXN0ZW5pbmcgdG8gdGhlIHBhc3RlIGV2ZW50IGFuZFxuICAgICAgLy8gZXh0cmFjdGluZyB0aGUgcGxhaW4gdGV4dCBmcm9tIHRoZSBwYXN0ZWQgY29udGVudFxuICAgICAgLy8gYW5kIGluc2VydGluZyBpdCBpbnRvIHRoZSBzZWxlY3RlZCByYW5nZSAoY3Vyc29yIHBvc2l0aW9uXG4gICAgICAvLyBvciBzZWxlY3Rpb24pLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3Bhc3RlJywgKGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5fY2xlYW5UZXh0KGUuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpID8/ICcnKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSYW5nZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlIHx8ICF0ZXh0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICBzZWxlY3RlZFJhbmdlLmluc2VydE5vZGUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5wcmVwYXJlUGFzdGVkVGV4dCh0ZXh0KSkpO1xuICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCk7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgfSk7XG4gICAgICAvLyBXaGVuIGZvY3VzaW5nIGEgdGV4dCBpbnB1dCB2aWEga2V5Ym9hcmQsIHRoZSB0ZXh0IGNvbnRlbnQgc2hvdWxkIGJlIHNlbGVjdGVkLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgIC8vIFRPRE86IFRoaXMgZG9lcyBub3Qgc2VlbSB0byB3b3JrIGluIEZpcmVmb3ggd2l0aCByZWFkb25seS5cbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0b3VjaGVuZCcsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJyZuYnNwOycpO1xuICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpICYmIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICd0b3VjaCcpIHtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIE9uIGJsdXIgdGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHNjcm9sbHMgdGhlIHRleHQgdG8gdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LlxuICAgICAgLy8gV2UgbWltaWMgdGhhdCBieSByZXNldHRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi5cbiAgICAgIC8vIFdlIGFsc28gdW5zZXQgYW55IHNlbGVjdGlvbiB0byBhbGlnbiB3aXRoIHRoZSBuYXRpdmUgdGV4dCBpbnB1dC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnYmx1cicsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTXVsdGlMaW5lID0gJ2ZhbHNlJztcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIHJlcGxhY2UgYW55IGNvbnRlbnQgYnkganVzdCB0aGUgdGV4dCBjb250ZW50LlxuICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZvY3VzKG9wdGlvbnMpO1xuICAgICAgLy8gQnkgZGVmYXVsdCwgd2hlbiBjYWxsaW5nIGZvY3VzIG9uIGFuIGlucHV0IGVsZW1lbnQsIHRoZSBjdXJzb3IgaXMgcGxhY2VkXG4gICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCB0ZXh0LiBIb3dldmVyLCB3aXRoIGNvbnRlbnRlZGl0YWJsZSwgdGhlIGN1cnNvclxuICAgICAgLy8gaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcsIHNvIHdlIG1vdmUgaXQgdG8gdGhlIGVuZCwgaWYgdGhhdCBpcyB0aGUgY2FzZS5cbiAgICAgIGlmICh0aGlzLl9jYW5TZWxlY3QoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCh0aGlzLnRleHRDb250ZW50IS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IGNoYW5nZXMgdGhlIHZhbHVlIHByb3BlcnR5IHdoZW4gdGhlIHZhbHVlIGF0dHJpYnV0ZSBpc1xuICAgICAgICogY2hhbmdlZCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgbm8gaW5wdXQgZXZlbnQgaGFzIG9jY3VycmVkIHNpbmNlIGNyZWF0aW9uXG4gICAgICAgKiBvciB0aGUgbGFzdCBmb3JtIHJlc2V0LlxuICAgICAgICovXG4gICAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCAhdGhpcy5tYXRjaGVzPy4oJzpzdGF0ZShpbnRlcmFjdGVkKScpKSB7XG4gICAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdpbnRlcmFjdGVkJyk7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIENhbGxlZCB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byByZXN0b3JlIGVsZW1lbnTigJlzIHN0YXRlIHRvIHN0YXRlIGluIHdoaWNoIGNhc2VcbiAgICAgKiAgcmVhc29uIGlzIFwicmVzdG9yZVwiLCBvciB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byBmdWxmaWxsIGF1dG9maWxsIG9uIGJlaGFsZiBvZlxuICAgICAqICB1c2VyIGluIHdoaWNoIGNhc2UgcmVhc29uIGlzIFwiYXV0b2NvbXBsZXRlXCIuXG4gICAgICogIEluIHRoZSBjYXNlIG9mIFwicmVzdG9yZVwiLCBzdGF0ZSBpcyBhIHN0cmluZywgRmlsZSwgb3IgRm9ybURhdGEgb2JqZWN0XG4gICAgICogIHByZXZpb3VzbHkgc2V0IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gc2V0Rm9ybVZhbHVlLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQge1xuICAgICAgaWYgKHN0YXRlICYmIHR5cGVvZiBzdGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHN0YXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0XG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uc2VsZWN0QWxsQ2hpbGRyZW4odGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIC8vIElmIHRoZSB2YWx1ZSB3YXMgYXNzaWduZWQgYmVmb3JlIGZpcnN0VXBkYXRlLCB3ZSBoYXZlIHRvXG4gICAgICAvLyB3cml0ZSBpdCB0aGUgZG9jdW1lbnQgdG8gYmUgdmlzdWFsbHkgc2VlblxuICAgICAgaWYgKHRoaXMudmFsdWUgJiYgIXRoaXMuaW5uZXJIVE1MLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaXNDb25uZWN0ZWQgJiZcbiAgICAgICAgKG5hbWUgPT09ICdkaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ2Zvcm1EaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ3JlYWRPbmx5JylcbiAgICAgICkge1xuICAgICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAndmFsdWUnIHx8IG5hbWUgPT09ICdyZXF1aXJlZCc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnLCBpMThuSW5wdXRSZXF1aXJlZFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVpcmVzRW1wdHlQYXRjaCgpOiBib29sZWFuIHtcbiAgICAgIC8vIEluIEJsaW5rLCBhIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50IHdpdGggZW1wdHkgY29udGVudCB3aWxsIGNyYXNoXG4gICAgICAvLyB1cG9uIHJlY2VpdmluZyBmb2N1cywgd2hlbiBpbiBNb2JpbGUgbW9kZS5cbiAgICAgIC8vIFRvIHByZXZlbnQgdGhpcywgd2UgcGF0Y2ggdGhlIGVtcHR5IHN0YXRlIGJ5IGluc2VydGluZyBhIG5vbi1icmVha2luZyBzcGFjZS5cbiAgICAgIHJldHVybiBpc1NlcnZlclxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogaXNCbGluayAmJiB0aGlzLnZhbHVlID09PSAnJyAmJiB3aW5kb3cubWF0Y2hNZWRpYShTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSkubWF0Y2hlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hc3NpZ25WYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICB0aGlzLmlubmVySFRNTCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEN1cnNvckF0KHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgcmFuZ2Uuc2V0U3RhcnQodGhpcy5maXJzdENoaWxkISwgcG9zaXRpb24pO1xuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NsZWFuVGV4dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIC8vIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCByZW1vdmVzIGFsbCBuZXdsaW5lIGNoYXJhY3RlcnMgaWYgcGFzc2VkIHRvIHRoZSB2YWx1ZSBwcm9wZXJ0eVxuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gJycgOiBgJHt2YWx1ZX1gLnJlcGxhY2UoL1tcXG5cXHJdKy9nLCAnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hJbnB1dEV2ZW50KCk6IHZvaWQge1xuICAgICAgLyoqIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIEBldmVudE9wdGlvbnMoeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfY2xlYW5DaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkRWxlbWVudENvdW50KSB7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpOiB2b2lkIHtcbiAgICAgIGlmICghaXNTZXJ2ZXIgJiYgdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhUmVhZE9ubHkgPSB0aGlzLnJlYWRPbmx5ID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIC8vIFRPRE8oMjAyNik6IEZpcmVmb3ggc3VwcG9ydHMgcGxhaW50ZXh0LW9ubHkgc2luY2UgdmVyc2lvbiAxMzYgKE1hcmNoIDIwMjUpLlxuICAgICAgICAvLyBVbnRpbCB0aGlzIGlzIHBhcnQgb2Ygb3VyIGJhc2VsaW5lLCB3ZSBzaG91bGQgZmVhdHVyZSBjaGVjayB0byBlbmFibGUgaXQuXG4gICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZE9ubHlcbiAgICAgICAgICAgID8gJ2ZhbHNlJ1xuICAgICAgICAgICAgOiBwbGFpbnRleHRPbmx5U3VwcG9ydGVkXG4gICAgICAgICAgICAgID8gJ3BsYWludGV4dC1vbmx5J1xuICAgICAgICAgICAgICA6ICd0cnVlJztcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsIHZhbHVlKTtcbiAgICAgICAgLy8gSW4gdGhlIHJlYWRvbmx5IGNhc2UsIHdlIGRpc2FibGUgY29udGVudGVkaXRhYmxlLCBidXQgaXQgc3RpbGxcbiAgICAgICAgLy8gbmVlZHMgdG8gYmUgZm9jdXNhYmxlLiBXZSBhY2hpZXZlIHRoaXMgYnkgc2V0dGluZyB0YWJpbmRleCBpbiB0aGF0IGNhc2UuXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgLyoqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZCBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS4gKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW5TZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWlzU2VydmVyICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5ICYmICEhdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IHVua25vd24ge1xuICAgICAgcmV0dXJuIGh0bWxgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jbGVhbkNoaWxkcmVufT48L3Nsb3Q+YDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQTREQSxJQUFNLGtDQUEwQztBQUM5QyxLQUFJLFNBQ0YsUUFBTztDQUdULE1BQU0sTUFBTSxTQUFTLGNBQWMsTUFBTTtBQUN6QyxLQUFJLGFBQWEsbUJBQW1CLGlCQUFpQjtBQUlyRCxRQUFPLElBQUksb0JBQW9COztBQUVqQyxJQUFNLHlCQUF5QiwyQkFBMkI7Ozs7QUFNMUQsSUFBYSwrQkFDWCxlQUM0RDtDQUU1RCxNQUFNLHdCQUF5QixXQUFrRCxtQkFDNUUsYUFHRCx5QkFBeUIsV0FBVztBQWtheEMsZUFoYTRDO29CQUNsQyxpQkFDTixpQkFBaUIsaUJBQWlCLHVCQUF1QixzQkFBc0IsQ0FBQyxDQUFDLENBQ2xGOzs7OztlQUhZLHND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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/overlay/position.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,WAAW,EACX,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CACjG,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAoCrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,KAAK,EAAE,UAAU,GAAG,YAAY,GAC/B,OAAO,CAYT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACA,uBAAuB,
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/overlay/position.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,WAAW,EACX,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CACjG,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAoCrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,KAAK,EAAE,UAAU,GAAG,YAAY,GAC/B,OAAO,CAYT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACA,uBAAuB,CAuGzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,uBAAuB,CAgEzB"}
|
|
@@ -81,7 +81,9 @@ function getElementPosition(element, trigger, container, properties) {
|
|
|
81
81
|
}
|
|
82
82
|
if (horizontalOffset && alignment.horizontal !== "center" && triggerRec.width / 2 < horizontalOffset) elementXPosition += horizontalOffset * (alignment.horizontal === "start" ? -1 : 1);
|
|
83
83
|
if (triggerLeft < elementXOverflow && availableSpaceRight < elementXOverflow || document.documentElement.clientWidth < elementRec.offsetWidth) elementXPosition = document.documentElement.clientWidth / 2 - elementRec.offsetWidth / 2;
|
|
84
|
-
const
|
|
84
|
+
const fitsBelow = availableSpaceBelow - verticalOffset >= elementRec.scrollHeight;
|
|
85
|
+
const fitsAbove = availableSpaceAbove - verticalOffset >= (responsiveHeight ? elementRec.clientHeight : elementRec.scrollHeight);
|
|
86
|
+
const shouldOpenAbove = !fitsBelow && (fitsAbove || availableSpaceAbove > availableSpaceBelow);
|
|
85
87
|
if (!properties?.forceBelow && (properties?.forceAbove || shouldOpenAbove)) {
|
|
86
88
|
elementYPosition = availableSpaceAbove < elementRec.scrollHeight ? elementYPosition - triggerRec.height - availableSpaceAbove - verticalOffset : triggerTop - elementRec.clientHeight - verticalOffset;
|
|
87
89
|
elementMaxHeight = `${availableSpaceAbove - verticalOffset}px`;
|
|
@@ -148,4 +150,4 @@ function getElementPositionHorizontal(element, trigger, container, properties) {
|
|
|
148
150
|
//#endregion
|
|
149
151
|
export { getElementPosition, getElementPositionHorizontal, getElementRectangle, isEventOnElement };
|
|
150
152
|
|
|
151
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvb3ZlcmxheS9wb3NpdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFbGVtZW50UmVjdGFuZ2xlID0gUGljazxcbiAgSFRNTEVsZW1lbnQsXG4gICdzY3JvbGxIZWlnaHQnIHwgJ2NsaWVudEhlaWdodCcgfCAnb2Zmc2V0SGVpZ2h0JyB8ICdzY3JvbGxXaWR0aCcgfCAnY2xpZW50V2lkdGgnIHwgJ29mZnNldFdpZHRoJ1xuPjtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJBbGlnbm1lbnQge1xuICBob3Jpem9udGFsOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcbiAgdmVydGljYWw6ICdhYm92ZScgfCAnYmVsb3cnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYkVsZW1lbnRQb3NpdGlvbkluZm9zIHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgbWF4SGVpZ2h0OiBzdHJpbmc7XG4gIGFsaWdubWVudDogU2JiQWxpZ25tZW50O1xufVxuXG4vKipcbiAqIEdldHMgaGVpZ2h0IGFuZCB3aWR0aCBvZiBhbiBlbGVtZW50IGV2ZW4gaWYgaXQncyBoaWRkZW4gKGBkaXNwbGF5OiBub25lYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsOiBIVE1MRWxlbWVudCk6IEVsZW1lbnRSZWN0YW5nbGUge1xuICBjb25zdCBlbGVtZW50U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCksXG4gICAgZWxlbWVudERpc3BsYXkgPSBlbGVtZW50U3R5bGUuZGlzcGxheSxcbiAgICBlbGVtZW50TWF4SGVpZ2h0ID0gcGFyc2VJbnQoZWxlbWVudFN0eWxlLm1heEhlaWdodCwgMTApLnRvU3RyaW5nKCk7XG5cbiAgLy8gSWYgaXQgaXMgbm90IGhpZGRlbiB3ZSBqdXN0IHJldHVybiBub3JtYWwgaGVpZ2h0XG4gIGlmIChlbGVtZW50RGlzcGxheSAhPT0gJ25vbmUnICYmIGVsZW1lbnRNYXhIZWlnaHQgIT09ICcwJykge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxIZWlnaHQ6IGVsLnNjcm9sbEhlaWdodCxcbiAgICAgIGNsaWVudEhlaWdodDogZWwuY2xpZW50SGVpZ2h0LFxuICAgICAgb2Zmc2V0SGVpZ2h0OiBlbC5vZmZzZXRIZWlnaHQsXG4gICAgICBzY3JvbGxXaWR0aDogZWwuc2Nyb2xsV2lkdGgsXG4gICAgICBjbGllbnRXaWR0aDogZWwuY2xpZW50V2lkdGgsXG4gICAgICBvZmZzZXRXaWR0aDogZWwub2Zmc2V0V2lkdGgsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFRoZSBlbGVtZW50IGlzIGhpZGRlbiBzbzpcbiAgLy8gbWFrZSB0aGUgZWwgYmxvY2sgaW4gb3JkZXIgdG8gbWVhc3VyZSBpdHMgaGVpZ2h0IGJ1dCBzdGlsbCBiZSBoaWRkZW5cbiAgZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gIGVsLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuXG4gIGNvbnN0IHNjcm9sbEhlaWdodCA9IGVsLnNjcm9sbEhlaWdodCxcbiAgICBjbGllbnRIZWlnaHQgPSBlbC5jbGllbnRIZWlnaHQsXG4gICAgb2Zmc2V0SGVpZ2h0ID0gZWwub2Zmc2V0SGVpZ2h0LFxuICAgIHNjcm9sbFdpZHRoID0gZWwuc2Nyb2xsV2lkdGgsXG4gICAgY2xpZW50V2lkdGggPSBlbC5jbGllbnRXaWR0aCxcbiAgICBvZmZzZXRXaWR0aCA9IGVsLm9mZnNldFdpZHRoO1xuXG4gIC8vIFJldmVydGluZyB0byB0aGUgb3JpZ2luYWwgdmFsdWVzXG4gIGVsLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgZWwuc3R5bGUucG9zaXRpb24gPSAnJztcbiAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICcnO1xuXG4gIHJldHVybiB7IHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRIZWlnaHQsIHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCwgb2Zmc2V0V2lkdGggfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gZXZlbnQgaXMgZmlyZWQgb24gYSBzcGVjaWZpYyBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFdmVudE9uRWxlbWVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBldmVudDogTW91c2VFdmVudCB8IFBvaW50ZXJFdmVudCxcbik6IGJvb2xlYW4ge1xuICBpZiAoIWVsZW1lbnQgfHwgIWV2ZW50KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHJldHVybiAoXG4gICAgcmVjdC50b3AgPD0gZXZlbnQuY2xpZW50WSAmJlxuICAgIGV2ZW50LmNsaWVudFkgPD0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAmJlxuICAgIHJlY3QubGVmdCA8PSBldmVudC5jbGllbnRYICYmXG4gICAgZXZlbnQuY2xpZW50WCA8PSByZWN0LmxlZnQgKyByZWN0LndpZHRoXG4gICk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCByZWxhdGl2ZSB0byBhIHRyaWdnZXIgZWxlbWVudCBieSBldmFsdWF0aW5nXG4gKiB0aGUgb3B0aW1hbCBwb3NpdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IG9mIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgcG9zaXRpb24uXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgZWxlbWVudCByZWxhdGl2ZSB0byB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIGNvbnRhaW5lciBUaGUgZWxlbWVudCB3aGljaCBoYXMgdGhlIHBvc2l0aW9uOmZpeGVkIGFwcGxpZWQuXG4gKiBAcGFyYW0gcHJvcGVydGllcyBQcm9wZXJ0aWVzIHRvIHRha2UgaW50byBhY2NvdW50IGluIGNhbGN1bGF0aW9ucyAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMudmVydGljYWxPZmZzZXQgVGhlIGRpc3RhbmNlIHRvIGJlIGFkZGVkIGJldHdlZW4gdGhlIGVsZW1lbnQgYW5kIHRoZSB0cmlnZ2VyIChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5ob3Jpem9udGFsT2Zmc2V0IFRoZSBob3Jpem9udGFsIG9mZnNldCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5jZW50ZXJlZCBXaGV0aGVyIHRoZSBlbGVtZW50IHNob3VsZCBiZSBwbGFjZWQgaW4gdGhlIGNlbnRlciBieSBkZWZhdWx0IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5yZXNwb25zaXZlSGVpZ2h0IFdoZXRoZXIgdGhlIGVsZW1lbnQgY2FsY3VsYXRlcyBpdHMgaGVpZ2h0IGJhc2VkIG9uIGl0cyBjb250ZW50IChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBsZWZ0IHBvc2l0aW9uLCB0aGUgdG9wIHBvc2l0aW9uLCB0aGUgbWF4aW11bSBoZWlnaHRcbiAqIG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgY3VycmVudCBhbGlnbm1lbnQgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgdHJpZ2dlcjogSFRNTEVsZW1lbnQsXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gIHByb3BlcnRpZXM/OiB7XG4gICAgdmVydGljYWxPZmZzZXQ/OiBudW1iZXI7XG4gICAgaG9yaXpvbnRhbE9mZnNldD86IG51bWJlcjtcbiAgICBjZW50ZXJlZD86IGJvb2xlYW47XG4gICAgcmVzcG9uc2l2ZUhlaWdodD86IGJvb2xlYW47XG4gICAgZm9yY2VBYm92ZT86IGJvb2xlYW47XG4gICAgZm9yY2VCZWxvdz86IGJvb2xlYW47XG4gIH0sXG4pOiBTYmJFbGVtZW50UG9zaXRpb25JbmZvcyB7XG4gIGNvbnN0IG1heFdpZHRoT2Zmc2V0ID0gMTY7XG4gIGNvbnN0IHZlcnRpY2FsT2Zmc2V0ID0gcHJvcGVydGllcz8udmVydGljYWxPZmZzZXQgfHwgMDtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldCA9IHByb3BlcnRpZXM/Lmhvcml6b250YWxPZmZzZXQgfHwgMDtcbiAgY29uc3QgcmVzcG9uc2l2ZUhlaWdodCA9IHByb3BlcnRpZXM/LnJlc3BvbnNpdmVIZWlnaHQgfHwgZmFsc2U7XG5cbiAgY29uc3QgdHJpZ2dlclJlYyA9IHRyaWdnZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGVsZW1lbnRSZWMgPSBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsZW1lbnQpO1xuXG4gIGNvbnN0IHRyaWdnZXJMZWZ0ID0gdHJpZ2dlclJlYy5sZWZ0O1xuICBjb25zdCB0cmlnZ2VyVG9wID0gdHJpZ2dlclJlYy50b3A7XG5cbiAgY29uc3QgYXZhaWxhYmxlU3BhY2VSaWdodCA9XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIC0gKHRyaWdnZXJMZWZ0ICsgdHJpZ2dlclJlYy53aWR0aCk7XG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlQWJvdmUgPSB0cmlnZ2VyVG9wIC0gdmVydGljYWxPZmZzZXQ7XG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlQmVsb3cgPVxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAodHJpZ2dlclRvcCArIHRyaWdnZXJSZWMuaGVpZ2h0ICsgdmVydGljYWxPZmZzZXQpO1xuXG4gIC8vIERlZmF1bHQgZWxlbWVudCBhbGlnbm1lbnQgaXMgXCJzdGFydC9iZWxvd1wiXG4gIGxldCBlbGVtZW50WFBvc2l0aW9uID0gdHJpZ2dlckxlZnQ7XG4gIGxldCBlbGVtZW50WVBvc2l0aW9uID0gdHJpZ2dlclRvcCArIHRyaWdnZXJSZWMuaGVpZ2h0ICsgdmVydGljYWxPZmZzZXQ7XG4gIGxldCBlbGVtZW50WE92ZXJmbG93ID0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCAtIHRyaWdnZXJSZWMud2lkdGg7XG4gIGNvbnN0IGFsaWdubWVudDogU2JiQWxpZ25tZW50ID0geyBob3Jpem9udGFsOiAnc3RhcnQnLCB2ZXJ0aWNhbDogJ2JlbG93JyB9O1xuXG4gIC8vIENhbGN1bGF0ZSBlbGVtZW50IG1heC1oZWlnaHRcbiAgbGV0IGVsZW1lbnRNYXhIZWlnaHQgPSBgJHthdmFpbGFibGVTcGFjZUJlbG93IC0gdmVydGljYWxPZmZzZXR9cHhgO1xuXG4gIC8vIENoZWNrIGlmIGhvcml6b250YWwgYWxpZ25tZW50IG5lZWRzIHRvIGJlIGNoYW5nZWQgdG8gXCJjZW50ZXJcIlxuICBpZiAoXG4gICAgcHJvcGVydGllcz8uY2VudGVyZWQgJiZcbiAgICB0cmlnZ2VyTGVmdCAtIG1heFdpZHRoT2Zmc2V0ICsgdHJpZ2dlclJlYy53aWR0aCAvIDIgPiBlbGVtZW50UmVjLm9mZnNldFdpZHRoIC8gMiAmJlxuICAgIGF2YWlsYWJsZVNwYWNlUmlnaHQgLSBtYXhXaWR0aE9mZnNldCA+IGVsZW1lbnRYT3ZlcmZsb3cgLyAyXG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gLT0gZWxlbWVudFhPdmVyZmxvdyAvPSAyO1xuICAgIGFsaWdubWVudC5ob3Jpem9udGFsID0gJ2NlbnRlcic7XG4gIH1cblxuICAvLyBDaGVjayBpZiBob3Jpem9udGFsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiZW5kXCJcbiAgaWYgKGF2YWlsYWJsZVNwYWNlUmlnaHQgPCBlbGVtZW50WE92ZXJmbG93ICYmIHRyaWdnZXJMZWZ0ID4gZWxlbWVudFhPdmVyZmxvdykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gPSBlbGVtZW50WFBvc2l0aW9uIC0gZWxlbWVudFhPdmVyZmxvdztcbiAgICBhbGlnbm1lbnQuaG9yaXpvbnRhbCA9ICdlbmQnO1xuICB9XG5cbiAgLy8gQWRkIGhvcml6b250YWwgb2Zmc2V0XG4gIGlmIChcbiAgICBob3Jpem9udGFsT2Zmc2V0ICYmXG4gICAgYWxpZ25tZW50Lmhvcml6b250YWwgIT09ICdjZW50ZXInICYmXG4gICAgdHJpZ2dlclJlYy53aWR0aCAvIDIgPCBob3Jpem9udGFsT2Zmc2V0XG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gKz0gaG9yaXpvbnRhbE9mZnNldCAqIChhbGlnbm1lbnQuaG9yaXpvbnRhbCA9PT0gJ3N0YXJ0JyA/IC0xIDogMSk7XG4gIH1cblxuICAvLyBDaGVjayB3aGV0aGVyIHRoZXJlIGlzIGluc3VmZmljaWVudCBzcGFjZSBvbiBib3RoIHNpZGVzXG4gIGlmIChcbiAgICAodHJpZ2dlckxlZnQgPCBlbGVtZW50WE92ZXJmbG93ICYmIGF2YWlsYWJsZVNwYWNlUmlnaHQgPCBlbGVtZW50WE92ZXJmbG93KSB8fFxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8IGVsZW1lbnRSZWMub2Zmc2V0V2lkdGhcbiAgKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCAvIDIgLSBlbGVtZW50UmVjLm9mZnNldFdpZHRoIC8gMjtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHZlcnRpY2FsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiYWJvdmVcIjpcbiAgY29uc3Qgc2hvdWxkT3BlbkFib3ZlID1cbiAgICAoYXZhaWxhYmxlU3BhY2VCZWxvdyAtIHZlcnRpY2FsT2Zmc2V0IDwgZWxlbWVudFJlYy5zY3JvbGxIZWlnaHQgJiZcbiAgICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldCA+XG4gICAgICAgIChyZXNwb25zaXZlSGVpZ2h0ID8gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgOiBlbGVtZW50UmVjLnNjcm9sbEhlaWdodCkpIHx8XG4gICAgKGF2YWlsYWJsZVNwYWNlQWJvdmUgPiBhdmFpbGFibGVTcGFjZUJlbG93ICYmXG4gICAgICBhdmFpbGFibGVTcGFjZUJlbG93IC0gdmVydGljYWxPZmZzZXQgPCBlbGVtZW50UmVjLmNsaWVudEhlaWdodCAmJlxuICAgICAgIXJlc3BvbnNpdmVIZWlnaHQpO1xuXG4gIGlmICghcHJvcGVydGllcz8uZm9yY2VCZWxvdyAmJiAocHJvcGVydGllcz8uZm9yY2VBYm92ZSB8fCBzaG91bGRPcGVuQWJvdmUpKSB7XG4gICAgZWxlbWVudFlQb3NpdGlvbiA9XG4gICAgICBhdmFpbGFibGVTcGFjZUFib3ZlIDwgZWxlbWVudFJlYy5zY3JvbGxIZWlnaHRcbiAgICAgICAgPyBlbGVtZW50WVBvc2l0aW9uIC0gdHJpZ2dlclJlYy5oZWlnaHQgLSBhdmFpbGFibGVTcGFjZUFib3ZlIC0gdmVydGljYWxPZmZzZXRcbiAgICAgICAgOiB0cmlnZ2VyVG9wIC0gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgLSB2ZXJ0aWNhbE9mZnNldDtcblxuICAgIGVsZW1lbnRNYXhIZWlnaHQgPSBgJHthdmFpbGFibGVTcGFjZUFib3ZlIC0gdmVydGljYWxPZmZzZXR9cHhgO1xuICAgIGFsaWdubWVudC52ZXJ0aWNhbCA9ICdhYm92ZSc7XG4gIH1cblxuICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIC8vIFdoZW4gem9vbWluZyBpbiBTYWZhcmkgdGhlIGNvbnRhaW5lciByZWN0YW5nbGUgY29udGFpbnMgbmVnYXRpdmUgdmFsdWVzIGZvciB0aGUgcG9zaXRpb24sXG4gIC8vIGFuZCB3ZSBuZWVkIHRvIHJlLWFkZCB0aGVtIHRvIHRoZSBjYWxjdWxhdGVkIGNvb3JkaW5hdGVzLlxuICBpZiAoY29udGFpbmVyUmVjdC5sZWZ0IDwgMCkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gLT0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICB9XG5cbiAgLy8gTm9ybWFsbHkgdGhlIGNvbnRhaW5lclJlY3QncyB0b3AgdmFsdWUgd291bGQgYmUgemVybywgaG93ZXZlciB3aGVuIHRoZSBvdmVybGF5IGlzIGF0dGFjaGVkIHRvIGFuIGlucHV0XG4gIC8vIChlLmcuIGluIGFuIGF1dG9jb21wbGV0ZSksIG1vYmlsZSBicm93c2VycyB3aWxsIHNoaWZ0IGV2ZXJ5dGhpbmcgaW4gb3JkZXIgdG8gcHV0IHRoZSBpbnB1dCBpbiB0aGUgbWlkZGxlXG4gIC8vIG9mIHRoZSBzY3JlZW4gYW5kIHRvIG1ha2Ugc3BhY2UgZm9yIHRoZSB2aXJ0dWFsIGtleWJvYXJkLiBXZSBuZWVkIHRvIGFjY291bnQgZm9yIHRoaXMgb2Zmc2V0LFxuICAvLyBvdGhlcndpc2Ugb3VyIHBvc2l0aW9uaW5nIHdpbGwgYmUgdGhyb3duIG9mZi5cbiAgLy8gQWRkaXRpb25hbGx5LCB3aGVuIHpvb21pbmcgaW4gU2FmYXJpIHRoaXMgZml4ZXMgdGhlIHZlcnRpY2FsIHBvc2l0aW9uLlxuICBpZiAoY29udGFpbmVyUmVjdC50b3AgPCAwKSB7XG4gICAgZWxlbWVudFlQb3NpdGlvbiAtPSBjb250YWluZXJSZWN0LnRvcDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdG9wOiBlbGVtZW50WVBvc2l0aW9uLFxuICAgIGxlZnQ6IGVsZW1lbnRYUG9zaXRpb24sXG4gICAgbWF4SGVpZ2h0OiBlbGVtZW50TWF4SGVpZ2h0LFxuICAgIGFsaWdubWVudDogYWxpZ25tZW50LFxuICB9O1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gYSB0cmlnZ2VyIGVsZW1lbnQgYnkgZXZhbHVhdGluZ1xuICogdGhlIG9wdGltYWwgcG9zaXRpb24gYmFzZWQgb24gdGhlIGF2YWlsYWJsZSBzcGFjZS5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCBvZiB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIHRyaWdnZXIgVGhlIGVsZW1lbnQgcmVsYXRpdmUgdG8gd2hpY2ggdG8gY2FsY3VsYXRlIHRoZSBwb3NpdGlvbi5cbiAqIEBwYXJhbSBjb250YWluZXIgVGhlIGVsZW1lbnQgd2hpY2ggaGFzIHRoZSBwb3NpdGlvbjpmaXhlZCBhcHBsaWVkLlxuICogQHBhcmFtIHByb3BlcnRpZXMgUHJvcGVydGllcyB0byB0YWtlIGludG8gYWNjb3VudCBpbiBjYWxjdWxhdGlvbnMgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzLnZlcnRpY2FsT2Zmc2V0IFRoZSBkaXN0YW5jZSB0byBiZSBhZGRlZCBiZXR3ZWVuIHRoZSBlbGVtZW50IGFuZCB0aGUgdHJpZ2dlciAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMuaG9yaXpvbnRhbE9mZnNldCBUaGUgaG9yaXpvbnRhbCBvZmZzZXQgdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudCAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMucmVzcG9uc2l2ZUhlaWdodCBXaGV0aGVyIHRoZSBlbGVtZW50IGNhbGN1bGF0ZXMgaXRzIGhlaWdodCBiYXNlZCBvbiBpdHMgY29udGVudCAob3B0aW9uYWwpLlxuICogQHJldHVybnMgUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgbGVmdCBwb3NpdGlvbiwgdGhlIHRvcCBwb3NpdGlvbiwgdGhlIG1heGltdW0gaGVpZ2h0XG4gKiBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGN1cnJlbnQgYWxpZ25tZW50IG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRQb3NpdGlvbkhvcml6b250YWwoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICB0cmlnZ2VyOiBIVE1MRWxlbWVudCxcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCxcbiAgcHJvcGVydGllcz86IHtcbiAgICB2ZXJ0aWNhbE9mZnNldD86IG51bWJlcjtcbiAgICBob3Jpem9udGFsT2Zmc2V0PzogbnVtYmVyO1xuICAgIHJlc3BvbnNpdmVIZWlnaHQ/OiBib29sZWFuO1xuICAgIGNvbnRlbnRTZWxlY3Rvcj86IHN0cmluZztcbiAgfSxcbik6IFNiYkVsZW1lbnRQb3NpdGlvbkluZm9zIHtcbiAgY29uc3QgbWF4SGVpZ2h0T2Zmc2V0ID0gMTY7XG5cbiAgY29uc3QgdmVydGljYWxPZmZzZXQgPSBwcm9wZXJ0aWVzPy52ZXJ0aWNhbE9mZnNldCB8fCAwO1xuICBjb25zdCBob3Jpem9udGFsT2Zmc2V0ID0gcHJvcGVydGllcz8uaG9yaXpvbnRhbE9mZnNldCB8fCAwO1xuXG4gIGNvbnN0IHRyaWdnZXJSZWMgPSB0cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBlbGVtZW50UmVjID0gZ2V0RWxlbWVudFJlY3RhbmdsZShlbGVtZW50KTtcbiAgY29uc3QgdHJpZ2dlclBhcmVudFJlYyA9IHRyaWdnZXJcbiAgICAucGFyZW50RWxlbWVudCEuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihcbiAgICAgIHByb3BlcnRpZXM/LmNvbnRlbnRTZWxlY3RvciA/PyBgLiR7ZWxlbWVudC5jbGFzc05hbWV9YCxcbiAgICApIVxuICAgIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICBjb25zdCBhdmFpbGFibGVTcGFjZVJpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIC0gdHJpZ2dlclBhcmVudFJlYy5yaWdodDtcbiAgY29uc3QgYXZhaWxhYmxlU3BhY2VCZWxvdyA9XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtICh0cmlnZ2VyUmVjLnRvcCAtIHZlcnRpY2FsT2Zmc2V0KTtcbiAgY29uc3QgYXZhaWxhYmxlVmVydGljYWxTcGFjZSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gIGNvbnN0IGVsZW1lbnRNYXhIZWlnaHQgPSBgJHthdmFpbGFibGVWZXJ0aWNhbFNwYWNlIC0gbWF4SGVpZ2h0T2Zmc2V0ICogMn1weGA7XG4gIGNvbnN0IGFsaWdubWVudDogU2JiQWxpZ25tZW50ID0geyBob3Jpem9udGFsOiAnZW5kJywgdmVydGljYWw6ICdhYm92ZScgfTtcbiAgY29uc3QgZWxlbWVudFhPdmVyZmxvdyA9IGVsZW1lbnRSZWMub2Zmc2V0V2lkdGggKyBob3Jpem9udGFsT2Zmc2V0O1xuXG4gIC8vIERlZmF1bHQgZWxlbWVudCBhbGlnbm1lbnQgaXMgXCJlbmQvYWJvdmVcIlxuICBsZXQgZWxlbWVudFhQb3NpdGlvbiA9IHRyaWdnZXJQYXJlbnRSZWMucmlnaHQ7XG4gIGxldCBlbGVtZW50WVBvc2l0aW9uID0gdHJpZ2dlclJlYy50b3AgKyB2ZXJ0aWNhbE9mZnNldDtcblxuICAvLyBDaGVjayBpZiBob3Jpem9udGFsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwic3RhcnRcIlxuICBpZiAoYXZhaWxhYmxlU3BhY2VSaWdodCA8IGVsZW1lbnRYT3ZlcmZsb3cgJiYgdHJpZ2dlclJlYy5sZWZ0ID4gZWxlbWVudFhPdmVyZmxvdykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gPSBlbGVtZW50WFBvc2l0aW9uIC0gdHJpZ2dlclBhcmVudFJlYy53aWR0aCAtIGVsZW1lbnRSZWMub2Zmc2V0V2lkdGg7XG4gICAgYWxpZ25tZW50Lmhvcml6b250YWwgPSAnc3RhcnQnO1xuICB9XG5cbiAgLy8gQWRkIGhvcml6b250YWwgb2Zmc2V0XG4gIGlmIChob3Jpem9udGFsT2Zmc2V0ICYmIGFsaWdubWVudC5ob3Jpem9udGFsICE9PSAnY2VudGVyJykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gKz0gaG9yaXpvbnRhbE9mZnNldCAqIChhbGlnbm1lbnQuaG9yaXpvbnRhbCA9PT0gJ3N0YXJ0JyA/IC0xIDogMSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB2ZXJ0aWNhbCBhbGlnbm1lbnQgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBcImFib3ZlXCI6XG4gIGlmIChhdmFpbGFibGVTcGFjZUJlbG93IDwgZWxlbWVudFJlYy5zY3JvbGxIZWlnaHQpIHtcbiAgICBlbGVtZW50WVBvc2l0aW9uID0gYXZhaWxhYmxlVmVydGljYWxTcGFjZSAtIGVsZW1lbnRSZWMuY2xpZW50SGVpZ2h0IC0gbWF4SGVpZ2h0T2Zmc2V0O1xuICB9XG5cbiAgLy8gV2hlbiB6b29taW5nIGluIFNhZmFyaSB0aGUgY29udGFpbmVyIHJlY3RhbmdsZSBjb250YWlucyBuZWdhdGl2ZSB2YWx1ZXMgZm9yIHRoZSBwb3NpdGlvbixcbiAgLy8gYW5kIHdlIG5lZWQgdG8gcmUtYWRkIHRoZW0gdG8gdGhlIGNhbGN1bGF0ZWQgY29vcmRpbmF0ZXMuXG4gIGlmIChjb250YWluZXJSZWN0LmxlZnQgPCAwKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiAtPSBjb250YWluZXJSZWN0LmxlZnQ7XG4gIH1cblxuICAvLyBOb3JtYWxseSB0aGUgY29udGFpbmVyUmVjdCdzIHRvcCB2YWx1ZSB3b3VsZCBiZSB6ZXJvLCBob3dldmVyIHdoZW4gdGhlIG92ZXJsYXkgaXMgYXR0YWNoZWQgdG8gYW4gaW5wdXRcbiAgLy8gKGUuZy4gaW4gYW4gYXV0b2NvbXBsZXRlKSwgbW9iaWxlIGJyb3dzZXJzIHdpbGwgc2hpZnQgZXZlcnl0aGluZyBpbiBvcmRlciB0byBwdXQgdGhlIGlucHV0IGluIHRoZSBtaWRkbGVcbiAgLy8gb2YgdGhlIHNjcmVlbiBhbmQgdG8gbWFrZSBzcGFjZSBmb3IgdGhlIHZpcnR1YWwga2V5Ym9hcmQuIFdlIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBvZmZzZXQsXG4gIC8vIG90aGVyd2lzZSBvdXIgcG9zaXRpb25pbmcgd2lsbCBiZSB0aHJvd24gb2ZmLlxuICAvLyBBZGRpdGlvbmFsbHksIHdoZW4gem9vbWluZyBpbiBTYWZhcmkgdGhpcyBmaXhlcyB0aGUgdmVydGljYWwgcG9zaXRpb24uXG4gIGlmIChjb250YWluZXJSZWN0LnRvcCA8IDApIHtcbiAgICBlbGVtZW50WVBvc2l0aW9uIC09IGNvbnRhaW5lclJlY3QudG9wO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IGVsZW1lbnRZUG9zaXRpb24sXG4gICAgbGVmdDogZWxlbWVudFhQb3NpdGlvbixcbiAgICBtYXhIZWlnaHQ6IGVsZW1lbnRNYXhIZWlnaHQsXG4gICAgYWxpZ25tZW50OiBhbGlnbm1lbnQsXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFvQkEsU0FBZ0Isb0JBQW9CLElBQWU7Q0FDakQsTUFBTSxlQUFlLE9BQU8saUJBQWlCLEdBQUcsRUFDOUMsaUJBQWlCLGFBQWEsU0FDOUIsbUJBQW1CLFNBQVMsYUFBYSxXQUFXLEdBQUcsQ0FBQyxVQUFVO0FBR3BFLEtBQUksbUJBQW1CLFVBQVUscUJBQXFCLElBQ3BELFFBQU87RUFDTCxjQUFjLEdBQUc7RUFDakIsY0FBYyxHQUFHO0VBQ2pCLGNBQWMsR0FBRztFQUNqQixhQUFhLEdBQUc7RUFDaEIsYUFBYSxHQUFHO0VBQ2hCLGFBQWEsR0FBRztFQUNqQjtBQUtILElBQUcsTUFBTSxXQUFXO0FBQ3BCLElBQUcsTUFBTSxhQUFhO0FBQ3RCLElBQUcsTUFBTSxVQUFVO0NBRW5CLE1BQU0sZUFBZSxHQUFHLGNBQ3RCLGVBQWUsR0FBRyxjQUNsQixlQUFlLEdBQUcsY0FDbEIsY0FBYyxHQUFHLGFBQ2pCLGNBQWMsR0FBRyxhQUNqQixjQUFjLEdBQUc7QUFHbkIsSUFBRyxNQUFNLFVBQVU7QUFDbkIsSUFBRyxNQUFNLFdBQVc7QUFDcEIsSUFBRyxNQUFNLGFBQWE7QUFFdEIsUUFBTztFQUFFO0VBQWM7RUFBYztFQUFjO0VBQWE7RUFBYTtFQUFhOzs7OztBQU01RixTQUFnQixpQkFDZCxTQUNBLE9BQWdDO0FBRWhDLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFDZixRQUFPO0NBR1QsTUFBTSxPQUFPLFFB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
|
|
153
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvb3ZlcmxheS9wb3NpdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFbGVtZW50UmVjdGFuZ2xlID0gUGljazxcbiAgSFRNTEVsZW1lbnQsXG4gICdzY3JvbGxIZWlnaHQnIHwgJ2NsaWVudEhlaWdodCcgfCAnb2Zmc2V0SGVpZ2h0JyB8ICdzY3JvbGxXaWR0aCcgfCAnY2xpZW50V2lkdGgnIHwgJ29mZnNldFdpZHRoJ1xuPjtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJBbGlnbm1lbnQge1xuICBob3Jpem9udGFsOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcbiAgdmVydGljYWw6ICdhYm92ZScgfCAnYmVsb3cnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYkVsZW1lbnRQb3NpdGlvbkluZm9zIHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgbWF4SGVpZ2h0OiBzdHJpbmc7XG4gIGFsaWdubWVudDogU2JiQWxpZ25tZW50O1xufVxuXG4vKipcbiAqIEdldHMgaGVpZ2h0IGFuZCB3aWR0aCBvZiBhbiBlbGVtZW50IGV2ZW4gaWYgaXQncyBoaWRkZW4gKGBkaXNwbGF5OiBub25lYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsOiBIVE1MRWxlbWVudCk6IEVsZW1lbnRSZWN0YW5nbGUge1xuICBjb25zdCBlbGVtZW50U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCksXG4gICAgZWxlbWVudERpc3BsYXkgPSBlbGVtZW50U3R5bGUuZGlzcGxheSxcbiAgICBlbGVtZW50TWF4SGVpZ2h0ID0gcGFyc2VJbnQoZWxlbWVudFN0eWxlLm1heEhlaWdodCwgMTApLnRvU3RyaW5nKCk7XG5cbiAgLy8gSWYgaXQgaXMgbm90IGhpZGRlbiB3ZSBqdXN0IHJldHVybiBub3JtYWwgaGVpZ2h0XG4gIGlmIChlbGVtZW50RGlzcGxheSAhPT0gJ25vbmUnICYmIGVsZW1lbnRNYXhIZWlnaHQgIT09ICcwJykge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxIZWlnaHQ6IGVsLnNjcm9sbEhlaWdodCxcbiAgICAgIGNsaWVudEhlaWdodDogZWwuY2xpZW50SGVpZ2h0LFxuICAgICAgb2Zmc2V0SGVpZ2h0OiBlbC5vZmZzZXRIZWlnaHQsXG4gICAgICBzY3JvbGxXaWR0aDogZWwuc2Nyb2xsV2lkdGgsXG4gICAgICBjbGllbnRXaWR0aDogZWwuY2xpZW50V2lkdGgsXG4gICAgICBvZmZzZXRXaWR0aDogZWwub2Zmc2V0V2lkdGgsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFRoZSBlbGVtZW50IGlzIGhpZGRlbiBzbzpcbiAgLy8gbWFrZSB0aGUgZWwgYmxvY2sgaW4gb3JkZXIgdG8gbWVhc3VyZSBpdHMgaGVpZ2h0IGJ1dCBzdGlsbCBiZSBoaWRkZW5cbiAgZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gIGVsLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuXG4gIGNvbnN0IHNjcm9sbEhlaWdodCA9IGVsLnNjcm9sbEhlaWdodCxcbiAgICBjbGllbnRIZWlnaHQgPSBlbC5jbGllbnRIZWlnaHQsXG4gICAgb2Zmc2V0SGVpZ2h0ID0gZWwub2Zmc2V0SGVpZ2h0LFxuICAgIHNjcm9sbFdpZHRoID0gZWwuc2Nyb2xsV2lkdGgsXG4gICAgY2xpZW50V2lkdGggPSBlbC5jbGllbnRXaWR0aCxcbiAgICBvZmZzZXRXaWR0aCA9IGVsLm9mZnNldFdpZHRoO1xuXG4gIC8vIFJldmVydGluZyB0byB0aGUgb3JpZ2luYWwgdmFsdWVzXG4gIGVsLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgZWwuc3R5bGUucG9zaXRpb24gPSAnJztcbiAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICcnO1xuXG4gIHJldHVybiB7IHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRIZWlnaHQsIHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCwgb2Zmc2V0V2lkdGggfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gZXZlbnQgaXMgZmlyZWQgb24gYSBzcGVjaWZpYyBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFdmVudE9uRWxlbWVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBldmVudDogTW91c2VFdmVudCB8IFBvaW50ZXJFdmVudCxcbik6IGJvb2xlYW4ge1xuICBpZiAoIWVsZW1lbnQgfHwgIWV2ZW50KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHJldHVybiAoXG4gICAgcmVjdC50b3AgPD0gZXZlbnQuY2xpZW50WSAmJlxuICAgIGV2ZW50LmNsaWVudFkgPD0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAmJlxuICAgIHJlY3QubGVmdCA8PSBldmVudC5jbGllbnRYICYmXG4gICAgZXZlbnQuY2xpZW50WCA8PSByZWN0LmxlZnQgKyByZWN0LndpZHRoXG4gICk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCByZWxhdGl2ZSB0byBhIHRyaWdnZXIgZWxlbWVudCBieSBldmFsdWF0aW5nXG4gKiB0aGUgb3B0aW1hbCBwb3NpdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IG9mIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgcG9zaXRpb24uXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgZWxlbWVudCByZWxhdGl2ZSB0byB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIGNvbnRhaW5lciBUaGUgZWxlbWVudCB3aGljaCBoYXMgdGhlIHBvc2l0aW9uOmZpeGVkIGFwcGxpZWQuXG4gKiBAcGFyYW0gcHJvcGVydGllcyBQcm9wZXJ0aWVzIHRvIHRha2UgaW50byBhY2NvdW50IGluIGNhbGN1bGF0aW9ucyAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMudmVydGljYWxPZmZzZXQgVGhlIGRpc3RhbmNlIHRvIGJlIGFkZGVkIGJldHdlZW4gdGhlIGVsZW1lbnQgYW5kIHRoZSB0cmlnZ2VyIChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5ob3Jpem9udGFsT2Zmc2V0IFRoZSBob3Jpem9udGFsIG9mZnNldCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5jZW50ZXJlZCBXaGV0aGVyIHRoZSBlbGVtZW50IHNob3VsZCBiZSBwbGFjZWQgaW4gdGhlIGNlbnRlciBieSBkZWZhdWx0IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5yZXNwb25zaXZlSGVpZ2h0IFdoZXRoZXIgdGhlIGVsZW1lbnQgY2FsY3VsYXRlcyBpdHMgaGVpZ2h0IGJhc2VkIG9uIGl0cyBjb250ZW50IChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBsZWZ0IHBvc2l0aW9uLCB0aGUgdG9wIHBvc2l0aW9uLCB0aGUgbWF4aW11bSBoZWlnaHRcbiAqIG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgY3VycmVudCBhbGlnbm1lbnQgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgdHJpZ2dlcjogSFRNTEVsZW1lbnQsXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gIHByb3BlcnRpZXM/OiB7XG4gICAgdmVydGljYWxPZmZzZXQ/OiBudW1iZXI7XG4gICAgaG9yaXpvbnRhbE9mZnNldD86IG51bWJlcjtcbiAgICBjZW50ZXJlZD86IGJvb2xlYW47XG4gICAgcmVzcG9uc2l2ZUhlaWdodD86IGJvb2xlYW47XG4gICAgZm9yY2VBYm92ZT86IGJvb2xlYW47XG4gICAgZm9yY2VCZWxvdz86IGJvb2xlYW47XG4gIH0sXG4pOiBTYmJFbGVtZW50UG9zaXRpb25JbmZvcyB7XG4gIGNvbnN0IG1heFdpZHRoT2Zmc2V0ID0gMTY7XG4gIGNvbnN0IHZlcnRpY2FsT2Zmc2V0ID0gcHJvcGVydGllcz8udmVydGljYWxPZmZzZXQgfHwgMDtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldCA9IHByb3BlcnRpZXM/Lmhvcml6b250YWxPZmZzZXQgfHwgMDtcbiAgY29uc3QgcmVzcG9uc2l2ZUhlaWdodCA9IHByb3BlcnRpZXM/LnJlc3BvbnNpdmVIZWlnaHQgfHwgZmFsc2U7XG5cbiAgY29uc3QgdHJpZ2dlclJlYyA9IHRyaWdnZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGVsZW1lbnRSZWMgPSBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsZW1lbnQpO1xuXG4gIGNvbnN0IHRyaWdnZXJMZWZ0ID0gdHJpZ2dlclJlYy5sZWZ0O1xuICBjb25zdCB0cmlnZ2VyVG9wID0gdHJpZ2dlclJlYy50b3A7XG5cbiAgY29uc3QgYXZhaWxhYmxlU3BhY2VSaWdodCA9XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIC0gKHRyaWdnZXJMZWZ0ICsgdHJpZ2dlclJlYy53aWR0aCk7XG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlQWJvdmUgPSB0cmlnZ2VyVG9wIC0gdmVydGljYWxPZmZzZXQ7XG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlQmVsb3cgPVxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAodHJpZ2dlclRvcCArIHRyaWdnZXJSZWMuaGVpZ2h0ICsgdmVydGljYWxPZmZzZXQpO1xuXG4gIC8vIERlZmF1bHQgZWxlbWVudCBhbGlnbm1lbnQgaXMgXCJzdGFydC9iZWxvd1wiXG4gIGxldCBlbGVtZW50WFBvc2l0aW9uID0gdHJpZ2dlckxlZnQ7XG4gIGxldCBlbGVtZW50WVBvc2l0aW9uID0gdHJpZ2dlclRvcCArIHRyaWdnZXJSZWMuaGVpZ2h0ICsgdmVydGljYWxPZmZzZXQ7XG4gIGxldCBlbGVtZW50WE92ZXJmbG93ID0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCAtIHRyaWdnZXJSZWMud2lkdGg7XG4gIGNvbnN0IGFsaWdubWVudDogU2JiQWxpZ25tZW50ID0geyBob3Jpem9udGFsOiAnc3RhcnQnLCB2ZXJ0aWNhbDogJ2JlbG93JyB9O1xuXG4gIC8vIENhbGN1bGF0ZSBlbGVtZW50IG1heC1oZWlnaHRcbiAgbGV0IGVsZW1lbnRNYXhIZWlnaHQgPSBgJHthdmFpbGFibGVTcGFjZUJlbG93IC0gdmVydGljYWxPZmZzZXR9cHhgO1xuXG4gIC8vIENoZWNrIGlmIGhvcml6b250YWwgYWxpZ25tZW50IG5lZWRzIHRvIGJlIGNoYW5nZWQgdG8gXCJjZW50ZXJcIlxuICBpZiAoXG4gICAgcHJvcGVydGllcz8uY2VudGVyZWQgJiZcbiAgICB0cmlnZ2VyTGVmdCAtIG1heFdpZHRoT2Zmc2V0ICsgdHJpZ2dlclJlYy53aWR0aCAvIDIgPiBlbGVtZW50UmVjLm9mZnNldFdpZHRoIC8gMiAmJlxuICAgIGF2YWlsYWJsZVNwYWNlUmlnaHQgLSBtYXhXaWR0aE9mZnNldCA+IGVsZW1lbnRYT3ZlcmZsb3cgLyAyXG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gLT0gZWxlbWVudFhPdmVyZmxvdyAvPSAyO1xuICAgIGFsaWdubWVudC5ob3Jpem9udGFsID0gJ2NlbnRlcic7XG4gIH1cblxuICAvLyBDaGVjayBpZiBob3Jpem9udGFsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiZW5kXCJcbiAgaWYgKGF2YWlsYWJsZVNwYWNlUmlnaHQgPCBlbGVtZW50WE92ZXJmbG93ICYmIHRyaWdnZXJMZWZ0ID4gZWxlbWVudFhPdmVyZmxvdykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gPSBlbGVtZW50WFBvc2l0aW9uIC0gZWxlbWVudFhPdmVyZmxvdztcbiAgICBhbGlnbm1lbnQuaG9yaXpvbnRhbCA9ICdlbmQnO1xuICB9XG5cbiAgLy8gQWRkIGhvcml6b250YWwgb2Zmc2V0XG4gIGlmIChcbiAgICBob3Jpem9udGFsT2Zmc2V0ICYmXG4gICAgYWxpZ25tZW50Lmhvcml6b250YWwgIT09ICdjZW50ZXInICYmXG4gICAgdHJpZ2dlclJlYy53aWR0aCAvIDIgPCBob3Jpem9udGFsT2Zmc2V0XG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gKz0gaG9yaXpvbnRhbE9mZnNldCAqIChhbGlnbm1lbnQuaG9yaXpvbnRhbCA9PT0gJ3N0YXJ0JyA/IC0xIDogMSk7XG4gIH1cblxuICAvLyBDaGVjayB3aGV0aGVyIHRoZXJlIGlzIGluc3VmZmljaWVudCBzcGFjZSBvbiBib3RoIHNpZGVzXG4gIGlmIChcbiAgICAodHJpZ2dlckxlZnQgPCBlbGVtZW50WE92ZXJmbG93ICYmIGF2YWlsYWJsZVNwYWNlUmlnaHQgPCBlbGVtZW50WE92ZXJmbG93KSB8fFxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8IGVsZW1lbnRSZWMub2Zmc2V0V2lkdGhcbiAgKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCAvIDIgLSBlbGVtZW50UmVjLm9mZnNldFdpZHRoIC8gMjtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHZlcnRpY2FsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiYWJvdmVcIi5cbiAgLy8gV2hlbiB0aGUgZWxlbWVudCBkb2Vzbid0IGZpdCBpbiBlaXRoZXIgZGlyZWN0aW9uLCBwcmVmZXIgdGhlIHNpZGUgd2l0aCBtb3JlIHNwYWNlXG4gIC8vIHRvIGF2b2lkIGFuIGluZmluaXRlIHJlcG9zaXRpb25pbmcgbG9vcCAoYWJvdmUg4oaUIGJlbG93KS5cbiAgY29uc3QgZml0c0JlbG93ID0gYXZhaWxhYmxlU3BhY2VCZWxvdyAtIHZlcnRpY2FsT2Zmc2V0ID49IGVsZW1lbnRSZWMuc2Nyb2xsSGVpZ2h0O1xuICBjb25zdCBmaXRzQWJvdmUgPVxuICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldCA+PVxuICAgIChyZXNwb25zaXZlSGVpZ2h0ID8gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgOiBlbGVtZW50UmVjLnNjcm9sbEhlaWdodCk7XG4gIGNvbnN0IG1vcmVTcGFjZUFib3ZlID0gYXZhaWxhYmxlU3BhY2VBYm92ZSA+IGF2YWlsYWJsZVNwYWNlQmVsb3c7XG4gIGNvbnN0IHNob3VsZE9wZW5BYm92ZSA9ICFmaXRzQmVsb3cgJiYgKGZpdHNBYm92ZSB8fCBtb3JlU3BhY2VBYm92ZSk7XG5cbiAgaWYgKCFwcm9wZXJ0aWVzPy5mb3JjZUJlbG93ICYmIChwcm9wZXJ0aWVzPy5mb3JjZUFib3ZlIHx8IHNob3VsZE9wZW5BYm92ZSkpIHtcbiAgICBlbGVtZW50WVBvc2l0aW9uID1cbiAgICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgPCBlbGVtZW50UmVjLnNjcm9sbEhlaWdodFxuICAgICAgICA/IGVsZW1lbnRZUG9zaXRpb24gLSB0cmlnZ2VyUmVjLmhlaWdodCAtIGF2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldFxuICAgICAgICA6IHRyaWdnZXJUb3AgLSBlbGVtZW50UmVjLmNsaWVudEhlaWdodCAtIHZlcnRpY2FsT2Zmc2V0O1xuXG4gICAgZWxlbWVudE1heEhlaWdodCA9IGAke2F2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldH1weGA7XG4gICAgYWxpZ25tZW50LnZlcnRpY2FsID0gJ2Fib3ZlJztcbiAgfVxuXG4gIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgLy8gV2hlbiB6b29taW5nIGluIFNhZmFyaSB0aGUgY29udGFpbmVyIHJlY3RhbmdsZSBjb250YWlucyBuZWdhdGl2ZSB2YWx1ZXMgZm9yIHRoZSBwb3NpdGlvbixcbiAgLy8gYW5kIHdlIG5lZWQgdG8gcmUtYWRkIHRoZW0gdG8gdGhlIGNhbGN1bGF0ZWQgY29vcmRpbmF0ZXMuXG4gIGlmIChjb250YWluZXJSZWN0LmxlZnQgPCAwKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiAtPSBjb250YWluZXJSZWN0LmxlZnQ7XG4gIH1cblxuICAvLyBOb3JtYWxseSB0aGUgY29udGFpbmVyUmVjdCdzIHRvcCB2YWx1ZSB3b3VsZCBiZSB6ZXJvLCBob3dldmVyIHdoZW4gdGhlIG92ZXJsYXkgaXMgYXR0YWNoZWQgdG8gYW4gaW5wdXRcbiAgLy8gKGUuZy4gaW4gYW4gYXV0b2NvbXBsZXRlKSwgbW9iaWxlIGJyb3dzZXJzIHdpbGwgc2hpZnQgZXZlcnl0aGluZyBpbiBvcmRlciB0byBwdXQgdGhlIGlucHV0IGluIHRoZSBtaWRkbGVcbiAgLy8gb2YgdGhlIHNjcmVlbiBhbmQgdG8gbWFrZSBzcGFjZSBmb3IgdGhlIHZpcnR1YWwga2V5Ym9hcmQuIFdlIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBvZmZzZXQsXG4gIC8vIG90aGVyd2lzZSBvdXIgcG9zaXRpb25pbmcgd2lsbCBiZSB0aHJvd24gb2ZmLlxuICAvLyBBZGRpdGlvbmFsbHksIHdoZW4gem9vbWluZyBpbiBTYWZhcmkgdGhpcyBmaXhlcyB0aGUgdmVydGljYWwgcG9zaXRpb24uXG4gIGlmIChjb250YWluZXJSZWN0LnRvcCA8IDApIHtcbiAgICBlbGVtZW50WVBvc2l0aW9uIC09IGNvbnRhaW5lclJlY3QudG9wO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IGVsZW1lbnRZUG9zaXRpb24sXG4gICAgbGVmdDogZWxlbWVudFhQb3NpdGlvbixcbiAgICBtYXhIZWlnaHQ6IGVsZW1lbnRNYXhIZWlnaHQsXG4gICAgYWxpZ25tZW50OiBhbGlnbm1lbnQsXG4gIH07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCByZWxhdGl2ZSB0byBhIHRyaWdnZXIgZWxlbWVudCBieSBldmFsdWF0aW5nXG4gKiB0aGUgb3B0aW1hbCBwb3NpdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IG9mIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgcG9zaXRpb24uXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgZWxlbWVudCByZWxhdGl2ZSB0byB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIGNvbnRhaW5lciBUaGUgZWxlbWVudCB3aGljaCBoYXMgdGhlIHBvc2l0aW9uOmZpeGVkIGFwcGxpZWQuXG4gKiBAcGFyYW0gcHJvcGVydGllcyBQcm9wZXJ0aWVzIHRvIHRha2UgaW50byBhY2NvdW50IGluIGNhbGN1bGF0aW9ucyAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMudmVydGljYWxPZmZzZXQgVGhlIGRpc3RhbmNlIHRvIGJlIGFkZGVkIGJldHdlZW4gdGhlIGVsZW1lbnQgYW5kIHRoZSB0cmlnZ2VyIChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5ob3Jpem9udGFsT2Zmc2V0IFRoZSBob3Jpem9udGFsIG9mZnNldCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5yZXNwb25zaXZlSGVpZ2h0IFdoZXRoZXIgdGhlIGVsZW1lbnQgY2FsY3VsYXRlcyBpdHMgaGVpZ2h0IGJhc2VkIG9uIGl0cyBjb250ZW50IChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBsZWZ0IHBvc2l0aW9uLCB0aGUgdG9wIHBvc2l0aW9uLCB0aGUgbWF4aW11bSBoZWlnaHRcbiAqIG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgY3VycmVudCBhbGlnbm1lbnQgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudFBvc2l0aW9uSG9yaXpvbnRhbChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHRyaWdnZXI6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICBwcm9wZXJ0aWVzPzoge1xuICAgIHZlcnRpY2FsT2Zmc2V0PzogbnVtYmVyO1xuICAgIGhvcml6b250YWxPZmZzZXQ/OiBudW1iZXI7XG4gICAgcmVzcG9uc2l2ZUhlaWdodD86IGJvb2xlYW47XG4gICAgY29udGVudFNlbGVjdG9yPzogc3RyaW5nO1xuICB9LFxuKTogU2JiRWxlbWVudFBvc2l0aW9uSW5mb3Mge1xuICBjb25zdCBtYXhIZWlnaHRPZmZzZXQgPSAxNjtcblxuICBjb25zdCB2ZXJ0aWNhbE9mZnNldCA9IHByb3BlcnRpZXM/LnZlcnRpY2FsT2Zmc2V0IHx8IDA7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXQgPSBwcm9wZXJ0aWVzPy5ob3Jpem9udGFsT2Zmc2V0IHx8IDA7XG5cbiAgY29uc3QgdHJpZ2dlclJlYyA9IHRyaWdnZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGVsZW1lbnRSZWMgPSBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICBjb25zdCB0cmlnZ2VyUGFyZW50UmVjID0gdHJpZ2dlclxuICAgIC5wYXJlbnRFbGVtZW50IS5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKFxuICAgICAgcHJvcGVydGllcz8uY29udGVudFNlbGVjdG9yID8/IGAuJHtlbGVtZW50LmNsYXNzTmFtZX1gLFxuICAgICkhXG4gICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlUmlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggLSB0cmlnZ2VyUGFyZW50UmVjLnJpZ2h0O1xuICBjb25zdCBhdmFpbGFibGVTcGFjZUJlbG93ID1cbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gKHRyaWdnZXJSZWMudG9wIC0gdmVydGljYWxPZmZzZXQpO1xuICBjb25zdCBhdmFpbGFibGVWZXJ0aWNhbFNwYWNlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgY29uc3QgZWxlbWVudE1heEhlaWdodCA9IGAke2F2YWlsYWJsZVZlcnRpY2FsU3BhY2UgLSBtYXhIZWlnaHRPZmZzZXQgKiAyfXB4YDtcbiAgY29uc3QgYWxpZ25tZW50OiBTYmJBbGlnbm1lbnQgPSB7IGhvcml6b250YWw6ICdlbmQnLCB2ZXJ0aWNhbDogJ2Fib3ZlJyB9O1xuICBjb25zdCBlbGVtZW50WE92ZXJmbG93ID0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCArIGhvcml6b250YWxPZmZzZXQ7XG5cbiAgLy8gRGVmYXVsdCBlbGVtZW50IGFsaWdubWVudCBpcyBcImVuZC9hYm92ZVwiXG4gIGxldCBlbGVtZW50WFBvc2l0aW9uID0gdHJpZ2dlclBhcmVudFJlYy5yaWdodDtcbiAgbGV0IGVsZW1lbnRZUG9zaXRpb24gPSB0cmlnZ2VyUmVjLnRvcCArIHZlcnRpY2FsT2Zmc2V0O1xuXG4gIC8vIENoZWNrIGlmIGhvcml6b250YWwgYWxpZ25tZW50IG5lZWRzIHRvIGJlIGNoYW5nZWQgdG8gXCJzdGFydFwiXG4gIGlmIChhdmFpbGFibGVTcGFjZVJpZ2h0IDwgZWxlbWVudFhPdmVyZmxvdyAmJiB0cmlnZ2VyUmVjLmxlZnQgPiBlbGVtZW50WE92ZXJmbG93KSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiA9IGVsZW1lbnRYUG9zaXRpb24gLSB0cmlnZ2VyUGFyZW50UmVjLndpZHRoIC0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aDtcbiAgICBhbGlnbm1lbnQuaG9yaXpvbnRhbCA9ICdzdGFydCc7XG4gIH1cblxuICAvLyBBZGQgaG9yaXpvbnRhbCBvZmZzZXRcbiAgaWYgKGhvcml6b250YWxPZmZzZXQgJiYgYWxpZ25tZW50Lmhvcml6b250YWwgIT09ICdjZW50ZXInKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiArPSBob3Jpem9udGFsT2Zmc2V0ICogKGFsaWdubWVudC5ob3Jpem9udGFsID09PSAnc3RhcnQnID8gLTEgOiAxKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHZlcnRpY2FsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiYWJvdmVcIjpcbiAgaWYgKGF2YWlsYWJsZVNwYWNlQmVsb3cgPCBlbGVtZW50UmVjLnNjcm9sbEhlaWdodCkge1xuICAgIGVsZW1lbnRZUG9zaXRpb24gPSBhdmFpbGFibGVWZXJ0aWNhbFNwYWNlIC0gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgLSBtYXhIZWlnaHRPZmZzZXQ7XG4gIH1cblxuICAvLyBXaGVuIHpvb21pbmcgaW4gU2FmYXJpIHRoZSBjb250YWluZXIgcmVjdGFuZ2xlIGNvbnRhaW5zIG5lZ2F0aXZlIHZhbHVlcyBmb3IgdGhlIHBvc2l0aW9uLFxuICAvLyBhbmQgd2UgbmVlZCB0byByZS1hZGQgdGhlbSB0byB0aGUgY2FsY3VsYXRlZCBjb29yZGluYXRlcy5cbiAgaWYgKGNvbnRhaW5lclJlY3QubGVmdCA8IDApIHtcbiAgICBlbGVtZW50WFBvc2l0aW9uIC09IGNvbnRhaW5lclJlY3QubGVmdDtcbiAgfVxuXG4gIC8vIE5vcm1hbGx5IHRoZSBjb250YWluZXJSZWN0J3MgdG9wIHZhbHVlIHdvdWxkIGJlIHplcm8sIGhvd2V2ZXIgd2hlbiB0aGUgb3ZlcmxheSBpcyBhdHRhY2hlZCB0byBhbiBpbnB1dFxuICAvLyAoZS5nLiBpbiBhbiBhdXRvY29tcGxldGUpLCBtb2JpbGUgYnJvd3NlcnMgd2lsbCBzaGlmdCBldmVyeXRoaW5nIGluIG9yZGVyIHRvIHB1dCB0aGUgaW5wdXQgaW4gdGhlIG1pZGRsZVxuICAvLyBvZiB0aGUgc2NyZWVuIGFuZCB0byBtYWtlIHNwYWNlIGZvciB0aGUgdmlydHVhbCBrZXlib2FyZC4gV2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGlzIG9mZnNldCxcbiAgLy8gb3RoZXJ3aXNlIG91ciBwb3NpdGlvbmluZyB3aWxsIGJlIHRocm93biBvZmYuXG4gIC8vIEFkZGl0aW9uYWxseSwgd2hlbiB6b29taW5nIGluIFNhZmFyaSB0aGlzIGZpeGVzIHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbi5cbiAgaWYgKGNvbnRhaW5lclJlY3QudG9wIDwgMCkge1xuICAgIGVsZW1lbnRZUG9zaXRpb24gLT0gY29udGFpbmVyUmVjdC50b3A7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRvcDogZWxlbWVudFlQb3NpdGlvbixcbiAgICBsZWZ0OiBlbGVtZW50WFBvc2l0aW9uLFxuICAgIG1heEhlaWdodDogZWxlbWVudE1heEhlaWdodCxcbiAgICBhbGlnbm1lbnQ6IGFsaWdubWVudCxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQW9CQSxTQUFnQixvQkFBb0IsSUFBZTtDQUNqRCxNQUFNLGVBQWUsT0FBTyxpQkFBaUIsR0FBRyxFQUM5QyxpQkFBaUIsYUFBYSxTQUM5QixtQkFBbUIsU0FBUyxhQUFhLFdBQVcsR0FBRyxDQUFDLFVBQVU7QUFHcEUsS0FBSSxtQkFBbUIsVUFBVSxxQkFBcUIsSUFDcEQsUUFBTztFQUNMLGNBQWMsR0FBRztFQUNqQixjQUFjLEdBQUc7RUFDakIsY0FBYyxHQUFHO0VBQ2pCLGFBQWEsR0FBRztFQUNoQixhQUFhLEdBQUc7RUFDaEIsYUFBYSxHQUFHO0VBQ2pCO0FBS0gsSUFBRyxNQUFNLFdBQVc7QUFDcEIsSUFBRyxNQUFNLGFBQWE7QUFDdEIsSUFBRyxNQUFNLFVBQVU7Q0FFbkIsTUFBTSxlQUFlLEdBQUcsY0FDdEIsZUFBZSxHQUFHLGNBQ2xCLGVBQWUsR0FBRyxjQUNsQixjQUFjLEdBQUcsYUFDakIsY0FBYyxHQUFHLGFBQ2pCLGNBQWMsR0FBRztBQUduQixJQUFHLE1BQU0sVUFBVTtBQUNuQixJQUFHLE1BQU0sV0FBVztBQUNwQixJQUFH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
|
package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbExpansionPanelHeaderElement } from "../../expansion-panel-header.component-
|
|
1
|
+
import { t as SbbExpansionPanelHeaderElement } from "../../expansion-panel-header.component-C1xRGcAN.js";
|
|
2
2
|
export { SbbExpansionPanelHeaderElement };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as SbbExpansionPanelHeaderElement } from "../expansion-panel-header.component-
|
|
1
|
+
import { t as SbbExpansionPanelHeaderElement } from "../expansion-panel-header.component-C1xRGcAN.js";
|
|
2
2
|
//#region src/elements/expansion-panel/expansion-panel-header.ts
|
|
3
3
|
/** @entrypoint */
|
|
4
4
|
SbbExpansionPanelHeaderElement.define();
|
|
@@ -60,7 +60,7 @@ var SbbExpansionPanelHeaderElement = class extends SbbDisabledTabIndexActionMixi
|
|
|
60
60
|
* but after the 'SbbSlotStateController' has run.
|
|
61
61
|
*/
|
|
62
62
|
_setIconState() {
|
|
63
|
-
this.toggleState("icon", !!(this.iconName || this.
|
|
63
|
+
this.toggleState("icon", !!(this.iconName || this.matches?.(":is(:state(icon),[state--icon])")));
|
|
64
64
|
}
|
|
65
65
|
renderTemplate() {
|
|
66
66
|
this._setIconState();
|
|
@@ -82,4 +82,4 @@ var SbbExpansionPanelHeaderElement = class extends SbbDisabledTabIndexActionMixi
|
|
|
82
82
|
//#endregion
|
|
83
83
|
export { SbbExpansionPanelHeaderElement as t };
|
|
84
84
|
|
|
85
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQtQkVBYWJFRTAuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcykpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1zKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLXMpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1zKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbCkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1sKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLWwpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1sKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc2l6ZS1zKSwgOnN0YXRlKHNpemUtbCkpKSB7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXAtZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jazogdmFyKFxuICAgIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jay1kZWZhdWx0XG4gICk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lLWRlZmF1bHRcbiAgKTtcbn1cblxuOmhvc3QoOmlzKDpkaXNhYmxlZCwgW2Rpc2FibGVkLWludGVyYWN0aXZlXSkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGV4dC1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXN0b3JtKVxuICApO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRleHQtY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpmb2N1cy12aXNpYmxlKSB7XG4gIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItanVzdGlmeS1jb250ZW50KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXApO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jaylcbiAgICB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZSk7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICBjdXJzb3I6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWN1cnNvcik7XG4gIGNvbG9yOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190aXRsZSxcbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlLFxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uIHtcbiAgd2lkdGg6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcblxuICAtLXNiYi1pY29uLXN2Zy13aWR0aDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1pY29uLXNpemUpO1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcblxuICA6aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkLWljb24pLCA6c3RhdGUoaGFzLWljb24tbmFtZSkpKSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdGl0bGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtdGl0bGUtZ2FwKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBBbGlnbiB3aXRoIHRvZ2dsZSBpY29uXG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWljb24tdWktbWVkaXVtKTtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGUtaWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNHgpKTtcblxuICA6aG9zdChbYXJpYS1leHBhbmRlZF06bm90KFthcmlhLWV4cGFuZGVkPSdmYWxzZSddKSkgJiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkJ1dHRvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7XG4gIFNiYk1lZGlhUXVlcnlIb3ZlcixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4sIMm1c3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24udHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGFjdHMgYXMgYSBuYXRpdmUgYHN1bW1hcnlgIHRhZyBmb3IgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYC5cbiAqIEBzbG90IGljb24gLSBTbG90IHVzZWQgdG8gcmVuZGVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGljb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB0b2dnbGVleHBhbmRlZDogJ3RvZ2dsZWV4cGFuZGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gICAgW1NiYk1lZGlhUXVlcnlIb3Zlcl06IChtKSA9PiAodGhpcy5faXNIb3ZlciA9IG0pLFxuICB9KTtcblxuICBwcml2YXRlIF9pc0hvdmVyOiBib29sZWFuID0gdGhpcy5fbWVkaWFNYXRjaGVyLm1hdGNoZXMoU2JiTWVkaWFRdWVyeUhvdmVyKSA/PyBmYWxzZTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNTaXplPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsICgpID0+IHRoaXMuX2VtaXRFeHBhbmRlZEV2ZW50KCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5fb25Nb3VzZU1vdmVtZW50KHRydWUpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignbW91c2VsZWF2ZScsICgpID0+IHRoaXMuX29uTW91c2VNb3ZlbWVudChmYWxzZSkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdzbG90dGVkY2hhbmdlJywgKCkgPT4gdGhpcy5fc2V0SWNvblN0YXRlKCkpO1xuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWV4cGFuc2lvbi1wYW5lbCcpLCB7XG4gICAgICAgIHNpemU6IChzKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNTaXplID0gcy5zaXplO1xuICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ2hlYWRlcic7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0RXhwYW5kZWRFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgaXMgYWJvdXQgdG8gZXhwYW5kL3Nocmluay4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3RvZ2dsZWV4cGFuZGVkJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Nb3VzZU1vdmVtZW50KHRvZ2dsZURhdGFBdHRyaWJ1dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnQ6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCA9IHRoaXMuY2xvc2VzdCgnc2JiLWV4cGFuc2lvbi1wYW5lbCcpITtcbiAgICAvLyBUaGUgYHNiYi5ob3Zlci1tcWAgbG9naWMgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHNjc3MsIGJ1dCBpdCBtdXN0IGJlIHJlcGxpY2F0ZWQgdG8gaGF2ZSB0aGUgY29ycmVjdCBiZWhhdmlvciBvbiBtb2JpbGUuXG4gICAgaWYgKCF0b2dnbGVEYXRhQXR0cmlidXRlIHx8IChwYXJlbnQgJiYgdGhpcy5faXNIb3ZlcikpIHtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHBhcmVudCkudG9nZ2xlKCd0b2dnbGUtaG92ZXInLCB0b2dnbGVEYXRhQXR0cmlidXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIDpzdGF0ZShpY29uKSBpcyB1c2VkIGJ5IHRoZSAnc2JiLWV4cGFuc2lvbi1wYW5lbCcuXG4gICAqIEl0IG5lZWRzIHRvIGJlIHNldCBiZWZvcmUgdGhlIEBzbG90Y2hhbmdlIGV2ZW50IGJ1YmJsZXMgdG8gdGhlICdleHBhbnNpb24tcGFuZWwnXG4gICAqIGJ1dCBhZnRlciB0aGUgJ1NiYlNsb3RTdGF0ZUNvbnRyb2xsZXInIGhhcyBydW4uXG4gICAqL1xuICBwcml2YXRlIF9zZXRJY29uU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnaWNvbicsICEhKHRoaXMuaWNvbk5hbWUgfHwgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcygnaWNvbicpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIFRPRE86IFN0aWxsIG5lY2Vzc2FyeT9cbiAgICB0aGlzLl9zZXRJY29uU3RhdGUoKTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgICAgJHshdGhpcy5kaXNhYmxlZFxuICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlXCI+XG4gICAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtZG93bi1tZWRpdW1cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGUtaWNvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NiYi1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcic6IFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FDcUJBLElBQWEsaUNBQWIsY0FBb0QsK0JBQ2xELGlCQUFpQixxQkFBcUIsQ0FDdkMsQ0FBQTs7QUFDaUMsT0FBQSxjQUFzQjs7O0FBQy9CLE9BQUEsU0FBeUIsQ0FBQyxpQkFBaUIsVUFBVSwrQkFBTSxDQUFDOzs7QUFDNUQsT0FBQSxTQUFTLEVBQzlCLGdCQUFnQixrQkFDUjs7Q0FTVixjQUFBO0FBQ0UsU0FBTztBQVJELE9BQUEsZ0JBQWdCLElBQUksMEJBQTBCLE1BQU0sR0FDekQsc0JBQXNCLE1BQU8sS0FBSyxXQUFXLEdBQy9DLENBQUM7QUFFTSxPQUFBLFdBQW9CLEtBQUssY0FBYyxRQUFRLG1CQUFtQixJQUFJO0FBSzVFLE9BQUssbUJBQW1CLGVBQWUsS0FBSyxvQkFBb0IsQ0FBQztBQUNqRSxPQUFLLG1CQUFtQixvQkFBb0IsS0FBSyxpQkFBaUIsS0FBSyxDQUFDO0FBQ3hFLE9BQUssbUJBQW1CLG9CQUFvQixLQUFLLGlCQUFpQixNQUFNLENBQUM7QUFDekUsT0FBSyxtQkFBbUIsdUJBQXVCLEtBQUssZUFBZSxDQUFDO0FBQ3BFLE9BQUssY0FDSCxJQUFJLDZCQUE2QixZQUFZLEtBQUssUUFBUSxzQkFBc0IsRUFBRSxFQUNoRixPQUFPLE1BQUs7QUFDVixPQUFJLEtBQUssY0FDUCxNQUFLLFVBQVUsT0FBTyxPQUFPLFFBQVEsS0FBSyxnQkFBZ0I7QUFFNUQsUUFBSyxnQkFBZ0IsRUFBRTtBQUN2QixPQUFJLEtBQUssY0FDUCxNQUFLLFVBQVUsT0FBTyxJQUFJLFFBQVEsS0FBSyxnQkFBZ0I7S0FHNUQsQ0FBQyxDQUNIOztDQUdhLG9CQUFpQjtBQUMvQixRQUFNLG1CQUFtQjtBQUN6QixPQUFLLFNBQVM7O0NBR1IscUJBQWtCO0FBQ3hCLE1BQUksQ0FBQyxLQUFLOztBQUVSLE9BQUssY0FBYyxJQUFJLE1BQU0sa0JBQWtCO0dBQUUsU0FBUztHQUFNLFVBQVU7R0FBTSxDQUFDLENBQUM7O0NBSTlFLGlCQUFpQixxQkFBNEI7RUFDbkQsTUFBTSxTQUFtQyxLQUFLLFFBQVEsc0JBQXVCO0FBRTdFLE1BQUksQ0FBQyx1QkFBd0IsVUFBVSxLQUFLLFNBQzFDLGtCQUFpQixPQUFPLENBQUMsT0FBTyxnQkFBZ0Isb0JBQW9COzs7Ozs7O0NBU2hFLGdCQUFhO0FBQ25CLE9BQUssWUFBWSxRQUFRLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxVQUFVLE9BQU8sSUFBSSxPQUFPLEVBQUU7O0NBRy9ELGlCQUFjO0FBRS9CLE9BQUssZUFBZTtBQUNwQixTQUFPLElBQUk7OzBEQUUyQyxLQUFLLGdCQUFnQixDQUFBOzs7UUFHdkUsQ0FBQyxLQUFLLFdBQ0osSUFBSTs7Ozs7O3FCQU9KLFFBQUEifQ==
|
|
85
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQtQzF4UkdjQU4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcykpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1zKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLXMpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1zKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbCkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1sKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLWwpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1sKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc2l6ZS1zKSwgOnN0YXRlKHNpemUtbCkpKSB7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXAtZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jazogdmFyKFxuICAgIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jay1kZWZhdWx0XG4gICk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lLWRlZmF1bHRcbiAgKTtcbn1cblxuOmhvc3QoOmlzKDpkaXNhYmxlZCwgW2Rpc2FibGVkLWludGVyYWN0aXZlXSkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGV4dC1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXN0b3JtKVxuICApO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRleHQtY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpmb2N1cy12aXNpYmxlKSB7XG4gIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItanVzdGlmeS1jb250ZW50KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXApO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jaylcbiAgICB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZSk7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICBjdXJzb3I6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWN1cnNvcik7XG4gIGNvbG9yOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190aXRsZSxcbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlLFxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uIHtcbiAgd2lkdGg6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcblxuICAtLXNiYi1pY29uLXN2Zy13aWR0aDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1pY29uLXNpemUpO1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcblxuICA6aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkLWljb24pLCA6c3RhdGUoaGFzLWljb24tbmFtZSkpKSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdGl0bGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtdGl0bGUtZ2FwKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBBbGlnbiB3aXRoIHRvZ2dsZSBpY29uXG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWljb24tdWktbWVkaXVtKTtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGUtaWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNHgpKTtcblxuICA6aG9zdChbYXJpYS1leHBhbmRlZF06bm90KFthcmlhLWV4cGFuZGVkPSdmYWxzZSddKSkgJiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkJ1dHRvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7XG4gIFNiYk1lZGlhUXVlcnlIb3ZlcixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4sIMm1c3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24udHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGFjdHMgYXMgYSBuYXRpdmUgYHN1bW1hcnlgIHRhZyBmb3IgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYC5cbiAqIEBzbG90IGljb24gLSBTbG90IHVzZWQgdG8gcmVuZGVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGljb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB0b2dnbGVleHBhbmRlZDogJ3RvZ2dsZWV4cGFuZGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gICAgW1NiYk1lZGlhUXVlcnlIb3Zlcl06IChtKSA9PiAodGhpcy5faXNIb3ZlciA9IG0pLFxuICB9KTtcblxuICBwcml2YXRlIF9pc0hvdmVyOiBib29sZWFuID0gdGhpcy5fbWVkaWFNYXRjaGVyLm1hdGNoZXMoU2JiTWVkaWFRdWVyeUhvdmVyKSA/PyBmYWxzZTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNTaXplPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsICgpID0+IHRoaXMuX2VtaXRFeHBhbmRlZEV2ZW50KCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5fb25Nb3VzZU1vdmVtZW50KHRydWUpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignbW91c2VsZWF2ZScsICgpID0+IHRoaXMuX29uTW91c2VNb3ZlbWVudChmYWxzZSkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdzbG90dGVkY2hhbmdlJywgKCkgPT4gdGhpcy5fc2V0SWNvblN0YXRlKCkpO1xuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWV4cGFuc2lvbi1wYW5lbCcpLCB7XG4gICAgICAgIHNpemU6IChzKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNTaXplID0gcy5zaXplO1xuICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ2hlYWRlcic7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0RXhwYW5kZWRFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgaXMgYWJvdXQgdG8gZXhwYW5kL3Nocmluay4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3RvZ2dsZWV4cGFuZGVkJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Nb3VzZU1vdmVtZW50KHRvZ2dsZURhdGFBdHRyaWJ1dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnQ6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCA9IHRoaXMuY2xvc2VzdCgnc2JiLWV4cGFuc2lvbi1wYW5lbCcpITtcbiAgICAvLyBUaGUgYHNiYi5ob3Zlci1tcWAgbG9naWMgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHNjc3MsIGJ1dCBpdCBtdXN0IGJlIHJlcGxpY2F0ZWQgdG8gaGF2ZSB0aGUgY29ycmVjdCBiZWhhdmlvciBvbiBtb2JpbGUuXG4gICAgaWYgKCF0b2dnbGVEYXRhQXR0cmlidXRlIHx8IChwYXJlbnQgJiYgdGhpcy5faXNIb3ZlcikpIHtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHBhcmVudCkudG9nZ2xlKCd0b2dnbGUtaG92ZXInLCB0b2dnbGVEYXRhQXR0cmlidXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIDpzdGF0ZShpY29uKSBpcyB1c2VkIGJ5IHRoZSAnc2JiLWV4cGFuc2lvbi1wYW5lbCcuXG4gICAqIEl0IG5lZWRzIHRvIGJlIHNldCBiZWZvcmUgdGhlIEBzbG90Y2hhbmdlIGV2ZW50IGJ1YmJsZXMgdG8gdGhlICdleHBhbnNpb24tcGFuZWwnXG4gICAqIGJ1dCBhZnRlciB0aGUgJ1NiYlNsb3RTdGF0ZUNvbnRyb2xsZXInIGhhcyBydW4uXG4gICAqL1xuICBwcml2YXRlIF9zZXRJY29uU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnaWNvbicsICEhKHRoaXMuaWNvbk5hbWUgfHwgdGhpcy5tYXRjaGVzPy4oJzpzdGF0ZShpY29uKScpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIFRPRE86IFN0aWxsIG5lY2Vzc2FyeT9cbiAgICB0aGlzLl9zZXRJY29uU3RhdGUoKTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgICAgJHshdGhpcy5kaXNhYmxlZFxuICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlXCI+XG4gICAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtZG93bi1tZWRpdW1cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGUtaWNvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NiYi1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcic6IFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FDcUJBLElBQWEsaUNBQWIsY0FBb0QsK0JBQ2xELGlCQUFpQixxQkFBcUIsQ0FDdkMsQ0FBQTs7QUFDaUMsT0FBQSxjQUFzQjs7O0FBQy9CLE9BQUEsU0FBeUIsQ0FBQyxpQkFBaUIsVUFBVSwrQkFBTSxDQUFDOzs7QUFDNUQsT0FBQSxTQUFTLEVBQzlCLGdCQUFnQixrQkFDUjs7Q0FTVixjQUFBO0FBQ0UsU0FBTztBQVJELE9BQUEsZ0JBQWdCLElBQUksMEJBQTBCLE1BQU0sR0FDekQsc0JBQXNCLE1BQU8sS0FBSyxXQUFXLEdBQy9DLENBQUM7QUFFTSxPQUFBLFdBQW9CLEtBQUssY0FBYyxRQUFRLG1CQUFtQixJQUFJO0FBSzVFLE9BQUssbUJBQW1CLGVBQWUsS0FBSyxvQkFBb0IsQ0FBQztBQUNqRSxPQUFLLG1CQUFtQixvQkFBb0IsS0FBSyxpQkFBaUIsS0FBSyxDQUFDO0FBQ3hFLE9BQUssbUJBQW1CLG9CQUFvQixLQUFLLGlCQUFpQixNQUFNLENBQUM7QUFDekUsT0FBSyxtQkFBbUIsdUJBQXVCLEtBQUssZUFBZSxDQUFDO0FBQ3BFLE9BQUssY0FDSCxJQUFJLDZCQUE2QixZQUFZLEtBQUssUUFBUSxzQkFBc0IsRUFBRSxFQUNoRixPQUFPLE1BQUs7QUFDVixPQUFJLEtBQUssY0FDUCxNQUFLLFVBQVUsT0FBTyxPQUFPLFFBQVEsS0FBSyxnQkFBZ0I7QUFFNUQsUUFBSyxnQkFBZ0IsRUFBRTtBQUN2QixPQUFJLEtBQUssY0FDUCxNQUFLLFVBQVUsT0FBTyxJQUFJLFFBQVEsS0FBSyxnQkFBZ0I7S0FHNUQsQ0FBQyxDQUNIOztDQUdhLG9CQUFpQjtBQUMvQixRQUFNLG1CQUFtQjtBQUN6QixPQUFLLFNBQVM7O0NBR1IscUJBQWtCO0FBQ3hCLE1BQUksQ0FBQyxLQUFLOztBQUVSLE9BQUssY0FBYyxJQUFJLE1BQU0sa0JBQWtCO0dBQUUsU0FBUztHQUFNLFVBQVU7R0FBTSxDQUFDLENBQUM7O0NBSTlFLGlCQUFpQixxQkFBNEI7RUFDbkQsTUFBTSxTQUFtQyxLQUFLLFFBQVEsc0JBQXVCO0FBRTdFLE1BQUksQ0FBQyx1QkFBd0IsVUFBVSxLQUFLLFNBQzFDLGtCQUFpQixPQUFPLENBQUMsT0FBTyxnQkFBZ0Isb0JBQW9COzs7Ozs7O0NBU2hFLGdCQUFhO0FBQ25CLE9BQUssWUFBWSxRQUFRLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxVQUFVLGtDQUFlLEVBQUU7O0NBRzVELGlCQUFjO0FBRS9CLE9BQUssZUFBZTtBQUNwQixTQUFPLElBQUk7OzBEQUUyQyxLQUFLLGdCQUFnQixDQUFBOzs7UUFHdkUsQ0FBQyxLQUFLLFdBQ0osSUFBSTs7Ozs7O3FCQU9KLFFBQUEifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as SbbExpansionPanelContentElement } from "./expansion-panel-content.component-XIsKm8JD.js";
|
|
2
|
-
import { t as SbbExpansionPanelHeaderElement } from "./expansion-panel-header.component-
|
|
2
|
+
import { t as SbbExpansionPanelHeaderElement } from "./expansion-panel-header.component-C1xRGcAN.js";
|
|
3
3
|
import { t as SbbExpansionPanelElement } from "./expansion-panel.component-CV_IuWZA.js";
|
|
4
4
|
import "./expansion-panel.pure.js";
|
|
5
5
|
//#region src/elements/expansion-panel.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { t as SbbExpansionPanelContentElement } from "./expansion-panel-content.component-XIsKm8JD.js";
|
|
2
|
-
import { t as SbbExpansionPanelHeaderElement } from "./expansion-panel-header.component-
|
|
2
|
+
import { t as SbbExpansionPanelHeaderElement } from "./expansion-panel-header.component-C1xRGcAN.js";
|
|
3
3
|
import { t as SbbExpansionPanelElement } from "./expansion-panel.component-CV_IuWZA.js";
|
|
4
4
|
export { SbbExpansionPanelContentElement, SbbExpansionPanelElement, SbbExpansionPanelHeaderElement };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbOptionElement } from "../../option.component-
|
|
1
|
+
import { t as SbbOptionElement } from "../../option.component-Bb2C7ae5.js";
|
|
2
2
|
export { SbbOptionElement };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SbbOptionBaseElement } from "./option/option-base-element.js";
|
|
2
|
-
import { t as SbbOptionElement } from "../option.component-
|
|
2
|
+
import { t as SbbOptionElement } from "../option.component-Bb2C7ae5.js";
|
|
3
3
|
//#region src/elements/option/option.ts
|
|
4
4
|
/** @entrypoint */
|
|
5
5
|
SbbOptionElement.define();
|