@eui/components 18.0.0-next.23 → 18.0.0-next.25
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/docs/components/EuiAppToolbarComponent.html +1 -1
- package/docs/components/EuiHeaderComponent.html +1 -1
- package/docs/components/EuiLanguageSelectorComponent.html +29 -62
- package/docs/dependencies.html +18 -4
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/directives/eui-clearable.directive.mjs +3 -3
- package/esm2022/directives/eui-has-permission.directive.mjs +6 -6
- package/esm2022/directives/eui-loading.directive.mjs +3 -3
- package/esm2022/directives/eui-maxlength.directive.mjs +6 -6
- package/esm2022/directives/eui-resizable/eui-resizable.component.mjs +3 -3
- package/esm2022/directives/eui-resizable/eui-resizable.directive.mjs +3 -3
- package/esm2022/directives/eui-resizable/eui-resizable.module.mjs +4 -4
- package/esm2022/directives/eui-scroll-handler.directive.mjs +8 -8
- package/esm2022/directives/eui-smooth-scroll.directive.mjs +8 -8
- package/esm2022/directives/eui-template.directive.mjs +6 -6
- package/esm2022/directives/eui-tooltip/container/eui-tooltip-container.component.mjs +3 -3
- package/esm2022/directives/eui-tooltip/eui-tooltip.directive.mjs +3 -3
- package/esm2022/directives/eui-tooltip/eui-tooltip.module.mjs +4 -4
- package/esm2022/eui-alert/components/eui-alert-title.component.mjs +3 -3
- package/esm2022/eui-alert/eui-alert.component.mjs +3 -3
- package/esm2022/eui-alert/eui-alert.module.mjs +4 -4
- package/esm2022/eui-all/eui-all.module.mjs +4 -4
- package/esm2022/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.mjs +3 -3
- package/esm2022/eui-autocomplete/eui-autocomplete-option-group/eui-autocomplete-option-group.component.mjs +3 -3
- package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +3 -3
- package/esm2022/eui-autocomplete/eui-autocomplete.module.mjs +4 -4
- package/esm2022/eui-avatar/avatar-badge/avatar-badge.component.mjs +3 -3
- package/esm2022/eui-avatar/avatar-icon/avatar-icon.component.mjs +3 -3
- package/esm2022/eui-avatar/avatar-image/avatar-image.component.mjs +3 -3
- package/esm2022/eui-avatar/avatar-text/avatar-text.component.mjs +3 -3
- package/esm2022/eui-avatar/eui-avatar-list.component.mjs +3 -3
- package/esm2022/eui-avatar/eui-avatar.component.mjs +3 -3
- package/esm2022/eui-avatar/eui-avatar.module.mjs +4 -4
- package/esm2022/eui-badge/eui-badge.component.mjs +3 -3
- package/esm2022/eui-badge/eui-badge.module.mjs +4 -4
- package/esm2022/eui-block-content/eui-block-content.component.mjs +3 -3
- package/esm2022/eui-block-content/eui-block-content.module.mjs +4 -4
- package/esm2022/eui-block-document/eui-block-document.component.mjs +3 -3
- package/esm2022/eui-block-document/eui-block-document.module.mjs +4 -4
- package/esm2022/eui-button/eui-button.component.mjs +6 -6
- package/esm2022/eui-button-group/eui-button-group.component.mjs +6 -6
- package/esm2022/eui-button-v2/eui-button-v2.component.mjs +6 -6
- package/esm2022/eui-card/components/eui-card-content/eui-card-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-buttons.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-icons.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-menu-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-left-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-right-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-subtitle.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-title.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header-body/eui-card-header-body.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-media/eui-card-media.component.mjs +3 -3
- package/esm2022/eui-card/eui-card.component.mjs +3 -3
- package/esm2022/eui-card/eui-card.module.mjs +4 -4
- package/esm2022/eui-card/services/ui-state.service.mjs +3 -3
- package/esm2022/eui-chip/eui-chip.component.mjs +3 -3
- package/esm2022/eui-chip/eui-chip.module.mjs +4 -4
- package/esm2022/eui-chip-list/eui-chip-list.component.mjs +5 -5
- package/esm2022/eui-chip-list/eui-chip-list.module.mjs +4 -4
- package/esm2022/eui-chip-list/services/eui-chip-list-drag.service.mjs +3 -3
- package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +10 -10
- package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +6 -6
- package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +3 -3
- package/esm2022/eui-date-range-selector/eui-date-range-selector.module.mjs +4 -4
- package/esm2022/eui-datepicker/eui-datepicker.component.mjs +11 -11
- package/esm2022/eui-datepicker/eui-datepicker.module.mjs +4 -4
- package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +3 -3
- package/esm2022/eui-dialog/eui-dialog.component.mjs +7 -7
- package/esm2022/eui-dialog/eui-dialog.module.mjs +4 -4
- package/esm2022/eui-dialog/services/eui-dialog.service.mjs +3 -3
- package/esm2022/eui-dimmer/dimmer.component.mjs +3 -3
- package/esm2022/eui-dimmer/dimmer.module.mjs +4 -4
- package/esm2022/eui-disable-content/eui-disable-content.component.mjs +6 -6
- package/esm2022/eui-discussion-thread/eui-discussion-thread-item.component.mjs +3 -3
- package/esm2022/eui-discussion-thread/eui-discussion-thread.component.mjs +3 -3
- package/esm2022/eui-discussion-thread/eui-discussion-thread.module.mjs +4 -4
- package/esm2022/eui-dropdown/directives/eui-dropdown-content.directive.mjs +3 -3
- package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +3 -3
- package/esm2022/eui-dropdown/eui-dropdown.component.mjs +3 -3
- package/esm2022/eui-dropdown/eui-dropdown.module.mjs +7 -7
- package/esm2022/eui-dropdown/eui-dropdown.service.mjs +3 -3
- package/esm2022/eui-feedback-message/eui-feedback-message.component.mjs +3 -3
- package/esm2022/eui-feedback-message/eui-feedback-message.module.mjs +4 -4
- package/esm2022/eui-fieldset/eui-fieldset.component.mjs +7 -7
- package/esm2022/eui-fieldset/eui-fieldset.module.mjs +4 -4
- package/esm2022/eui-file-upload/eui-file-upload.component.mjs +3 -3
- package/esm2022/eui-file-upload/eui-file-upload.module.mjs +4 -4
- package/esm2022/eui-file-upload/file-preview/file-preview.component.mjs +3 -3
- package/esm2022/eui-file-upload/pipes/filesize.pipe.mjs +3 -3
- package/esm2022/eui-file-upload/progress/eui-file-upload-progress.component.mjs +3 -3
- package/esm2022/eui-file-upload/utils/eui-file-upload.utils.mjs +3 -3
- package/esm2022/eui-growl/eui-growl.component.mjs +3 -3
- package/esm2022/eui-growl/eui-growl.module.mjs +4 -4
- package/esm2022/eui-icon/eui-icon-color.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon-svg-button/eui-icon-svg-button.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon-svg.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon.module.mjs +4 -4
- package/esm2022/eui-icon-toggle/eui-icon-toggle.component.mjs +3 -3
- package/esm2022/eui-icon-toggle/eui-icon-toggle.module.mjs +4 -4
- package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +3 -3
- package/esm2022/eui-input-checkbox/eui-input-checkbox.module.mjs +4 -4
- package/esm2022/eui-input-group/eui-input-group.component.mjs +3 -3
- package/esm2022/eui-input-group/eui-input-group.module.mjs +4 -4
- package/esm2022/eui-input-number/eui-input-number.component.mjs +3 -3
- package/esm2022/eui-input-number/eui-input-number.module.mjs +4 -4
- package/esm2022/eui-input-number/eui-number-control.directive.mjs +5 -5
- package/esm2022/eui-input-radio/eui-input-radio.component.mjs +3 -3
- package/esm2022/eui-input-radio/eui-input-radio.module.mjs +4 -4
- package/esm2022/eui-input-text/eui-input-text.component.mjs +3 -3
- package/esm2022/eui-input-text/eui-input-text.module.mjs +4 -4
- package/esm2022/eui-label/eui-label.component.mjs +3 -3
- package/esm2022/eui-label/eui-label.module.mjs +4 -4
- package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +3 -3
- package/esm2022/eui-list/eui-list.component.mjs +3 -3
- package/esm2022/eui-list/eui-list.module.mjs +4 -4
- package/esm2022/eui-list/services/eui-list.service.mjs +3 -3
- package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -3
- package/esm2022/eui-menu/eui-menu.component.mjs +3 -3
- package/esm2022/eui-menu/eui-menu.module.mjs +4 -4
- package/esm2022/eui-message-box/eui-message-box.component.mjs +5 -5
- package/esm2022/eui-message-box/eui-message-box.module.mjs +4 -4
- package/esm2022/eui-message-box/services/eui-message-box.service.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.mjs +3 -3
- package/esm2022/eui-overlay/eui-overlay.component.mjs +6 -6
- package/esm2022/eui-page/components/eui-page-breadcrumb/eui-page-breadcrumb.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-column/eui-page-column.component.mjs +15 -15
- package/esm2022/eui-page/components/eui-page-columns/eui-page-columns.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-content/eui-page-content.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-footer/eui-page-footer.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-header/components/eui-page-header-action-items.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-header/components/eui-page-header-body.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-header/components/eui-page-header-sub-label.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-header/eui-page-header.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-hero-header/eui-page-hero-header.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-top-content/eui-page-top-content.component.mjs +3 -3
- package/esm2022/eui-page/eui-page.component.mjs +3 -3
- package/esm2022/eui-page/eui-page.module.mjs +4 -4
- package/esm2022/eui-paginator/eui-paginator.component.mjs +3 -3
- package/esm2022/eui-paginator/eui-paginator.module.mjs +4 -4
- package/esm2022/eui-popover/directives/eui-popover-arrow-position.directive.mjs +3 -3
- package/esm2022/eui-popover/eui-popover.component.mjs +3 -3
- package/esm2022/eui-popover/eui-popover.module.mjs +4 -4
- package/esm2022/eui-progress-bar/eui-progress-bar.component.mjs +3 -3
- package/esm2022/eui-progress-bar/eui-progress-bar.module.mjs +4 -4
- package/esm2022/eui-progress-circle/eui-progress-circle.component.mjs +6 -6
- package/esm2022/eui-select/eui-select-control.directive.mjs +5 -5
- package/esm2022/eui-select/eui-select-multiple.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select-mutli-option.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select-option.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select.component.mjs +3 -3
- package/esm2022/eui-select/eui-select.module.mjs +4 -4
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +3 -3
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.module.mjs +4 -4
- package/esm2022/eui-skeleton/eui-skeleton.component.mjs +3 -3
- package/esm2022/eui-skeleton/eui-skeleton.module.mjs +4 -4
- package/esm2022/eui-slide-toggle/eui-slide-toggle.component.mjs +3 -3
- package/esm2022/eui-slide-toggle/eui-slide-toggle.module.mjs +4 -4
- package/esm2022/eui-table/directives/eui-table-sticky-columns.directive.mjs +3 -3
- package/esm2022/eui-table/eui-table.component.mjs +3 -3
- package/esm2022/eui-table/eui-table.module.mjs +4 -4
- package/esm2022/eui-table/expandable-row/eui-table-expandable-row.component.mjs +3 -3
- package/esm2022/eui-table/filter/eui-table-filter.component.mjs +3 -3
- package/esm2022/eui-table/pipes/eui-table-highlight-filter.pipe.mjs +3 -3
- package/esm2022/eui-table/selectable-header/eui-table-selectable-header.component.mjs +3 -3
- package/esm2022/eui-table/selectable-row/eui-table-selectable-row.component.mjs +3 -3
- package/esm2022/eui-table/services/eui-table-selectable-row.service.mjs +3 -3
- package/esm2022/eui-table/services/eui-table-sort.service.mjs +3 -3
- package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +3 -3
- package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +3 -3
- package/esm2022/eui-tabs/eui-tab-content/eui-tab-content.component.mjs +3 -3
- package/esm2022/eui-tabs/eui-tab-label/eui-tab-label.component.mjs +5 -5
- package/esm2022/eui-tabs/eui-tabs.component.mjs +5 -5
- package/esm2022/eui-tabs/eui-tabs.module.mjs +4 -4
- package/esm2022/eui-textarea/auto-resize.directive.mjs +3 -3
- package/esm2022/eui-textarea/eui-textarea.component.mjs +4 -4
- package/esm2022/eui-textarea/eui-textarea.module.mjs +4 -4
- package/esm2022/eui-timebar/eui-timebar.component.mjs +6 -6
- package/esm2022/eui-timeline/eui-timeline-item.component.mjs +3 -3
- package/esm2022/eui-timeline/eui-timeline.component.mjs +3 -3
- package/esm2022/eui-timeline/eui-timeline.module.mjs +4 -4
- package/esm2022/eui-timepicker/eui-timepicker.component.mjs +3 -3
- package/esm2022/eui-timepicker/eui-timepicker.module.mjs +4 -4
- package/esm2022/eui-tree/eui-dropdown-tree.directive.mjs +6 -6
- package/esm2022/eui-tree/eui-tree-form-control.directive.mjs +8 -8
- package/esm2022/eui-tree/eui-tree.component.mjs +6 -6
- package/esm2022/eui-tree-list/eui-tree-list-item.component.mjs +9 -9
- package/esm2022/eui-tree-list/eui-tree-list.component.mjs +3 -3
- package/esm2022/eui-tree-list/eui-tree-list.module.mjs +4 -4
- package/esm2022/eui-tree-list/item-content/item-content.component.mjs +3 -3
- package/esm2022/eui-tree-list/toolbar/toolbar.component.mjs +5 -5
- package/esm2022/eui-wizard/eui-wizard-step.component.mjs +3 -3
- package/esm2022/eui-wizard/eui-wizard.component.mjs +3 -3
- package/esm2022/eui-wizard/eui-wizard.module.mjs +4 -4
- package/esm2022/eui-wizard/services/eui-wizard.service.mjs +3 -3
- package/esm2022/externals/charts/chart/chart.component.mjs +3 -3
- package/esm2022/externals/charts/eui-charts.module.mjs +4 -4
- package/esm2022/externals/eui-editor/counters/eui-editor-counters.component.mjs +3 -3
- package/esm2022/externals/eui-editor/directives/eui-editor-maxlength.directive.mjs +3 -3
- package/esm2022/externals/eui-editor/eui-editor.component.mjs +5 -5
- package/esm2022/externals/eui-editor/eui-editor.module.mjs +4 -4
- package/esm2022/externals/eui-editor/html-view/eui-editor-html-view.component.mjs +3 -3
- package/esm2022/externals/eui-editor/image-url-dialog/image-url-dialog.component.mjs +3 -3
- package/esm2022/externals/eui-editor/json-view/eui-editor-json-view.component.mjs +3 -3
- package/esm2022/externals/quill/loader.service.mjs +3 -3
- package/esm2022/externals/quill/quill-editor.component.mjs +7 -7
- package/esm2022/externals/quill/quill.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-footer/footer.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-footer/footer.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-header/header.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-header/header.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-body/sidebar-body.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-drawer/sidebar-drawer.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-top-message/top-message.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app.component.mjs +5 -5
- package/esm2022/layout/eui-app/eui-app.module.mjs +4 -4
- package/esm2022/layout/eui-breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/layout/eui-breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/layout/eui-breadcrumb/breadcrumb.service.mjs +3 -3
- package/esm2022/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.mjs +5 -5
- package/esm2022/layout/eui-breadcrumb/item/breadcrumb-item.component.mjs +3 -3
- package/esm2022/layout/eui-footer/footer.component.mjs +3 -3
- package/esm2022/layout/eui-footer/footer.module.mjs +4 -4
- package/esm2022/layout/eui-header/header-app/header-app.component.mjs +9 -9
- package/esm2022/layout/eui-header/header-app-name/header-app-name.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-app-name-logo/header-app-name-logo.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-app-subtitle/header-app-subtitle.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-environment/header-environment.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-logo/header-logo.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-right-content/header-right-content.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-user-profile/header-user-profile.component.mjs +3 -3
- package/esm2022/layout/eui-header/header.component.mjs +4 -4
- package/esm2022/layout/eui-header/header.module.mjs +4 -4
- package/esm2022/layout/eui-language-selector/language-selector.component.mjs +17 -17
- package/esm2022/layout/eui-language-selector/language-selector.module.mjs +4 -4
- package/esm2022/layout/eui-language-selector/modal-selector/modal-selector.component.mjs +4 -4
- package/esm2022/layout/eui-layout.module.mjs +4 -4
- package/esm2022/layout/eui-notifications/eui-notification-item.component.mjs +3 -3
- package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +3 -3
- package/esm2022/layout/eui-notifications/eui-notifications.module.mjs +4 -4
- package/esm2022/layout/eui-notifications-v2/eui-notification-item.component.mjs +3 -3
- package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +3 -3
- package/esm2022/layout/eui-notifications-v2/eui-notifications.module.mjs +4 -4
- package/esm2022/layout/eui-search/search.component.mjs +3 -3
- package/esm2022/layout/eui-search/search.module.mjs +4 -4
- package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.component.mjs +3 -3
- package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.module.mjs +4 -4
- package/esm2022/layout/eui-toolbar/toolbar-app/toolbar-app.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-center/toolbar-center.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-environment/toolbar-environment.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-item/toolbar-item.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-items/toolbar-items.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-logo/toolbar-logo.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar.component.mjs +4 -4
- package/esm2022/layout/eui-toolbar/toolbar.module.mjs +4 -4
- package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile-menu/user-profile-menu.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile-menu-item/user-profile-menu-item.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile.module.mjs +4 -4
- package/esm2022/pipes/eui-is-empty.pipe.mjs +6 -6
- package/esm2022/pipes/eui-truncate.pipe.mjs +6 -6
- package/esm2022/shared/base/base-states.directive.mjs +3 -3
- package/esm2022/shared/base/base.directive.mjs +3 -3
- package/esm2022/shared/input.directive.mjs +3 -3
- package/externals/eui-editor/eui-editor.component.d.ts +1 -1
- package/fesm2022/eui-components-layout.mjs +102 -100
- package/fesm2022/eui-components-layout.mjs.map +3 -3
- package/layout/eui-language-selector/language-selector.component.d.ts +5 -5
- package/layout/eui-language-selector/language-selector.component.d.ts.map +1 -1
- package/package.json +3 -3
@@ -74,8 +74,8 @@ export class EuiSlideToggleComponent extends BaseDirective {
|
|
74
74
|
registerOnTouched(fn) {
|
75
75
|
this.onTouch = fn;
|
76
76
|
}
|
77
|
-
|
78
|
-
|
77
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiSlideToggleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
78
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EuiSlideToggleComponent, selector: "eui-slide-toggle", inputs: { id: "id", iconSvgNameOn: "iconSvgNameOn", iconSvgNameOff: "iconSvgNameOff", iconSvgFillColorOn: "iconSvgFillColorOn", iconSvgFillColorOff: "iconSvgFillColorOff", isChecked: "isChecked", disabled: "disabled" }, outputs: { slideToggleChange: "slideToggleChange" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"eui-slide-toggle__container\"\n [tabindex]=\"this.disabled ? '-1' : '0'\"\n [class.eui-slide-toggle__container--disabled]=\"disabled\"\n (keydown.Enter)=\"toggle()\"\n (click)=\"toggle()\">\n <input\n class=\"eui-u-display-hidden\"\n [formControl]=\"checkboxControl\"\n [id]=\"id\"\n type=\"checkbox\"\n role=\"switch\"\n [attr.checked]=\"isChecked\"\n (focusout)=\"onFocusOut()\" />\n <div\n class=\"eui-slide-toggle__track\"\n [class.eui-slide-toggle__track--off]=\"!isChecked\"\n [class.eui-slide-toggle__track--on]=\"isChecked\"></div>\n <div\n class=\"eui-slide-toggle__handler\"\n [@onOff]=\"isChecked ? 'on' : 'off'\"\n [class.eui-slide-toggle__handler--off]=\"!isChecked\"\n [class.eui-slide-toggle__handler--on]=\"isChecked\">\n\n <ng-container *ngIf=\"iconSvgNameOn && iconSvgNameOff\">\n <eui-icon-svg *ngIf=\"isChecked\" icon=\"{{iconSvgNameOn}}\" fillColor=\"{{iconSvgFillColorOn}}\" size=\"s\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!isChecked\" icon=\"{{iconSvgNameOff}}\" fillColor=\"{{iconSvgFillColorOff}}\" size=\"s\"></eui-icon-svg>\n </ng-container>\n </div>\n</div>\n", styles: [".eui-slide-toggle{align-items:center;display:inline-flex;position:relative}.eui-slide-toggle:not(.eui-slide-toggle__container--disabled){cursor:pointer}.eui-slide-toggle .eui-slide-toggle__container--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-base-disabled-opacity)}.eui-slide-toggle .eui-slide-toggle__container{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) 0;position:relative}.eui-slide-toggle .eui-slide-toggle__container:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus)!important;outline-offset:-2px!important;transition:none!important}.eui-slide-toggle .eui-slide-toggle__container:focus-visible:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:-2px!important;transition:none!important}.eui-slide-toggle .eui-slide-toggle__container [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:-2px!important;transition:none!important}.eui-slide-toggle .eui-slide-toggle__container .eui-slide-toggle__track{background-color:var(--eui-base-color-grey-15);border-radius:2rem;height:var(--eui-base-spacing-m);width:calc(var(--eui-base-spacing-xl) + var(--eui-base-spacing-m))}.eui-slide-toggle .eui-slide-toggle__container .eui-slide-toggle__track.eui-slide-toggle__track--on{background-color:var(--eui-base-color-success-75)}.eui-slide-toggle .eui-slide-toggle__container .eui-slide-toggle__handler{background-color:var(--eui-base-color-white);border-radius:50%;box-shadow:var(--eui-base-shadow-3);position:absolute;height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-xs));width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-xs))}.eui-slide-toggle .eui-slide-toggle__container .eui-slide-toggle__handler--off{left:0rem}.eui-slide-toggle .eui-slide-toggle__container .eui-slide-toggle__handler--on{left:var(--eui-base-spacing-m)}.eui-slide-toggle--size-s{transform:scale(.75)}.eui-slide-toggle--size-m{transform:scale(1)}.eui-slide-toggle--size-l{transform:scale(1.25)}.eui-slide-toggle--size-xl{transform:scale(1.5)}.eui-slide-toggle--primary .eui-slide-toggle__container .eui-slide-toggle__track.eui-slide-toggle__track--on{background-color:var(--eui-base-color-primary-50)}.eui-slide-toggle--primary .eui-slide-toggle__container .eui-slide-toggle__handler{background-color:var(--eui-base-color-primary-100)}.eui-slide-toggle--info .eui-slide-toggle__container .eui-slide-toggle__track.eui-slide-toggle__track--on{background-color:var(--eui-base-color-info-50)}.eui-slide-toggle--info .eui-slide-toggle__container .eui-slide-toggle__handler{background-color:var(--eui-base-color-info-100)}.eui-slide-toggle--success .eui-slide-toggle__container .eui-slide-toggle__track.eui-slide-toggle__track--on{background-color:var(--eui-base-color-success-50)}.eui-slide-toggle--success .eui-slide-toggle__container .eui-slide-toggle__handler{background-color:var(--eui-base-color-success-100)}.eui-slide-toggle--warning .eui-slide-toggle__container .eui-slide-toggle__track.eui-slide-toggle__track--on{background-color:var(--eui-base-color-warning-50)}.eui-slide-toggle--warning .eui-slide-toggle__container .eui-slide-toggle__handler{background-color:var(--eui-base-color-warning-100)}.eui-slide-toggle--danger .eui-slide-toggle__container .eui-slide-toggle__track.eui-slide-toggle__track--on{background-color:var(--eui-base-color-danger-50)}.eui-slide-toggle--danger .eui-slide-toggle__container .eui-slide-toggle__handler{background-color:var(--eui-base-color-danger-100)}.eui-slide-toggle--accent .eui-slide-toggle__container .eui-slide-toggle__track.eui-slide-toggle__track--on{background-color:var(--eui-base-color-accent-50)}.eui-slide-toggle--accent .eui-slide-toggle__container .eui-slide-toggle__handler{background-color:var(--eui-base-color-accent-100)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }], animations: [onOff], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
79
79
|
}
|
80
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiSlideToggleComponent, decorators: [{
|
81
81
|
type: Component,
|
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
104
104
|
type: HostBinding,
|
105
105
|
args: ['class']
|
106
106
|
}] } });
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXNsaWRlLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktc2xpZGUtdG9nZ2xlL2V1aS1zbGlkZS10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXNsaWRlLXRvZ2dsZS9ldWktc2xpZGUtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosSUFBSSxFQUNKLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUF3QixXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBVTVDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBU3RELElBQ0ksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBbUI7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFtQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFHRCxJ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RixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgU2VsZixcbiAgICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgdW5pcXVlSWQgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuXG5pbXBvcnQgeyBvbk9mZiB9IGZyb20gJy4vYW5pbWF0aW9ucy9vbi1vZmYnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXNsaWRlLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICdldWktc2xpZGUtdG9nZ2xlJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvaW5kZXguc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtvbk9mZl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpU2xpZGVUb2dnbGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBJbnB1dCgpIGlkID0gYGV1aS1zbGlkZS10b2dnbGUtJHt1bmlxdWVJZCgpfWA7XG4gICAgQElucHV0KCkgaWNvblN2Z05hbWVPbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb25TdmdOYW1lT2ZmOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvblN2Z0ZpbGxDb2xvck9uID0gJ2dyZXktMTAwJztcbiAgICBASW5wdXQoKSBpY29uU3ZnRmlsbENvbG9yT2ZmID0gJ2dyZXktMTAwJztcblxuICAgIHB1YmxpYyBjaGVja2JveENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBAT3V0cHV0KCkgc2xpZGVUb2dnbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDaGVja2VkO1xuICAgIH1cbiAgICBzZXQgaXNDaGVja2VkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNDaGVja2VkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDaGVja2VkID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdldWktc2xpZGUtdG9nZ2xlJyldLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNDaGVja2VkID0gIXRoaXMuaXNDaGVja2VkO1xuICAgICAgICAgICAgdGhpcy5zbGlkZVRvZ2dsZUNoYW5nZS5lbWl0KHRoaXMuaXNDaGVja2VkKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5pc0NoZWNrZWQpO1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Gb2N1c091dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4gey8qIGVtcHR5ICovfTtcblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgb25Ub3VjaDogYW55ID0gKCkgPT4gey8qIGVtcHR5ICovfTtcbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImV1aS1zbGlkZS10b2dnbGVfX2NvbnRhaW5lclwiXG4gICAgW3RhYmluZGV4XT1cInRoaXMuZGlzYWJsZWQgPyAnLTEnIDogJzAnXCJcbiAgICBbY2xhc3MuZXVpLXNsaWRlLXRvZ2dsZV9fY29udGFpbmVyLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGtleWRvd24uRW50ZXIpPVwidG9nZ2xlKClcIlxuICAgIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImV1aS11LWRpc3BsYXktaGlkZGVuXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNoZWNrYm94Q29udHJvbFwiXG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIHJvbGU9XCJzd2l0Y2hcIlxuICAgICAgICBbYXR0ci5jaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIiAvPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWktc2xpZGUtdG9nZ2xlX190cmFja1wiXG4gICAgICAgIFtjbGFzcy5ldWktc2xpZGUtdG9nZ2xlX190cmFjay0tb2ZmXT1cIiFpc0NoZWNrZWRcIlxuICAgICAgICBbY2xhc3MuZXVpLXNsaWRlLXRvZ2dsZV9fdHJhY2stLW9uXT1cImlzQ2hlY2tlZFwiPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWktc2xpZGUtdG9nZ2xlX19oYW5kbGVyXCJcbiAgICAgICAgW0Bvbk9mZl09XCJpc0NoZWNrZWQgPyAnb24nIDogJ29mZidcIlxuICAgICAgICBbY2xhc3MuZXVpLXNsaWRlLXRvZ2dsZV9faGFuZGxlci0tb2ZmXT1cIiFpc0NoZWNrZWRcIlxuICAgICAgICBbY2xhc3MuZXVpLXNsaWRlLXRvZ2dsZV9faGFuZGxlci0tb25dPVwiaXNDaGVja2VkXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImljb25TdmdOYW1lT24gJiYgaWNvblN2Z05hbWVPZmZcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgKm5nSWY9XCJpc0NoZWNrZWRcIiBpY29uPVwie3tpY29uU3ZnTmFtZU9ufX1cIiBmaWxsQ29sb3I9XCJ7e2ljb25TdmdGaWxsQ29sb3JPbn19XCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgKm5nSWY9XCIhaXNDaGVja2VkXCIgaWNvbj1cInt7aWNvblN2Z05hbWVPZmZ9fVwiIGZpbGxDb2xvcj1cInt7aWNvblN2Z0ZpbGxDb2xvck9mZn19XCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXNsaWRlLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktc2xpZGUtdG9nZ2xlL2V1aS1zbGlkZS10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXNsaWRlLXRvZ2dsZS9ldWktc2xpZGUtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosSUFBSSxFQUNKLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUF3QixXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBVTVDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBU3RELElBQ0ksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBbUI7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFtQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFHRCxJ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RixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgU2VsZixcbiAgICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgdW5pcXVlSWQgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuXG5pbXBvcnQgeyBvbk9mZiB9IGZyb20gJy4vYW5pbWF0aW9ucy9vbi1vZmYnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXNsaWRlLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICdldWktc2xpZGUtdG9nZ2xlJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvaW5kZXguc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtvbk9mZl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpU2xpZGVUb2dnbGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBJbnB1dCgpIGlkID0gYGV1aS1zbGlkZS10b2dnbGUtJHt1bmlxdWVJZCgpfWA7XG4gICAgQElucHV0KCkgaWNvblN2Z05hbWVPbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb25TdmdOYW1lT2ZmOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvblN2Z0ZpbGxDb2xvck9uID0gJ2dyZXktMTAwJztcbiAgICBASW5wdXQoKSBpY29uU3ZnRmlsbENvbG9yT2ZmID0gJ2dyZXktMTAwJztcblxuICAgIHB1YmxpYyBjaGVja2JveENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBAT3V0cHV0KCkgc2xpZGVUb2dnbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDaGVja2VkO1xuICAgIH1cbiAgICBzZXQgaXNDaGVja2VkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNDaGVja2VkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDaGVja2VkID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdldWktc2xpZGUtdG9nZ2xlJyldLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNDaGVja2VkID0gIXRoaXMuaXNDaGVja2VkO1xuICAgICAgICAgICAgdGhpcy5zbGlkZVRvZ2dsZUNoYW5nZS5lbWl0KHRoaXMuaXNDaGVja2VkKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5pc0NoZWNrZWQpO1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Gb2N1c091dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4gey8qIGVtcHR5ICovfTtcblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgb25Ub3VjaDogYW55ID0gKCkgPT4gey8qIGVtcHR5ICovfTtcbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImV1aS1zbGlkZS10b2dnbGVfX2NvbnRhaW5lclwiXG4gICAgW3RhYmluZGV4XT1cInRoaXMuZGlzYWJsZWQgPyAnLTEnIDogJzAnXCJcbiAgICBbY2xhc3MuZXVpLXNsaWRlLXRvZ2dsZV9fY29udGFpbmVyLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGtleWRvd24uRW50ZXIpPVwidG9nZ2xlKClcIlxuICAgIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImV1aS11LWRpc3BsYXktaGlkZGVuXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNoZWNrYm94Q29udHJvbFwiXG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIHJvbGU9XCJzd2l0Y2hcIlxuICAgICAgICBbYXR0ci5jaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIiAvPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWktc2xpZGUtdG9nZ2xlX190cmFja1wiXG4gICAgICAgIFtjbGFzcy5ldWktc2xpZGUtdG9nZ2xlX190cmFjay0tb2ZmXT1cIiFpc0NoZWNrZWRcIlxuICAgICAgICBbY2xhc3MuZXVpLXNsaWRlLXRvZ2dsZV9fdHJhY2stLW9uXT1cImlzQ2hlY2tlZFwiPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWktc2xpZGUtdG9nZ2xlX19oYW5kbGVyXCJcbiAgICAgICAgW0Bvbk9mZl09XCJpc0NoZWNrZWQgPyAnb24nIDogJ29mZidcIlxuICAgICAgICBbY2xhc3MuZXVpLXNsaWRlLXRvZ2dsZV9faGFuZGxlci0tb2ZmXT1cIiFpc0NoZWNrZWRcIlxuICAgICAgICBbY2xhc3MuZXVpLXNsaWRlLXRvZ2dsZV9faGFuZGxlci0tb25dPVwiaXNDaGVja2VkXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImljb25TdmdOYW1lT24gJiYgaWNvblN2Z05hbWVPZmZcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgKm5nSWY9XCJpc0NoZWNrZWRcIiBpY29uPVwie3tpY29uU3ZnTmFtZU9ufX1cIiBmaWxsQ29sb3I9XCJ7e2ljb25TdmdGaWxsQ29sb3JPbn19XCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgKm5nSWY9XCIhaXNDaGVja2VkXCIgaWNvbj1cInt7aWNvblN2Z05hbWVPZmZ9fVwiIGZpbGxDb2xvcj1cInt7aWNvblN2Z0ZpbGxDb2xvck9mZn19XCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
@@ -5,9 +5,9 @@ import { EuiSlideToggleComponent } from './eui-slide-toggle.component';
|
|
5
5
|
import { EuiIconModule } from '@eui/components/eui-icon';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
export class EuiSlideToggleModule {
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiSlideToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiSlideToggleModule, declarations: [EuiSlideToggleComponent], imports: [CommonModule, ReactiveFormsModule, EuiIconModule], exports: [EuiSlideToggleComponent] }); }
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiSlideToggleModule, imports: [CommonModule, ReactiveFormsModule, EuiIconModule] }); }
|
11
11
|
}
|
12
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiSlideToggleModule, decorators: [{
|
13
13
|
type: NgModule,
|
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
17
17
|
exports: [EuiSlideToggleComponent],
|
18
18
|
}]
|
19
19
|
}] });
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXNsaWRlLXRvZ2dsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktc2xpZGUtdG9nZ2xlL2V1aS1zbGlkZS10b2dnbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFPekQsTUFBTSxPQUFPLG9CQUFvQjtxSEFBcEIsb0JBQW9CO3NIQUFwQixvQkFBb0IsaUJBSGQsdUJBQXVCLGFBRDVCLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLGFBRWhELHVCQUF1QjtzSEFFeEIsb0JBQW9CLFlBSm5CLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhOztrR0FJakQsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUM7b0JBQzNELFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEV1aVNsaWRlVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktc2xpZGUtdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlJY29uTW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1pY29uJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBFdWlJY29uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFdWlTbGlkZVRvZ2dsZUNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0V1aVNsaWRlVG9nZ2xlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpU2xpZGVUb2dnbGVNb2R1bGUge31cbiJdfQ==
|
@@ -4,8 +4,8 @@ export class EuiTableStickyColumnDirective {
|
|
4
4
|
get stickyClass() {
|
5
5
|
return true;
|
6
6
|
}
|
7
|
-
|
8
|
-
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiTableStickyColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EuiTableStickyColumnDirective, selector: "[isStickyColumn]", host: { properties: { "class.eui-table__col--sticky": "this.stickyClass" } }, ngImport: i0 }); }
|
9
9
|
}
|
10
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiTableStickyColumnDirective, decorators: [{
|
11
11
|
type: Directive,
|
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
17
17
|
type: HostBinding,
|
18
18
|
args: ['class.eui-table__col--sticky']
|
19
19
|
}] } });
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYmxlLXN0aWNreS1jb2x1bW5zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V1aS10YWJsZS9kaXJlY3RpdmVzL2V1aS10YWJsZS1zdGlja3ktY29sdW1ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXZELE1BQU0sT0FBTyw2QkFBNkI7SUFDdEMsSUFBaUQsV0FBVztRQUN4RCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO3FIQUhRLDZCQUE2Qjt5R0FBN0IsNkJBQTZCOztrR0FBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0I7OEJBRW9ELFdBQVc7c0JBQTNELFdBQVc7dUJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2lzU3RpY2t5Q29sdW1uXScsXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRhYmxlU3RpY2t5Q29sdW1uRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV1aS10YWJsZV9fY29sLS1zdGlja3knKSBnZXQgc3RpY2t5Q2xhc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
|
@@ -589,8 +589,8 @@ export class EuiTableComponent extends BaseDirective {
|
|
589
589
|
getObjProp(obj, prop) {
|
590
590
|
return prop ? prop.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), obj || self) : null;
|
591
591
|
}
|
592
|
-
|
593
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EuiTableComponent, selector: "eui-table, table[euiTable]", inputs: { rows: "rows", propId: "propId", paginator: "paginator", filter: "filter", preselectedRows: "preselectedRows", loading: "loading", asyncTable: "asyncTable", paginable: "paginable", euiTableResponsive: "euiTableResponsive", euiTableFixedLayout: "euiTableFixedLayout", euiTableDraggable: "euiTableDraggable", euiTableCards: "euiTableCards", euiTableBordered: "euiTableBordered", euiTableCompact: "euiTableCompact", hasStickyHeader: "hasStickyHeader", hasStickyColumns: "hasStickyColumns", isSelectOnlyVisibleRows: "isSelectOnlyVisibleRows", isColsOrderable: "isColsOrderable", isHoverable: "isHoverable" }, outputs: { selectedRows: "selectedRows", sortChange: "sortChange", multiSortChange: "multiSortChange" }, host: { properties: { "class": "this.cssClasses", "class.eui-table__loading": "this.hasLoading" } }, providers: [EuiTableSortService, EuiTableSelectableRowService], queries: [{ propertyName: "templates", predicate: EuiTemplateDirective }], viewQueries: [{ propertyName: "theadRef", first: true, predicate: ["theadRef"], descendants: true }, { propertyName: "tbodyRef", first: true, predicate: ["tbodyRef"], descendants: true }, { propertyName: "tfootRef", first: true, predicate: ["tfootRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead #theadRef *ngIf=\"headerTemplate\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n</thead>\n<tbody #tbodyRef *ngIf=\"bodyTemplate\">\n <ng-container *ngFor=\"let row of rowsRendered; let i = index; trackBy: trackByFn\">\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i + page * pageSize }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"emptyMessageTemplate && rowsRendered.length === 0\">\n <ng-template [ngTemplateOutlet]=\"emptyMessageTemplate\"></ng-template>\n </ng-container>\n</tbody>\n<tfoot #tfootRef *ngIf=\"footerTemplate\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n</tfoot>\n", styles: [".eui-table__scrollable-wrapper{overflow:auto}.eui-table__scrollable-wrapper::-webkit-scrollbar{display:inherit;height:10px;width:10px;background-color:var(--eui-base-color-grey-5)}.eui-table__scrollable-wrapper::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-table__scrollable-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-table__scrollable-wrapper::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-table__orderable-cols-preview{background-color:var(--eui-base-color-grey-25);border-color:transparent;padding:calc(var(--eui-base-spacing-m) - 2px) var(--eui-base-spacing-s);cursor:move;opacity:.7}.eui-table{--eui-table-compact-scale-factor: .95;--eui-table-background-color: var(--eui-base-color-white);--eui-table-text-color: var(--eui-base-color-text);--eui-table-selected-row-background-color: var(--eui-base-color-primary-10);--eui-table-highlighted-background-color: var(--eui-base-color-accent-100);--eui-table-hover-background-color: var(--eui-base-color-primary-10);--eui-table-bordered-color: var(--eui-base-color-grey-15);--eui-table-loading-position: 50%;background-color:var(--eui-table-background-color);border-collapse:collapse;border-spacing:0;color:var(--eui-table-text-color);display:table;overflow:auto;-webkit-overflow-scrolling:touch;position:relative;width:auto}.eui-table thead>tr>th,.eui-table tbody>tr>td,.eui-table tfoot>tr>td{vertical-align:middle}.eui-table--bordered{box-shadow:var(--eui-base-shadow-1)}.eui-table--bordered td,.eui-table--bordered th{border:1px solid var(--eui-table-bordered-color)}.eui-table--compact thead th,.eui-table--compact thead tr{font-size:calc(var(--eui-base-font-size) * var(--eui-table-compact-scale-factor))!important;padding:var(--eui-base-spacing-s)!important}.eui-table--compact tbody tr{height:calc(2 * var(--eui-base-spacing-m))!important}.eui-table--compact tbody tr td{font-size:calc(var(--eui-base-font-size) * var(--eui-table-compact-scale-factor))!important;padding:0 var(--eui-base-spacing-s)!important}.eui-table--responsive{width:100%}.eui-table--fixed-layout{table-layout:fixed}.eui-table--highlighted{background-color:var(--eui-table-highlighted-background-color);text-decoration:none}.eui-table--hoverable tbody tr:hover,.eui-table--hoverable tbody tr:hover td{background-color:var(--eui-table-hover-background-color)!important}.eui-table--hoverable tbody tr:hover td:hover{background-color:var(--eui-base-color-primary-25)!important}.eui-table--cols-orderable .cdk-drag-placeholder{background-color:var(--eui-base-color-white);color:var(--eui-base-color-info-100);cursor:move;opacity:1}.eui-table--cols-orderable tr{display:table-row}.eui-table--cols-orderable tr th{cursor:move}.eui-table .actionsColumn,.eui-table__actions-column{text-align:center;width:calc(15 * var(--eui-base-spacing-m))}.eui-table.eui-table__loading:before{animation:.8s linear infinite spin;border:8px solid transparent;border-radius:50%;border-top-color:var(--eui-base-color-primary-100);content:\"\";display:block;height:80px;left:50%;margin:-40px 0 0 -40px;position:absolute;top:var(--eui-table-loading-position);width:80px;z-index:1000001}.eui-table.eui-table__loading tbody{opacity:var(--eui-base-disabled-opacity)}.eui-table thead tr.eui-table__columns-filter th{background-color:var(--eui-base-color-grey-5);position:relative;font:normal normal 400 1rem/1.75rem var(--eui-base-font-family)}.eui-table thead tr th{background-color:var(--eui-base-color-grey-10);padding:var(--eui-base-spacing-m) var(--eui-base-spacing-s);text-align:left;font:normal normal 400 1rem/1.75rem var(--eui-base-font-family);font-weight:700}.eui-table thead tr th .eui-resizable .eui-resizable-icon__container{transform:translateY(calc(var(--eui-base-spacing-l) + 2px + 2px))}.eui-table thead tr th.eui-table__sortable-col .eui-table__sortable-col-content{align-items:center;display:inline-flex;position:relative;vertical-align:middle;white-space:nowrap}.eui-table thead tr th.eui-table__sortable-col--disabled{cursor:default}.eui-table thead tr th .eui-table__sortable-icon-button{margin-left:var(--eui-base-spacing-2xs)}.eui-table thead tr th.eui-table__cell-select{color:var(--eui-base-color-grey-75);width:auto}.eui-table thead tr th.eui-table__cell-select .eui-table__cell-select-checkbox-container{display:flex}.eui-table thead tr th.eui-table__cell-select .eui-table__cell-select--indeterminated{position:absolute;right:50%;top:var(--eui-base-spacing-s);transform:translate(50%)}.eui-table tbody tr{border-top:1px solid var(--eui-base-color-grey-15);height:calc(3 * var(--eui-base-spacing-m))}.eui-table tbody tr.eui-table__row--selected,.eui-table tbody tr.eui-table__row--selected td{background-color:var(--eui-table-selected-row-background-color)!important}.eui-table tbody tr:not(.eui-table-expandable-row):nth-child(odd){background-color:var(--eui-base-color-grey-2)}.eui-table tbody tr:not(.eui-table-expandable-row):nth-child(odd) td{background-color:var(--eui-base-color-grey-2)}.eui-table tbody tr td{padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);vertical-align:middle}.eui-table tbody tr td.eui-table__cell-select{color:var(--eui-base-color-grey-75);width:auto}.eui-table tbody tr td.eui-table__cell-select .eui-table__cell-select-checkbox-container{display:flex}.eui-table tbody tr:nth-of-type(odd){background-color:var(--eui-base-color-white)}.eui-table tbody tr:nth-of-type(2n){background-color:var(--eui-base-color-grey-5)}.eui-table tbody tr:nth-of-type(2n) td{background-color:var(--eui-base-color-grey-5)}.eui-table tfoot tr{border-bottom:1px solid var(--eui-base-color-grey-15);border-top:1px solid var(--eui-base-color-grey-15)}.eui-table tfoot tr td{padding:var(--eui-base-spacing-s);vertical-align:middle}.eui-table__sticky-container{overflow:auto}.eui-table__sticky-container::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-table__sticky-container::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-table__sticky-container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-table__sticky-container::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-table--sticky-header thead tr th{position:sticky;top:0;z-index:8}.eui-table--sticky-columns .eui-table__col--sticky{position:sticky}.eui-table--sticky-columns th.eui-table__col--sticky{z-index:9}.eui-table--sticky-columns th.eui-table__col--sticky.eui-table__col--sticky-shadowed-first{box-shadow:inset -5px 0 8px -8px #0003}.eui-table--sticky-columns th.eui-table__col--sticky.eui-table__col--sticky-shadowed-last{box-shadow:inset 5px 0 8px -8px #0003}.eui-table--sticky-columns td.eui-table__col--sticky{z-index:8}.eui-table--sticky-columns td.eui-table__col--sticky.eui-table__col--sticky-shadowed-first{box-shadow:inset -5px 0 8px -8px #0003}.eui-table--sticky-columns td.eui-table__col--sticky.eui-table__col--sticky-shadowed-last{box-shadow:inset 5px 0 8px -8px #0003}@media screen and (max-width: 767px){.eui-table:not(.eui-table-cards).eui-table--responsive{width:100%!important}.eui-table:not(.eui-table-cards).eui-table--responsive thead,.eui-table:not(.eui-table-cards).eui-table--responsive tbody,.eui-table:not(.eui-table-cards).eui-table--responsive tfoot,.eui-table:not(.eui-table-cards).eui-table--responsive th,.eui-table:not(.eui-table-cards).eui-table--responsive td,.eui-table:not(.eui-table-cards).eui-table--responsive tr{display:block}.eui-table:not(.eui-table-cards).eui-table--responsive thead tr{left:-9999px;position:absolute;top:-9999px}.eui-table:not(.eui-table-cards).eui-table--responsive tr{height:auto}.eui-table:not(.eui-table-cards).eui-table--responsive td{border:none;border-bottom:1px solid var(--eui-base-color-grey-10);padding-left:50%;position:relative;text-align:left!important}.eui-table:not(.eui-table-cards).eui-table--responsive td:before{color:var(--eui-base-color-grey-80);content:attr(data-col-label);left:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xs);position:absolute;width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:normal normal 400 1rem/1.75rem var(--eui-base-font-family);font-weight:700}.eui-table:not(.eui-table-cards) .actionsColumn,.eui-table:not(.eui-table-cards) .actions-column{justify-content:flex-start;text-align:left;width:100%}.eui-table__sticky-container{height:auto!important;width:auto!important}.eui-table--sticky-columns th,.eui-table--sticky-columns td,.eui-table--sticky-columns th .eui-table__col--sticky,.eui-table--sticky-columns td .eui-table__col--sticky{width:auto;z-index:auto}.eui-table--sticky-columns th .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table--sticky-columns th .eui-table__col--sticky.eui-table__col--sticky-shadowed-last,.eui-table--sticky-columns td .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table--sticky-columns td .eui-table__col--sticky.eui-table__col--sticky-shadowed-last{box-shadow:none!important}.eui-table--sticky-columns tfoot tr td:empty{display:none!important}}.eui-table__filter{align-items:center;display:flex;justify-content:flex-end;position:relative}.eui-table__filter--responsive{width:100%}.eui-table__filter-input{padding-left:var(--eui-base-spacing-2xl)!important}.eui-table__filter-search-icon{left:var(--eui-base-spacing-xs);position:absolute;top:calc(var(--eui-base-spacing-xs) + 2px)}@media screen and (max-width: 767px){.eui-table__filter--responsive{display:block;width:100%}}.eui-table__draggable-preview--no-preview.cdk-drag-preview{display:none}.eui-table--draggable tr.eui-table__draggable-preview--no-placeholder{opacity:1}.eui-table--draggable tr:hover{background-color:var(--eui-base-color-accent-5)}.eui-table--draggable td .cdk-drop-list{flex-direction:column}.eui-table-cards{background-color:transparent;display:flex;flex-direction:column;overflow:hidden;width:100%}.eui-table-cards thead{width:100%}.eui-table-cards thead tr{align-items:center;height:auto}.eui-table-cards thead tr th{position:relative;vertical-align:middle;width:100%}.eui-table-cards thead tr th.eui-table__cell-select{padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);width:auto}.eui-table-cards thead tr th.eui-table__cell-select .eui-table__cell-select-checkbox-container{display:flex}.eui-table-cards tbody{width:100%}.eui-table-cards tbody tr{align-items:center;border-top:0;display:flex;height:auto;width:100%}.eui-table-cards tbody tr.eui-table__row--selected .eui-card:first-child{--eui-card-header-background-color: var(--eui-table-selected-row-background-color)}.eui-table-cards tbody tr td{position:relative;vertical-align:middle;width:100%}.eui-table-cards tbody tr td.eui-table__cell-select{padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);width:auto}.eui-table-cards tbody tr td.eui-table__cell-select .eui-table__cell-select-checkbox-container{display:flex}.eui-table-cards tbody tr:hover{background-color:transparent}.eui-table-cards tbody tr:not(.eui-table-expandable-row):nth-child(odd){background-color:transparent}.eui-table-cards tbody tr:nth-of-type(2n){background-color:transparent}.eui-table-cards tbody tr:nth-of-type(2n):hover:not(.eui-table__row--selected){background-color:transparent}.eui-table-cards tbody tr:nth-of-type(odd):hover:not(.eui-table__row--selected){background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
592
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiTableComponent, deps: [{ token: i1.EuiTableSortService }, { token: i0.ChangeDetectorRef }, { token: i2.EuiTableSelectableRowService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
593
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EuiTableComponent, selector: "eui-table, table[euiTable]", inputs: { rows: "rows", propId: "propId", paginator: "paginator", filter: "filter", preselectedRows: "preselectedRows", loading: "loading", asyncTable: "asyncTable", paginable: "paginable", euiTableResponsive: "euiTableResponsive", euiTableFixedLayout: "euiTableFixedLayout", euiTableDraggable: "euiTableDraggable", euiTableCards: "euiTableCards", euiTableBordered: "euiTableBordered", euiTableCompact: "euiTableCompact", hasStickyHeader: "hasStickyHeader", hasStickyColumns: "hasStickyColumns", isSelectOnlyVisibleRows: "isSelectOnlyVisibleRows", isColsOrderable: "isColsOrderable", isHoverable: "isHoverable" }, outputs: { selectedRows: "selectedRows", sortChange: "sortChange", multiSortChange: "multiSortChange" }, host: { properties: { "class": "this.cssClasses", "class.eui-table__loading": "this.hasLoading" } }, providers: [EuiTableSortService, EuiTableSelectableRowService], queries: [{ propertyName: "templates", predicate: EuiTemplateDirective }], viewQueries: [{ propertyName: "theadRef", first: true, predicate: ["theadRef"], descendants: true }, { propertyName: "tbodyRef", first: true, predicate: ["tbodyRef"], descendants: true }, { propertyName: "tfootRef", first: true, predicate: ["tfootRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead #theadRef *ngIf=\"headerTemplate\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n</thead>\n<tbody #tbodyRef *ngIf=\"bodyTemplate\">\n <ng-container *ngFor=\"let row of rowsRendered; let i = index; trackBy: trackByFn\">\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i + page * pageSize }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"emptyMessageTemplate && rowsRendered.length === 0\">\n <ng-template [ngTemplateOutlet]=\"emptyMessageTemplate\"></ng-template>\n </ng-container>\n</tbody>\n<tfoot #tfootRef *ngIf=\"footerTemplate\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n</tfoot>\n", styles: [".eui-table__scrollable-wrapper{overflow:auto}.eui-table__scrollable-wrapper::-webkit-scrollbar{display:inherit;height:10px;width:10px;background-color:var(--eui-base-color-grey-5)}.eui-table__scrollable-wrapper::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-table__scrollable-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-table__scrollable-wrapper::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-table__orderable-cols-preview{background-color:var(--eui-base-color-grey-25);border-color:transparent;padding:calc(var(--eui-base-spacing-m) - 2px) var(--eui-base-spacing-s);cursor:move;opacity:.7}.eui-table{--eui-table-compact-scale-factor: .95;--eui-table-background-color: var(--eui-base-color-white);--eui-table-text-color: var(--eui-base-color-text);--eui-table-selected-row-background-color: var(--eui-base-color-primary-10);--eui-table-highlighted-background-color: var(--eui-base-color-accent-100);--eui-table-hover-background-color: var(--eui-base-color-primary-10);--eui-table-bordered-color: var(--eui-base-color-grey-15);--eui-table-loading-position: 50%;background-color:var(--eui-table-background-color);border-collapse:collapse;border-spacing:0;color:var(--eui-table-text-color);display:table;overflow:auto;-webkit-overflow-scrolling:touch;position:relative;width:auto}.eui-table thead>tr>th,.eui-table tbody>tr>td,.eui-table tfoot>tr>td{vertical-align:middle}.eui-table--bordered{box-shadow:var(--eui-base-shadow-1)}.eui-table--bordered td,.eui-table--bordered th{border:1px solid var(--eui-table-bordered-color)}.eui-table--compact thead th,.eui-table--compact thead tr{font-size:calc(var(--eui-base-font-size) * var(--eui-table-compact-scale-factor))!important;padding:var(--eui-base-spacing-s)!important}.eui-table--compact tbody tr{height:calc(2 * var(--eui-base-spacing-m))!important}.eui-table--compact tbody tr td{font-size:calc(var(--eui-base-font-size) * var(--eui-table-compact-scale-factor))!important;padding:0 var(--eui-base-spacing-s)!important}.eui-table--responsive{width:100%}.eui-table--fixed-layout{table-layout:fixed}.eui-table--highlighted{background-color:var(--eui-table-highlighted-background-color);text-decoration:none}.eui-table--hoverable tbody tr:hover,.eui-table--hoverable tbody tr:hover td{background-color:var(--eui-table-hover-background-color)!important}.eui-table--hoverable tbody tr:hover td:hover{background-color:var(--eui-base-color-primary-25)!important}.eui-table--cols-orderable .cdk-drag-placeholder{background-color:var(--eui-base-color-white);color:var(--eui-base-color-info-100);cursor:move;opacity:1}.eui-table--cols-orderable tr{display:table-row}.eui-table--cols-orderable tr th{cursor:move}.eui-table .actionsColumn,.eui-table__actions-column{text-align:center;width:calc(15 * var(--eui-base-spacing-m))}.eui-table.eui-table__loading:before{animation:.8s linear infinite spin;border:8px solid transparent;border-radius:50%;border-top-color:var(--eui-base-color-primary-100);content:\"\";display:block;height:80px;left:50%;margin:-40px 0 0 -40px;position:absolute;top:var(--eui-table-loading-position);width:80px;z-index:1000001}.eui-table.eui-table__loading tbody{opacity:var(--eui-base-disabled-opacity)}.eui-table thead tr.eui-table__columns-filter th{background-color:var(--eui-base-color-grey-5);position:relative;font:normal normal 400 1rem/1.75rem var(--eui-base-font-family)}.eui-table thead tr th{background-color:var(--eui-base-color-grey-10);padding:var(--eui-base-spacing-m) var(--eui-base-spacing-s);text-align:left;font:normal normal 400 1rem/1.75rem var(--eui-base-font-family);font-weight:700}.eui-table thead tr th .eui-resizable .eui-resizable-icon__container{transform:translateY(calc(var(--eui-base-spacing-l) + 2px + 2px))}.eui-table thead tr th.eui-table__sortable-col .eui-table__sortable-col-content{align-items:center;display:inline-flex;position:relative;vertical-align:middle;white-space:nowrap}.eui-table thead tr th.eui-table__sortable-col--disabled{cursor:default}.eui-table thead tr th .eui-table__sortable-icon-button{margin-left:var(--eui-base-spacing-2xs)}.eui-table thead tr th.eui-table__cell-select{color:var(--eui-base-color-grey-75);width:auto}.eui-table thead tr th.eui-table__cell-select .eui-table__cell-select-checkbox-container{display:flex}.eui-table thead tr th.eui-table__cell-select .eui-table__cell-select--indeterminated{position:absolute;right:50%;top:var(--eui-base-spacing-s);transform:translate(50%)}.eui-table tbody tr{border-top:1px solid var(--eui-base-color-grey-15);height:calc(3 * var(--eui-base-spacing-m))}.eui-table tbody tr.eui-table__row--selected,.eui-table tbody tr.eui-table__row--selected td{background-color:var(--eui-table-selected-row-background-color)!important}.eui-table tbody tr:not(.eui-table-expandable-row):nth-child(odd){background-color:var(--eui-base-color-grey-2)}.eui-table tbody tr:not(.eui-table-expandable-row):nth-child(odd) td{background-color:var(--eui-base-color-grey-2)}.eui-table tbody tr td{padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);vertical-align:middle}.eui-table tbody tr td.eui-table__cell-select{color:var(--eui-base-color-grey-75);width:auto}.eui-table tbody tr td.eui-table__cell-select .eui-table__cell-select-checkbox-container{display:flex}.eui-table tbody tr:nth-of-type(odd){background-color:var(--eui-base-color-white)}.eui-table tbody tr:nth-of-type(2n){background-color:var(--eui-base-color-grey-5)}.eui-table tbody tr:nth-of-type(2n) td{background-color:var(--eui-base-color-grey-5)}.eui-table tfoot tr{border-bottom:1px solid var(--eui-base-color-grey-15);border-top:1px solid var(--eui-base-color-grey-15)}.eui-table tfoot tr td{padding:var(--eui-base-spacing-s);vertical-align:middle}.eui-table__sticky-container{overflow:auto}.eui-table__sticky-container::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-table__sticky-container::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-table__sticky-container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-table__sticky-container::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-table--sticky-header thead tr th{position:sticky;top:0;z-index:8}.eui-table--sticky-columns .eui-table__col--sticky{position:sticky}.eui-table--sticky-columns th.eui-table__col--sticky{z-index:9}.eui-table--sticky-columns th.eui-table__col--sticky.eui-table__col--sticky-shadowed-first{box-shadow:inset -5px 0 8px -8px #0003}.eui-table--sticky-columns th.eui-table__col--sticky.eui-table__col--sticky-shadowed-last{box-shadow:inset 5px 0 8px -8px #0003}.eui-table--sticky-columns td.eui-table__col--sticky{z-index:8}.eui-table--sticky-columns td.eui-table__col--sticky.eui-table__col--sticky-shadowed-first{box-shadow:inset -5px 0 8px -8px #0003}.eui-table--sticky-columns td.eui-table__col--sticky.eui-table__col--sticky-shadowed-last{box-shadow:inset 5px 0 8px -8px #0003}@media screen and (max-width: 767px){.eui-table:not(.eui-table-cards).eui-table--responsive{width:100%!important}.eui-table:not(.eui-table-cards).eui-table--responsive thead,.eui-table:not(.eui-table-cards).eui-table--responsive tbody,.eui-table:not(.eui-table-cards).eui-table--responsive tfoot,.eui-table:not(.eui-table-cards).eui-table--responsive th,.eui-table:not(.eui-table-cards).eui-table--responsive td,.eui-table:not(.eui-table-cards).eui-table--responsive tr{display:block}.eui-table:not(.eui-table-cards).eui-table--responsive thead tr{left:-9999px;position:absolute;top:-9999px}.eui-table:not(.eui-table-cards).eui-table--responsive tr{height:auto}.eui-table:not(.eui-table-cards).eui-table--responsive td{border:none;border-bottom:1px solid var(--eui-base-color-grey-10);padding-left:50%;position:relative;text-align:left!important}.eui-table:not(.eui-table-cards).eui-table--responsive td:before{color:var(--eui-base-color-grey-80);content:attr(data-col-label);left:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xs);position:absolute;width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:normal normal 400 1rem/1.75rem var(--eui-base-font-family);font-weight:700}.eui-table:not(.eui-table-cards) .actionsColumn,.eui-table:not(.eui-table-cards) .actions-column{justify-content:flex-start;text-align:left;width:100%}.eui-table__sticky-container{height:auto!important;width:auto!important}.eui-table--sticky-columns th,.eui-table--sticky-columns td,.eui-table--sticky-columns th .eui-table__col--sticky,.eui-table--sticky-columns td .eui-table__col--sticky{width:auto;z-index:auto}.eui-table--sticky-columns th .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table--sticky-columns th .eui-table__col--sticky.eui-table__col--sticky-shadowed-last,.eui-table--sticky-columns td .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table--sticky-columns td .eui-table__col--sticky.eui-table__col--sticky-shadowed-last{box-shadow:none!important}.eui-table--sticky-columns tfoot tr td:empty{display:none!important}}.eui-table__filter{align-items:center;display:flex;justify-content:flex-end;position:relative}.eui-table__filter--responsive{width:100%}.eui-table__filter-input{padding-left:var(--eui-base-spacing-2xl)!important}.eui-table__filter-search-icon{left:var(--eui-base-spacing-xs);position:absolute;top:calc(var(--eui-base-spacing-xs) + 2px)}@media screen and (max-width: 767px){.eui-table__filter--responsive{display:block;width:100%}}.eui-table__draggable-preview--no-preview.cdk-drag-preview{display:none}.eui-table--draggable tr.eui-table__draggable-preview--no-placeholder{opacity:1}.eui-table--draggable tr:hover{background-color:var(--eui-base-color-accent-5)}.eui-table--draggable td .cdk-drop-list{flex-direction:column}.eui-table-cards{background-color:transparent;display:flex;flex-direction:column;overflow:hidden;width:100%}.eui-table-cards thead{width:100%}.eui-table-cards thead tr{align-items:center;height:auto}.eui-table-cards thead tr th{position:relative;vertical-align:middle;width:100%}.eui-table-cards thead tr th.eui-table__cell-select{padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);width:auto}.eui-table-cards thead tr th.eui-table__cell-select .eui-table__cell-select-checkbox-container{display:flex}.eui-table-cards tbody{width:100%}.eui-table-cards tbody tr{align-items:center;border-top:0;display:flex;height:auto;width:100%}.eui-table-cards tbody tr.eui-table__row--selected .eui-card:first-child{--eui-card-header-background-color: var(--eui-table-selected-row-background-color)}.eui-table-cards tbody tr td{position:relative;vertical-align:middle;width:100%}.eui-table-cards tbody tr td.eui-table__cell-select{padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);width:auto}.eui-table-cards tbody tr td.eui-table__cell-select .eui-table__cell-select-checkbox-container{display:flex}.eui-table-cards tbody tr:hover{background-color:transparent}.eui-table-cards tbody tr:not(.eui-table-expandable-row):nth-child(odd){background-color:transparent}.eui-table-cards tbody tr:nth-of-type(2n){background-color:transparent}.eui-table-cards tbody tr:nth-of-type(2n):hover:not(.eui-table__row--selected){background-color:transparent}.eui-table-cards tbody tr:nth-of-type(odd):hover:not(.eui-table__row--selected){background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
594
594
|
}
|
595
595
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiTableComponent, decorators: [{
|
596
596
|
type: Component,
|
@@ -661,4 +661,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
661
661
|
type: HostBinding,
|
662
662
|
args: ['class']
|
663
663
|
}] } });
|
664
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10YWJsZS9ldWktdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYmxlL2V1aS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUlOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUzRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBVTNELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBWWhELElBQTZDLFVBQVU7UUFDbkQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFtQ0QsSUFBYSxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBbUI7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxx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S0FBSztnQkFTRixlQUFlO3NCQURsQixLQUFLO2dCQVNGLFdBQVc7c0JBRGQsS0FBSztnQkFrQkYsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuaW1wb3J0IHsgRXVpVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5pbXBvcnQgeyBFdWlQYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLXBhZ2luYXRvcic7XG5cbmltcG9ydCB7IEV1aVRhYmxlU29ydFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V1aS10YWJsZS1zb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbi1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBFdWlUYWJsZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyL2V1aS10YWJsZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V1aS10YWJsZS1zZWxlY3RhYmxlLXJvdy5zZXJ2aWNlJztcbmltcG9ydCB7IFNvcnRFdmVudCB9IGZyb20gJy4vbW9kZWxzL3NvcnQtZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlzb3J0UGFyYW0gfSBmcm9tICcuL21vZGVscy9tdWx0aS1zb3J0Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGFibGUsIHRhYmxlW2V1aVRhYmxlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtFdWlUYWJsZVNvcnRTZXJ2aWNlLCBFdWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGFibGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQElucHV0KCkgcm93czogYW55W10gPSBbXTtcbiAgICBASW5wdXQoKSBwcm9wSWQgPSAnaWQnO1xuICAgIEBJbnB1dCgpIHBhZ2luYXRvcjogRXVpUGFnaW5hdG9yQ29tcG9uZW50O1xuICAgIEBJbnB1dCgpIGZpbHRlcjogRXVpVGFibGVGaWx0ZXJDb21wb25lbnQ7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQElucHV0KCkgcHJlc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHN0cmluZyA9ICdldWktdGFibGUnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZXVpLXRhYmxlX19sb2FkaW5nJykgZ2V0IGhhc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmc7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIHNlbGVjdGVkUm93cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gICAgQE91dHB1dCgpIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnRFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbXVsdGlTb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNdWx0aXNvcnRQYXJhbVtdPigpO1xuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBlbXB0eU1lc3NhZ2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgcm93c1JlbmRlcmVkOiBhbnlbXSA9IFtdO1xuXG4gICAgcHVibGljIHBhZ2UgPSAwO1xuICAgIHB1YmxpYyBwYWdlU2l6ZSA9IDA7XG4gICAgcHVibGljIHNob3dTdGlja3lIZWFkZXIgPSBmYWxzZTtcbiAgICBwdWJsaWMgZmlsdGVyZWRSb3dzID0gW107XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEV1aVRlbXBsYXRlRGlyZWN0aXZlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxFdWlUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICBAVmlld0NoaWxkKCd0aGVhZFJlZicpIHRoZWFkUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCd0Ym9keVJlZicpIHRib2R5UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCd0Zm9vdFJlZicpIHRmb290UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgICB9XG4gICAgc2V0IGxvYWRpbmcodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9sb2FkaW5nID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfbG9hZGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFzeW5jVGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hc3luY1RhYmxlO1xuICAgIH1cbiAgICBzZXQgYXN5bmNUYWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2FzeW5jVGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9hc3luY1RhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgcGFnaW5hYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFnaW5hYmxlO1xuICAgIH1cbiAgICBzZXQgcGFnaW5hYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fcGFnaW5hYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnaW5hYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVSZXNwb25zaXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXVpVGFibGVSZXNwb25zaXZlO1xuICAgIH1cbiAgICBzZXQgZXVpVGFibGVSZXNwb25zaXZlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZXVpVGFibGVSZXNwb25zaXZlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZXVpVGFibGVSZXNwb25zaXZlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVGaXhlZExheW91dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V1aVRhYmxlRml4ZWRMYXlvdXQ7XG4gICAgfVxuICAgIHNldCBldWlUYWJsZUZpeGVkTGF5b3V0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZXVpVGFibGVGaXhlZExheW91dCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlRml4ZWRMYXlvdXQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBldWlUYWJsZURyYWdnYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V1aVRhYmxlRHJhZ2dhYmxlO1xuICAgIH1cbiAgICBzZXQgZXVpVGFibGVEcmFnZ2FibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9ldWlUYWJsZURyYWdnYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlRHJhZ2dhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVDYXJkcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V1aVRhYmxlQ2FyZHM7XG4gICAgfVxuICAgIHNldCBldWlUYWJsZUNhcmRzKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZXVpVGFibGVDYXJkcyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlQ2FyZHMgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBldWlUYWJsZUJvcmRlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXVpVGFibGVCb3JkZXJlZDtcbiAgICB9XG4gICAgc2V0IGV1aVRhYmxlQm9yZGVyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9ldWlUYWJsZUJvcmRlcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZXVpVGFibGVCb3JkZXJlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGV1aVRhYmxlQ29tcGFjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V1aVRhYmxlQ29tcGFjdDtcbiAgICB9XG4gICAgc2V0IGV1aVRhYmxlQ29tcGFjdCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2V1aVRhYmxlQ29tcGFjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlQ29tcGFjdCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1N0aWNreUhlYWRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1N0aWNreUhlYWRlcjtcbiAgICB9XG4gICAgc2V0IGhhc1N0aWNreUhlYWRlcih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1N0aWNreUhlYWRlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1N0aWNreUhlYWRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1N0aWNreUNvbHVtbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNTdGlja3lDb2x1bW5zO1xuICAgIH1cbiAgICBzZXQgaGFzU3RpY2t5Q29sdW1ucyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1N0aWNreUNvbHVtbnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNTdGlja3lDb2x1bW5zID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgO1xuICAgIH1cbiAgICBzZXQgaXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDb2xzT3JkZXJhYmxlICgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQ29sc09yZGVyYWJsZSA7XG4gICAgfVxuICAgIHNldCBpc0NvbHNPcmRlcmFibGUgKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNDb2xzT3JkZXJhYmxlICA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzQ29sc09yZGVyYWJsZSAgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hvdmVyYWJsZSAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hvdmVyYWJsZSA7XG4gICAgfVxuICAgIHNldCBpc0hvdmVyYWJsZSAodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hvdmVyYWJsZSAgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0hvdmVyYWJsZSAgPSBmYWxzZTtcblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgcm93c1NyYzogYW55ID0gbnVsbDtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIHRhYmxlRmVhdHVyZXNIYW5kbGVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgc2VsZWN0Um93c0ZlYXR1cmVIYW5kbGVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgc3RpY2t5RmVhdHVyZUhhbmRsZXJJbmRleCA9IDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVJlc3BvbnNpdmUgPyAnZXVpLXRhYmxlLS1yZXNwb25zaXZlJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUZpeGVkTGF5b3V0ID8gJ2V1aS10YWJsZS0tZml4ZWQtbGF5b3V0JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUJvcmRlcmVkID8gJ2V1aS10YWJsZS0tYm9yZGVyZWQnIDogJycsXG4gICAgICAgICAgICB0aGlzLmV1aVRhYmxlQ29tcGFjdCA/ICdldWktdGFibGUtLWNvbXBhY3QnIDogJycsXG4gICAgICAgICAgICB0aGlzLmV1aVRhYmxlRHJhZ2dhYmxlID8gJ2V1aS10YWJsZS0tZHJhZ2dhYmxlJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUNhcmRzID8gJ2V1aS10YWJsZS1jYXJkcycgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaGFzU3RpY2t5SGVhZGVyID8gJ2V1aS10YWJsZS0tc3RpY2t5LWhlYWRlcicgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaGFzU3RpY2t5Q29sdW1ucyA/ICdldWktdGFibGUtLXN0aWNreS1jb2x1bW5zJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc0NvbHNPcmRlcmFibGUgPyAnZXVpLXRhYmxlLS1jb2xzLW9yZGVyYWJsZScgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNIb3ZlcmFibGUgPyAnZXVpLXRhYmxlLS1ob3ZlcmFibGUnIDogJycsXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdldWktdGFibGUnKSxcbiAgICAgICAgXVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBldWlUYWJsZVNvcnRTZXJ2aWNlOiBFdWlUYWJsZVNvcnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlOiBFdWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucm93cykge1xuICAgICAgICAgICAgdGhpcy5yb3dzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2V0UHJvcElkKHRoaXMucHJvcElkKTtcbiAgICAgICAgaWYgKGMgJiYgYy5yb3dzICYmIGMucm93cy5maXJzdENoYW5nZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGVGZWF0dXJlc0hhbmRsZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgICAgLy8gR28gdG8gZmlyc3QgcGFnZSBvbmx5IGlmIGxlbmd0aCBvZiBkYXRhIGhhcyBjaGFuZ2VkLiBUbyBhdm9pZCB1c2VyIHRvIGJlIG9uIGEgcGFnZSB0aGF0IG5vIGxvbmdlciBleGlzdCBpbiBjYXNlIG9mIGZpbHRlcmluZy5cbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aENoYW5nZWQgPSB0aGlzLnJvd3NTcmMubGVuZ3RoICE9PSBjLnJvd3MuY3VycmVudFZhbHVlLmxlbmd0aDtcblxuICAgICAgICAgICAgdGhpcy5yb3dzU3JjID0gWy4uLmMucm93cy5jdXJyZW50VmFsdWVdO1xuICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yICYmIGxlbmd0aENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5nb0ZpcnN0UGFnZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmFzeW5jVGFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UucmVzZXRSb3dzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLmFkZFJvd3MoYy5yb3dzLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UucmVzZXRSb3dzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLmFkZFJvd3MoYy5yb3dzLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYyAmJiBjLnByZXNlbGVjdGVkUm93cyAmJiBjLnByZXNlbGVjdGVkUm93cy5maXJzdENoYW5nZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5zZWxlY3RSb3dzKHRoaXMucHJlc2VsZWN0ZWRSb3dzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjICYmIGMucGFnaW5hdG9yPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLnNldExlbmd0aCh0aGlzLnJvd3MubGVuZ3RoKTtcbiAgICAgICAgICAgIGlmICghYy5wYWdpbmF0b3I/LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLmdvRmlyc3RQYWdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB0aGlzLnJvd3MgY2FuIGJlIGNoYW5nZWQgYW55dGltZSwgdGhlbiB0aGlzIGVsc2UgY2FuIGJlIGV4ZWN1dGVkIGF0IHRoYXQgdGltZSwgdGVzdGluZyB0aGlzLnBhZ2luYXRvciBhbGxvd3MgdG8gbWFrZSBzdXJlXG4gICAgICAgICAgICAvLyB0aGUgdXNlciB3aGFudHMgdG8gZGlzYWJsZSBwYWdpbmF0aW9uIG9yIGNoYW5nZSB0aGUgZGF0YXNvdXJjZVxuICAgICAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRvcikge1xuICAgICAgICAgICAgICAgIHRoaXMucm93c1JlbmRlcmVkID0gdGhpcy5yb3dzU3JjID8gdGhpcy5yb3dzU3JjIDogWy4uLnRoaXMucm93c107XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvd3NTcmMgPSBbLi4udGhpcy5yb3dzXTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lMmVBdHRyKSB7XG4gICAgICAgICAgICB0aGlzLmUyZUF0dHIgPSAnZXVpLXRhYmxlJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5nZXRUeXBlKCkgPT09ICdoZWFkZXInKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXRlbS5nZXRUeXBlKCkgPT09ICdib2R5Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9keVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gJ2Zvb3RlcicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvb3RlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gJ2VtcHR5TWVzc2FnZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtcHR5TWVzc2FnZVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYXN5bmNUYWJsZSkge1xuICAgICAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLnNvcnRpbmdQYXJhbXMkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzb3J0aW5nUGFyYW1zOiB7IHNvcnQ6IHN0cmluZyB8IG51bGw7IG9yZGVyOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7IHNvcnQ6IHNvcnRpbmdQYXJhbXMuc29ydCwgb3JkZXI6IHNvcnRpbmdQYXJhbXMub3JkZXIgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmV1aVRhYmxlU29ydFNlcnZpY2UubXVsdGlzb3J0UGFyYW1zU29ydCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgobXVsdGlTb3J0UGFyYW1zOiBNdWx0aXNvcnRQYXJhbVtdKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpU29ydENoYW5nZS5lbWl0KG11bHRpU29ydFBhcmFtcy5maWx0ZXIoKGVsKSA9PiBlbC5wb3NpdGlvbiA+IDApKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNlbGVjdFJvd3NGZWF0dXJlSGFuZGxlcigpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnNlbGVjdFJvd3ModGhpcy5wcmVzZWxlY3RlZFJvd3MpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RBbGxSb3dzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2VsZWN0QWxsUm93cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNlbGVjdEFsbFJvd3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS51bnNlbGVjdEFsbFJvd3MoKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgc2VsZWN0Um93cyhyb3dzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2VsZWN0Um93cyhyb3dzKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgZmlsdGVyUm93cyhmaWx0ZXI6IHN0cmluZywgcjogYW55W10pOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSBmaWx0ZXJcbiAgICAgICAgICAgID8gci5maWx0ZXIoKHJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmcgPSB0aGlzLmdldFByb3BzKHJvdywgZmlsdGVyKS5maWx0ZXIoKHApID0+IHAubWF0Y2ggPT09IHRydWUpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoaW5nPy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiByO1xuXG4gICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5yZXNldFJvd3MoKTtcbiAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLmFkZFJvd3Mocm93cyk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJlZFJvd3MgPSByb3dzO1xuXG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTb3J0KHNvcnQ6IHN0cmluZyB8IG51bGwsIG9yZGVyOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLnNldFNvcnQoc29ydCwgb3JkZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RpY2t5RmVhdHVyZUhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRpbWVvdXQgPSB0aGlzLnN0aWNreUZlYXR1cmVIYW5kbGVySW5kZXggPT09IDAgPyAyNTAgOiAwO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYm9keVRySXRlbXMgPSBBcnJheS5mcm9tKHRoaXMudGJvZHlSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0cicpKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LmNsaWVudFdpZHRoIHx8IDA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRoZWFkUmVmKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhJdGVtczogSFRNTFRhYmxlQ2VsbEVsZW1lbnRbXSA9IEFycmF5LmZyb20odGhpcy50aGVhZFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ldWktdGFibGVfX2NvbC0tc3RpY2t5JykpO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgbGVmdCAmIHJpZ2h0IHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgdGhJdGVtcy5mb3JFYWNoKCh0aDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGguc3R5bGUubGVmdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLnJpZ2h0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBGaXJzdCBDb2xzICYgTGFzdCBDb2xzXG4gICAgICAgICAgICAgICAgY29uc3QgdGhJdGVtc1N0aWNreUZpcnN0Q29sID0gdGhJdGVtcy5maWx0ZXIoKHRoKSA9PiB0aC5vZmZzZXRMZWZ0ICsgdGguY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhJdGVtc1N0aWNreUxhc3RDb2wgPSB0aEl0ZW1zLmZpbHRlcigodGgpID0+IHRoLm9mZnNldExlZnQgKyB0aC5jbGllbnRXaWR0aCA+IGNvbnRhaW5lcldpZHRoKTtcblxuICAgICAgICAgICAgICAgIHRoSXRlbXNTdGlja3lGaXJzdENvbC5mb3JFYWNoKCh0aCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGhJdGVtc1N0aWNreUZpcnN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBwYXJzZUludCh0aEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5zdHlsZS5sZWZ0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLmxlZnQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgbCkgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGhJdGVtc1N0aWNreUZpcnN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGguY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1maXJzdCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aEl0ZW1zU3RpY2t5TGFzdENvbC5yZXZlcnNlKCkuZm9yRWFjaCgodGgsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdyA9IHRoSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludCh0aEl0ZW1zU3RpY2t5TGFzdENvbFtpIC0gMV0/LnN0eWxlLnJpZ2h0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLnJpZ2h0ID0gKGkgPT09IDAgPyAwIDogdyArIHIpICsgJ3B4JztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaSArIDEgPT09IHRoSXRlbXNTdGlja3lMYXN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGguY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1sYXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm9keVRySXRlbXMuZm9yRWFjaCgodHIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZEl0ZW1zOiBIVE1MVGFibGVDZWxsRWxlbWVudFtdID0gQXJyYXkuZnJvbSh0ci5xdWVyeVNlbGVjdG9yQWxsKCcuZXVpLXRhYmxlX19jb2wtLXN0aWNreScpKTtcbiAgICAgICAgICAgICAgICB0ZEl0ZW1zLmZvckVhY2goKHRkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRkLnN0eWxlLmxlZnQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0ZC5zdHlsZS5yaWdodCA9IG51bGw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYm9keVRySXRlbXMuZm9yRWFjaCgodHIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZEl0ZW1zOiBIVE1MVGFibGVDZWxsRWxlbWVudFtdID0gQXJyYXkuZnJvbSh0ci5xdWVyeVNlbGVjdG9yQWxsKCcuZXVpLXRhYmxlX19jb2wtLXN0aWNreScpKTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBGaXJzdCBDb2xzXG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtc1N0aWNreUZpcnN0Q29sID0gdGRJdGVtcy5maWx0ZXIoKHRkKSA9PiB0ZC5vZmZzZXRMZWZ0ICsgdGQuY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCk7XG4gICAgICAgICAgICAgICAgdGRJdGVtc1N0aWNreUZpcnN0Q29sLmZvckVhY2goKHRkLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHcgPSB0ZEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbCA9IHBhcnNlSW50KHRkSXRlbXNTdGlja3lGaXJzdENvbFtpIC0gMV0/LnN0eWxlLmxlZnQsIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgdGQuc3R5bGUubGVmdCA9IChpID09PSAwID8gMCA6IHcgKyBsKSArICdweCc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgKyAxID09PSB0ZEl0ZW1zU3RpY2t5Rmlyc3RDb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZC5jbGFzc0xpc3QuYWRkKCdldWktdGFibGVfX2NvbC0tc3RpY2t5LXNoYWRvd2VkLWZpcnN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBMYXN0IENvbHNcbiAgICAgICAgICAgICAgICBjb25zdCB0ZEl0ZW1zU3RpY2t5TGFzdENvbCA9IHRkSXRlbXMuZmlsdGVyKCh0ZCkgPT4gdGQub2Zmc2V0TGVmdCArIHRkLmNsaWVudFdpZHRoID4gY29udGFpbmVyV2lkdGgpO1xuICAgICAgICAgICAgICAgIHRkSXRlbXNTdGlja3lMYXN0Q29sLnJldmVyc2UoKS5mb3JFYWNoKCh0ZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGRJdGVtc1N0aWNreUxhc3RDb2xbaSAtIDFdPy5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHBhcnNlSW50KHRkSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uc3R5bGUucmlnaHQsIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgdGQuc3R5bGUucmlnaHQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgcikgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGRJdGVtc1N0aWNreUxhc3RDb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZC5jbGFzc0xpc3QuYWRkKCdldWktdGFibGVfX2NvbC0tc3RpY2t5LXNoYWRvd2VkLWxhc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRmb290UmVmKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtczogSFRNTFRhYmxlQ2VsbEVsZW1lbnRbXSA9IEFycmF5LmZyb20odGhpcy50Zm9vdFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ldWktdGFibGVfX2NvbC0tc3RpY2t5JykpO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgbGVmdCAmIHJpZ2h0IHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgdGRJdGVtcy5mb3JFYWNoKCh0aDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGguc3R5bGUubGVmdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLnJpZ2h0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBGaXJzdCBDb2xzICYgTGFzdCBDb2xzXG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtc1N0aWNreUZpcnN0Q29sID0gdGRJdGVtcy5maWx0ZXIoKHRkKSA9PiB0ZC5vZmZzZXRMZWZ0ICsgdGQuY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtc1N0aWNreUxhc3RDb2wgPSB0ZEl0ZW1zLmZpbHRlcigodGQpID0+IHRkLm9mZnNldExlZnQgKyB0ZC5jbGllbnRXaWR0aCA+IGNvbnRhaW5lcldpZHRoKTtcblxuICAgICAgICAgICAgICAgIHRkSXRlbXNTdGlja3lGaXJzdENvbC5mb3JFYWNoKCh0ZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGRJdGVtc1N0aWNreUZpcnN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBwYXJzZUludCh0ZEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5zdHlsZS5sZWZ0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRkLnN0eWxlLmxlZnQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgbCkgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGRJdGVtc1N0aWNreUZpcnN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGQuY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1maXJzdCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0ZEl0ZW1zU3RpY2t5TGFzdENvbC5yZXZlcnNlKCkuZm9yRWFjaCgodGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdyA9IHRkSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludCh0ZEl0ZW1zU3RpY2t5TGFzdENvbFtpIC0gMV0/LnN0eWxlLnJpZ2h0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRkLnN0eWxlLnJpZ2h0ID0gKGkgPT09IDAgPyAwIDogdyArIHIpICsgJ3B4JztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaSArIDEgPT09IHRkSXRlbXNTdGlja3lMYXN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGQuY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1sYXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGltZW91dCk7XG5cbiAgICAgICAgdGhpcy5zdGlja3lGZWF0dXJlSGFuZGxlckluZGV4Kys7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0YWJsZUZlYXR1cmVzSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlclN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLnNvcnRpbmdQYXJhbXMkLFxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IgPyB0aGlzLnBhZ2luYXRvci5wYWdlJCA6IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCksXG4gICAgICAgICAgICB0aGlzLmZpbHRlciA/IHRoaXMuZmlsdGVyLmZpbHRlciQgOiBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLm11bHRpc29ydFBhcmFtc1NvcnQkLFxuICAgICAgICBdKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW3NvcnRpbmdQYXJhbXMsIHBhZ2luYXRpb24sIGZpbHRlciwgbXVsdGlzb3J0UGFyYW1zXSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCByID0gWy4uLnRoaXMucm93c1NyY107XG4gICAgICAgICAgICAgICAgaWYgKHNvcnRpbmdQYXJhbXMub3JkZXIgIT09IG51bGwgJiYgc29ydGluZ1BhcmFtcy5zb3J0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG11bHRpc29ydCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBtdWx0aXNvcnQucHVzaChuZXcgTXVsdGlzb3J0UGFyYW0oc29ydGluZ1BhcmFtcy5zb3J0LCBzb3J0aW5nUGFyYW1zLm9yZGVyLCAxKSk7XG4gICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmRvTXVsdGlTb3J0KG11bHRpc29ydCwgcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG11bHRpc29ydFBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRhYmxlQ29sdW1ucyA9IG11bHRpc29ydFBhcmFtcy5maWx0ZXIoKGNvbCkgPT4gY29sLm9yZGVyICE9PSBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvcnRhYmxlQ29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByID0gdGhpcy5kb011bHRpU29ydChzb3J0YWJsZUNvbHVtbnMsIHIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHIgPSB0aGlzLmZpbHRlclJvd3MoZmlsdGVyLCByKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3Iuc2V0TGVuZ3RoKHIubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMucGFnaW5hdGVSb3dzKHBhZ2luYXRpb24sIHIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucm93c1JlbmRlcmVkID0gcjtcbiAgICAgICAgICAgICAgICB0aGlzLnN0aWNreUZlYXR1cmVIYW5kbGVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnJlc2V0Um93cygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UudW5zZWxlY3RBbGxSb3dzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5hZGRSb3dzKHRoaXMucm93c1JlbmRlcmVkKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgZG9NdWx0aVNvcnQobXVsdGlzb3J0UGFyYW1zOiBNdWx0aXNvcnRQYXJhbVtdLCByOiBhbnkpOiBhbnlbXSB7XG4gICAgICAgIHIgPSB0aGlzLm11bHRpU29ydFJvd3MobXVsdGlzb3J0UGFyYW1zLCAxLCByKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBtdWx0aVNvcnRSb3dzKG11bHRpc29ydFBhcmFtczogTXVsdGlzb3J0UGFyYW1bXSwgY3VycmVudFBvc2l0aW9uOiBudW1iZXIsIHI6IGFueSk6IGFueVtdIHtcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBsZXQgcm93czogYW55W10gPSBudWxsO1xuICAgICAgICBjb25zdCBjb2xQYXJhbXMgPSBtdWx0aXNvcnRQYXJhbXMuZmluZCgoY29sKSA9PiBjb2wucG9zaXRpb24gPT09IGN1cnJlbnRQb3NpdGlvbik7XG4gICAgICAgIGlmIChjb2xQYXJhbXMub3JkZXIgPT09ICdkZXNjJykge1xuICAgICAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgIHJvd3MgPSByLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDb2x1bW5Tb3J0YWJsZShhLCBiLCBtdWx0aXNvcnRQYXJhbXMsIGN1cnJlbnRQb3NpdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc29ydFR3b1Jvd3NEZXNjKGEsIGIsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICByb3dzID0gci5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ29sdW1uU29ydGFibGUoYSwgYiwgbXVsdGlzb3J0UGFyYW1zLCBjdXJyZW50UG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvcnRUd29Sb3dzQXNjKGEsIGIsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlzb3J0UGFyYW1zLmxlbmd0aCA9PT0gY3VycmVudFBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gcm93cztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm11bHRpU29ydFJvd3MobXVsdGlzb3J0UGFyYW1zLCArK2N1cnJlbnRQb3NpdGlvbiwgcm93cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGlzQ29sdW1uU29ydGFibGUoYTogYW55LCBiOiBhbnksIG11bHRpc29ydFBhcmFtczogTXVsdGlzb3J0UGFyYW1bXSwgY3VycmVudFBvc2l0aW9uOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiA9PT0gMSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IGNvbFBhcmFtcyA9IG11bHRpc29ydFBhcmFtcy5maW5kKChjb2wpID0+IGNvbC5wb3NpdGlvbiA9PT0gY3VycmVudFBvc2l0aW9uIC0gMSk7XG4gICAgICAgIGNvbnN0IGFDb2wgPSB0aGlzLmdldE9ialByb3BWYWx1ZShhLCBjb2xQYXJhbXMubmFtZSk7XG4gICAgICAgIC8vIHR5cGVvZiB0aGlzLmdldE9ialByb3AoYSwgY29sUGFyYW1zLm5hbWUpID09PSAnc3RyaW5nJ1xuICAgICAgICAvLyAgICAgPyB0aGlzLmdldE9ialByb3AoYSwgY29sUGFyYW1zLm5hbWUpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLy8gICAgIDogdGhpcy5nZXRPYmpQcm9wKGEsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgY29uc3QgYkNvbCA9IHRoaXMuZ2V0T2JqUHJvcFZhbHVlKGIsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgLy8gdHlwZW9mIHRoaXMuZ2V0T2JqUHJvcChiLCBjb2xQYXJhbXMubmFtZSkgPT09ICdzdHJpbmcnXG4gICAgICAgIC8vICAgICA/IHRoaXMuZ2V0T2JqUHJvcChiLCBjb2xQYXJhbXMubmFtZSkudG9Mb3dlckNhc2UoKVxuICAgICAgICAvLyAgICAgOiB0aGlzLmdldE9ialByb3AoYiwgY29sUGFyYW1zLm5hbWUpO1xuICAgICAgICBpZiAoYUNvbCAhPT0gYkNvbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiAtIDEgPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNDb2x1bW5Tb3J0YWJsZShhLCBiLCBtdWx0aXNvcnRQYXJhbXMsIC0tY3VycmVudFBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vVGhpcyBmdW5jdGlvbiBpcyB0byBkbyB0aGUgc29ydGluZyB0aGUgdGFibGUgd2l0aCB0aGUgY29tYmluYXRpb24gb2YgMCxudWxsIGFuZCB0ZXh0IGluIGRlc2NlbmRpbmcgb3JkZXIuXG4gICAgLy9nZXRPYmpQcm9wVmFsdWUgaXMgdG8gZ2V0IHRoZSBvYmplY3QgcHJvcGVydHkgdmFsdWVcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIHNvcnRUd29Sb3dzRGVzYyhhOiBhbnksIGI6IGFueSwgY29sTmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYVNvcnRPbiA9IHRoaXMuZ2V0T2JqUHJvcFZhbHVlKGEsIGNvbE5hbWUpO1xuICAgICAgICBjb25zdCBiU29ydE9uID0gdGhpcy5nZXRPYmpQcm9wVmFsdWUoYiwgY29sTmFtZSk7XG4gICAgICAgIGlmICgoYVNvcnRPbiA9PT0gbnVsbCB8fCBhU29ydE9uID09PSB1bmRlZmluZWQpICYmIGJTb3J0T24pIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2UgaWYgKGFTb3J0T24gJiYgKGJTb3J0T24gPT09IG51bGwgfHwgYlNvcnRPbiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2UgaWYgKChhU29ydE9uID09PSBudWxsIHx8IGFTb3J0T24gPT09IHVuZGVmaW5lZCkgJiYgKGJTb3J0T24gPT09IG51bGwgfHwgYlNvcnRPbiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0gZWxzZSBpZiAoKGFTb3J0T24gPT09IG51bGwgfHwgYVNvcnRPbiA9PT0gdW5kZWZpbmVkKSAmJiBiU29ydE9uID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmIChhU29ydE9uID09PSAwICYmIChiU29ydE9uID09PSBudWxsIHx8IGJTb3J0T24gPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhU29ydE9uIDwgYlNvcnRPbiA/IDEgOiBhU29ydE9uID4gYlNvcnRPbiA/IC0xIDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vVGhpcyBmdW5jdGlvbiBpcyB0byBkbyB0aGUgc29ydGluZyB0aGUgdGFibGUgd2l0aCB0aGUgY29tYmluYXRpb24gb2YgMCxudWxsIGFuZCB0ZXh0IGluIGFzY2VuZGluZyBvcmRlci5cbiAgICAvL2dldE9ialByb3BWYWx1ZSBpcyB0byBnZXQgdGhlIG9iamVjdCBwcm9wZXJ0eSB2YWx1ZVxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgc29ydFR3b1Jvd3NBc2MoYTogYW55LCBiOiBhbnksIGNvbE5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGFTb3J0T24gPSB0aGlzLmdldE9ialByb3BWYWx1ZShhLCBjb2xOYW1lKTtcbiAgICAgICAgY29uc3QgYlNvcnRPbiA9IHRoaXMuZ2V0T2JqUHJvcFZhbHVlKGIsIGNvbE5hbWUpO1xuICAgICAgICBpZiAoKGFTb3J0T24gPT09IG51bGwgfHwgYVNvcnRPbiA9PT0gdW5kZWZpbmVkKSAmJiBiU29ydE9uKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVNvcnRPbiAmJiAoYlNvcnRPbiA9PT0gbnVsbCB8fCBiU29ydE9uID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmICgoYVNvcnRPbiA9PT0gbnVsbCB8fCBhU29ydE9uID09PSB1bmRlZmluZWQpICYmIChiU29ydE9uID09PSBudWxsIHx8IGJTb3J0T24gPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9IGVsc2UgaWYgKChhU29ydE9uID09PSBudWxsIHx8IGFTb3J0T24gPT09IHVuZGVmaW5lZCkgJiYgYlNvcnRPbiA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2UgaWYgKGFTb3J0T24gPT09IDAgJiYgKGJTb3J0T24gPT09IG51bGwgfHwgYlNvcnRPbiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYVNvcnRPbiA8IGJTb3J0T24gPyAtMSA6IGFTb3J0T24gPiBiU29ydE9uID8gMSA6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGdldE9ialByb3BWYWx1ZShvYmo6IGFueSwgcHJvcDogc3RyaW5nKTogYW55IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldE9ialByb3Aob2JqLCBwcm9wKTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50b0xvd2VyQ2FzZSgpIDogdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RSb3dzRmVhdHVyZUhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0Um93c0ZlYXR1cmVIYW5kbGVyU3Vic2NyaXB0aW9uID0gdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnNlbGVjdGVkUm93cyRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZDogYW55W10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93cy5lbWl0KHNlbGVjdGVkKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgZ2V0UHJvcHMob2JqOiBhbnlbXSwgZmlsdGVyOiBzdHJpbmcpOiB7IGtleTogc3RyaW5nOyBtYXRjaDogYm9vbGVhbjsgdmFsdWU6IHN0cmluZyB8IG51bWJlciB9W10ge1xuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gKHZhbDogYW55KTogYm9vbGVhbiA9PiB2YWwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCc7XG4gICAgICAgIGNvbnN0IGFkZERlbGltaXRlciA9IChhOiBzdHJpbmcsIGI6IHN0cmluZyk6IHN0cmluZyA9PiAoYSAmJiBhICE9PSAnMCcgPyBgJHthfS4ke2J9YCA6IGIpO1xuICAgICAgICBjb25zdCBwcm9wcyA9IFtdO1xuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IHBhdGhzID0gKHBhdGhPYmogPSB7fSwgaGVhZCA9ICcnKTogYW55W10gPT5cbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHBhdGhPYmopLnJlZHVjZSgocHJvZHVjdCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZnVsbFBhdGggPSBhZGREZWxpbWl0ZXIoaGVhZCwga2V5KTtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9ICh2OiBhbnkpOiBib29sZWFuID0+XG4gICAgICAgICAgICAgICAgICAgIHYgJiZcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHYgIT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAgICAgICAgICAgID8udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleE9mKGZpbHRlcj8udHJpbSgpLnRvTG93ZXJDYXNlKCkpICE9PSAtMTtcblxuICAgICAgICAgICAgICAgIGlmIChrZXkgIT09ICcwJyAmJiB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLnB1c2goeyBrZXk6IGFkZERlbGltaXRlcihoZWFkLCBrZXkpLCBtYXRjaDogbWF0Y2godmFsdWUpLCB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNPYmplY3QodmFsdWUpID8gcHJvZHVjdC5jb25jYXQocGF0aHModmFsdWUsIGZ1bGxQYXRoKSkgOiBwcm9kdWN0LmNvbmNhdChmdWxsUGF0aCk7XG4gICAgICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgcGF0aHMob2JqKTtcblxuICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBwYWdpbmF0ZVJvd3MocGFnaW5hdGlvbjogUGFnaW5hdGlvbkV2ZW50LCByOiBhbnlbXSk6IGFueVtdIHtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnaW5hdGlvbi5wYWdlO1xuICAgICAgICB0aGlzLnBhZ2VTaXplID0gcGFnaW5hdGlvbi5wYWdlU2l6ZTtcblxuICAgICAgICByZXR1cm4gci5zbGljZSh0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplLCB0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplICsgdGhpcy5wYWdlU2l6ZSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBnZXRPYmpQcm9wKG9iajogYW55LCBwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcHJvcCA/IHByb3Auc3BsaXQoJy4nKS5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChwcmV2ID8gcHJldltjdXJyXSA6IG51bGwpLCBvYmogfHwgc2VsZikgOiBudWxsO1xuICAgIH1cbn1cbiIsIjx0aGVhZCAjdGhlYWRSZWYgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG48L3RoZWFkPlxuPHRib2R5ICN0Ym9keVJlZiAqbmdJZj1cImJvZHlUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzUmVuZGVyZWQ7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJvZHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGkgKyBwYWdlICogcGFnZVNpemUgfVwiPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbXB0eU1lc3NhZ2VUZW1wbGF0ZSAmJiByb3dzUmVuZGVyZWQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJlbXB0eU1lc3NhZ2VUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3Rib2R5PlxuPHRmb290ICN0Zm9vdFJlZiAqbmdJZj1cImZvb3RlclRlbXBsYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvdGZvb3Q+XG4iXX0=
|
664
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10YWJsZS9ldWktdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYmxlL2V1aS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUlOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUzRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBVTNELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBWWhELElBQTZDLFVBQVU7UUFDbkQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFtQ0QsSUFBYSxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBbUI7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxx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S0FBSztnQkFTRixlQUFlO3NCQURsQixLQUFLO2dCQVNGLFdBQVc7c0JBRGQsS0FBSztnQkFrQkYsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuaW1wb3J0IHsgRXVpVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5pbXBvcnQgeyBFdWlQYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLXBhZ2luYXRvcic7XG5cbmltcG9ydCB7IEV1aVRhYmxlU29ydFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V1aS10YWJsZS1zb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbi1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBFdWlUYWJsZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyL2V1aS10YWJsZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V1aS10YWJsZS1zZWxlY3RhYmxlLXJvdy5zZXJ2aWNlJztcbmltcG9ydCB7IFNvcnRFdmVudCB9IGZyb20gJy4vbW9kZWxzL3NvcnQtZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlzb3J0UGFyYW0gfSBmcm9tICcuL21vZGVscy9tdWx0aS1zb3J0Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGFibGUsIHRhYmxlW2V1aVRhYmxlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtFdWlUYWJsZVNvcnRTZXJ2aWNlLCBFdWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGFibGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQElucHV0KCkgcm93czogYW55W10gPSBbXTtcbiAgICBASW5wdXQoKSBwcm9wSWQgPSAnaWQnO1xuICAgIEBJbnB1dCgpIHBhZ2luYXRvcjogRXVpUGFnaW5hdG9yQ29tcG9uZW50O1xuICAgIEBJbnB1dCgpIGZpbHRlcjogRXVpVGFibGVGaWx0ZXJDb21wb25lbnQ7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQElucHV0KCkgcHJlc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHN0cmluZyA9ICdldWktdGFibGUnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZXVpLXRhYmxlX19sb2FkaW5nJykgZ2V0IGhhc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmc7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIHNlbGVjdGVkUm93cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gICAgQE91dHB1dCgpIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnRFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbXVsdGlTb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNdWx0aXNvcnRQYXJhbVtdPigpO1xuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBlbXB0eU1lc3NhZ2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgcm93c1JlbmRlcmVkOiBhbnlbXSA9IFtdO1xuXG4gICAgcHVibGljIHBhZ2UgPSAwO1xuICAgIHB1YmxpYyBwYWdlU2l6ZSA9IDA7XG4gICAgcHVibGljIHNob3dTdGlja3lIZWFkZXIgPSBmYWxzZTtcbiAgICBwdWJsaWMgZmlsdGVyZWRSb3dzID0gW107XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEV1aVRlbXBsYXRlRGlyZWN0aXZlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxFdWlUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICBAVmlld0NoaWxkKCd0aGVhZFJlZicpIHRoZWFkUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCd0Ym9keVJlZicpIHRib2R5UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCd0Zm9vdFJlZicpIHRmb290UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgICB9XG4gICAgc2V0IGxvYWRpbmcodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9sb2FkaW5nID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfbG9hZGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFzeW5jVGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hc3luY1RhYmxlO1xuICAgIH1cbiAgICBzZXQgYXN5bmNUYWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2FzeW5jVGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9hc3luY1RhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgcGFnaW5hYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFnaW5hYmxlO1xuICAgIH1cbiAgICBzZXQgcGFnaW5hYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fcGFnaW5hYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnaW5hYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVSZXNwb25zaXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXVpVGFibGVSZXNwb25zaXZlO1xuICAgIH1cbiAgICBzZXQgZXVpVGFibGVSZXNwb25zaXZlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZXVpVGFibGVSZXNwb25zaXZlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZXVpVGFibGVSZXNwb25zaXZlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVGaXhlZExheW91dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V1aVRhYmxlRml4ZWRMYXlvdXQ7XG4gICAgfVxuICAgIHNldCBldWlUYWJsZUZpeGVkTGF5b3V0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZXVpVGFibGVGaXhlZExheW91dCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlRml4ZWRMYXlvdXQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBldWlUYWJsZURyYWdnYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V1aVRhYmxlRHJhZ2dhYmxlO1xuICAgIH1cbiAgICBzZXQgZXVpVGFibGVEcmFnZ2FibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9ldWlUYWJsZURyYWdnYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlRHJhZ2dhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVDYXJkcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V1aVRhYmxlQ2FyZHM7XG4gICAgfVxuICAgIHNldCBldWlUYWJsZUNhcmRzKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZXVpVGFibGVDYXJkcyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlQ2FyZHMgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBldWlUYWJsZUJvcmRlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXVpVGFibGVCb3JkZXJlZDtcbiAgICB9XG4gICAgc2V0IGV1aVRhYmxlQm9yZGVyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9ldWlUYWJsZUJvcmRlcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZXVpVGFibGVCb3JkZXJlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGV1aVRhYmxlQ29tcGFjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V1aVRhYmxlQ29tcGFjdDtcbiAgICB9XG4gICAgc2V0IGV1aVRhYmxlQ29tcGFjdCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2V1aVRhYmxlQ29tcGFjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlQ29tcGFjdCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1N0aWNreUhlYWRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1N0aWNreUhlYWRlcjtcbiAgICB9XG4gICAgc2V0IGhhc1N0aWNreUhlYWRlcih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1N0aWNreUhlYWRlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1N0aWNreUhlYWRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1N0aWNreUNvbHVtbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNTdGlja3lDb2x1bW5zO1xuICAgIH1cbiAgICBzZXQgaGFzU3RpY2t5Q29sdW1ucyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1N0aWNreUNvbHVtbnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNTdGlja3lDb2x1bW5zID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgO1xuICAgIH1cbiAgICBzZXQgaXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MgID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDb2xzT3JkZXJhYmxlICgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQ29sc09yZGVyYWJsZSA7XG4gICAgfVxuICAgIHNldCBpc0NvbHNPcmRlcmFibGUgKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNDb2xzT3JkZXJhYmxlICA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzQ29sc09yZGVyYWJsZSAgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hvdmVyYWJsZSAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hvdmVyYWJsZSA7XG4gICAgfVxuICAgIHNldCBpc0hvdmVyYWJsZSAodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hvdmVyYWJsZSAgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0hvdmVyYWJsZSAgPSBmYWxzZTtcblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgcm93c1NyYzogYW55ID0gbnVsbDtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIHRhYmxlRmVhdHVyZXNIYW5kbGVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgc2VsZWN0Um93c0ZlYXR1cmVIYW5kbGVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgc3RpY2t5RmVhdHVyZUhhbmRsZXJJbmRleCA9IDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVJlc3BvbnNpdmUgPyAnZXVpLXRhYmxlLS1yZXNwb25zaXZlJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUZpeGVkTGF5b3V0ID8gJ2V1aS10YWJsZS0tZml4ZWQtbGF5b3V0JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUJvcmRlcmVkID8gJ2V1aS10YWJsZS0tYm9yZGVyZWQnIDogJycsXG4gICAgICAgICAgICB0aGlzLmV1aVRhYmxlQ29tcGFjdCA/ICdldWktdGFibGUtLWNvbXBhY3QnIDogJycsXG4gICAgICAgICAgICB0aGlzLmV1aVRhYmxlRHJhZ2dhYmxlID8gJ2V1aS10YWJsZS0tZHJhZ2dhYmxlJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUNhcmRzID8gJ2V1aS10YWJsZS1jYXJkcycgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaGFzU3RpY2t5SGVhZGVyID8gJ2V1aS10YWJsZS0tc3RpY2t5LWhlYWRlcicgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaGFzU3RpY2t5Q29sdW1ucyA/ICdldWktdGFibGUtLXN0aWNreS1jb2x1bW5zJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc0NvbHNPcmRlcmFibGUgPyAnZXVpLXRhYmxlLS1jb2xzLW9yZGVyYWJsZScgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNIb3ZlcmFibGUgPyAnZXVpLXRhYmxlLS1ob3ZlcmFibGUnIDogJycsXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdldWktdGFibGUnKSxcbiAgICAgICAgXVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBldWlUYWJsZVNvcnRTZXJ2aWNlOiBFdWlUYWJsZVNvcnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlOiBFdWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucm93cykge1xuICAgICAgICAgICAgdGhpcy5yb3dzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2V0UHJvcElkKHRoaXMucHJvcElkKTtcbiAgICAgICAgaWYgKGMgJiYgYy5yb3dzICYmIGMucm93cy5maXJzdENoYW5nZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGVGZWF0dXJlc0hhbmRsZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgICAgLy8gR28gdG8gZmlyc3QgcGFnZSBvbmx5IGlmIGxlbmd0aCBvZiBkYXRhIGhhcyBjaGFuZ2VkLiBUbyBhdm9pZCB1c2VyIHRvIGJlIG9uIGEgcGFnZSB0aGF0IG5vIGxvbmdlciBleGlzdCBpbiBjYXNlIG9mIGZpbHRlcmluZy5cbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aENoYW5nZWQgPSB0aGlzLnJvd3NTcmMubGVuZ3RoICE9PSBjLnJvd3MuY3VycmVudFZhbHVlLmxlbmd0aDtcblxuICAgICAgICAgICAgdGhpcy5yb3dzU3JjID0gWy4uLmMucm93cy5jdXJyZW50VmFsdWVdO1xuICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yICYmIGxlbmd0aENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5nb0ZpcnN0UGFnZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmFzeW5jVGFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UucmVzZXRSb3dzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLmFkZFJvd3MoYy5yb3dzLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UucmVzZXRSb3dzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLmFkZFJvd3MoYy5yb3dzLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYyAmJiBjLnByZXNlbGVjdGVkUm93cyAmJiBjLnByZXNlbGVjdGVkUm93cy5maXJzdENoYW5nZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5zZWxlY3RSb3dzKHRoaXMucHJlc2VsZWN0ZWRSb3dzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjICYmIGMucGFnaW5hdG9yPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLnNldExlbmd0aCh0aGlzLnJvd3MubGVuZ3RoKTtcbiAgICAgICAgICAgIGlmICghYy5wYWdpbmF0b3I/LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLmdvRmlyc3RQYWdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB0aGlzLnJvd3MgY2FuIGJlIGNoYW5nZWQgYW55dGltZSwgdGhlbiB0aGlzIGVsc2UgY2FuIGJlIGV4ZWN1dGVkIGF0IHRoYXQgdGltZSwgdGVzdGluZyB0aGlzLnBhZ2luYXRvciBhbGxvd3MgdG8gbWFrZSBzdXJlXG4gICAgICAgICAgICAvLyB0aGUgdXNlciB3aGFudHMgdG8gZGlzYWJsZSBwYWdpbmF0aW9uIG9yIGNoYW5nZSB0aGUgZGF0YXNvdXJjZVxuICAgICAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRvcikge1xuICAgICAgICAgICAgICAgIHRoaXMucm93c1JlbmRlcmVkID0gdGhpcy5yb3dzU3JjID8gdGhpcy5yb3dzU3JjIDogWy4uLnRoaXMucm93c107XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvd3NTcmMgPSBbLi4udGhpcy5yb3dzXTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lMmVBdHRyKSB7XG4gICAgICAgICAgICB0aGlzLmUyZUF0dHIgPSAnZXVpLXRhYmxlJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5nZXRUeXBlKCkgPT09ICdoZWFkZXInKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXRlbS5nZXRUeXBlKCkgPT09ICdib2R5Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9keVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gJ2Zvb3RlcicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvb3RlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gJ2VtcHR5TWVzc2FnZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtcHR5TWVzc2FnZVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYXN5bmNUYWJsZSkge1xuICAgICAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLnNvcnRpbmdQYXJhbXMkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzb3J0aW5nUGFyYW1zOiB7IHNvcnQ6IHN0cmluZyB8IG51bGw7IG9yZGVyOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7IHNvcnQ6IHNvcnRpbmdQYXJhbXMuc29ydCwgb3JkZXI6IHNvcnRpbmdQYXJhbXMub3JkZXIgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmV1aVRhYmxlU29ydFNlcnZpY2UubXVsdGlzb3J0UGFyYW1zU29ydCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgobXVsdGlTb3J0UGFyYW1zOiBNdWx0aXNvcnRQYXJhbVtdKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpU29ydENoYW5nZS5lbWl0KG11bHRpU29ydFBhcmFtcy5maWx0ZXIoKGVsKSA9PiBlbC5wb3NpdGlvbiA+IDApKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNlbGVjdFJvd3NGZWF0dXJlSGFuZGxlcigpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnNlbGVjdFJvd3ModGhpcy5wcmVzZWxlY3RlZFJvd3MpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RBbGxSb3dzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2VsZWN0QWxsUm93cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNlbGVjdEFsbFJvd3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS51bnNlbGVjdEFsbFJvd3MoKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgc2VsZWN0Um93cyhyb3dzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2VsZWN0Um93cyhyb3dzKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgZmlsdGVyUm93cyhmaWx0ZXI6IHN0cmluZywgcjogYW55W10pOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSBmaWx0ZXJcbiAgICAgICAgICAgID8gci5maWx0ZXIoKHJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmcgPSB0aGlzLmdldFByb3BzKHJvdywgZmlsdGVyKS5maWx0ZXIoKHApID0+IHAubWF0Y2ggPT09IHRydWUpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoaW5nPy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiByO1xuXG4gICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5yZXNldFJvd3MoKTtcbiAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLmFkZFJvd3Mocm93cyk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJlZFJvd3MgPSByb3dzO1xuXG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTb3J0KHNvcnQ6IHN0cmluZyB8IG51bGwsIG9yZGVyOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLnNldFNvcnQoc29ydCwgb3JkZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RpY2t5RmVhdHVyZUhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRpbWVvdXQgPSB0aGlzLnN0aWNreUZlYXR1cmVIYW5kbGVySW5kZXggPT09IDAgPyAyNTAgOiAwO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYm9keVRySXRlbXMgPSBBcnJheS5mcm9tKHRoaXMudGJvZHlSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0cicpKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LmNsaWVudFdpZHRoIHx8IDA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRoZWFkUmVmKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhJdGVtczogSFRNTFRhYmxlQ2VsbEVsZW1lbnRbXSA9IEFycmF5LmZyb20odGhpcy50aGVhZFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ldWktdGFibGVfX2NvbC0tc3RpY2t5JykpO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgbGVmdCAmIHJpZ2h0IHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgdGhJdGVtcy5mb3JFYWNoKCh0aDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGguc3R5bGUubGVmdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLnJpZ2h0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBGaXJzdCBDb2xzICYgTGFzdCBDb2xzXG4gICAgICAgICAgICAgICAgY29uc3QgdGhJdGVtc1N0aWNreUZpcnN0Q29sID0gdGhJdGVtcy5maWx0ZXIoKHRoKSA9PiB0aC5vZmZzZXRMZWZ0ICsgdGguY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhJdGVtc1N0aWNreUxhc3RDb2wgPSB0aEl0ZW1zLmZpbHRlcigodGgpID0+IHRoLm9mZnNldExlZnQgKyB0aC5jbGllbnRXaWR0aCA+IGNvbnRhaW5lcldpZHRoKTtcblxuICAgICAgICAgICAgICAgIHRoSXRlbXNTdGlja3lGaXJzdENvbC5mb3JFYWNoKCh0aCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGhJdGVtc1N0aWNreUZpcnN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBwYXJzZUludCh0aEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5zdHlsZS5sZWZ0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLmxlZnQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgbCkgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGhJdGVtc1N0aWNreUZpcnN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGguY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1maXJzdCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aEl0ZW1zU3RpY2t5TGFzdENvbC5yZXZlcnNlKCkuZm9yRWFjaCgodGgsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdyA9IHRoSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludCh0aEl0ZW1zU3RpY2t5TGFzdENvbFtpIC0gMV0/LnN0eWxlLnJpZ2h0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLnJpZ2h0ID0gKGkgPT09IDAgPyAwIDogdyArIHIpICsgJ3B4JztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaSArIDEgPT09IHRoSXRlbXNTdGlja3lMYXN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGguY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1sYXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm9keVRySXRlbXMuZm9yRWFjaCgodHIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZEl0ZW1zOiBIVE1MVGFibGVDZWxsRWxlbWVudFtdID0gQXJyYXkuZnJvbSh0ci5xdWVyeVNlbGVjdG9yQWxsKCcuZXVpLXRhYmxlX19jb2wtLXN0aWNreScpKTtcbiAgICAgICAgICAgICAgICB0ZEl0ZW1zLmZvckVhY2goKHRkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRkLnN0eWxlLmxlZnQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0ZC5zdHlsZS5yaWdodCA9IG51bGw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYm9keVRySXRlbXMuZm9yRWFjaCgodHIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZEl0ZW1zOiBIVE1MVGFibGVDZWxsRWxlbWVudFtdID0gQXJyYXkuZnJvbSh0ci5xdWVyeVNlbGVjdG9yQWxsKCcuZXVpLXRhYmxlX19jb2wtLXN0aWNreScpKTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBGaXJzdCBDb2xzXG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtc1N0aWNreUZpcnN0Q29sID0gdGRJdGVtcy5maWx0ZXIoKHRkKSA9PiB0ZC5vZmZzZXRMZWZ0ICsgdGQuY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCk7XG4gICAgICAgICAgICAgICAgdGRJdGVtc1N0aWNreUZpcnN0Q29sLmZvckVhY2goKHRkLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHcgPSB0ZEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbCA9IHBhcnNlSW50KHRkSXRlbXNTdGlja3lGaXJzdENvbFtpIC0gMV0/LnN0eWxlLmxlZnQsIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgdGQuc3R5bGUubGVmdCA9IChpID09PSAwID8gMCA6IHcgKyBsKSArICdweCc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgKyAxID09PSB0ZEl0ZW1zU3RpY2t5Rmlyc3RDb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZC5jbGFzc0xpc3QuYWRkKCdldWktdGFibGVfX2NvbC0tc3RpY2t5LXNoYWRvd2VkLWZpcnN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBMYXN0IENvbHNcbiAgICAgICAgICAgICAgICBjb25zdCB0ZEl0ZW1zU3RpY2t5TGFzdENvbCA9IHRkSXRlbXMuZmlsdGVyKCh0ZCkgPT4gdGQub2Zmc2V0TGVmdCArIHRkLmNsaWVudFdpZHRoID4gY29udGFpbmVyV2lkdGgpO1xuICAgICAgICAgICAgICAgIHRkSXRlbXNTdGlja3lMYXN0Q29sLnJldmVyc2UoKS5mb3JFYWNoKCh0ZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGRJdGVtc1N0aWNreUxhc3RDb2xbaSAtIDFdPy5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHBhcnNlSW50KHRkSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uc3R5bGUucmlnaHQsIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgdGQuc3R5bGUucmlnaHQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgcikgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGRJdGVtc1N0aWNreUxhc3RDb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZC5jbGFzc0xpc3QuYWRkKCdldWktdGFibGVfX2NvbC0tc3RpY2t5LXNoYWRvd2VkLWxhc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRmb290UmVmKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtczogSFRNTFRhYmxlQ2VsbEVsZW1lbnRbXSA9IEFycmF5LmZyb20odGhpcy50Zm9vdFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ldWktdGFibGVfX2NvbC0tc3RpY2t5JykpO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgbGVmdCAmIHJpZ2h0IHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgdGRJdGVtcy5mb3JFYWNoKCh0aDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGguc3R5bGUubGVmdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLnJpZ2h0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBGaXJzdCBDb2xzICYgTGFzdCBDb2xzXG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtc1N0aWNreUZpcnN0Q29sID0gdGRJdGVtcy5maWx0ZXIoKHRkKSA9PiB0ZC5vZmZzZXRMZWZ0ICsgdGQuY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtc1N0aWNreUxhc3RDb2wgPSB0ZEl0ZW1zLmZpbHRlcigodGQpID0+IHRkLm9mZnNldExlZnQgKyB0ZC5jbGllbnRXaWR0aCA+IGNvbnRhaW5lcldpZHRoKTtcblxuICAgICAgICAgICAgICAgIHRkSXRlbXNTdGlja3lGaXJzdENvbC5mb3JFYWNoKCh0ZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGRJdGVtc1N0aWNreUZpcnN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBwYXJzZUludCh0ZEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5zdHlsZS5sZWZ0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRkLnN0eWxlLmxlZnQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgbCkgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGRJdGVtc1N0aWNreUZpcnN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGQuY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1maXJzdCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0ZEl0ZW1zU3RpY2t5TGFzdENvbC5yZXZlcnNlKCkuZm9yRWFjaCgodGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdyA9IHRkSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludCh0ZEl0ZW1zU3RpY2t5TGFzdENvbFtpIC0gMV0/LnN0eWxlLnJpZ2h0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRkLnN0eWxlLnJpZ2h0ID0gKGkgPT09IDAgPyAwIDogdyArIHIpICsgJ3B4JztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaSArIDEgPT09IHRkSXRlbXNTdGlja3lMYXN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGQuY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1sYXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGltZW91dCk7XG5cbiAgICAgICAgdGhpcy5zdGlja3lGZWF0dXJlSGFuZGxlckluZGV4Kys7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0YWJsZUZlYXR1cmVzSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlclN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLnNvcnRpbmdQYXJhbXMkLFxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IgPyB0aGlzLnBhZ2luYXRvci5wYWdlJCA6IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCksXG4gICAgICAgICAgICB0aGlzLmZpbHRlciA/IHRoaXMuZmlsdGVyLmZpbHRlciQgOiBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLm11bHRpc29ydFBhcmFtc1NvcnQkLFxuICAgICAgICBdKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW3NvcnRpbmdQYXJhbXMsIHBhZ2luYXRpb24sIGZpbHRlciwgbXVsdGlzb3J0UGFyYW1zXSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCByID0gWy4uLnRoaXMucm93c1NyY107XG4gICAgICAgICAgICAgICAgaWYgKHNvcnRpbmdQYXJhbXMub3JkZXIgIT09IG51bGwgJiYgc29ydGluZ1BhcmFtcy5zb3J0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG11bHRpc29ydCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBtdWx0aXNvcnQucHVzaChuZXcgTXVsdGlzb3J0UGFyYW0oc29ydGluZ1BhcmFtcy5zb3J0LCBzb3J0aW5nUGFyYW1zLm9yZGVyLCAxKSk7XG4gICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmRvTXVsdGlTb3J0KG11bHRpc29ydCwgcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG11bHRpc29ydFBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRhYmxlQ29sdW1ucyA9IG11bHRpc29ydFBhcmFtcy5maWx0ZXIoKGNvbCkgPT4gY29sLm9yZGVyICE9PSBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvcnRhYmxlQ29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByID0gdGhpcy5kb011bHRpU29ydChzb3J0YWJsZUNvbHVtbnMsIHIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHIgPSB0aGlzLmZpbHRlclJvd3MoZmlsdGVyLCByKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3Iuc2V0TGVuZ3RoKHIubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMucGFnaW5hdGVSb3dzKHBhZ2luYXRpb24sIHIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucm93c1JlbmRlcmVkID0gcjtcbiAgICAgICAgICAgICAgICB0aGlzLnN0aWNreUZlYXR1cmVIYW5kbGVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RPbmx5VmlzaWJsZVJvd3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnJlc2V0Um93cygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UudW5zZWxlY3RBbGxSb3dzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5hZGRSb3dzKHRoaXMucm93c1JlbmRlcmVkKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgZG9NdWx0aVNvcnQobXVsdGlzb3J0UGFyYW1zOiBNdWx0aXNvcnRQYXJhbVtdLCByOiBhbnkpOiBhbnlbXSB7XG4gICAgICAgIHIgPSB0aGlzLm11bHRpU29ydFJvd3MobXVsdGlzb3J0UGFyYW1zLCAxLCByKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBtdWx0aVNvcnRSb3dzKG11bHRpc29ydFBhcmFtczogTXVsdGlzb3J0UGFyYW1bXSwgY3VycmVudFBvc2l0aW9uOiBudW1iZXIsIHI6IGFueSk6IGFueVtdIHtcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBsZXQgcm93czogYW55W10gPSBudWxsO1xuICAgICAgICBjb25zdCBjb2xQYXJhbXMgPSBtdWx0aXNvcnRQYXJhbXMuZmluZCgoY29sKSA9PiBjb2wucG9zaXRpb24gPT09IGN1cnJlbnRQb3NpdGlvbik7XG4gICAgICAgIGlmIChjb2xQYXJhbXMub3JkZXIgPT09ICdkZXNjJykge1xuICAgICAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgIHJvd3MgPSByLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDb2x1bW5Tb3J0YWJsZShhLCBiLCBtdWx0aXNvcnRQYXJhbXMsIGN1cnJlbnRQb3NpdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc29ydFR3b1Jvd3NEZXNjKGEsIGIsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICByb3dzID0gci5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ29sdW1uU29ydGFibGUoYSwgYiwgbXVsdGlzb3J0UGFyYW1zLCBjdXJyZW50UG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvcnRUd29Sb3dzQXNjKGEsIGIsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlzb3J0UGFyYW1zLmxlbmd0aCA9PT0gY3VycmVudFBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gcm93cztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm11bHRpU29ydFJvd3MobXVsdGlzb3J0UGFyYW1zLCArK2N1cnJlbnRQb3NpdGlvbiwgcm93cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGlzQ29sdW1uU29ydGFibGUoYTogYW55LCBiOiBhbnksIG11bHRpc29ydFBhcmFtczogTXVsdGlzb3J0UGFyYW1bXSwgY3VycmVudFBvc2l0aW9uOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiA9PT0gMSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IGNvbFBhcmFtcyA9IG11bHRpc29ydFBhcmFtcy5maW5kKChjb2wpID0+IGNvbC5wb3NpdGlvbiA9PT0gY3VycmVudFBvc2l0aW9uIC0gMSk7XG4gICAgICAgIGNvbnN0IGFDb2wgPSB0aGlzLmdldE9ialByb3BWYWx1ZShhLCBjb2xQYXJhbXMubmFtZSk7XG4gICAgICAgIC8vIHR5cGVvZiB0aGlzLmdldE9ialByb3AoYSwgY29sUGFyYW1zLm5hbWUpID09PSAnc3RyaW5nJ1xuICAgICAgICAvLyAgICAgPyB0aGlzLmdldE9ialByb3AoYSwgY29sUGFyYW1zLm5hbWUpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLy8gICAgIDogdGhpcy5nZXRPYmpQcm9wKGEsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgY29uc3QgYkNvbCA9IHRoaXMuZ2V0T2JqUHJvcFZhbHVlKGIsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgLy8gdHlwZW9mIHRoaXMuZ2V0T2JqUHJvcChiLCBjb2xQYXJhbXMubmFtZSkgPT09ICdzdHJpbmcnXG4gICAgICAgIC8vICAgICA/IHRoaXMuZ2V0T2JqUHJvcChiLCBjb2xQYXJhbXMubmFtZSkudG9Mb3dlckNhc2UoKVxuICAgICAgICAvLyAgICAgOiB0aGlzLmdldE9ialByb3AoYiwgY29sUGFyYW1zLm5hbWUpO1xuICAgICAgICBpZiAoYUNvbCAhPT0gYkNvbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiAtIDEgPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNDb2x1bW5Tb3J0YWJsZShhLCBiLCBtdWx0aXNvcnRQYXJhbXMsIC0tY3VycmVudFBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vVGhpcyBmdW5jdGlvbiBpcyB0byBkbyB0aGUgc29ydGluZyB0aGUgdGFibGUgd2l0aCB0aGUgY29tYmluYXRpb24gb2YgMCxudWxsIGFuZCB0ZXh0IGluIGRlc2NlbmRpbmcgb3JkZXIuXG4gICAgLy9nZXRPYmpQcm9wVmFsdWUgaXMgdG8gZ2V0IHRoZSBvYmplY3QgcHJvcGVydHkgdmFsdWVcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIHNvcnRUd29Sb3dzRGVzYyhhOiBhbnksIGI6IGFueSwgY29sTmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYVNvcnRPbiA9IHRoaXMuZ2V0T2JqUHJvcFZhbHVlKGEsIGNvbE5hbWUpO1xuICAgICAgICBjb25zdCBiU29ydE9uID0gdGhpcy5nZXRPYmpQcm9wVmFsdWUoYiwgY29sTmFtZSk7XG4gICAgICAgIGlmICgoYVNvcnRPbiA9PT0gbnVsbCB8fCBhU29ydE9uID09PSB1bmRlZmluZWQpICYmIGJTb3J0T24pIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2UgaWYgKGFTb3J0T24gJiYgKGJTb3J0T24gPT09IG51bGwgfHwgYlNvcnRPbiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2UgaWYgKChhU29ydE9uID09PSBudWxsIHx8IGFTb3J0T24gPT09IHVuZGVmaW5lZCkgJiYgKGJTb3J0T24gPT09IG51bGwgfHwgYlNvcnRPbiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0gZWxzZSBpZiAoKGFTb3J0T24gPT09IG51bGwgfHwgYVNvcnRPbiA9PT0gdW5kZWZpbmVkKSAmJiBiU29ydE9uID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmIChhU29ydE9uID09PSAwICYmIChiU29ydE9uID09PSBudWxsIHx8IGJTb3J0T24gPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhU29ydE9uIDwgYlNvcnRPbiA/IDEgOiBhU29ydE9uID4gYlNvcnRPbiA/IC0xIDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vVGhpcyBmdW5jdGlvbiBpcyB0byBkbyB0aGUgc29ydGluZyB0aGUgdGFibGUgd2l0aCB0aGUgY29tYmluYXRpb24gb2YgMCxudWxsIGFuZCB0ZXh0IGluIGFzY2VuZGluZyBvcmRlci5cbiAgICAvL2dldE9ialByb3BWYWx1ZSBpcyB0byBnZXQgdGhlIG9iamVjdCBwcm9wZXJ0eSB2YWx1ZVxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgc29ydFR3b1Jvd3NBc2MoYTogYW55LCBiOiBhbnksIGNvbE5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGFTb3J0T24gPSB0aGlzLmdldE9ialByb3BWYWx1ZShhLCBjb2xOYW1lKTtcbiAgICAgICAgY29uc3QgYlNvcnRPbiA9IHRoaXMuZ2V0T2JqUHJvcFZhbHVlKGIsIGNvbE5hbWUpO1xuICAgICAgICBpZiAoKGFTb3J0T24gPT09IG51bGwgfHwgYVNvcnRPbiA9PT0gdW5kZWZpbmVkKSAmJiBiU29ydE9uKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVNvcnRPbiAmJiAoYlNvcnRPbiA9PT0gbnVsbCB8fCBiU29ydE9uID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmICgoYVNvcnRPbiA9PT0gbnVsbCB8fCBhU29ydE9uID09PSB1bmRlZmluZWQpICYmIChiU29ydE9uID09PSBudWxsIHx8IGJTb3J0T24gPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9IGVsc2UgaWYgKChhU29ydE9uID09PSBudWxsIHx8IGFTb3J0T24gPT09IHVuZGVmaW5lZCkgJiYgYlNvcnRPbiA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2UgaWYgKGFTb3J0T24gPT09IDAgJiYgKGJTb3J0T24gPT09IG51bGwgfHwgYlNvcnRPbiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYVNvcnRPbiA8IGJTb3J0T24gPyAtMSA6IGFTb3J0T24gPiBiU29ydE9uID8gMSA6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGdldE9ialByb3BWYWx1ZShvYmo6IGFueSwgcHJvcDogc3RyaW5nKTogYW55IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldE9ialByb3Aob2JqLCBwcm9wKTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50b0xvd2VyQ2FzZSgpIDogdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RSb3dzRmVhdHVyZUhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0Um93c0ZlYXR1cmVIYW5kbGVyU3Vic2NyaXB0aW9uID0gdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnNlbGVjdGVkUm93cyRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZDogYW55W10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93cy5lbWl0KHNlbGVjdGVkKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgZ2V0UHJvcHMob2JqOiBhbnlbXSwgZmlsdGVyOiBzdHJpbmcpOiB7IGtleTogc3RyaW5nOyBtYXRjaDogYm9vbGVhbjsgdmFsdWU6IHN0cmluZyB8IG51bWJlciB9W10ge1xuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gKHZhbDogYW55KTogYm9vbGVhbiA9PiB2YWwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCc7XG4gICAgICAgIGNvbnN0IGFkZERlbGltaXRlciA9IChhOiBzdHJpbmcsIGI6IHN0cmluZyk6IHN0cmluZyA9PiAoYSAmJiBhICE9PSAnMCcgPyBgJHthfS4ke2J9YCA6IGIpO1xuICAgICAgICBjb25zdCBwcm9wcyA9IFtdO1xuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IHBhdGhzID0gKHBhdGhPYmogPSB7fSwgaGVhZCA9ICcnKTogYW55W10gPT5cbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHBhdGhPYmopLnJlZHVjZSgocHJvZHVjdCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZnVsbFBhdGggPSBhZGREZWxpbWl0ZXIoaGVhZCwga2V5KTtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9ICh2OiBhbnkpOiBib29sZWFuID0+XG4gICAgICAgICAgICAgICAgICAgIHYgJiZcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHYgIT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAgICAgICAgICAgID8udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleE9mKGZpbHRlcj8udHJpbSgpLnRvTG93ZXJDYXNlKCkpICE9PSAtMTtcblxuICAgICAgICAgICAgICAgIGlmIChrZXkgIT09ICcwJyAmJiB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLnB1c2goeyBrZXk6IGFkZERlbGltaXRlcihoZWFkLCBrZXkpLCBtYXRjaDogbWF0Y2godmFsdWUpLCB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNPYmplY3QodmFsdWUpID8gcHJvZHVjdC5jb25jYXQocGF0aHModmFsdWUsIGZ1bGxQYXRoKSkgOiBwcm9kdWN0LmNvbmNhdChmdWxsUGF0aCk7XG4gICAgICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgcGF0aHMob2JqKTtcblxuICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBwYWdpbmF0ZVJvd3MocGFnaW5hdGlvbjogUGFnaW5hdGlvbkV2ZW50LCByOiBhbnlbXSk6IGFueVtdIHtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnaW5hdGlvbi5wYWdlO1xuICAgICAgICB0aGlzLnBhZ2VTaXplID0gcGFnaW5hdGlvbi5wYWdlU2l6ZTtcblxuICAgICAgICByZXR1cm4gci5zbGljZSh0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplLCB0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplICsgdGhpcy5wYWdlU2l6ZSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBnZXRPYmpQcm9wKG9iajogYW55LCBwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcHJvcCA/IHByb3Auc3BsaXQoJy4nKS5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChwcmV2ID8gcHJldltjdXJyXSA6IG51bGwpLCBvYmogfHwgc2VsZikgOiBudWxsO1xuICAgIH1cbn1cbiIsIjx0aGVhZCAjdGhlYWRSZWYgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG48L3RoZWFkPlxuPHRib2R5ICN0Ym9keVJlZiAqbmdJZj1cImJvZHlUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzUmVuZGVyZWQ7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJvZHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGkgKyBwYWdlICogcGFnZVNpemUgfVwiPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbXB0eU1lc3NhZ2VUZW1wbGF0ZSAmJiByb3dzUmVuZGVyZWQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJlbXB0eU1lc3NhZ2VUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3Rib2R5PlxuPHRmb290ICN0Zm9vdFJlZiAqbmdJZj1cImZvb3RlclRlbXBsYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvdGZvb3Q+XG4iXX0=
|