@sbb-esta/lyne-elements 1.6.0 → 1.8.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 +0 -1
- package/action-group/action-group.d.ts +0 -1
- package/alert/alert/alert.d.ts +0 -1
- package/alert/alert-group/alert-group.d.ts +0 -1
- package/alert/alert.js +1 -1
- package/autocomplete/autocomplete-base-element.d.ts +0 -1
- package/autocomplete/autocomplete.d.ts +0 -1
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +0 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +0 -1
- package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts +0 -1
- package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +0 -1
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +0 -1
- package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts +0 -1
- package/autocomplete.js +1 -1
- package/breadcrumb/breadcrumb/breadcrumb.d.ts +0 -1
- package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts +0 -1
- package/breadcrumb/breadcrumb-group.js +2 -2
- package/breadcrumb/breadcrumb.js +11 -11
- package/button/button/button.d.ts +0 -1
- package/button/button-link/button-link.d.ts +0 -1
- package/button/button-static/button-static.d.ts +0 -1
- package/button/common/button-common.d.ts +0 -1
- package/button/mini-button/mini-button-base-element.d.ts +0 -1
- package/button/mini-button/mini-button.d.ts +0 -1
- package/button/mini-button-group/index.d.ts +2 -0
- package/button/mini-button-group/index.d.ts.map +1 -0
- package/button/mini-button-group/mini-button-group.d.ts +28 -0
- package/button/mini-button-group/mini-button-group.d.ts.map +1 -0
- package/button/mini-button-group.d.ts +2 -0
- package/button/mini-button-group.d.ts.map +1 -0
- package/button/mini-button-group.js +47 -0
- package/button/secondary-button/secondary-button.d.ts +0 -1
- package/button/secondary-button-link/secondary-button-link.d.ts +0 -1
- package/button/secondary-button-static/secondary-button-static.d.ts +0 -1
- package/button/tertiary-button/tertiary-button.d.ts +0 -1
- package/button/tertiary-button-link/tertiary-button-link.d.ts +0 -1
- package/button/tertiary-button-static/tertiary-button-static.d.ts +0 -1
- package/button/transparent-button/transparent-button.d.ts +0 -1
- package/button/transparent-button-link/transparent-button-link.d.ts +0 -1
- package/button/transparent-button-static/transparent-button-static.d.ts +0 -1
- package/button.d.ts +1 -0
- package/button.d.ts.map +1 -1
- package/button.js +1 -0
- package/calendar/calendar.d.ts +5 -3
- package/calendar/calendar.d.ts.map +1 -1
- package/calendar.js +73 -66
- package/card/card/card.d.ts +0 -1
- package/card/card-badge/card-badge.d.ts +0 -1
- package/card/card-button/card-button.d.ts +0 -1
- package/card/card-link/card-link.d.ts +0 -1
- package/card/card.js +1 -1
- package/card/common/card-action-common.d.ts +0 -1
- package/checkbox/checkbox/checkbox.d.ts +0 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts +0 -1
- package/checkbox/checkbox-panel/checkbox-panel.d.ts +0 -1
- package/checkbox/common/checkbox-common.d.ts +0 -1
- package/chip/chip.d.ts +0 -1
- package/chip.js +1 -1
- package/clock/clock.d.ts +0 -1
- package/clock/clock.d.ts.map +1 -1
- package/container/container/container.d.ts +1 -1
- package/container/container/container.d.ts.map +1 -1
- package/container/container.js +21 -16
- package/container/sticky-bar/sticky-bar.d.ts +0 -1
- package/container/sticky-bar.js +5 -5
- package/core/a11y/focus-visible-within-controller.d.ts +0 -1
- package/core/base-elements/action-base-element.d.ts +0 -1
- package/core/base-elements/button-base-element.d.ts +0 -1
- package/core/base-elements/link-base-element.d.ts +0 -1
- package/core/base-elements/open-close-base-element.d.ts +10 -1
- package/core/base-elements/open-close-base-element.d.ts.map +1 -1
- package/core/base-elements.js +4 -0
- package/core/config/config.d.ts +0 -1
- package/core/controllers/connected-abort-controller.d.ts +0 -1
- package/core/controllers/inert-controller.d.ts +18 -0
- package/core/controllers/inert-controller.d.ts.map +1 -0
- package/core/controllers/language-controller.d.ts +0 -1
- package/core/controllers/slot-state-controller.d.ts +0 -1
- package/core/controllers.d.ts +1 -0
- package/core/controllers.d.ts.map +1 -1
- package/core/controllers.js +67 -23
- package/core/datetime/native-date-adapter.d.ts +0 -1
- package/core/decorators/host-attributes.d.ts +0 -1
- package/core/decorators/slot-state.d.ts +0 -1
- package/core/dom/ssr.d.ts +0 -1
- package/core/eventing/form-element-handlers.d.ts +0 -1
- package/core/i18n/i18n.d.ts +0 -1
- package/core/i18n.js +1 -1
- package/core/images.d.ts.map +1 -1
- package/core/mixins/disabled-mixin.d.ts +0 -1
- package/core/mixins/form-associated-checkbox-mixin.d.ts +0 -1
- package/core/mixins/form-associated-mixin.d.ts +0 -1
- package/core/mixins/hydration-mixin.d.ts +0 -1
- package/core/mixins/named-slot-list-mixin.d.ts +7 -2
- package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
- package/core/mixins/negative-mixin.d.ts +0 -1
- package/core/mixins/panel-mixin.d.ts +0 -1
- package/core/mixins/required-mixin.d.ts +0 -1
- package/core/mixins/update-scheduler-mixin.d.ts +0 -1
- package/core/mixins.js +100 -88
- package/core/overlay/overlay.d.ts +0 -14
- package/core/overlay/overlay.d.ts.map +1 -1
- package/core/overlay.js +36 -86
- package/core/styles/core.scss +21 -19
- package/core/styles/mixins/link.scss +9 -6
- package/core/styles/mixins/lists.scss +5 -5
- package/core/styles/mixins/pearl-chain-bullet.scss +14 -9
- package/core/styles/mixins/table.scss +19 -17
- package/core/testing/mocha-extensions.d.ts +0 -1
- package/core/testing/wait-for-image-ready.d.ts +0 -1
- package/core/testing/wait-for-render.d.ts +0 -1
- package/core.css +10 -8
- package/custom-elements.json +3533 -1027
- package/datepicker/common/datepicker-button.d.ts +0 -1
- package/datepicker/datepicker/datepicker.d.ts +0 -1
- package/datepicker/datepicker-next-day/datepicker-next-day.d.ts +0 -1
- package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +0 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +4 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +51 -41
- package/development/accordion/accordion.d.ts +0 -1
- package/development/action-group/action-group.d.ts +0 -1
- package/development/alert/alert/alert.d.ts +0 -1
- package/development/alert/alert-group/alert-group.d.ts +0 -1
- package/development/alert/alert.js +1 -1
- package/development/autocomplete/autocomplete-base-element.d.ts +0 -1
- package/development/autocomplete/autocomplete.d.ts +0 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +0 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +0 -1
- package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts +0 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +0 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +0 -1
- package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts +0 -1
- package/development/autocomplete.js +7 -5
- package/development/breadcrumb/breadcrumb/breadcrumb.d.ts +0 -1
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts +0 -1
- package/development/breadcrumb/breadcrumb-group.js +4 -4
- package/development/breadcrumb/breadcrumb.js +8 -6
- package/development/button/button/button.d.ts +0 -1
- package/development/button/button-link/button-link.d.ts +0 -1
- package/development/button/button-static/button-static.d.ts +0 -1
- package/development/button/common/button-common.d.ts +0 -1
- package/development/button/mini-button/mini-button-base-element.d.ts +0 -1
- package/development/button/mini-button/mini-button.d.ts +0 -1
- package/development/button/mini-button-group/index.d.ts +2 -0
- package/development/button/mini-button-group/index.d.ts.map +1 -0
- package/development/button/mini-button-group/mini-button-group.d.ts +28 -0
- package/development/button/mini-button-group/mini-button-group.d.ts.map +1 -0
- package/development/button/mini-button-group.d.ts +2 -0
- package/development/button/mini-button-group.d.ts.map +1 -0
- package/development/button/mini-button-group.js +142 -0
- package/development/button/secondary-button/secondary-button.d.ts +0 -1
- package/development/button/secondary-button-link/secondary-button-link.d.ts +0 -1
- package/development/button/secondary-button-static/secondary-button-static.d.ts +0 -1
- package/development/button/tertiary-button/tertiary-button.d.ts +0 -1
- package/development/button/tertiary-button-link/tertiary-button-link.d.ts +0 -1
- package/development/button/tertiary-button-static/tertiary-button-static.d.ts +0 -1
- package/development/button/transparent-button/transparent-button.d.ts +0 -1
- package/development/button/transparent-button-link/transparent-button-link.d.ts +0 -1
- package/development/button/transparent-button-static/transparent-button-static.d.ts +0 -1
- package/development/button.d.ts +1 -0
- package/development/button.d.ts.map +1 -1
- package/development/button.js +2 -1
- package/development/calendar/calendar.d.ts +5 -3
- package/development/calendar/calendar.d.ts.map +1 -1
- package/development/calendar.js +38 -22
- package/development/card/card/card.d.ts +0 -1
- package/development/card/card-badge/card-badge.d.ts +0 -1
- package/development/card/card-button/card-button.d.ts +0 -1
- package/development/card/card-link/card-link.d.ts +0 -1
- package/development/card/card.js +3 -3
- package/development/card/common/card-action-common.d.ts +0 -1
- package/development/checkbox/checkbox/checkbox.d.ts +0 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts +0 -1
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +0 -1
- package/development/checkbox/common/checkbox-common.d.ts +0 -1
- package/development/chip/chip.d.ts +0 -1
- package/development/chip.js +4 -2
- package/development/clock/clock.d.ts +0 -1
- package/development/clock/clock.d.ts.map +1 -1
- package/development/clock.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 +44 -4
- package/development/container/sticky-bar/sticky-bar.d.ts +0 -1
- package/development/container/sticky-bar.js +1 -4
- package/development/core/a11y/focus-visible-within-controller.d.ts +0 -1
- package/development/core/base-elements/action-base-element.d.ts +0 -1
- package/development/core/base-elements/button-base-element.d.ts +0 -1
- package/development/core/base-elements/link-base-element.d.ts +0 -1
- package/development/core/base-elements/open-close-base-element.d.ts +10 -1
- package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
- package/development/core/base-elements.js +5 -1
- package/development/core/config/config.d.ts +0 -1
- package/development/core/controllers/connected-abort-controller.d.ts +0 -1
- package/development/core/controllers/inert-controller.d.ts +18 -0
- package/development/core/controllers/inert-controller.d.ts.map +1 -0
- package/development/core/controllers/language-controller.d.ts +0 -1
- package/development/core/controllers/slot-state-controller.d.ts +0 -1
- package/development/core/controllers.d.ts +1 -0
- package/development/core/controllers.d.ts.map +1 -1
- package/development/core/controllers.js +90 -1
- package/development/core/datetime/native-date-adapter.d.ts +0 -1
- package/development/core/decorators/host-attributes.d.ts +0 -1
- package/development/core/decorators/slot-state.d.ts +0 -1
- package/development/core/dom/ssr.d.ts +0 -1
- package/development/core/eventing/form-element-handlers.d.ts +0 -1
- package/development/core/i18n/i18n.d.ts +0 -1
- package/development/core/i18n.js +2 -2
- package/development/core/images.d.ts.map +1 -1
- package/development/core/mixins/disabled-mixin.d.ts +0 -1
- package/development/core/mixins/form-associated-checkbox-mixin.d.ts +0 -1
- package/development/core/mixins/form-associated-mixin.d.ts +0 -1
- package/development/core/mixins/hydration-mixin.d.ts +0 -1
- package/development/core/mixins/named-slot-list-mixin.d.ts +7 -2
- package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
- package/development/core/mixins/negative-mixin.d.ts +0 -1
- package/development/core/mixins/panel-mixin.d.ts +0 -1
- package/development/core/mixins/required-mixin.d.ts +0 -1
- package/development/core/mixins/update-scheduler-mixin.d.ts +0 -1
- package/development/core/mixins.js +24 -12
- package/development/core/overlay/overlay.d.ts +0 -14
- package/development/core/overlay/overlay.d.ts.map +1 -1
- package/development/core/overlay.js +1 -87
- package/development/core/testing/mocha-extensions.d.ts +0 -1
- package/development/core/testing/wait-for-image-ready.d.ts +0 -1
- package/development/core/testing/wait-for-render.d.ts +0 -1
- package/development/datepicker/common/datepicker-button.d.ts +0 -1
- package/development/datepicker/datepicker/datepicker.d.ts +0 -1
- package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts +0 -1
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +0 -1
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +4 -1
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +20 -3
- package/development/dialog/dialog/dialog.d.ts +0 -1
- package/development/dialog/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog-actions/dialog-actions.d.ts +0 -1
- package/development/dialog/dialog-content/dialog-content.d.ts +0 -1
- package/development/dialog/dialog-content.js +8 -6
- package/development/dialog/dialog-title/dialog-title.d.ts +0 -1
- package/development/dialog/dialog.js +9 -6
- package/development/divider/divider.d.ts +0 -1
- package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +0 -1
- package/development/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts +0 -1
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +0 -1
- package/development/expansion-panel/expansion-panel-header.js +1 -1
- package/development/file-selector/file-selector.d.ts +0 -1
- package/development/flip-card/flip-card/flip-card.d.ts +22 -7
- package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/development/flip-card/flip-card-details/flip-card-details.d.ts +0 -1
- package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
- package/development/flip-card/flip-card-details.js +28 -9
- package/development/flip-card/flip-card-summary/flip-card-summary.d.ts +0 -1
- package/development/flip-card/flip-card-summary.js +8 -1
- package/development/flip-card/flip-card.js +132 -32
- package/development/footer/footer.d.ts +0 -1
- package/development/footer.js +1 -1
- package/development/form-error/form-error.d.ts +0 -1
- package/development/form-error.js +4 -4
- package/development/form-field/form-field/form-field.d.ts +1 -2
- package/development/form-field/form-field/form-field.d.ts.map +1 -1
- package/development/form-field/form-field-clear/form-field-clear.d.ts +0 -1
- package/development/form-field/form-field.js +74 -29
- package/development/header/common/header-action-common.d.ts +0 -1
- package/development/header/common.js +2 -2
- package/development/header/header/header.d.ts +0 -1
- package/development/header/header-button/header-button.d.ts +0 -1
- package/development/header/header-link/header-link.d.ts +0 -1
- package/development/header/header.js +2 -2
- package/development/icon/icon-base.d.ts +0 -1
- package/development/icon/icon-name-mixin.d.ts +0 -1
- package/development/icon/icon.d.ts +0 -1
- package/development/image/image.d.ts +0 -1
- package/development/image.js +2 -2
- package/development/journey-header/journey-header.d.ts +0 -1
- package/development/lead-container/lead-container.d.ts +0 -1
- package/development/lead-container.js +6 -2
- package/development/link/block-link/block-link.d.ts +0 -1
- package/development/link/block-link-button/block-link-button.d.ts +0 -1
- package/development/link/block-link-static/block-link-static.d.ts +0 -1
- package/development/link/common/block-link-common.d.ts +0 -1
- package/development/link/common/inline-link-common.d.ts +0 -1
- package/development/link/common/link-common.d.ts +0 -1
- package/development/link/common.js +9 -7
- package/development/link/link/link.d.ts +0 -1
- package/development/link/link-button/link-button.d.ts +0 -1
- package/development/link/link-static/link-static.d.ts +0 -1
- package/development/link-list/common/link-list-base.d.ts +27 -0
- package/development/link-list/common/link-list-base.d.ts.map +1 -0
- package/development/link-list/common.d.ts +2 -0
- package/development/link-list/common.d.ts.map +1 -0
- package/development/link-list/common.js +113 -0
- package/development/link-list/link-list/link-list.d.ts +22 -0
- package/development/link-list/link-list/link-list.d.ts.map +1 -0
- package/development/link-list/link-list-anchor/index.d.ts +2 -0
- package/development/link-list/link-list-anchor/index.d.ts.map +1 -0
- package/development/link-list/link-list-anchor/link-list-anchor.d.ts +17 -0
- package/development/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -0
- package/development/link-list/link-list-anchor.d.ts +2 -0
- package/development/link-list/link-list-anchor.d.ts.map +1 -0
- package/development/link-list/link-list-anchor.js +91 -0
- package/development/link-list/link-list.d.ts +1 -38
- package/development/link-list/link-list.d.ts.map +1 -1
- package/development/link-list/link-list.js +194 -0
- package/development/link-list.d.ts +2 -0
- package/development/link-list.d.ts.map +1 -1
- package/development/link-list.js +4 -260
- package/development/loading-indicator/loading-indicator.d.ts +0 -1
- package/development/logo/logo.d.ts +0 -1
- package/development/logo.js +2 -2
- package/development/map-container/map-container.d.ts +0 -1
- package/development/map-container.js +13 -11
- package/development/menu/common/menu-action-common.d.ts +0 -1
- package/development/menu/menu/menu.d.ts +1 -1
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu-button/menu-button.d.ts +0 -1
- package/development/menu/menu-link/menu-link.d.ts +0 -1
- package/development/menu/menu.js +13 -14
- package/development/message/message.d.ts +0 -1
- package/development/navigation/common/navigation-action-common.d.ts +0 -1
- package/development/navigation/navigation/navigation.d.ts +1 -1
- package/development/navigation/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation-button/navigation-button.d.ts +0 -1
- package/development/navigation/navigation-link/navigation-link.d.ts +0 -1
- package/development/navigation/navigation-list/navigation-list.d.ts +0 -1
- package/development/navigation/navigation-marker/navigation-marker.d.ts +0 -1
- package/development/navigation/navigation-section/navigation-section.d.ts +0 -1
- package/development/navigation/navigation-section.js +7 -5
- package/development/navigation/navigation.js +18 -19
- package/development/notification/notification.d.ts +0 -1
- package/development/option/optgroup/optgroup-base-element.d.ts +0 -1
- package/development/option/optgroup/optgroup.d.ts +0 -1
- package/development/option/option/option-base-element.d.ts +0 -1
- package/development/option/option/option.d.ts +0 -1
- package/development/overlay/overlay-base-element.d.ts +2 -2
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay.d.ts +0 -1
- package/development/overlay/overlay.d.ts.map +1 -1
- package/development/overlay.js +13 -13
- package/development/popover/popover/popover.d.ts +0 -1
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover-trigger/popover-trigger.d.ts +0 -1
- package/development/popover/popover-trigger.js +3 -3
- package/development/popover/popover.js +6 -4
- package/development/radio-button/common/radio-button-common.d.ts +0 -1
- package/development/radio-button/common.js +6 -6
- package/development/radio-button/radio-button/radio-button.d.ts +0 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +0 -1
- package/development/screen-reader-only/screen-reader-only.d.ts +0 -1
- package/development/select/select.d.ts +0 -1
- package/development/select.js +7 -5
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts +0 -1
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/development/selection-expansion-panel.js +6 -2
- package/development/signet/signet.d.ts +0 -1
- package/development/signet.js +1 -1
- package/development/skiplink-list/skiplink-list.d.ts +0 -1
- package/development/slider/slider.d.ts +0 -1
- package/development/slider.js +4 -4
- package/development/status/status.d.ts +0 -1
- package/development/stepper/step/step.d.ts +0 -1
- package/development/stepper/step-label/step-label.d.ts +0 -1
- package/development/stepper/stepper/stepper.d.ts +0 -1
- package/development/table/table-wrapper/table-wrapper.d.ts +0 -1
- package/development/tabs/tab/tab.d.ts +0 -1
- package/development/tabs/tab-group/tab-group.d.ts +0 -1
- package/development/tabs/tab-label/tab-label.d.ts +0 -1
- package/development/tabs/tab-label.js +10 -10
- package/development/tag/tag/tag.d.ts +0 -1
- package/development/tag/tag-group/tag-group.d.ts +0 -1
- package/development/tag/tag.js +3 -3
- package/development/teaser/teaser.d.ts +0 -1
- package/development/teaser-hero/teaser-hero.d.ts +27 -0
- package/development/teaser-hero/teaser-hero.d.ts.map +1 -0
- package/development/teaser-hero.d.ts +2 -0
- package/development/teaser-hero.d.ts.map +1 -0
- package/development/teaser-hero.js +207 -0
- package/development/teaser-product/common/teaser-product-common.d.ts +7 -0
- package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -0
- package/development/teaser-product/common.d.ts +2 -0
- package/development/teaser-product/common.d.ts.map +1 -0
- package/development/teaser-product/common.js +219 -0
- package/development/teaser-product/teaser-product/teaser-product.d.ts +22 -0
- package/development/teaser-product/teaser-product/teaser-product.d.ts.map +1 -0
- package/development/teaser-product/teaser-product-static/teaser-product-static.d.ts +22 -0
- package/development/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -0
- package/development/teaser-product/teaser-product-static.d.ts +2 -0
- package/development/teaser-product/teaser-product-static.d.ts.map +1 -0
- package/development/teaser-product/teaser-product-static.js +25 -0
- package/development/teaser-product/teaser-product.d.ts +2 -0
- package/development/teaser-product/teaser-product.d.ts.map +1 -0
- package/development/teaser-product/teaser-product.js +80 -0
- package/development/teaser-product.d.ts +4 -0
- package/development/teaser-product.d.ts.map +1 -0
- package/development/teaser-product.js +4 -0
- package/development/time-input/time-input.d.ts +0 -1
- package/development/timetable-occupancy/timetable-occupancy.d.ts +0 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +0 -1
- package/development/timetable-occupancy.js +1 -1
- package/development/title/title-base.d.ts +0 -1
- package/development/title/title.d.ts +0 -1
- package/development/toast/toast.d.ts +0 -1
- package/development/toggle/toggle/toggle.d.ts +2 -2
- package/development/toggle/toggle/toggle.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.d.ts +0 -1
- package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/development/toggle/toggle-option.js +3 -2
- package/development/toggle/toggle.js +8 -8
- package/development/toggle-check/toggle-check.d.ts +0 -1
- package/development/train/train/train.d.ts +0 -1
- package/development/train/train-blocked-passage/train-blocked-passage.d.ts +0 -1
- package/development/train/train-blocked-passage.js +1 -1
- package/development/train/train-formation/train-formation.d.ts +0 -1
- package/development/train/train-formation.js +9 -7
- package/development/train/train-wagon/train-wagon.d.ts +0 -1
- package/development/train/train-wagon.js +1 -1
- package/development/train/train.js +1 -1
- package/development/visual-checkbox/visual-checkbox.d.ts +0 -1
- package/development/visual-checkbox.js +1 -1
- package/dialog/dialog/dialog.d.ts +0 -1
- package/dialog/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog-actions/dialog-actions.d.ts +0 -1
- package/dialog/dialog-content/dialog-content.d.ts +0 -1
- package/dialog/dialog-content.js +1 -1
- package/dialog/dialog-title/dialog-title.d.ts +0 -1
- package/dialog/dialog.js +11 -12
- package/divider/divider.d.ts +0 -1
- package/expansion-panel/expansion-panel/expansion-panel.d.ts +0 -1
- package/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts +0 -1
- package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +0 -1
- package/expansion-panel/expansion-panel-header.js +1 -1
- package/file-selector/file-selector.d.ts +0 -1
- package/flip-card/flip-card/flip-card.d.ts +22 -7
- package/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/flip-card/flip-card-details/flip-card-details.d.ts +0 -1
- package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
- package/flip-card/flip-card-details.js +19 -17
- package/flip-card/flip-card-summary/flip-card-summary.d.ts +0 -1
- package/flip-card/flip-card-summary.js +13 -13
- package/flip-card/flip-card.js +68 -35
- package/footer/footer.d.ts +0 -1
- package/footer.js +1 -1
- package/form-error/form-error.d.ts +0 -1
- package/form-error.js +1 -1
- package/form-field/form-field/form-field.d.ts +1 -2
- package/form-field/form-field/form-field.d.ts.map +1 -1
- package/form-field/form-field-clear/form-field-clear.d.ts +0 -1
- package/form-field/form-field.js +22 -22
- package/header/common/header-action-common.d.ts +0 -1
- package/header/common.js +1 -1
- package/header/header/header.d.ts +0 -1
- package/header/header-button/header-button.d.ts +0 -1
- package/header/header-link/header-link.d.ts +0 -1
- package/header/header.js +1 -1
- package/icon/icon-base.d.ts +0 -1
- package/icon/icon-name-mixin.d.ts +0 -1
- package/icon/icon.d.ts +0 -1
- package/image/image.d.ts +0 -1
- package/image.js +25 -25
- package/index.d.ts +11 -1
- package/index.js +11 -1
- package/journey-header/journey-header.d.ts +0 -1
- package/lead-container/lead-container.d.ts +0 -1
- package/lead-container.js +1 -1
- package/link/block-link/block-link.d.ts +0 -1
- package/link/block-link-button/block-link-button.d.ts +0 -1
- package/link/block-link-static/block-link-static.d.ts +0 -1
- package/link/common/block-link-common.d.ts +0 -1
- package/link/common/inline-link-common.d.ts +0 -1
- package/link/common/link-common.d.ts +0 -1
- package/link/common.js +6 -6
- package/link/link/link.d.ts +0 -1
- package/link/link-button/link-button.d.ts +0 -1
- package/link/link-static/link-static.d.ts +0 -1
- package/link-list/common/link-list-base.d.ts +27 -0
- package/link-list/common/link-list-base.d.ts.map +1 -0
- package/link-list/common.d.ts +2 -0
- package/link-list/common.d.ts.map +1 -0
- package/link-list/common.js +59 -0
- package/link-list/link-list/link-list.d.ts +22 -0
- package/link-list/link-list/link-list.d.ts.map +1 -0
- package/link-list/link-list-anchor/index.d.ts +2 -0
- package/link-list/link-list-anchor/index.d.ts.map +1 -0
- package/link-list/link-list-anchor/link-list-anchor.d.ts +17 -0
- package/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -0
- package/link-list/link-list-anchor.d.ts +2 -0
- package/link-list/link-list-anchor.d.ts.map +1 -0
- package/link-list/link-list-anchor.js +18 -0
- package/link-list/link-list.d.ts +1 -38
- package/link-list/link-list.d.ts.map +1 -1
- package/link-list/link-list.js +27 -0
- package/link-list.d.ts +2 -0
- package/link-list.d.ts.map +1 -1
- package/link-list.js +3 -66
- package/loading-indicator/loading-indicator.d.ts +0 -1
- package/logo/logo.d.ts +0 -1
- package/logo.js +1 -1
- package/map-container/map-container.d.ts +0 -1
- package/map-container.js +1 -1
- package/menu/common/menu-action-common.d.ts +0 -1
- package/menu/menu/menu.d.ts +1 -1
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu-button/menu-button.d.ts +0 -1
- package/menu/menu-link/menu-link.d.ts +0 -1
- package/menu/menu.js +30 -30
- package/message/message.d.ts +0 -1
- package/navigation/common/navigation-action-common.d.ts +0 -1
- package/navigation/navigation/navigation.d.ts +1 -1
- package/navigation/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation-button/navigation-button.d.ts +0 -1
- package/navigation/navigation-link/navigation-link.d.ts +0 -1
- package/navigation/navigation-list/navigation-list.d.ts +0 -1
- package/navigation/navigation-marker/navigation-marker.d.ts +0 -1
- package/navigation/navigation-section/navigation-section.d.ts +0 -1
- package/navigation/navigation-section.js +1 -1
- package/navigation/navigation.js +37 -37
- package/notification/notification.d.ts +0 -1
- package/option/optgroup/optgroup-base-element.d.ts +0 -1
- package/option/optgroup/optgroup.d.ts +0 -1
- package/option/option/option-base-element.d.ts +0 -1
- package/option/option/option.d.ts +0 -1
- package/overlay/overlay-base-element.d.ts +2 -2
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay.d.ts +0 -1
- package/overlay/overlay.d.ts.map +1 -1
- package/overlay.js +44 -45
- package/package.json +46 -1
- package/popover/popover/popover.d.ts +0 -1
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover-trigger/popover-trigger.d.ts +0 -1
- package/popover/popover-trigger.js +1 -1
- package/popover/popover.js +2 -2
- package/radio-button/common/radio-button-common.d.ts +0 -1
- package/radio-button/common.js +1 -1
- package/radio-button/radio-button/radio-button.d.ts +0 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
- package/radio-button/radio-button-panel/radio-button-panel.d.ts +0 -1
- package/screen-reader-only/screen-reader-only.d.ts +0 -1
- package/select/select.d.ts +0 -1
- package/select.js +1 -1
- package/selection-expansion-panel/selection-expansion-panel.d.ts +0 -1
- package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/signet/signet.d.ts +0 -1
- package/signet.js +1 -1
- package/skiplink-list/skiplink-list.d.ts +0 -1
- package/slider/slider.d.ts +0 -1
- package/slider.js +1 -1
- package/standard-theme.css +19 -13
- package/status/status.d.ts +0 -1
- package/stepper/step/step.d.ts +0 -1
- package/stepper/step-label/step-label.d.ts +0 -1
- package/stepper/stepper/stepper.d.ts +0 -1
- package/table/table-wrapper/table-wrapper.d.ts +0 -1
- package/tabs/tab/tab.d.ts +0 -1
- package/tabs/tab-group/tab-group.d.ts +0 -1
- package/tabs/tab-label/tab-label.d.ts +0 -1
- package/tabs/tab-label.js +1 -1
- package/tag/tag/tag.d.ts +0 -1
- package/tag/tag-group/tag-group.d.ts +0 -1
- package/tag/tag.js +1 -1
- package/teaser/teaser.d.ts +0 -1
- package/teaser-hero/teaser-hero.d.ts +27 -0
- package/teaser-hero/teaser-hero.d.ts.map +1 -0
- package/teaser-hero.d.ts +2 -0
- package/teaser-hero.d.ts.map +1 -0
- package/teaser-hero.js +58 -0
- package/teaser-product/common/teaser-product-common.d.ts +7 -0
- package/teaser-product/common/teaser-product-common.d.ts.map +1 -0
- package/teaser-product/common.d.ts +2 -0
- package/teaser-product/common.d.ts.map +1 -0
- package/teaser-product/common.js +38 -0
- package/teaser-product/teaser-product/teaser-product.d.ts +22 -0
- package/teaser-product/teaser-product/teaser-product.d.ts.map +1 -0
- package/teaser-product/teaser-product-static/teaser-product-static.d.ts +22 -0
- package/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -0
- package/teaser-product/teaser-product-static.d.ts +2 -0
- package/teaser-product/teaser-product-static.d.ts.map +1 -0
- package/teaser-product/teaser-product-static.js +19 -0
- package/teaser-product/teaser-product.d.ts +2 -0
- package/teaser-product/teaser-product.d.ts.map +1 -0
- package/teaser-product/teaser-product.js +21 -0
- package/teaser-product.d.ts +4 -0
- package/teaser-product.d.ts.map +1 -0
- package/teaser-product.js +3 -0
- package/time-input/time-input.d.ts +0 -1
- package/timetable-occupancy/timetable-occupancy.d.ts +0 -1
- package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +0 -1
- package/timetable-occupancy.js +1 -1
- package/title/title-base.d.ts +0 -1
- package/title/title.d.ts +0 -1
- package/toast/toast.d.ts +0 -1
- package/toggle/toggle/toggle.d.ts +2 -2
- package/toggle/toggle/toggle.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.d.ts +0 -1
- package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/toggle/toggle-option.js +8 -8
- package/toggle/toggle.js +21 -22
- package/toggle-check/toggle-check.d.ts +0 -1
- package/train/train/train.d.ts +0 -1
- package/train/train-blocked-passage/train-blocked-passage.d.ts +0 -1
- package/train/train-blocked-passage.js +1 -1
- package/train/train-formation/train-formation.d.ts +0 -1
- package/train/train-formation.js +1 -1
- package/train/train-wagon/train-wagon.d.ts +0 -1
- package/train/train-wagon.js +1 -1
- package/train/train.js +1 -1
- package/visual-checkbox/visual-checkbox.d.ts +0 -1
- package/visual-checkbox.js +1 -1
package/development/menu/menu.js
CHANGED
|
@@ -3,10 +3,10 @@ import { property, customElement } from "lit/decorators.js";
|
|
|
3
3
|
import { ref } from "lit/directives/ref.js";
|
|
4
4
|
import { SbbFocusHandler, isArrowKeyPressed, interactivityChecker, getNextElementIndex, setModalityOnNextFocus, IS_FOCUSABLE_QUERY } from "../core/a11y.js";
|
|
5
5
|
import { SbbOpenCloseBaseElement } from "../core/base-elements.js";
|
|
6
|
-
import { SbbConnectedAbortController } from "../core/controllers.js";
|
|
6
|
+
import { SbbConnectedAbortController, SbbInertController } from "../core/controllers.js";
|
|
7
7
|
import { SbbScrollHandler, isBreakpoint, findReferencedElement } from "../core/dom.js";
|
|
8
8
|
import { SbbNamedSlotListMixin } from "../core/mixins.js";
|
|
9
|
-
import { isEventOnElement,
|
|
9
|
+
import { isEventOnElement, removeAriaOverlayTriggerAttributes, setAriaOverlayTriggerAttributes, getElementPosition } from "../core/overlay.js";
|
|
10
10
|
const style = css`/**
|
|
11
11
|
* Better font rendering (on OS X)
|
|
12
12
|
* http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
|
|
@@ -34,6 +34,7 @@ const style = css`/**
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
:host {
|
|
37
|
+
display: contents;
|
|
37
38
|
--sbb-menu-position-x: 0;
|
|
38
39
|
--sbb-menu-position-y: 0;
|
|
39
40
|
--sbb-menu-animation-duration: var(
|
|
@@ -51,7 +52,6 @@ const style = css`/**
|
|
|
51
52
|
--sbb-menu-border-radius: var(--sbb-border-radius-4x);
|
|
52
53
|
--sbb-menu-visibility: hidden;
|
|
53
54
|
--sbb-menu-backdrop-color: transparent;
|
|
54
|
-
display: contents;
|
|
55
55
|
}
|
|
56
56
|
@supports (height: 100dvh) {
|
|
57
57
|
:host {
|
|
@@ -173,10 +173,6 @@ const style = css`/**
|
|
|
173
173
|
--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);
|
|
174
174
|
/* Scrollbar itself */
|
|
175
175
|
/* Hide button (top and bottom of the scrollbar) */
|
|
176
|
-
max-height: var(--sbb-menu-max-height);
|
|
177
|
-
padding-block: var(--sbb-spacing-fixed-1x);
|
|
178
|
-
overflow: auto;
|
|
179
|
-
outline: none;
|
|
180
176
|
}
|
|
181
177
|
.sbb-menu__content::-webkit-scrollbar {
|
|
182
178
|
width: var(--sbb-scrollbar-width);
|
|
@@ -205,6 +201,12 @@ const style = css`/**
|
|
|
205
201
|
scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);
|
|
206
202
|
}
|
|
207
203
|
}
|
|
204
|
+
.sbb-menu__content {
|
|
205
|
+
max-height: var(--sbb-menu-max-height);
|
|
206
|
+
padding-block: var(--sbb-spacing-fixed-1x);
|
|
207
|
+
overflow: auto;
|
|
208
|
+
outline: none;
|
|
209
|
+
}
|
|
208
210
|
.sbb-menu__content::after {
|
|
209
211
|
content: "";
|
|
210
212
|
display: block;
|
|
@@ -282,6 +284,7 @@ let SbbMenuElement = class extends SbbNamedSlotListMixin(SbbOpenCloseBaseElement
|
|
|
282
284
|
this._abort = new SbbConnectedAbortController(this);
|
|
283
285
|
this._focusHandler = new SbbFocusHandler();
|
|
284
286
|
this._scrollHandler = new SbbScrollHandler();
|
|
287
|
+
this._inertController = new SbbInertController(this);
|
|
285
288
|
this._pointerDownListener = (event) => {
|
|
286
289
|
this._isPointerDownEventOnMenu = isEventOnElement(this._menu, event);
|
|
287
290
|
};
|
|
@@ -386,9 +389,6 @@ let SbbMenuElement = class extends SbbNamedSlotListMixin(SbbOpenCloseBaseElement
|
|
|
386
389
|
capture: true
|
|
387
390
|
});
|
|
388
391
|
this._configure(this.trigger);
|
|
389
|
-
if (this.state === "opened") {
|
|
390
|
-
applyInertMechanism(this);
|
|
391
|
-
}
|
|
392
392
|
}
|
|
393
393
|
disconnectedCallback() {
|
|
394
394
|
var _a, _b;
|
|
@@ -396,7 +396,6 @@ let SbbMenuElement = class extends SbbNamedSlotListMixin(SbbOpenCloseBaseElement
|
|
|
396
396
|
(_a = this._menuController) == null ? void 0 : _a.abort();
|
|
397
397
|
(_b = this._windowEventsController) == null ? void 0 : _b.abort();
|
|
398
398
|
this._focusHandler.disconnect();
|
|
399
|
-
removeInertMechanism();
|
|
400
399
|
this._scrollHandler.enableScroll();
|
|
401
400
|
}
|
|
402
401
|
_checkListCase(event) {
|
|
@@ -467,14 +466,14 @@ let SbbMenuElement = class extends SbbNamedSlotListMixin(SbbOpenCloseBaseElement
|
|
|
467
466
|
if (event.animationName === "open" && this.state === "opening") {
|
|
468
467
|
this.state = "opened";
|
|
469
468
|
this.didOpen.emit();
|
|
470
|
-
|
|
469
|
+
this._inertController.activate();
|
|
471
470
|
this._setMenuFocus();
|
|
472
471
|
this._focusHandler.trap(this);
|
|
473
472
|
this._attachWindowEvents();
|
|
474
473
|
} else if (event.animationName === "close" && this.state === "closing") {
|
|
475
474
|
this.state = "closed";
|
|
476
475
|
(_b = (_a = this._menu) == null ? void 0 : _a.firstElementChild) == null ? void 0 : _b.scrollTo(0, 0);
|
|
477
|
-
|
|
476
|
+
this._inertController.deactivate();
|
|
478
477
|
setModalityOnNextFocus(this._triggerElement);
|
|
479
478
|
(_c = this._triggerElement) == null ? void 0 : _c.focus({
|
|
480
479
|
// When inside the sbb-header, we prevent the scroll to avoid the snapping to the top of the page
|
|
@@ -541,4 +540,4 @@ SbbMenuElement = __decorateClass([
|
|
|
541
540
|
export {
|
|
542
541
|
SbbMenuElement
|
|
543
542
|
};
|
|
544
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBnZXROZXh0RWxlbWVudEluZGV4LFxuICBpbnRlcmFjdGl2aXR5Q2hlY2tlcixcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc0Fycm93S2V5UHJlc3NlZCxcbiAgU2JiRm9jdXNIYW5kbGVyLFxuICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzLFxufSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmaW5kUmVmZXJlbmNlZEVsZW1lbnQsIGlzQnJlYWtwb2ludCwgU2JiU2Nyb2xsSGFuZGxlciB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYk5hbWVkU2xvdExpc3RNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7XG4gIGFwcGx5SW5lcnRNZWNoYW5pc20sXG4gIGdldEVsZW1lbnRQb3NpdGlvbixcbiAgaXNFdmVudE9uRWxlbWVudCxcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyxcbiAgcmVtb3ZlSW5lcnRNZWNoYW5pc20sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG59IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk1lbnVCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vbWVudS1idXR0b24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJNZW51TGlua0VsZW1lbnQgfSBmcm9tICcuLi9tZW51LWxpbmsuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9tZW51LnNjc3M/bGl0JmlubGluZSc7XG5cbmNvbnN0IE1FTlVfT0ZGU0VUID0gODtcbmNvbnN0IElOVEVSQUNUSVZFX0VMRU1FTlRTID0gW1xuICAnQScsXG4gICdCVVRUT04nLFxuICAnU0JCLUJVVFRPTicsXG4gICdTQkItQlVUVE9OLUxJTksnLFxuICAnU0JCLUxJTksnLFxuICAnU0JCLUJMT0NLLUxJTksnLFxuICAnU0JCLUxJTkstQlVUVE9OJyxcbiAgJ1NCQi1CTE9DSy1MSU5LLUJVVFRPTicsXG5dO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGNvbnRleHR1YWwgbWVudSB3aXRoIG9uZSBvciBtb3JlIGFjdGlvbiBlbGVtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItbWVudS1idXR0b25gL2BzYmItbWVudS1saW5rYCBvciBvdGhlciBlbGVtZW50cyB0byB0aGUgbWVudS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbWVudWAgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1tZW51YCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1tZW51YCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1tZW51YCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItbWVudS16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItbWVudScpXG5leHBvcnQgY2xhc3MgU2JiTWVudUVsZW1lbnQgZXh0ZW5kcyBTYmJOYW1lZFNsb3RMaXN0TWl4aW48XG4gIFNiYk1lbnVCdXR0b25FbGVtZW50IHwgU2JiTWVudUxpbmtFbGVtZW50LFxuICB0eXBlb2YgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnRcbj4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gWydzYmItbWVudS1idXR0b24nLCAnc2JiLW1lbnUtbGluayddO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbWVudSBvdmVybGF5LlxuICAgKiBBY2NlcHRzIGJvdGggYSBzdHJpbmcgKGlkIG9mIGFuIGVsZW1lbnQpIG9yIGFuIEhUTUwgZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl90cmlnZ2VyO1xuICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcih0aGlzLl90cmlnZ2VyLCBvbGRWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCB0cmlnZ2VyKCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cbiAgcHJpdmF0ZSBfdHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBpbm5lciBsaXN0LlxuICAgKiBVc2VkIG9ubHkgaWYgdGhlIG1lbnUgYXV0b21hdGljYWxseSByZW5kZXJzIHRoZSBhY3Rpb25zIGluc2lkZSBhcyBhIGxpc3QuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsaXN0LWFjY2Vzc2liaWxpdHktbGFiZWwnIH0pIHB1YmxpYyBsaXN0QWNjZXNzaWJpbGl0eUxhYmVsPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgX21lbnUhOiBIVE1MRGl2RWxlbWVudDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2lzUG9pbnRlckRvd25FdmVudE9uTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9tZW51Q29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfd2luZG93RXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c0hhbmRsZXIgPSBuZXcgU2JiRm9jdXNIYW5kbGVyKCk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgbWVudSBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJyB8fCAhdGhpcy5fbWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy53aWxsT3Blbi5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuICAgIHRoaXMuX3NldE1lbnVQb3NpdGlvbigpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuXG4gICAgLy8gU3RhcnRpbmcgZnJvbSBicmVha3BvaW50IG1lZGl1bSwgZGlzYWJsZSBzY3JvbGxcbiAgICBpZiAoIWlzQnJlYWtwb2ludCgnbWVkaXVtJykpIHtcbiAgICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1lbnUuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy53aWxsQ2xvc2UuZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBjbGljayBhbmQgY2hlY2tzIGlmIGl0cyB0YXJnZXQgaXMgYSBzYmItbWVudS1idXR0b24vc2JiLW1lbnUtbGluay5cbiAgICovXG4gIHByaXZhdGUgX29uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0YXJnZXQ/LmxvY2FsTmFtZSA9PT0gJ3NiYi1tZW51LWJ1dHRvbicgfHwgdGFyZ2V0Py5sb2NhbE5hbWUgPT09ICdzYmItbWVudS1saW5rJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCFpc0Fycm93S2V5UHJlc3NlZChldnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgZW5hYmxlZEFjdGlvbnM6IEVsZW1lbnRbXSA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw8U2JiTWVudUJ1dHRvbkVsZW1lbnQgfCBTYmJNZW51TGlua0VsZW1lbnQ+KFxuICAgICAgICAnc2JiLW1lbnUtYnV0dG9uLCBzYmItbWVudS1saW5rJyxcbiAgICAgICksXG4gICAgKS5maWx0ZXIoXG4gICAgICAoZWw6IFNiYk1lbnVCdXR0b25FbGVtZW50IHwgU2JiTWVudUxpbmtFbGVtZW50KSA9PlxuICAgICAgICAhZWwuZGlzYWJsZWQgJiYgaW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNWaXNpYmxlKGVsKSxcbiAgICApO1xuXG4gICAgY29uc3QgY3VycmVudCA9IGVuYWJsZWRBY3Rpb25zLmZpbmRJbmRleCgoZTogRWxlbWVudCkgPT4gZSA9PT0gZXZ0LnRhcmdldCk7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRBY3Rpb25zLmxlbmd0aCk7XG5cbiAgICAoZW5hYmxlZEFjdGlvbnNbbmV4dEluZGV4XSBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgfVxuXG4gIC8vIENsb3NlcyB0aGUgbWVudSBvbiBcIkVzY1wiIGtleSBwcmVzc2VkIGFuZCB0cmFwcyBmb2N1cyB3aXRoaW4gdGhlIG1lbnUuXG4gIHByaXZhdGUgYXN5bmMgX29uS2V5ZG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIHByaXZhdGUgX3JlbW92ZVRyaWdnZXJDbGlja0xpc3RlbmVyKFxuICAgIG5ld1ZhbHVlOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgb2xkVmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5fbWVudUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fY29uZmlndXJlKHRoaXMudHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4gdGhpcy5fb25DbGljayhlKSwgeyBzaWduYWwgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSksIHsgc2lnbmFsIH0pO1xuICAgIC8vIER1ZSB0byB0aGUgZmFjdCB0aGF0IG1lbnUgY2FuIGJvdGggYmUgYSBsaXN0IGFuZCBqdXN0IGEgY29udGFpbmVyLCB3ZSBuZWVkIHRvIGNoZWNrIGl0c1xuICAgIC8vIHN0YXRlIGJlZm9yZSB0aGUgU2JiTmFtZWRTbG90TGlzdE1peGluIGhhbmRsZXMgdGhlIHNsb3RjaGFuZ2UgZXZlbnQsIGluIG9yZGVyIHRvIGF2b2lkXG4gICAgLy8gaXQgaW50ZXJwcmV0aW5nIHRoZSBub24gbGlzdCBjYXNlIGFzIGEgbGlzdC5cbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCAoZSkgPT4gdGhpcy5fY2hlY2tMaXN0Q2FzZShlKSwge1xuICAgICAgc2lnbmFsLFxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KTtcbiAgICAvLyBWYWxpZGF0ZSB0cmlnZ2VyIGVsZW1lbnQgYW5kIGF0dGFjaCBldmVudCBsaXN0ZW5lcnNcbiAgICB0aGlzLl9jb25maWd1cmUodGhpcy50cmlnZ2VyKTtcblxuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJykge1xuICAgICAgYXBwbHlJbmVydE1lY2hhbmlzbSh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9tZW51Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgcmVtb3ZlSW5lcnRNZWNoYW5pc20oKTtcbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tMaXN0Q2FzZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBJZiBhbGwgY2hpbGRyZW4gYXJlIHNiYi1tZW51LWJ1dHRvbi9tZW51LWxpbmsgaW5zdGFuY2VzLCB3ZSByZW5kZXIgdGhlbSBhcyBhIGxpc3QuXG4gICAgaWYgKFxuICAgICAgdGhpcy5jaGlsZHJlbj8ubGVuZ3RoICYmXG4gICAgICBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4gPz8gW10pLmV2ZXJ5KFxuICAgICAgICAoYykgPT4gYy5sb2NhbE5hbWUgPT09ICdzYmItbWVudS1idXR0b24nIHx8IGMubG9jYWxOYW1lID09PSAnc2JiLW1lbnUtbGluaycsXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgdGhpcy5saXN0Q2hpbGRyZW4uZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ3Nsb3QnKSk7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbiA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmUodHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG5cbiAgICBpZiAoIXRyaWdnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudCh0cmlnZ2VyKTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gdGhpcy5pZCB8fCBgc2JiLW1lbnUtJHtuZXh0SWQrK31gO1xuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQsICdtZW51JywgdGhpcy5pZCwgdGhpcy5zdGF0ZSk7XG4gICAgdGhpcy5fbWVudUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fbWVudUNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9tZW51Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hXaW5kb3dFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9zZXRNZW51UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3NldE1lbnVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5fb25LZXlkb3duRXZlbnQoZXZlbnQpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgbWVudSBvbiBiYWNrZHJvcCBjbGlja1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2xvc2UgbWVudSBhdCBhbnkgY2xpY2sgb24gYW4gaW50ZXJhY3RpdmUgZWxlbWVudCBpbnNpZGUgdGhlIDxzYmItbWVudT4gdGhhdCBidWJibGVzIHRvIHRoZSBjb250YWluZXIuXG4gIHByaXZhdGUgX2Nsb3NlT25JbnRlcmFjdGl2ZUVsZW1lbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKElOVEVSQUNUSVZFX0VMRU1FTlRTLmluY2x1ZGVzKHRhcmdldC5ub2RlTmFtZSkgJiYgIXRhcmdldC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbWVudS5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLl9tZW51LCBldmVudCk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbWVudSBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX21lbnUsIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICAvLyBTZXQgbWVudSBwb3NpdGlvbiAoeCwgeSkgdG8gJzAnIG9uY2UgdGhlIG1lbnUgaXMgY2xvc2VkIGFuZCB0aGUgdHJhbnNpdGlvbiBlbmRlZCB0byBwcmV2ZW50IHRoZVxuICAvLyB2aWV3cG9ydCBmcm9tIG92ZXJmbG93aW5nLiBBbmQgc2V0IHRoZSBmb2N1cyB0byB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgb25jZSB0aGUgbWVudSBpcyBvcGVuLlxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uTWVudUFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgICAgdGhpcy5kaWRPcGVuLmVtaXQoKTtcbiAgICAgIGFwcGx5SW5lcnRNZWNoYW5pc20odGhpcyk7XG4gICAgICB0aGlzLl9zZXRNZW51Rm9jdXMoKTtcbiAgICAgIHRoaXMuX2ZvY3VzSGFuZGxlci50cmFwKHRoaXMpO1xuICAgICAgdGhpcy5fYXR0YWNoV2luZG93RXZlbnRzKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgICAgdGhpcy5fbWVudT8uZmlyc3RFbGVtZW50Q2hpbGQ/LnNjcm9sbFRvKDAsIDApO1xuICAgICAgcmVtb3ZlSW5lcnRNZWNoYW5pc20oKTtcbiAgICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgICAgLy8gTWFudWFsbHkgZm9jdXMgbGFzdCBmb2N1c2VkIGVsZW1lbnRcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cyh7XG4gICAgICAgIC8vIFdoZW4gaW5zaWRlIHRoZSBzYmItaGVhZGVyLCB3ZSBwcmV2ZW50IHRoZSBzY3JvbGwgdG8gYXZvaWQgdGhlIHNuYXBwaW5nIHRvIHRoZSB0b3Agb2YgdGhlIHBhZ2VcbiAgICAgICAgcHJldmVudFNjcm9sbDpcbiAgICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5sb2NhbE5hbWUgPT09ICdzYmItaGVhZGVyLWJ1dHRvbicgfHxcbiAgICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5sb2NhbE5hbWUgPT09ICdzYmItaGVhZGVyLWxpbmsnLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRpZENsb3NlLmVtaXQoKTtcbiAgICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgICAvLyBTdGFydGluZyBmcm9tIGJyZWFrcG9pbnQgbWVkaXVtLCBlbmFibGUgc2Nyb2xsXG4gICAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldE1lbnVGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IHRoaXMucXVlcnlTZWxlY3RvcihJU19GT0NVU0FCTEVfUVVFUlkpIGFzIEhUTUxFbGVtZW50O1xuICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGUpO1xuICAgIGZpcnN0Rm9jdXNhYmxlLmZvY3VzKCk7XG4gIH1cblxuICAvLyBTZXQgbWVudSBwb3NpdGlvbiBhbmQgbWF4IGhlaWdodCBpZiB0aGUgYnJlYWtwb2ludCBpcyBtZWRpdW0tdWx0cmEuXG4gIHByaXZhdGUgX3NldE1lbnVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAvLyBTdGFydGluZyBmcm9tIGJyZWFrcG9pbnQgbWVkaXVtXG4gICAgaWYgKFxuICAgICAgIWlzQnJlYWtwb2ludCgnbWVkaXVtJykgfHxcbiAgICAgICF0aGlzLl9tZW51IHx8XG4gICAgICAhdGhpcy5fdHJpZ2dlckVsZW1lbnQgfHxcbiAgICAgIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJ1xuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnVQb3NpdGlvbiA9IGdldEVsZW1lbnRQb3NpdGlvbihcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250ZW50JykhLFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQsXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItbWVudV9fY29udGFpbmVyJykhLFxuICAgICAge1xuICAgICAgICB2ZXJ0aWNhbE9mZnNldDogTUVOVV9PRkZTRVQsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1tZW51LXBvc2l0aW9uLXgnLCBgJHttZW51UG9zaXRpb24ubGVmdH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW1lbnUtcG9zaXRpb24teScsIGAke21lbnVQb3NpdGlvbi50b3B9cHhgKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1tZW51LW1heC1oZWlnaHQnLCBtZW51UG9zaXRpb24ubWF4SGVpZ2h0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIFRPRE86IEhhbmRsZSBjYXNlIHdpdGggb3RoZXIgZWxlbWVudHMgdGhhbiBzYmItbWVudS1idXR0b24vc2JiLW1lbnUtbGluay5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItbWVudV9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7KGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4gdGhpcy5fb25NZW51QW5pbWF0aW9uRW5kKGV2ZW50KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1tZW51XCJcbiAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fbWVudSA9IGVsIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAY2xpY2s9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl9jbG9zZU9uSW50ZXJhY3RpdmVFbGVtZW50Q2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgY2xhc3M9XCJzYmItbWVudV9fY29udGVudFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHt0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlckxpc3QoeyBjbGFzczogJ3NiYi1tZW51LWxpc3QnLCBhcmlhTGFiZWw6IHRoaXMubGlzdEFjY2Vzc2liaWxpdHlMYWJlbCB9KVxuICAgICAgICAgICAgICA6IGh0bWxgPHNsb3Q+PC9zbG90PmB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW1lbnUnOiBTYmJNZW51RWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2QkEsTUFBTSxjQUFjO0FBQ3BCLE1BQU0sdUJBQXVCO0FBQUEsRUFDM0I7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFFQSxJQUFJLFNBQVM7QUFlTixJQUFNLGlCQUFOLGNBQTZCLHNCQUdsQyx1QkFBdUIsRUFBRTtBQUFBLEVBSHBCLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQUt1QixTQUFBLHNCQUFzQixDQUFDLG1CQUFtQixlQUFlO0FBZXJGLFNBQVEsV0FBd0M7QUFT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
|
|
543
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBnZXROZXh0RWxlbWVudEluZGV4LFxuICBpbnRlcmFjdGl2aXR5Q2hlY2tlcixcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc0Fycm93S2V5UHJlc3NlZCxcbiAgU2JiRm9jdXNIYW5kbGVyLFxuICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzLFxufSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyLCBTYmJJbmVydENvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZpbmRSZWZlcmVuY2VkRWxlbWVudCwgaXNCcmVha3BvaW50LCBTYmJTY3JvbGxIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgU2JiTmFtZWRTbG90TGlzdE1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHtcbiAgZ2V0RWxlbWVudFBvc2l0aW9uLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxufSBmcm9tICcuLi8uLi9jb3JlL292ZXJsYXkuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJNZW51QnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL21lbnUtYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiTWVudUxpbmtFbGVtZW50IH0gZnJvbSAnLi4vbWVudS1saW5rLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbWVudS5zY3NzP2xpdCZpbmxpbmUnO1xuXG5jb25zdCBNRU5VX09GRlNFVCA9IDg7XG5jb25zdCBJTlRFUkFDVElWRV9FTEVNRU5UUyA9IFtcbiAgJ0EnLFxuICAnQlVUVE9OJyxcbiAgJ1NCQi1CVVRUT04nLFxuICAnU0JCLUJVVFRPTi1MSU5LJyxcbiAgJ1NCQi1MSU5LJyxcbiAgJ1NCQi1CTE9DSy1MSU5LJyxcbiAgJ1NCQi1MSU5LLUJVVFRPTicsXG4gICdTQkItQkxPQ0stTElOSy1CVVRUT04nLFxuXTtcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBjb250ZXh0dWFsIG1lbnUgd2l0aCBvbmUgb3IgbW9yZSBhY3Rpb24gZWxlbWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW1lbnUtYnV0dG9uYC9gc2JiLW1lbnUtbGlua2Agb3Igb3RoZXIgZWxlbWVudHMgdG8gdGhlIG1lbnUuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW1lbnVgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbWVudWAgaXMgb3BlbmVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbWVudWAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbWVudWAgaXMgY2xvc2VkLlxuICogQGNzc3Byb3AgWy0tc2JiLW1lbnUtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLW1lbnUnKVxuZXhwb3J0IGNsYXNzIFNiYk1lbnVFbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJNZW51QnV0dG9uRWxlbWVudCB8IFNiYk1lbnVMaW5rRWxlbWVudCxcbiAgdHlwZW9mIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50XG4+KFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFsnc2JiLW1lbnUtYnV0dG9uJywgJ3NiYi1tZW51LWxpbmsnXTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIG1lbnUgb3ZlcmxheS5cbiAgICogQWNjZXB0cyBib3RoIGEgc3RyaW5nIChpZCBvZiBhbiBlbGVtZW50KSBvciBhbiBIVE1MIGVsZW1lbnQuXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHRyaWdnZXIodmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCkge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdHJpZ2dlcjtcbiAgICB0aGlzLl90cmlnZ2VyID0gdmFsdWU7XG4gICAgdGhpcy5fcmVtb3ZlVHJpZ2dlckNsaWNrTGlzdGVuZXIodGhpcy5fdHJpZ2dlciwgb2xkVmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgdHJpZ2dlcigpOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyO1xuICB9XG4gIHByaXZhdGUgX3RyaWdnZXI6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgaW5uZXIgbGlzdC5cbiAgICogVXNlZCBvbmx5IGlmIHRoZSBtZW51IGF1dG9tYXRpY2FsbHkgcmVuZGVycyB0aGUgYWN0aW9ucyBpbnNpZGUgYXMgYSBsaXN0LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbGlzdC1hY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KSBwdWJsaWMgbGlzdEFjY2Vzc2liaWxpdHlMYWJlbD86IHN0cmluZztcblxuICBwcml2YXRlIF9tZW51ITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbWVudUNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZm9jdXNIYW5kbGVyID0gbmV3IFNiYkZvY3VzSGFuZGxlcigpO1xuICBwcml2YXRlIF9zY3JvbGxIYW5kbGVyID0gbmV3IFNiYlNjcm9sbEhhbmRsZXIoKTtcbiAgcHJpdmF0ZSBfaW5lcnRDb250cm9sbGVyID0gbmV3IFNiYkluZXJ0Q29udHJvbGxlcih0aGlzKTtcblxuICAvKipcbiAgICogT3BlbnMgdGhlIG1lbnUgb24gdHJpZ2dlciBjbGljay5cbiAgICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycgfHwgIXRoaXMuX21lbnUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9zZXRNZW51UG9zaXRpb24oKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcblxuICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBtZWRpdW0sIGRpc2FibGUgc2Nyb2xsXG4gICAgaWYgKCFpc0JyZWFrcG9pbnQoJ21lZGl1bScpKSB7XG4gICAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmRpc2FibGVTY3JvbGwoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtZW51LlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbENsb3NlLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY2xpY2sgYW5kIGNoZWNrcyBpZiBpdHMgdGFyZ2V0IGlzIGEgc2JiLW1lbnUtYnV0dG9uL3NiYi1tZW51LWxpbmsuXG4gICAqL1xuICBwcml2YXRlIF9vbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGFyZ2V0Py5sb2NhbE5hbWUgPT09ICdzYmItbWVudS1idXR0b24nIHx8IHRhcmdldD8ubG9jYWxOYW1lID09PSAnc2JiLW1lbnUtbGluaycpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGVuYWJsZWRBY3Rpb25zOiBFbGVtZW50W10gPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPFNiYk1lbnVCdXR0b25FbGVtZW50IHwgU2JiTWVudUxpbmtFbGVtZW50PihcbiAgICAgICAgJ3NiYi1tZW51LWJ1dHRvbiwgc2JiLW1lbnUtbGluaycsXG4gICAgICApLFxuICAgICkuZmlsdGVyKFxuICAgICAgKGVsOiBTYmJNZW51QnV0dG9uRWxlbWVudCB8IFNiYk1lbnVMaW5rRWxlbWVudCkgPT5cbiAgICAgICAgIWVsLmRpc2FibGVkICYmIGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCksXG4gICAgKTtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSBlbmFibGVkQWN0aW9ucy5maW5kSW5kZXgoKGU6IEVsZW1lbnQpID0+IGUgPT09IGV2dC50YXJnZXQpO1xuICAgIGNvbnN0IG5leHRJbmRleCA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkQWN0aW9ucy5sZW5ndGgpO1xuXG4gICAgKGVuYWJsZWRBY3Rpb25zW25leHRJbmRleF0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gIH1cblxuICAvLyBDbG9zZXMgdGhlIG1lbnUgb24gXCJFc2NcIiBrZXkgcHJlc3NlZCBhbmQgdHJhcHMgZm9jdXMgd2l0aGluIHRoZSBtZW51LlxuICBwcml2YXRlIGFzeW5jIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLlxuICBwcml2YXRlIF9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcihcbiAgICBuZXdWYWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIG9sZFZhbHVlOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX21lbnVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSh0aGlzLnRyaWdnZXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHRoaXMuX29uQ2xpY2soZSksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpLCB7IHNpZ25hbCB9KTtcbiAgICAvLyBEdWUgdG8gdGhlIGZhY3QgdGhhdCBtZW51IGNhbiBib3RoIGJlIGEgbGlzdCBhbmQganVzdCBhIGNvbnRhaW5lciwgd2UgbmVlZCB0byBjaGVjayBpdHNcbiAgICAvLyBzdGF0ZSBiZWZvcmUgdGhlIFNiYk5hbWVkU2xvdExpc3RNaXhpbiBoYW5kbGVzIHRoZSBzbG90Y2hhbmdlIGV2ZW50LCBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGl0IGludGVycHJldGluZyB0aGUgbm9uIGxpc3QgY2FzZSBhcyBhIGxpc3QuXG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgKGUpID0+IHRoaXMuX2NoZWNrTGlzdENhc2UoZSksIHtcbiAgICAgIHNpZ25hbCxcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgLy8gVmFsaWRhdGUgdHJpZ2dlciBlbGVtZW50IGFuZCBhdHRhY2ggZXZlbnQgbGlzdGVuZXJzXG4gICAgdGhpcy5fY29uZmlndXJlKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9tZW51Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrTGlzdENhc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gSWYgYWxsIGNoaWxkcmVuIGFyZSBzYmItbWVudS1idXR0b24vbWVudS1saW5rIGluc3RhbmNlcywgd2UgcmVuZGVyIHRoZW0gYXMgYSBsaXN0LlxuICAgIGlmIChcbiAgICAgIHRoaXMuY2hpbGRyZW4/Lmxlbmd0aCAmJlxuICAgICAgQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuID8/IFtdKS5ldmVyeShcbiAgICAgICAgKGMpID0+IGMubG9jYWxOYW1lID09PSAnc2JiLW1lbnUtYnV0dG9uJyB8fCBjLmxvY2FsTmFtZSA9PT0gJ3NiYi1tZW51LWxpbmsnLFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuLmZvckVhY2goKGMpID0+IGMucmVtb3ZlQXR0cmlidXRlKCdzbG90JykpO1xuICAgICAgdGhpcy5saXN0Q2hpbGRyZW4gPSBbXTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgdHJpZ2dlciBpcyB2YWxpZCBhbmQgYXR0YWNoIGNsaWNrIGV2ZW50IGxpc3RlbmVycy5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKHRyaWdnZXI6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBmaW5kUmVmZXJlbmNlZEVsZW1lbnQodHJpZ2dlcik7XG5cbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQgfHwgYHNiYi1tZW51LSR7bmV4dElkKyt9YDtcbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuaWQsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX21lbnVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX21lbnVDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fbWVudUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fc2V0TWVudVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRNZW51UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29uS2V5ZG93bkV2ZW50KGV2ZW50KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIG1lbnUgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljaywge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENsb3NlIG1lbnUgYXQgYW55IGNsaWNrIG9uIGFuIGludGVyYWN0aXZlIGVsZW1lbnQgaW5zaWRlIHRoZSA8c2JiLW1lbnU+IHRoYXQgYnViYmxlcyB0byB0aGUgY29udGFpbmVyLlxuICBwcml2YXRlIF9jbG9zZU9uSW50ZXJhY3RpdmVFbGVtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmIChJTlRFUkFDVElWRV9FTEVNRU5UUy5pbmNsdWRlcyh0YXJnZXQubm9kZU5hbWUpICYmICF0YXJnZXQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG1lbnUuXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSA9IGlzRXZlbnRPbkVsZW1lbnQodGhpcy5fbWVudSwgZXZlbnQpO1xuICB9O1xuXG4gIC8vIENsb3NlIG1lbnUgb24gYmFja2Ryb3AgY2xpY2suXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSAmJiAhaXNFdmVudE9uRWxlbWVudCh0aGlzLl9tZW51LCBldmVudCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gU2V0IG1lbnUgcG9zaXRpb24gKHgsIHkpIHRvICcwJyBvbmNlIHRoZSBtZW51IGlzIGNsb3NlZCBhbmQgdGhlIHRyYW5zaXRpb24gZW5kZWQgdG8gcHJldmVudCB0aGVcbiAgLy8gdmlld3BvcnQgZnJvbSBvdmVyZmxvd2luZy4gQW5kIHNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IG9uY2UgdGhlIG1lbnUgaXMgb3Blbi5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vbk1lbnVBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuZGlkT3Blbi5lbWl0KCk7XG4gICAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIuYWN0aXZhdGUoKTtcbiAgICAgIHRoaXMuX3NldE1lbnVGb2N1cygpO1xuICAgICAgdGhpcy5fZm9jdXNIYW5kbGVyLnRyYXAodGhpcyk7XG4gICAgICB0aGlzLl9hdHRhY2hXaW5kb3dFdmVudHMoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLl9tZW51Py5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIuZGVhY3RpdmF0ZSgpO1xuICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBNYW51YWxseSBmb2N1cyBsYXN0IGZvY3VzZWQgZWxlbWVudFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKHtcbiAgICAgICAgLy8gV2hlbiBpbnNpZGUgdGhlIHNiYi1oZWFkZXIsIHdlIHByZXZlbnQgdGhlIHNjcm9sbCB0byBhdm9pZCB0aGUgc25hcHBpbmcgdG8gdGhlIHRvcCBvZiB0aGUgcGFnZVxuICAgICAgICBwcmV2ZW50U2Nyb2xsOlxuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmxvY2FsTmFtZSA9PT0gJ3NiYi1oZWFkZXItYnV0dG9uJyB8fFxuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmxvY2FsTmFtZSA9PT0gJ3NiYi1oZWFkZXItbGluaycsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCgpO1xuICAgICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG5cbiAgICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBtZWRpdW0sIGVuYWJsZSBzY3JvbGxcbiAgICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJpdmF0ZSBfc2V0TWVudUZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gdGhpcy5xdWVyeVNlbGVjdG9yKElTX0ZPQ1VTQUJMRV9RVUVSWSkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhmaXJzdEZvY3VzYWJsZSk7XG4gICAgZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcbiAgfVxuXG4gIC8vIFNldCBtZW51IHBvc2l0aW9uIGFuZCBtYXggaGVpZ2h0IGlmIHRoZSBicmVha3BvaW50IGlzIG1lZGl1bS11bHRyYS5cbiAgcHJpdmF0ZSBfc2V0TWVudVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBtZWRpdW1cbiAgICBpZiAoXG4gICAgICAhaXNCcmVha3BvaW50KCdtZWRpdW0nKSB8fFxuICAgICAgIXRoaXMuX21lbnUgfHxcbiAgICAgICF0aGlzLl90cmlnZ2VyRWxlbWVudCB8fFxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWVudVBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLW1lbnVfX2NvbnRlbnQnKSEsXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCxcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250YWluZXInKSEsXG4gICAgICB7XG4gICAgICAgIHZlcnRpY2FsT2Zmc2V0OiBNRU5VX09GRlNFVCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW1lbnUtcG9zaXRpb24teCcsIGAke21lbnVQb3NpdGlvbi5sZWZ0fXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbWVudS1wb3NpdGlvbi15JywgYCR7bWVudVBvc2l0aW9uLnRvcH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW1lbnUtbWF4LWhlaWdodCcsIG1lbnVQb3NpdGlvbi5tYXhIZWlnaHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gVE9ETzogSGFuZGxlIGNhc2Ugd2l0aCBvdGhlciBlbGVtZW50cyB0aGFuIHNiYi1tZW51LWJ1dHRvbi9zYmItbWVudS1saW5rLlxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1tZW51X19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHsoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB0aGlzLl9vbk1lbnVBbmltYXRpb25FbmQoZXZlbnQpfVxuICAgICAgICAgIGNsYXNzPVwic2JiLW1lbnVcIlxuICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9tZW51ID0gZWwgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuX2Nsb3NlT25JbnRlcmFjdGl2ZUVsZW1lbnRDbGljayhldmVudCl9XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1tZW51X19jb250ZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMubGlzdENoaWxkcmVuLmxlbmd0aFxuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyTGlzdCh7IGNsYXNzOiAnc2JiLW1lbnUtbGlzdCcsIGFyaWFMYWJlbDogdGhpcy5saXN0QWNjZXNzaWJpbGl0eUxhYmVsIH0pXG4gICAgICAgICAgICAgIDogaHRtbGA8c2xvdD48L3Nsb3Q+YH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbWVudSc6IFNiYk1lbnVFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkJBLE1BQU0sY0FBYztBQUNwQixNQUFNLHVCQUF1QjtBQUFBLEVBQzNCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBRUEsSUFBSSxTQUFTO0FBZU4sSUFBTSxpQkFBTixjQUE2QixzQkFHbEMsdUJBQXVCLEVBQUU7QUFBQSxFQUhwQixjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFLdUIsU0FBQSxzQkFBc0IsQ0FBQyxtQkFBbUIsZUFBZTtBQWVyRixTQUFRLFdBQXdDO0FBU2hELFNBQVEsa0JBQXNDO0FBQzlDLFNBQVEsNEJBQXFDO0FBR3JDLFNBQUEsU0FBUyxJQUFJLDRC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
|
|
@@ -2,7 +2,6 @@ import { SbbActionBaseElement } from '../../core/base-elements.js';
|
|
|
2
2
|
import { AbstractConstructor } from '../../core/mixins.js';
|
|
3
3
|
import { SbbNavigationMarkerElement } from '../navigation-marker.js';
|
|
4
4
|
import { SbbNavigationSectionElement } from '../navigation-section.js';
|
|
5
|
-
|
|
6
5
|
export type SbbNavigationActionSize = 's' | 'm' | 'l';
|
|
7
6
|
export declare class SbbNavigationActionCommonElementMixinType {
|
|
8
7
|
size?: SbbNavigationActionSize;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { CSSResultGroup, TemplateResult } from 'lit';
|
|
2
2
|
import { SbbOpenCloseBaseElement } from '../../core/base-elements.js';
|
|
3
|
-
|
|
4
3
|
declare const SbbNavigationElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbUpdateSchedulerMixinType> & typeof SbbOpenCloseBaseElement;
|
|
5
4
|
/**
|
|
6
5
|
* It displays a navigation menu, wrapping one or more `sbb-navigation-*` components.
|
|
@@ -39,6 +38,7 @@ export declare class SbbNavigationElement extends SbbNavigationElement_base {
|
|
|
39
38
|
private _windowEventsController;
|
|
40
39
|
private _abort;
|
|
41
40
|
private _language;
|
|
41
|
+
private _inertController;
|
|
42
42
|
private _focusHandler;
|
|
43
43
|
private _scrollHandler;
|
|
44
44
|
private _isPointerDownEventOnNavigation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../../src/elements/navigation/navigation/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../../src/elements/navigation/navigation/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAqBtE,OAAO,oCAAoC,CAAC;;AAW5C;;;;;;;;;;;GAWG;AACH,qBAIa,oBAAqB,SAAQ,yBAAgD;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;OAGG;IACH,IACW,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,EAIpD;IACD,IAAW,OAAO,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAEhD;IACD,OAAO,CAAC,QAAQ,CAAqC;IAErD;;OAEG;IAC0D,uBAAuB,EAChF,MAAM,GACN,SAAS,CAAC;IAEd;;OAEG;IACM,OAAO,CAAC,wBAAwB,CAA4B;IAErE,IAAW,uBAAuB,IAAI,WAAW,GAAG,IAAI,CAEvD;IAED,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,yBAAyB,CAAe;IAChD,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,qBAAqB,CAAmB;IAChD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,+BAA+B,CAAkB;IACzD,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,mBAAmB,CAEzB;IACF,OAAO,CAAC,yBAAyB,CAAgE;IAEjG;;OAEG;IACI,IAAI,IAAI,IAAI;IAkBnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACI,KAAK,IAAI,IAAI;IAcpB,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,gBAAgB,CAEtB;IAIF,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,oBAAoB,CAS1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAGF,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,mBAAmB;IAkBX,iBAAiB,IAAI,IAAI;IAYzB,oBAAoB,IAAI,IAAI;cAUzB,MAAM,IAAI,cAAc;CAqC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SbbButtonBaseElement } from '../../core/base-elements.js';
|
|
2
|
-
|
|
3
2
|
declare const SbbNavigationButtonElement_base: import('../../core/mixins.js').AbstractConstructor<import('../common.js').SbbNavigationActionCommonElementMixinType> & typeof SbbButtonBaseElement;
|
|
4
3
|
/**
|
|
5
4
|
* It displays a button element that can be used in the `sbb-navigation` component.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SbbLinkBaseElement } from '../../core/base-elements.js';
|
|
2
|
-
|
|
3
2
|
declare const SbbNavigationLinkElement_base: import('../../core/mixins.js').AbstractConstructor<import('../common.js').SbbNavigationActionCommonElementMixinType> & typeof SbbLinkBaseElement;
|
|
4
3
|
/**
|
|
5
4
|
* It displays a link element that can be used in the `sbb-navigation` component.
|
|
@@ -2,7 +2,6 @@ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit'
|
|
|
2
2
|
import { WithListChildren } from '../../core/mixins.js';
|
|
3
3
|
import { SbbNavigationButtonElement } from '../navigation-button.js';
|
|
4
4
|
import { SbbNavigationLinkElement } from '../navigation-link.js';
|
|
5
|
-
|
|
6
5
|
declare const SbbNavigationListElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNamedSlotListMixinType<SbbNavigationLinkElement | SbbNavigationButtonElement>> & typeof LitElement;
|
|
7
6
|
/**
|
|
8
7
|
* It can be used as a container for one or more `sbb-navigation-button`/`sbb-navigation-link` within a `sbb-navigation-section`.
|
|
@@ -2,7 +2,6 @@ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit'
|
|
|
2
2
|
import { WithListChildren } from '../../core/mixins.js';
|
|
3
3
|
import { SbbNavigationButtonElement } from '../navigation-button.js';
|
|
4
4
|
import { SbbNavigationLinkElement } from '../navigation-link.js';
|
|
5
|
-
|
|
6
5
|
declare const SbbNavigationMarkerElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNamedSlotListMixinType<SbbNavigationLinkElement | SbbNavigationButtonElement>> & typeof LitElement;
|
|
7
6
|
/**
|
|
8
7
|
* It can be used as a container for one or more `sbb-navigation-button`/`sbb-navigation-link` within a `sbb-navigation`.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
|
|
2
|
-
|
|
3
2
|
declare const SbbNavigationSectionElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbUpdateSchedulerMixinType> & typeof LitElement;
|
|
4
3
|
/**
|
|
5
4
|
* It can be used as a container for `sbb-navigation-list` within a `sbb-navigation`.
|
|
@@ -169,10 +169,6 @@ const style = css`/**
|
|
|
169
169
|
--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);
|
|
170
170
|
/* Scrollbar itself */
|
|
171
171
|
/* Hide button (top and bottom of the scrollbar) */
|
|
172
|
-
height: 100%;
|
|
173
|
-
padding-block: var(--sbb-navigation-section-padding-block);
|
|
174
|
-
outline: none;
|
|
175
|
-
overflow-y: auto;
|
|
176
172
|
}
|
|
177
173
|
.sbb-navigation-section__wrapper::-webkit-scrollbar {
|
|
178
174
|
width: var(--sbb-scrollbar-width);
|
|
@@ -201,6 +197,12 @@ const style = css`/**
|
|
|
201
197
|
scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);
|
|
202
198
|
}
|
|
203
199
|
}
|
|
200
|
+
.sbb-navigation-section__wrapper {
|
|
201
|
+
height: 100%;
|
|
202
|
+
padding-block: var(--sbb-navigation-section-padding-block);
|
|
203
|
+
outline: none;
|
|
204
|
+
overflow-y: auto;
|
|
205
|
+
}
|
|
204
206
|
:host(:is([data-state=opening], [data-state=closing])) .sbb-navigation-section__wrapper {
|
|
205
207
|
--sbb-scrollbar-color: transparent;
|
|
206
208
|
scrollbar-color: transparent transparent;
|
|
@@ -602,4 +604,4 @@ SbbNavigationSectionElement = __decorateClass([
|
|
|
602
604
|
export {
|
|
603
605
|
SbbNavigationSectionElement
|
|
604
606
|
};
|
|
605
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZWN0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24vbmF2aWdhdGlvbi1zZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIExpdEVsZW1lbnQsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBnZXRGaXJzdEZvY3VzYWJsZUVsZW1lbnQsXG4gIGdldEZvY3VzYWJsZUVsZW1lbnRzLFxuICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzLFxufSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcywgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGZpbmRSZWZlcmVuY2VkRWxlbWVudCwgaXNCcmVha3BvaW50LCBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IGkxOG5Hb0JhY2sgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7XG4gIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG59IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1idXR0b24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24uanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLXNlY3Rpb24uc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vdHJhbnNwYXJlbnQtYnV0dG9uLmpzJztcbmltcG9ydCAnLi4vLi4vZGl2aWRlci5qcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBgc2JiLW5hdmlnYXRpb24tbGlzdGAgd2l0aGluIGEgYHNiYi1uYXZpZ2F0aW9uYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IGludG8gdGhlIGBzYmItbmF2aWdhdGlvbi1zZWN0aW9uYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ25hdmlnYXRpb24tc2VjdGlvbicsXG59KVxuQHNsb3RTdGF0ZSgpXG5leHBvcnQgY2xhc3MgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGJlIHNob3duIGJlZm9yZSB0aGUgYWN0aW9uIGxpc3QuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1jb250ZW50JywgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgdGl0bGVDb250ZW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbiBzZWN0aW9uLlxuICAgKiBBY2NlcHRzIGJvdGggYSBzdHJpbmcgKGlkIG9mIGFuIGVsZW1lbnQpIG9yIGFuIEhUTUwgZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl90cmlnZ2VyO1xuICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcih0aGlzLl90cmlnZ2VyLCBvbGRWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCB0cmlnZ2VyKCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cbiAgcHJpdmF0ZSBfdHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXYgZWxlbWVudCBhbmQgaXMgcmVhZCBhcyBhIHRpdGxlIG9mIHRoZSBuYXZpZ2F0aW9uLXNlY3Rpb24uXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgYmFjayBidXR0b24gZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktYmFjay1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlCYWNrTGFiZWw6XG4gICAgfCBzdHJpbmdcbiAgICB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBuYXZpZ2F0aW9uIHNlY3Rpb24uXG4gICAqL1xuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcywgJ2FyaWEtaGlkZGVuJywgdGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnID8gJ3RydWUnIDogbnVsbCk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uPzogU2JiTmF2aWdhdGlvbkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvblNlY3Rpb24hOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvblNlY3Rpb25Db250YWluZXJFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uU2VjdGlvbkNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKipcbiAgICogT3BlbnMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAnY2xvc2VkJyB8fCAhdGhpcy5fbmF2aWdhdGlvblNlY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRBY3RpdmVOYXZpZ2F0aW9uQWN0aW9uKCk7XG4gICAgdGhpcy5fY2xvc2VQcmV2aW91c05hdmlnYXRpb25TZWN0aW9uKCk7XG4gICAgdGhpcy5fc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIHRoaXMuaW5lcnQgPSB0cnVlO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QWN0aXZlTmF2aWdhdGlvbkFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8ubWFya2VyPy5zZWxlY3QodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQcmV2aW91c05hdmlnYXRpb25TZWN0aW9uKCk6IHZvaWQge1xuICAgICh0aGlzLl9maXJzdExldmVsTmF2aWdhdGlvbj8uYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24gYXMgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50KT8uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIHRoaXMuaW5lcnQgPSB0cnVlO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgfVxuXG4gIC8vIFJlbW92ZXMgdHJpZ2dlciBjbGljayBsaXN0ZW5lciBvbiB0cmlnZ2VyIGNoYW5nZS5cbiAgcHJpdmF0ZSBfcmVtb3ZlVHJpZ2dlckNsaWNrTGlzdGVuZXIoXG4gICAgbmV3VmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBvbGRWYWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9uYXZpZ2F0aW9uU2VjdGlvbkNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fY29uZmlndXJlKHRoaXMudHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZSh0cmlnZ2VyOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcblxuICAgIGlmICghdHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gZmluZFJlZmVyZW5jZWRFbGVtZW50KHRyaWdnZXIpO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQsICdtZW51JywgdGhpcy5pZCwgdGhpcy5fc3RhdGUpO1xuICAgIHRoaXMuX25hdmlnYXRpb25TZWN0aW9uQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uU2VjdGlvbkNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY29ubmVjdGVkU2VjdGlvbiA9IHRoaXM7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9uYXZpZ2F0aW9uU2VjdGlvbkNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudCkgPT4gdGhpcy5faGFuZGxlTmF2aWdhdGlvblNlY3Rpb25Gb2N1cyhldmVudCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fbmF2aWdhdGlvblNlY3Rpb25Db250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE5hdmlnYXRpb25JbmVydCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIChcbiAgICAgIHRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uIS5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnNiYi1uYXZpZ2F0aW9uX19jb250ZW50JyxcbiAgICAgICkgYXMgSFRNTEVsZW1lbnRcbiAgICApLmluZXJ0ID0gdGhpcy5faXNaZXJvVG9MYXJnZUJyZWFrcG9pbnQoKSAmJiB0aGlzLl9zdGF0ZSAhPT0gJ2Nsb3NlZCc7XG4gIH1cblxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkluZXJ0KCk7XG4gICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uU2VjdGlvbkZvY3VzKCk7XG4gICAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbigpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgICAgdGhpcy5fbmF2aWdhdGlvblNlY3Rpb25Db250YWluZXJFbGVtZW50LnNjcm9sbFRvKDAsIDApO1xuICAgICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX3Jlc2V0TGlzdHMoKTtcbiAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25JbmVydCgpO1xuICAgICAgaWYgKHRoaXMuX2lzWmVyb1RvTGFyZ2VCcmVha3BvaW50KCkgJiYgdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0TGlzdHMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9ucyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXNlY3Rpb24tYWN0aW9uXVtkYXRhLWFjdGlvbi1hY3RpdmVdJyksXG4gICAgKSBhcyAoU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQpW107XG4gICAgYWN0aXZlQWN0aW9ucz8uZm9yRWFjaCgoYWN0aW9uKSA9PiBhY3Rpb24ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWFjdGlvbi1hY3RpdmUnKSk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hXaW5kb3dFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5fb25LZXlkb3duRXZlbnQoZXZlbnQpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBzZWN0aW9uIG9uIGFjdGlvbiBjbGljayBvciBzYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNsb3NlIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlTmF2aWdhdGlvblNlY3Rpb25DbG9zZSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBjbGljayB3YXMgdHJpZ2dlcmVkIG9uIGFuIGVsZW1lbnQgdGhhdCBzaG91bGQgY2xvc2UgdGhlIHNlY3Rpb24uXG4gIHByaXZhdGUgX2hhbmRsZU5hdmlnYXRpb25TZWN0aW9uQ2xvc2UgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9pc0Nsb3NlRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBlbGVtZW50Lm5vZGVOYW1lID09PSAnQScgfHxcbiAgICAgICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgJiZcbiAgICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpIHx8XG4gICAgICAgICAgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2UnKSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb1RvTGFyZ2VCcmVha3BvaW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0JyZWFrcG9pbnQoJ3plcm8nLCAnbGFyZ2UnKTtcbiAgfVxuXG4gIC8vIENsb3NlcyB0aGUgbmF2aWdhdGlvbiBvbiBcIkVzY1wiIGtleSBwcmVzc2VkLlxuICBwcml2YXRlIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ29wZW5lZCcgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldE5hdmlnYXRpb25TZWN0aW9uRm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KFxuICAgICAgW3RoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignI3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYmFjay1idXR0b24nKV1cbiAgICAgICAgLmNvbmNhdChBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pKVxuICAgICAgICAuZmlsdGVyKChlKTogZSBpcyBIVE1MRWxlbWVudCA9PiBlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KSxcbiAgICApO1xuICAgIGlmIChmaXJzdEZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGVFbGVtZW50KTtcbiAgICAgIGZpcnN0Rm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9uKCk6IHZvaWQge1xuICAgIChcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspLnNiYi1hY3RpdmUnLFxuICAgICAgKSBhcyBIVE1MRWxlbWVudFxuICAgICk/LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3Rpb24tYWN0aXZlJywgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uU2VjdGlvbkZvY3VzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicgfHwgdGhpcy5faXNaZXJvVG9MYXJnZUJyZWFrcG9pbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIER5bmFtaWNhbGx5IGdldCBmaXJzdCBhbmQgbGFzdCBmb2N1c2FibGUgZWxlbWVudCwgYXMgdGhpcyBtaWdodCBoYXZlIGNoYW5nZWQgc2luY2Ugb3BlbmluZyBvdmVybGF5XG4gICAgY29uc3QgbmF2aWdhdGlvbkNoaWxkcmVuOiBIVE1MRWxlbWVudFtdID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuY2xvc2VzdCgnc2JiLW5hdmlnYXRpb24nKSEuc2hhZG93Um9vdCEuY2hpbGRyZW4sXG4gICAgKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgIGNvbnN0IG5hdmlnYXRpb25Gb2N1c2FibGVFbGVtZW50cyA9IGdldEZvY3VzYWJsZUVsZW1lbnRzKG5hdmlnYXRpb25DaGlsZHJlbiwge1xuICAgICAgZmlsdGVyOiAoZWwpID0+IGVsLm5vZGVOYW1lICE9PSAnU0JCLU5BVklHQVRJT04tU0VDVElPTicsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzZWN0aW9uQ2hpbGRyZW46IEhUTUxFbGVtZW50W10gPSBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdCEuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W107XG4gICAgY29uc3Qgc2VjdGlvbkZvY3VzYWJsZUVsZW1lbnRzID0gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoc2VjdGlvbkNoaWxkcmVuKTtcblxuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gc2VjdGlvbkZvY3VzYWJsZUVsZW1lbnRzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGxhc3RGb2N1c2FibGUgPSBzZWN0aW9uRm9jdXNhYmxlRWxlbWVudHNbXG4gICAgICBzZWN0aW9uRm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoIC0gMVxuICAgIF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGV2ZW50LnNoaWZ0S2V5XG4gICAgICA/IHRoaXMuX3RyaWdnZXJFbGVtZW50XG4gICAgICA6IG5hdmlnYXRpb25Gb2N1c2FibGVFbGVtZW50c1tuYXZpZ2F0aW9uRm9jdXNhYmxlRWxlbWVudHMuaW5kZXhPZih0aGlzLl90cmlnZ2VyRWxlbWVudCEpICsgMV07XG4gICAgY29uc3QgcGl2b3QgPSBldmVudC5zaGlmdEtleSA/IGZpcnN0Rm9jdXNhYmxlIDogbGFzdEZvY3VzYWJsZTtcblxuICAgIGlmIChcbiAgICAgICEhZWxlbWVudFRvRm9jdXMgJiZcbiAgICAgICgoZmlyc3RGb2N1c2FibGUuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmFjdGl2ZUVsZW1lbnQgPT09IHBpdm90IHx8XG4gICAgICAgIChsYXN0Rm9jdXNhYmxlLmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5hY3RpdmVFbGVtZW50ID09PSBwaXZvdClcbiAgICApIHtcbiAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaWQgfHw9IGBzYmItbmF2aWdhdGlvbi1zZWN0aW9uLSR7bmV4dElkKyt9YDtcbiAgICB0aGlzLl9zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gICAgLy8gVmFsaWRhdGUgdHJpZ2dlciBlbGVtZW50IGFuZCBhdHRhY2ggZXZlbnQgbGlzdGVuZXJzXG4gICAgdGhpcy5fY29uZmlndXJlKHRoaXMudHJpZ2dlcik7XG4gICAgdGhpcy5fZmlyc3RMZXZlbE5hdmlnYXRpb24gPSB0aGlzLl90cmlnZ2VyRWxlbWVudD8uY2xvc2VzdD8uKCdzYmItbmF2aWdhdGlvbicpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvblNlY3Rpb25Db250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250YWluZXJcIlxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fbmF2aWdhdGlvblNlY3Rpb25Db250YWluZXJFbGVtZW50ID0gZWwgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgID5cbiAgICAgICAgPG5hdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHsoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB0aGlzLl9vbkFuaW1hdGlvbkVuZChldmVudCl9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uXCJcbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9JHshdGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyAndGl0bGUnIDogbm90aGluZ31cbiAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA6IG5vdGhpbmd9XG4gICAgICAgICAgJHtyZWYoXG4gICAgICAgICAgICAobmF2aWdhdGlvblNlY3Rpb25SZWY/OiBFbGVtZW50KSA9PlxuICAgICAgICAgICAgICAodGhpcy5fbmF2aWdhdGlvblNlY3Rpb24gPSBuYXZpZ2F0aW9uU2VjdGlvblJlZiBhcyBIVE1MRWxlbWVudCksXG4gICAgICAgICAgKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBCYWNrIGJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uLWJhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fYmFja1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5QmFja0xhYmVsIHx8IGkxOG5Hb0JhY2tbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLWxlZnQtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZVxuICAgICAgICAgICAgICAgID48L3NiYi10cmFuc3BhcmVudC1idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX3RpdGxlXCIgaWQ9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCI+JHt0aGlzLnRpdGxlQ29udGVudH08L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmF2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbic6IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBLElBQUksU0FBUztBQVlOLElBQU0sOEJBQU4sY0FBMEMsd0JBQXdCLFVBQVUsRUFBRTtBQUFBLEVBQTlFLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQXFCTCxTQUFRLFdBQXdDO0FBeUJoRCxTQUFRLHdCQUFzRDtBQUc5RCxTQUFRLGtCQUFxRDtBQUdyRCxTQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQXFJMUMsU0FBQSxnQ0FBZ0MsQ0FBQyxVQUF1QjtBQUN4RCxZQUFBLHVCQUF1QixNQUMxQixlQUNBLE9BQU8sQ0FBQyxP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
|
|
607
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZWN0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24vbmF2aWdhdGlvbi1zZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIExpdEVsZW1lbnQsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBnZXRGaXJzdEZvY3VzYWJsZUVsZW1lbnQsXG4gIGdldEZvY3VzYWJsZUVsZW1lbnRzLFxuICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzLFxufSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcywgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGZpbmRSZWZlcmVuY2VkRWxlbWVudCwgaXNCcmVha3BvaW50LCBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IGkxOG5Hb0JhY2sgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7XG4gIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG59IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1idXR0b24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24uanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLXNlY3Rpb24uc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vdHJhbnNwYXJlbnQtYnV0dG9uLmpzJztcbmltcG9ydCAnLi4vLi4vZGl2aWRlci5qcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBgc2JiLW5hdmlnYXRpb24tbGlzdGAgd2l0aGluIGEgYHNiYi1uYXZpZ2F0aW9uYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IGludG8gdGhlIGBzYmItbmF2aWdhdGlvbi1zZWN0aW9uYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ25hdmlnYXRpb24tc2VjdGlvbicsXG59KVxuQHNsb3RTdGF0ZSgpXG5leHBvcnQgY2xhc3MgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGJlIHNob3duIGJlZm9yZSB0aGUgYWN0aW9uIGxpc3QuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1jb250ZW50JywgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgdGl0bGVDb250ZW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbiBzZWN0aW9uLlxuICAgKiBBY2NlcHRzIGJvdGggYSBzdHJpbmcgKGlkIG9mIGFuIGVsZW1lbnQpIG9yIGFuIEhUTUwgZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl90cmlnZ2VyO1xuICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcih0aGlzLl90cmlnZ2VyLCBvbGRWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCB0cmlnZ2VyKCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cbiAgcHJpdmF0ZSBfdHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXYgZWxlbWVudCBhbmQgaXMgcmVhZCBhcyBhIHRpdGxlIG9mIHRoZSBuYXZpZ2F0aW9uLXNlY3Rpb24uXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgYmFjayBidXR0b24gZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktYmFjay1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlCYWNrTGFiZWw6XG4gICAgfCBzdHJpbmdcbiAgICB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBuYXZpZ2F0aW9uIHNlY3Rpb24uXG4gICAqL1xuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcywgJ2FyaWEtaGlkZGVuJywgdGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnID8gJ3RydWUnIDogbnVsbCk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uPzogU2JiTmF2aWdhdGlvbkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvblNlY3Rpb24hOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvblNlY3Rpb25Db250YWluZXJFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uU2VjdGlvbkNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKipcbiAgICogT3BlbnMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAnY2xvc2VkJyB8fCAhdGhpcy5fbmF2aWdhdGlvblNlY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRBY3RpdmVOYXZpZ2F0aW9uQWN0aW9uKCk7XG4gICAgdGhpcy5fY2xvc2VQcmV2aW91c05hdmlnYXRpb25TZWN0aW9uKCk7XG4gICAgdGhpcy5fc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIHRoaXMuaW5lcnQgPSB0cnVlO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QWN0aXZlTmF2aWdhdGlvbkFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8ubWFya2VyPy5zZWxlY3QodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQcmV2aW91c05hdmlnYXRpb25TZWN0aW9uKCk6IHZvaWQge1xuICAgICh0aGlzLl9maXJzdExldmVsTmF2aWdhdGlvbj8uYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24gYXMgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50KT8uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIHRoaXMuaW5lcnQgPSB0cnVlO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgfVxuXG4gIC8vIFJlbW92ZXMgdHJpZ2dlciBjbGljayBsaXN0ZW5lciBvbiB0cmlnZ2VyIGNoYW5nZS5cbiAgcHJpdmF0ZSBfcmVtb3ZlVHJpZ2dlckNsaWNrTGlzdGVuZXIoXG4gICAgbmV3VmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBvbGRWYWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9uYXZpZ2F0aW9uU2VjdGlvbkNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fY29uZmlndXJlKHRoaXMudHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZSh0cmlnZ2VyOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcblxuICAgIGlmICghdHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gZmluZFJlZmVyZW5jZWRFbGVtZW50KHRyaWdnZXIpO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQsICdtZW51JywgdGhpcy5pZCwgdGhpcy5fc3RhdGUpO1xuICAgIHRoaXMuX25hdmlnYXRpb25TZWN0aW9uQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uU2VjdGlvbkNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY29ubmVjdGVkU2VjdGlvbiA9IHRoaXM7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9uYXZpZ2F0aW9uU2VjdGlvbkNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudCkgPT4gdGhpcy5faGFuZGxlTmF2aWdhdGlvblNlY3Rpb25Gb2N1cyhldmVudCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fbmF2aWdhdGlvblNlY3Rpb25Db250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE5hdmlnYXRpb25JbmVydCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIChcbiAgICAgIHRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uIS5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnNiYi1uYXZpZ2F0aW9uX19jb250ZW50JyxcbiAgICAgICkgYXMgSFRNTEVsZW1lbnRcbiAgICApLmluZXJ0ID0gdGhpcy5faXNaZXJvVG9MYXJnZUJyZWFrcG9pbnQoKSAmJiB0aGlzLl9zdGF0ZSAhPT0gJ2Nsb3NlZCc7XG4gIH1cblxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkluZXJ0KCk7XG4gICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uU2VjdGlvbkZvY3VzKCk7XG4gICAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbigpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgICAgdGhpcy5fbmF2aWdhdGlvblNlY3Rpb25Db250YWluZXJFbGVtZW50LnNjcm9sbFRvKDAsIDApO1xuICAgICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX3Jlc2V0TGlzdHMoKTtcbiAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25JbmVydCgpO1xuICAgICAgaWYgKHRoaXMuX2lzWmVyb1RvTGFyZ2VCcmVha3BvaW50KCkgJiYgdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0TGlzdHMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9ucyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXNlY3Rpb24tYWN0aW9uXVtkYXRhLWFjdGlvbi1hY3RpdmVdJyksXG4gICAgKSBhcyAoU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQpW107XG4gICAgYWN0aXZlQWN0aW9ucz8uZm9yRWFjaCgoYWN0aW9uKSA9PiBhY3Rpb24ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWFjdGlvbi1hY3RpdmUnKSk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hXaW5kb3dFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5fb25LZXlkb3duRXZlbnQoZXZlbnQpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBzZWN0aW9uIG9uIGFjdGlvbiBjbGljayBvciBzYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNsb3NlIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlTmF2aWdhdGlvblNlY3Rpb25DbG9zZSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBjbGljayB3YXMgdHJpZ2dlcmVkIG9uIGFuIGVsZW1lbnQgdGhhdCBzaG91bGQgY2xvc2UgdGhlIHNlY3Rpb24uXG4gIHByaXZhdGUgX2hhbmRsZU5hdmlnYXRpb25TZWN0aW9uQ2xvc2UgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9pc0Nsb3NlRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBlbGVtZW50Lm5vZGVOYW1lID09PSAnQScgfHxcbiAgICAgICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgJiZcbiAgICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpIHx8XG4gICAgICAgICAgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2UnKSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb1RvTGFyZ2VCcmVha3BvaW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0JyZWFrcG9pbnQoJ3plcm8nLCAnbGFyZ2UnKTtcbiAgfVxuXG4gIC8vIENsb3NlcyB0aGUgbmF2aWdhdGlvbiBvbiBcIkVzY1wiIGtleSBwcmVzc2VkLlxuICBwcml2YXRlIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ29wZW5lZCcgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldE5hdmlnYXRpb25TZWN0aW9uRm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KFxuICAgICAgW3RoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignI3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYmFjay1idXR0b24nKV1cbiAgICAgICAgLmNvbmNhdChBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pKVxuICAgICAgICAuZmlsdGVyKChlKTogZSBpcyBIVE1MRWxlbWVudCA9PiBlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KSxcbiAgICApO1xuICAgIGlmIChmaXJzdEZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGVFbGVtZW50KTtcbiAgICAgIGZpcnN0Rm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9uKCk6IHZvaWQge1xuICAgIChcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspLnNiYi1hY3RpdmUnLFxuICAgICAgKSBhcyBIVE1MRWxlbWVudFxuICAgICk/LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3Rpb24tYWN0aXZlJywgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uU2VjdGlvbkZvY3VzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicgfHwgdGhpcy5faXNaZXJvVG9MYXJnZUJyZWFrcG9pbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIER5bmFtaWNhbGx5IGdldCBmaXJzdCBhbmQgbGFzdCBmb2N1c2FibGUgZWxlbWVudCwgYXMgdGhpcyBtaWdodCBoYXZlIGNoYW5nZWQgc2luY2Ugb3BlbmluZyBvdmVybGF5XG4gICAgY29uc3QgbmF2aWdhdGlvbkNoaWxkcmVuOiBIVE1MRWxlbWVudFtdID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuY2xvc2VzdCgnc2JiLW5hdmlnYXRpb24nKSEuc2hhZG93Um9vdCEuY2hpbGRyZW4sXG4gICAgKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgIGNvbnN0IG5hdmlnYXRpb25Gb2N1c2FibGVFbGVtZW50cyA9IGdldEZvY3VzYWJsZUVsZW1lbnRzKG5hdmlnYXRpb25DaGlsZHJlbiwge1xuICAgICAgZmlsdGVyOiAoZWwpID0+IGVsLm5vZGVOYW1lICE9PSAnU0JCLU5BVklHQVRJT04tU0VDVElPTicsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzZWN0aW9uQ2hpbGRyZW46IEhUTUxFbGVtZW50W10gPSBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdCEuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W107XG4gICAgY29uc3Qgc2VjdGlvbkZvY3VzYWJsZUVsZW1lbnRzID0gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoc2VjdGlvbkNoaWxkcmVuKTtcblxuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gc2VjdGlvbkZvY3VzYWJsZUVsZW1lbnRzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGxhc3RGb2N1c2FibGUgPSBzZWN0aW9uRm9jdXNhYmxlRWxlbWVudHNbXG4gICAgICBzZWN0aW9uRm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoIC0gMVxuICAgIF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGV2ZW50LnNoaWZ0S2V5XG4gICAgICA/IHRoaXMuX3RyaWdnZXJFbGVtZW50XG4gICAgICA6IG5hdmlnYXRpb25Gb2N1c2FibGVFbGVtZW50c1tuYXZpZ2F0aW9uRm9jdXNhYmxlRWxlbWVudHMuaW5kZXhPZih0aGlzLl90cmlnZ2VyRWxlbWVudCEpICsgMV07XG4gICAgY29uc3QgcGl2b3QgPSBldmVudC5zaGlmdEtleSA/IGZpcnN0Rm9jdXNhYmxlIDogbGFzdEZvY3VzYWJsZTtcblxuICAgIGlmIChcbiAgICAgICEhZWxlbWVudFRvRm9jdXMgJiZcbiAgICAgICgoZmlyc3RGb2N1c2FibGUuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmFjdGl2ZUVsZW1lbnQgPT09IHBpdm90IHx8XG4gICAgICAgIChsYXN0Rm9jdXNhYmxlLmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5hY3RpdmVFbGVtZW50ID09PSBwaXZvdClcbiAgICApIHtcbiAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaWQgfHw9IGBzYmItbmF2aWdhdGlvbi1zZWN0aW9uLSR7bmV4dElkKyt9YDtcbiAgICB0aGlzLl9zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gICAgLy8gVmFsaWRhdGUgdHJpZ2dlciBlbGVtZW50IGFuZCBhdHRhY2ggZXZlbnQgbGlzdGVuZXJzXG4gICAgdGhpcy5fY29uZmlndXJlKHRoaXMudHJpZ2dlcik7XG4gICAgdGhpcy5fZmlyc3RMZXZlbE5hdmlnYXRpb24gPSB0aGlzLl90cmlnZ2VyRWxlbWVudD8uY2xvc2VzdD8uKCdzYmItbmF2aWdhdGlvbicpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvblNlY3Rpb25Db250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250YWluZXJcIlxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fbmF2aWdhdGlvblNlY3Rpb25Db250YWluZXJFbGVtZW50ID0gZWwgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgID5cbiAgICAgICAgPG5hdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHsoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB0aGlzLl9vbkFuaW1hdGlvbkVuZChldmVudCl9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uXCJcbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9JHshdGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyAndGl0bGUnIDogbm90aGluZ31cbiAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA6IG5vdGhpbmd9XG4gICAgICAgICAgJHtyZWYoXG4gICAgICAgICAgICAobmF2aWdhdGlvblNlY3Rpb25SZWY/OiBFbGVtZW50KSA9PlxuICAgICAgICAgICAgICAodGhpcy5fbmF2aWdhdGlvblNlY3Rpb24gPSBuYXZpZ2F0aW9uU2VjdGlvblJlZiBhcyBIVE1MRWxlbWVudCksXG4gICAgICAgICAgKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBCYWNrIGJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uLWJhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fYmFja1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5QmFja0xhYmVsIHx8IGkxOG5Hb0JhY2tbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLWxlZnQtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZVxuICAgICAgICAgICAgICAgID48L3NiYi10cmFuc3BhcmVudC1idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX3RpdGxlXCIgaWQ9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCI+JHt0aGlzLnRpdGxlQ29udGVudH08L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmF2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbic6IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QkEsSUFBSSxTQUFTO0FBWU4sSUFBTSw4QkFBTixjQUEwQyx3QkFBd0IsVUFBVSxFQUFFO0FBQUEsRUFBOUUsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBcUJMLFNBQVEsV0FBd0M7QUF5QmhELFNBQVEsd0JBQXNEO0FBRzlELFNBQVEsa0JBQXFEO0FBR3JELFNBQUEsWUFBWSxJQUFJLHNCQUFzQixJQUFJO0FBcUkxQyxTQUFBLGdDQUFnQyxDQUFDLFVBQXVCO0FBQ3hELFlBQUEsdUJBQXVCLE1BQzFCLGVBQ0EsT0FBTyxDQUFD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
|