@sbb-esta/lyne-elements 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.d.ts.map +1 -1
- package/accordion.js +6 -6
- package/alert/alert.js +8 -8
- package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button.js +4 -4
- package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -4
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-option.js +10 -10
- package/autocomplete-grid/autocomplete-grid-row.js +4 -4
- package/autocomplete.js +92 -89
- package/breadcrumb/breadcrumb-group.js +4 -4
- package/button/accent-button-link.js +9 -9
- package/button/accent-button-static.js +6 -6
- package/button/accent-button.js +6 -6
- package/button/button-link.js +7 -7
- package/button/button-static.js +7 -7
- package/button/button.js +8 -8
- package/button/common.js +1 -1
- package/button/mini-button-group.js +8 -8
- package/button/secondary-button-link.js +7 -7
- package/button/secondary-button-static.js +7 -7
- package/button/secondary-button.js +3 -3
- package/button/transparent-button-link.js +6 -6
- package/button/transparent-button-static.js +5 -5
- package/button/transparent-button.js +6 -6
- package/card/card-badge.js +9 -9
- package/card/card-button.js +5 -5
- package/card/card-link.js +7 -7
- package/checkbox/checkbox-panel.js +16 -16
- package/checkbox/checkbox.js +15 -15
- package/checkbox/common.js +3 -3
- package/clock.js +8 -8
- package/container/container/container.d.ts +1 -1
- package/container/container/container.d.ts.map +1 -1
- package/container/container.js +21 -21
- package/container/sticky-bar/sticky-bar.d.ts +1 -1
- package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/container/sticky-bar.js +4 -4
- package/core/base-elements.js +8 -8
- package/core/controllers.js +4 -4
- package/core/datetime/date-adapter.d.ts +1 -1
- package/core/datetime/date-adapter.d.ts.map +1 -1
- package/core/datetime/native-date-adapter.d.ts +1 -1
- package/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/core/datetime.js +6 -6
- package/core/dom/scroll.d.ts +1 -1
- package/core/dom/scroll.d.ts.map +1 -1
- package/core/dom.js +39 -39
- package/core/eventing.js +4 -4
- package/core/mixins/form-associated-mixin.d.ts +2 -4
- package/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-radio-button-mixin.d.ts +3 -3
- package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
- package/core/mixins.js +276 -276
- package/core/styles/core.scss +21 -2
- package/core/testing.js +14 -14
- package/core.css +18 -2
- package/custom-elements.json +528 -554
- package/datepicker/common/datepicker-association-controllers.d.ts +21 -0
- package/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
- package/datepicker/common/datepicker-button.d.ts +17 -9
- package/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/datepicker/common.d.ts +1 -0
- package/datepicker/common.d.ts.map +1 -1
- package/datepicker/common.js +130 -92
- package/datepicker/datepicker/datepicker.d.ts +19 -4
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +108 -112
- package/datepicker/datepicker.js +95 -80
- package/development/accordion/accordion.d.ts.map +1 -1
- package/development/accordion.js +1 -1
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option.js +3 -3
- package/development/autocomplete.js +24 -8
- package/development/button/common.js +4 -2
- package/development/calendar.js +1 -1
- package/development/container/container/container.d.ts +1 -1
- package/development/container/container/container.d.ts.map +1 -1
- package/development/container/container.js +17 -1
- package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
- package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/development/container/sticky-bar.js +9 -1
- package/development/core/datetime/date-adapter.d.ts +1 -1
- package/development/core/datetime/date-adapter.d.ts.map +1 -1
- package/development/core/datetime/native-date-adapter.d.ts +1 -1
- package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/development/core/datetime.js +1 -1
- package/development/core/dom/scroll.d.ts +1 -1
- package/development/core/dom/scroll.d.ts.map +1 -1
- package/development/core/dom.js +4 -4
- package/development/core/mixins/form-associated-mixin.d.ts +2 -4
- package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-radio-button-mixin.d.ts +3 -3
- package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
- package/development/core/mixins.js +45 -49
- package/development/datepicker/common/datepicker-association-controllers.d.ts +21 -0
- package/development/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
- package/development/datepicker/common/datepicker-button.d.ts +17 -9
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common.d.ts +1 -0
- package/development/datepicker/common.d.ts.map +1 -1
- package/development/datepicker/common.js +139 -90
- package/development/datepicker/datepicker/datepicker.d.ts +19 -4
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +65 -69
- package/development/datepicker/datepicker.js +54 -36
- package/development/dialog/dialog/dialog.d.ts +2 -0
- package/development/dialog/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog.js +37 -11
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu.js +35 -12
- package/development/navigation/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation.js +15 -8
- package/development/option/option/option-base-element.d.ts +3 -2
- package/development/option/option/option-base-element.d.ts.map +1 -1
- package/development/option/option.js +15 -8
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay.d.ts.map +1 -1
- package/development/overlay.js +29 -13
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover.js +16 -13
- package/development/radio-button/common/radio-button-common.d.ts +0 -2
- package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/development/radio-button/common.js +2 -18
- package/development/radio-button/radio-button-group.js +2 -2
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +9 -1
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/development/radio-button/radio-button-panel.js +17 -7
- package/development/select/select.d.ts +11 -0
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +60 -9
- package/development/toast/toast.d.ts.map +1 -1
- package/development/toast.js +14 -8
- package/development/toggle/toggle.js +1 -1
- package/development/train/train-wagon.js +1 -1
- package/dialog/dialog/dialog.d.ts +2 -0
- package/dialog/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog-content.js +3 -3
- package/dialog/dialog-title.js +8 -8
- package/dialog/dialog.js +59 -49
- package/divider.js +12 -12
- package/file-selector/file-selector-dropzone.js +5 -5
- package/file-selector/file-selector.js +6 -6
- package/flip-card/flip-card-details.js +4 -4
- package/flip-card/flip-card-summary.js +9 -9
- package/header/header-button.js +5 -5
- package/header/header-link.js +5 -5
- package/icon.js +36 -36
- package/link/block-link-button.js +4 -4
- package/link/block-link-static.js +9 -9
- package/link/block-link.js +4 -4
- package/link/common.js +16 -16
- package/link/link-button.js +7 -7
- package/link/link-static.js +7 -7
- package/link/link.js +4 -4
- package/link-list/common.js +12 -12
- package/loading-indicator-circle.js +11 -11
- package/map-container.js +4 -4
- package/menu/common.js +7 -7
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu-button.js +8 -8
- package/menu/menu-link.js +6 -6
- package/menu/menu.js +64 -42
- package/navigation/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation-button.js +4 -4
- package/navigation/navigation-link.js +7 -7
- package/navigation/navigation-list.js +4 -4
- package/navigation/navigation-marker.js +3 -3
- package/navigation/navigation.js +21 -20
- package/notification.js +17 -17
- package/option/optgroup.js +11 -11
- package/option/option/option-base-element.d.ts +3 -2
- package/option/option/option-base-element.d.ts.map +1 -1
- package/option/option.js +113 -101
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay.d.ts.map +1 -1
- package/overlay.js +87 -84
- package/package.json +1 -1
- package/paginator/common.js +6 -6
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover.js +73 -73
- package/radio-button/common/radio-button-common.d.ts +0 -2
- package/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/radio-button/common.js +13 -18
- package/radio-button/radio-button-group.js +1 -1
- package/radio-button/radio-button-panel/radio-button-panel.d.ts +9 -1
- package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/radio-button/radio-button-panel.js +40 -38
- package/screen-reader-only.js +5 -5
- package/select/select.d.ts +11 -0
- package/select/select.d.ts.map +1 -1
- package/select.js +111 -83
- package/slider.js +8 -8
- package/standard-theme.css +18 -2
- package/status.js +3 -3
- package/stepper/step-label.js +4 -4
- package/table/table-wrapper.js +4 -4
- package/tabs/tab-group.js +24 -24
- package/tabs/tab.js +3 -3
- package/tag/tag-group.js +7 -7
- package/teaser-product/common.js +5 -5
- package/teaser-product/teaser-product-static.js +2 -2
- package/timetable-occupancy-icon.js +3 -3
- package/timetable-occupancy.js +6 -6
- package/toast/toast.d.ts.map +1 -1
- package/toast.js +58 -54
- package/toggle/toggle-option.js +11 -11
- package/toggle-check.js +5 -5
- package/train/train.js +28 -28
|
@@ -48,7 +48,7 @@ const style = css`*,
|
|
|
48
48
|
--sbb-navigation-width: 100%;
|
|
49
49
|
--sbb-navigation-height: 100dvh;
|
|
50
50
|
--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
|
|
51
|
-
display:
|
|
51
|
+
display: none;
|
|
52
52
|
position: fixed;
|
|
53
53
|
inset: var(--sbb-navigation-inset);
|
|
54
54
|
z-index: var(--sbb-navigation-z-index, var(--sbb-overlay-default-z-index));
|
|
@@ -80,6 +80,10 @@ const style = css`*,
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
:host([data-state]:not([data-state=closed])) {
|
|
84
|
+
display: block;
|
|
85
|
+
}
|
|
86
|
+
|
|
83
87
|
:host([data-state=opened]) {
|
|
84
88
|
--sbb-navigation-animation-easing: ease-out;
|
|
85
89
|
}
|
|
@@ -280,7 +284,8 @@ const DEBOUNCE_TIME = 150;
|
|
|
280
284
|
let SbbNavigationElement = (() => {
|
|
281
285
|
var _accessibilityCloseLabel_accessor_storage, __activeNavigationSection_accessor_storage, _a;
|
|
282
286
|
let _classDecorators = [customElement("sbb-navigation"), hostAttributes({
|
|
283
|
-
role: "navigation"
|
|
287
|
+
role: "navigation",
|
|
288
|
+
popover: "manual"
|
|
284
289
|
})];
|
|
285
290
|
let _classDescriptor;
|
|
286
291
|
let _classExtraInitializers = [];
|
|
@@ -373,19 +378,20 @@ let SbbNavigationElement = (() => {
|
|
|
373
378
|
* Opens the navigation.
|
|
374
379
|
*/
|
|
375
380
|
open() {
|
|
376
|
-
var _a2;
|
|
381
|
+
var _a2, _b;
|
|
377
382
|
if (this.state !== "closed" || !this._navigation) {
|
|
378
383
|
return;
|
|
379
384
|
}
|
|
380
385
|
if (!this.willOpen.emit()) {
|
|
381
386
|
return;
|
|
382
387
|
}
|
|
388
|
+
(_a2 = this.showPopover) == null ? void 0 : _a2.call(this);
|
|
383
389
|
this.state = "opening";
|
|
384
390
|
this._checkActiveActions();
|
|
385
391
|
this._checkActiveSection();
|
|
386
392
|
this.startUpdate();
|
|
387
393
|
this._scrollHandler.disableScroll();
|
|
388
|
-
(
|
|
394
|
+
(_b = this._triggerElement) == null ? void 0 : _b.setAttribute("aria-expanded", "true");
|
|
389
395
|
if (this._isZeroAnimationDuration()) {
|
|
390
396
|
this._handleOpening();
|
|
391
397
|
}
|
|
@@ -424,16 +430,17 @@ let SbbNavigationElement = (() => {
|
|
|
424
430
|
return isZeroAnimationDuration(this, "--sbb-navigation-animation-duration");
|
|
425
431
|
}
|
|
426
432
|
_handleClosing() {
|
|
427
|
-
var _a2, _b;
|
|
433
|
+
var _a2, _b, _c;
|
|
428
434
|
this.state = "closed";
|
|
435
|
+
(_a2 = this.hidePopover) == null ? void 0 : _a2.call(this);
|
|
429
436
|
this._navigationContentElement.scrollTo(0, 0);
|
|
430
437
|
setModalityOnNextFocus(this._triggerElement);
|
|
431
438
|
this._inertController.deactivate();
|
|
432
|
-
(
|
|
439
|
+
(_b = this._triggerElement) == null ? void 0 : _b.focus();
|
|
433
440
|
this.didClose.emit();
|
|
434
441
|
this._navigationResizeObserver.unobserve(this);
|
|
435
442
|
this._resetMarkers();
|
|
436
|
-
(
|
|
443
|
+
(_c = this._windowEventsController) == null ? void 0 : _c.abort();
|
|
437
444
|
this._focusHandler.disconnect();
|
|
438
445
|
this._scrollHandler.enableScroll();
|
|
439
446
|
this.completeUpdate();
|
|
@@ -609,4 +616,4 @@ let SbbNavigationElement = (() => {
|
|
|
609
616
|
export {
|
|
610
617
|
SbbNavigationElement
|
|
611
618
|
};
|
|
612
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7IFNiYkZvY3VzSGFuZGxlciwgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJJbmVydENvbnRyb2xsZXIsIFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQge1xuICBmaW5kUmVmZXJlbmNlZEVsZW1lbnQsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBTYmJTY3JvbGxIYW5kbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYlVwZGF0ZVNjaGVkdWxlck1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHtcbiAgaXNFdmVudE9uRWxlbWVudCxcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyxcbiAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS9vdmVybGF5LmpzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWJ1dHRvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL25hdmlnYXRpb24uc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vdHJhbnNwYXJlbnQtYnV0dG9uLmpzJztcblxuLyoqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhdHRyaWJ1dGUgdG8gbG9vayBhdCBpZiBhIG5hdmlnYXRpb24gc2VjdGlvbiBpcyBkaXNwbGF5ZWQgKi9cbmNvbnN0IG5hdmlnYXRpb25PYnNlcnZlckNvbmZpZzogTXV0YXRpb25PYnNlcnZlckluaXQgPSB7XG4gIHN1YnRyZWU6IHRydWUsXG4gIGF0dHJpYnV0ZUZpbHRlcjogWydkYXRhLXN0YXRlJ10sXG59O1xuXG5sZXQgbmV4dElkID0gMDtcbmNvbnN0IERFQk9VTkNFX1RJTUUgPSAxNTA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBuYXZpZ2F0aW9uIG1lbnUsIHdyYXBwaW5nIG9uZSBvciBtb3JlIGBzYmItbmF2aWdhdGlvbi0qYCBjb21wb25lbnRzLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItbmF2aWdhdGlvbi1idXR0b25gL2BzYmItbmF2aWdhdGlvbi1saW5rYCBlbGVtZW50cyBpbnRvIHRoZSBzYmItbmF2aWdhdGlvbiBtZW51LlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1uYXZpZ2F0aW9uYCBiZWdpbnMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW5hdmlnYXRpb25gIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW5hdmlnYXRpb25gIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW5hdmlnYXRpb25gIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1uYXZpZ2F0aW9uLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLW5hdmlnYXRpb24nKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcm9sZTogJ25hdmlnYXRpb24nLFxufSlcbmNsYXNzIFNiYk5hdmlnYXRpb25FbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBuYXZpZ2F0aW9uLlxuICAgKiBBY2NlcHRzIGJvdGggYSBzdHJpbmcgKGlkIG9mIGFuIGVsZW1lbnQpIG9yIGFuIEhUTUwgZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl90cmlnZ2VyO1xuICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcih0aGlzLl90cmlnZ2VyLCBvbGRWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCB0cmlnZ2VyKCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cbiAgcHJpdmF0ZSBfdHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWNsb3NlLWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgbmF2aWdhdGlvbiBzZWN0aW9uIGlzIGRpc3BsYXllZC5cbiAgICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX25hdmlnYXRpb25Db250ZW50RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvbkNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfaW5lcnRDb250cm9sbGVyID0gbmV3IFNiYkluZXJ0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZm9jdXNIYW5kbGVyID0gbmV3IFNiYkZvY3VzSGFuZGxlcigpO1xuICBwcml2YXRlIF9zY3JvbGxIYW5kbGVyID0gbmV3IFNiYlNjcm9sbEhhbmRsZXIoKTtcbiAgcHJpdmF0ZSBfaXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyVGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9vbk5hdmlnYXRpb25SZXNpemUoKSxcbiAgfSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGV2ZW50KSA9PiB0aGlzLl9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZXZlbnQpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncG9pbnRlcnVwJywgKGV2ZW50KSA9PiB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljayhldmVudCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwb2ludGVyZG93bicsIChldmVudCkgPT4gdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lcihldmVudCkpO1xuXG4gICAgbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAgIGNvbmZpZzogbmF2aWdhdGlvbk9ic2VydmVyQ29uZmlnLFxuICAgICAgY2FsbGJhY2s6IChtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKSA9PiB0aGlzLl9vbk5hdmlnYXRpb25TZWN0aW9uQ2hhbmdlKG11dGF0aW9uc0xpc3QpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnIHx8ICF0aGlzLl9uYXZpZ2F0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndpbGxPcGVuLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlQWN0aW9ucygpO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlU2VjdGlvbigpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcblxuICAgIC8vIERpc2FibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50IGJlbG93IHRoZSBuYXZpZ2F0aW9uXG4gICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlU2VjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb24gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnc2JiLW5hdmlnYXRpb24tYnV0dG9uLnNiYi1hY3RpdmUnLFxuICAgICkgYXMgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQ7XG4gICAgYWN0aXZlQWN0aW9uPy5jb25uZWN0ZWRTZWN0aW9uPy5vcGVuKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0FjdGl2ZUFjdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9ucyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspLnNiYi1hY3RpdmUnKSxcbiAgICApIGFzIChTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudClbXTtcbiAgICBhY3RpdmVBY3Rpb25zPy5mb3JFYWNoKChhY3Rpb24pID0+IGFjdGlvbi5tYXJrZXI/LnNlbGVjdChhY3Rpb24pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndpbGxDbG9zZS5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbG9zaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsZW1lbnQuc2Nyb2xsVG8oMCwgMCk7XG4gICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG4gICAgdGhpcy5faW5lcnRDb250cm9sbGVyLmRlYWN0aXZhdGUoKTtcbiAgICAvLyBUbyBlbmFibGUgZm9jdXNpbmcgb3RoZXIgZWxlbWVudCB0aGFuIHRoZSB0cmlnZ2VyLCB3ZSBuZWVkIHRvIGNhbGwgZm9jdXMoKSBhIHNlY29uZCB0aW1lLlxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cygpO1xuICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCgpO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcyk7XG4gICAgdGhpcy5fcmVzZXRNYXJrZXJzKCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgLy8gRW5hYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gICAgdGhpcy5jb21wbGV0ZVVwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgdGhpcy5faW5lcnRDb250cm9sbGVyLmFjdGl2YXRlKCk7XG4gICAgdGhpcy5fZm9jdXNIYW5kbGVyLnRyYXAodGhpcywgeyBmaWx0ZXI6IHRoaXMuX3RyYXBGb2N1c0ZpbHRlciB9KTtcbiAgICB0aGlzLl9hdHRhY2hXaW5kb3dFdmVudHMoKTtcbiAgICB0aGlzLl9zZXROYXZpZ2F0aW9uRm9jdXMoKTtcbiAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gICAgdGhpcy5kaWRPcGVuLmVtaXQoKTtcbiAgfVxuXG4gIC8vIFJlbW92ZXMgdHJpZ2dlciBjbGljayBsaXN0ZW5lciBvbiB0cmlnZ2VyIGNoYW5nZS5cbiAgcHJpdmF0ZSBfcmVtb3ZlVHJpZ2dlckNsaWNrTGlzdGVuZXIoXG4gICAgbmV3VmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBvbGRWYWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9jb25maWd1cmUodGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgdHJpZ2dlciBpcyB2YWxpZCBhbmQgYXR0YWNoIGNsaWNrIGV2ZW50IGxpc3RlbmVycy5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKHRyaWdnZXI6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBmaW5kUmVmZXJlbmNlZEVsZW1lbnQodHJpZ2dlcik7XG5cbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCwgJ21lbnUnLCB0aGlzLmlkLCB0aGlzLnN0YXRlKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYXBGb2N1c0ZpbHRlciA9IChlbDogSFRNTEVsZW1lbnQpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gZWwubm9kZU5hbWUgIT09ICdTQkItTkFWSUdBVElPTi1TRUNUSU9OJyB8fCBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSA9PT0gJ29wZW5lZCc7XG4gIH07XG5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE1hcmtlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9ucyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICc6aXMoc2JiLW5hdmlnYXRpb24tYnV0dG9uLCBzYmItbmF2aWdhdGlvbi1saW5rKVtkYXRhLWFjdGlvbi1hY3RpdmVdOm5vdCguc2JiLWFjdGl2ZSknLFxuICAgICAgKSxcbiAgICApIGFzIChTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudClbXTtcbiAgICBhY3RpdmVBY3Rpb25zPy5mb3JFYWNoKChhY3Rpb24pID0+IGFjdGlvbi5tYXJrZXI/LnJlc2V0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29uS2V5ZG93bkV2ZW50KGV2ZW50KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU5hdmlnYXRpb25DbG9zZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb3NlZFBhdGhFbGVtZW50cyA9IGV2ZW50XG4gICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgIC5maWx0ZXIoKGVsKSA9PiBlbCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCk7XG4gICAgaWYgKGNvbXBvc2VkUGF0aEVsZW1lbnRzLnNvbWUoKGVsKSA9PiB0aGlzLl9pc0Nsb3NlRWxlbWVudChlbCBhcyBIVE1MRWxlbWVudCkpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNDbG9zZUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0EnIHx8XG4gICAgICAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLWNsb3NlJykgJiYgIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKVxuICAgICk7XG4gIH1cblxuICAvLyBDbG9zZXMgdGhlIG5hdmlnYXRpb24gb24gXCJFc2NcIiBrZXkgcHJlc3NlZC5cbiAgcHJpdmF0ZSBfb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldE5hdmlnYXRpb25Gb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihcbiAgICAgICcjc2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uJyxcbiAgICApIGFzIEhUTUxFbGVtZW50O1xuICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoY2xvc2VCdXR0b24pO1xuICAgIGNsb3NlQnV0dG9uLmZvY3VzKCk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbmF2aWdhdGlvbi5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uID1cbiAgICAgIGlzRXZlbnRPbkVsZW1lbnQodGhpcy5fbmF2aWdhdGlvbiwgZXZlbnQpIHx8XG4gICAgICBpc0V2ZW50T25FbGVtZW50KFxuICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb25bZGF0YS1zdGF0ZT1cIm9wZW5lZFwiXScsXG4gICAgICAgICk/LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJ25hdi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uJykgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgIGV2ZW50LFxuICAgICAgKTtcbiAgfTtcblxuICAvLyBDbG9zZSBuYXZpZ2F0aW9uIG9uIGJhY2tkcm9wIGNsaWNrLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKCF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb24gJiYgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5fbmF2aWdhdGlvbiwgZXZlbnQpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8vIE9ic2VydmUgY2hhbmdlcyBvbiBuYXZpZ2F0aW9uIHNlY3Rpb24gZGF0YS1zdGF0ZS5cbiAgcHJpdmF0ZSBfb25OYXZpZ2F0aW9uU2VjdGlvbkNoYW5nZShtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XG4gICAgICBpZiAoKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkubm9kZU5hbWUgPT09ICdTQkItTkFWSUdBVElPTi1TRUNUSU9OJykge1xuICAgICAgICB0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbltkYXRhLXN0YXRlPVwib3BlbmluZ1wiXSwgc2JiLW5hdmlnYXRpb24tc2VjdGlvbltkYXRhLXN0YXRlPVwib3BlbmVkXCJdJyxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtaGFzLW5hdmlnYXRpb24tc2VjdGlvbicsICEhdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uTmF2aWdhdGlvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0KTtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1yZXNpemUtZGlzYWJsZS1hbmltYXRpb24nLCB0cnVlKTtcblxuICAgIC8vIERpc2FibGUgdGhlIGFuaW1hdGlvbiB3aGVuIHJlc2l6aW5nIHRoZSBuYXZpZ2F0aW9uIHRvIGF2b2lkIHN0cmFuZ2UgaGVpZ2h0IHRyYW5zaXRpb24gZWZmZWN0cy5cbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtcmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyksXG4gICAgICBERUJPVU5DRV9USU1FLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmlkIHx8PSBgc2JiLW5hdmlnYXRpb24tJHtuZXh0SWQrK31gO1xuICAgIHRoaXMuX2NvbmZpZ3VyZSh0aGlzLnRyaWdnZXIpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvbkNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IGh0bWxgXG4gICAgICA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICBpZD1cInNiYi1uYXZpZ2F0aW9uLWNsb3NlLWJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2Nsb3NlXCJcbiAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWwgfHwgaTE4bkNsb3NlTmF2aWdhdGlvblt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgYXJpYS1jb250cm9scz1cInNiYi1uYXZpZ2F0aW9uLW92ZXJsYXlcIlxuICAgICAgICBuZWdhdGl2ZVxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgIHNiYi1uYXZpZ2F0aW9uLWNsb3NlXG4gICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuICAgIGA7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD1cInNiYi1uYXZpZ2F0aW9uLW92ZXJsYXlcIlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH1cbiAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uXCJcbiAgICAgICAgICAke3JlZigobmF2aWdhdGlvblJlZj86IEVsZW1lbnQpID0+ICh0aGlzLl9uYXZpZ2F0aW9uID0gbmF2aWdhdGlvblJlZiBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19oZWFkZXJcIj4ke2Nsb3NlQnV0dG9ufTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19jb250ZW50XCJcbiAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX25hdmlnYXRpb25Db250ZW50RWxlbWVudCA9IGVsIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNsb3QgbmFtZT1cIm5hdmlnYXRpb24tc2VjdGlvblwiPjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uJzogU2JiTmF2aWdhdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYiIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
619
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7IFNiYkZvY3VzSGFuZGxlciwgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJJbmVydENvbnRyb2xsZXIsIFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQge1xuICBmaW5kUmVmZXJlbmNlZEVsZW1lbnQsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBTYmJTY3JvbGxIYW5kbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYlVwZGF0ZVNjaGVkdWxlck1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHtcbiAgaXNFdmVudE9uRWxlbWVudCxcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyxcbiAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS9vdmVybGF5LmpzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWJ1dHRvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL25hdmlnYXRpb24uc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vdHJhbnNwYXJlbnQtYnV0dG9uLmpzJztcblxuLyoqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhdHRyaWJ1dGUgdG8gbG9vayBhdCBpZiBhIG5hdmlnYXRpb24gc2VjdGlvbiBpcyBkaXNwbGF5ZWQgKi9cbmNvbnN0IG5hdmlnYXRpb25PYnNlcnZlckNvbmZpZzogTXV0YXRpb25PYnNlcnZlckluaXQgPSB7XG4gIHN1YnRyZWU6IHRydWUsXG4gIGF0dHJpYnV0ZUZpbHRlcjogWydkYXRhLXN0YXRlJ10sXG59O1xuXG5sZXQgbmV4dElkID0gMDtcbmNvbnN0IERFQk9VTkNFX1RJTUUgPSAxNTA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBuYXZpZ2F0aW9uIG1lbnUsIHdyYXBwaW5nIG9uZSBvciBtb3JlIGBzYmItbmF2aWdhdGlvbi0qYCBjb21wb25lbnRzLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItbmF2aWdhdGlvbi1idXR0b25gL2BzYmItbmF2aWdhdGlvbi1saW5rYCBlbGVtZW50cyBpbnRvIHRoZSBzYmItbmF2aWdhdGlvbiBtZW51LlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1uYXZpZ2F0aW9uYCBiZWdpbnMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW5hdmlnYXRpb25gIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW5hdmlnYXRpb25gIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW5hdmlnYXRpb25gIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1uYXZpZ2F0aW9uLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLW5hdmlnYXRpb24nKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcm9sZTogJ25hdmlnYXRpb24nLFxuICBwb3BvdmVyOiAnbWFudWFsJyxcbn0pXG5jbGFzcyBTYmJOYXZpZ2F0aW9uRWxlbWVudCBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbi5cbiAgICogQWNjZXB0cyBib3RoIGEgc3RyaW5nIChpZCBvZiBhbiBlbGVtZW50KSBvciBhbiBIVE1MIGVsZW1lbnQuXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHRyaWdnZXIodmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCkge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdHJpZ2dlcjtcbiAgICB0aGlzLl90cmlnZ2VyID0gdmFsdWU7XG4gICAgdGhpcy5fcmVtb3ZlVHJpZ2dlckNsaWNrTGlzdGVuZXIodGhpcy5fdHJpZ2dlciwgb2xkVmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgdHJpZ2dlcigpOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyO1xuICB9XG4gIHByaXZhdGUgX3RyaWdnZXI6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1jbG9zZS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlDbG9zZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogV2hldGhlciBhIG5hdmlnYXRpb24gc2VjdGlvbiBpcyBkaXNwbGF5ZWQuXG4gICAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZ2V0IGFjdGl2ZU5hdmlnYXRpb25TZWN0aW9uKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfbmF2aWdhdGlvbiE6IEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uQ29udGVudEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX25hdmlnYXRpb25Db250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF93aW5kb3dFdmVudHNDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2ZvY3VzSGFuZGxlciA9IG5ldyBTYmJGb2N1c0hhbmRsZXIoKTtcbiAgcHJpdmF0ZSBfc2Nyb2xsSGFuZGxlciA9IG5ldyBTYmJTY3JvbGxIYW5kbGVyKCk7XG4gIHByaXZhdGUgX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlclRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX25hdmlnYXRpb25SZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fb25OYXZpZ2F0aW9uUmVzaXplKCksXG4gIH0pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChldmVudCkgPT4gdGhpcy5faGFuZGxlTmF2aWdhdGlvbkNsb3NlKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJ1cCcsIChldmVudCkgPT4gdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2soZXZlbnQpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncG9pbnRlcmRvd24nLCAoZXZlbnQpID0+IHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIoZXZlbnQpKTtcblxuICAgIG5ldyBNdXRhdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgICBjb25maWc6IG5hdmlnYXRpb25PYnNlcnZlckNvbmZpZyxcbiAgICAgIGNhbGxiYWNrOiAobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSkgPT4gdGhpcy5fb25OYXZpZ2F0aW9uU2VjdGlvbkNoYW5nZShtdXRhdGlvbnNMaXN0KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgbmF2aWdhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJyB8fCAhdGhpcy5fbmF2aWdhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy53aWxsT3Blbi5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dQb3BvdmVyPy4oKTtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlQWN0aW9ucygpO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlU2VjdGlvbigpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcblxuICAgIC8vIERpc2FibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50IGJlbG93IHRoZSBuYXZpZ2F0aW9uXG4gICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlU2VjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb24gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnc2JiLW5hdmlnYXRpb24tYnV0dG9uLnNiYi1hY3RpdmUnLFxuICAgICkgYXMgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQ7XG4gICAgYWN0aXZlQWN0aW9uPy5jb25uZWN0ZWRTZWN0aW9uPy5vcGVuKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0FjdGl2ZUFjdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9ucyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspLnNiYi1hY3RpdmUnKSxcbiAgICApIGFzIChTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudClbXTtcbiAgICBhY3RpdmVBY3Rpb25zPy5mb3JFYWNoKChhY3Rpb24pID0+IGFjdGlvbi5tYXJrZXI/LnNlbGVjdChhY3Rpb24pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndpbGxDbG9zZS5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbG9zaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICB0aGlzLmhpZGVQb3BvdmVyPy4oKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsZW1lbnQuc2Nyb2xsVG8oMCwgMCk7XG4gICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG4gICAgdGhpcy5faW5lcnRDb250cm9sbGVyLmRlYWN0aXZhdGUoKTtcbiAgICAvLyBUbyBlbmFibGUgZm9jdXNpbmcgb3RoZXIgZWxlbWVudCB0aGFuIHRoZSB0cmlnZ2VyLCB3ZSBuZWVkIHRvIGNhbGwgZm9jdXMoKSBhIHNlY29uZCB0aW1lLlxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cygpO1xuICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCgpO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcyk7XG4gICAgdGhpcy5fcmVzZXRNYXJrZXJzKCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgLy8gRW5hYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gICAgdGhpcy5jb21wbGV0ZVVwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgdGhpcy5faW5lcnRDb250cm9sbGVyLmFjdGl2YXRlKCk7XG4gICAgdGhpcy5fZm9jdXNIYW5kbGVyLnRyYXAodGhpcywgeyBmaWx0ZXI6IHRoaXMuX3RyYXBGb2N1c0ZpbHRlciB9KTtcbiAgICB0aGlzLl9hdHRhY2hXaW5kb3dFdmVudHMoKTtcbiAgICB0aGlzLl9zZXROYXZpZ2F0aW9uRm9jdXMoKTtcbiAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gICAgdGhpcy5kaWRPcGVuLmVtaXQoKTtcbiAgfVxuXG4gIC8vIFJlbW92ZXMgdHJpZ2dlciBjbGljayBsaXN0ZW5lciBvbiB0cmlnZ2VyIGNoYW5nZS5cbiAgcHJpdmF0ZSBfcmVtb3ZlVHJpZ2dlckNsaWNrTGlzdGVuZXIoXG4gICAgbmV3VmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBvbGRWYWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9jb25maWd1cmUodGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgdHJpZ2dlciBpcyB2YWxpZCBhbmQgYXR0YWNoIGNsaWNrIGV2ZW50IGxpc3RlbmVycy5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKHRyaWdnZXI6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBmaW5kUmVmZXJlbmNlZEVsZW1lbnQodHJpZ2dlcik7XG5cbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCwgJ21lbnUnLCB0aGlzLmlkLCB0aGlzLnN0YXRlKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYXBGb2N1c0ZpbHRlciA9IChlbDogSFRNTEVsZW1lbnQpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gZWwubm9kZU5hbWUgIT09ICdTQkItTkFWSUdBVElPTi1TRUNUSU9OJyB8fCBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSA9PT0gJ29wZW5lZCc7XG4gIH07XG5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE1hcmtlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9ucyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICc6aXMoc2JiLW5hdmlnYXRpb24tYnV0dG9uLCBzYmItbmF2aWdhdGlvbi1saW5rKVtkYXRhLWFjdGlvbi1hY3RpdmVdOm5vdCguc2JiLWFjdGl2ZSknLFxuICAgICAgKSxcbiAgICApIGFzIChTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudClbXTtcbiAgICBhY3RpdmVBY3Rpb25zPy5mb3JFYWNoKChhY3Rpb24pID0+IGFjdGlvbi5tYXJrZXI/LnJlc2V0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29uS2V5ZG93bkV2ZW50KGV2ZW50KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU5hdmlnYXRpb25DbG9zZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb3NlZFBhdGhFbGVtZW50cyA9IGV2ZW50XG4gICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgIC5maWx0ZXIoKGVsKSA9PiBlbCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCk7XG4gICAgaWYgKGNvbXBvc2VkUGF0aEVsZW1lbnRzLnNvbWUoKGVsKSA9PiB0aGlzLl9pc0Nsb3NlRWxlbWVudChlbCBhcyBIVE1MRWxlbWVudCkpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNDbG9zZUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0EnIHx8XG4gICAgICAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLWNsb3NlJykgJiYgIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKVxuICAgICk7XG4gIH1cblxuICAvLyBDbG9zZXMgdGhlIG5hdmlnYXRpb24gb24gXCJFc2NcIiBrZXkgcHJlc3NlZC5cbiAgcHJpdmF0ZSBfb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldE5hdmlnYXRpb25Gb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihcbiAgICAgICcjc2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uJyxcbiAgICApIGFzIEhUTUxFbGVtZW50O1xuICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoY2xvc2VCdXR0b24pO1xuICAgIGNsb3NlQnV0dG9uLmZvY3VzKCk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbmF2aWdhdGlvbi5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uID1cbiAgICAgIGlzRXZlbnRPbkVsZW1lbnQodGhpcy5fbmF2aWdhdGlvbiwgZXZlbnQpIHx8XG4gICAgICBpc0V2ZW50T25FbGVtZW50KFxuICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb25bZGF0YS1zdGF0ZT1cIm9wZW5lZFwiXScsXG4gICAgICAgICk/LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJ25hdi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uJykgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgIGV2ZW50LFxuICAgICAgKTtcbiAgfTtcblxuICAvLyBDbG9zZSBuYXZpZ2F0aW9uIG9uIGJhY2tkcm9wIGNsaWNrLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKCF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb24gJiYgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5fbmF2aWdhdGlvbiwgZXZlbnQpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8vIE9ic2VydmUgY2hhbmdlcyBvbiBuYXZpZ2F0aW9uIHNlY3Rpb24gZGF0YS1zdGF0ZS5cbiAgcHJpdmF0ZSBfb25OYXZpZ2F0aW9uU2VjdGlvbkNoYW5nZShtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XG4gICAgICBpZiAoKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkubm9kZU5hbWUgPT09ICdTQkItTkFWSUdBVElPTi1TRUNUSU9OJykge1xuICAgICAgICB0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbltkYXRhLXN0YXRlPVwib3BlbmluZ1wiXSwgc2JiLW5hdmlnYXRpb24tc2VjdGlvbltkYXRhLXN0YXRlPVwib3BlbmVkXCJdJyxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtaGFzLW5hdmlnYXRpb24tc2VjdGlvbicsICEhdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uTmF2aWdhdGlvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0KTtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1yZXNpemUtZGlzYWJsZS1hbmltYXRpb24nLCB0cnVlKTtcblxuICAgIC8vIERpc2FibGUgdGhlIGFuaW1hdGlvbiB3aGVuIHJlc2l6aW5nIHRoZSBuYXZpZ2F0aW9uIHRvIGF2b2lkIHN0cmFuZ2UgaGVpZ2h0IHRyYW5zaXRpb24gZWZmZWN0cy5cbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtcmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyksXG4gICAgICBERUJPVU5DRV9USU1FLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmlkIHx8PSBgc2JiLW5hdmlnYXRpb24tJHtuZXh0SWQrK31gO1xuICAgIHRoaXMuX2NvbmZpZ3VyZSh0aGlzLnRyaWdnZXIpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvbkNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IGh0bWxgXG4gICAgICA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICBpZD1cInNiYi1uYXZpZ2F0aW9uLWNsb3NlLWJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2Nsb3NlXCJcbiAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWwgfHwgaTE4bkNsb3NlTmF2aWdhdGlvblt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgYXJpYS1jb250cm9scz1cInNiYi1uYXZpZ2F0aW9uLW92ZXJsYXlcIlxuICAgICAgICBuZWdhdGl2ZVxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgIHNiYi1uYXZpZ2F0aW9uLWNsb3NlXG4gICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuICAgIGA7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD1cInNiYi1uYXZpZ2F0aW9uLW92ZXJsYXlcIlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH1cbiAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uXCJcbiAgICAgICAgICAke3JlZigobmF2aWdhdGlvblJlZj86IEVsZW1lbnQpID0+ICh0aGlzLl9uYXZpZ2F0aW9uID0gbmF2aWdhdGlvblJlZiBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19oZWFkZXJcIj4ke2Nsb3NlQnV0dG9ufTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19jb250ZW50XCJcbiAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX25hdmlnYXRpb25Db250ZW50RWxlbWVudCA9IGVsIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNsb3QgbmFtZT1cIm5hdmlnYXRpb24tc2VjdGlvblwiPjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uJzogU2JiTmF2aWdhdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYiIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0JBLE1BQU0sMkJBQWlEO0FBQUEsRUFDckQsU0FBUztBQUFBLEVBQ1QsaUJBQWlCLENBQUMsWUFBWTs7QUFHaEMsSUFBSSxTQUFTO0FBQ2IsTUFBTSxnQkFBZ0I7SUFvQmhCLHdCQUFvQixNQUFBOztBQUx6QixNQUFBLG1CQUFBLENBQUEsY0FBYyxnQkFBZ0IsR0FDOUIsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLEVBQUEsQ0FDVixDQUFDOzs7O29CQUNpQyx3QkFBd0IsdUJBQXVCOzs7Ozs7Ozs7QUFBdkQsRUFBQSxtQkFBUSxZQUFnRDtBQUFBLElBa0RqRixjQUFBOzs7QUEzQkE7QUFLUztBQVpELFdBQUEsWUFoQkosa0JBQUEsTUFBQSwwQkFBQSxHQWdCNEM7QUFPaEMseUJBQUEsMkNBQUEsa0JBQUEsTUFBQSx1Q0FBa0MsRUFBRTtBQUsxQix5QkFBQSw2Q0FBQSxrQkFBQSxNQUFBLDBDQUFBLEdBQUEsa0JBQUEsTUFBQSx3Q0FBK0MsSUFBSTtBQU1yRSxXQUFBLGNBQTZCLGtCQUFBLE1BQUEsMkNBQUE7QUFFN0IsV0FBZSxrQkFBdUI7QUFHdEMsV0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFDMUMsV0FBQSxtQkFBbUIsSUFBSSxtQkFBbUIsSUFBSTtBQUM5QyxXQUFBLGdCQUFnQixJQUFJLGdCQUFlO0FBQ25DLFdBQUEsaUJBQWlCLElBQUksaUJBQWdCO0FBQ3JDLFdBQStCLGtDQUFZO0FBQzNDLFdBQXNCLHlCQUF5QztBQUMvRCxXQUFBLDRCQUE0QixJQUFJLGlCQUFpQixNQUFNO0FBQUEsUUFDN0QsYUFBYTtBQUFBLFFBQ2IsVUFBVSxNQUFNLEtBQUssb0JBQXFCO0FBQUEsTUFBQSxDQUMzQztBQW9KTyxXQUFBLG1CQUFtQixDQUFDLE9BQTRCO0FBQ3RELGVBQU8sR0FBRyxhQUFhLDRCQUE0QixHQUFHLGFBQWEsWUFBWSxNQUFNO0FBQUEsTUFDdkY7QUE2RFEsV0FBQSx1QkFBdUIsQ0FBQyxVQUE2Qjs7QUFDM0QsYUFBSyxrQ0FDSCxpQkFBaUIsS0FBSyxhQUFhLEtBQUssS0FDeEMsa0JBQ0VBLE9BQUFDLE1BQUEsS0FBSyxjQUNILDZDQUE2QyxNQUQvQyxnQkFBQUEsSUFFRyxlQUZILGdCQUFBRCxJQUVlLGNBQWMsK0JBQzdCLEtBQUs7QUFBQSxNQUVYO0FBR1EsV0FBQSx3QkFBd0IsQ0FBQyxVQUE2QjtBQUN4RCxZQUFBLENBQUMsS0FBSyxtQ0FBbUMsQ0FBQyxpQkFBaUIsS0FBSyxhQUFhLEtBQUssR0FBRztBQUN2RixlQUFLLE1BQUs7QUFBQSxRQUFBO0FBQUEsTUFFZDtBQS9ORSxPQUFBQyxNQUFBLEtBQUsscUJBQUwsZ0JBQUFBLElBQUEsV0FBd0IsU0FBUyxDQUFDLFVBQVUsS0FBSyx1QkFBdUIsS0FBSztBQUM3RSxpQkFBSyxxQkFBTCw4QkFBd0IsYUFBYSxDQUFDLFVBQVUsS0FBSyxzQkFBc0IsS0FBSztBQUNoRixpQkFBSyxxQkFBTCw4QkFBd0IsZUFBZSxDQUFDLFVBQVUsS0FBSyxxQkFBcUIsS0FBSztBQUVqRixVQUFJLG1CQUFtQixNQUFNO0FBQUEsUUFDM0IsYUFBYTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsVUFBVSxDQUFDLGtCQUFvQyxLQUFLLDJCQUEyQixhQUFhO0FBQUEsTUFBQSxDQUM3RjtBQUFBLElBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBcERILElBQVcsUUFBUSxPQUFrQztBQUNuRCxZQUFNLFdBQVcsS0FBSztBQUN0QixXQUFLLFdBQVc7QUFDWCxXQUFBLDRCQUE0QixLQUFLLFVBQVUsUUFBUTtBQUFBLElBQUE7QUFBQSxJQUUxRCxJQUFXLFVBQU87QUFDaEIsYUFBTyxLQUFLO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBU2QsSUFBZ0IsMEJBQXFDO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFyRCxJQUFnQix3QkFBcUMsT0FBQTtBQUFBLHlCQUFBLDJDQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBSzVDLElBQWlCLDJCQUFvRDtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBckUsSUFBaUIseUJBQW9ELE9BQUE7QUFBQSx5QkFBQSw0Q0FBQTtBQUFBLElBQUE7QUFBQSxJQUU5RSxJQUFXLDBCQUF1QjtBQUNoQyxhQUFPLEtBQUs7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFtQ1AsT0FBSTs7QUFDVCxVQUFJLEtBQUssVUFBVSxZQUFZLENBQUMsS0FBSyxhQUFhO0FBQ2hEO0FBQUEsTUFBQTtBQUdGLFVBQUksQ0FBQyxLQUFLLFNBQVMsUUFBUTtBQUN6QjtBQUFBLE1BQUE7QUFHRixPQUFBQSxNQUFBLEtBQUssZ0JBQUwsZ0JBQUFBLElBQUE7QUFDQSxXQUFLLFFBQVE7QUFDYixXQUFLLG9CQUFtQjtBQUN4QixXQUFLLG9CQUFtQjtBQUN4QixXQUFLLFlBQVc7QUFHaEIsV0FBSyxlQUFlO0FBQ2YsaUJBQUEsb0JBQUEsbUJBQWlCLGFBQWEsaUJBQWlCO0FBSWhELFVBQUEsS0FBSyw0QkFBNEI7QUFDbkMsYUFBSyxlQUFjO0FBQUEsTUFBQTtBQUFBLElBQ3JCO0FBQUEsSUFHTSxzQkFBbUI7O0FBQ25CLFlBQUEsZUFBZSxLQUFLLGNBQ3hCLGtDQUFrQztBQUVwQyxPQUFBQSxNQUFBLDZDQUFjLHFCQUFkLGdCQUFBQSxJQUFnQztBQUFBO0lBRzFCLHNCQUFtQjtBQUN6QixZQUFNLGdCQUFnQixNQUFNLEtBQzFCLEtBQUssaUJBQWlCLDREQUE0RCxDQUFDO0FBRXJGLHFEQUFlLFFBQVEsQ0FBQyxXQUFBOztBQUFXLGdCQUFBQSxNQUFBLE9BQU8sV0FBUCxnQkFBQUEsSUFBZSxPQUFPO0FBQUE7QUFBQSxJQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFNM0QsUUFBSzs7QUFDTixVQUFBLEtBQUssVUFBVSxVQUFVO0FBQzNCO0FBQUEsTUFBQTtBQUdGLFVBQUksQ0FBQyxLQUFLLFVBQVUsUUFBUTtBQUMxQjtBQUFBLE1BQUE7QUFFRixXQUFLLFFBQVE7QUFDYixXQUFLLFlBQVc7QUFDWCxPQUFBQSxNQUFBLEtBQUEsb0JBQUEsZ0JBQUFBLElBQWlCLGFBQWEsaUJBQWlCO0FBSWhELFVBQUEsS0FBSyw0QkFBNEI7QUFDbkMsYUFBSyxlQUFjO0FBQUEsTUFBQTtBQUFBLElBQ3JCO0FBQUEsSUFHTSwyQkFBd0I7QUFDdkIsYUFBQSx3QkFBd0IsTUFBTSxxQ0FBcUM7QUFBQSxJQUFBO0FBQUEsSUFHcEUsaUJBQWM7O0FBQ3BCLFdBQUssUUFBUTtBQUNiLE9BQUFBLE1BQUEsS0FBSyxnQkFBTCxnQkFBQUEsSUFBQTtBQUNLLFdBQUEsMEJBQTBCLFNBQVMsR0FBRyxDQUFDO0FBQzVDLDZCQUF1QixLQUFLLGVBQWU7QUFDM0MsV0FBSyxpQkFBaUI7QUFFdEIsaUJBQUssb0JBQUwsbUJBQXNCO0FBQ3RCLFdBQUssU0FBUztBQUNULFdBQUEsMEJBQTBCLFVBQVUsSUFBSTtBQUM3QyxXQUFLLGNBQWE7QUFDbEIsaUJBQUssNEJBQUwsbUJBQThCO0FBQzlCLFdBQUssY0FBYztBQUduQixXQUFLLGVBQWU7QUFDcEIsV0FBSyxlQUFjO0FBQUEsSUFBQTtBQUFBLElBR2IsaUJBQWM7QUFDcEIsV0FBSyxRQUFRO0FBQ1IsV0FBQSwwQkFBMEIsUUFBUSxJQUFJO0FBQzNDLFdBQUssaUJBQWlCO0FBQ3RCLFdBQUssY0FBYyxLQUFLLE1BQU0sRUFBRSxRQUFRLEtBQUssa0JBQWtCO0FBQy9ELFdBQUssb0JBQW1CO0FBQ3hCLFdBQUssb0JBQW1CO0FBQ3hCLFdBQUssZUFBYztBQUNuQixXQUFLLFFBQVE7OztJQUlQLDRCQUNOLFVBQ0EsVUFBcUM7O0FBRXJDLFVBQUksYUFBYSxVQUFVO0FBQ3pCLFNBQUFBLE1BQUEsS0FBSywwQkFBTCxnQkFBQUEsSUFBNEI7QUFDNUIsbUJBQUssNEJBQUwsbUJBQThCO0FBQ3pCLGFBQUEsV0FBVyxLQUFLLE9BQU87QUFBQSxNQUFBO0FBQUEsSUFDOUI7QUFBQTtBQUFBLElBSU0sV0FBVyxTQUFvQzs7QUFDckQseUNBQW1DLEtBQUssZUFBZTtBQUV2RCxVQUFJLENBQUMsU0FBUztBQUNaO0FBQUEsTUFBQTtBQUdHLFdBQUEsa0JBQWtCLHNCQUFzQixPQUFPO0FBRWhELFVBQUEsQ0FBQyxLQUFLLGlCQUFpQjtBQUN6QjtBQUFBLE1BQUE7QUFHRixzQ0FBZ0MsS0FBSyxpQkFBaUIsUUFBUSxLQUFLLElBQUksS0FBSyxLQUFLO0FBQ2pGLE9BQUFBLE1BQUEsS0FBSywwQkFBTCxnQkFBQUEsSUFBNEI7QUFDdkIsV0FBQSx3QkFBd0IsSUFBSTtBQUNqQyxXQUFLLGdCQUFnQixpQkFBaUIsU0FBUyxNQUFNLEtBQUssUUFBUTtBQUFBLFFBQ2hFLFFBQVEsS0FBSyxzQkFBc0I7QUFBQSxNQUFBLENBQ3BDO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQSxJQVNLLGdCQUFnQixPQUFxQjtBQUMzQyxVQUFJLE1BQU0sa0JBQWtCLFVBQVUsS0FBSyxVQUFVLFdBQVc7QUFDOUQsYUFBSyxlQUFjO0FBQUEsTUFBQSxXQUNWLE1BQU0sa0JBQWtCLFdBQVcsS0FBSyxVQUFVLFdBQVc7QUFDdEUsYUFBSyxlQUFjO0FBQUEsTUFBQTtBQUFBLElBQ3JCO0FBQUEsSUFHTSxnQkFBYTtBQUNuQixZQUFNLGdCQUFnQixNQUFNLEtBQzFCLEtBQUssaUJBQ0gsc0ZBQXNGLENBQ3ZGO0FBRUgscURBQWUsUUFBUSxDQUFDLFdBQVc7O0FBQUEsZ0JBQUFBLE1BQUEsT0FBTyxXQUFQLGdCQUFBQSxJQUFlO0FBQUE7QUFBQSxJQUFPO0FBQUEsSUFHbkQsc0JBQW1CO0FBQ3BCLFdBQUEsMEJBQTBCLElBQUk7QUFDbkMsYUFBTyxpQkFBaUIsV0FBVyxDQUFDLFVBQXlCLEtBQUssZ0JBQWdCLEtBQUssR0FBRztBQUFBLFFBQ3hGLFFBQVEsS0FBSyx3QkFBd0I7QUFBQSxNQUFBLENBQ3RDO0FBQUEsSUFBQTtBQUFBLElBR0ssdUJBQXVCLE9BQVk7QUFDbkMsWUFBQSx1QkFBdUIsTUFDMUIsZUFDQSxPQUFPLENBQUMsT0FBTyxjQUFjLE9BQU8sV0FBVztBQUM5QyxVQUFBLHFCQUFxQixLQUFLLENBQUMsT0FBTyxLQUFLLGdCQUFnQixFQUFpQixDQUFDLEdBQUc7QUFDOUUsYUFBSyxNQUFLO0FBQUEsTUFBQTtBQUFBLElBQ1o7QUFBQSxJQUdNLGdCQUFnQixTQUFvQjtBQUV4QyxhQUFBLFFBQVEsYUFBYSxPQUNwQixRQUFRLGFBQWEsc0JBQXNCLEtBQUssQ0FBQyxRQUFRLGFBQWEsVUFBVTtBQUFBLElBQUE7QUFBQTtBQUFBLElBSzdFLGdCQUFnQixPQUFvQjtBQUMxQyxVQUFJLEtBQUssVUFBVSxZQUFZLE1BQU0sUUFBUSxVQUFVO0FBQ3JELGFBQUssTUFBSztBQUFBLE1BQUE7QUFBQSxJQUNaO0FBQUE7QUFBQSxJQUlNLHNCQUFtQjtBQUN6QixZQUFNLGNBQWMsS0FBSyxXQUFZLGNBQ25DLDhCQUE4QjtBQUVoQyw2QkFBdUIsV0FBVztBQUNsQyxrQkFBWSxNQUFLO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUF1QlgsMkJBQTJCLGVBQStCO0FBQ2hFLGlCQUFXLFlBQVksZUFBZTtBQUMvQixZQUFBLFNBQVMsT0FBdUIsYUFBYSwwQkFBMEI7QUFDckUsZUFBQSwyQkFBMkIsS0FBSyxjQUNuQywyRkFBMkY7QUFFN0YsZUFBSyxnQkFBZ0IsK0JBQStCLENBQUMsQ0FBQyxLQUFLLHdCQUF3QjtBQUFBLFFBQUE7QUFBQSxNQUNyRjtBQUFBLElBQ0Y7QUFBQSxJQUdNLHNCQUFtQjtBQUNyQixVQUFBLEtBQUssVUFBVSxVQUFVO0FBQzNCO0FBQUEsTUFBQTtBQUdGLFVBQUksS0FBSyx3QkFBd0I7QUFDL0IscUJBQWEsS0FBSyxzQkFBc0I7QUFBQSxNQUFBO0FBR3JDLFdBQUEsZ0JBQWdCLGlDQUFpQyxJQUFJO0FBRzFELFdBQUsseUJBQXlCLFdBQzVCLE1BQU0sS0FBSyxnQkFBZ0IsK0JBQStCLEdBQzFELGFBQWE7QUFBQSxJQUFBO0FBQUEsSUFJRCxvQkFBaUI7QUFDL0IsWUFBTSxrQkFBaUI7QUFDbEIsV0FBQSxPQUFBLEtBQUEsS0FBTyxrQkFBa0IsUUFBUTtBQUNqQyxXQUFBLFdBQVcsS0FBSyxPQUFPO0FBQUEsSUFBQTtBQUFBLElBR2QsdUJBQW9COztBQUNsQyxZQUFNLHFCQUFvQjtBQUMxQixPQUFBQSxNQUFBLEtBQUssMEJBQUwsZ0JBQUFBLElBQTRCO0FBQzVCLGlCQUFLLDRCQUFMLG1CQUE4QjtBQUM5QixXQUFLLGNBQWM7QUFDbkIsV0FBSyxlQUFlOztJQUdILFNBQU07QUFDdkIsWUFBTSxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBSUgsS0FBSywyQkFBMkIsb0JBQW9CLEtBQUssVUFBVSxPQUFPLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVXJGLGFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwwQkFJZSxLQUFLLGVBQWU7QUFBQTtBQUFBLFlBRWxDLElBQUksQ0FBQyxrQkFBNkIsS0FBSyxjQUFjLGFBQWdDLENBQUM7QUFBQTtBQUFBLGdEQUVsRCxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBSTNDLElBQUksQ0FBQyxPQUFrQixLQUFLLDRCQUE0QixFQUFrQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBQUE7QUFBQSxLQXJVekYsMkRBS1M7O0FBckJSLDhCQUFBLENBQUEsVUFBVTsyQ0FjVixhQUNBLFNBQVMsRUFBRSxXQUFXLDRCQUFBLENBQTZCLENBQUM7QUFNcEQsMkNBQUEsQ0FBQSxPQUFPO0FBcEJSLGlCQUFBLElBQUEsTUFBQSx5QkFBQSxFQUFBLE1BQUEsVUFBQSxNQUFBLFdBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsYUFBQSxLQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFXLFVBSVY7QUFBQSxTQUFBLFVBQUEsYUFBQSxNQUFBLDBCQUFBO0FBV2UsaUJBQUEsSUFBQSxNQUFBLHFDQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsMkJBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsNkJBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLHlCQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLDBCQUFxQztBQUFBLFNBQUEsVUFBQSxhQUFBLHVDQUFBLDBDQUFBO0FBSzNCLGlCQUFBLElBQUEsTUFBQSxzQ0FBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLDRCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLDhCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSwwQkFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBQSwyQkFBb0Q7QUFBQSxTQUFBLFVBQUEsYUFBQSx3Q0FBQSwyQ0FBQTtBQTVCaEYsaUJBc1dDLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFyV3dCLEdBQU0sU0FBbUIsT0FENUMsa0JBQW9CLFlBQUEsdUJBQUEsR0FBQzs7OyJ9
|
|
@@ -54,14 +54,15 @@ export declare abstract class SbbOptionBaseElement extends SbbOptionBaseElement_
|
|
|
54
54
|
protected init(): void;
|
|
55
55
|
protected updateAriaDisabled(): void;
|
|
56
56
|
private _updateAriaSelected;
|
|
57
|
-
/**
|
|
57
|
+
/** @deprecated use onExternalMutation() as replacement. Will be removed with next major change. */
|
|
58
58
|
protected onOptionAttributesChange(mutationsList: MutationRecord[]): void;
|
|
59
|
+
/** Observe changes on data attributes + slotted content and set the appropriate values. */
|
|
60
|
+
protected onExternalMutation(mutationsList: MutationRecord[]): void;
|
|
59
61
|
protected handleHighlightState(): void;
|
|
60
62
|
protected getHighlightedLabel(): TemplateResult;
|
|
61
63
|
protected renderIcon(): TemplateResult;
|
|
62
64
|
protected renderLabel(): TemplateResult | typeof nothing;
|
|
63
65
|
protected renderTick(): TemplateResult | typeof nothing;
|
|
64
|
-
private _handleSlotChange;
|
|
65
66
|
protected render(): TemplateResult;
|
|
66
67
|
}
|
|
67
68
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option/option-base-element.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,UAAU,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAK1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,6BAA6B,CAAC;;
|
|
1
|
+
{"version":3,"file":"option-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option/option-base-element.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,UAAU,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAK1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,6BAA6B,CAAC;;AAoBrC,8BAEe,oBAAqB,SAAQ,yBAE3C;IACC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEpC;;;;;OAKG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IACD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,sCAAsC;IACtC,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAGjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,sDAAsD;IACtD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IAEjD,iDAAiD;IACjD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;IAEhD,4CAA4C;IACnC,SAAS,CAAC,QAAQ,CAAC,QAAQ,UAAS;IAE7C,yFAAyF;IAChF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,UAAS;IAE7C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAG,MAAM,CAAC;IAE3C,0CAA0C;IACjC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAS;IAEnE,4CAA4C;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IAExD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;;IAsBnC,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAMP;;;;OAIG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACI,6BAA6B,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQ7C,iBAAiB,IAAI,IAAI;cAUtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cASzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9E,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IACzD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,IAAI;IAEjD,SAAS,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKzD;;;OAGG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,SAAS,CAAC,IAAI,IAAI,IAAI;IAItB,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAQpC,OAAO,CAAC,mBAAmB;IAI3B,mGAAmG;IACnG,SAAS,CAAC,wBAAwB,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI;IAIzE,2FAA2F;IAC3F,SAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI;IAiBnE,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAuBtC,SAAS,CAAC,mBAAmB,IAAI,cAAc;IAwB/C,SAAS,CAAC,UAAU,IAAI,cAAc;IAItC,SAAS,CAAC,WAAW,IAAI,cAAc,GAAG,OAAO,OAAO;IAIxD,SAAS,CAAC,UAAU,IAAI,cAAc,GAAG,OAAO,OAAO;cAIpC,MAAM,IAAI,cAAc;CAmB5C"}
|
|
@@ -19,7 +19,11 @@ import "../visual-checkbox.js";
|
|
|
19
19
|
let nextId = 0;
|
|
20
20
|
const inertAriaGroups = isSafari;
|
|
21
21
|
const optionObserverConfig = {
|
|
22
|
-
attributeFilter: ["data-group-disabled", "data-negative"]
|
|
22
|
+
attributeFilter: ["data-group-disabled", "data-negative"],
|
|
23
|
+
attributes: true,
|
|
24
|
+
childList: true,
|
|
25
|
+
subtree: true,
|
|
26
|
+
characterData: true
|
|
23
27
|
};
|
|
24
28
|
let SbbOptionBaseElement = (() => {
|
|
25
29
|
var _negative_accessor_storage, _disabledFromGroup_accessor_storage, _label_accessor_storage, _disableLabelHighlight_accessor_storage, __highlightString_accessor_storage, __inertAriaGroups_accessor_storage, _a;
|
|
@@ -202,14 +206,21 @@ let SbbOptionBaseElement = (() => {
|
|
|
202
206
|
_updateAriaSelected() {
|
|
203
207
|
this.setAttribute("aria-selected", `${this.selected}`);
|
|
204
208
|
}
|
|
205
|
-
/**
|
|
209
|
+
/** @deprecated use onExternalMutation() as replacement. Will be removed with next major change. */
|
|
206
210
|
onOptionAttributesChange(mutationsList) {
|
|
211
|
+
this.onExternalMutation(mutationsList);
|
|
212
|
+
}
|
|
213
|
+
/** Observe changes on data attributes + slotted content and set the appropriate values. */
|
|
214
|
+
onExternalMutation(mutationsList) {
|
|
207
215
|
for (const mutation of mutationsList) {
|
|
208
216
|
if (mutation.attributeName === "data-group-disabled") {
|
|
209
217
|
this.disabledFromGroup = this.hasAttribute("data-group-disabled");
|
|
210
218
|
this.updateAriaDisabled();
|
|
211
219
|
} else if (mutation.attributeName === "data-negative") {
|
|
212
220
|
this.negative = this.hasAttribute("data-negative");
|
|
221
|
+
} else {
|
|
222
|
+
this.dispatchEvent(new Event("optionLabelChanged", { bubbles: true }));
|
|
223
|
+
return;
|
|
213
224
|
}
|
|
214
225
|
}
|
|
215
226
|
}
|
|
@@ -247,17 +258,13 @@ let SbbOptionBaseElement = (() => {
|
|
|
247
258
|
renderTick() {
|
|
248
259
|
return nothing;
|
|
249
260
|
}
|
|
250
|
-
_handleSlotChange() {
|
|
251
|
-
this.handleHighlightState();
|
|
252
|
-
this.dispatchEvent(new Event("optionLabelChanged", { bubbles: true }));
|
|
253
|
-
}
|
|
254
261
|
render() {
|
|
255
262
|
return html`
|
|
256
263
|
<div class="sbb-option__container">
|
|
257
264
|
<div class="sbb-option">
|
|
258
265
|
${this.renderIcon()}
|
|
259
266
|
<span class="sbb-option__label">
|
|
260
|
-
<slot @slotchange=${this.
|
|
267
|
+
<slot @slotchange=${this.handleHighlightState}></slot>
|
|
261
268
|
${this.renderLabel()}
|
|
262
269
|
${this._inertAriaGroups && this.getAttribute("data-group-label") ? html` <sbb-screen-reader-only>
|
|
263
270
|
(${this.getAttribute("data-group-label")})</sbb-screen-reader-only
|
|
@@ -565,4 +572,4 @@ export {
|
|
|
565
572
|
SbbOptionBaseElement,
|
|
566
573
|
SbbOptionElement
|
|
567
574
|
};
|
|
568
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL29wdGlvbi9vcHRpb24vb3B0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzQW5kcm9pZCwgaXNTYWZhcmksIHNldE9yUmVtb3ZlQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHR5cGUgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4sIFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGdyb3VwcyBsYWJlbHMgYXJlIG5vdCByZWFkIGJ5IFZvaWNlT3Zlci5cbiAqIFRvIHNvbHZlIHRoZSBwcm9ibGVtLCB3ZSByZW1vdmUgdGhlIHJvbGU9XCJncm91cFwiIGFuZCBhZGQgYW4gaGlkZGVuIHNwYW4gY29udGFpbmluZyB0aGUgZ3JvdXAgbmFtZVxuICogVE9ETzogV2Ugc2hvdWxkIHBlcmlvZGljYWxseSBjaGVjayBpZiBpdCBoYXMgYmVlbiBzb2x2ZWQgYW5kLCBpZiBzbywgcmVtb3ZlIHRoZSBwcm9wZXJ0eS5cbiAqL1xuY29uc3QgaW5lcnRBcmlhR3JvdXBzID0gaXNTYWZhcmk7XG5cbi8qKiBDb25maWd1cmF0aW9uIGZvciB0aGUgYXR0cmlidXRlIHRvIGxvb2sgYXQgaWYgY29tcG9uZW50IGlzIG5lc3RlZCBpbiBhbiBvcHRpb24gZ3JvdXAgKi9cbmNvbnN0IG9wdGlvbk9ic2VydmVyQ29uZmlnOiBNdXRhdGlvbk9ic2VydmVySW5pdCA9IHtcbiAgYXR0cmlidXRlRmlsdGVyOiBbJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnLCAnZGF0YS1uZWdhdGl2ZSddLFxufTtcblxuZXhwb3J0XG5Ac2xvdFN0YXRlKClcbmFic3RyYWN0IGNsYXNzIFNiYk9wdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiSWNvbk5hbWVNaXhpbihTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9wdGlvbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhbHVlIG9mIHRoZSBvcHRpb24uXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZXZlbG9wZXIgbm90ZTogSW4gdGhpcyBjYXNlIHVwZGF0aW5nIHRoZSBhdHRyaWJ1dGUgbXVzdCBiZSBzeW5jaHJvbm91cy5cbiAgICogRHVlIHRvIHRoaXMsIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBgJHt2YWx1ZX1gKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdmFsdWUpO1xuICAgIHRoaXMuX3VwZGF0ZUFyaWFTZWxlY3RlZCgpO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpO1xuICB9XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIG9wdGlvbiBzZWxlY3Rpb24gc3RhdHVzIGNoYW5nZXMuICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjtcblxuICAvKiogRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGFwcGx5IHRoZSBuZWdhdGl2ZSBzdHlsaW5nICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBuZWdhdGl2ZSA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgbXVzdCBiZSBzZXQgZGlzYWJsZWQgZHVlIGRpc2FibGVkIGF0dHJpYnV0ZSBvbiBzYmItb3B0Z3JvdXAuICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBkaXNhYmxlZEZyb21Hcm91cCA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBsYWJlbCE6IHN0cmluZztcblxuICAvKiogRGlzYWJsZSB0aGUgaGlnaGxpZ2h0IG9mIHRoZSBsYWJlbC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGRpc2FibGVMYWJlbEhpZ2hsaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgcG9ydGlvbiBvZiB0aGUgaGlnaGxpZ2h0ZWQgbGFiZWwuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2hpZ2hsaWdodFN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaW5lcnRBcmlhR3JvdXBzID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGU6IE1vdXNlRXZlbnQpID0+IHRoaXMuc2VsZWN0QnlDbGljayhlKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIG5ldyBNdXRhdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgICAgY29uZmlnOiBvcHRpb25PYnNlcnZlckNvbmZpZyxcbiAgICAgIGNhbGxiYWNrOiAobXV0YXRpb25zTGlzdCkgPT4gdGhpcy5vbk9wdGlvbkF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdCksXG4gICAgfSk7XG5cbiAgICBpZiAoaW5lcnRBcmlhR3JvdXBzKSB7XG4gICAgICBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT4gKHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5faW5lcnRBcmlhR3JvdXBzID0gaW5lcnRBcmlhR3JvdXBzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9sZDogc3RyaW5nIHwgbnVsbCxcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIaWdobGlnaHQgdGhlIGxhYmVsIG9mIHRoZSBvcHRpb25cbiAgICogQHBhcmFtIHZhbHVlIHRoZSBoaWdobGlnaHRlZCBwb3J0aW9uIG9mIHRoZSBsYWJlbFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBoaWdobGlnaHQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2hpZ2hsaWdodFN0cmluZyA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldFNlbGVjdGVkVmlhVXNlckludGVyYWN0aW9uKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3RlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5pZCB8fD0gYCR7dGhpcy5vcHRpb25JZH0tJHtuZXh0SWQrK31gO1xuICAgIGlmICh0aGlzLmh5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5pbml0KCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHNldE9yUmVtb3ZlQXR0cmlidXRlKHRoaXMsICd0YWJpbmRleCcsIGlzQW5kcm9pZCAmJiAhdGhpcy5kaXNhYmxlZCAmJiAwKTtcbiAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gSW5pdCBmaXJzdCBzZWxlY3Qgc3RhdGUgYmVjYXVzZSBmYWxzZSB3b3VsZCBub3QgY2FsbCBzZXR0ZXIgb2Ygc2VsZWN0ZWQgcHJvcGVydHkuXG4gICAgdGhpcy5fdXBkYXRlQXJpYVNlbGVjdGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2VsZWN0QnlDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRBdHRyaWJ1dGVGcm9tUGFyZW50KCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZURpc2FibGVIaWdobGlnaHQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVMYWJlbEhpZ2hsaWdodCA9IGRpc2FibGVkO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGUtaGlnaGxpZ2h0JywgZGlzYWJsZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBjdXJyZW50bHkgYWN0aXZlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnLCB2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZUZyb21QYXJlbnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVBcmlhRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCkge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnLCAndHJ1ZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1kaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUFyaWFTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGAke3RoaXMuc2VsZWN0ZWR9YCk7XG4gIH1cblxuICAvKiogT2JzZXJ2ZSBjaGFuZ2VzIG9uIGRhdGEgYXR0cmlidXRlcyBhbmQgc2V0IHRoZSBhcHByb3ByaWF0ZSB2YWx1ZXMuICovXG4gIHByb3RlY3RlZCBvbk9wdGlvbkF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xuICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdkYXRhLWdyb3VwLWRpc2FibGVkJykge1xuICAgICAgICB0aGlzLmRpc2FibGVkRnJvbUdyb3VwID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnKTtcbiAgICAgICAgdGhpcy51cGRhdGVBcmlhRGlzYWJsZWQoKTtcbiAgICAgIH0gZWxzZSBpZiAobXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gJ2RhdGEtbmVnYXRpdmUnKSB7XG4gICAgICAgIHRoaXMubmVnYXRpdmUgPSB0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1uZWdhdGl2ZScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVIaWdobGlnaHRTdGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzbG90Tm9kZXMgPSBBcnJheS5mcm9tKHRoaXMuY2hpbGROb2RlcyA/PyBbXSkuZmlsdGVyKFxuICAgICAgKG4pID0+IG4ubm9kZVR5cGUgIT09IE5vZGUuQ09NTUVOVF9OT0RFICYmICghKG4gaW5zdGFuY2VvZiBFbGVtZW50KSB8fCBuLnNsb3QgIT09ICdpY29uJyksXG4gICAgKTtcbiAgICBjb25zdCBsYWJlbE5vZGVzID0gc2xvdE5vZGVzLmZpbHRlcigoZWwpID0+IGVsLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkgYXMgVGV4dFtdO1xuXG4gICAgLy8gRGlzYWJsZSB0aGUgaGlnaGxpZ2h0IGlmIHRoZSBzbG90IGNvbnRhaW4gbW9yZSB0aGFuIGp1c3QgdGV4dCBub2Rlcy5cbiAgICAvLyBXZSBuZWVkIHRvIGlnbm9yZSB0ZW1wbGF0ZSBlbGVtZW50cywgYXMgU1NSIGFkZHMgYSBkZWNsYXJhdGl2ZSBzaGFkb3cgRE9NXG4gICAgLy8gaW4gdGhlIGZvcm0gb2YgYSB0ZW1wbGF0ZSBlbGVtZW50LlxuICAgIGlmIChcbiAgICAgIGxhYmVsTm9kZXMubGVuZ3RoID09PSAwIHx8XG4gICAgICBzbG90Tm9kZXMuZmlsdGVyKChuKSA9PiAhKG4gaW5zdGFuY2VvZiBFbGVtZW50KSB8fCBuLmxvY2FsTmFtZSAhPT0gJ3RlbXBsYXRlJykubGVuZ3RoICE9PVxuICAgICAgICBsYWJlbE5vZGVzLmxlbmd0aFxuICAgICkge1xuICAgICAgdGhpcy51cGRhdGVEaXNhYmxlSGlnaGxpZ2h0KHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxhYmVsID0gbGFiZWxOb2Rlc1xuICAgICAgLm1hcCgobCkgPT4gbC53aG9sZVRleHQpXG4gICAgICAuZmlsdGVyKChsKSA9PiBsLnRyaW0oKSlcbiAgICAgIC5qb2luKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SGlnaGxpZ2h0ZWRMYWJlbCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKCF0aGlzLl9oaWdobGlnaHRTdHJpbmcgfHwgIXRoaXMuX2hpZ2hsaWdodFN0cmluZy50cmltKCkpIHtcbiAgICAgIHJldHVybiBodG1sYCR7dGhpcy5sYWJlbH1gO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoSW5kZXggPSB0aGlzLmxhYmVsIS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5faGlnaGxpZ2h0U3RyaW5nLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgaWYgKG1hdGNoSW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gaHRtbGAke3RoaXMubGFiZWx9YDtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmxhYmVsIS5zdWJzdHJpbmcoMCwgbWF0Y2hJbmRleCk7XG4gICAgY29uc3QgaGlnaGxpZ2h0ZWQgPSB0aGlzLmxhYmVsIS5zdWJzdHJpbmcoXG4gICAgICBtYXRjaEluZGV4LFxuICAgICAgbWF0Y2hJbmRleCArIHRoaXMuX2hpZ2hsaWdodFN0cmluZy5sZW5ndGgsXG4gICAgKTtcbiAgICBjb25zdCBwb3N0Zml4ID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKG1hdGNoSW5kZXggKyB0aGlzLl9oaWdobGlnaHRTdHJpbmcubGVuZ3RoKTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19sYWJlbC0taGlnaGxpZ2h0XCI+JHtwcmVmaXh9PC9zcGFuPjxzcGFuPiR7aGlnaGxpZ2h0ZWR9PC9zcGFuXG4gICAgICA+PHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19sYWJlbC0taGlnaGxpZ2h0XCI+JHtwb3N0Zml4fTwvc3Bhbj5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckljb24oKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYCA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckxhYmVsKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLmxhYmVsICYmICF0aGlzLmRpc2FibGVMYWJlbEhpZ2hsaWdodCA/IHRoaXMuZ2V0SGlnaGxpZ2h0ZWRMYWJlbCgpIDogbm90aGluZztcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJUaWNrKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiBub3RoaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlKCk7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbkxhYmVsQ2hhbmdlZCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3B0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRpb25cIj5cbiAgICAgICAgICAke3RoaXMucmVuZGVySWNvbigpfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdENoYW5nZX0+PC9zbG90PlxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckxhYmVsKCl9XG4gICAgICAgICAgICAke3RoaXMuX2luZXJ0QXJpYUdyb3VwcyAmJiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1ncm91cC1sYWJlbCcpXG4gICAgICAgICAgICAgID8gaHRtbGAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgICAgICAgICAgICAgICAoJHt0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1ncm91cC1sYWJlbCcpfSk8L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgICAgICA+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICR7dGhpcy5yZW5kZXJUaWNrKCl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcblxuaW1wb3J0IHsgU2JiT3B0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuL29wdGlvbi1iYXNlLWVsZW1lbnQuanMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vb3B0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5pbXBvcnQgJy4uLy4uL3Zpc3VhbC1jaGVja2JveC5qcyc7XG5cbmV4cG9ydCB0eXBlIFNiYk9wdGlvblZhcmlhbnQgPSAnYXV0b2NvbXBsZXRlJyB8ICdzZWxlY3QnIHwgbnVsbDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBvbiBvcHRpb24gaXRlbSB3aGljaCBjYW4gYmUgdXNlZCBpbiBgc2JiLXNlbGVjdGAgb3IgYHNiYi1hdXRvY29tcGxldGVgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIG9wdGlvbiBsYWJlbC5cbiAqIEBzbG90IGljb24gLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gaWNvbi4gSWYgYGljb24tbmFtZWAgaXMgc2V0LCBhIHNiYi1pY29uIHdpbGwgYmUgdXNlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IG9wdGlvblNlbGVjdGlvbkNoYW5nZSAtIEVtaXRzIHdoZW4gdGhlIG9wdGlvbiBzZWxlY3Rpb24gc3RhdHVzIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBvcHRpb25TZWxlY3RlZCAtIEVtaXRzIHdoZW4gYW4gb3B0aW9uIHdhcyBzZWxlY3RlZCBieSB1c2VyLlxuICogQGNzc3Byb3AgWy0tc2JiLW9wdGlvbi1pY29uLWNvbnRhaW5lci1kaXNwbGF5PW5vbmVdIC0gQ2FuIGJlIHVzZWQgdG8gcmVzZXJ2ZSBzcGFjZSBldmVuXG4gKiB3aGVuIHByZXNlcnZlLWljb24tc3BhY2Ugb24gYXV0b2NvbXBsZXRlIGlzIG5vdCBzZXQgb3IgaWNvbk5hbWUgaXMgbm90IHNldC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLW9wdGlvbicpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAnb3B0aW9uJyxcbn0pXG5jbGFzcyBTYmJPcHRpb25FbGVtZW50IGV4dGVuZHMgU2JiT3B0aW9uQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgc2VsZWN0aW9uQ2hhbmdlOiAnb3B0aW9uU2VsZWN0aW9uQ2hhbmdlJyxcbiAgICBvcHRpb25TZWxlY3RlZDogJ29wdGlvblNlbGVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcm90ZWN0ZWQgb3B0aW9uSWQgPSBgc2JiLW9wdGlvbmA7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIG9wdGlvbiBzZWxlY3Rpb24gc3RhdHVzIGNoYW5nZXMuICovXG4gIHByb3RlY3RlZCBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcHRpb25FbGVtZW50LmV2ZW50cy5zZWxlY3Rpb25DaGFuZ2UsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gYW4gb3B0aW9uIHdhcyBzZWxlY3RlZCBieSB1c2VyLiAqL1xuICBwcm90ZWN0ZWQgb3B0aW9uU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcHRpb25FbGVtZW50LmV2ZW50cy5vcHRpb25TZWxlY3RlZCxcbiAgKTtcblxuICBwcml2YXRlIHNldCBfdmFyaWFudChzdGF0ZTogU2JiT3B0aW9uVmFyaWFudCkge1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtdmFyaWFudCcsIHN0YXRlKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3ZhcmlhbnQoKTogU2JiT3B0aW9uVmFyaWFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXZhcmlhbnQnKSBhcyBTYmJPcHRpb25WYXJpYW50O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXQgX2lzTXVsdGlwbGUoaXNNdWx0aXBsZTogYm9vbGVhbikge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLW11bHRpcGxlJywgaXNNdWx0aXBsZSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX2lzTXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmh5ZHJhdGlvblJlcXVpcmVkICYmIHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLW11bHRpcGxlJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnRHcm91cCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItb3B0Z3JvdXAnKTtcbiAgICBpZiAocGFyZW50R3JvdXApIHtcbiAgICAgIHRoaXMuZGlzYWJsZWRGcm9tR3JvdXAgPSBwYXJlbnRHcm91cC5kaXNhYmxlZDtcbiAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5uZWdhdGl2ZSA9ICEhdGhpcy5jbG9zZXN0Py4oXG4gICAgICAvLyA6aXMoKSBzZWxlY3RvciBub3QgcG9zc2libGUgZHVlIHRvIHRlc3QgZW52aXJvbm1lbnRcbiAgICAgIGBzYmItYXV0b2NvbXBsZXRlW25lZ2F0aXZlXSxzYmItZm9ybS1maWVsZFtuZWdhdGl2ZV1gLFxuICAgICk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKTtcblxuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLW11bHRpcGxlJywgdGhpcy5faXNNdWx0aXBsZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0QnlDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXApIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9pc011bHRpcGxlKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWaWFVc2VySW50ZXJhY3Rpb24oIXRoaXMuc2VsZWN0ZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFNlbGVjdGVkVmlhVXNlckludGVyYWN0aW9uKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdCgpO1xuICAgIHRoaXMuX3NldFZhcmlhbnRCeUNvbnRleHQoKTtcbiAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGhpZ2hsaWdodCBzdGF0ZSBib3RoIG9uIHNsb3QgY2hhbmdlLCBidXQgYWxzbyB3aGVuIGNvbm5lY3RpbmdcbiAgICAvLyB0aGUgZWxlbWVudCB0byB0aGUgRE9NLiBUaGUgc2xvdCBjaGFuZ2UgZXZlbnRzIG1pZ2h0IGJlIHN3YWxsb3dlZCB3aGVuIHVzaW5nIGRlY2xhcmF0aXZlXG4gICAgLy8gc2hhZG93IERPTSB3aXRoIFNTUiBvciBpZiB0aGUgRE9NIGlzIGNoYW5nZWQgd2hlbiBkaXNjb25uZWN0ZWQuXG4gICAgdGhpcy5oYW5kbGVIaWdobGlnaHRTdGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFyaWFudEJ5Q29udGV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbG9zZXN0Py4oJ3NiYi1hdXRvY29tcGxldGUnKSkge1xuICAgICAgdGhpcy5fdmFyaWFudCA9ICdhdXRvY29tcGxldGUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jbG9zZXN0Py4oJ3NiYi1zZWxlY3QnKSkge1xuICAgICAgdGhpcy5fdmFyaWFudCA9ICdzZWxlY3QnO1xuICAgIH1cbiAgICB0aGlzLl9pc011bHRpcGxlID0gISF0aGlzLmNsb3Nlc3Q/Lignc2JiLXNlbGVjdFttdWx0aXBsZV0nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBoYW5kbGVIaWdobGlnaHRTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdmFyaWFudCAhPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZUhpZ2hsaWdodCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdXBlci5oYW5kbGVIaWdobGlnaHRTdGF0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlckljb24oKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPCEtLSBJY29uIC0tPlxuICAgICAgJHshdGhpcy5faXNNdWx0aXBsZVxuICAgICAgICA/IGh0bWxgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9faWNvblwiPiAke3RoaXMucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPmBcbiAgICAgICAgOiBub3RoaW5nfVxuXG4gICAgICA8IS0tIENoZWNrYm94IC0tPlxuICAgICAgJHt0aGlzLl9pc011bHRpcGxlXG4gICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgIDxzYmItdmlzdWFsLWNoZWNrYm94XG4gICAgICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5zZWxlY3RlZH1cbiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwfVxuICAgICAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICAgICAgPjwvc2JiLXZpc3VhbC1jaGVja2JveD5cbiAgICAgICAgICBgXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlckxhYmVsKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLl92YXJpYW50ID09PSAnYXV0b2NvbXBsZXRlJyAmJiB0aGlzLmxhYmVsICYmICF0aGlzLmRpc2FibGVMYWJlbEhpZ2hsaWdodFxuICAgICAgPyB0aGlzLmdldEhpZ2hsaWdodGVkTGFiZWwoKVxuICAgICAgOiBub3RoaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRpY2soKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhcmlhbnQgPT09ICdzZWxlY3QnICYmICF0aGlzLl9pc011bHRpcGxlICYmIHRoaXMuc2VsZWN0ZWRcbiAgICAgID8gaHRtbGA8c2JiLWljb24gbmFtZT1cInRpY2stc21hbGxcIj48L3NiYi1pY29uPmBcbiAgICAgIDogbm90aGluZztcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW9wdGlvbic6IFNiYk9wdGlvbkVsZW1lbnQ7XG4gIH1cblxuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICBvcHRpb25TZWxlY3Rpb25DaGFuZ2U6IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiLCJTYmJPcHRpb25FbGVtZW50Iiwic3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlBLElBQUksU0FBUztBQU9iLE1BQU0sa0JBQWtCO0FBR3hCLE1BQU0sdUJBQTZDO0FBQUEsRUFDakQsaUJBQWlCLENBQUMsdUJBQXVCLGVBQWU7O0lBSzNDLHdCQUFvQixNQUFBOztBQURsQyxNQUFBLG1CQUFBLENBQUEsV0FBVzs7OztvQkFDZ0MsaUJBQzFDLGlCQUFpQixrQkFBa0IsVUFBVSxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFEYixFQUFBLG1CQUFRLFlBRTNDO0FBQUEsSUFpREMsY0FBQTs7O0FBZlMsc0RBcENJLGtCQUFBLE1BQUEsMEJBQUEsR0FvQzBCLGtCQUFBLE1BQUEsd0JBQUEsS0FB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
|
|
575
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL29wdGlvbi9vcHRpb24vb3B0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzQW5kcm9pZCwgaXNTYWZhcmksIHNldE9yUmVtb3ZlQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHR5cGUgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4sIFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGdyb3VwcyBsYWJlbHMgYXJlIG5vdCByZWFkIGJ5IFZvaWNlT3Zlci5cbiAqIFRvIHNvbHZlIHRoZSBwcm9ibGVtLCB3ZSByZW1vdmUgdGhlIHJvbGU9XCJncm91cFwiIGFuZCBhZGQgYW4gaGlkZGVuIHNwYW4gY29udGFpbmluZyB0aGUgZ3JvdXAgbmFtZVxuICogVE9ETzogV2Ugc2hvdWxkIHBlcmlvZGljYWxseSBjaGVjayBpZiBpdCBoYXMgYmVlbiBzb2x2ZWQgYW5kLCBpZiBzbywgcmVtb3ZlIHRoZSBwcm9wZXJ0eS5cbiAqL1xuY29uc3QgaW5lcnRBcmlhR3JvdXBzID0gaXNTYWZhcmk7XG5cbi8qKiBDb25maWd1cmF0aW9uIGZvciB0aGUgYXR0cmlidXRlIHRvIGxvb2sgYXQgaWYgY29tcG9uZW50IGlzIG5lc3RlZCBpbiBhbiBvcHRpb24gZ3JvdXAgKi9cbmNvbnN0IG9wdGlvbk9ic2VydmVyQ29uZmlnOiBNdXRhdGlvbk9ic2VydmVySW5pdCA9IHtcbiAgYXR0cmlidXRlRmlsdGVyOiBbJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnLCAnZGF0YS1uZWdhdGl2ZSddLFxuICBhdHRyaWJ1dGVzOiB0cnVlLFxuICBjaGlsZExpc3Q6IHRydWUsXG4gIHN1YnRyZWU6IHRydWUsXG4gIGNoYXJhY3RlckRhdGE6IHRydWUsXG59O1xuXG5leHBvcnRcbkBzbG90U3RhdGUoKVxuYWJzdHJhY3QgY2xhc3MgU2JiT3B0aW9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJJY29uTmFtZU1peGluKFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpKSxcbikge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3B0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWUgb2YgdGhlIG9wdGlvbi5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgKiBEdWUgdG8gdGhpcywgaXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBnZXR0ZXIvc2V0dGVyIGFuZCB0aGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKCkgaGFuZGxlcyB0aGUgZGlmZiBjaGVjay5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGAke3ZhbHVlfWApO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPz8gJyc7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCB2YWx1ZSk7XG4gICAgdGhpcy5fdXBkYXRlQXJpYVNlbGVjdGVkKCk7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7XG4gIH1cblxuICAvKiogRW1pdHMgd2hlbiB0aGUgb3B0aW9uIHNlbGVjdGlvbiBzdGF0dXMgY2hhbmdlcy4gKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyO1xuXG4gIC8qKiBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci4gKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9wdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI7XG5cbiAgLyoqIFdoZXRoZXIgdG8gYXBwbHkgdGhlIG5lZ2F0aXZlIHN0eWxpbmcgKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIG5lZ2F0aXZlID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBtdXN0IGJlIHNldCBkaXNhYmxlZCBkdWUgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHNiYi1vcHRncm91cC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGRpc2FibGVkRnJvbUdyb3VwID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGxhYmVsITogc3RyaW5nO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBoaWdobGlnaHQgb2YgdGhlIGxhYmVsLiAqL1xuICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgZGlzYWJsZUxhYmVsSGlnaGxpZ2h0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBwb3J0aW9uIG9mIHRoZSBoaWdobGlnaHRlZCBsYWJlbC4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaGlnaGxpZ2h0U3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9pbmVydEFyaWFHcm91cHMgPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5zZWxlY3RCeUNsaWNrKGUpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICBjb25maWc6IG9wdGlvbk9ic2VydmVyQ29uZmlnLFxuICAgICAgY2FsbGJhY2s6IChtdXRhdGlvbnNMaXN0KSA9PiB0aGlzLm9uT3B0aW9uQXR0cmlidXRlc0NoYW5nZShtdXRhdGlvbnNMaXN0KSxcbiAgICB9KTtcblxuICAgIGlmIChpbmVydEFyaWFHcm91cHMpIHtcbiAgICAgIGlmICh0aGlzLmh5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiAodGhpcy5faW5lcnRBcmlhR3JvdXBzID0gaW5lcnRBcmlhR3JvdXBzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCBvbGQgIT09IHZhbHVlKSB7XG4gICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhpZ2hsaWdodCB0aGUgbGFiZWwgb2YgdGhlIG9wdGlvblxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIGhpZ2hsaWdodGVkIHBvcnRpb24gb2YgdGhlIGxhYmVsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGhpZ2hsaWdodCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5faGlnaGxpZ2h0U3RyaW5nID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0U2VsZWN0ZWRWaWFVc2VySW50ZXJhY3Rpb24oc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCgpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmlkIHx8PSBgJHt0aGlzLm9wdGlvbklkfS0ke25leHRJZCsrfWA7XG4gICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLmluaXQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcywgJ3RhYmluZGV4JywgaXNBbmRyb2lkICYmICF0aGlzLmRpc2FibGVkICYmIDApO1xuICAgICAgdGhpcy51cGRhdGVBcmlhRGlzYWJsZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAvLyBJbml0IGZpcnN0IHNlbGVjdCBzdGF0ZSBiZWNhdXNlIGZhbHNlIHdvdWxkIG5vdCBjYWxsIHNldHRlciBvZiBzZWxlY3RlZCBwcm9wZXJ0eS5cbiAgICB0aGlzLl91cGRhdGVBcmlhU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZWxlY3RCeUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldEF0dHJpYnV0ZUZyb21QYXJlbnQoKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgdXBkYXRlRGlzYWJsZUhpZ2hsaWdodChkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUxhYmVsSGlnaGxpZ2h0ID0gZGlzYWJsZWQ7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1oaWdobGlnaHQnLCBkaXNhYmxlZCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3B0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldEFjdGl2ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUFyaWFEaXNhYmxlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnYXJpYS1kaXNhYmxlZCcsICd0cnVlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQXJpYVNlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgYCR7dGhpcy5zZWxlY3RlZH1gKTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2Ugb25FeHRlcm5hbE11dGF0aW9uKCkgYXMgcmVwbGFjZW1lbnQuIFdpbGwgYmUgcmVtb3ZlZCB3aXRoIG5leHQgbWFqb3IgY2hhbmdlLiAqL1xuICBwcm90ZWN0ZWQgb25PcHRpb25BdHRyaWJ1dGVzQ2hhbmdlKG11dGF0aW9uc0xpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICB0aGlzLm9uRXh0ZXJuYWxNdXRhdGlvbihtdXRhdGlvbnNMaXN0KTtcbiAgfVxuXG4gIC8qKiBPYnNlcnZlIGNoYW5nZXMgb24gZGF0YSBhdHRyaWJ1dGVzICsgc2xvdHRlZCBjb250ZW50IGFuZCBzZXQgdGhlIGFwcHJvcHJpYXRlIHZhbHVlcy4gKi9cbiAgcHJvdGVjdGVkIG9uRXh0ZXJuYWxNdXRhdGlvbihtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XG4gICAgICBpZiAobXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWRGcm9tR3JvdXAgPSB0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1ncm91cC1kaXNhYmxlZCcpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFyaWFEaXNhYmxlZCgpO1xuICAgICAgfSBlbHNlIGlmIChtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnZGF0YS1uZWdhdGl2ZScpIHtcbiAgICAgICAgdGhpcy5uZWdhdGl2ZSA9IHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLW5lZ2F0aXZlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbkxhYmVsQ2hhbmdlZCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG5cbiAgICAgICAgLy8gV2UgcmV0dXJuIGJlY2F1c2UgdGhlcmUgc2hvdWxkIGJlIG9ubHkgb25lIGV2ZW50IHRyaWdnZXJlZCBwZXIgbXV0YXRpb25MaXN0XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTogdm9pZCB7XG4gICAgY29uc3Qgc2xvdE5vZGVzID0gQXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMgPz8gW10pLmZpbHRlcihcbiAgICAgIChuKSA9PiBuLm5vZGVUeXBlICE9PSBOb2RlLkNPTU1FTlRfTk9ERSAmJiAoIShuIGluc3RhbmNlb2YgRWxlbWVudCkgfHwgbi5zbG90ICE9PSAnaWNvbicpLFxuICAgICk7XG4gICAgY29uc3QgbGFiZWxOb2RlcyA9IHNsb3ROb2Rlcy5maWx0ZXIoKGVsKSA9PiBlbC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIGFzIFRleHRbXTtcblxuICAgIC8vIERpc2FibGUgdGhlIGhpZ2hsaWdodCBpZiB0aGUgc2xvdCBjb250YWluIG1vcmUgdGhhbiBqdXN0IHRleHQgbm9kZXMuXG4gICAgLy8gV2UgbmVlZCB0byBpZ25vcmUgdGVtcGxhdGUgZWxlbWVudHMsIGFzIFNTUiBhZGRzIGEgZGVjbGFyYXRpdmUgc2hhZG93IERPTVxuICAgIC8vIGluIHRoZSBmb3JtIG9mIGEgdGVtcGxhdGUgZWxlbWVudC5cbiAgICBpZiAoXG4gICAgICBsYWJlbE5vZGVzLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgc2xvdE5vZGVzLmZpbHRlcigobikgPT4gIShuIGluc3RhbmNlb2YgRWxlbWVudCkgfHwgbi5sb2NhbE5hbWUgIT09ICd0ZW1wbGF0ZScpLmxlbmd0aCAhPT1cbiAgICAgICAgbGFiZWxOb2Rlcy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZUhpZ2hsaWdodCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsTm9kZXNcbiAgICAgIC5tYXAoKGwpID0+IGwud2hvbGVUZXh0KVxuICAgICAgLmZpbHRlcigobCkgPT4gbC50cmltKCkpXG4gICAgICAuam9pbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEhpZ2hsaWdodGVkTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICghdGhpcy5faGlnaGxpZ2h0U3RyaW5nIHx8ICF0aGlzLl9oaWdobGlnaHRTdHJpbmcudHJpbSgpKSB7XG4gICAgICByZXR1cm4gaHRtbGAke3RoaXMubGFiZWx9YDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaEluZGV4ID0gdGhpcy5sYWJlbCEudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX2hpZ2hsaWdodFN0cmluZy50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGlmIChtYXRjaEluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGh0bWxgJHt0aGlzLmxhYmVsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKDAsIG1hdGNoSW5kZXgpO1xuICAgIGNvbnN0IGhpZ2hsaWdodGVkID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKFxuICAgICAgbWF0Y2hJbmRleCxcbiAgICAgIG1hdGNoSW5kZXggKyB0aGlzLl9oaWdobGlnaHRTdHJpbmcubGVuZ3RoLFxuICAgICk7XG4gICAgY29uc3QgcG9zdGZpeCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZyhtYXRjaEluZGV4ICsgdGhpcy5faGlnaGxpZ2h0U3RyaW5nLmxlbmd0aCk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cHJlZml4fTwvc3Bhbj48c3Bhbj4ke2hpZ2hsaWdodGVkfTwvc3BhblxuICAgICAgPjxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cG9zdGZpeH08L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJY29uKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+YDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJMYWJlbCgpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbCAmJiAhdGhpcy5kaXNhYmxlTGFiZWxIaWdobGlnaHQgPyB0aGlzLmdldEhpZ2hsaWdodGVkTGFiZWwoKSA6IG5vdGhpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyVGljaygpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gbm90aGluZztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRpb25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGlvblwiPlxuICAgICAgICAgICR7dGhpcy5yZW5kZXJJY29uKCl9XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19sYWJlbFwiPlxuICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlfT48L3Nsb3Q+XG4gICAgICAgICAgICAke3RoaXMucmVuZGVyTGFiZWwoKX1cbiAgICAgICAgICAgICR7dGhpcy5faW5lcnRBcmlhR3JvdXBzICYmIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWdyb3VwLWxhYmVsJylcbiAgICAgICAgICAgICAgPyBodG1sYCA8c2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgICAgICAgICAgICgke3RoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWdyb3VwLWxhYmVsJyl9KTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgICAgID5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlclRpY2soKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuXG5pbXBvcnQgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vb3B0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9vcHRpb24uc2Nzcz9saXQmaW5saW5lJztcbmltcG9ydCAnLi4vLi4vdmlzdWFsLWNoZWNrYm94LmpzJztcblxuZXhwb3J0IHR5cGUgU2JiT3B0aW9uVmFyaWFudCA9ICdhdXRvY29tcGxldGUnIHwgJ3NlbGVjdCcgfCBudWxsO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIG9uIG9wdGlvbiBpdGVtIHdoaWNoIGNhbiBiZSB1c2VkIGluIGBzYmItc2VsZWN0YCBvciBgc2JiLWF1dG9jb21wbGV0ZWAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgb3B0aW9uIGxhYmVsLlxuICogQHNsb3QgaWNvbiAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhbiBpY29uLiBJZiBgaWNvbi1uYW1lYCBpcyBzZXQsIGEgc2JiLWljb24gd2lsbCBiZSB1c2VkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gb3B0aW9uU2VsZWN0aW9uQ2hhbmdlIC0gRW1pdHMgd2hlbiB0aGUgb3B0aW9uIHNlbGVjdGlvbiBzdGF0dXMgY2hhbmdlcy5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IG9wdGlvblNlbGVjdGVkIC0gRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItb3B0aW9uLWljb24tY29udGFpbmVyLWRpc3BsYXk9bm9uZV0gLSBDYW4gYmUgdXNlZCB0byByZXNlcnZlIHNwYWNlIGV2ZW5cbiAqIHdoZW4gcHJlc2VydmUtaWNvbi1zcGFjZSBvbiBhdXRvY29tcGxldGUgaXMgbm90IHNldCBvciBpY29uTmFtZSBpcyBub3Qgc2V0LlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItb3B0aW9uJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHJvbGU6ICdvcHRpb24nLFxufSlcbmNsYXNzIFNiYk9wdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJPcHRpb25CYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBzZWxlY3Rpb25DaGFuZ2U6ICdvcHRpb25TZWxlY3Rpb25DaGFuZ2UnLFxuICAgIG9wdGlvblNlbGVjdGVkOiAnb3B0aW9uU2VsZWN0ZWQnLFxuICB9IGFzIGNvbnN0O1xuXG4gIHByb3RlY3RlZCBvcHRpb25JZCA9IGBzYmItb3B0aW9uYDtcblxuICAvKiogRW1pdHMgd2hlbiB0aGUgb3B0aW9uIHNlbGVjdGlvbiBzdGF0dXMgY2hhbmdlcy4gKi9cbiAgcHJvdGVjdGVkIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wdGlvbkVsZW1lbnQuZXZlbnRzLnNlbGVjdGlvbkNoYW5nZSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuICovXG4gIHByb3RlY3RlZCBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wdGlvbkVsZW1lbnQuZXZlbnRzLm9wdGlvblNlbGVjdGVkLFxuICApO1xuXG4gIHByaXZhdGUgc2V0IF92YXJpYW50KHN0YXRlOiBTYmJPcHRpb25WYXJpYW50KSB7XG4gICAgaWYgKHN0YXRlKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS12YXJpYW50Jywgc3RhdGUpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldCBfdmFyaWFudCgpOiBTYmJPcHRpb25WYXJpYW50IHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtdmFyaWFudCcpIGFzIFNiYk9wdGlvblZhcmlhbnQ7XG4gIH1cblxuICBwcml2YXRlIHNldCBfaXNNdWx0aXBsZShpc011bHRpcGxlOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbXVsdGlwbGUnLCBpc011bHRpcGxlKTtcbiAgfVxuICBwcml2YXRlIGdldCBfaXNNdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaHlkcmF0aW9uUmVxdWlyZWQgJiYgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtbXVsdGlwbGUnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRBdHRyaWJ1dGVGcm9tUGFyZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudEdyb3VwID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1vcHRncm91cCcpO1xuICAgIGlmIChwYXJlbnRHcm91cCkge1xuICAgICAgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA9IHBhcmVudEdyb3VwLmRpc2FibGVkO1xuICAgICAgdGhpcy51cGRhdGVBcmlhRGlzYWJsZWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLm5lZ2F0aXZlID0gISF0aGlzLmNsb3Nlc3Q/LihcbiAgICAgIC8vIDppcygpIHNlbGVjdG9yIG5vdCBwb3NzaWJsZSBkdWUgdG8gdGVzdCBlbnZpcm9ubWVudFxuICAgICAgYHNiYi1hdXRvY29tcGxldGVbbmVnYXRpdmVdLHNiYi1mb3JtLWZpZWxkW25lZ2F0aXZlXWAsXG4gICAgKTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1uZWdhdGl2ZScsIHRoaXMubmVnYXRpdmUpO1xuXG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbXVsdGlwbGUnLCB0aGlzLl9pc011bHRpcGxlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RCeUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2lzTXVsdGlwbGUpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbighdGhpcy5zZWxlY3RlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWaWFVc2VySW50ZXJhY3Rpb24odHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5pbml0KCk7XG4gICAgdGhpcy5fc2V0VmFyaWFudEJ5Q29udGV4dCgpO1xuICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgaGlnaGxpZ2h0IHN0YXRlIGJvdGggb24gc2xvdCBjaGFuZ2UsIGJ1dCBhbHNvIHdoZW4gY29ubmVjdGluZ1xuICAgIC8vIHRoZSBlbGVtZW50IHRvIHRoZSBET00uIFRoZSBzbG90IGNoYW5nZSBldmVudHMgbWlnaHQgYmUgc3dhbGxvd2VkIHdoZW4gdXNpbmcgZGVjbGFyYXRpdmVcbiAgICAvLyBzaGFkb3cgRE9NIHdpdGggU1NSIG9yIGlmIHRoZSBET00gaXMgY2hhbmdlZCB3aGVuIGRpc2Nvbm5lY3RlZC5cbiAgICB0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRWYXJpYW50QnlDb250ZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsb3Nlc3Q/Lignc2JiLWF1dG9jb21wbGV0ZScpKSB7XG4gICAgICB0aGlzLl92YXJpYW50ID0gJ2F1dG9jb21wbGV0ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNsb3Nlc3Q/Lignc2JiLXNlbGVjdCcpKSB7XG4gICAgICB0aGlzLl92YXJpYW50ID0gJ3NlbGVjdCc7XG4gICAgfVxuICAgIHRoaXMuX2lzTXVsdGlwbGUgPSAhIXRoaXMuY2xvc2VzdD8uKCdzYmItc2VsZWN0W211bHRpcGxlXScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGhhbmRsZUhpZ2hsaWdodFN0YXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl92YXJpYW50ICE9PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgdGhpcy51cGRhdGVEaXNhYmxlSGlnaGxpZ2h0KHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLmhhbmRsZUhpZ2hsaWdodFN0YXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVySWNvbigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8IS0tIEljb24gLS0+XG4gICAgICAkeyF0aGlzLl9pc011bHRpcGxlXG4gICAgICAgID8gaHRtbGAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+YFxuICAgICAgICA6IG5vdGhpbmd9XG5cbiAgICAgIDwhLS0gQ2hlY2tib3ggLS0+XG4gICAgICAke3RoaXMuX2lzTXVsdGlwbGVcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPHNiYi12aXN1YWwtY2hlY2tib3hcbiAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLnNlbGVjdGVkfVxuICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXB9XG4gICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgICAgICA+PC9zYmItdmlzdWFsLWNoZWNrYm94PlxuICAgICAgICAgIGBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhcmlhbnQgPT09ICdhdXRvY29tcGxldGUnICYmIHRoaXMubGFiZWwgJiYgIXRoaXMuZGlzYWJsZUxhYmVsSGlnaGxpZ2h0XG4gICAgICA/IHRoaXMuZ2V0SGlnaGxpZ2h0ZWRMYWJlbCgpXG4gICAgICA6IG5vdGhpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGljaygpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFyaWFudCA9PT0gJ3NlbGVjdCcgJiYgIXRoaXMuX2lzTXVsdGlwbGUgJiYgdGhpcy5zZWxlY3RlZFxuICAgICAgPyBodG1sYDxzYmItaWNvbiBuYW1lPVwidGljay1zbWFsbFwiPjwvc2JiLWljb24+YFxuICAgICAgOiBub3RoaW5nO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItb3B0aW9uJzogU2JiT3B0aW9uRWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIG9wdGlvblNlbGVjdGlvbkNoYW5nZTogQ3VzdG9tRXZlbnQ8dm9p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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAA6B,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,eAAO,MAAM,WAAW,EAAE,qBAAqB,EAAO,CAAC;;AAEvD,
|
|
1
|
+
{"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAA6B,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,eAAO,MAAM,WAAW,EAAE,qBAAqB,EAAO,CAAC;;AAEvD,8BAIe,qBAAsB,SAAQ,0BAAyC;IACpF,kHAAkH;IAClH,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,8CAA8C;IAC9C,UAAmB,QAAQ,EAAE,YAAY,CAAC,2BAA2B,CAAC,CAGpE;IAGF,SAAS,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAC3C,SAAS,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAC5C,kBAAkB;IAClB,SAAS,CAAC,iBAAiB,EAAG,eAAe,CAAC;IAC9C,SAAS,CAAC,qBAAqB,EAAG,eAAe,CAAC;IAClD,SAAS,CAAC,YAAY,kBAAyB;IAC/C,SAAS,CAAC,aAAa,mBAA0B;IACjD,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;IAC3B,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,WAAW,EAAG,0BAA0B,CAAC;IACnD,SAAS,CAAC,QAAQ,wBAAmC;IACrD,SAAS,CAAC,eAAe,qBAAgC;IAEzD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IACrE,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,IAAI;IAC1C,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IACxC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,IAAI,OAAO;IAErD,4BAA4B;IACrB,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,GAAG;IAyBrC,iBAAiB,IAAI,IAAI;cAMtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAS5C,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAkBzC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWpD,SAAS,CAAC,kCAAkC,IAAI,IAAI;IAKpD,SAAS,CAAC,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAoBzD,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAI1C,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAStD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAW1D,OAAO,EAAe,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAG/E,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,qBAEM,iBAAkB,SAAQ,qBAAqB;IACnD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAGtD,gBAAgC,MAAM;;;;;;MAM3B;IAEX;;;OAGG;IACH,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,4DAA4D;IAC5D,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C,wEAAwE;IACxE,SAEgB,uBAAuB,EAAE,MAAM,CAAM;IAErD,uEAAuE;IACvE,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD,SAAS,CAAC,cAAc,EAAE,MAAM,CAAuB;IAEvD,iDAAiD;IACjD,OAAO,CAAC,UAAU,CAGhB;IACF,OAAO,CAAC,sBAAsB,CAA4B;IAE1D,2BAA2B;IACpB,IAAI,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAW1D,OAAO,EAAe,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAG/E,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,qBAEM,iBAAkB,SAAQ,qBAAqB;IACnD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAGtD,gBAAgC,MAAM;;;;;;MAM3B;IAEX;;;OAGG;IACH,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,4DAA4D;IAC5D,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C,wEAAwE;IACxE,SAEgB,uBAAuB,EAAE,MAAM,CAAM;IAErD,uEAAuE;IACvE,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD,SAAS,CAAC,cAAc,EAAE,MAAM,CAAuB;IAEvD,iDAAiD;IACjD,OAAO,CAAC,UAAU,CAGhB;IACF,OAAO,CAAC,sBAAsB,CAA4B;IAE1D,2BAA2B;IACpB,IAAI,IAAI,IAAI;IA8BnB,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C,OAAO,CAAC,cAAc;cAWH,aAAa,IAAI,IAAI;IAwBxC,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAS5D,SAAS,CAAC,eAAe,IAAI,IAAI;cAUd,MAAM,IAAI,cAAc;CAsD5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,aAAa,EAAE,iBAAiB,CAAC;KAClC;CACF"}
|