slick-components 4.4.13 → 4.4.16
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/css/slick-components.css +598 -365
- package/css/slick-components.min.css +1 -1
- package/esm2020/public-api.mjs +43 -0
- package/esm2020/slick-accordion/slick-accordion-item-header.component.mjs +14 -0
- package/esm2020/slick-accordion/slick-accordion-item.component.mjs +86 -0
- package/esm2020/slick-accordion/slick-accordion.component.mjs +75 -0
- package/esm2020/slick-accordion/slick-accordion.module.mjs +23 -0
- package/esm2020/slick-auto-complete/slick-auto-complete-list-item-template.directive.mjs +22 -0
- package/esm2020/slick-auto-complete/slick-auto-complete.component.mjs +375 -0
- package/esm2020/slick-auto-complete/slick-auto-complete.module.mjs +24 -0
- package/esm2020/slick-button-spinner/slick-button-spinner.component.mjs +175 -0
- package/esm2020/slick-button-spinner/slick-button-spinner.module.mjs +19 -0
- package/esm2020/slick-calendar/slick-calendar.component.mjs +246 -0
- package/esm2020/slick-calendar/slick-calendar.module.mjs +19 -0
- package/esm2020/slick-card/slick-card-header.component.mjs +14 -0
- package/esm2020/slick-card/slick-card.component.mjs +42 -0
- package/esm2020/slick-card/slick-card.module.mjs +20 -0
- package/esm2020/slick-components.mjs +5 -0
- package/esm2020/slick-confirm-dialog/slick-confirm-dialog.component.mjs +65 -0
- package/esm2020/slick-confirm-dialog/slick-confirm-dialog.module.mjs +20 -0
- package/esm2020/slick-container/slick-container-body.component.mjs +24 -0
- package/esm2020/slick-container/slick-container-footer.component.mjs +20 -0
- package/esm2020/slick-container/slick-container-header.component.mjs +20 -0
- package/esm2020/slick-container/slick-container.component.mjs +21 -0
- package/esm2020/slick-container/slick-container.module.mjs +25 -0
- package/esm2020/slick-context-menu/slick-context-menu-item.component.mjs +14 -0
- package/esm2020/slick-context-menu/slick-context-menu.component.mjs +48 -0
- package/esm2020/slick-context-menu/slick-context-menu.module.mjs +20 -0
- package/{esm2015/slick-currency-mask/slick-currency-mask-options.model.js → esm2020/slick-currency-mask/slick-currency-mask-options.model.mjs} +0 -0
- package/esm2020/slick-currency-mask/slick-currency-mask.directive.mjs +233 -0
- package/esm2020/slick-currency-mask/slick-currency-mask.module.mjs +19 -0
- package/esm2020/slick-date-picker/slick-date-picker.component.mjs +278 -0
- package/esm2020/slick-date-picker/slick-date-picker.module.mjs +21 -0
- package/esm2020/slick-dialog/slick-dialog-footer.component.mjs +24 -0
- package/esm2020/slick-dialog/slick-dialog.component.mjs +294 -0
- package/esm2020/slick-dialog/slick-dialog.module.mjs +23 -0
- package/esm2020/slick-dialog/slick-dialog.service.mjs +68 -0
- package/esm2020/slick-drag-drop/slick-drag-drop.directive.mjs +13 -0
- package/esm2020/slick-drag-drop/slick-drag-drop.module.mjs +21 -0
- package/esm2020/slick-drag-drop/slick-draggable.directive.mjs +13 -0
- package/{esm2015/slick-drop-down/slick-drop-down-button.model.js → esm2020/slick-drop-down/slick-drop-down-button.model.mjs} +0 -0
- package/esm2020/slick-drop-down/slick-drop-down.component.mjs +479 -0
- package/esm2020/slick-drop-down/slick-drop-down.module.mjs +24 -0
- package/esm2020/slick-drop-down/slick-drop-down.service.mjs +55 -0
- package/esm2020/slick-drop-list/slick-drop-list-grab.directive.mjs +18 -0
- package/esm2020/slick-drop-list/slick-drop-list-item.directive.mjs +18 -0
- package/esm2020/slick-drop-list/slick-drop-list.directive.mjs +215 -0
- package/esm2020/slick-drop-list/slick-drop-list.module.mjs +23 -0
- package/esm2020/slick-email-viewer/slick-email-viewer-dialog.component.mjs +81 -0
- package/esm2020/slick-email-viewer/slick-email-viewer.component.mjs +42 -0
- package/esm2020/slick-email-viewer/slick-email-viewer.module.mjs +26 -0
- package/{esm2015/slick-emailer/slick-emailer-address.model.js → esm2020/slick-emailer/slick-emailer-address.model.mjs} +0 -0
- package/esm2020/slick-emailer/slick-emailer-dialog.component.mjs +153 -0
- package/esm2020/slick-emailer/slick-emailer.component.mjs +235 -0
- package/{esm2015/slick-emailer/slick-emailer.model.js → esm2020/slick-emailer/slick-emailer.model.mjs} +0 -0
- package/esm2020/slick-emailer/slick-emailer.module.mjs +29 -0
- package/esm2020/slick-file-drop/slick-file-drop.component.mjs +156 -0
- package/esm2020/slick-file-drop/slick-file-drop.module.mjs +20 -0
- package/esm2020/slick-file-list/slick-file-list-item.component.mjs +173 -0
- package/esm2020/slick-file-list/slick-file-list.component.mjs +130 -0
- package/esm2020/slick-file-list/slick-file-list.module.mjs +23 -0
- package/{esm2015/slick-file-model/slick-file.model.js → esm2020/slick-file-model/slick-file.model.mjs} +0 -0
- package/esm2020/slick-google-address-search/slick-google-address-search.directive.mjs +75 -0
- package/esm2020/slick-google-address-search/slick-google-address-search.module.mjs +19 -0
- package/esm2020/slick-google-map/slick-google-map-dialog.component.mjs +50 -0
- package/esm2020/slick-google-map/slick-google-map.component.mjs +48 -0
- package/esm2020/slick-google-map/slick-google-map.module.mjs +22 -0
- package/esm2020/slick-grid/slick-grid-column-template.directive.mjs +19 -0
- package/{esm2015/slick-grid/slick-grid-column.model.js → esm2020/slick-grid/slick-grid-column.model.mjs} +0 -0
- package/{esm2015/slick-grid/slick-grid-favorite.model.js → esm2020/slick-grid/slick-grid-favorite.model.mjs} +0 -0
- package/{esm2015/slick-grid/slick-grid-request.model.js → esm2020/slick-grid/slick-grid-request.model.mjs} +0 -0
- package/{esm2015/slick-grid/slick-grid-response.model.js → esm2020/slick-grid/slick-grid-response.model.mjs} +0 -0
- package/esm2020/slick-grid/slick-grid-sanitize.pipe.mjs +20 -0
- package/esm2020/slick-grid/slick-grid.component.mjs +793 -0
- package/esm2020/slick-grid/slick-grid.module.mjs +43 -0
- package/{esm2015/slick-grid/slick-grid.options.js → esm2020/slick-grid/slick-grid.options.mjs} +0 -0
- package/esm2020/slick-grid/slick-grid.service.mjs +66 -0
- package/esm2020/slick-multi-select/slick-multi-select.component.mjs +362 -0
- package/esm2020/slick-multi-select/slick-multi-select.module.mjs +20 -0
- package/esm2020/slick-multi-select/slick-multi-select.service.mjs +77 -0
- package/esm2020/slick-ordered-list/slick-ordered-list.component.mjs +200 -0
- package/esm2020/slick-ordered-list/slick-ordered-list.module.mjs +20 -0
- package/esm2020/slick-paging/slick-paging.component.mjs +185 -0
- package/esm2020/slick-paging/slick-paging.module.mjs +19 -0
- package/esm2020/slick-photo-gallery/slick-photo-gallery.component.mjs +98 -0
- package/{esm2015/slick-photo-gallery/slick-photo-gallery.model.js → esm2020/slick-photo-gallery/slick-photo-gallery.model.mjs} +0 -0
- package/esm2020/slick-photo-gallery/slick-photo-gallery.module.mjs +21 -0
- package/esm2020/slick-pick-list/slick-pick-list.component.mjs +84 -0
- package/esm2020/slick-pick-list/slick-pick-list.module.mjs +20 -0
- package/esm2020/slick-popover/slick-popover.component.mjs +204 -0
- package/esm2020/slick-popover/slick-popover.module.mjs +19 -0
- package/esm2020/slick-profile-picture/slick-profile-picture.component.mjs +267 -0
- package/esm2020/slick-profile-picture/slick-profile-picture.module.mjs +20 -0
- package/esm2020/slick-progress-bar/slick-progress-bar.module.mjs +18 -0
- package/esm2020/slick-progress-bar/slick-progress-bar.service.mjs +53 -0
- package/esm2020/slick-screen-blocker/slick-screen-blocker.module.mjs +18 -0
- package/esm2020/slick-screen-blocker/slick-screen-blocker.service.mjs +83 -0
- package/{esm2015/slick-slider/slick-slider-tick.model.js → esm2020/slick-slider/slick-slider-tick.model.mjs} +0 -0
- package/esm2020/slick-slider/slick-slider.component.mjs +90 -0
- package/esm2020/slick-slider/slick-slider.module.mjs +20 -0
- package/esm2020/slick-split-screen/slick-screen-split-left-content.component.mjs +15 -0
- package/esm2020/slick-split-screen/slick-screen-split-right-content.component.mjs +15 -0
- package/esm2020/slick-split-screen/slick-split-screen.component.mjs +159 -0
- package/esm2020/slick-split-screen/slick-split-screen.module.mjs +21 -0
- package/esm2020/slick-tabs/slick-tab-header.component.mjs +28 -0
- package/esm2020/slick-tabs/slick-tab.component.mjs +63 -0
- package/{esm2015/slick-tabs/slick-tab.model.js → esm2020/slick-tabs/slick-tab.model.mjs} +0 -0
- package/esm2020/slick-tabs/slick-tabs.component.mjs +107 -0
- package/esm2020/slick-tabs/slick-tabs.module.mjs +23 -0
- package/esm2020/slick-toast/slick-toast.module.mjs +18 -0
- package/esm2020/slick-toast/slick-toast.service.mjs +88 -0
- package/{esm2015/slick-tree-view/slick-tree-node.model.js → esm2020/slick-tree-view/slick-tree-node.model.mjs} +0 -0
- package/esm2020/slick-tree-view/slick-tree-view.component.mjs +293 -0
- package/esm2020/slick-tree-view/slick-tree-view.module.mjs +22 -0
- package/esm2020/slick-type-ahead/slick-type-ahead.directive.mjs +164 -0
- package/esm2020/slick-type-ahead/slick-type-ahead.module.mjs +18 -0
- package/esm2020/slick-validation-indicator/slick-validation-indicator.directive.mjs +63 -0
- package/esm2020/slick-validation-indicator/slick-validation-indicator.module.mjs +19 -0
- package/esm2020/utils/slick-function-lock.service.mjs +55 -0
- package/esm2020/utils/slick-init.service.mjs +49 -0
- package/esm2020/utils/slick-log.service.mjs +23 -0
- package/esm2020/utils/slick-sleep.service.mjs +14 -0
- package/esm2020/utils/slick-utils.service.mjs +247 -0
- package/fesm2015/{slick-components.js → slick-components.mjs} +2779 -2070
- package/fesm2015/slick-components.mjs.map +1 -0
- package/fesm2020/slick-components.mjs +8467 -0
- package/fesm2020/slick-components.mjs.map +1 -0
- package/package.json +20 -8
- package/public-api.d.ts +8 -8
- package/slick-accordion/slick-accordion-item-header.component.d.ts +3 -0
- package/slick-accordion/slick-accordion-item.component.d.ts +3 -0
- package/slick-accordion/slick-accordion.component.d.ts +3 -0
- package/slick-accordion/slick-accordion.module.d.ts +8 -0
- package/slick-auto-complete/slick-auto-complete-list-item-template.directive.d.ts +3 -0
- package/slick-auto-complete/slick-auto-complete.component.d.ts +3 -0
- package/slick-auto-complete/slick-auto-complete.module.d.ts +8 -0
- package/slick-button-spinner/slick-button-spinner.component.d.ts +3 -0
- package/slick-button-spinner/slick-button-spinner.module.d.ts +6 -0
- package/slick-calendar/slick-calendar.component.d.ts +3 -0
- package/slick-calendar/slick-calendar.module.d.ts +6 -0
- package/slick-card/slick-card-header.component.d.ts +3 -0
- package/slick-card/slick-card.component.d.ts +3 -0
- package/slick-card/slick-card.module.d.ts +10 -0
- package/slick-components.d.ts +1 -22
- package/slick-confirm-dialog/slick-confirm-dialog.component.d.ts +3 -0
- package/slick-confirm-dialog/slick-confirm-dialog.module.d.ts +7 -0
- package/slick-container/slick-container-body.component.d.ts +3 -0
- package/slick-container/slick-container-footer.component.d.ts +3 -0
- package/slick-container/slick-container-header.component.d.ts +3 -0
- package/slick-container/slick-container.component.d.ts +3 -0
- package/slick-container/slick-container.module.d.ts +9 -0
- package/slick-context-menu/slick-context-menu-item.component.d.ts +3 -0
- package/slick-context-menu/slick-context-menu.component.d.ts +3 -0
- package/slick-context-menu/slick-context-menu.module.d.ts +7 -0
- package/slick-currency-mask/slick-currency-mask.directive.d.ts +3 -0
- package/slick-currency-mask/slick-currency-mask.module.d.ts +5 -0
- package/slick-date-picker/slick-date-picker.component.d.ts +3 -0
- package/slick-date-picker/slick-date-picker.module.d.ts +8 -0
- package/slick-dialog/slick-dialog-footer.component.d.ts +3 -0
- package/slick-dialog/slick-dialog.component.d.ts +3 -0
- package/slick-dialog/slick-dialog.module.d.ts +10 -1
- package/slick-dialog/slick-dialog.service.d.ts +3 -0
- package/slick-drag-drop/slick-drag-drop.directive.d.ts +3 -0
- package/slick-drag-drop/slick-drag-drop.module.d.ts +11 -0
- package/slick-drag-drop/slick-draggable.directive.d.ts +3 -0
- package/slick-drop-down/slick-drop-down.component.d.ts +3 -0
- package/slick-drop-down/slick-drop-down.module.d.ts +9 -0
- package/slick-drop-down/slick-drop-down.service.d.ts +3 -0
- package/slick-drop-list/slick-drop-list-grab.directive.d.ts +3 -0
- package/slick-drop-list/slick-drop-list-item.directive.d.ts +3 -0
- package/slick-drop-list/slick-drop-list.directive.d.ts +13 -7
- package/slick-drop-list/slick-drop-list.module.d.ts +14 -0
- package/slick-email-viewer/slick-email-viewer-dialog.component.d.ts +3 -0
- package/slick-email-viewer/slick-email-viewer.component.d.ts +3 -0
- package/slick-email-viewer/slick-email-viewer.module.d.ts +10 -0
- package/slick-emailer/slick-emailer-dialog.component.d.ts +3 -0
- package/slick-emailer/slick-emailer.component.d.ts +3 -0
- package/slick-emailer/slick-emailer.module.d.ts +13 -0
- package/slick-file-drop/slick-file-drop.component.d.ts +3 -0
- package/slick-file-drop/slick-file-drop.module.d.ts +7 -0
- package/slick-file-list/slick-file-list-item.component.d.ts +3 -0
- package/slick-file-list/slick-file-list.component.d.ts +3 -0
- package/slick-file-list/slick-file-list.module.d.ts +10 -0
- package/slick-google-address-search/slick-google-address-search.directive.d.ts +3 -0
- package/slick-google-address-search/slick-google-address-search.module.d.ts +6 -0
- package/slick-google-map/slick-google-map-dialog.component.d.ts +3 -0
- package/slick-google-map/slick-google-map.component.d.ts +3 -0
- package/slick-google-map/slick-google-map.module.d.ts +8 -0
- package/slick-grid/slick-grid-column-template.directive.d.ts +3 -0
- package/slick-grid/slick-grid-sanitize.pipe.d.ts +3 -0
- package/slick-grid/slick-grid.component.d.ts +3 -0
- package/slick-grid/slick-grid.module.d.ts +16 -0
- package/slick-grid/slick-grid.service.d.ts +3 -0
- package/slick-multi-select/slick-multi-select.component.d.ts +3 -0
- package/slick-multi-select/slick-multi-select.module.d.ts +7 -0
- package/slick-multi-select/slick-multi-select.service.d.ts +3 -0
- package/slick-ordered-list/slick-ordered-list.component.d.ts +3 -0
- package/slick-ordered-list/slick-ordered-list.module.d.ts +7 -0
- package/slick-paging/slick-paging.component.d.ts +3 -0
- package/slick-paging/slick-paging.module.d.ts +6 -0
- package/slick-photo-gallery/slick-photo-gallery.component.d.ts +3 -0
- package/slick-photo-gallery/slick-photo-gallery.module.d.ts +6 -0
- package/slick-pick-list/slick-pick-list.component.d.ts +3 -0
- package/slick-pick-list/slick-pick-list.module.d.ts +7 -0
- package/slick-popover/slick-popover.component.d.ts +3 -0
- package/slick-popover/slick-popover.module.d.ts +6 -0
- package/slick-profile-picture/slick-profile-picture.component.d.ts +3 -0
- package/slick-profile-picture/slick-profile-picture.module.d.ts +7 -0
- package/slick-progress-bar/slick-progress-bar.module.d.ts +5 -0
- package/slick-progress-bar/slick-progress-bar.service.d.ts +3 -0
- package/slick-screen-blocker/slick-screen-blocker.module.d.ts +5 -0
- package/slick-screen-blocker/slick-screen-blocker.service.d.ts +3 -0
- package/slick-slider/slick-slider.component.d.ts +3 -0
- package/slick-slider/slick-slider.module.d.ts +6 -0
- package/slick-split-screen/slick-screen-split-left-content.component.d.ts +3 -0
- package/slick-split-screen/slick-screen-split-right-content.component.d.ts +3 -0
- package/slick-split-screen/slick-split-screen.component.d.ts +3 -0
- package/slick-split-screen/slick-split-screen.module.d.ts +8 -0
- package/slick-tabs/slick-tab-header.component.d.ts +3 -0
- package/slick-tabs/slick-tab.component.d.ts +3 -0
- package/slick-tabs/slick-tabs.component.d.ts +3 -0
- package/slick-tabs/slick-tabs.module.d.ts +10 -0
- package/slick-toast/slick-toast.module.d.ts +5 -0
- package/slick-toast/slick-toast.service.d.ts +3 -0
- package/slick-tree-view/slick-tree-view.component.d.ts +3 -0
- package/slick-tree-view/slick-tree-view.module.d.ts +8 -0
- package/slick-type-ahead/slick-type-ahead.directive.d.ts +3 -0
- package/slick-type-ahead/slick-type-ahead.module.d.ts +5 -0
- package/slick-validation-indicator/slick-validation-indicator.directive.d.ts +3 -0
- package/slick-validation-indicator/slick-validation-indicator.module.d.ts +6 -0
- package/utils/slick-function-lock.service.d.ts +3 -0
- package/utils/slick-init.service.d.ts +3 -0
- package/utils/slick-log.service.d.ts +3 -0
- package/utils/slick-sleep.service.d.ts +3 -0
- package/utils/slick-utils.service.d.ts +5 -0
- package/bundles/slick-components.umd.js +0 -9777
- package/bundles/slick-components.umd.js.map +0 -1
- package/esm2015/public-api.js +0 -43
- package/esm2015/slick-accordion/slick-accordion-item-header.component.js +0 -10
- package/esm2015/slick-accordion/slick-accordion-item.component.js +0 -80
- package/esm2015/slick-accordion/slick-accordion.component.js +0 -77
- package/esm2015/slick-accordion/slick-accordion.module.js +0 -18
- package/esm2015/slick-auto-complete/slick-auto-complete-list-item-template.directive.js +0 -21
- package/esm2015/slick-auto-complete/slick-auto-complete.component.js +0 -352
- package/esm2015/slick-auto-complete/slick-auto-complete.module.js +0 -19
- package/esm2015/slick-button-spinner/slick-button-spinner.component.js +0 -186
- package/esm2015/slick-button-spinner/slick-button-spinner.module.js +0 -14
- package/esm2015/slick-calendar/slick-calendar.component.js +0 -233
- package/esm2015/slick-calendar/slick-calendar.module.js +0 -14
- package/esm2015/slick-card/slick-card-header.component.js +0 -10
- package/esm2015/slick-card/slick-card.component.js +0 -37
- package/esm2015/slick-card/slick-card.module.js +0 -14
- package/esm2015/slick-components.js +0 -27
- package/esm2015/slick-confirm-dialog/slick-confirm-dialog.component.js +0 -62
- package/esm2015/slick-confirm-dialog/slick-confirm-dialog.module.js +0 -15
- package/esm2015/slick-container/slick-container-body.component.js +0 -18
- package/esm2015/slick-container/slick-container-footer.component.js +0 -16
- package/esm2015/slick-container/slick-container-header.component.js +0 -16
- package/esm2015/slick-container/slick-container.component.js +0 -19
- package/esm2015/slick-container/slick-container.module.js +0 -20
- package/esm2015/slick-context-menu/slick-context-menu-item.component.js +0 -10
- package/esm2015/slick-context-menu/slick-context-menu.component.js +0 -43
- package/esm2015/slick-context-menu/slick-context-menu.module.js +0 -15
- package/esm2015/slick-currency-mask/slick-currency-mask.directive.js +0 -234
- package/esm2015/slick-currency-mask/slick-currency-mask.module.js +0 -14
- package/esm2015/slick-date-picker/slick-date-picker.component.js +0 -267
- package/esm2015/slick-date-picker/slick-date-picker.module.js +0 -16
- package/esm2015/slick-dialog/slick-dialog-footer.component.js +0 -18
- package/esm2015/slick-dialog/slick-dialog.component.js +0 -282
- package/esm2015/slick-dialog/slick-dialog.module.js +0 -18
- package/esm2015/slick-dialog/slick-dialog.service.js +0 -67
- package/esm2015/slick-drag-drop/slick-drag-drop.directive.js +0 -9
- package/esm2015/slick-drag-drop/slick-drag-drop.module.js +0 -14
- package/esm2015/slick-drag-drop/slick-draggable.directive.js +0 -9
- package/esm2015/slick-drop-down/slick-drop-down.component.js +0 -465
- package/esm2015/slick-drop-down/slick-drop-down.module.js +0 -19
- package/esm2015/slick-drop-down/slick-drop-down.service.js +0 -59
- package/esm2015/slick-drop-list/slick-drop-list-grab.directive.js +0 -18
- package/esm2015/slick-drop-list/slick-drop-list-item.directive.js +0 -18
- package/esm2015/slick-drop-list/slick-drop-list.directive.js +0 -162
- package/esm2015/slick-drop-list/slick-drop-list.module.js +0 -15
- package/esm2015/slick-email-viewer/slick-email-viewer-dialog.component.js +0 -61
- package/esm2015/slick-email-viewer/slick-email-viewer.component.js +0 -39
- package/esm2015/slick-email-viewer/slick-email-viewer.module.js +0 -21
- package/esm2015/slick-emailer/slick-emailer-dialog.component.js +0 -122
- package/esm2015/slick-emailer/slick-emailer.component.js +0 -226
- package/esm2015/slick-emailer/slick-emailer.module.js +0 -24
- package/esm2015/slick-file-drop/slick-file-drop.component.js +0 -144
- package/esm2015/slick-file-drop/slick-file-drop.module.js +0 -15
- package/esm2015/slick-file-list/slick-file-list-item.component.js +0 -156
- package/esm2015/slick-file-list/slick-file-list.component.js +0 -114
- package/esm2015/slick-file-list/slick-file-list.module.js +0 -18
- package/esm2015/slick-google-address-search/slick-google-address-search.directive.js +0 -75
- package/esm2015/slick-google-address-search/slick-google-address-search.module.js +0 -14
- package/esm2015/slick-google-map/slick-google-map-dialog.component.js +0 -45
- package/esm2015/slick-google-map/slick-google-map.component.js +0 -45
- package/esm2015/slick-google-map/slick-google-map.module.js +0 -17
- package/esm2015/slick-grid/slick-grid-column-template.directive.js +0 -19
- package/esm2015/slick-grid/slick-grid-sanitize.pipe.js +0 -20
- package/esm2015/slick-grid/slick-grid.component.js +0 -792
- package/esm2015/slick-grid/slick-grid.module.js +0 -38
- package/esm2015/slick-grid/slick-grid.service.js +0 -72
- package/esm2015/slick-multi-select/slick-multi-select.component.js +0 -356
- package/esm2015/slick-multi-select/slick-multi-select.module.js +0 -15
- package/esm2015/slick-multi-select/slick-multi-select.service.js +0 -74
- package/esm2015/slick-ordered-list/slick-ordered-list.component.js +0 -198
- package/esm2015/slick-ordered-list/slick-ordered-list.module.js +0 -15
- package/esm2015/slick-paging/slick-paging.component.js +0 -180
- package/esm2015/slick-paging/slick-paging.module.js +0 -14
- package/esm2015/slick-photo-gallery/slick-photo-gallery.component.js +0 -101
- package/esm2015/slick-photo-gallery/slick-photo-gallery.module.js +0 -16
- package/esm2015/slick-pick-list/slick-pick-list.component.js +0 -78
- package/esm2015/slick-pick-list/slick-pick-list.module.js +0 -15
- package/esm2015/slick-popover/slick-popover.component.js +0 -199
- package/esm2015/slick-popover/slick-popover.module.js +0 -14
- package/esm2015/slick-profile-picture/slick-profile-picture.component.js +0 -242
- package/esm2015/slick-profile-picture/slick-profile-picture.module.js +0 -15
- package/esm2015/slick-progress-bar/slick-progress-bar.module.js +0 -13
- package/esm2015/slick-progress-bar/slick-progress-bar.service.js +0 -50
- package/esm2015/slick-screen-blocker/slick-screen-blocker.module.js +0 -13
- package/esm2015/slick-screen-blocker/slick-screen-blocker.service.js +0 -80
- package/esm2015/slick-slider/slick-slider.component.js +0 -88
- package/esm2015/slick-slider/slick-slider.module.js +0 -15
- package/esm2015/slick-split-screen/slick-screen-split-left-content.component.js +0 -13
- package/esm2015/slick-split-screen/slick-screen-split-right-content.component.js +0 -13
- package/esm2015/slick-split-screen/slick-split-screen.component.js +0 -148
- package/esm2015/slick-split-screen/slick-split-screen.module.js +0 -16
- package/esm2015/slick-tabs/slick-tab-header.component.js +0 -25
- package/esm2015/slick-tabs/slick-tab.component.js +0 -67
- package/esm2015/slick-tabs/slick-tabs.component.js +0 -104
- package/esm2015/slick-tabs/slick-tabs.module.js +0 -17
- package/esm2015/slick-toast/slick-toast.module.js +0 -13
- package/esm2015/slick-toast/slick-toast.service.js +0 -91
- package/esm2015/slick-tree-view/slick-tree-view.component.js +0 -287
- package/esm2015/slick-tree-view/slick-tree-view.module.js +0 -17
- package/esm2015/slick-type-ahead/slick-type-ahead.directive.js +0 -155
- package/esm2015/slick-type-ahead/slick-type-ahead.module.js +0 -13
- package/esm2015/slick-validation-indicator/slick-validation-indicator.directive.js +0 -61
- package/esm2015/slick-validation-indicator/slick-validation-indicator.module.js +0 -14
- package/esm2015/utils/slick-function-lock.service.js +0 -54
- package/esm2015/utils/slick-init.service.js +0 -48
- package/esm2015/utils/slick-log.service.js +0 -27
- package/esm2015/utils/slick-sleep.service.js +0 -14
- package/esm2015/utils/slick-utils.service.js +0 -229
- package/fesm2015/slick-components.js.map +0 -1
- package/slick-components.metadata.json +0 -1
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { Component, ViewChild, Input, HostListener, forwardRef, EventEmitter, Output } from "@angular/core";
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
3
|
+
import { SlickSleepService } from "../utils/slick-sleep.service";
|
|
4
|
+
import { SlickUtilsService } from "../utils/slick-utils.service";
|
|
5
|
+
import * as moment from 'moment';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../slick-calendar/slick-calendar.component";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "@angular/forms";
|
|
10
|
+
export class SlickDatePickerComponent {
|
|
11
|
+
constructor(el) {
|
|
12
|
+
this.el = el;
|
|
13
|
+
this.format = "M/D/YYYY";
|
|
14
|
+
this.condensed = false;
|
|
15
|
+
this.mobile = false;
|
|
16
|
+
this.onDateChange = new EventEmitter();
|
|
17
|
+
this.fnDocumentClick = (e) => this.documentClick(e);
|
|
18
|
+
this.fnDocumentMouseDown = (e) => this.documentMouseDown(e);
|
|
19
|
+
this.uuid = SlickUtilsService.newGuid();
|
|
20
|
+
this.ignoreBlur = false;
|
|
21
|
+
this.showDatePicker = false;
|
|
22
|
+
this.datePickerVisiblity = "hidden";
|
|
23
|
+
this.datePickerOpacity = '0';
|
|
24
|
+
this.selectedDate = null;
|
|
25
|
+
this.isInitial = true;
|
|
26
|
+
this.propagateChange = (_) => { };
|
|
27
|
+
}
|
|
28
|
+
// Make sure they only press valid keys
|
|
29
|
+
async onKeydown(event) {
|
|
30
|
+
if (event.altKey || event.ctrlKey || event.metaKey === true)
|
|
31
|
+
return;
|
|
32
|
+
this.hideCalendar();
|
|
33
|
+
// Allow: backspace, delete, tab, escape, enter
|
|
34
|
+
if ((event.keyCode === 46 || event.keyCode === 8) ||
|
|
35
|
+
(event.keyCode === 9 || event.keyCode === 27 || event.keyCode === 13) ||
|
|
36
|
+
// Allow F1-F12 keys
|
|
37
|
+
((event.keyCode >= 112 && event.keyCode <= 123)) ||
|
|
38
|
+
// Allow: home, end, left, right, down, up
|
|
39
|
+
(event.keyCode >= 35 && event.keyCode <= 40)) {
|
|
40
|
+
// let it happen, don't do anything
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// Ensure that it is a number and stop the keypress
|
|
44
|
+
if ((event.shiftKey || event.altKey || event.key < '0' || event.key > '9') &&
|
|
45
|
+
event.key !== '/' && // Allow /
|
|
46
|
+
event.key !== '-') { // Allow -
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// When we first focus, show the date picker
|
|
52
|
+
onFocus(event) {
|
|
53
|
+
this.showCalendar();
|
|
54
|
+
}
|
|
55
|
+
// When we blur, update the model
|
|
56
|
+
async onBlur(event, targetElement) {
|
|
57
|
+
// If the user clicked on the calendar, it will trigger a mouse down event before the blur event. Don't blur
|
|
58
|
+
// if they clicked on the calendar.
|
|
59
|
+
if (this.ignoreBlur === true) {
|
|
60
|
+
this.ignoreBlur = false;
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const textVal = this.el.nativeElement.value;
|
|
64
|
+
if (!textVal) {
|
|
65
|
+
this.doPropagate(null);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (moment(textVal, this.format).isValid()) {
|
|
69
|
+
var newDate = moment(textVal, this.format);
|
|
70
|
+
this.doPropagate(newDate.toDate());
|
|
71
|
+
this.el.nativeElement.value = newDate.format(this.format);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async ngOnInit() {
|
|
75
|
+
this.mobile = (this.mobile || 'false').toString().toLowerCase() === 'true' ? true : false;
|
|
76
|
+
this.condensed = (this.condensed || 'false').toString().toLowerCase() === 'true' ? true : false;
|
|
77
|
+
// Since this.mobile isn't necessarily defined yet, we need to sleep to allow the ngIf's to do their thing
|
|
78
|
+
await SlickSleepService.sleep();
|
|
79
|
+
// Remove this from the inline version and put it on the body so that it doesn't hide behind the bottom
|
|
80
|
+
// of a div when it expands beyond the bottom.
|
|
81
|
+
this.containerRef.nativeElement.remove(this.containerRef);
|
|
82
|
+
document.body.appendChild(this.containerRef.nativeElement);
|
|
83
|
+
await SlickSleepService.sleep();
|
|
84
|
+
this.inputGroupPrepend = SlickUtilsService.getClosestSibling(this.el.nativeElement, "input-group-prepend");
|
|
85
|
+
}
|
|
86
|
+
ngOnDestroy() {
|
|
87
|
+
document.removeEventListener("mousedown", this.fnDocumentMouseDown, true);
|
|
88
|
+
document.removeEventListener("click", this.fnDocumentClick, true);
|
|
89
|
+
// Is okay if this fails. It just means it was already removed.
|
|
90
|
+
try {
|
|
91
|
+
document.body.removeChild(this.containerRef.nativeElement);
|
|
92
|
+
}
|
|
93
|
+
catch { }
|
|
94
|
+
}
|
|
95
|
+
doPropagate(date) {
|
|
96
|
+
// We don't always go through the emit on the first call, so make sure this isn't the first change
|
|
97
|
+
this.isInitial = false;
|
|
98
|
+
if (!date) {
|
|
99
|
+
if (this.selectedDate) {
|
|
100
|
+
this.propagateChange(null);
|
|
101
|
+
this.emitDateChange(null);
|
|
102
|
+
}
|
|
103
|
+
this.selectedDate = null;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
const newDate = moment(date);
|
|
108
|
+
// If the date is not valid, return
|
|
109
|
+
if (newDate.isValid() === false)
|
|
110
|
+
return;
|
|
111
|
+
// Don't propogate if the dates are the same
|
|
112
|
+
if (moment(this.selectedDate).isSame(newDate))
|
|
113
|
+
return;
|
|
114
|
+
// Setting this selectedDate will trigger the ngModelChange of the calendar. Ignore this.
|
|
115
|
+
this.selectedDate = moment(date).startOf("date").toDate();
|
|
116
|
+
this.propagateChange(this.selectedDate);
|
|
117
|
+
this.emitDateChange(this.selectedDate);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
emitDateChange(date) {
|
|
121
|
+
if (this.onDateChange && !this.isInitial)
|
|
122
|
+
this.onDateChange.emit(date);
|
|
123
|
+
this.isInitial = false;
|
|
124
|
+
}
|
|
125
|
+
// this is the initial value set to the component
|
|
126
|
+
writeValue(obj) {
|
|
127
|
+
if (obj) {
|
|
128
|
+
if (moment(obj).isValid() === false) {
|
|
129
|
+
this.selectedDate = null;
|
|
130
|
+
this.el.nativeElement.value = "Invalid Date";
|
|
131
|
+
this.isInitial = false;
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
let updatedDate;
|
|
135
|
+
if (obj instanceof Date || obj.indexOf("Z") >= 0)
|
|
136
|
+
updatedDate = moment(obj).startOf("date");
|
|
137
|
+
else
|
|
138
|
+
updatedDate = moment(obj, this.format).startOf("date");
|
|
139
|
+
if (moment(this.selectedDate || new Date()).isSame(updatedDate)) {
|
|
140
|
+
this.isInitial = false;
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
this.selectedDate = updatedDate.toDate();
|
|
144
|
+
this.el.nativeElement.value = moment(this.selectedDate).format(this.format);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
if (!this.selectedDate && !obj) {
|
|
148
|
+
this.isInitial = false;
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
this.el.nativeElement.value = '';
|
|
152
|
+
this.selectedDate = null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// registers 'fn' that will be fired when changes are made
|
|
156
|
+
// this is how we emit the changes back to the form
|
|
157
|
+
registerOnChange(fn) {
|
|
158
|
+
this.propagateChange = fn;
|
|
159
|
+
}
|
|
160
|
+
// not used, used for touch input
|
|
161
|
+
registerOnTouched() { }
|
|
162
|
+
documentMouseDown(e) {
|
|
163
|
+
// This is the only way to capture that they clicked on the calendar before the blur event
|
|
164
|
+
// fires.
|
|
165
|
+
if (SlickUtilsService.checkParentClassExists(e.target, "slick-calendar") === true)
|
|
166
|
+
this.ignoreBlur = true;
|
|
167
|
+
}
|
|
168
|
+
documentClick(e) {
|
|
169
|
+
if (!e.target)
|
|
170
|
+
return;
|
|
171
|
+
let targetElement = e.target;
|
|
172
|
+
if (SlickUtilsService.checkParentClassExists(targetElement, "slick-calendar") === true)
|
|
173
|
+
return;
|
|
174
|
+
if (this.inputGroupPrepend && ((targetElement === this.inputGroupPrepend)
|
|
175
|
+
|| (targetElement.parentElement && targetElement.parentElement === this.inputGroupPrepend))
|
|
176
|
+
|| (targetElement.parentElement && targetElement.parentElement.parentElement && targetElement.parentElement.parentElement === this.inputGroupPrepend)) {
|
|
177
|
+
this.toggleCalendar();
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const clickedInside = this.el.nativeElement.contains(targetElement);
|
|
181
|
+
if (!clickedInside) {
|
|
182
|
+
this.hideCalendar();
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
onDateSelect(date) {
|
|
186
|
+
this.el.nativeElement.value = moment(date).format(this.format);
|
|
187
|
+
this.hideCalendar();
|
|
188
|
+
const newDate = moment(this.el.nativeElement.value, this.format).toDate();
|
|
189
|
+
this.doPropagate(newDate);
|
|
190
|
+
}
|
|
191
|
+
async showCalendar() {
|
|
192
|
+
document.removeEventListener("mousedown", this.fnDocumentMouseDown, true);
|
|
193
|
+
document.removeEventListener("click", this.fnDocumentClick, true);
|
|
194
|
+
this.showDatePicker = true;
|
|
195
|
+
if (!this.mobile) {
|
|
196
|
+
this.reposition();
|
|
197
|
+
}
|
|
198
|
+
this.datePickerOpacity = '1';
|
|
199
|
+
this.datePickerVisiblity = 'visible';
|
|
200
|
+
// Not sure why, but the click event is called immediately, which hides the calendar
|
|
201
|
+
setTimeout(() => {
|
|
202
|
+
document.addEventListener("mousedown", this.fnDocumentMouseDown, true);
|
|
203
|
+
document.addEventListener("click", this.fnDocumentClick, true);
|
|
204
|
+
}, 350);
|
|
205
|
+
}
|
|
206
|
+
hideCalendar() {
|
|
207
|
+
document.removeEventListener("mousedown", this.fnDocumentMouseDown, true);
|
|
208
|
+
document.removeEventListener("click", this.fnDocumentClick, true);
|
|
209
|
+
this.datePickerVisiblity = 'hidden';
|
|
210
|
+
this.datePickerOpacity = '0';
|
|
211
|
+
this.showDatePicker = false;
|
|
212
|
+
}
|
|
213
|
+
reposition() {
|
|
214
|
+
if (this.mobile === true)
|
|
215
|
+
return;
|
|
216
|
+
// Reposition the element to be where the textbox is, either below or above if there isn't enough room
|
|
217
|
+
const inputEl = this.el.nativeElement;
|
|
218
|
+
const rect = inputEl.getBoundingClientRect();
|
|
219
|
+
const textboxLeft = rect.left;
|
|
220
|
+
const textboxTop = rect.top;
|
|
221
|
+
const textboxHeight = inputEl.offsetHeight;
|
|
222
|
+
const containerHeight = this.containerRef.nativeElement.offsetHeight;
|
|
223
|
+
this.left = textboxLeft + "px";
|
|
224
|
+
this.top = (textboxTop + textboxHeight) + "px";
|
|
225
|
+
if (textboxTop + textboxHeight + containerHeight > window.innerHeight) {
|
|
226
|
+
this.top = (textboxTop - containerHeight - 2) + "px";
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
toggleCalendar() {
|
|
230
|
+
(this.showDatePicker === true) ? this.hideCalendar() : this.showCalendar();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/** @nocollapse */ SlickDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickDatePickerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
234
|
+
/** @nocollapse */ SlickDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SlickDatePickerComponent, selector: "[slick-date-picker]", inputs: { slickDatePicker: ["slick-date-picker", "slickDatePicker"], format: ["slick-date-picker-format", "format"], condensed: ["slick-date-picker-condensed", "condensed"], mobile: ["slick-date-picker-mobile", "mobile"] }, outputs: { onDateChange: "onDateChange" }, host: { listeners: { "keydown": "onKeydown($event)", "focus": "onFocus($event)", "blur": "onBlur($event,$event.target)" } }, providers: [
|
|
235
|
+
{
|
|
236
|
+
provide: NG_VALUE_ACCESSOR,
|
|
237
|
+
useExisting: forwardRef((() => SlickDatePickerComponent)),
|
|
238
|
+
multi: true
|
|
239
|
+
}
|
|
240
|
+
], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\r\n<div *ngIf=\"mobile === false\" #containerRef class=\"slick-date-picker-container\" [style.left]=\"left\" [style.top]=\"top\" [style.visibility]=\"datePickerVisiblity\" [style.opacity]=\"datePickerOpacity\">\r\n\t<slick-calendar [ngModel]=\"selectedDate\" [condensed]=\"condensed\" (onDateSelect)=\"onDateSelect($event)\"></slick-calendar>\r\n</div>\r\n<div *ngIf=\"mobile === true\" #containerRef class=\"slick-date-picker-mobile-container\" [style.visibility]=\"datePickerVisiblity\" [style.opacity]=\"datePickerOpacity\">\r\n\t<div class=\"slick-date-picker-mobile-calendar\">\r\n\t\t<slick-calendar [ngModel]=\"selectedDate\" [condensed]=\"condensed\" (onDateSelect)=\"onDateSelect($event)\"></slick-calendar>\r\n\t</div>\r\n</div>\r\n", components: [{ type: i1.SlickCalendarComponent, selector: "slick-calendar", inputs: ["condensed", "monthsToShow", "inactiveDates", "inactiveWeekends", "showDaysNotInMonth", "multiSelect", "multiSelectDates"], outputs: ["multiSelectDatesChange", "onDateSelect", "onDateChange", "onMonthChange", "onMultiDateChange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickDatePickerComponent, decorators: [{
|
|
242
|
+
type: Component,
|
|
243
|
+
args: [{ selector: '[slick-date-picker]', providers: [
|
|
244
|
+
{
|
|
245
|
+
provide: NG_VALUE_ACCESSOR,
|
|
246
|
+
useExisting: forwardRef((() => SlickDatePickerComponent)),
|
|
247
|
+
multi: true
|
|
248
|
+
}
|
|
249
|
+
], template: "<ng-content></ng-content>\r\n<div *ngIf=\"mobile === false\" #containerRef class=\"slick-date-picker-container\" [style.left]=\"left\" [style.top]=\"top\" [style.visibility]=\"datePickerVisiblity\" [style.opacity]=\"datePickerOpacity\">\r\n\t<slick-calendar [ngModel]=\"selectedDate\" [condensed]=\"condensed\" (onDateSelect)=\"onDateSelect($event)\"></slick-calendar>\r\n</div>\r\n<div *ngIf=\"mobile === true\" #containerRef class=\"slick-date-picker-mobile-container\" [style.visibility]=\"datePickerVisiblity\" [style.opacity]=\"datePickerOpacity\">\r\n\t<div class=\"slick-date-picker-mobile-calendar\">\r\n\t\t<slick-calendar [ngModel]=\"selectedDate\" [condensed]=\"condensed\" (onDateSelect)=\"onDateSelect($event)\"></slick-calendar>\r\n\t</div>\r\n</div>\r\n" }]
|
|
250
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { slickDatePicker: [{
|
|
251
|
+
type: Input,
|
|
252
|
+
args: ["slick-date-picker"]
|
|
253
|
+
}], format: [{
|
|
254
|
+
type: Input,
|
|
255
|
+
args: ["slick-date-picker-format"]
|
|
256
|
+
}], condensed: [{
|
|
257
|
+
type: Input,
|
|
258
|
+
args: ["slick-date-picker-condensed"]
|
|
259
|
+
}], mobile: [{
|
|
260
|
+
type: Input,
|
|
261
|
+
args: ["slick-date-picker-mobile"]
|
|
262
|
+
}], onDateChange: [{
|
|
263
|
+
type: Output,
|
|
264
|
+
args: ["onDateChange"]
|
|
265
|
+
}], containerRef: [{
|
|
266
|
+
type: ViewChild,
|
|
267
|
+
args: ["containerRef"]
|
|
268
|
+
}], onKeydown: [{
|
|
269
|
+
type: HostListener,
|
|
270
|
+
args: ['keydown', ['$event']]
|
|
271
|
+
}], onFocus: [{
|
|
272
|
+
type: HostListener,
|
|
273
|
+
args: ['focus', ['$event']]
|
|
274
|
+
}], onBlur: [{
|
|
275
|
+
type: HostListener,
|
|
276
|
+
args: ['blur', ['$event', '$event.target']]
|
|
277
|
+
}] } });
|
|
278
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZGF0ZS1waWNrZXIvc2xpY2stZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZGF0ZS1waWNrZXIvc2xpY2stZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQXFCLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7OztBQVlqQyxNQUFNLE9BQU8sd0JBQXdCO0lBaUZwQyxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQS9FQyxXQUFNLEdBQVcsVUFBVSxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDOUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHaEUsb0JBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQyx3QkFBbUIsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBNER2RCxTQUFJLEdBQVcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyx3QkFBbUIsR0FBVyxRQUFRLENBQUM7UUFDdkMsc0JBQWlCLEdBQVcsR0FBRyxDQUFDO1FBR2hDLGlCQUFZLEdBQVMsSUFBSSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFpQ2pCLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQTVCbEMsQ0FBQztJQXZFRCx1Q0FBdUM7SUFFdkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFvQjtRQUNuQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUk7WUFDMUQsT0FBTztRQUVSLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQiwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDO1lBQ2hELENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDckUsb0JBQW9CO1lBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELDBDQUEwQztZQUMxQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDOUMsbUNBQW1DO1lBQ25DLE9BQU87U0FDUDtRQUVELG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ3pFLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFLLFVBQVU7WUFDaEMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsRUFBRyxZQUFZO1lBQ2xDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixPQUFPO1NBQ1A7SUFDRixDQUFDO0lBRUQsNENBQTRDO0lBRTVDLE9BQU8sQ0FBQyxLQUFpQjtRQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlDQUFpQztJQUVqQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWlCLEVBQUUsYUFBMEI7UUFDekQsNkdBQTZHO1FBQzdHLG1DQUFtQztRQUNuQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLE9BQU87U0FDUDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixPQUFPO1NBQ1A7UUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDbEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFEO0lBQ0YsQ0FBQztJQWlCRCxLQUFLLENBQUMsUUFBUTtRQUViLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDMUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVoRywwR0FBMEc7UUFDMUcsTUFBTSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyx1R0FBdUc7UUFDdkcsOENBQThDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUzRCxNQUFNLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxXQUFXO1FBQ1YsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xFLGdFQUFnRTtRQUNoRSxJQUFJO1lBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRDtRQUNELE1BQU0sR0FBRztJQUNWLENBQUM7SUFJVSxXQUFXLENBQUMsSUFBVTtRQUMxQixrR0FBa0c7UUFDbEcsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFN0IsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxQjtZQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLE9BQU87U0FDUDthQUNJO1lBQ0osTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLG1DQUFtQztZQUNuQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxLQUFLO2dCQUM5QixPQUFPO1lBRVIsNENBQTRDO1lBQzVDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUM1QyxPQUFPO1lBR1IsMEZBQTBGO1lBQzFGLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2QztJQUNGLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBVTtRQUNoQyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsaURBQWlEO0lBQzFDLFVBQVUsQ0FBQyxHQUFRO1FBQ3pCLElBQUksR0FBRyxFQUFFO1lBQ1IsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDbkMsT0FBTzthQUNQO1lBRUQsSUFBSSxXQUEwQixDQUFDO1lBQy9CLElBQUksR0FBRyxZQUFZLElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDOztnQkFFMUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUvQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixPQUFPO2FBQ1Y7WUFFVixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVFO2FBQ0k7WUFDSyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLE9BQU87YUFDVjtZQUVWLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDRixDQUFDO0lBRUQsMERBQTBEO0lBQzFELG1EQUFtRDtJQUM1QyxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQ0FBaUM7SUFDMUIsaUJBQWlCLEtBQUssQ0FBQztJQUV0QixpQkFBaUIsQ0FBQyxDQUFhO1FBQ3RDLDBGQUEwRjtRQUMxRixXQUFXO1FBQ1gsSUFBSSxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBYyxDQUFDLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEtBQUssSUFBSTtZQUM3RixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRU8sYUFBYSxDQUFDLENBQWE7UUFDbEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQ1osT0FBTztRQUVSLElBQUksYUFBYSxHQUE4QixDQUFDLENBQUMsTUFBTyxDQUFDO1FBRXpELElBQUksaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLEtBQUssSUFBSTtZQUNyRixPQUFPO1FBRVIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsaUJBQWlCLENBQUM7ZUFDckUsQ0FBQyxhQUFhLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7ZUFDeEYsQ0FBQyxhQUFhLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ3ZKLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixPQUFPO1NBQ1A7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDcEI7SUFDRixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQUk7UUFDaEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUUxRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWTtRQUNqQixRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUM3QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBRXJDLG9GQUFvRjtRQUNwRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2YsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNSLENBQUM7SUFFRCxZQUFZO1FBQ1gsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRU8sVUFBVTtRQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSTtZQUN2QixPQUFPO1FBRVIsc0dBQXNHO1FBQ3RHLE1BQU0sT0FBTyxHQUFxQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUV4RCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDNUIsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUMzQyxNQUFNLGVBQWUsR0FBb0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFjLENBQUMsWUFBWSxDQUFDO1FBRXZGLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUUvQyxJQUFJLFVBQVUsR0FBRyxhQUFhLEdBQUcsZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDdEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsR0FBRyxlQUFlLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3JEO0lBRUYsQ0FBQztJQUVELGNBQWM7UUFDYixDQUFDLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVFLENBQUM7O3dJQTdSVyx3QkFBd0I7NEhBQXhCLHdCQUF3QixzYkFSekI7UUFDVjtZQUNDLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsRUFBQztZQUN2RCxLQUFLLEVBQUUsSUFBSTtTQUNYO0tBQUMsd0lDYkosa3dCQVNBOzJGRE9hLHdCQUF3QjtrQkFWcEMsU0FBUzsrQkFDQyxxQkFBcUIsYUFDcEI7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUseUJBQXlCLEVBQUM7NEJBQ3ZELEtBQUssRUFBRSxJQUFJO3lCQUNYO3FCQUFDO2lHQUl5QixlQUFlO3NCQUExQyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFDUyxNQUFNO3NCQUF4QyxLQUFLO3VCQUFDLDBCQUEwQjtnQkFDSyxTQUFTO3NCQUE5QyxLQUFLO3VCQUFDLDZCQUE2QjtnQkFDRCxNQUFNO3NCQUF4QyxLQUFLO3VCQUFDLDBCQUEwQjtnQkFDVCxZQUFZO3NCQUFuQyxNQUFNO3VCQUFDLGNBQWM7Z0JBQ0ssWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQU9uQixTQUFTO3NCQURkLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTZCbkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPM0IsTUFBTTtzQkFEWCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgZm9yd2FyZFJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFNsaWNrU2xlZXBTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXNsZWVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnW3NsaWNrLWRhdGUtcGlja2VyXScsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja0RhdGVQaWNrZXJDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fV0sXHJcblx0dGVtcGxhdGVVcmw6ICdzbGljay1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0QElucHV0KFwic2xpY2stZGF0ZS1waWNrZXJcIikgc2xpY2tEYXRlUGlja2VyOiBTbGlja0RhdGVQaWNrZXJDb21wb25lbnQ7XHJcblx0QElucHV0KFwic2xpY2stZGF0ZS1waWNrZXItZm9ybWF0XCIpIGZvcm1hdDogc3RyaW5nID0gXCJNL0QvWVlZWVwiO1xyXG5cdEBJbnB1dChcInNsaWNrLWRhdGUtcGlja2VyLWNvbmRlbnNlZFwiKSBjb25kZW5zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRASW5wdXQoXCJzbGljay1kYXRlLXBpY2tlci1tb2JpbGVcIikgbW9iaWxlOiBib29sZWFuID0gZmFsc2U7XHJcblx0QE91dHB1dChcIm9uRGF0ZUNoYW5nZVwiKSBvbkRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblx0QFZpZXdDaGlsZChcImNvbnRhaW5lclJlZlwiKSBjb250YWluZXJSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG5cdGZuRG9jdW1lbnRDbGljayA9IChlKSA9PiB0aGlzLmRvY3VtZW50Q2xpY2soZSk7XHJcblx0Zm5Eb2N1bWVudE1vdXNlRG93biA9IChlKSA9PiB0aGlzLmRvY3VtZW50TW91c2VEb3duKGUpO1xyXG5cclxuXHQvLyBNYWtlIHN1cmUgdGhleSBvbmx5IHByZXNzIHZhbGlkIGtleXNcclxuXHRASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuXHRhc3luYyBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcdFx0XHJcblx0XHRpZiAoZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdHRoaXMuaGlkZUNhbGVuZGFyKCk7XHJcblxyXG5cdFx0Ly8gQWxsb3c6IGJhY2tzcGFjZSwgZGVsZXRlLCB0YWIsIGVzY2FwZSwgZW50ZXJcclxuXHRcdGlmICgoZXZlbnQua2V5Q29kZSA9PT0gNDYgfHwgZXZlbnQua2V5Q29kZSA9PT0gOCkgfHxcclxuXHRcdFx0KGV2ZW50LmtleUNvZGUgPT09IDkgfHwgZXZlbnQua2V5Q29kZSA9PT0gMjcgfHwgZXZlbnQua2V5Q29kZSA9PT0gMTMpIHx8XHJcblx0XHRcdC8vIEFsbG93IEYxLUYxMiBrZXlzXHJcblx0XHRcdCgoZXZlbnQua2V5Q29kZSA+PSAxMTIgJiYgZXZlbnQua2V5Q29kZSA8PSAxMjMpKSB8fFxyXG5cdFx0XHQvLyBBbGxvdzogaG9tZSwgZW5kLCBsZWZ0LCByaWdodCwgZG93biwgdXBcclxuXHRcdFx0KGV2ZW50LmtleUNvZGUgPj0gMzUgJiYgZXZlbnQua2V5Q29kZSA8PSA0MCkpIHtcclxuXHRcdFx0Ly8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xyXG5cdFx0aWYgKChldmVudC5zaGlmdEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQua2V5IDwgJzAnIHx8IGV2ZW50LmtleSA+ICc5JykgJiZcclxuXHRcdFx0ZXZlbnQua2V5ICE9PSAnLycgJiYgIC8vIEFsbG93IC9cclxuXHRcdFx0ZXZlbnQua2V5ICE9PSAnLScpIHsgIC8vIEFsbG93IC1cdFx0XHJcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIFdoZW4gd2UgZmlyc3QgZm9jdXMsIHNob3cgdGhlIGRhdGUgcGlja2VyXHJcblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnLCBbJyRldmVudCddKVxyXG5cdG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2hvd0NhbGVuZGFyKCk7XHJcblx0fVxyXG5cclxuXHQvLyBXaGVuIHdlIGJsdXIsIHVwZGF0ZSB0aGUgbW9kZWxcclxuXHRASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQnLCAnJGV2ZW50LnRhcmdldCddKVxyXG5cdGFzeW5jIG9uQmx1cihldmVudDogRm9jdXNFdmVudCwgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuXHRcdC8vIElmIHRoZSB1c2VyIGNsaWNrZWQgb24gdGhlIGNhbGVuZGFyLCBpdCB3aWxsIHRyaWdnZXIgYSBtb3VzZSBkb3duIGV2ZW50IGJlZm9yZSB0aGUgYmx1ciBldmVudC4gIERvbid0IGJsdXJcclxuXHRcdC8vIGlmIHRoZXkgY2xpY2tlZCBvbiB0aGUgY2FsZW5kYXIuXHJcblx0XHRpZiAodGhpcy5pZ25vcmVCbHVyID09PSB0cnVlKSB7XHJcblx0XHRcdHRoaXMuaWdub3JlQmx1ciA9IGZhbHNlO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgdGV4dFZhbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuXHJcblx0XHRpZiAoIXRleHRWYWwpIHtcclxuXHRcdFx0dGhpcy5kb1Byb3BhZ2F0ZShudWxsKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChtb21lbnQodGV4dFZhbCwgdGhpcy5mb3JtYXQpLmlzVmFsaWQoKSkge1xyXG5cdFx0XHR2YXIgbmV3RGF0ZSA9IG1vbWVudCh0ZXh0VmFsLCB0aGlzLmZvcm1hdCk7XHJcblx0XHRcdHRoaXMuZG9Qcm9wYWdhdGUobmV3RGF0ZS50b0RhdGUoKSlcclxuXHRcdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmV3RGF0ZS5mb3JtYXQodGhpcy5mb3JtYXQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dXVpZDogc3RyaW5nID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdGlnbm9yZUJsdXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRzaG93RGF0ZVBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGRhdGVQaWNrZXJWaXNpYmxpdHk6IHN0cmluZyA9IFwiaGlkZGVuXCI7XHJcblx0ZGF0ZVBpY2tlck9wYWNpdHk6IHN0cmluZyA9ICcwJztcclxuXHRsZWZ0OiBzdHJpbmc7XHJcblx0dG9wOiBzdHJpbmc7XHJcblx0c2VsZWN0ZWREYXRlOiBEYXRlID0gbnVsbDtcclxuXHRpc0luaXRpYWwgPSB0cnVlO1xyXG5cclxuXHRwcml2YXRlIGlucHV0R3JvdXBQcmVwZW5kOiBIVE1MRWxlbWVudDtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xyXG5cdH1cclxuXHJcblx0YXN5bmMgbmdPbkluaXQoKSB7XHJcblxyXG5cdFx0dGhpcy5tb2JpbGUgPSAodGhpcy5tb2JpbGUgfHwgJ2ZhbHNlJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XHJcblx0XHR0aGlzLmNvbmRlbnNlZCA9ICh0aGlzLmNvbmRlbnNlZCB8fCAnZmFsc2UnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA/IHRydWUgOiBmYWxzZTtcclxuXHJcblx0XHQvLyBTaW5jZSB0aGlzLm1vYmlsZSBpc24ndCBuZWNlc3NhcmlseSBkZWZpbmVkIHlldCwgd2UgbmVlZCB0byBzbGVlcCB0byBhbGxvdyB0aGUgbmdJZidzIHRvIGRvIHRoZWlyIHRoaW5nXHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0Ly8gUmVtb3ZlIHRoaXMgZnJvbSB0aGUgaW5saW5lIHZlcnNpb24gYW5kIHB1dCBpdCBvbiB0aGUgYm9keSBzbyB0aGF0IGl0IGRvZXNuJ3QgaGlkZSBiZWhpbmQgdGhlIGJvdHRvbVxyXG5cdFx0Ly8gb2YgYSBkaXYgd2hlbiBpdCBleHBhbmRzIGJleW9uZCB0aGUgYm90dG9tLlxyXG5cdFx0dGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5yZW1vdmUodGhpcy5jb250YWluZXJSZWYpO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KTtcclxuXHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0dGhpcy5pbnB1dEdyb3VwUHJlcGVuZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldENsb3Nlc3RTaWJsaW5nKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgXCJpbnB1dC1ncm91cC1wcmVwZW5kXCIpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuZm5Eb2N1bWVudE1vdXNlRG93biwgdHJ1ZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0Ly8gSXMgb2theSBpZiB0aGlzIGZhaWxzLiAgSXQganVzdCBtZWFucyBpdCB3YXMgYWxyZWFkeSByZW1vdmVkLlxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KTtcclxuXHRcdH1cclxuXHRcdGNhdGNoIHsgfVxyXG5cdH1cclxuXHJcblx0cHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG5cclxuICAgIHByaXZhdGUgZG9Qcm9wYWdhdGUoZGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIC8vIFdlIGRvbid0IGFsd2F5cyBnbyB0aHJvdWdoIHRoZSBlbWl0IG9uIHRoZSBmaXJzdCBjYWxsLCBzbyBtYWtlIHN1cmUgdGhpcyBpc24ndCB0aGUgZmlyc3QgY2hhbmdlXHJcbiAgICAgICAgdGhpcy5pc0luaXRpYWwgPSBmYWxzZTtcclxuXHJcblx0XHRpZiAoIWRhdGUpIHtcclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcblx0XHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XHJcblx0XHRcdFx0dGhpcy5lbWl0RGF0ZUNoYW5nZShudWxsKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0Y29uc3QgbmV3RGF0ZSA9IG1vbWVudChkYXRlKTtcclxuXHRcdFx0Ly8gSWYgdGhlIGRhdGUgaXMgbm90IHZhbGlkLCByZXR1cm5cclxuXHRcdFx0aWYgKG5ld0RhdGUuaXNWYWxpZCgpID09PSBmYWxzZSlcclxuXHRcdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0XHQvLyBEb24ndCBwcm9wb2dhdGUgaWYgdGhlIGRhdGVzIGFyZSB0aGUgc2FtZVxyXG5cdFx0XHRpZiAobW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKS5pc1NhbWUobmV3RGF0ZSkpXHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cclxuXHJcblx0XHRcdC8vIFNldHRpbmcgdGhpcyBzZWxlY3RlZERhdGUgd2lsbCB0cmlnZ2VyIHRoZSBuZ01vZGVsQ2hhbmdlIG9mIHRoZSBjYWxlbmRhci4gIElnbm9yZSB0aGlzLlxyXG5cdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZSA9IG1vbWVudChkYXRlKS5zdGFydE9mKFwiZGF0ZVwiKS50b0RhdGUoKTtcclxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3RlZERhdGUpO1xyXG5cdFx0XHR0aGlzLmVtaXREYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZW1pdERhdGVDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG5cdFx0aWYgKHRoaXMub25EYXRlQ2hhbmdlICYmICF0aGlzLmlzSW5pdGlhbClcclxuXHRcdFx0dGhpcy5vbkRhdGVDaGFuZ2UuZW1pdChkYXRlKTtcclxuXHJcblx0XHR0aGlzLmlzSW5pdGlhbCA9IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KSB7XHJcblx0XHRpZiAob2JqKSB7XHJcblx0XHRcdGlmIChtb21lbnQob2JqKS5pc1ZhbGlkKCkgPT09IGZhbHNlKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJJbnZhbGlkIERhdGVcIjtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNJbml0aWFsID0gZmFsc2U7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRsZXQgdXBkYXRlZERhdGU6IG1vbWVudC5Nb21lbnQ7XHJcblx0XHRcdGlmIChvYmogaW5zdGFuY2VvZiBEYXRlIHx8IG9iai5pbmRleE9mKFwiWlwiKSA+PSAwKVxyXG5cdFx0XHRcdHVwZGF0ZWREYXRlID0gbW9tZW50KG9iaikuc3RhcnRPZihcImRhdGVcIik7XHJcblx0XHRcdGVsc2VcclxuXHRcdFx0XHR1cGRhdGVkRGF0ZSA9IG1vbWVudChvYmosIHRoaXMuZm9ybWF0KS5zdGFydE9mKFwiZGF0ZVwiKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChtb21lbnQodGhpcy5zZWxlY3RlZERhdGUgfHwgbmV3IERhdGUoKSkuaXNTYW1lKHVwZGF0ZWREYXRlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0luaXRpYWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSB1cGRhdGVkRGF0ZS50b0RhdGUoKTtcclxuXHRcdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKS5mb3JtYXQodGhpcy5mb3JtYXQpO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGUgJiYgIW9iaikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0luaXRpYWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuXHRcdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWREYXRlID0gbnVsbDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIHJlZ2lzdGVycyAnZm4nIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGNoYW5nZXMgYXJlIG1hZGVcclxuXHQvLyB0aGlzIGlzIGhvdyB3ZSBlbWl0IHRoZSBjaGFuZ2VzIGJhY2sgdG8gdGhlIGZvcm1cclxuXHRwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG5cdH1cclxuXHJcblx0Ly8gbm90IHVzZWQsIHVzZWQgZm9yIHRvdWNoIGlucHV0XHJcblx0cHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCkgeyB9XHJcblxyXG5cdHByaXZhdGUgZG9jdW1lbnRNb3VzZURvd24oZTogTW91c2VFdmVudCkge1xyXG5cdFx0Ly8gVGhpcyBpcyB0aGUgb25seSB3YXkgdG8gY2FwdHVyZSB0aGF0IHRoZXkgY2xpY2tlZCBvbiB0aGUgY2FsZW5kYXIgYmVmb3JlIHRoZSBibHVyIGV2ZW50XHJcblx0XHQvLyBmaXJlcy4gIFxyXG5cdFx0aWYgKFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50Q2xhc3NFeGlzdHMoPEhUTUxFbGVtZW50PmUudGFyZ2V0LCBcInNsaWNrLWNhbGVuZGFyXCIpID09PSB0cnVlKVxyXG5cdFx0XHR0aGlzLmlnbm9yZUJsdXIgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkb2N1bWVudENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcclxuXHRcdGlmICghZS50YXJnZXQpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRsZXQgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQgPSAoPEhUTUxFbGVtZW50PmUudGFyZ2V0KTtcclxuXHJcblx0XHRpZiAoU2xpY2tVdGlsc1NlcnZpY2UuY2hlY2tQYXJlbnRDbGFzc0V4aXN0cyh0YXJnZXRFbGVtZW50LCBcInNsaWNrLWNhbGVuZGFyXCIpID09PSB0cnVlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0aWYgKHRoaXMuaW5wdXRHcm91cFByZXBlbmQgJiYgKCh0YXJnZXRFbGVtZW50ID09PSB0aGlzLmlucHV0R3JvdXBQcmVwZW5kKVxyXG5cdFx0XHR8fCAodGFyZ2V0RWxlbWVudC5wYXJlbnRFbGVtZW50ICYmIHRhcmdldEVsZW1lbnQucGFyZW50RWxlbWVudCA9PT0gdGhpcy5pbnB1dEdyb3VwUHJlcGVuZCkpXHJcblx0XHRcdHx8ICh0YXJnZXRFbGVtZW50LnBhcmVudEVsZW1lbnQgJiYgdGFyZ2V0RWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQgJiYgdGFyZ2V0RWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQgPT09IHRoaXMuaW5wdXRHcm91cFByZXBlbmQpKSB7XHJcblx0XHRcdHRoaXMudG9nZ2xlQ2FsZW5kYXIoKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XHJcblx0XHRpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuXHRcdFx0dGhpcy5oaWRlQ2FsZW5kYXIoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uRGF0ZVNlbGVjdChkYXRlKSB7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBtb21lbnQoZGF0ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KTtcclxuXHRcdHRoaXMuaGlkZUNhbGVuZGFyKCk7XHJcblxyXG5cdFx0Y29uc3QgbmV3RGF0ZSA9IG1vbWVudCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUsIHRoaXMuZm9ybWF0KS50b0RhdGUoKTtcclxuXHJcblx0XHR0aGlzLmRvUHJvcGFnYXRlKG5ld0RhdGUpO1x0XHRcclxuXHR9XHJcblxyXG5cdGFzeW5jIHNob3dDYWxlbmRhcigpIHtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5mbkRvY3VtZW50TW91c2VEb3duLCB0cnVlKTtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmZuRG9jdW1lbnRDbGljaywgdHJ1ZSk7XHJcblxyXG5cdFx0dGhpcy5zaG93RGF0ZVBpY2tlciA9IHRydWU7XHJcblxyXG5cdFx0aWYgKCF0aGlzLm1vYmlsZSkge1xyXG5cdFx0XHR0aGlzLnJlcG9zaXRpb24oKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmRhdGVQaWNrZXJPcGFjaXR5ID0gJzEnO1xyXG5cdFx0dGhpcy5kYXRlUGlja2VyVmlzaWJsaXR5ID0gJ3Zpc2libGUnO1xyXG5cclxuXHRcdC8vIE5vdCBzdXJlIHdoeSwgYnV0IHRoZSBjbGljayBldmVudCBpcyBjYWxsZWQgaW1tZWRpYXRlbHksIHdoaWNoIGhpZGVzIHRoZSBjYWxlbmRhclxyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5mbkRvY3VtZW50TW91c2VEb3duLCB0cnVlKTtcclxuXHRcdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuZm5Eb2N1bWVudENsaWNrLCB0cnVlKTtcclxuXHRcdH0sIDM1MClcclxuXHR9XHJcblxyXG5cdGhpZGVDYWxlbmRhcigpIHtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5mbkRvY3VtZW50TW91c2VEb3duLCB0cnVlKTtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmZuRG9jdW1lbnRDbGljaywgdHJ1ZSk7XHJcblxyXG5cdFx0dGhpcy5kYXRlUGlja2VyVmlzaWJsaXR5ID0gJ2hpZGRlbic7XHJcblx0XHR0aGlzLmRhdGVQaWNrZXJPcGFjaXR5ID0gJzAnO1xyXG5cdFx0dGhpcy5zaG93RGF0ZVBpY2tlciA9IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZXBvc2l0aW9uKCkge1xyXG5cdFx0aWYgKHRoaXMubW9iaWxlID09PSB0cnVlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Ly8gUmVwb3NpdGlvbiB0aGUgZWxlbWVudCB0byBiZSB3aGVyZSB0aGUgdGV4dGJveCBpcywgZWl0aGVyIGJlbG93IG9yIGFib3ZlIGlmIHRoZXJlIGlzbid0IGVub3VnaCByb29tXHJcblx0XHRjb25zdCBpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG5cclxuXHRcdGNvbnN0IHJlY3QgPSBpbnB1dEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cdFx0Y29uc3QgdGV4dGJveExlZnQgPSByZWN0LmxlZnQ7XHJcblx0XHRjb25zdCB0ZXh0Ym94VG9wID0gcmVjdC50b3A7XHJcblx0XHRjb25zdCB0ZXh0Ym94SGVpZ2h0ID0gaW5wdXRFbC5vZmZzZXRIZWlnaHQ7XHJcblx0XHRjb25zdCBjb250YWluZXJIZWlnaHQgPSAoPEhUTUxEaXZFbGVtZW50PnRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQpLm9mZnNldEhlaWdodDtcclxuXHJcblx0XHR0aGlzLmxlZnQgPSB0ZXh0Ym94TGVmdCArIFwicHhcIjtcclxuXHRcdHRoaXMudG9wID0gKHRleHRib3hUb3AgKyB0ZXh0Ym94SGVpZ2h0KSArIFwicHhcIjtcclxuXHJcblx0XHRpZiAodGV4dGJveFRvcCArIHRleHRib3hIZWlnaHQgKyBjb250YWluZXJIZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcclxuXHRcdFx0dGhpcy50b3AgPSAodGV4dGJveFRvcCAtIGNvbnRhaW5lckhlaWdodCAtIDIpICsgXCJweFwiO1xyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdHRvZ2dsZUNhbGVuZGFyKCkge1xyXG5cdFx0KHRoaXMuc2hvd0RhdGVQaWNrZXIgPT09IHRydWUpID8gdGhpcy5oaWRlQ2FsZW5kYXIoKSA6IHRoaXMuc2hvd0NhbGVuZGFyKCk7XHJcblx0fVxyXG59IiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48ZGl2ICpuZ0lmPVwibW9iaWxlID09PSBmYWxzZVwiICNjb250YWluZXJSZWYgY2xhc3M9XCJzbGljay1kYXRlLXBpY2tlci1jb250YWluZXJcIiBbc3R5bGUubGVmdF09XCJsZWZ0XCIgW3N0eWxlLnRvcF09XCJ0b3BcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJkYXRlUGlja2VyVmlzaWJsaXR5XCIgW3N0eWxlLm9wYWNpdHldPVwiZGF0ZVBpY2tlck9wYWNpdHlcIj5cclxuXHQ8c2xpY2stY2FsZW5kYXIgW25nTW9kZWxdPVwic2VsZWN0ZWREYXRlXCIgW2NvbmRlbnNlZF09XCJjb25kZW5zZWRcIiAob25EYXRlU2VsZWN0KT1cIm9uRGF0ZVNlbGVjdCgkZXZlbnQpXCI+PC9zbGljay1jYWxlbmRhcj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJtb2JpbGUgPT09IHRydWVcIiAjY29udGFpbmVyUmVmIGNsYXNzPVwic2xpY2stZGF0ZS1waWNrZXItbW9iaWxlLWNvbnRhaW5lclwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImRhdGVQaWNrZXJWaXNpYmxpdHlcIiBbc3R5bGUub3BhY2l0eV09XCJkYXRlUGlja2VyT3BhY2l0eVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJzbGljay1kYXRlLXBpY2tlci1tb2JpbGUtY2FsZW5kYXJcIj5cclxuXHRcdDxzbGljay1jYWxlbmRhciBbbmdNb2RlbF09XCJzZWxlY3RlZERhdGVcIiBbY29uZGVuc2VkXT1cImNvbmRlbnNlZFwiIChvbkRhdGVTZWxlY3QpPVwib25EYXRlU2VsZWN0KCRldmVudClcIj48L3NsaWNrLWNhbGVuZGFyPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { SlickDatePickerComponent } from "./slick-date-picker.component";
|
|
5
|
+
import { SlickCalendarModule } from "../slick-calendar/slick-calendar.module";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SlickDatePickerModule {
|
|
8
|
+
}
|
|
9
|
+
/** @nocollapse */ SlickDatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
/** @nocollapse */ SlickDatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickDatePickerModule, declarations: [SlickDatePickerComponent], imports: [CommonModule, FormsModule, SlickCalendarModule], exports: [SlickDatePickerComponent, SlickCalendarModule] });
|
|
11
|
+
/** @nocollapse */ SlickDatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickDatePickerModule, imports: [[CommonModule, FormsModule, SlickCalendarModule], SlickCalendarModule] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickDatePickerModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: [CommonModule, FormsModule, SlickCalendarModule],
|
|
16
|
+
declarations: [SlickDatePickerComponent],
|
|
17
|
+
exports: [SlickDatePickerComponent, SlickCalendarModule]
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
export { SlickDatePickerComponent };
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZGF0ZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZGF0ZS1waWNrZXIvc2xpY2stZGF0ZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFPOUUsTUFBTSxPQUFPLHFCQUFxQjs7cUlBQXJCLHFCQUFxQjtzSUFBckIscUJBQXFCLGlCQUhsQix3QkFBd0IsYUFEN0IsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsYUFFOUMsd0JBQXdCLEVBQUUsbUJBQW1CO3NJQUUzQyxxQkFBcUIsWUFKeEIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLEVBRXJCLG1CQUFtQjsyRkFFM0MscUJBQXFCO2tCQUxqQyxRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3pELFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxtQkFBbUIsQ0FBQztpQkFDeEQ7O0FBR0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNsaWNrRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuL3NsaWNrLWRhdGUtcGlja2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTbGlja0NhbGVuZGFyTW9kdWxlIH0gZnJvbSBcIi4uL3NsaWNrLWNhbGVuZGFyL3NsaWNrLWNhbGVuZGFyLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgU2xpY2tDYWxlbmRhck1vZHVsZV0sXHJcblx0ZGVjbGFyYXRpb25zOiBbU2xpY2tEYXRlUGlja2VyQ29tcG9uZW50XSxcclxuXHRleHBvcnRzOiBbU2xpY2tEYXRlUGlja2VyQ29tcG9uZW50LCBTbGlja0NhbGVuZGFyTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tEYXRlUGlja2VyTW9kdWxlIHsgfVxyXG5cclxuZXhwb3J0IHsgU2xpY2tEYXRlUGlja2VyQ29tcG9uZW50IH0iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Component, HostBinding } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SlickDialogFooterComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.flex = '1 1';
|
|
6
|
+
this.textAlign = 'center';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/** @nocollapse */ SlickDialogFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickDialogFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
/** @nocollapse */ SlickDialogFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SlickDialogFooterComponent, selector: "slick-dialog-footer", host: { properties: { "style.flex": "this.flex", "style.textAlign": "this.textAlign" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickDialogFooterComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{
|
|
14
|
+
selector: 'slick-dialog-footer',
|
|
15
|
+
template: `<ng-content></ng-content>`
|
|
16
|
+
}]
|
|
17
|
+
}], propDecorators: { flex: [{
|
|
18
|
+
type: HostBinding,
|
|
19
|
+
args: ['style.flex']
|
|
20
|
+
}], textAlign: [{
|
|
21
|
+
type: HostBinding,
|
|
22
|
+
args: ['style.textAlign']
|
|
23
|
+
}] } });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZGlhbG9nLWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1kaWFsb2cvc2xpY2stZGlhbG9nLWZvb3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXZELE1BQU0sT0FBTywwQkFBMEI7SUFKdkM7UUFLNEIsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNSLGNBQVMsR0FBRyxRQUFRLENBQUM7S0FDckQ7OzBJQUhZLDBCQUEwQjs4SEFBMUIsMEJBQTBCLHFKQUY1QiwyQkFBMkI7MkZBRXpCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsMkJBQTJCO2lCQUNyQzs4QkFFMkIsSUFBSTtzQkFBOUIsV0FBVzt1QkFBQyxZQUFZO2dCQUNPLFNBQVM7c0JBQXhDLFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3NsaWNrLWRpYWxvZy1mb290ZXInLFxyXG5cdHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrRGlhbG9nRm9vdGVyQ29tcG9uZW50IHtcclxuXHRASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgnKSBmbGV4ID0gJzEgMSc7XHJcblx0QEhvc3RCaW5kaW5nKCdzdHlsZS50ZXh0QWxpZ24nKSB0ZXh0QWxpZ24gPSAnY2VudGVyJztcclxufVxyXG4iXX0=
|