@ethlete/cdk 4.2.0 → 4.2.2
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/CHANGELOG.md +16 -0
- package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +6 -7
- package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +3 -3
- package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +3 -3
- package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +3 -3
- package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +3 -3
- package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +3 -3
- package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +9 -18
- package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +3 -3
- package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +3 -3
- package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +7 -7
- package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +7 -7
- package/esm2022/lib/components/button/components/button/button.component.mjs +3 -3
- package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +7 -7
- package/esm2022/lib/components/button/directives/button/button.directive.mjs +3 -3
- package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +3 -3
- package/esm2022/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.mjs +11 -11
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.mjs +3 -3
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +3 -3
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +3 -3
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +3 -3
- package/esm2022/lib/components/filter/filter-overlay/services/filter-overlay.service.mjs +3 -3
- package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +3 -3
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +3 -3
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +3 -3
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +3 -3
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +5 -5
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +6 -8
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +7 -9
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +8 -8
- package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.mjs +4 -5
- package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.mjs +5 -5
- package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +3 -3
- package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +6 -6
- package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/input/input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +3 -3
- package/esm2022/lib/components/forms/services/form-field-state.service.mjs +3 -3
- package/esm2022/lib/components/forms/services/form-group-state.service.mjs +3 -3
- package/esm2022/lib/components/forms/services/input-state.service.mjs +3 -3
- package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +3 -3
- package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +3 -3
- package/esm2022/lib/components/forms/utils/input.base.mjs +3 -3
- package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +3 -3
- package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +3 -3
- package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +3 -3
- package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +3 -3
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +3 -3
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +3 -3
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +3 -3
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +3 -3
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +3 -3
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +3 -3
- package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +3 -3
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +3 -3
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +3 -3
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +3 -3
- package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +3 -3
- package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/context-menu-trigger.mjs +6 -6
- package/esm2022/lib/components/overlay/components/menu/menu-aim.mjs +6 -6
- package/esm2022/lib/components/overlay/components/menu/menu-bar.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-base.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-group.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-item-checkbox.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-item-radio.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-item-selectable.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-item.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-module.mjs +4 -4
- package/esm2022/lib/components/overlay/components/menu/menu-stack.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-trigger-base.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-trigger.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu.mjs +3 -3
- package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +3 -3
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.mjs +3 -3
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.mjs +3 -3
- package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +4 -4
- package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +8 -8
- package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +3 -3
- package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +8 -8
- package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +4 -4
- package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.mjs +3 -3
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +3 -3
- package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +3 -3
- package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +7 -7
- package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +3 -3
- package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +4 -4
- package/esm2022/lib/components/pagination/utils/pagination.util.mjs +1 -1
- package/esm2022/lib/components/picture/picture-data.directive.mjs +3 -3
- package/esm2022/lib/components/picture/picture.component.mjs +8 -8
- package/esm2022/lib/components/picture/pipes/normalize-source/normalize-source.pipe.mjs +3 -3
- package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +6 -6
- package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +5 -6
- package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +3 -3
- package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +219 -146
- package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +3 -3
- package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +3 -3
- package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +5 -6
- package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +3 -3
- package/esm2022/lib/components/sort/services/sort-header-intl.mjs +3 -3
- package/esm2022/lib/components/table/components/table/table.component.mjs +3 -3
- package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +3 -3
- package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +3 -3
- package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +3 -3
- package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +3 -3
- package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +3 -3
- package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +3 -3
- package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +7 -9
- package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +3 -3
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +3 -3
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +3 -3
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +3 -3
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +3 -3
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +3 -3
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +3 -3
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +3 -3
- package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +3 -3
- package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +3 -3
- package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +3 -3
- package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +21 -13
- package/esm2022/lib/services/swipe-handler.service.mjs +3 -3
- package/fesm2022/ethlete-cdk.mjs +898 -834
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/picture/picture.component.d.ts +1 -1
- package/lib/components/scrollable/components/scrollable/scrollable.component.d.ts +55 -35
- package/lib/components/tabs/utils/paginated-tab-header.directive.d.ts +1 -1
- package/package.json +7 -7
|
@@ -7,10 +7,10 @@ export class SelectOptionComponent {
|
|
|
7
7
|
constructor() {
|
|
8
8
|
this.selectOption = inject(SELECT_OPTION_TOKEN);
|
|
9
9
|
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SelectOptionComponent, isStandalone: true, selector: "et-select-option", host: { classAttribute: "et-select-option" }, hostDirectives: [{ directive: i1.SelectOptionDirective, inputs: ["value", "value", "disabled", "disabled"] }], ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectOptionComponent, decorators: [{
|
|
14
14
|
type: Component,
|
|
15
15
|
args: [{
|
|
16
16
|
selector: 'et-select-option',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AsyncPipe
|
|
1
|
+
import { AsyncPipe } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef, inject } from '@angular/core';
|
|
3
3
|
import { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';
|
|
4
4
|
import { InputStateService } from '../../../../services';
|
|
@@ -15,8 +15,8 @@ export class SelectFieldComponent extends DecoratedFormFieldBase {
|
|
|
15
15
|
super(...arguments);
|
|
16
16
|
this.inputState = inject(InputStateService);
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SelectFieldComponent, isStandalone: true, selector: "et-select-field", host: { classAttribute: "et-form-field et-select-field" }, usesInheritance: true, hostDirectives: [{ directive: i1.SelectFieldDirective }, { directive: i2.StaticFormFieldDirective }, { directive: i3.WriteableInputDirective }, { directive: i0.forwardRef(() => i4.DynamicFormFieldDirective), inputs: ["hideErrorMessage", "hideErrorMessage"] }], ngImport: i0, template: `
|
|
20
20
|
<ng-content select="et-label" />
|
|
21
21
|
<div class="et-select-field-input">
|
|
22
22
|
<ng-content />
|
|
@@ -24,7 +24,7 @@ export class SelectFieldComponent extends DecoratedFormFieldBase {
|
|
|
24
24
|
<et-error [errors]="inputState.errors$ | async" />
|
|
25
25
|
`, isInline: true, dependencies: [{ kind: "component", type: ErrorComponent, selector: "et-error", inputs: ["errors"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectFieldComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
29
|
args: [{
|
|
30
30
|
selector: 'et-select-field',
|
|
@@ -50,7 +50,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
50
50
|
inputs: ['hideErrorMessage'],
|
|
51
51
|
},
|
|
52
52
|
],
|
|
53
|
-
imports: [ErrorComponent,
|
|
53
|
+
imports: [ErrorComponent, AsyncPipe],
|
|
54
54
|
}]
|
|
55
55
|
}] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9jb21wb25lbnRzL3NlbGVjdC1maWVsZC9zZWxlY3QtZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFRLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUE0QnhELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxzQkFBc0I7SUExQmhFOztRQTJCcUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBQzNEOzhHQUZZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGthQXhCckI7Ozs7OztHQU1ULDREQWdCUyxjQUFjLG9FQUFFLFNBQVM7OzJGQUV4QixvQkFBb0I7a0JBMUJoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7O0dBTVQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSwrQkFBK0I7cUJBQ3ZDO29CQUNELGNBQWMsRUFBRTt3QkFDZCxvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2Qjs0QkFDRSxTQUFTLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFvQzs0QkFDekYsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUM7eUJBQzdCO3FCQUNGO29CQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFR5cGUsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmUsIFN0YXRpY0Zvcm1GaWVsZERpcmVjdGl2ZSwgV3JpdGVhYmxlSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IElucHV0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgRGVjb3JhdGVkRm9ybUZpZWxkQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZXJyb3InO1xuaW1wb3J0IHsgU2VsZWN0RmllbGREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtc2VsZWN0LWZpZWxkJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldC1sYWJlbFwiIC8+XG4gICAgPGRpdiBjbGFzcz1cImV0LXNlbGVjdC1maWVsZC1pbnB1dFwiPlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZXQtZXJyb3IgW2Vycm9yc109XCJpbnB1dFN0YXRlLmVycm9ycyQgfCBhc3luY1wiIC8+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1mb3JtLWZpZWxkIGV0LXNlbGVjdC1maWVsZCcsXG4gIH0sXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgU2VsZWN0RmllbGREaXJlY3RpdmUsXG4gICAgU3RhdGljRm9ybUZpZWxkRGlyZWN0aXZlLFxuICAgIFdyaXRlYWJsZUlucHV0RGlyZWN0aXZlLFxuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogZm9yd2FyZFJlZigoKSA9PiBEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlKSBhcyBUeXBlPER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmU+LFxuICAgICAgaW5wdXRzOiBbJ2hpZGVFcnJvck1lc3NhZ2UnXSxcbiAgICB9LFxuICBdLFxuICBpbXBvcnRzOiBbRXJyb3JDb21wb25lbnQsIEFzeW5jUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdEZpZWxkQ29tcG9uZW50IGV4dGVuZHMgRGVjb3JhdGVkRm9ybUZpZWxkQmFzZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbnB1dFN0YXRlID0gaW5qZWN0KElucHV0U3RhdGVTZXJ2aWNlKTtcbn1cbiJdfQ==
|
|
@@ -5,10 +5,10 @@ export class SelectFieldDirective {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.elementRef = inject(ElementRef);
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: SelectFieldDirective, isStandalone: true, providers: [{ provide: SELECT_FIELD_TOKEN, useExisting: SelectFieldDirective }], exportAs: ["etSelectField"], ngImport: i0 }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectFieldDirective, decorators: [{
|
|
12
12
|
type: Directive,
|
|
13
13
|
args: [{
|
|
14
14
|
standalone: true,
|
|
@@ -8,10 +8,10 @@ import * as i3 from "../../../../directives/dynamic-form-field/dynamic-form-fiel
|
|
|
8
8
|
import * as i4 from "../../directives/selection-list-field/selection-list-field.directive";
|
|
9
9
|
import * as i5 from "../../../../directives/input/input.directive";
|
|
10
10
|
export class SelectionListFieldComponent {
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectionListFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SelectionListFieldComponent, isStandalone: true, selector: "et-selection-list-field", hostDirectives: [{ directive: i1.StaticFormFieldDirective }, { directive: i2.WriteableInputDirective }, { directive: i0.forwardRef(() => i3.DynamicFormFieldDirective), inputs: ["hideErrorMessage", "hideErrorMessage"] }, { directive: i4.SelectionListFieldDirective, inputs: ["multiple", "multiple"] }, { directive: i5.InputDirective }], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectionListFieldComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
16
|
args: [{
|
|
17
17
|
selector: 'et-selection-list-field',
|
|
@@ -19,7 +19,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
19
19
|
standalone: true,
|
|
20
20
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
21
21
|
encapsulation: ViewEncapsulation.None,
|
|
22
|
-
imports: [],
|
|
23
22
|
hostDirectives: [
|
|
24
23
|
StaticFormFieldDirective,
|
|
25
24
|
WriteableInputDirective,
|
|
@@ -35,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
35
34
|
],
|
|
36
35
|
}]
|
|
37
36
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWxpc3QtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0aW9uLWxpc3QvY29tcG9uZW50cy9zZWxlY3Rpb24tbGlzdC1maWVsZC9zZWxlY3Rpb24tbGlzdC1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBUSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixjQUFjLEVBQ2Qsd0JBQXdCLEVBQ3hCLHVCQUF1QixHQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBc0IvRCxNQUFNLE9BQU8sMkJBQTJCOzhHQUEzQiwyQkFBMkI7a0dBQTNCLDJCQUEyQixtYUFsQjVCLGdCQUFnQjs7MkZBa0JmLDJCQUEyQjtrQkFwQnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsY0FBYyxFQUFFO3dCQUNkLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2Qjs0QkFDRSxTQUFTLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFvQzs0QkFDekYsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUM7eUJBQzdCO3dCQUNEOzRCQUNFLFNBQVMsRUFBRSwyQkFBMkI7NEJBQ3RDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQzt5QkFDckI7d0JBQ0QsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFR5cGUsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlLFxuICBJbnB1dERpcmVjdGl2ZSxcbiAgU3RhdGljRm9ybUZpZWxkRGlyZWN0aXZlLFxuICBXcml0ZWFibGVJbnB1dERpcmVjdGl2ZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTZWxlY3Rpb25MaXN0RmllbGREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtc2VsZWN0aW9uLWxpc3QtZmllbGQnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50IC8+YCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgU3RhdGljRm9ybUZpZWxkRGlyZWN0aXZlLFxuICAgIFdyaXRlYWJsZUlucHV0RGlyZWN0aXZlLFxuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogZm9yd2FyZFJlZigoKSA9PiBEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlKSBhcyBUeXBlPER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmU+LFxuICAgICAgaW5wdXRzOiBbJ2hpZGVFcnJvck1lc3NhZ2UnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogU2VsZWN0aW9uTGlzdEZpZWxkRGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ211bHRpcGxlJ10sXG4gICAgfSxcbiAgICB7IGRpcmVjdGl2ZTogSW5wdXREaXJlY3RpdmUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uTGlzdEZpZWxkQ29tcG9uZW50IHt9XG4iXX0=
|
|
@@ -3,8 +3,8 @@ import { SelectionListOptionDirective } from '../../directives';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../directives/selection-list-option/selection-list-option.directive";
|
|
5
5
|
export class SelectionListOptionComponent {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectionListOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SelectionListOptionComponent, isStandalone: true, selector: "et-selection-list-option", hostDirectives: [{ directive: i1.SelectionListOptionDirective, inputs: ["value", "value", "disabled", "disabled", "isResetOption", "isResetOption"] }], ngImport: i0, template: `
|
|
8
8
|
<div class="et-selection-list-option-content">
|
|
9
9
|
<ng-content />
|
|
10
10
|
</div>
|
|
@@ -14,7 +14,7 @@ export class SelectionListOptionComponent {
|
|
|
14
14
|
</div>
|
|
15
15
|
`, isInline: true, styles: [":where(.et-selection-list-option){--et-selection-list-option-state-size: 25px;--et-selection-list-option-state-check-size: 10px;--et-selection-list-option-state-border-color: #e5e5e5;--et-selection-list-option-state-state-color: #e5e5e5;--et-selection-list-option-state-indeterminate-width: 10px;--et-selection-list-option-state-indeterminate-height: 2px}.et-selection-list-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px}.et-selection-list-field--multiple .et-selection-list-option-state,.et-selection-list-field--multiple .et-selection-list-option-state .et-selection-list-option-state-check{border-radius:0%}.et-selection-list-option-state{inline-size:var(--et-selection-list-option-state-size);block-size:var(--et-selection-list-option-state-size);border:1px solid var(--et-selection-list-option-state-border-color);display:inline-grid;position:relative;align-items:center;border-radius:50%;justify-items:center}.et-selection-list-option-state-check{inline-size:var(--et-selection-list-option-state-check-size);block-size:var(--et-selection-list-option-state-check-size);border-radius:50%}.et-selection-list-option--selected .et-selection-list-option-state-check{background-color:var(--et-selection-list-option-state-state-color)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectionListOptionComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'et-selection-list-option', template: `
|
|
20
20
|
<div class="et-selection-list-option-content">
|
|
@@ -24,6 +24,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
24
24
|
<div class="et-selection-list-option-state">
|
|
25
25
|
<div class="et-selection-list-option-state-check"></div>
|
|
26
26
|
</div>
|
|
27
|
-
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None,
|
|
27
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [{ directive: SelectionListOptionDirective, inputs: ['value', 'disabled', 'isResetOption'] }], styles: [":where(.et-selection-list-option){--et-selection-list-option-state-size: 25px;--et-selection-list-option-state-check-size: 10px;--et-selection-list-option-state-border-color: #e5e5e5;--et-selection-list-option-state-state-color: #e5e5e5;--et-selection-list-option-state-indeterminate-width: 10px;--et-selection-list-option-state-indeterminate-height: 2px}.et-selection-list-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px}.et-selection-list-field--multiple .et-selection-list-option-state,.et-selection-list-field--multiple .et-selection-list-option-state .et-selection-list-option-state-check{border-radius:0%}.et-selection-list-option-state{inline-size:var(--et-selection-list-option-state-size);block-size:var(--et-selection-list-option-state-size);border:1px solid var(--et-selection-list-option-state-border-color);display:inline-grid;position:relative;align-items:center;border-radius:50%;justify-items:center}.et-selection-list-option-state-check{inline-size:var(--et-selection-list-option-state-check-size);block-size:var(--et-selection-list-option-state-check-size);border-radius:50%}.et-selection-list-option--selected .et-selection-list-option-state-check{background-color:var(--et-selection-list-option-state-state-color)}\n"] }]
|
|
28
28
|
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWxpc3Qtb3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdGlvbi1saXN0L2NvbXBvbmVudHMvc2VsZWN0aW9uLWxpc3Qtb3B0aW9uL3NlbGVjdGlvbi1saXN0LW9wdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBbUJoRSxNQUFNLE9BQU8sNEJBQTRCOzhHQUE1Qiw0QkFBNEI7a0dBQTVCLDRCQUE0Qiw0T0FmN0I7Ozs7Ozs7O0dBUVQ7OzJGQU9VLDRCQUE0QjtrQkFqQnhDLFNBQVM7K0JBQ0UsMEJBQTBCLFlBQzFCOzs7Ozs7OztHQVFULGNBRVcsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGtCQUNyQixDQUFDLEVBQUUsU0FBUyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25MaXN0T3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXNlbGVjdGlvbi1saXN0LW9wdGlvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImV0LXNlbGVjdGlvbi1saXN0LW9wdGlvbi1jb250ZW50XCI+XG4gICAgICA8bmctY29udGVudCAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImV0LXNlbGVjdGlvbi1saXN0LW9wdGlvbi1zdGF0ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImV0LXNlbGVjdGlvbi1saXN0LW9wdGlvbi1zdGF0ZS1jaGVja1wiPjwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3Rpb24tbGlzdC1vcHRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IFNlbGVjdGlvbkxpc3RPcHRpb25EaXJlY3RpdmUsIGlucHV0czogWyd2YWx1ZScsICdkaXNhYmxlZCcsICdpc1Jlc2V0T3B0aW9uJ10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkxpc3RPcHRpb25Db21wb25lbnQge31cbiJdfQ==
|
|
@@ -97,10 +97,10 @@ export class SelectionListFieldDirective {
|
|
|
97
97
|
this.input._updateValue([]);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
101
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectionListFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
101
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.2", type: SelectionListFieldDirective, isStandalone: true, inputs: { multiple: ["multiple", "multiple", booleanAttribute] }, host: { attributes: { "role": "listbox" }, listeners: { "keydown": "_handleKeydown($event)" }, properties: { "class.et-selection-list-field--multiple": "multiple", "attr.aria-multiselectable": "multiple", "attr.aria-disabled": "input.disabled" }, classAttribute: "et-selection-list-field" }, providers: [{ provide: SELECTION_LIST_FIELD, useExisting: SelectionListFieldDirective }], queries: [{ propertyName: "options", predicate: SELECTION_LIST_OPTION }], exportAs: ["etSelectionListField"], ngImport: i0 }); }
|
|
102
102
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectionListFieldDirective, decorators: [{
|
|
104
104
|
type: Directive,
|
|
105
105
|
args: [{
|
|
106
106
|
standalone: true,
|
|
@@ -77,10 +77,10 @@ export class SelectionListOptionDirective {
|
|
|
77
77
|
this.input._updateValue(this.value);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
81
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectionListOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
81
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.2", type: SelectionListOptionDirective, isStandalone: true, inputs: { value: "value", disabled: ["disabled", "disabled", booleanAttribute], isResetOption: ["isResetOption", "isResetOption", booleanAttribute] }, host: { attributes: { "role": "option", "tabindex": "0" }, listeners: { "click": "_onInputInteraction($event)", "blur": "_controlTouched()" }, properties: { "class.et-selection-list-option--selected": "selected()", "class.et-selection-list-option--disabled": "disabled || input.disabled", "attr.aria-selected": "selected()", "attr.aria-disabled": "disabled || input.disabled" }, classAttribute: "et-selection-list-option" }, providers: [{ provide: SELECTION_LIST_OPTION, useExisting: SelectionListOptionDirective }], exportAs: ["etSelectionListOption"], ngImport: i0 }); }
|
|
82
82
|
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SelectionListOptionDirective, decorators: [{
|
|
84
84
|
type: Directive,
|
|
85
85
|
args: [{
|
|
86
86
|
standalone: true,
|
|
@@ -11,10 +11,10 @@ export class SlideToggleComponent extends InputBase {
|
|
|
11
11
|
super(...arguments);
|
|
12
12
|
this.slideToggle = inject(SLIDE_TOGGLE_TOKEN);
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SlideToggleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SlideToggleComponent, isStandalone: true, selector: "et-slide-toggle", host: { classAttribute: "et-slide-toggle" }, usesInheritance: true, hostDirectives: [{ directive: i1.SlideToggleDirective }, { directive: i2.InputDirective }], ngImport: i0, template: "<button\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\n [attr.aria-checked]=\"slideToggle.checked$ | async\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.id]=\"input.id\"\n (click)=\"slideToggle._onInputInteraction($event)\"\n (blur)=\"slideToggle._controlTouched()\"\n class=\"et-slide-toggle-button\"\n role=\"switch\"\n type=\"button\"\n etNativeInputRef\n>\n <div class=\"et-slide-toggle-handle\"></div>\n</button>\n", styles: [":where(.et-slide-toggle-button){--et-slide-toggle-button-inline-size: 42px;--et-slide-toggle-button-block-size: 22px;--et-slide-toggle-button-border-radius: 9999px;--et-slide-toggle-border-size: 1px;--et-slide-toggle-border-style: solid;--et-slide-toggle-track-unchecked-color: #e0e0e0;--et-slide-toggle-track-checked-color: #ff8686;--et-slide-toggle-border-unchecked-color: var(--et-slide-toggle-track-unchecked-color);--et-slide-toggle-border-checked-color: var(--et-slide-toggle-track-checked-color);--et-slide-toggle-thumb-size: calc( var(--et-slide-toggle-button-block-size) - (var(--et-slide-toggle-thumb-spacing) * 2) );--et-slide-toggle-thumb-spacing: 3px;--et-slide-toggle-border-radius: 9999px;--et-slide-toggle-thumb-unchecked-color: #525252;--et-slide-toggle-thumb-checked-color: var(--et-slide-toggle-thumb-unchecked-color)}:where(.et-slide-toggle){display:inline-block}.et-slide-toggle-button{position:relative;display:block;box-sizing:border-box;inline-size:var(--et-slide-toggle-button-inline-size);block-size:var(--et-slide-toggle-button-block-size);border-radius:var(--et-slide-toggle-button-border-radius);background-color:var(--et-slide-toggle-track-unchecked-color);border:var(--et-slide-toggle-border-size) var(--et-slide-toggle-border-style) var(--et-slide-toggle-border-unchecked-color);padding:0;transition:background-color .2s var(--ease-5),border-color .2s var(--ease-5)}.et-slide-toggle-button:not(:disabled){cursor:pointer}.et-slide-toggle-handle{position:absolute;inset-block-start:calc(var(--et-slide-toggle-thumb-spacing) - var(--et-slide-toggle-border-size));inset-inline-start:calc(var(--et-slide-toggle-thumb-spacing) - var(--et-slide-toggle-border-size));inline-size:var(--et-slide-toggle-thumb-size);block-size:var(--et-slide-toggle-thumb-size);border-radius:var(--et-slide-toggle-border-radius);background-color:var(--et-slide-toggle-thumb-unchecked-color);transition:transform .2s var(--ease-5),background-color .2s var(--ease-5)}.et-slide-toggle--checked .et-slide-toggle-button{background-color:var(--et-slide-toggle-track-checked-color);border-color:var(--et-slide-toggle-border-checked-color)}.et-slide-toggle--checked .et-slide-toggle-handle{transform:translate(calc(var(--et-slide-toggle-button-inline-size) - var(--et-slide-toggle-thumb-size) - var(--et-slide-toggle-thumb-spacing) * 2));background-color:var(--et-slide-toggle-thumb-checked-color)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SlideToggleComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'et-slide-toggle', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
20
20
|
class: 'et-slide-toggle',
|
|
@@ -11,8 +11,8 @@ export class SlideToggleFieldComponent {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
this.inputState = inject(InputStateService);
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SlideToggleFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SlideToggleFieldComponent, isStandalone: true, selector: "et-slide-toggle-field", host: { classAttribute: "et-form-field et-slide-toggle-field" }, hostDirectives: [{ directive: i1.StaticFormFieldDirective }, { directive: i2.WriteableInputDirective }, { directive: i0.forwardRef(() => i3.DynamicFormFieldDirective), inputs: ["hideErrorMessage", "hideErrorMessage"] }], ngImport: i0, template: `
|
|
16
16
|
<div class="et-slide-toggle-field-container">
|
|
17
17
|
<ng-content select="et-slide-toggle" />
|
|
18
18
|
<ng-content select="et-label" />
|
|
@@ -20,7 +20,7 @@ export class SlideToggleFieldComponent {
|
|
|
20
20
|
<et-error [errors]="inputState.errors$ | async" />
|
|
21
21
|
`, isInline: true, dependencies: [{ kind: "component", type: ErrorComponent, selector: "et-error", inputs: ["errors"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SlideToggleFieldComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{
|
|
26
26
|
selector: 'et-slide-toggle-field',
|
|
@@ -24,10 +24,10 @@ export class SlideToggleDirective {
|
|
|
24
24
|
this.input._markAsTouched();
|
|
25
25
|
this.input._setShouldDisplayError(true);
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
28
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SlideToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
28
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: SlideToggleDirective, isStandalone: true, providers: [{ provide: SLIDE_TOGGLE_TOKEN, useExisting: SlideToggleDirective }], exportAs: ["etSlideToggle"], ngImport: i0 }); }
|
|
29
29
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SlideToggleDirective, decorators: [{
|
|
31
31
|
type: Directive,
|
|
32
32
|
args: [{
|
|
33
33
|
standalone: true,
|
package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Directionality } from '@angular/cdk/bidi';
|
|
2
|
-
import { AsyncPipe, DOCUMENT
|
|
2
|
+
import { AsyncPipe, DOCUMENT } from '@angular/common';
|
|
3
3
|
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation, booleanAttribute, inject, numberAttribute, } from '@angular/core';
|
|
4
4
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { LetDirective, clamp, createDestroy, signalHostAttributes, signalHostClasses } from '@ethlete/core';
|
|
@@ -304,16 +304,16 @@ export class SliderComponent {
|
|
|
304
304
|
this._sliderDimensions$.next(this._elementRef.nativeElement.getBoundingClientRect());
|
|
305
305
|
return this._sliderDimensions$;
|
|
306
306
|
}
|
|
307
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
308
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
307
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
308
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.2", type: SliderComponent, isStandalone: true, selector: "et-slider", inputs: { min: "min", max: "max", step: "step", vertical: "vertical", inverted: "inverted", renderValueTooltip: ["renderValueTooltip", "renderValueTooltip", booleanAttribute] }, host: { attributes: { "role": "slider" }, properties: { "id": "_input.id" }, classAttribute: "et-slider" }, hostDirectives: [{ directive: i1.InputDirective, inputs: ["autocomplete", "autocomplete"] }], ngImport: i0, template: "<div class=\"et-slider-track-container\">\n @if (trackBackgroundStyles$ | async; as trackBackgroundStyles) {\n <div [style.transform]=\"trackBackgroundStyles.transform\" class=\"et-slider-track-background\"></div>\n }\n @if (trackFillStyles$ | async; as trackFillStyles) {\n <div\n [style.transform]=\"trackFillStyles.transform\"\n [style.display]=\"trackFillStyles.display\"\n class=\"et-slider-track-fill\"\n ></div>\n }\n</div>\n\n@if (thumbContainerStyles$ | async; as thumbContainerStyles) {\n <div [style.transform]=\"thumbContainerStyles.transform\" class=\"et-slider-thumb-container\">\n <div class=\"et-slider-thumb\">\n @if (renderValueTooltip) {\n <div class=\"et-slider-value-tooltip\">{{ valueText$ | async }}</div>\n }\n </div>\n </div>\n}\n", styles: [":where(.et-slider){--et-slider-track-block-size: 2px;--et-slider-track-border-radius: 0;--et-slider-inactive-track-color: #646464;--et-slider-active-track-color: #ffffff;--et-slider-block-size: 32px;--et-slider-min-inline-size: 112px;--et-slider-thumb-target-size: 32px;--et-slider-thumb-size: 12px;--et-slider-thumb-border-radius: 9999px;--et-slider-thumb-color: #ffffff;--et-slider-transition-duration: 80ms;--et-slider-tooltip-arrow-size: 10px;--et-slider-tooltip-arrow-radius: 2px;--et-slider-tooltip-background-color: hsl(0 0% 20%);--et-slider-tooltip-border-radius: 4px;--et-slider-tooltip-foreground-color: CanvasText;--et-slider-tooltip-padding-inline: 1.5ch;--et-slider-tooltip-padding-block: .75ch;--et-slider-tooltip-inline-min-size: 2ch;--et-slider-tooltip-inline-max-size: 10ch;outline:none}.et-slider{position:relative;display:block}.et-slider.et-slider--disable-animations{--et-slider-transition-duration: 0ms}.et-slider[aria-orientation=horizontal]{block-size:var(--et-slider-block-size);min-inline-size:var(--et-slider-min-inline-size)}.et-slider[aria-orientation=horizontal] .et-slider-track-container{inset-block-start:calc(50% - var(--et-slider-track-block-size) / 2);inset-inline-start:0;block-size:var(--et-slider-track-block-size);inline-size:100%}.et-slider[aria-orientation=horizontal] .et-slider-track-fill{block-size:var(--et-slider-track-block-size);inline-size:100%;transform-origin:0 0}.et-slider[aria-orientation=horizontal] .et-slider-track-background{block-size:var(--et-slider-track-block-size);inline-size:100%;transform-origin:100% 100%}.et-slider[aria-orientation=horizontal] .et-slider-thumb-container{inline-size:100%;block-size:0;inset-block-start:50%}.et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-fill{transform-origin:100% 100%}.et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-background{transform-origin:0 0}.et-slider[aria-orientation=vertical]{inline-size:var(--et-slider-block-size);min-block-size:var(--et-slider-min-inline-size)}.et-slider[aria-orientation=vertical] .et-slider-track-container{inset-block-start:0;inset-inline-start:calc(50% - var(--et-slider-track-block-size) / 2);block-size:100%;inline-size:var(--et-slider-track-block-size)}.et-slider[aria-orientation=vertical] .et-slider-track-fill{inline-size:var(--et-slider-track-block-size);block-size:100%;transform-origin:100% 100%}.et-slider[aria-orientation=vertical] .et-slider-track-background{inline-size:var(--et-slider-track-block-size);block-size:100%;transform-origin:0 0}.et-slider[aria-orientation=vertical] .et-slider-thumb-container{inline-size:0;block-size:100%;inset-inline-start:50%}.et-slider[aria-orientation=vertical].et-slider--inverted .et-slider-track-fill{transform-origin:0 0}.et-slider[aria-orientation=vertical].et-slider--inverted .et-slider-track-background,[dir=rtl] .et-slider[aria-orientation=horizontal] .et-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .et-slider[aria-orientation=horizontal] .et-slider-track-background,[dir=rtl] .et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-fill{transform-origin:0 0}[dir=rtl] .et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-background{transform-origin:100% 100%}.et-slider .et-slider-track-container{position:absolute;overflow:hidden}.et-slider .et-slider-track-fill{position:absolute;transition:transform var(--et-slider-transition-duration);background-color:var(--et-slider-active-track-color)}.et-slider .et-slider-track-background{position:absolute;transition:transform var(--et-slider-transition-duration);background-color:var(--et-slider-inactive-track-color)}.et-slider .et-slider-thumb-container{position:absolute;z-index:1;transition:transform var(--et-slider-transition-duration)}.et-slider .et-slider-thumb{position:absolute;inset-inline-end:calc(var(--et-slider-thumb-target-size) / 2 * -1);inset-block-end:calc(var(--et-slider-thumb-target-size) / 2 * -1);inline-size:var(--et-slider-thumb-target-size);block-size:var(--et-slider-thumb-target-size);transition:transform var(--et-slider-transition-duration);display:flex;justify-content:center;align-items:center}.et-slider .et-slider-thumb:after{content:\"\";position:relative;inline-size:var(--et-slider-thumb-size);block-size:var(--et-slider-thumb-size);background-color:var(--et-slider-thumb-color);border-radius:var(--et-slider-thumb-border-radius);cursor:grab}.et-slider.et-slider--is-sliding .et-slider-thumb:after{cursor:grabbing}.et-slider .et-slider-value-tooltip{box-sizing:border-box;position:absolute;padding-inline:var(--et-slider-tooltip-padding-inline);padding-block:var(--et-slider-tooltip-padding-block);background-color:var(--et-slider-tooltip-background-color);border-radius:var(--et-slider-tooltip-border-radius);min-inline-size:var(--et-slider-tooltip-inline-min-size);max-inline-size:var(--et-slider-tooltip-inline-max-size);color:var(--et-slider-tooltip-foreground-color);text-align:center;top:-100%}.et-slider .et-slider-value-tooltip:before{inline-size:var(--et-slider-tooltip-arrow-size);block-size:var(--et-slider-tooltip-arrow-size);border-radius:var(--et-slider-tooltip-arrow-radius);position:absolute;z-index:-1;transform:translate(-50%) rotate(45deg);background:var(--et-slider-tooltip-background-color);bottom:-4px;left:50%;content:\"\"}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
309
309
|
}
|
|
310
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SliderComponent, decorators: [{
|
|
311
311
|
type: Component,
|
|
312
312
|
args: [{ selector: 'et-slider', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
313
313
|
class: 'et-slider',
|
|
314
314
|
role: 'slider',
|
|
315
315
|
'[id]': '_input.id',
|
|
316
|
-
}, imports: [LetDirective, AsyncPipe
|
|
316
|
+
}, imports: [LetDirective, AsyncPipe], hostDirectives: [{ directive: InputDirective, inputs: ['autocomplete'] }], template: "<div class=\"et-slider-track-container\">\n @if (trackBackgroundStyles$ | async; as trackBackgroundStyles) {\n <div [style.transform]=\"trackBackgroundStyles.transform\" class=\"et-slider-track-background\"></div>\n }\n @if (trackFillStyles$ | async; as trackFillStyles) {\n <div\n [style.transform]=\"trackFillStyles.transform\"\n [style.display]=\"trackFillStyles.display\"\n class=\"et-slider-track-fill\"\n ></div>\n }\n</div>\n\n@if (thumbContainerStyles$ | async; as thumbContainerStyles) {\n <div [style.transform]=\"thumbContainerStyles.transform\" class=\"et-slider-thumb-container\">\n <div class=\"et-slider-thumb\">\n @if (renderValueTooltip) {\n <div class=\"et-slider-value-tooltip\">{{ valueText$ | async }}</div>\n }\n </div>\n </div>\n}\n", styles: [":where(.et-slider){--et-slider-track-block-size: 2px;--et-slider-track-border-radius: 0;--et-slider-inactive-track-color: #646464;--et-slider-active-track-color: #ffffff;--et-slider-block-size: 32px;--et-slider-min-inline-size: 112px;--et-slider-thumb-target-size: 32px;--et-slider-thumb-size: 12px;--et-slider-thumb-border-radius: 9999px;--et-slider-thumb-color: #ffffff;--et-slider-transition-duration: 80ms;--et-slider-tooltip-arrow-size: 10px;--et-slider-tooltip-arrow-radius: 2px;--et-slider-tooltip-background-color: hsl(0 0% 20%);--et-slider-tooltip-border-radius: 4px;--et-slider-tooltip-foreground-color: CanvasText;--et-slider-tooltip-padding-inline: 1.5ch;--et-slider-tooltip-padding-block: .75ch;--et-slider-tooltip-inline-min-size: 2ch;--et-slider-tooltip-inline-max-size: 10ch;outline:none}.et-slider{position:relative;display:block}.et-slider.et-slider--disable-animations{--et-slider-transition-duration: 0ms}.et-slider[aria-orientation=horizontal]{block-size:var(--et-slider-block-size);min-inline-size:var(--et-slider-min-inline-size)}.et-slider[aria-orientation=horizontal] .et-slider-track-container{inset-block-start:calc(50% - var(--et-slider-track-block-size) / 2);inset-inline-start:0;block-size:var(--et-slider-track-block-size);inline-size:100%}.et-slider[aria-orientation=horizontal] .et-slider-track-fill{block-size:var(--et-slider-track-block-size);inline-size:100%;transform-origin:0 0}.et-slider[aria-orientation=horizontal] .et-slider-track-background{block-size:var(--et-slider-track-block-size);inline-size:100%;transform-origin:100% 100%}.et-slider[aria-orientation=horizontal] .et-slider-thumb-container{inline-size:100%;block-size:0;inset-block-start:50%}.et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-fill{transform-origin:100% 100%}.et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-background{transform-origin:0 0}.et-slider[aria-orientation=vertical]{inline-size:var(--et-slider-block-size);min-block-size:var(--et-slider-min-inline-size)}.et-slider[aria-orientation=vertical] .et-slider-track-container{inset-block-start:0;inset-inline-start:calc(50% - var(--et-slider-track-block-size) / 2);block-size:100%;inline-size:var(--et-slider-track-block-size)}.et-slider[aria-orientation=vertical] .et-slider-track-fill{inline-size:var(--et-slider-track-block-size);block-size:100%;transform-origin:100% 100%}.et-slider[aria-orientation=vertical] .et-slider-track-background{inline-size:var(--et-slider-track-block-size);block-size:100%;transform-origin:0 0}.et-slider[aria-orientation=vertical] .et-slider-thumb-container{inline-size:0;block-size:100%;inset-inline-start:50%}.et-slider[aria-orientation=vertical].et-slider--inverted .et-slider-track-fill{transform-origin:0 0}.et-slider[aria-orientation=vertical].et-slider--inverted .et-slider-track-background,[dir=rtl] .et-slider[aria-orientation=horizontal] .et-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .et-slider[aria-orientation=horizontal] .et-slider-track-background,[dir=rtl] .et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-fill{transform-origin:0 0}[dir=rtl] .et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-background{transform-origin:100% 100%}.et-slider .et-slider-track-container{position:absolute;overflow:hidden}.et-slider .et-slider-track-fill{position:absolute;transition:transform var(--et-slider-transition-duration);background-color:var(--et-slider-active-track-color)}.et-slider .et-slider-track-background{position:absolute;transition:transform var(--et-slider-transition-duration);background-color:var(--et-slider-inactive-track-color)}.et-slider .et-slider-thumb-container{position:absolute;z-index:1;transition:transform var(--et-slider-transition-duration)}.et-slider .et-slider-thumb{position:absolute;inset-inline-end:calc(var(--et-slider-thumb-target-size) / 2 * -1);inset-block-end:calc(var(--et-slider-thumb-target-size) / 2 * -1);inline-size:var(--et-slider-thumb-target-size);block-size:var(--et-slider-thumb-target-size);transition:transform var(--et-slider-transition-duration);display:flex;justify-content:center;align-items:center}.et-slider .et-slider-thumb:after{content:\"\";position:relative;inline-size:var(--et-slider-thumb-size);block-size:var(--et-slider-thumb-size);background-color:var(--et-slider-thumb-color);border-radius:var(--et-slider-thumb-border-radius);cursor:grab}.et-slider.et-slider--is-sliding .et-slider-thumb:after{cursor:grabbing}.et-slider .et-slider-value-tooltip{box-sizing:border-box;position:absolute;padding-inline:var(--et-slider-tooltip-padding-inline);padding-block:var(--et-slider-tooltip-padding-block);background-color:var(--et-slider-tooltip-background-color);border-radius:var(--et-slider-tooltip-border-radius);min-inline-size:var(--et-slider-tooltip-inline-min-size);max-inline-size:var(--et-slider-tooltip-inline-max-size);color:var(--et-slider-tooltip-foreground-color);text-align:center;top:-100%}.et-slider .et-slider-value-tooltip:before{inline-size:var(--et-slider-tooltip-arrow-size);block-size:var(--et-slider-tooltip-arrow-size);border-radius:var(--et-slider-tooltip-arrow-radius);position:absolute;z-index:-1;transform:translate(-50%) rotate(45deg);background:var(--et-slider-tooltip-background-color);bottom:-4px;left:50%;content:\"\"}\n"] }]
|
|
317
317
|
}], propDecorators: { min: [{
|
|
318
318
|
type: Input
|
|
319
319
|
}], max: [{
|
|
@@ -328,4 +328,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
328
328
|
type: Input,
|
|
329
329
|
args: [{ transform: booleanAttribute }]
|
|
330
330
|
}] } });
|
|
331
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NsaWRlci9jb21wb25lbnRzL3NsaWRlci9zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2xpZGVyL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxFQUNILGNBQWMsR0FDZixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0s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SUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxXQUFXO3dCQUNsQixJQUFJLEVBQUUsUUFBUTt3QkFDZCxNQUFNLEVBQUUsV0FBVztxQkFDcEIsV0FDUSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGtCQUN4QixDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDOzhCQW1CckUsR0FBRztzQkFETixLQUFLO2dCQVVGLEdBQUc7c0JBRE4sS0FBSztnQkFVRixJQUFJO3NCQURQLEtBQUs7Z0JBVUYsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFVRixrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgRE9DVU1FTlQsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbiAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTGV0RGlyZWN0aXZlLCBjbGFtcCwgY3JlYXRlRGVzdHJveSwgc2lnbmFsSG9zdEF0dHJpYnV0ZXMsIHNpZ25hbEhvc3RDbGFzc2VzIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpbHRlcixcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBvZixcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJTlBVVF9UT0tFTiwgSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEZvcm1GaWVsZFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcblxuY29uc3QgaXNUb3VjaEV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ3QnO1xufTtcblxuY29uc3QgZ2V0VG91Y2hJZEZvclNsaWRlciA9IChldmVudDogVG91Y2hFdmVudCwgc2xpZGVyOiBIVE1MRWxlbWVudCkgPT4ge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGV2ZW50LnRvdWNoZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50b3VjaGVzW2ldIS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoc2xpZGVyID09PSB0YXJnZXQgfHwgc2xpZGVyLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgIHJldHVybiBldmVudC50b3VjaGVzW2ldIS5pZGVudGlmaWVyO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgZmluZE1hdGNoaW5nVG91Y2ggPSAodG91Y2hlczogVG91Y2hMaXN0LCBpZDogbnVtYmVyKSA9PiB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG91Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgIGlmICh0b3VjaGVzW2ldIS5pZGVudGlmaWVyID09PSBpZCkge1xuICAgICAgcmV0dXJuIHRvdWNoZXNbaV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBnZXRQb2ludGVyUG9zaXRpb25PblBhZ2UgPSAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBpZDogbnVtYmVyIHwgbnVsbCkgPT4ge1xuICBsZXQgcG9pbnQ6IHsgY2xpZW50WDogbnVtYmVyOyBjbGllbnRZOiBudW1iZXIgfSB8IG51bGw7XG5cbiAgaWYgKGlzVG91Y2hFdmVudChldmVudCkpIHtcbiAgICBpZiAodHlwZW9mIGlkID09PSAnbnVtYmVyJykge1xuICAgICAgcG9pbnQgPSBmaW5kTWF0Y2hpbmdUb3VjaChldmVudC50b3VjaGVzLCBpZCkgfHwgZmluZE1hdGNoaW5nVG91Y2goZXZlbnQuY2hhbmdlZFRvdWNoZXMsIGlkKSB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBwb2ludCA9IGV2ZW50LnRvdWNoZXNbMF0gfHwgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0gfHwgbnVsbDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcG9pbnQgPSBldmVudDtcbiAgfVxuXG4gIHJldHVybiBwb2ludCA/IHsgeDogcG9pbnQuY2xpZW50WCwgeTogcG9pbnQuY2xpZW50WSB9IDogbnVsbDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXNsaWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbGlkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXNsaWRlcicsXG4gICAgcm9sZTogJ3NsaWRlcicsXG4gICAgJ1tpZF0nOiAnX2lucHV0LmlkJyxcbiAgfSxcbiAgaW1wb3J0czogW0xldERpcmVjdGl2ZSwgQXN5bmNQaXBlLCBOZ0lmXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogSW5wdXREaXJlY3RpdmUsIGlucHV0czogWydhdXRvY29tcGxldGUnXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgU2xpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpclNlcnZpY2UgPSBpbmplY3QoRGlyZWN0aW9uYWxpdHkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21vdXNlRG93biQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJywgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdG91Y2hTdGFydCQgPSBmcm9tRXZlbnQ8VG91Y2hFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcsIHtcbiAgICBwYXNzaXZlOiBmYWxzZSxcbiAgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2tleURvd24kID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9rZXlVcCQgPSBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lucHV0ID0gaW5qZWN0PElucHV0RGlyZWN0aXZlPG51bWJlcj4+KElOUFVUX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUZpZWxkU3RhdGVTZXJ2aWNlID0gaW5qZWN0KEZvcm1GaWVsZFN0YXRlU2VydmljZSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW4kLnZhbHVlO1xuICB9XG4gIHNldCBtaW4odmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9taW4kLm5leHQobnVtYmVyQXR0cmlidXRlKHZhbHVlLCAwKSk7XG4gIH1cbiAgcHJpdmF0ZSBfbWluJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tYXgkLnZhbHVlO1xuICB9XG4gIHNldCBtYXgodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9tYXgkLm5leHQobnVtYmVyQXR0cmlidXRlKHZhbHVlLCAxMDApKTtcbiAgfVxuICBwcml2YXRlIF9tYXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxMDApO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXAkLnZhbHVlO1xuICB9XG4gIHNldCBzdGVwKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc3RlcCQubmV4dChudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDEpKTtcbiAgfVxuICBwcml2YXRlIF9zdGVwJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbCQudmFsdWU7XG4gIH1cbiAgc2V0IHZlcnRpY2FsKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fdmVydGljYWwkLm5leHQoYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSkpO1xuICB9XG4gIHByaXZhdGUgX3ZlcnRpY2FsJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpbnZlcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faW52ZXJ0ZWQkLnZhbHVlO1xuICB9XG4gIHNldCBpbnZlcnRlZCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2ludmVydGVkJC5uZXh0KGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpKTtcbiAgfVxuICBwcml2YXRlIF9pbnZlcnRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgZ2V0IHJlbmRlclZhbHVlVG9vbHRpcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyVmFsdWVUb29sdGlwJC52YWx1ZTtcbiAgfVxuICBzZXQgcmVuZGVyVmFsdWVUb29sdGlwKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVuZGVyVmFsdWVUb29sdGlwJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9yZW5kZXJWYWx1ZVRvb2x0aXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGlyJCA9IHRoaXMuX2RpclNlcnZpY2UuY2hhbmdlLnBpcGUoc3RhcnRXaXRoKHRoaXMuX2RpclNlcnZpY2UudmFsdWUpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9pbnB1dC52YWx1ZSQsIHRoaXMuX21pbiQsIHRoaXMuX21heCRdKS5waXBlKFxuICAgIG1hcCgoW3ZhbHVlLCBtaW4sIG1heF0pID0+IGNsYW1wKHZhbHVlID8/IDAsIG1pbiwgbWF4KSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcm91bmRUb0RlY2ltYWwkID0gdGhpcy5fc3RlcCQucGlwZShcbiAgICBtYXAoKHN0ZXApID0+IHtcbiAgICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSBzdGVwLnRvU3RyaW5nKCk7XG5cbiAgICAgIHJldHVybiBzdGVwU3RyaW5nLmluY2x1ZGVzKCcuJykgPyBzdGVwU3RyaW5nLnNwbGl0KCcuJylbMV0hLmxlbmd0aCA6IDA7XG4gICAgfSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGVyY2VudCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl92YWx1ZSQsIHRoaXMuX21pbiQsIHRoaXMuX21heCRdKS5waXBlKFxuICAgIG1hcCgoW3ZhbHVlLCBtaW4sIG1heF0pID0+ICh2YWx1ZSAtIG1pbikgLyAobWF4IC0gbWluKSksXG4gICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3VsZEludmVydEF4aXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5fdmVydGljYWwkLCB0aGlzLl9pbnZlcnRlZCRdKS5waXBlKFxuICAgIG1hcCgoW3ZlcnRpY2FsLCBpbnZlcnRlZF0pID0+ICh2ZXJ0aWNhbCA/ICFpbnZlcnRlZCA6IGludmVydGVkKSksXG4gICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3VsZEludmVydE1vdXNlQ29vcmRzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX3ZlcnRpY2FsJCxcbiAgICB0aGlzLl9zaG91bGRJbnZlcnRBeGlzJCxcbiAgICB0aGlzLl9kaXIkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3ZlcnRpY2FsLCBzaG91bGRJbnZlcnRBeGlzLCBkaXJdKSA9PiAoZGlyID09PSAncnRsJyAmJiAhdmVydGljYWwgPyAhc2hvdWxkSW52ZXJ0QXhpcyA6IHNob3VsZEludmVydEF4aXMpKSxcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2xpZGVyRGltZW5zaW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHZhbHVlVGV4dCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl92YWx1ZSQsIHRoaXMuX3JvdW5kVG9EZWNpbWFsJF0pLnBpcGUoXG4gICAgbWFwKChbdmFsdWUsIHJvdW5kVG9EZWNpbWFsXSkgPT4gdmFsdWUudG9GaXhlZChyb3VuZFRvRGVjaW1hbCkpLFxuICApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0cmFja0JhY2tncm91bmRTdHlsZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5fcGVyY2VudCQsIHRoaXMuX3ZlcnRpY2FsJF0pLnBpcGUoXG4gICAgbWFwKChbcGVyY2VudCwgdmVydGljYWxdKSA9PiB7XG4gICAgICBjb25zdCBzY2FsZSA9IHZlcnRpY2FsID8gYDEsICR7MSAtIHBlcmNlbnR9LCAxYCA6IGAkezEgLSBwZXJjZW50fSwgMSwgMWA7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHNjYWxlM2QoJHtzY2FsZX0pYCxcbiAgICAgIH07XG4gICAgfSksXG4gICk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYWNrRmlsbFN0eWxlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9wZXJjZW50JCwgdGhpcy5fdmVydGljYWwkXSkucGlwZShcbiAgICBtYXAoKFtwZXJjZW50LCB2ZXJ0aWNhbF0pID0+IHtcbiAgICAgIGNvbnN0IHNjYWxlID0gdmVydGljYWwgPyBgMSwgJHtwZXJjZW50fSwgMWAgOiBgJHtwZXJjZW50fSwgMSwgMWA7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHNjYWxlM2QoJHtzY2FsZX0pYCxcbiAgICAgICAgZGlzcGxheTogcGVyY2VudCA9PT0gMCA/ICdub25lJyA6ICcnLFxuICAgICAgfTtcbiAgICB9KSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGh1bWJDb250YWluZXJTdHlsZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fcGVyY2VudCQsXG4gICAgdGhpcy5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMkLFxuICAgIHRoaXMuX3ZlcnRpY2FsJCxcbiAgICB0aGlzLl9kaXIkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3BlcmNlbnQsIHNob3VsZEludmVydE1vdXNlQ29vcmRzLCB2ZXJ0aWNhbCwgZGlyXSkgPT4ge1xuICAgICAgY29uc3QgYXhpcyA9IHZlcnRpY2FsID8gJ1knIDogJ1gnO1xuICAgICAgY29uc3QgaW52ZXJ0T2Zmc2V0ID0gZGlyID09PSAncnRsJyAmJiAhdmVydGljYWwgPyAhc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMgOiBzaG91bGRJbnZlcnRNb3VzZUNvb3JkcztcbiAgICAgIGNvbnN0IG9mZnNldCA9IChpbnZlcnRPZmZzZXQgPyBwZXJjZW50IDogMSAtIHBlcmNlbnQpICogMTAwO1xuICAgICAgY29uc3Qgc2lnbiA9IHZlcnRpY2FsID8gJy0nIDogZGlyID09PSAncnRsJyA/ICcnIDogJy0nO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGUke2F4aXN9KCR7c2lnbn0ke29mZnNldH0lKWAsXG4gICAgICB9O1xuICAgIH0pLFxuICApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc1NsaWRpbmdWaWEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwna2V5Ym9hcmQnIHwgJ3BvaW50ZXInIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNhYmxlQW5pbWF0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvdWNoSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhc3RQb2ludGVyRXZlbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IGhvc3RDbGFzc0JpbmRpbmdzID0gc2lnbmFsSG9zdENsYXNzZXMoe1xuICAgICdldC1zbGlkZXItLWlzLXNsaWRpbmcnOiB0b1NpZ25hbCh0aGlzLmlzU2xpZGluZ1ZpYSQpLFxuICAgICdldC1zbGlkZXItLWludmVydGVkJzogdG9TaWduYWwodGhpcy5faW52ZXJ0ZWQkKSxcbiAgICAnZXQtc2xpZGVyLS1kaXNhYmxlLWFuaW1hdGlvbnMnOiB0b1NpZ25hbCh0aGlzLmRpc2FibGVBbmltYXRpb25zJCksXG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhvc3RBdHRyaWJ1dGVCaW5kaW5ncyA9IHNpZ25hbEhvc3RBdHRyaWJ1dGVzKHtcbiAgICAnYXJpYS1vcmllbnRhdGlvbic6IHRvU2lnbmFsKHRoaXMuX3ZlcnRpY2FsJC5waXBlKG1hcCgodmVydGljYWwpID0+ICh2ZXJ0aWNhbCA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCcpKSkpLFxuICAgICdhcmlhLWRpc2FibGVkJzogdG9TaWduYWwodGhpcy5faW5wdXQuZGlzYWJsZWQkKSxcbiAgICAnYXJpYS12YWx1ZW5vdyc6IHRvU2lnbmFsKHRoaXMuX3ZhbHVlJCksXG4gICAgJ2FyaWEtdmFsdWVtaW4nOiB0b1NpZ25hbCh0aGlzLl9taW4kKSxcbiAgICAnYXJpYS12YWx1ZW1heCc6IHRvU2lnbmFsKHRoaXMuX21heCQpLFxuICAgICdhcmlhLXZhbHVldGV4dCc6IHRvU2lnbmFsKHRoaXMudmFsdWVUZXh0JCksXG4gICAgdGFiaW5kZXg6IHRvU2lnbmFsKHRoaXMuX2lucHV0LmRpc2FibGVkJC5waXBlKG1hcCgoZGlzYWJsZWQpID0+IChkaXNhYmxlZCA/IC0xIDogMCkpKSksXG4gICAgJ2FyaWEtbGFiZWxlZGJ5JzogdGhpcy5fZm9ybUZpZWxkU3RhdGVTZXJ2aWNlLmxhYmVsSWQsXG4gICAgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLl9mb3JtRmllbGRTdGF0ZVNlcnZpY2UuZGVzY3JpYmVkQnksXG4gIH0pO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIG1lcmdlKHRoaXMuX21vdXNlRG93biQsIHRoaXMuX3RvdWNoU3RhcnQkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gdGhpcy5faW5wdXQuZGlzYWJsZWQ7XG4gICAgICAgICAgY29uc3QgaXNTbGlkaW5nID0gISF0aGlzLmlzU2xpZGluZ1ZpYSQudmFsdWU7XG4gICAgICAgICAgY29uc3QgaXNJbnZhbGlkTW91c2VCdXR0b24gPSAhaXNUb3VjaEV2ZW50KGV2ZW50KSAmJiBldmVudC5idXR0b24gIT09IDA7XG5cbiAgICAgICAgICByZXR1cm4gIWlzRGlzYWJsZWQgJiYgIWlzU2xpZGluZyAmJiAhaXNJbnZhbGlkTW91c2VCdXR0b247XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKGV2ZW50KSA9PlxuICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW29mKGV2ZW50KSwgdGhpcy5fZnJlc2hTbGlkZXJEaW1lbnNpb25zKCksIHRoaXMuX3Nob3VsZEludmVydE1vdXNlQ29vcmRzJF0pLnBpcGUoXG4gICAgICAgICAgICB0YXAoKFtldmVudCwgc2xpZGVyRGltZW5zaW9ucywgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHNdKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVTbGlkZShldmVudCwgc2xpZGVyRGltZW5zaW9ucywgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2tleURvd24kXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLl9pbnB1dC5kaXNhYmxlZDtcbiAgICAgICAgICBjb25zdCBpc1NsaWRpbmcgPSB0aGlzLmlzU2xpZGluZ1ZpYSQudmFsdWUgJiYgdGhpcy5pc1NsaWRpbmdWaWEkLnZhbHVlICE9PSAna2V5Ym9hcmQnO1xuICAgICAgICAgIGNvbnN0IGlzTW9kaWZpZXJQcmVzc2VkID0gZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5O1xuXG4gICAgICAgICAgcmV0dXJuICFpc0Rpc2FibGVkICYmICFpc1NsaWRpbmcgJiYgIWlzTW9kaWZpZXJQcmVzc2VkO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5fZGlyJCksXG4gICAgICAgIHRhcCgoW2V2ZW50LCBkaXJdKSA9PiB0aGlzLl91cGRhdGVTbGlkZXJWaWFLZXlib2FyZChldmVudCwgZGlyKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9rZXlVcCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc1NsaWRpbmdWaWEkLnZhbHVlID09PSAna2V5Ym9hcmQnKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNTbGlkaW5nVmlhJC5uZXh0KG51bGwpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdibHVyJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2lucHV0Ll9tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgdGhpcy5faW5wdXQuX3NldFNob3VsZERpc3BsYXlFcnJvcih0cnVlKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWFsaXplU2xpZGUoXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LFxuICAgIHNsaWRlckRpbWVuc2lvbnM6IERPTVJlY3QsXG4gICAgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHM6IGJvb2xlYW4sXG4gICkge1xuICAgIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQpKSB7XG4gICAgICB0aGlzLnRvdWNoSWQkLm5leHQoZ2V0VG91Y2hJZEZvclNsaWRlcihldmVudCwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uID0gZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlKGV2ZW50LCB0aGlzLnRvdWNoSWQkLnZhbHVlKTtcblxuICAgIGlmICghcG9pbnRlclBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1NsaWRpbmdWaWEkLm5leHQoJ3BvaW50ZXInKTtcblxuICAgIHRoaXMuX2JpbmRHbG9iYWxFdmVudHMoZXZlbnQpO1xuICAgIHRoaXMuX3VwZGF0ZVZhbHVlRnJvbVBvc2l0aW9uKHBvaW50ZXJQb3NpdGlvbiwgc2xpZGVyRGltZW5zaW9ucywgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMpO1xuICAgIHRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnZ3JhYmJpbmcnO1xuXG4gICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYmluZEdsb2JhbEV2ZW50cyhldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcbiAgICBjb25zdCBpc1RvdWNoID0gaXNUb3VjaEV2ZW50KGV2ZW50KTtcbiAgICBjb25zdCBtb3ZlRXZlbnROYW1lID0gaXNUb3VjaCA/ICd0b3VjaG1vdmUnIDogJ21vdXNlbW92ZSc7XG4gICAgY29uc3QgZW5kRXZlbnROYW1lID0gaXNUb3VjaCA/ICd0b3VjaGVuZCcgOiAnbW91c2V1cCc7XG5cbiAgICBjb25zdCBldmVudENvbmZpZyA9IHsgcGFzc2l2ZTogZmFsc2UgfTtcblxuICAgIGNvbnN0IHBvaW50ZXJVcCQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudCB8IFRvdWNoRXZlbnQ+KHdpbmRvdywgZW5kRXZlbnROYW1lLCBldmVudENvbmZpZyk7XG4gICAgY29uc3QgdG91Y2hDYW5jZWwkID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHdpbmRvdywgJ3RvdWNoY2FuY2VsJywgZXZlbnRDb25maWcpO1xuICAgIGNvbnN0IHdpbmRvd0JsdXIkID0gZnJvbUV2ZW50PEZvY3VzRXZlbnQ+KHdpbmRvdywgJ2JsdXInKTtcblxuICAgIGNvbnN0IHNsaWRlRW5kJCA9IG1lcmdlKHBvaW50ZXJVcCQsIHRvdWNoQ2FuY2VsJCwgd2luZG93Qmx1ciQpO1xuXG4gICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50Pih3aW5kb3csIG1vdmVFdmVudE5hbWUsIGV2ZW50Q29uZmlnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChzbGlkZUVuZCQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLl9zbGlkZXJEaW1lbnNpb25zJCwgdGhpcy5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMkKSxcbiAgICAgICAgdGFwKChbZXZlbnQsIHNsaWRlckRpbWVuc2lvbnMsIHNob3VsZEludmVydE1vdXNlQ29vcmRzXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbiA9IGdldFBvaW50ZXJQb3NpdGlvbk9uUGFnZShldmVudCwgdGhpcy50b3VjaElkJC52YWx1ZSk7XG5cbiAgICAgICAgICBpZiAoIXBvaW50ZXJQb3NpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlQW5pbWF0aW9ucyQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUFuaW1hdGlvbnMkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVGcm9tUG9zaXRpb24ocG9pbnRlclBvc2l0aW9uLCBzbGlkZXJEaW1lbnNpb25zLCBzaG91bGRJbnZlcnRNb3VzZUNvb3Jkcyk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgc2xpZGVFbmQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5pc1NsaWRpbmdWaWEkLm5leHQobnVsbCk7XG4gICAgICAgICAgdGhpcy50b3VjaElkJC5uZXh0KG51bGwpO1xuICAgICAgICAgIHRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnJztcbiAgICAgICAgICB0aGlzLmRpc2FibGVBbmltYXRpb25zJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZUZyb21Qb3NpdGlvbiA9IChcbiAgICBwb3M6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSxcbiAgICBzbGlkZXJEaW1lbnNpb25zOiBET01SZWN0LFxuICAgIHNob3VsZEludmVydE1vdXNlQ29vcmRzOiBib29sZWFuLFxuICApID0+IHtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLnZlcnRpY2FsID8gc2xpZGVyRGltZW5zaW9ucy50b3AgOiBzbGlkZXJEaW1lbnNpb25zLmxlZnQ7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMudmVydGljYWwgPyBzbGlkZXJEaW1lbnNpb25zLmhlaWdodCA6IHNsaWRlckRpbWVuc2lvbnMud2lkdGg7XG4gICAgY29uc3QgcG9zQ29tcG9uZW50ID0gdGhpcy52ZXJ0aWNhbCA/IHBvcy55IDogcG9zLng7XG5cbiAgICBsZXQgcGVyY2VudCA9IGNsYW1wKChwb3NDb21wb25lbnQgLSBvZmZzZXQpIC8gc2l6ZSwgMCwgMSk7XG5cbiAgICBpZiAoc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMpIHtcbiAgICAgIHBlcmNlbnQgPSAxIC0gcGVyY2VudDtcbiAgICB9XG5cbiAgICBpZiAocGVyY2VudCA9PT0gMCkge1xuICAgICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKHRoaXMubWluKTtcbiAgICB9IGVsc2UgaWYgKHBlcmNlbnQgPT09IDEpIHtcbiAgICAgIHRoaXMuX2lucHV0Ll91cGRhdGVWYWx1ZSh0aGlzLm1heCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGV4YWN0VmFsdWUgPSBwZXJjZW50ICogKHRoaXMubWF4IC0gdGhpcy5taW4pICsgdGhpcy5taW47XG4gICAgICBjb25zdCBjbG9zZXN0VmFsdWUgPSBNYXRoLnJvdW5kKChleGFjdFZhbHVlIC0gdGhpcy5taW4pIC8gdGhpcy5zdGVwKSAqIHRoaXMuc3RlcCArIHRoaXMubWluO1xuICAgICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKGNsYW1wKGNsb3Nlc3RWYWx1ZSwgdGhpcy5taW4sIHRoaXMubWF4KSk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXQuX21hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9pbnB1dC5fc2V0U2hvdWxkRGlzcGxheUVycm9yKHRydWUpO1xuICB9O1xuXG4gIHByaXZhdGUgX3VwZGF0ZVNsaWRlclZpYUtleWJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBkaXI6IHN0cmluZykge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJWYWx1ZUJ5KDEwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoLTEwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmQnOlxuICAgICAgICB0aGlzLl9pbnB1dC5fdXBkYXRlVmFsdWUodGhpcy5tYXgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICB0aGlzLl9pbnB1dC5fdXBkYXRlVmFsdWUodGhpcy5taW4pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoZGlyID09PSAncnRsJyA/IDEgOiAtMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoZGlyID09PSAncnRsJyA/IC0xIDogMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xpZGVyVmFsdWVCeSgtMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pc1NsaWRpbmdWaWEkLm5leHQoJ2tleWJvYXJkJyk7XG5cbiAgICB0aGlzLl9pbnB1dC5fbWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuX2lucHV0Ll9zZXRTaG91bGREaXNwbGF5RXJyb3IodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF91cGRhdGVTbGlkZXJWYWx1ZUJ5KG9mZnNldDogbnVtYmVyKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5faW5wdXQudmFsdWUgfHwgMDtcbiAgICBjb25zdCB2YWx1ZSA9IGNsYW1wKGN1cnJlbnRWYWx1ZSArIHRoaXMuc3RlcCAqIG9mZnNldCwgdGhpcy5taW4sIHRoaXMubWF4KTtcblxuICAgIHRoaXMuX2lucHV0Ll91cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9mcmVzaFNsaWRlckRpbWVuc2lvbnMoKSB7XG4gICAgdGhpcy5fc2xpZGVyRGltZW5zaW9ucyQubmV4dCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuX3NsaWRlckRpbWVuc2lvbnMkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZXQtc2xpZGVyLXRyYWNrLWNvbnRhaW5lclwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJ0cmFja0JhY2tncm91bmRTdHlsZXMkIHwgYXN5bmMgYXMgdHJhY2tCYWNrZ3JvdW5kU3R5bGVzXCJcbiAgICBbc3R5bGUudHJhbnNmb3JtXT1cInRyYWNrQmFja2dyb3VuZFN0eWxlcy50cmFuc2Zvcm1cIlxuICAgIGNsYXNzPVwiZXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmRcIlxuICA+PC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cInRyYWNrRmlsbFN0eWxlcyQgfCBhc3luYyBhcyB0cmFja0ZpbGxTdHlsZXNcIlxuICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwidHJhY2tGaWxsU3R5bGVzLnRyYW5zZm9ybVwiXG4gICAgW3N0eWxlLmRpc3BsYXldPVwidHJhY2tGaWxsU3R5bGVzLmRpc3BsYXlcIlxuICAgIGNsYXNzPVwiZXQtc2xpZGVyLXRyYWNrLWZpbGxcIlxuICA+PC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICAqbmdJZj1cInRodW1iQ29udGFpbmVyU3R5bGVzJCB8IGFzeW5jIGFzIHRodW1iQ29udGFpbmVyU3R5bGVzXCJcbiAgW3N0eWxlLnRyYW5zZm9ybV09XCJ0aHVtYkNvbnRhaW5lclN0eWxlcy50cmFuc2Zvcm1cIlxuICBjbGFzcz1cImV0LXNsaWRlci10aHVtYi1jb250YWluZXJcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZXQtc2xpZGVyLXRodW1iXCI+XG4gICAgPGRpdiAqbmdJZj1cInJlbmRlclZhbHVlVG9vbHRpcFwiIGNsYXNzPVwiZXQtc2xpZGVyLXZhbHVlLXRvb2x0aXBcIj57eyB2YWx1ZVRleHQkIHwgYXN5bmMgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NsaWRlci9jb21wb25lbnRzL3NsaWRlci9zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2xpZGVyL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sU0FBUyxFQUNULEdBQUcsRUFDSCxLQUFLLEVBQ0wsRUFBRSxFQUNGLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRTdELE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBWSxFQUF1QixFQUFFO0lBQ3pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsTUFBbUIsRUFBRSxFQUFFO0lBQ3JFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM3QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxDQUFDLE1BQXFCLENBQUM7UUFFdkQsSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxDQUFDLFVBQVUsQ0FBQztTQUNyQztLQUNGO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLENBQUMsT0FBa0IsRUFBRSxFQUFVLEVBQUUsRUFBRTtJQUMzRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUUsQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ2pDLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25CO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUE4QixFQUFFLEVBQWlCLEVBQUUsRUFBRTtJQUNyRixJQUFJLEtBQWtELENBQUM7SUFFdkQsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDdkIsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQUU7WUFDMUIsS0FBSyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDckc7YUFBTTtZQUNMLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQzdEO0tBQ0Y7U0FBTTtRQUNMLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDZjtJQUVELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvRCxDQUFDLENBQUM7QUFpQkYsTUFBTSxPQUFPLGVBQWU7SUFmNUI7UUFnQm1CLGdCQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUMxRCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyQyxjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLGNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUU1QixnQkFBVyxHQUFHLFNBQVMsQ0FBYSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyRyxpQkFBWSxHQUFHLFNBQVMsQ0FBYSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUU7WUFDbEcsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFDYyxjQUFTLEdBQUcsU0FBUyxDQUFnQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRyxZQUFPLEdBQUcsU0FBUyxDQUFnQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVoRyxXQUFNLEdBQUcsTUFBTSxDQUF5QixXQUFXLENBQUMsQ0FBQztRQUNyRCwyQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQVNoRSxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFTL0IsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBU2pDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQVNoQyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFTeEMsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBU3hDLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLFVBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV4RSxZQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pGLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQ3hELENBQUM7UUFFZSxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbEQsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFbkMsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFZSxjQUFTLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckYsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUN4RCxDQUFDO1FBQ2UsdUJBQWtCLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFGLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ2pFLENBQUM7UUFDZSw4QkFBeUIsR0FBRyxhQUFhLENBQUM7WUFDekQsSUFBSSxDQUFDLFVBQVU7WUFDZixJQUFJLENBQUMsa0JBQWtCO1lBQ3ZCLElBQUksQ0FBQyxLQUFLO1NBQ1gsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQ2hILENBQUM7UUFDZSx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFFL0YsZUFBVSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3ZGLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQ2hFLENBQUM7UUFFaUIsMkJBQXNCLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9GLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxRQUFRLENBQUM7WUFFekUsT0FBTztnQkFDTCxTQUFTLEVBQUUsV0FBVyxLQUFLLEdBQUc7YUFDL0IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFaUIscUJBQWdCLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pGLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sUUFBUSxDQUFDO1lBRWpFLE9BQU87Z0JBQ0wsU0FBUyxFQUFFLFdBQVcsS0FBSyxHQUFHO2dCQUM5QixPQUFPLEVBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO2FBQ3JDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRWlCLDBCQUFxQixHQUFHLGFBQWEsQ0FBQztZQUN2RCxJQUFJLENBQUMsU0FBUztZQUNkLElBQUksQ0FBQyx5QkFBeUI7WUFDOUIsSUFBSSxDQUFDLFVBQVU7WUFDZixJQUFJLENBQUMsS0FBSztTQUNYLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDeEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNsQyxNQUFNLFlBQVksR0FBRyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztZQUNyRyxNQUFNLE1BQU0sR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQzVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUV2RCxPQUFPO2dCQUNMLFNBQVMsRUFBRSxZQUFZLElBQUksSUFBSSxJQUFJLEdBQUcsTUFBTSxJQUFJO2FBQ2pELENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRWlCLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQWdDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLHVCQUFrQixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDcEQsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQWlDLElBQUksQ0FBQyxDQUFDO1FBRXhGLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO1lBQzdDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3JELHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2hELCtCQUErQixFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FDbkUsQ0FBQyxDQUFDO1FBRU0sMEJBQXFCLEdBQUcsb0JBQW9CLENBQUM7WUFDcEQsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdHLGVBQWUsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDaEQsZUFBZSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3ZDLGVBQWUsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNyQyxlQUFlLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDM0MsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTztZQUNyRCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVztTQUM1RCxDQUFDLENBQUM7UUF1SUssNkJBQXdCLEdBQUcsQ0FDakMsR0FBNkIsRUFDN0IsZ0JBQXlCLEVBQ3pCLHVCQUFnQyxFQUNoQyxFQUFFO1lBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDNUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDOUUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVuRCxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUUxRCxJQUFJLHVCQUF1QixFQUFFO2dCQUMzQixPQUFPLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQzthQUN2QjtZQUVELElBQUksT0FBTyxLQUFLLENBQUMsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BDO2lCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BDO2lCQUFNO2dCQUNMLE1BQU0sVUFBVSxHQUFHLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQzlELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQzVGLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNuRTtZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUM7S0FtREg7SUF4V0MsSUFDSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsS0FBYztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUdELElBQ0ksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLEtBQWM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFHRCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUFjO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBR0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFHRCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUdELElBQ0ksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxLQUFjO1FBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQWtHRCxRQUFRO1FBQ04sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN2QyxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUN4QyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDN0MsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUV4RSxPQUFPLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDNUQsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbEIsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FBQyxDQUNILENBQ0YsRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsRUFBRSxDQUFDO1FBRWYsSUFBSSxDQUFDLFNBQVM7YUFDWCxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUM7WUFDdEYsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFFNUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3pELENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQ3pCLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQ2pFO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsT0FBTzthQUNULElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN6QzthQUNBLFNBQVMsRUFBRSxDQUFDO1FBRWYsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQzthQUM5QyxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDekIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1I7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sZ0JBQWdCLENBQ3RCLEtBQThCLEVBQzlCLGdCQUF5QixFQUN6Qix1QkFBZ0M7UUFFaEMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUNoRjtRQUVELE1BQU0sZUFBZSxHQUFHLHdCQUF3QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDcEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUV6RCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDcEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQThCO1FBQ3RELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQzFELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFdEQsTUFBTSxXQUFXLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFFdkMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUEwQixNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBYSxNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBYSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFMUQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFL0QsU0FBUyxDQUEwQixNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQzthQUNuRSxJQUFJLENBQ0gsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUNwQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixjQUFjLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUN2RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLEVBQUU7WUFDekQsTUFBTSxlQUFlLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0UsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEIsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEM7WUFFRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztRQUVmLFNBQVM7YUFDTixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDekIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1osS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBK0JPLHdCQUF3QixDQUFDLEtBQW9CLEVBQUUsR0FBVztRQUNoRSxRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDakIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUIsTUFBTTtZQUNSLEtBQUssVUFBVTtnQkFDYixJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQyxNQUFNO1lBQ1IsS0FBSyxXQUFXO2dCQUNkLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixNQUFNO1lBQ1IsS0FBSyxZQUFZO2dCQUNmLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELE1BQU07WUFDUixLQUFLLFdBQVc7Z0JBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDUjtnQkFDRSxPQUFPO1NBQ1Y7UUFFRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBYztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDNUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRXJGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7OEdBdlhVLGVBQWU7a0dBQWYsZUFBZSwwTUE2RE4sZ0JBQWdCLHVPQ3ZKdEMsMHlCQXNCQSxteEtEaUUwQixTQUFTOzsyRkFHdEIsZUFBZTtrQkFmM0IsU0FBUzsrQkFDRSxXQUFXLGNBR1QsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxXQUFXO3dCQUNsQixJQUFJLEVBQUUsUUFBUTt3QkFDZCxNQUFNLEVBQUUsV0FBVztxQkFDcEIsV0FDUSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsa0JBQ2xCLENBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7OEJBbUJyRSxHQUFHO3NCQUROLEtBQUs7Z0JBVUYsR0FBRztzQkFETixLQUFLO2dCQVVGLElBQUk7c0JBRFAsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBMZXREaXJlY3RpdmUsIGNsYW1wLCBjcmVhdGVEZXN0cm95LCBzaWduYWxIb3N0QXR0cmlidXRlcywgc2lnbmFsSG9zdENsYXNzZXMgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZmlsdGVyLFxuICBmcm9tRXZlbnQsXG4gIG1hcCxcbiAgbWVyZ2UsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElOUFVUX1RPS0VOLCBJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuXG5jb25zdCBpc1RvdWNoRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCA9PiB7XG4gIHJldHVybiBldmVudC50eXBlWzBdID09PSAndCc7XG59O1xuXG5jb25zdCBnZXRUb3VjaElkRm9yU2xpZGVyID0gKGV2ZW50OiBUb3VjaEV2ZW50LCBzbGlkZXI6IEhUTUxFbGVtZW50KSA9PiB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZXZlbnQudG91Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRvdWNoZXNbaV0hLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmIChzbGlkZXIgPT09IHRhcmdldCB8fCBzbGlkZXIuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgcmV0dXJuIGV2ZW50LnRvdWNoZXNbaV0hLmlkZW50aWZpZXI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBmaW5kTWF0Y2hpbmdUb3VjaCA9ICh0b3VjaGVzOiBUb3VjaExpc3QsIGlkOiBudW1iZXIpID0+IHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b3VjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHRvdWNoZXNbaV0hLmlkZW50aWZpZXIgPT09IGlkKSB7XG4gICAgICByZXR1cm4gdG91Y2hlc1tpXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmNvbnN0IGdldFBvaW50ZXJQb3NpdGlvbk9uUGFnZSA9IChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGlkOiBudW1iZXIgfCBudWxsKSA9PiB7XG4gIGxldCBwb2ludDogeyBjbGllbnRYOiBudW1iZXI7IGNsaWVudFk6IG51bWJlciB9IHwgbnVsbDtcblxuICBpZiAoaXNUb3VjaEV2ZW50KGV2ZW50KSkge1xuICAgIGlmICh0eXBlb2YgaWQgPT09ICdudW1iZXInKSB7XG4gICAgICBwb2ludCA9IGZpbmRNYXRjaGluZ1RvdWNoKGV2ZW50LnRvdWNoZXMsIGlkKSB8fCBmaW5kTWF0Y2hpbmdUb3VjaChldmVudC5jaGFuZ2VkVG91Y2hlcywgaWQpIHx8IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvaW50ID0gZXZlbnQudG91Y2hlc1swXSB8fCBldmVudC5jaGFuZ2VkVG91Y2hlc1swXSB8fCBudWxsO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBwb2ludCA9IGV2ZW50O1xuICB9XG5cbiAgcmV0dXJuIHBvaW50ID8geyB4OiBwb2ludC5jbGllbnRYLCB5OiBwb2ludC5jbGllbnRZIH0gOiBudWxsO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtc2xpZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NsaWRlci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZXQtc2xpZGVyJyxcbiAgICByb2xlOiAnc2xpZGVyJyxcbiAgICAnW2lkXSc6ICdfaW5wdXQuaWQnLFxuICB9LFxuICBpbXBvcnRzOiBbTGV0RGlyZWN0aXZlLCBBc3luY1BpcGVdLFxuICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBJbnB1dERpcmVjdGl2ZSwgaW5wdXRzOiBbJ2F1dG9jb21wbGV0ZSddIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlyU2VydmljZSA9IGluamVjdChEaXJlY3Rpb25hbGl0eSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbW91c2VEb3duJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF90b3VjaFN0YXJ0JCA9IGZyb21FdmVudDxUb3VjaEV2ZW50Pih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0b3VjaHN0YXJ0Jywge1xuICAgIHBhc3NpdmU6IGZhbHNlLFxuICB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfa2V5RG93biQgPSBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2tleVVwJCA9IGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5wdXQgPSBpbmplY3Q8SW5wdXREaXJlY3RpdmU8bnVtYmVyPj4oSU5QVVRfVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtRmllbGRTdGF0ZVNlcnZpY2UgPSBpbmplY3QoRm9ybUZpZWxkU3RhdGVTZXJ2aWNlKTtcblxuICBASW5wdXQoKVxuICBnZXQgbWluKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pbiQudmFsdWU7XG4gIH1cbiAgc2V0IG1pbih2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX21pbiQubmV4dChudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDApKTtcbiAgfVxuICBwcml2YXRlIF9taW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcblxuICBASW5wdXQoKVxuICBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heCQudmFsdWU7XG4gIH1cbiAgc2V0IG1heCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX21heCQubmV4dChudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDEwMCkpO1xuICB9XG4gIHByaXZhdGUgX21heCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDEwMCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHN0ZXAoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3RlcCQudmFsdWU7XG4gIH1cbiAgc2V0IHN0ZXAodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9zdGVwJC5uZXh0KG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgMSkpO1xuICB9XG4gIHByaXZhdGUgX3N0ZXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxKTtcblxuICBASW5wdXQoKVxuICBnZXQgdmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcnRpY2FsJC52YWx1ZTtcbiAgfVxuICBzZXQgdmVydGljYWwodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl92ZXJ0aWNhbCQubmV4dChib29sZWFuQXR0cmlidXRlKHZhbHVlKSk7XG4gIH1cbiAgcHJpdmF0ZSBfdmVydGljYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGludmVydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbnZlcnRlZCQudmFsdWU7XG4gIH1cbiAgc2V0IGludmVydGVkKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5faW52ZXJ0ZWQkLm5leHQoYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSkpO1xuICB9XG4gIHByaXZhdGUgX2ludmVydGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBnZXQgcmVuZGVyVmFsdWVUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZW5kZXJWYWx1ZVRvb2x0aXAkLnZhbHVlO1xuICB9XG4gIHNldCByZW5kZXJWYWx1ZVRvb2x0aXAodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZW5kZXJWYWx1ZVRvb2x0aXAkLm5leHQodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX3JlbmRlclZhbHVlVG9vbHRpcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kaXIkID0gdGhpcy5fZGlyU2VydmljZS5jaGFuZ2UucGlwZShzdGFydFdpdGgodGhpcy5fZGlyU2VydmljZS52YWx1ZSkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZhbHVlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2lucHV0LnZhbHVlJCwgdGhpcy5fbWluJCwgdGhpcy5fbWF4JF0pLnBpcGUoXG4gICAgbWFwKChbdmFsdWUsIG1pbiwgbWF4XSkgPT4gY2xhbXAodmFsdWUgPz8gMCwgbWluLCBtYXgpKSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9yb3VuZFRvRGVjaW1hbCQgPSB0aGlzLl9zdGVwJC5waXBlKFxuICAgIG1hcCgoc3RlcCkgPT4ge1xuICAgICAgY29uc3Qgc3RlcFN0cmluZyA9IHN0ZXAudG9TdHJpbmcoKTtcblxuICAgICAgcmV0dXJuIHN0ZXBTdHJpbmcuaW5jbHVkZXMoJy4nKSA/IHN0ZXBTdHJpbmcuc3BsaXQoJy4nKVsxXSEubGVuZ3RoIDogMDtcbiAgICB9KSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wZXJjZW50JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX3ZhbHVlJCwgdGhpcy5fbWluJCwgdGhpcy5fbWF4JF0pLnBpcGUoXG4gICAgbWFwKChbdmFsdWUsIG1pbiwgbWF4XSkgPT4gKHZhbHVlIC0gbWluKSAvIChtYXggLSBtaW4pKSxcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2hvdWxkSW52ZXJ0QXhpcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl92ZXJ0aWNhbCQsIHRoaXMuX2ludmVydGVkJF0pLnBpcGUoXG4gICAgbWFwKChbdmVydGljYWwsIGludmVydGVkXSkgPT4gKHZlcnRpY2FsID8gIWludmVydGVkIDogaW52ZXJ0ZWQpKSxcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fdmVydGljYWwkLFxuICAgIHRoaXMuX3Nob3VsZEludmVydEF4aXMkLFxuICAgIHRoaXMuX2RpciQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbdmVydGljYWwsIHNob3VsZEludmVydEF4aXMsIGRpcl0pID0+IChkaXIgPT09ICdydGwnICYmICF2ZXJ0aWNhbCA/ICFzaG91bGRJbnZlcnRBeGlzIDogc2hvdWxkSW52ZXJ0QXhpcykpLFxuICApO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zbGlkZXJEaW1lbnNpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWVUZXh0JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX3ZhbHVlJCwgdGhpcy5fcm91bmRUb0RlY2ltYWwkXSkucGlwZShcbiAgICBtYXAoKFt2YWx1ZSwgcm91bmRUb0RlY2ltYWxdKSA9PiB2YWx1ZS50b0ZpeGVkKHJvdW5kVG9EZWNpbWFsKSksXG4gICk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYWNrQmFja2dyb3VuZFN0eWxlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9wZXJjZW50JCwgdGhpcy5fdmVydGljYWwkXSkucGlwZShcbiAgICBtYXAoKFtwZXJjZW50LCB2ZXJ0aWNhbF0pID0+IHtcbiAgICAgIGNvbnN0IHNjYWxlID0gdmVydGljYWwgPyBgMSwgJHsxIC0gcGVyY2VudH0sIDFgIDogYCR7MSAtIHBlcmNlbnR9LCAxLCAxYDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgc2NhbGUzZCgke3NjYWxlfSlgLFxuICAgICAgfTtcbiAgICB9KSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhY2tGaWxsU3R5bGVzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX3BlcmNlbnQkLCB0aGlzLl92ZXJ0aWNhbCRdKS5waXBlKFxuICAgIG1hcCgoW3BlcmNlbnQsIHZlcnRpY2FsXSkgPT4ge1xuICAgICAgY29uc3Qgc2NhbGUgPSB2ZXJ0aWNhbCA/IGAxLCAke3BlcmNlbnR9LCAxYCA6IGAke3BlcmNlbnR9LCAxLCAxYDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgc2NhbGUzZCgke3NjYWxlfSlgLFxuICAgICAgICBkaXNwbGF5OiBwZXJjZW50ID09PSAwID8gJ25vbmUnIDogJycsXG4gICAgICB9O1xuICAgIH0pLFxuICApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0aHVtYkNvbnRhaW5lclN0eWxlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9wZXJjZW50JCxcbiAgICB0aGlzLl9zaG91bGRJbnZlcnRNb3VzZUNvb3JkcyQsXG4gICAgdGhpcy5fdmVydGljYWwkLFxuICAgIHRoaXMuX2RpciQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbcGVyY2VudCwgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMsIHZlcnRpY2FsLCBkaXJdKSA9PiB7XG4gICAgICBjb25zdCBheGlzID0gdmVydGljYWwgPyAnWScgOiAnWCc7XG4gICAgICBjb25zdCBpbnZlcnRPZmZzZXQgPSBkaXIgPT09ICdydGwnICYmICF2ZXJ0aWNhbCA/ICFzaG91bGRJbnZlcnRNb3VzZUNvb3JkcyA6IHNob3VsZEludmVydE1vdXNlQ29vcmRzO1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gKGludmVydE9mZnNldCA/IHBlcmNlbnQgOiAxIC0gcGVyY2VudCkgKiAxMDA7XG4gICAgICBjb25zdCBzaWduID0gdmVydGljYWwgPyAnLScgOiBkaXIgPT09ICdydGwnID8gJycgOiAnLSc7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZSR7YXhpc30oJHtzaWdufSR7b2Zmc2V0fSUpYCxcbiAgICAgIH07XG4gICAgfSksXG4gICk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzU2xpZGluZ1ZpYSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdrZXlib2FyZCcgfCAncG9pbnRlcicgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVBbmltYXRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG91Y2hJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFzdFBvaW50ZXJFdmVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzQmluZGluZ3MgPSBzaWduYWxIb3N0Q2xhc3Nlcyh7XG4gICAgJ2V0LXNsaWRlci0taXMtc2xpZGluZyc6IHRvU2lnbmFsKHRoaXMuaXNTbGlkaW5nVmlhJCksXG4gICAgJ2V0LXNsaWRlci0taW52ZXJ0ZWQnOiB0b1NpZ25hbCh0aGlzLl9pbnZlcnRlZCQpLFxuICAgICdldC1zbGlkZXItLWRpc2FibGUtYW5pbWF0aW9ucyc6IHRvU2lnbmFsKHRoaXMuZGlzYWJsZUFuaW1hdGlvbnMkKSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaG9zdEF0dHJpYnV0ZUJpbmRpbmdzID0gc2lnbmFsSG9zdEF0dHJpYnV0ZXMoe1xuICAgICdhcmlhLW9yaWVudGF0aW9uJzogdG9TaWduYWwodGhpcy5fdmVydGljYWwkLnBpcGUobWFwKCh2ZXJ0aWNhbCkgPT4gKHZlcnRpY2FsID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJykpKSksXG4gICAgJ2FyaWEtZGlzYWJsZWQnOiB0b1NpZ25hbCh0aGlzLl9pbnB1dC5kaXNhYmxlZCQpLFxuICAgICdhcmlhLXZhbHVlbm93JzogdG9TaWduYWwodGhpcy5fdmFsdWUkKSxcbiAgICAnYXJpYS12YWx1ZW1pbic6IHRvU2lnbmFsKHRoaXMuX21pbiQpLFxuICAgICdhcmlhLXZhbHVlbWF4JzogdG9TaWduYWwodGhpcy5fbWF4JCksXG4gICAgJ2FyaWEtdmFsdWV0ZXh0JzogdG9TaWduYWwodGhpcy52YWx1ZVRleHQkKSxcbiAgICB0YWJpbmRleDogdG9TaWduYWwodGhpcy5faW5wdXQuZGlzYWJsZWQkLnBpcGUobWFwKChkaXNhYmxlZCkgPT4gKGRpc2FibGVkID8gLTEgOiAwKSkpKSxcbiAgICAnYXJpYS1sYWJlbGVkYnknOiB0aGlzLl9mb3JtRmllbGRTdGF0ZVNlcnZpY2UubGFiZWxJZCxcbiAgICAnYXJpYS1kZXNjcmliZWRieSc6IHRoaXMuX2Zvcm1GaWVsZFN0YXRlU2VydmljZS5kZXNjcmliZWRCeSxcbiAgfSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgbWVyZ2UodGhpcy5fbW91c2VEb3duJCwgdGhpcy5fdG91Y2hTdGFydCQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLl9pbnB1dC5kaXNhYmxlZDtcbiAgICAgICAgICBjb25zdCBpc1NsaWRpbmcgPSAhIXRoaXMuaXNTbGlkaW5nVmlhJC52YWx1ZTtcbiAgICAgICAgICBjb25zdCBpc0ludmFsaWRNb3VzZUJ1dHRvbiA9ICFpc1RvdWNoRXZlbnQoZXZlbnQpICYmIGV2ZW50LmJ1dHRvbiAhPT0gMDtcblxuICAgICAgICAgIHJldHVybiAhaXNEaXNhYmxlZCAmJiAhaXNTbGlkaW5nICYmICFpc0ludmFsaWRNb3VzZUJ1dHRvbjtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoZXZlbnQpID0+XG4gICAgICAgICAgY29tYmluZUxhdGVzdChbb2YoZXZlbnQpLCB0aGlzLl9mcmVzaFNsaWRlckRpbWVuc2lvbnMoKSwgdGhpcy5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMkXSkucGlwZShcbiAgICAgICAgICAgIHRhcCgoW2V2ZW50LCBzbGlkZXJEaW1lbnNpb25zLCBzaG91bGRJbnZlcnRNb3VzZUNvb3Jkc10pID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVNsaWRlKGV2ZW50LCBzbGlkZXJEaW1lbnNpb25zLCBzaG91bGRJbnZlcnRNb3VzZUNvb3Jkcyk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fa2V5RG93biRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuX2lucHV0LmRpc2FibGVkO1xuICAgICAgICAgIGNvbnN0IGlzU2xpZGluZyA9IHRoaXMuaXNTbGlkaW5nVmlhJC52YWx1ZSAmJiB0aGlzLmlzU2xpZGluZ1ZpYSQudmFsdWUgIT09ICdrZXlib2FyZCc7XG4gICAgICAgICAgY29uc3QgaXNNb2RpZmllclByZXNzZWQgPSBldmVudC5hbHRLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50Lm1ldGFLZXk7XG5cbiAgICAgICAgICByZXR1cm4gIWlzRGlzYWJsZWQgJiYgIWlzU2xpZGluZyAmJiAhaXNNb2RpZmllclByZXNzZWQ7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLl9kaXIkKSxcbiAgICAgICAgdGFwKChbZXZlbnQsIGRpcl0pID0+IHRoaXMuX3VwZGF0ZVNsaWRlclZpYUtleWJvYXJkKGV2ZW50LCBkaXIpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2tleVVwJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzU2xpZGluZ1ZpYSQudmFsdWUgPT09ICdrZXlib2FyZCcpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pc1NsaWRpbmdWaWEkLm5leHQobnVsbCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2JsdXInKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5faW5wdXQuX21hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICB0aGlzLl9pbnB1dC5fc2V0U2hvdWxkRGlzcGxheUVycm9yKHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVTbGlkZShcbiAgICBldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsXG4gICAgc2xpZGVyRGltZW5zaW9uczogRE9NUmVjdCxcbiAgICBzaG91bGRJbnZlcnRNb3VzZUNvb3JkczogYm9vbGVhbixcbiAgKSB7XG4gICAgaWYgKGlzVG91Y2hFdmVudChldmVudCkpIHtcbiAgICAgIHRoaXMudG91Y2hJZCQubmV4dChnZXRUb3VjaElkRm9yU2xpZGVyKGV2ZW50LCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICB9XG5cbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb24gPSBnZXRQb2ludGVyUG9zaXRpb25PblBhZ2UoZXZlbnQsIHRoaXMudG91Y2hJZCQudmFsdWUpO1xuXG4gICAgaWYgKCFwb2ludGVyUG9zaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzU2xpZGluZ1ZpYSQubmV4dCgncG9pbnRlcicpO1xuXG4gICAgdGhpcy5fYmluZEdsb2JhbEV2ZW50cyhldmVudCk7XG4gICAgdGhpcy5fdXBkYXRlVmFsdWVGcm9tUG9zaXRpb24ocG9pbnRlclBvc2l0aW9uLCBzbGlkZXJEaW1lbnNpb25zLCBzaG91bGRJbnZlcnRNb3VzZUNvb3Jkcyk7XG4gICAgdGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmN1cnNvciA9ICdncmFiYmluZyc7XG5cbiAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9iaW5kR2xvYmFsRXZlbnRzKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkge1xuICAgIGNvbnN0IGlzVG91Y2ggPSBpc1RvdWNoRXZlbnQoZXZlbnQpO1xuICAgIGNvbnN0IG1vdmVFdmVudE5hbWUgPSBpc1RvdWNoID8gJ3RvdWNobW92ZScgOiAnbW91c2Vtb3ZlJztcbiAgICBjb25zdCBlbmRFdmVudE5hbWUgPSBpc1RvdWNoID8gJ3RvdWNoZW5kJyA6ICdtb3VzZXVwJztcblxuICAgIGNvbnN0IGV2ZW50Q29uZmlnID0geyBwYXNzaXZlOiBmYWxzZSB9O1xuXG4gICAgY29uc3QgcG9pbnRlclVwJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50IHwgVG91Y2hFdmVudD4od2luZG93LCBlbmRFdmVudE5hbWUsIGV2ZW50Q29uZmlnKTtcbiAgICBjb25zdCB0b3VjaENhbmNlbCQgPSBmcm9tRXZlbnQ8VG91Y2hFdmVudD4od2luZG93LCAndG91Y2hjYW5jZWwnLCBldmVudENvbmZpZyk7XG4gICAgY29uc3Qgd2luZG93Qmx1ciQgPSBmcm9tRXZlbnQ8Rm9jdXNFdmVudD4od2luZG93LCAnYmx1cicpO1xuXG4gICAgY29uc3Qgc2xpZGVFbmQkID0gbWVyZ2UocG9pbnRlclVwJCwgdG91Y2hDYW5jZWwkLCB3aW5kb3dCbHVyJCk7XG5cbiAgICBmcm9tRXZlbnQ8TW91c2VFdmVudCB8IFRvdWNoRXZlbnQ+KHdpbmRvdywgbW92ZUV2ZW50TmFtZSwgZXZlbnRDb25maWcpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHNsaWRlRW5kJCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuX3NsaWRlckRpbWVuc2lvbnMkLCB0aGlzLl9zaG91bGRJbnZlcnRNb3VzZUNvb3JkcyQpLFxuICAgICAgICB0YXAoKFtldmVudCwgc2xpZGVyRGltZW5zaW9ucywgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHNdKSA9PiB7XG4gICAgICAgICAgY29uc3QgcG9pbnRlclBvc2l0aW9uID0gZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlKGV2ZW50LCB0aGlzLnRvdWNoSWQkLnZhbHVlKTtcblxuICAgICAgICAgIGlmICghcG9pbnRlclBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVBbmltYXRpb25zJC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlQW5pbWF0aW9ucyQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZUZyb21Qb3NpdGlvbihwb2ludGVyUG9zaXRpb24sIHNsaWRlckRpbWVuc2lvbnMsIHNob3VsZEludmVydE1vdXNlQ29vcmRzKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBzbGlkZUVuZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLmlzU2xpZGluZ1ZpYSQubmV4dChudWxsKTtcbiAgICAgICAgICB0aGlzLnRvdWNoSWQkLm5leHQobnVsbCk7XG4gICAgICAgICAgdGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmN1cnNvciA9ICcnO1xuICAgICAgICAgIHRoaXMuZGlzYWJsZUFuaW1hdGlvbnMkLm5leHQoZmFsc2UpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlRnJvbVBvc2l0aW9uID0gKFxuICAgIHBvczogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9LFxuICAgIHNsaWRlckRpbWVuc2lvbnM6IERPTVJlY3QsXG4gICAgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHM6IGJvb2xlYW4sXG4gICkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IHRoaXMudmVydGljYWwgPyBzbGlkZXJEaW1lbnNpb25zLnRvcCA6IHNsaWRlckRpbWVuc2lvbnMubGVmdDtcbiAgICBjb25zdCBzaXplID0gdGhpcy52ZXJ0aWNhbCA/IHNsaWRlckRpbWVuc2lvbnMuaGVpZ2h0IDogc2xpZGVyRGltZW5zaW9ucy53aWR0aDtcbiAgICBjb25zdCBwb3NDb21wb25lbnQgPSB0aGlzLnZlcnRpY2FsID8gcG9zLnkgOiBwb3MueDtcblxuICAgIGxldCBwZXJjZW50ID0gY2xhbXAoKHBvc0NvbXBvbmVudCAtIG9mZnNldCkgLyBzaXplLCAwLCAxKTtcblxuICAgIGlmIChzaG91bGRJbnZlcnRNb3VzZUNvb3Jkcykge1xuICAgICAgcGVyY2VudCA9IDEgLSBwZXJjZW50O1xuICAgIH1cblxuICAgIGlmIChwZXJjZW50ID09PSAwKSB7XG4gICAgICB0aGlzLl9pbnB1dC5fdXBkYXRlVmFsdWUodGhpcy5taW4pO1xuICAgIH0gZWxzZSBpZiAocGVyY2VudCA9PT0gMSkge1xuICAgICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKHRoaXMubWF4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXhhY3RWYWx1ZSA9IHBlcmNlbnQgKiAodGhpcy5tYXggLSB0aGlzLm1pbikgKyB0aGlzLm1pbjtcbiAgICAgIGNvbnN0IGNsb3Nlc3RWYWx1ZSA9IE1hdGgucm91bmQoKGV4YWN0VmFsdWUgLSB0aGlzLm1pbikgLyB0aGlzLnN0ZXApICogdGhpcy5zdGVwICsgdGhpcy5taW47XG4gICAgICB0aGlzLl9pbnB1dC5fdXBkYXRlVmFsdWUoY2xhbXAoY2xvc2VzdFZhbHVlLCB0aGlzLm1pbiwgdGhpcy5tYXgpKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dC5fbWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuX2lucHV0Ll9zZXRTaG91bGREaXNwbGF5RXJyb3IodHJ1ZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2xpZGVyVmlhS2V5Ym9hcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGRpcjogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ1BhZ2VVcCc6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoMTApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xpZGVyVmFsdWVCeSgtMTApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgIHRoaXMuX2lucHV0Ll91cGRhdGVWYWx1ZSh0aGlzLm1heCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgIHRoaXMuX2lucHV0Ll91cGRhdGVWYWx1ZSh0aGlzLm1pbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xpZGVyVmFsdWVCeShkaXIgPT09ICdydGwnID8gMSA6IC0xKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xpZGVyVmFsdWVCeSgxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xpZGVyVmFsdWVCeShkaXIgPT09ICdydGwnID8gLTEgOiAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJWYWx1ZUJ5KC0xKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmlzU2xpZGluZ1ZpYSQubmV4dCgna2V5Ym9hcmQnKTtcblxuICAgIHRoaXMuX2lucHV0Ll9tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5faW5wdXQuX3NldFNob3VsZERpc3BsYXlFcnJvcih0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3VwZGF0ZVNsaWRlclZhbHVlQnkob2Zmc2V0OiBudW1iZXIpIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLl9pbnB1dC52YWx1ZSB8fCAwO1xuICAgIGNvbnN0IHZhbHVlID0gY2xhbXAoY3VycmVudFZhbHVlICsgdGhpcy5zdGVwICogb2Zmc2V0LCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuXG4gICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZyZXNoU2xpZGVyRGltZW5zaW9ucygpIHtcbiAgICB0aGlzLl9zbGlkZXJEaW1lbnNpb25zJC5uZXh0KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5fc2xpZGVyRGltZW5zaW9ucyQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJldC1zbGlkZXItdHJhY2stY29udGFpbmVyXCI+XG4gIEBpZiAodHJhY2tCYWNrZ3JvdW5kU3R5bGVzJCB8IGFzeW5jOyBhcyB0cmFja0JhY2tncm91bmRTdHlsZXMpIHtcbiAgICA8ZGl2IFtzdHlsZS50cmFuc2Zvcm1dPVwidHJhY2tCYWNrZ3JvdW5kU3R5bGVzLnRyYW5zZm9ybVwiIGNsYXNzPVwiZXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmRcIj48L2Rpdj5cbiAgfVxuICBAaWYgKHRyYWNrRmlsbFN0eWxlcyQgfCBhc3luYzsgYXMgdHJhY2tGaWxsU3R5bGVzKSB7XG4gICAgPGRpdlxuICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJ0cmFja0ZpbGxTdHlsZXMudHJhbnNmb3JtXCJcbiAgICAgIFtzdHlsZS5kaXNwbGF5XT1cInRyYWNrRmlsbFN0eWxlcy5kaXNwbGF5XCJcbiAgICAgIGNsYXNzPVwiZXQtc2xpZGVyLXRyYWNrLWZpbGxcIlxuICAgID48L2Rpdj5cbiAgfVxuPC9kaXY+XG5cbkBpZiAodGh1bWJDb250YWluZXJTdHlsZXMkIHwgYXN5bmM7IGFzIHRodW1iQ29udGFpbmVyU3R5bGVzKSB7XG4gIDxkaXYgW3N0eWxlLnRyYW5zZm9ybV09XCJ0aHVtYkNvbnRhaW5lclN0eWxlcy50cmFuc2Zvcm1cIiBjbGFzcz1cImV0LXNsaWRlci10aHVtYi1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXQtc2xpZGVyLXRodW1iXCI+XG4gICAgICBAaWYgKHJlbmRlclZhbHVlVG9vbHRpcCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZXQtc2xpZGVyLXZhbHVlLXRvb2x0aXBcIj57eyB2YWx1ZVRleHQkIHwgYXN5bmMgfX08L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0=
|